summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2023-03-02 20:01:10 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2023-03-02 20:01:10 +0000
commitda875fcb62c801b8d19b3d4d984ad963574fb356 (patch)
tree3d85503747c56c2a387b291524442946f4bebb73 /tests
parentInitial commit. (diff)
downloadpysilfont-da875fcb62c801b8d19b3d4d984ad963574fb356.tar.xz
pysilfont-da875fcb62c801b8d19b3d4d984ad963574fb356.zip
Adding upstream version 1.6.0.upstream/1.6.0upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'tests')
-rw-r--r--tests/fontparts/test_10_psfbuildcompgc.py37
-rw-r--r--tests/input/PsfTest-R.ttfbin0 -> 22564 bytes
-rw-r--r--tests/input/font-psf-test/FONTLOG.txt174
-rw-r--r--tests/input/font-psf-test/OFL-FAQ.txt427
-rw-r--r--tests/input/font-psf-test/OFL.txt94
-rw-r--r--tests/input/font-psf-test/README.md9
-rw-r--r--tests/input/font-psf-test/README.txt87
-rwxr-xr-xtests/input/font-psf-test/preflight19
-rwxr-xr-xtests/input/font-psf-test/preflightg7
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Bold.ufo/fontinfo.plist245
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/A_mpersand.glif61
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/A_pos.glif17
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/A_sterisk.glif51
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/A_tS_gn.glif80
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/C_ircumA_ccent.glif17
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/C_olon.glif35
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/C_ombA_cute.glif14
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/C_ombC_ircum.glif17
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/C_ombD_iaer.glif36
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/C_ombG_rave.glif14
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/C_ombR_ingA_bv.glif36
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/C_ombT_ilde.glif36
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/C_omma.glif24
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/D_igitE_ight.glif63
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/D_igitF_ive.glif44
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/D_igitF_our.glif27
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/D_igitN_ine.glif49
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/D_igitO_ne.glif22
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/D_igitS_even.glif25
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/D_igitS_ix.glif49
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/D_igitT_hree.glif52
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/D_igitT_wo.glif37
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/D_igitZ_ero.glif37
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/D_ollarS_gn.glif57
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/D_ottedC_irc.glif235
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/E_qS_gn.glif19
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/E_xclamationM_rk.glif31
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/F_ullS_top.glif21
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/G_T_S_gn.glif16
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/G_raveA_ccent.glif14
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/H_yphen.glif14
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/H_yphenM_inus.glif14
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/H_yphen_S_oft.glif9
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_T_S_gn.glif16
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_ftC_urlyB_rac.glif47
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_ftP_aren.glif23
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_ftS_qrB_rac.glif17
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_owL_ine.glif13
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_tnC_apA_.alt.glif31
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_tnC_apA_.glif32
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_tnC_apA_D_iaer.glif13
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_tnC_apB_.glif62
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_tnC_apC_.glif38
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_tnC_apD_.glif45
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_tnC_apE_.glif35
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_tnC_apF_.glif30
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_tnC_apG_.glif42
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_tnC_apH_.glif40
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_tnC_apI_.glif26
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_tnC_apJ_.glif32
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_tnC_apK_.glif34
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_tnC_apL_.glif28
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_tnC_apM_.glif38
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_tnC_apN_.glif37
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_tnC_apO_.glif40
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_tnC_apP_.glif50
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_tnC_apQ_.glif49
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_tnC_apR_.glif55
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_tnC_apS_.glif50
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_tnC_apT_.glif32
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_tnC_apU_.glif38
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_tnC_apV_.glif26
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_tnC_apW_.glif45
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_tnC_apX_.glif39
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_tnC_apY_.glif39
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_tnS_mA_.glif76
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_tnS_mA_A_cute.glif14
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_tnS_mA_C_ircum.glif14
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_tnS_mA_D_iaer.glif14
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_tnS_mA_G_rave.glif14
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_tnS_mA_R_ingA_bv.glif14
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_tnS_mA_T_ilde.glif14
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_tnS_mB_.glif50
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_tnS_mC_.glif39
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_tnS_mD_.glif53
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_tnS_mE_.glif45
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_tnS_mF_.glif39
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_tnS_mG_.glif91
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_tnS_mH_.glif43
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_tnS_mI_.glif42
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_tnS_mJ_.glif44
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_tnS_mK_.glif34
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_tnS_mL_.glif23
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_tnS_mM_.glif52
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_tnS_mN_.glif43
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_tnS_mO_.glif40
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_tnS_mP_.glif59
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_tnS_mQ_.glif47
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_tnS_mR_.glif35
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_tnS_mS_.glif50
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_tnS_mT_.glif35
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_tnS_mU_.glif51
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_tnS_mV_.glif30
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_tnS_mW_.glif30
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_tnS_mX_.glif40
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_tnS_mY_.glif39
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/N_onB_reakingH_yphen.glif9
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/N_umS_gn.glif31
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/P_ercentS_gn.glif69
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/P_lusS_gn.glif19
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/Q_stnM_rk.glif49
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/Q_uotM_rk.glif27
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/R_everseS_olidus.glif13
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/R_tC_urlyB_rac.glif47
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/R_tP_aren.glif23
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/R_tS_qrB_rac.glif17
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/S_emicolon.glif38
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/S_olidus.glif13
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/S_pace.glif6
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/T_ilde.glif29
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/V_ertL_ine.glif13
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/_notdef.glif18
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/_null.glif4
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/contents.plist234
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/nonmarkingreturn.glif5
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Bold.ufo/layercontents.plist10
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Bold.ufo/lib.plist535
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Bold.ufo/metainfo.plist10
-rw-r--r--tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/fontinfo.plist245
-rw-r--r--tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/A_mpersand.glif61
-rw-r--r--tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/A_pos.glif17
-rw-r--r--tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/A_sterisk.glif51
-rw-r--r--tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/A_tS_gn.glif104
-rw-r--r--tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/C_ircumA_ccent.glif17
-rw-r--r--tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/C_olon.glif35
-rw-r--r--tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/C_ombA_cute.glif14
-rw-r--r--tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/C_ombC_ircum.glif17
-rw-r--r--tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/C_ombD_iaer.glif36
-rw-r--r--tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/C_ombG_rave.glif14
-rw-r--r--tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/C_ombR_ingA_bv.glif36
-rw-r--r--tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/C_ombT_ilde.glif36
-rw-r--r--tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/C_omma.glif24
-rw-r--r--tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/D_igitE_ight.glif63
-rw-r--r--tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/D_igitF_ive.glif44
-rw-r--r--tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/D_igitF_our.glif27
-rw-r--r--tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/D_igitN_ine.glif49
-rw-r--r--tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/D_igitO_ne.glif22
-rw-r--r--tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/D_igitS_even.glif25
-rw-r--r--tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/D_igitS_ix.glif49
-rw-r--r--tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/D_igitT_hree.glif52
-rw-r--r--tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/D_igitT_wo.glif37
-rw-r--r--tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/D_igitZ_ero.glif49
-rw-r--r--tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/D_ollarS_gn.glif57
-rw-r--r--tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/D_ottedC_irc.glif235
-rw-r--r--tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/E_qS_gn.glif19
-rw-r--r--tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/E_xclamationM_rk.glif31
-rw-r--r--tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/F_ullS_top.glif21
-rw-r--r--tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/G_T_S_gn.glif16
-rw-r--r--tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/G_raveA_ccent.glif14
-rw-r--r--tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/H_yphen.glif14
-rw-r--r--tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/H_yphenM_inus.glif14
-rw-r--r--tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/H_yphen_S_oft.glif9
-rw-r--r--tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_T_S_gn.glif16
-rw-r--r--tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_ftC_urlyB_rac.glif50
-rw-r--r--tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_ftP_aren.glif29
-rw-r--r--tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_ftS_qrB_rac.glif17
-rw-r--r--tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_owL_ine.glif13
-rw-r--r--tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_tnC_apA_.glif32
-rw-r--r--tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_tnC_apA_D_iaer.glif13
-rw-r--r--tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_tnC_apB_.glif62
-rw-r--r--tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_tnC_apC_.glif38
-rw-r--r--tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_tnC_apD_.glif51
-rw-r--r--tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_tnC_apE_.glif35
-rw-r--r--tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_tnC_apF_.glif30
-rw-r--r--tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_tnC_apG_.glif48
-rw-r--r--tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_tnC_apH_.glif40
-rw-r--r--tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_tnC_apI_.glif26
-rw-r--r--tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_tnC_apJ_.glif32
-rw-r--r--tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_tnC_apK_.glif35
-rw-r--r--tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_tnC_apL_.glif28
-rw-r--r--tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_tnC_apM_.glif38
-rw-r--r--tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_tnC_apN_.glif37
-rw-r--r--tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_tnC_apO_.glif40
-rw-r--r--tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_tnC_apP_.glif50
-rw-r--r--tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_tnC_apQ_.glif52
-rw-r--r--tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_tnC_apR_.glif55
-rw-r--r--tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_tnC_apS_.glif50
-rw-r--r--tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_tnC_apT_.glif32
-rw-r--r--tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_tnC_apU_.glif44
-rw-r--r--tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_tnC_apV_.glif26
-rw-r--r--tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_tnC_apW_.glif45
-rw-r--r--tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_tnC_apX_.glif39
-rw-r--r--tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_tnC_apY_.glif39
-rw-r--r--tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_tnS_mA_.glif79
-rw-r--r--tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_tnS_mA_A_cute.glif14
-rw-r--r--tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_tnS_mA_C_ircum.glif14
-rw-r--r--tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_tnS_mA_D_iaer.glif14
-rw-r--r--tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_tnS_mA_G_rave.glif14
-rw-r--r--tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_tnS_mA_R_ingA_bv.glif14
-rw-r--r--tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_tnS_mA_T_ilde.glif14
-rw-r--r--tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_tnS_mB_.glif55
-rw-r--r--tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_tnS_mC_.glif39
-rw-r--r--tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_tnS_mD_.glif65
-rw-r--r--tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_tnS_mE_.glif52
-rw-r--r--tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_tnS_mF_.glif44
-rw-r--r--tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_tnS_mG_.glif91
-rw-r--r--tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_tnS_mH_.glif54
-rw-r--r--tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_tnS_mI_.glif50
-rw-r--r--tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_tnS_mJ_.glif45
-rw-r--r--tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_tnS_mK_.glif45
-rw-r--r--tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_tnS_mL_.glif35
-rw-r--r--tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_tnS_mM_.glif80
-rw-r--r--tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_tnS_mN_.glif57
-rw-r--r--tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_tnS_mO_.glif40
-rw-r--r--tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_tnS_mP_.glif66
-rw-r--r--tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_tnS_mQ_.glif54
-rw-r--r--tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_tnS_mR_.glif42
-rw-r--r--tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_tnS_mS_.glif50
-rw-r--r--tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_tnS_mT_.glif45
-rw-r--r--tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_tnS_mU_.glif57
-rw-r--r--tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_tnS_mV_.glif34
-rw-r--r--tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_tnS_mW_.glif50
-rw-r--r--tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_tnS_mX_.glif40
-rw-r--r--tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_tnS_mY_.glif45
-rw-r--r--tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/N_onB_reakingH_yphen.glif9
-rw-r--r--tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/N_umS_gn.glif31
-rw-r--r--tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/P_ercentS_gn.glif93
-rw-r--r--tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/P_lusS_gn.glif19
-rw-r--r--tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/Q_stnM_rk.glif49
-rw-r--r--tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/Q_uotM_rk.glif27
-rw-r--r--tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/R_everseS_olidus.glif13
-rw-r--r--tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/R_tC_urlyB_rac.glif47
-rw-r--r--tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/R_tP_aren.glif29
-rw-r--r--tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/R_tS_qrB_rac.glif17
-rw-r--r--tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/S_emicolon.glif38
-rw-r--r--tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/S_olidus.glif13
-rw-r--r--tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/S_pace.glif6
-rw-r--r--tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/T_ilde.glif29
-rw-r--r--tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/V_ertL_ine.glif13
-rw-r--r--tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/_notdef.glif18
-rw-r--r--tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/_null.glif4
-rw-r--r--tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/contents.plist232
-rw-r--r--tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/nonmarkingreturn.glif5
-rw-r--r--tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/layercontents.plist10
-rw-r--r--tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/lib.plist538
-rw-r--r--tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/metainfo.plist10
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Italic.ufo/fontinfo.plist243
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/A_mpersand.glif61
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/A_pos.glif17
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/A_sterisk.glif51
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/A_tS_gn.glif104
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/C_ircumA_ccent.glif17
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/C_olon.glif35
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/C_ombA_cute.glif14
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/C_ombC_ircum.glif17
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/C_ombD_iaer.glif36
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/C_ombG_rave.glif14
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/C_ombR_ingA_bv.glif36
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/C_ombT_ilde.glif36
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/C_omma.glif24
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/D_igitE_ight.glif63
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/D_igitF_ive.glif44
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/D_igitF_our.glif27
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/D_igitN_ine.glif49
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/D_igitO_ne.glif22
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/D_igitS_even.glif25
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/D_igitS_ix.glif49
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/D_igitT_hree.glif52
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/D_igitT_wo.glif37
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/D_igitZ_ero.glif49
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/D_ollarS_gn.glif53
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/D_ottedC_irc.glif235
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/E_qS_gn.glif19
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/E_xclamationM_rk.glif31
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/F_ullS_top.glif21
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/G_T_S_gn.glif16
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/G_raveA_ccent.glif14
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/H_yphen.glif14
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/H_yphenM_inus.glif14
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/H_yphen_S_oft.glif9
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_T_S_gn.glif16
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_ftC_urlyB_rac.glif50
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_ftP_aren.glif29
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_ftS_qrB_rac.glif17
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_owL_ine.glif13
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_tnC_apA_.glif32
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_tnC_apA_D_iaer.glif13
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_tnC_apB_.glif62
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_tnC_apC_.glif38
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_tnC_apD_.glif51
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_tnC_apE_.glif35
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_tnC_apF_.glif30
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_tnC_apG_.glif48
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_tnC_apH_.glif36
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_tnC_apI_.glif26
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_tnC_apJ_.glif30
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_tnC_apK_.glif35
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_tnC_apL_.glif28
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_tnC_apM_.glif36
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_tnC_apN_.glif37
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_tnC_apO_.glif40
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_tnC_apP_.glif50
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_tnC_apQ_.glif52
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_tnC_apR_.glif55
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_tnC_apS_.glif50
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_tnC_apT_.glif32
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_tnC_apU_.glif44
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_tnC_apV_.glif26
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_tnC_apW_.glif44
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_tnC_apX_.glif39
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_tnC_apY_.glif39
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_tnS_mA_.glif77
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_tnS_mA_A_cute.glif14
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_tnS_mA_C_ircum.glif14
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_tnS_mA_D_iaer.glif14
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_tnS_mA_G_rave.glif14
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_tnS_mA_R_ingA_bv.glif14
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_tnS_mA_T_ilde.glif14
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_tnS_mB_.glif55
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_tnS_mC_.glif39
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_tnS_mD_.glif65
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_tnS_mE_.glif52
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_tnS_mF_.glif44
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_tnS_mG_.glif100
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_tnS_mH_.glif54
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_tnS_mI_.glif50
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_tnS_mJ_.glif45
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_tnS_mK_.glif50
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_tnS_mL_.glif35
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_tnS_mM_.glif80
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_tnS_mN_.glif57
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_tnS_mO_.glif40
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_tnS_mP_.glif66
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_tnS_mQ_.glif54
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_tnS_mR_.glif42
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_tnS_mS_.glif50
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_tnS_mT_.glif45
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_tnS_mU_.glif57
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_tnS_mV_.glif34
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_tnS_mW_.glif50
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_tnS_mX_.glif40
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_tnS_mY_.glif45
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/N_onB_reakingH_yphen.glif9
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/N_umS_gn.glif31
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/P_ercentS_gn.glif93
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/P_lusS_gn.glif19
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/Q_stnM_rk.glif49
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/Q_uotM_rk.glif27
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/R_everseS_olidus.glif13
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/R_tC_urlyB_rac.glif50
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/R_tP_aren.glif29
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/R_tS_qrB_rac.glif17
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/S_emicolon.glif38
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/S_olidus.glif13
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/S_pace.glif6
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/T_ilde.glif29
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/V_ertL_ine.glif13
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/_notdef.glif18
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/_null.glif4
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/contents.plist232
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/nonmarkingreturn.glif5
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Italic.ufo/layercontents.plist10
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Italic.ufo/lib.plist538
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Italic.ufo/metainfo.plist10
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Regular.ufo/fontinfo.plist260
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/A_mpersand.glif61
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/A_pos.glif17
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/A_sterisk.glif51
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/A_tS_gn.glif80
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/C_ircumA_ccent.glif8
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/C_olon.glif35
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/C_ombA_cute.glif14
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/C_ombC_ircum.glif17
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/C_ombD_iaer.glif36
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/C_ombG_rave.glif14
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/C_ombR_ingA_bv.glif36
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/C_ombT_ilde.glif36
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/C_omma.glif24
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/D_igitE_ight.glif63
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/D_igitF_ive.glif44
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/D_igitF_our.glif27
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/D_igitN_ine.glif49
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/D_igitO_ne.glif22
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/D_igitS_even.glif25
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/D_igitS_ix.glif49
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/D_igitT_hree.glif52
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/D_igitT_wo.glif37
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/D_igitZ_ero.glif37
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/D_ollarS_gn.glif53
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/D_ottedC_irc.glif235
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/E_qS_gn.glif19
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/E_xclamationM_rk.glif31
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/F_ullS_top.glif21
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/G_T_S_gn.glif16
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/G_raveA_ccent.glif8
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/H_yphen.glif14
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/H_yphenM_inus.glif14
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/H_yphen_S_oft.glif9
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_T_S_gn.glif16
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_ftC_urlyB_rac.glif47
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_ftP_aren.glif23
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_ftS_qrB_rac.glif17
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_owL_ine.glif13
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_tnC_apA_.alt.glif31
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_tnC_apA_.glif32
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_tnC_apA_D_iaer.glif13
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_tnC_apB_.glif62
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_tnC_apC_.glif38
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_tnC_apD_.glif45
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_tnC_apE_.glif35
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_tnC_apF_.glif30
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_tnC_apG_.glif42
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_tnC_apH_.glif36
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_tnC_apI_.glif26
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_tnC_apJ_.glif30
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_tnC_apK_.glif35
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_tnC_apL_.glif28
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_tnC_apM_.glif37
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_tnC_apN_.glif37
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_tnC_apO_.glif40
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_tnC_apP_.glif50
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_tnC_apQ_.glif49
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_tnC_apR_.glif55
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_tnC_apS_.glif50
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_tnC_apT_.glif32
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_tnC_apU_.glif38
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_tnC_apV_.glif26
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_tnC_apW_.glif45
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_tnC_apX_.glif35
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_tnC_apY_.glif32
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_tnS_mA_.glif76
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_tnS_mA_A_cute.glif14
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_tnS_mA_C_ircum.glif14
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_tnS_mA_D_iaer.glif14
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_tnS_mA_G_rave.glif14
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_tnS_mA_R_ingA_bv.glif41
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_tnS_mA_T_ilde.glif41
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_tnS_mB_.glif50
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_tnS_mC_.glif39
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_tnS_mD_.glif53
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_tnS_mE_.glif45
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_tnS_mF_.glif39
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_tnS_mG_.glif91
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_tnS_mH_.glif43
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_tnS_mI_.glif40
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_tnS_mJ_.glif44
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_tnS_mK_.glif35
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_tnS_mL_.glif24
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_tnS_mM_.glif52
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_tnS_mN_.glif43
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_tnS_mO_.glif40
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_tnS_mP_.glif56
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_tnS_mQ_.glif47
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_tnS_mR_.glif36
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_tnS_mS_.glif50
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_tnS_mT_.glif39
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_tnS_mU_.glif51
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_tnS_mV_.glif30
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_tnS_mW_.glif30
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_tnS_mX_.glif40
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_tnS_mY_.glif42
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/N_onB_reakingH_yphen.glif9
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/N_umS_gn.glif31
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/P_ercentS_gn.glif69
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/P_lusS_gn.glif19
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/Q_stnM_rk.glif49
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/Q_uotM_rk.glif27
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/R_everseS_olidus.glif13
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/R_tC_urlyB_rac.glif47
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/R_tP_aren.glif23
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/R_tS_qrB_rac.glif17
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/S_emicolon.glif38
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/S_olidus.glif13
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/S_pace.glif6
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/T_ilde.glif29
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/V_ertL_ine.glif13
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/_notdef.glif18
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/_null.glif4
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/contents.plist234
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/nonmarkingreturn.glif5
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Regular.ufo/layercontents.plist10
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Regular.ufo/lib.plist536
-rw-r--r--tests/input/font-psf-test/source/PsfTest-Regular.ufo/metainfo.plist10
-rw-r--r--tests/input/font-psf-test/source/PsfTestItalic.designspace58
-rw-r--r--tests/input/font-psf-test/source/PsfTestItalic.glyphs12469
-rw-r--r--tests/input/font-psf-test/source/PsfTestRoman.designspace58
-rw-r--r--tests/input/font-psf-test/source/PsfTestRoman.glyphs12025
-rw-r--r--tests/input/font-psf-test/source/glyph_data.csv115
-rw-r--r--tests/input/font-psf-test/source/logs/readme.txt1
-rw-r--r--tests/input/font-psf-test/wscript27
-rw-r--r--tests/input/glyph_data.csv28
-rw-r--r--tests/input/issue65.feax4
-rw-r--r--tests/input/ligatures.feax12
-rw-r--r--tests/input/psfbuildcomp.txt30
-rw-r--r--tests/input/psfcopyglyphs.csv7
-rw-r--r--tests/input/psfdeleteglyphs.txt3
-rw-r--r--tests/input/psfgenftml.csv116
-rw-r--r--tests/input/psfmakefea.feax8
-rw-r--r--tests/input/psfmakefea_2.feax11
-rw-r--r--tests/input/psfmakefea_3.feax20
-rw-r--r--tests/input/psfmakewoffmetadata.txt40
-rw-r--r--tests/input/psfrenameglyphs.csv3
-rw-r--r--tests/input/psfsetassocfeat.csv2
-rw-r--r--tests/input/psfsetassocuids.csv3
-rw-r--r--tests/input/psfsetunicodes.csv4
-rw-r--r--tests/input/psfsubset.csv73
-rw-r--r--tests/localufos.csv.sample6
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.lg2
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/fontinfo.plist266
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/A_mpersand.glif61
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/A_pos.glif17
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/A_sterisk.glif51
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/A_tS_gn.glif80
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/C_ircumA_ccent.glif8
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/C_olon.glif35
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/C_ombA_cute.glif14
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/C_ombC_ircum.glif17
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/C_ombD_iaer.glif36
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/C_ombG_rave.glif14
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/C_ombR_ingA_bv.glif36
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/C_ombT_ilde.glif36
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/C_omma.glif24
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/D_igitE_ight.glif63
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/D_igitF_ive.glif44
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/D_igitF_our.glif27
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/D_igitN_ine.glif49
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/D_igitO_ne.glif22
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/D_igitS_even.glif25
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/D_igitS_ix.glif49
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/D_igitT_hree.glif52
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/D_igitT_wo.glif37
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/D_igitZ_ero.glif37
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/D_ollarS_gn.glif53
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/D_ottedC_irc.glif235
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/E_qS_gn.glif19
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/E_xclamationM_rk.glif31
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/F_ullS_top.glif21
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/G_T_S_gn.glif16
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/G_raveA_ccent.glif8
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/H_yphen.glif14
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/H_yphenM_inus.glif14
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/H_yphen_S_oft.glif9
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_T_S_gn.glif16
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_ftC_urlyB_rac.glif47
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_ftP_aren.glif23
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_ftS_qrB_rac.glif17
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_owL_ine.glif13
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apA_.alt.glif31
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apA_.glif32
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apA_D_iaer.glif13
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apB_.glif62
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apC_.glif38
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apC_A_cute.glif9
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apC_A_cuteC_edilla.glif10
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apC_C_ircum.glif9
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apD_.glif45
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apE_.glif35
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apF_.glif30
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apG_.glif42
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apH_.glif36
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apI_.glif26
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apI_J_.glif9
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apJ_.glif30
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apK_.glif35
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apL_.glif28
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apM_.glif37
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apN_.glif37
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apO_.glif40
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apP_.glif50
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apQ_.glif49
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apR_.glif55
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apS_.glif50
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apT_.glif32
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apU_.glif38
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apV_.glif26
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apW_.glif45
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apX_.glif35
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apY_.glif32
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mA_.glif68
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mA_A_cute.glif14
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mA_C_ircum.glif14
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mA_D_iaer.glif14
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mA_G_rave.glif14
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mA_R_ingA_bv.glif41
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mA_T_ilde.glif41
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mB_.glif50
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mC_.glif39
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mC_A_cute.glif9
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mC_A_cuteC_edilla.glif10
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mC_C_ircum.glif9
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mD_.glif53
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mE_.glif45
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mF_.glif39
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mG_.glif91
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mH_.glif43
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mI_.glif40
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mI_J_.glif9
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mI_T_ilde.glif9
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mI_T_ildeG_rave.glif9
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mI_T_ildeG_raveC_edilla.glif14
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mJ_.glif44
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mK_.glif35
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mL_.glif24
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mM_.glif52
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mN_.glif43
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mO_.glif40
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mP_.glif56
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mQ_.glif47
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mR_.glif36
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mS_.glif50
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mT_.glif39
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mU_.glif51
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mV_.glif30
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mW_.glif30
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mX_.glif40
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mY_.glif42
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/N_onB_reakingH_yphen.glif9
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/N_umS_gn.glif31
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/P_ercentS_gn.glif69
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/P_lusS_gn.glif19
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/Q_stnM_rk.glif49
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/Q_uotM_rk.glif27
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/R_everseS_olidus.glif13
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/R_tC_urlyB_rac.glif47
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/R_tP_aren.glif23
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/R_tS_qrB_rac.glif17
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/S_emicolon.glif38
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/S_olidus.glif13
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/S_pace.glif7
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/T_ilde.glif29
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/V_ertL_ine.glif13
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/_notdef.glif18
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/_null.glif5
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/contents.plist256
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/nonmarkingreturn.glif6
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/layercontents.plist10
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/lib.plist547
-rw-r--r--tests/reference/fontparts/psfbuildcompgc.ufo/metainfo.plist10
-rw-r--r--tests/reference/psfmakefea/issue65.fea7
-rw-r--r--tests/reference/psfmakefea/issue65.log0
-rw-r--r--tests/reference/psfmakefea/ligatures.fea15
-rw-r--r--tests/reference/psfmakefea/ligatures.log0
-rw-r--r--tests/reference/psfmakefea/psfmakefea.fea11
-rw-r--r--tests/reference/psfmakefea/psfmakefea.log0
-rw-r--r--tests/reference/psfmakefea/psfmakefea_2.fea11
-rw-r--r--tests/reference/psfmakefea/psfmakefea_2.log0
-rw-r--r--tests/reference/ufo/psfbuildcomp.lg52
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/fontinfo.plist260
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/A_mpersand.glif61
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/A_pos.glif17
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/A_sterisk.glif51
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/A_tS_gn.glif80
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/C_ircumA_ccent.glif8
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/C_olon.glif35
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/C_ombA_cute.glif14
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/C_ombC_ircum.glif17
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/C_ombD_iaer.glif36
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/C_ombG_rave.glif14
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/C_ombR_ingA_bv.glif36
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/C_ombT_ilde.glif36
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/C_omma.glif24
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/D_igitE_ight.glif63
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/D_igitF_ive.glif44
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/D_igitF_our.glif27
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/D_igitN_ine.glif49
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/D_igitO_ne.glif22
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/D_igitS_even.glif25
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/D_igitS_ix.glif49
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/D_igitT_hree.glif52
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/D_igitT_wo.glif37
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/D_igitZ_ero.glif37
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/D_ollarS_gn.glif53
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/D_ottedC_irc.glif235
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/E_qS_gn.glif19
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/E_xclamationM_rk.glif31
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/F_ullS_top.glif21
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/G_T_S_gn.glif16
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/G_raveA_ccent.glif8
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/H_yphen.glif14
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/H_yphenM_inus.glif14
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/H_yphen_S_oft.glif9
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_T_S_gn.glif16
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_ftC_urlyB_rac.glif47
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_ftP_aren.glif23
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_ftS_qrB_rac.glif17
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_owL_ine.glif13
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apA_.alt.glif31
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apA_.glif32
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apA_D_iaer.glif13
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apB_.glif62
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apC_.glif38
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apC_A_cute.glif13
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apC_A_cuteC_edilla.glif12
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apC_C_ircum.glif12
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apD_.glif45
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apE_.glif35
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apF_.glif30
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apG_.glif42
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apH_.glif36
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apI_.glif26
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apI_J_.glif14
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apJ_.glif30
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apK_.glif35
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apL_.glif28
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apM_.glif37
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apN_.glif37
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apO_.glif40
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apP_.glif50
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apQ_.glif49
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apR_.glif55
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apS_.glif50
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apT_.glif32
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apU_.glif38
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apV_.glif26
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apW_.glif45
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apX_.glif35
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apY_.glif32
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mA_.glif76
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mA_A_cute.glif14
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mA_C_ircum.glif14
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mA_D_iaer.glif14
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mA_G_rave.glif14
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mA_R_ingA_bv.glif41
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mA_T_ilde.glif41
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mB_.glif50
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mC_.glif39
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mC_A_cute.glif12
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mC_A_cuteC_edilla.glif13
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mC_C_ircum.glif13
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mD_.glif53
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mE_.glif45
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mF_.glif39
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mG_.glif91
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mH_.glif43
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mI_.glif40
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mI_J_.glif14
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mI_T_ilde.glif9
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mI_T_ildeG_rave.glif9
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mI_T_ildeG_raveC_edilla.glif10
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mJ_.glif44
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mK_.glif35
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mL_.glif24
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mM_.glif52
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mN_.glif43
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mO_.glif40
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mP_.glif56
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mQ_.glif47
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mR_.glif36
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mS_.glif50
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mT_.glif39
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mU_.glif51
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mV_.glif30
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mW_.glif30
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mX_.glif40
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mY_.glif42
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/N_onB_reakingH_yphen.glif9
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/N_umS_gn.glif31
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/P_ercentS_gn.glif69
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/P_lusS_gn.glif19
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/Q_stnM_rk.glif49
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/Q_uotM_rk.glif27
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/R_everseS_olidus.glif13
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/R_tC_urlyB_rac.glif47
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/R_tP_aren.glif23
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/R_tS_qrB_rac.glif17
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/S_emicolon.glif38
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/S_olidus.glif13
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/S_pace.glif6
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/T_ilde.glif29
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/V_ertL_ine.glif13
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/_notdef.glif18
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/_null.glif4
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/contents.plist256
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/glyphs/nonmarkingreturn.glif5
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/layercontents.plist10
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/lib.plist536
-rw-r--r--tests/reference/ufo/psfbuildcomp.ufo/metainfo.plist10
-rw-r--r--tests/reference/ufo/psfbuildcompgc.lg3
-rw-r--r--tests/reference/ufo/psfchangettfglyphnames.lg4
-rw-r--r--tests/reference/ufo/psfchangettfglyphnames.ttfbin0 -> 21668 bytes
-rw-r--r--tests/reference/ufo/psfcheckbasicchars.lg199
-rw-r--r--tests/reference/ufo/psfcopyglyphs.lg30
-rw-r--r--tests/reference/ufo/psfcopyglyphs.ufo/fontinfo.plist243
-rw-r--r--tests/reference/ufo/psfcopyglyphs.ufo/glyphs/A_mpergravel.glif61
-rw-r--r--tests/reference/ufo/psfcopyglyphs.ufo/glyphs/A_mpersand.glif61
-rw-r--r--tests/reference/ufo/psfcopyglyphs.ufo/glyphs/A_pos.glif17
-rw-r--r--tests/reference/ufo/psfcopyglyphs.ufo/glyphs/A_sterisk.glif51
-rw-r--r--tests/reference/ufo/psfcopyglyphs.ufo/glyphs/A_tS_gn.glif104
-rw-r--r--tests/reference/ufo/psfcopyglyphs.ufo/glyphs/C_ircumA_ccent.glif17
-rw-r--r--tests/reference/ufo/psfcopyglyphs.ufo/glyphs/C_olon.glif35
-rw-r--r--tests/reference/ufo/psfcopyglyphs.ufo/glyphs/C_ombA_cute.glif14
-rw-r--r--tests/reference/ufo/psfcopyglyphs.ufo/glyphs/C_ombC_ircum.glif17
-rw-r--r--tests/reference/ufo/psfcopyglyphs.ufo/glyphs/C_ombD_iaer.glif36
-rw-r--r--tests/reference/ufo/psfcopyglyphs.ufo/glyphs/C_ombG_rave.glif14
-rw-r--r--tests/reference/ufo/psfcopyglyphs.ufo/glyphs/C_ombR_ingA_bv.glif36
-rw-r--r--tests/reference/ufo/psfcopyglyphs.ufo/glyphs/C_ombT_ilde.glif36
-rw-r--r--tests/reference/ufo/psfcopyglyphs.ufo/glyphs/C_omma.glif24
-rw-r--r--tests/reference/ufo/psfcopyglyphs.ufo/glyphs/D_igitE_ight.glif63
-rw-r--r--tests/reference/ufo/psfcopyglyphs.ufo/glyphs/D_igitF_ive.glif44
-rw-r--r--tests/reference/ufo/psfcopyglyphs.ufo/glyphs/D_igitF_our.glif27
-rw-r--r--tests/reference/ufo/psfcopyglyphs.ufo/glyphs/D_igitN_ine.glif49
-rw-r--r--tests/reference/ufo/psfcopyglyphs.ufo/glyphs/D_igitO_ne.glif22
-rw-r--r--tests/reference/ufo/psfcopyglyphs.ufo/glyphs/D_igitS_even.glif25
-rw-r--r--tests/reference/ufo/psfcopyglyphs.ufo/glyphs/D_igitS_ix.glif49
-rw-r--r--tests/reference/ufo/psfcopyglyphs.ufo/glyphs/D_igitT_hree.glif52
-rw-r--r--tests/reference/ufo/psfcopyglyphs.ufo/glyphs/D_igitT_wo.glif37
-rw-r--r--tests/reference/ufo/psfcopyglyphs.ufo/glyphs/D_igitZ_ero.glif49
-rw-r--r--tests/reference/ufo/psfcopyglyphs.ufo/glyphs/D_ollarS_gn.glif53
-rw-r--r--tests/reference/ufo/psfcopyglyphs.ufo/glyphs/D_ottedC_irc.glif235
-rw-r--r--tests/reference/ufo/psfcopyglyphs.ufo/glyphs/E_qS_gn.glif19
-rw-r--r--tests/reference/ufo/psfcopyglyphs.ufo/glyphs/E_xclamationM_rk.glif31
-rw-r--r--tests/reference/ufo/psfcopyglyphs.ufo/glyphs/F_ullS_top.glif21
-rw-r--r--tests/reference/ufo/psfcopyglyphs.ufo/glyphs/F_ullstart.glif20
-rw-r--r--tests/reference/ufo/psfcopyglyphs.ufo/glyphs/G_T_S_gn.glif16
-rw-r--r--tests/reference/ufo/psfcopyglyphs.ufo/glyphs/G_raveA_ccent.glif14
-rw-r--r--tests/reference/ufo/psfcopyglyphs.ufo/glyphs/H_yphen.glif14
-rw-r--r--tests/reference/ufo/psfcopyglyphs.ufo/glyphs/H_yphenM_inus.glif14
-rw-r--r--tests/reference/ufo/psfcopyglyphs.ufo/glyphs/H_yphen_S_oft.glif9
-rw-r--r--tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_T_S_gn.glif16
-rw-r--r--tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_ftC_urlyB_rac.glif50
-rw-r--r--tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_ftP_aren.glif29
-rw-r--r--tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_ftS_qrB_rac.glif17
-rw-r--r--tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_owL_ine.glif13
-rw-r--r--tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnC_apA_.alt.glif32
-rw-r--r--tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnC_apA_.glif32
-rw-r--r--tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnC_apA_D_iaer.glif13
-rw-r--r--tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnC_apB_.glif62
-rw-r--r--tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnC_apC_.glif38
-rw-r--r--tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnC_apD_.glif51
-rw-r--r--tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnC_apE_.glif35
-rw-r--r--tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnC_apF_.glif30
-rw-r--r--tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnC_apG_.glif48
-rw-r--r--tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnC_apH_.glif36
-rw-r--r--tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnC_apI_.glif26
-rw-r--r--tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnC_apJ_.glif30
-rw-r--r--tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnC_apK_.glif35
-rw-r--r--tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnC_apL_.glif28
-rw-r--r--tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnC_apM_.glif36
-rw-r--r--tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnC_apN_.glif37
-rw-r--r--tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnC_apO_.glif40
-rw-r--r--tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnC_apP_.glif50
-rw-r--r--tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnC_apQ_.glif52
-rw-r--r--tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnC_apR_.glif55
-rw-r--r--tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnC_apS_.glif50
-rw-r--r--tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnC_apT_.glif32
-rw-r--r--tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnC_apU_.glif44
-rw-r--r--tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnC_apV_.glif26
-rw-r--r--tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnC_apW_.glif44
-rw-r--r--tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnC_apX_.glif39
-rw-r--r--tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnC_apY_.glif39
-rw-r--r--tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mA_.glif77
-rw-r--r--tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mA_A_cute.glif14
-rw-r--r--tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mA_C_ircum.glif14
-rw-r--r--tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mA_D_iaer.glif14
-rw-r--r--tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mA_G_rave.glif14
-rw-r--r--tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mA_R_ingA_bv.glif14
-rw-r--r--tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mA_T_ilde.glif14
-rw-r--r--tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mB_.glif55
-rw-r--r--tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mC_.glif39
-rw-r--r--tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mD_.glif65
-rw-r--r--tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mE_.glif52
-rw-r--r--tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mF_.glif44
-rw-r--r--tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mG_.glif100
-rw-r--r--tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mH_.glif54
-rw-r--r--tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mI_.glif50
-rw-r--r--tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mJ_.glif45
-rw-r--r--tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mK_.glif50
-rw-r--r--tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mL_.glif35
-rw-r--r--tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mM_.glif80
-rw-r--r--tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mN_.glif57
-rw-r--r--tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mO_.glif40
-rw-r--r--tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mP_.glif66
-rw-r--r--tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mQ_.glif54
-rw-r--r--tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mR_.glif42
-rw-r--r--tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mS_.glif50
-rw-r--r--tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mT_.glif45
-rw-r--r--tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mU_.glif57
-rw-r--r--tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mV_.glif34
-rw-r--r--tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mW_.glif50
-rw-r--r--tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mX_.glif40
-rw-r--r--tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mY_.glif45
-rw-r--r--tests/reference/ufo/psfcopyglyphs.ufo/glyphs/N_onB_reakingH_yphen.glif9
-rw-r--r--tests/reference/ufo/psfcopyglyphs.ufo/glyphs/N_umS_gn.glif31
-rw-r--r--tests/reference/ufo/psfcopyglyphs.ufo/glyphs/P_ercentS_gn.glif93
-rw-r--r--tests/reference/ufo/psfcopyglyphs.ufo/glyphs/P_lusS_gn.glif19
-rw-r--r--tests/reference/ufo/psfcopyglyphs.ufo/glyphs/Q_stnM_rk.glif49
-rw-r--r--tests/reference/ufo/psfcopyglyphs.ufo/glyphs/Q_uotM_rk.glif27
-rw-r--r--tests/reference/ufo/psfcopyglyphs.ufo/glyphs/R_everseS_olidus.glif13
-rw-r--r--tests/reference/ufo/psfcopyglyphs.ufo/glyphs/R_tC_urlyB_rac.glif50
-rw-r--r--tests/reference/ufo/psfcopyglyphs.ufo/glyphs/R_tP_aren.glif29
-rw-r--r--tests/reference/ufo/psfcopyglyphs.ufo/glyphs/R_tS_qrB_rac.glif17
-rw-r--r--tests/reference/ufo/psfcopyglyphs.ufo/glyphs/S_emicolon.glif38
-rw-r--r--tests/reference/ufo/psfcopyglyphs.ufo/glyphs/S_olidus.glif13
-rw-r--r--tests/reference/ufo/psfcopyglyphs.ufo/glyphs/S_pace.glif6
-rw-r--r--tests/reference/ufo/psfcopyglyphs.ufo/glyphs/S_tar.glif51
-rw-r--r--tests/reference/ufo/psfcopyglyphs.ufo/glyphs/T_ilde.glif29
-rw-r--r--tests/reference/ufo/psfcopyglyphs.ufo/glyphs/V_ertL_ine.glif13
-rw-r--r--tests/reference/ufo/psfcopyglyphs.ufo/glyphs/_notdef.glif18
-rw-r--r--tests/reference/ufo/psfcopyglyphs.ufo/glyphs/_null.glif4
-rw-r--r--tests/reference/ufo/psfcopyglyphs.ufo/glyphs/contents.plist240
-rw-r--r--tests/reference/ufo/psfcopyglyphs.ufo/glyphs/nonmarkingreturn.glif5
-rw-r--r--tests/reference/ufo/psfcopyglyphs.ufo/layercontents.plist10
-rw-r--r--tests/reference/ufo/psfcopyglyphs.ufo/lib.plist538
-rw-r--r--tests/reference/ufo/psfcopyglyphs.ufo/metainfo.plist10
-rw-r--r--tests/reference/ufo/psfdeleteglyphs.lg27
-rw-r--r--tests/reference/ufo/psfdeleteglyphs.ufo/fontinfo.plist260
-rw-r--r--tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/A_mpersand.glif61
-rw-r--r--tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/A_sterisk.glif51
-rw-r--r--tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/A_tS_gn.glif80
-rw-r--r--tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/C_ircumA_ccent.glif8
-rw-r--r--tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/C_olon.glif35
-rw-r--r--tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/C_ombA_cute.glif14
-rw-r--r--tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/C_ombC_ircum.glif17
-rw-r--r--tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/C_ombD_iaer.glif36
-rw-r--r--tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/C_ombG_rave.glif14
-rw-r--r--tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/C_ombR_ingA_bv.glif36
-rw-r--r--tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/C_ombT_ilde.glif36
-rw-r--r--tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/D_igitE_ight.glif63
-rw-r--r--tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/D_igitF_ive.glif44
-rw-r--r--tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/D_igitF_our.glif27
-rw-r--r--tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/D_igitN_ine.glif49
-rw-r--r--tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/D_igitO_ne.glif22
-rw-r--r--tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/D_igitS_even.glif25
-rw-r--r--tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/D_igitS_ix.glif49
-rw-r--r--tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/D_igitT_hree.glif52
-rw-r--r--tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/D_igitT_wo.glif37
-rw-r--r--tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/D_igitZ_ero.glif37
-rw-r--r--tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/D_ollarS_gn.glif53
-rw-r--r--tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/D_ottedC_irc.glif235
-rw-r--r--tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/E_qS_gn.glif19
-rw-r--r--tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/E_xclamationM_rk.glif31
-rw-r--r--tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/F_ullS_top.glif21
-rw-r--r--tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/G_T_S_gn.glif16
-rw-r--r--tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/G_raveA_ccent.glif8
-rw-r--r--tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/H_yphen.glif14
-rw-r--r--tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/H_yphenM_inus.glif14
-rw-r--r--tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/H_yphen_S_oft.glif9
-rw-r--r--tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_T_S_gn.glif16
-rw-r--r--tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_ftC_urlyB_rac.glif47
-rw-r--r--tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_ftP_aren.glif23
-rw-r--r--tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_ftS_qrB_rac.glif17
-rw-r--r--tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_owL_ine.glif13
-rw-r--r--tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnC_apA_.alt.glif31
-rw-r--r--tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnC_apA_.glif32
-rw-r--r--tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnC_apA_D_iaer.glif13
-rw-r--r--tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnC_apB_.glif62
-rw-r--r--tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnC_apC_.glif38
-rw-r--r--tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnC_apD_.glif45
-rw-r--r--tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnC_apE_.glif35
-rw-r--r--tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnC_apF_.glif30
-rw-r--r--tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnC_apG_.glif42
-rw-r--r--tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnC_apH_.glif36
-rw-r--r--tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnC_apI_.glif26
-rw-r--r--tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnC_apJ_.glif30
-rw-r--r--tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnC_apK_.glif35
-rw-r--r--tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnC_apL_.glif28
-rw-r--r--tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnC_apM_.glif37
-rw-r--r--tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnC_apN_.glif37
-rw-r--r--tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnC_apO_.glif40
-rw-r--r--tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnC_apP_.glif50
-rw-r--r--tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnC_apQ_.glif49
-rw-r--r--tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnC_apR_.glif55
-rw-r--r--tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnC_apS_.glif50
-rw-r--r--tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnC_apT_.glif32
-rw-r--r--tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnC_apU_.glif38
-rw-r--r--tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnC_apV_.glif26
-rw-r--r--tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnC_apW_.glif45
-rw-r--r--tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnC_apX_.glif35
-rw-r--r--tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnC_apY_.glif32
-rw-r--r--tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mA_.glif76
-rw-r--r--tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mA_A_cute.glif14
-rw-r--r--tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mA_C_ircum.glif14
-rw-r--r--tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mA_D_iaer.glif14
-rw-r--r--tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mA_G_rave.glif14
-rw-r--r--tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mA_R_ingA_bv.glif41
-rw-r--r--tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mA_T_ilde.glif41
-rw-r--r--tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mB_.glif50
-rw-r--r--tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mC_.glif39
-rw-r--r--tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mD_.glif53
-rw-r--r--tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mE_.glif45
-rw-r--r--tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mF_.glif39
-rw-r--r--tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mG_.glif91
-rw-r--r--tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mH_.glif43
-rw-r--r--tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mI_.glif40
-rw-r--r--tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mJ_.glif44
-rw-r--r--tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mK_.glif35
-rw-r--r--tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mL_.glif24
-rw-r--r--tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mM_.glif52
-rw-r--r--tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mN_.glif43
-rw-r--r--tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mO_.glif40
-rw-r--r--tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mP_.glif56
-rw-r--r--tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mQ_.glif47
-rw-r--r--tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mR_.glif36
-rw-r--r--tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mS_.glif50
-rw-r--r--tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mT_.glif39
-rw-r--r--tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mU_.glif51
-rw-r--r--tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mV_.glif30
-rw-r--r--tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mW_.glif30
-rw-r--r--tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mX_.glif40
-rw-r--r--tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mY_.glif42
-rw-r--r--tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/N_onB_reakingH_yphen.glif9
-rw-r--r--tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/N_umS_gn.glif31
-rw-r--r--tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/P_ercentS_gn.glif69
-rw-r--r--tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/P_lusS_gn.glif19
-rw-r--r--tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/Q_stnM_rk.glif49
-rw-r--r--tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/Q_uotM_rk.glif27
-rw-r--r--tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/R_everseS_olidus.glif13
-rw-r--r--tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/R_tC_urlyB_rac.glif47
-rw-r--r--tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/R_tP_aren.glif23
-rw-r--r--tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/R_tS_qrB_rac.glif17
-rw-r--r--tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/S_emicolon.glif38
-rw-r--r--tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/S_olidus.glif13
-rw-r--r--tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/S_pace.glif6
-rw-r--r--tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/T_ilde.glif29
-rw-r--r--tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/V_ertL_ine.glif13
-rw-r--r--tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/_notdef.glif18
-rw-r--r--tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/_null.glif4
-rw-r--r--tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/contents.plist230
-rw-r--r--tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/nonmarkingreturn.glif5
-rw-r--r--tests/reference/ufo/psfdeleteglyphs.ufo/layercontents.plist10
-rw-r--r--tests/reference/ufo/psfdeleteglyphs.ufo/lib.plist536
-rw-r--r--tests/reference/ufo/psfdeleteglyphs.ufo/metainfo.plist10
-rw-r--r--tests/reference/ufo/psfexportanchors.lg17
-rw-r--r--tests/reference/ufo/psfexportanchors.xml928
-rw-r--r--tests/reference/ufo/psfexportunicodes.csv113
-rw-r--r--tests/reference/ufo/psfexportunicodes.lg14
-rw-r--r--tests/reference/ufo/psfgenftml.ftml66
-rw-r--r--tests/reference/ufo/psfgenftml.lg19
-rw-r--r--tests/reference/ufo/psfglyphs2ufo.lg13
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/fontinfo.plist245
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/A_mpersand.glif61
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/A_pos.glif17
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/A_sterisk.glif51
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/A_tS_gn.glif80
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/C_ircumA_ccent.glif17
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/C_olon.glif35
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/C_ombA_cute.glif14
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/C_ombC_ircum.glif17
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/C_ombD_iaer.glif36
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/C_ombG_rave.glif14
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/C_ombR_ingA_bv.glif36
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/C_ombT_ilde.glif36
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/C_omma.glif24
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/D_igitE_ight.glif63
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/D_igitF_ive.glif44
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/D_igitF_our.glif27
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/D_igitN_ine.glif49
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/D_igitO_ne.glif22
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/D_igitS_even.glif25
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/D_igitS_ix.glif49
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/D_igitT_hree.glif52
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/D_igitT_wo.glif37
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/D_igitZ_ero.glif37
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/D_ollarS_gn.glif57
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/D_ottedC_irc.glif235
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/E_qS_gn.glif19
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/E_xclamationM_rk.glif31
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/F_ullS_top.glif21
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/G_T_S_gn.glif16
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/G_raveA_ccent.glif14
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/H_yphen.glif14
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/H_yphenM_inus.glif14
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/H_yphen_S_oft.glif9
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_T_S_gn.glif16
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_ftC_urlyB_rac.glif47
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_ftP_aren.glif23
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_ftS_qrB_rac.glif17
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_owL_ine.glif13
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnC_apA_.alt.glif31
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnC_apA_.glif32
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnC_apA_D_iaer.glif13
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnC_apB_.glif62
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnC_apC_.glif38
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnC_apD_.glif45
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnC_apE_.glif35
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnC_apF_.glif30
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnC_apG_.glif42
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnC_apH_.glif40
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnC_apI_.glif26
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnC_apJ_.glif32
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnC_apK_.glif34
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnC_apL_.glif28
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnC_apM_.glif38
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnC_apN_.glif37
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnC_apO_.glif40
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnC_apP_.glif50
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnC_apQ_.glif49
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnC_apR_.glif55
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnC_apS_.glif50
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnC_apT_.glif32
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnC_apU_.glif38
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnC_apV_.glif26
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnC_apW_.glif45
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnC_apX_.glif39
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnC_apY_.glif39
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mA_.glif68
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mA_A_cute.glif14
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mA_C_ircum.glif14
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mA_D_iaer.glif14
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mA_G_rave.glif14
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mA_R_ingA_bv.glif14
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mA_T_ilde.glif14
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mB_.glif50
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mC_.glif39
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mD_.glif53
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mE_.glif45
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mF_.glif39
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mG_.glif91
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mH_.glif43
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mI_.glif42
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mJ_.glif44
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mK_.glif34
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mL_.glif23
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mM_.glif52
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mN_.glif43
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mO_.glif40
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mP_.glif59
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mQ_.glif47
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mR_.glif35
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mS_.glif50
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mT_.glif35
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mU_.glif51
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mV_.glif30
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mW_.glif30
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mX_.glif40
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mY_.glif39
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/N_onB_reakingH_yphen.glif9
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/N_umS_gn.glif31
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/P_ercentS_gn.glif69
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/P_lusS_gn.glif19
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/Q_stnM_rk.glif49
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/Q_uotM_rk.glif27
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/R_everseS_olidus.glif13
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/R_tC_urlyB_rac.glif47
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/R_tP_aren.glif23
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/R_tS_qrB_rac.glif17
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/S_emicolon.glif38
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/S_olidus.glif13
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/S_pace.glif6
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/T_ilde.glif29
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/V_ertL_ine.glif13
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/_notdef.glif18
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/_null.glif4
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/contents.plist234
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/nonmarkingreturn.glif5
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/layercontents.plist10
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/lib.plist417
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/metainfo.plist10
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/fontinfo.plist260
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/A_mpersand.glif61
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/A_pos.glif17
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/A_sterisk.glif51
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/A_tS_gn.glif80
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/C_ircumA_ccent.glif8
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/C_olon.glif35
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/C_ombA_cute.glif14
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/C_ombC_ircum.glif17
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/C_ombD_iaer.glif36
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/C_ombG_rave.glif14
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/C_ombR_ingA_bv.glif36
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/C_ombT_ilde.glif36
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/C_omma.glif24
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/D_igitE_ight.glif63
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/D_igitF_ive.glif44
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/D_igitF_our.glif27
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/D_igitN_ine.glif49
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/D_igitO_ne.glif22
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/D_igitS_even.glif25
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/D_igitS_ix.glif49
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/D_igitT_hree.glif52
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/D_igitT_wo.glif37
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/D_igitZ_ero.glif37
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/D_ollarS_gn.glif53
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/D_ottedC_irc.glif235
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/E_qS_gn.glif19
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/E_xclamationM_rk.glif31
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/F_ullS_top.glif21
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/G_T_S_gn.glif16
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/G_raveA_ccent.glif8
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/H_yphen.glif14
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/H_yphenM_inus.glif14
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/H_yphen_S_oft.glif9
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_T_S_gn.glif16
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_ftC_urlyB_rac.glif47
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_ftP_aren.glif23
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_ftS_qrB_rac.glif17
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_owL_ine.glif13
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnC_apA_.alt.glif31
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnC_apA_.glif32
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnC_apA_D_iaer.glif13
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnC_apB_.glif62
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnC_apC_.glif38
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnC_apD_.glif45
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnC_apE_.glif35
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnC_apF_.glif30
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnC_apG_.glif42
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnC_apH_.glif36
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnC_apI_.glif26
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnC_apJ_.glif30
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnC_apK_.glif35
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnC_apL_.glif28
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnC_apM_.glif37
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnC_apN_.glif37
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnC_apO_.glif40
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnC_apP_.glif50
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnC_apQ_.glif49
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnC_apR_.glif55
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnC_apS_.glif50
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnC_apT_.glif32
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnC_apU_.glif38
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnC_apV_.glif26
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnC_apW_.glif45
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnC_apX_.glif35
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnC_apY_.glif32
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mA_.glif68
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mA_A_cute.glif14
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mA_C_ircum.glif14
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mA_D_iaer.glif14
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mA_G_rave.glif14
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mA_R_ingA_bv.glif41
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mA_T_ilde.glif41
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mB_.glif50
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mC_.glif39
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mD_.glif53
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mE_.glif45
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mF_.glif39
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mG_.glif91
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mH_.glif43
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mI_.glif40
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mJ_.glif44
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mK_.glif35
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mL_.glif24
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mM_.glif52
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mN_.glif43
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mO_.glif40
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mP_.glif56
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mQ_.glif47
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mR_.glif36
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mS_.glif50
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mT_.glif39
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mU_.glif51
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mV_.glif30
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mW_.glif30
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mX_.glif40
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mY_.glif42
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/N_onB_reakingH_yphen.glif9
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/N_umS_gn.glif31
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/P_ercentS_gn.glif69
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/P_lusS_gn.glif19
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/Q_stnM_rk.glif49
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/Q_uotM_rk.glif27
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/R_everseS_olidus.glif13
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/R_tC_urlyB_rac.glif47
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/R_tP_aren.glif23
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/R_tS_qrB_rac.glif17
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/S_emicolon.glif38
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/S_olidus.glif13
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/S_pace.glif6
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/T_ilde.glif29
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/V_ertL_ine.glif13
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/_notdef.glif18
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/_null.glif4
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/contents.plist234
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/nonmarkingreturn.glif5
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/layercontents.plist10
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/lib.plist417
-rw-r--r--tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/metainfo.plist10
-rw-r--r--tests/reference/ufo/psfmakefea.fea214
-rw-r--r--tests/reference/ufo/psfmakefea.lg2
-rw-r--r--tests/reference/ufo/psfmakewoffmetadata.lg13
-rw-r--r--tests/reference/ufo/psfmakewoffmetadata.xml82
-rw-r--r--tests/reference/ufo/psfnormalize.lg18
-rw-r--r--tests/reference/ufo/psfnormalize.ufo/fontinfo.plist240
-rw-r--r--tests/reference/ufo/psfnormalize.ufo/glyphs/A_mpersand.glif61
-rw-r--r--tests/reference/ufo/psfnormalize.ufo/glyphs/A_pos.glif17
-rw-r--r--tests/reference/ufo/psfnormalize.ufo/glyphs/A_sterisk.glif51
-rw-r--r--tests/reference/ufo/psfnormalize.ufo/glyphs/A_tS_gn.glif104
-rw-r--r--tests/reference/ufo/psfnormalize.ufo/glyphs/C_ircumA_ccent.glif17
-rw-r--r--tests/reference/ufo/psfnormalize.ufo/glyphs/C_olon.glif35
-rw-r--r--tests/reference/ufo/psfnormalize.ufo/glyphs/C_ombA_cute.glif14
-rw-r--r--tests/reference/ufo/psfnormalize.ufo/glyphs/C_ombC_ircum.glif17
-rw-r--r--tests/reference/ufo/psfnormalize.ufo/glyphs/C_ombD_iaer.glif36
-rw-r--r--tests/reference/ufo/psfnormalize.ufo/glyphs/C_ombG_rave.glif14
-rw-r--r--tests/reference/ufo/psfnormalize.ufo/glyphs/C_ombR_ingA_bv.glif36
-rw-r--r--tests/reference/ufo/psfnormalize.ufo/glyphs/C_ombT_ilde.glif36
-rw-r--r--tests/reference/ufo/psfnormalize.ufo/glyphs/C_omma.glif24
-rw-r--r--tests/reference/ufo/psfnormalize.ufo/glyphs/D_igitE_ight.glif63
-rw-r--r--tests/reference/ufo/psfnormalize.ufo/glyphs/D_igitF_ive.glif44
-rw-r--r--tests/reference/ufo/psfnormalize.ufo/glyphs/D_igitF_our.glif27
-rw-r--r--tests/reference/ufo/psfnormalize.ufo/glyphs/D_igitN_ine.glif49
-rw-r--r--tests/reference/ufo/psfnormalize.ufo/glyphs/D_igitO_ne.glif22
-rw-r--r--tests/reference/ufo/psfnormalize.ufo/glyphs/D_igitS_even.glif25
-rw-r--r--tests/reference/ufo/psfnormalize.ufo/glyphs/D_igitS_ix.glif49
-rw-r--r--tests/reference/ufo/psfnormalize.ufo/glyphs/D_igitT_hree.glif52
-rw-r--r--tests/reference/ufo/psfnormalize.ufo/glyphs/D_igitT_wo.glif37
-rw-r--r--tests/reference/ufo/psfnormalize.ufo/glyphs/D_igitZ_ero.glif49
-rw-r--r--tests/reference/ufo/psfnormalize.ufo/glyphs/D_ollarS_gn.glif53
-rw-r--r--tests/reference/ufo/psfnormalize.ufo/glyphs/D_ottedC_irc.glif235
-rw-r--r--tests/reference/ufo/psfnormalize.ufo/glyphs/E_qS_gn.glif19
-rw-r--r--tests/reference/ufo/psfnormalize.ufo/glyphs/E_xclamationM_rk.glif31
-rw-r--r--tests/reference/ufo/psfnormalize.ufo/glyphs/F_ullS_top.glif21
-rw-r--r--tests/reference/ufo/psfnormalize.ufo/glyphs/G_T_S_gn.glif16
-rw-r--r--tests/reference/ufo/psfnormalize.ufo/glyphs/G_raveA_ccent.glif14
-rw-r--r--tests/reference/ufo/psfnormalize.ufo/glyphs/H_yphen.glif14
-rw-r--r--tests/reference/ufo/psfnormalize.ufo/glyphs/H_yphenM_inus.glif14
-rw-r--r--tests/reference/ufo/psfnormalize.ufo/glyphs/H_yphen_S_oft.glif9
-rw-r--r--tests/reference/ufo/psfnormalize.ufo/glyphs/L_T_S_gn.glif16
-rw-r--r--tests/reference/ufo/psfnormalize.ufo/glyphs/L_ftC_urlyB_rac.glif50
-rw-r--r--tests/reference/ufo/psfnormalize.ufo/glyphs/L_ftP_aren.glif29
-rw-r--r--tests/reference/ufo/psfnormalize.ufo/glyphs/L_ftS_qrB_rac.glif17
-rw-r--r--tests/reference/ufo/psfnormalize.ufo/glyphs/L_owL_ine.glif13
-rw-r--r--tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnC_apA_.glif32
-rw-r--r--tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnC_apA_D_iaer.glif13
-rw-r--r--tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnC_apB_.glif62
-rw-r--r--tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnC_apC_.glif38
-rw-r--r--tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnC_apD_.glif51
-rw-r--r--tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnC_apE_.glif35
-rw-r--r--tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnC_apF_.glif30
-rw-r--r--tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnC_apG_.glif48
-rw-r--r--tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnC_apH_.glif36
-rw-r--r--tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnC_apI_.glif26
-rw-r--r--tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnC_apJ_.glif30
-rw-r--r--tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnC_apK_.glif35
-rw-r--r--tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnC_apL_.glif28
-rw-r--r--tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnC_apM_.glif36
-rw-r--r--tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnC_apN_.glif37
-rw-r--r--tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnC_apO_.glif40
-rw-r--r--tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnC_apP_.glif50
-rw-r--r--tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnC_apQ_.glif52
-rw-r--r--tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnC_apR_.glif55
-rw-r--r--tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnC_apS_.glif50
-rw-r--r--tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnC_apT_.glif32
-rw-r--r--tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnC_apU_.glif44
-rw-r--r--tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnC_apV_.glif26
-rw-r--r--tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnC_apW_.glif44
-rw-r--r--tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnC_apX_.glif39
-rw-r--r--tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnC_apY_.glif39
-rw-r--r--tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mA_.glif77
-rw-r--r--tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mA_A_cute.glif14
-rw-r--r--tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mA_C_ircum.glif14
-rw-r--r--tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mA_D_iaer.glif14
-rw-r--r--tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mA_G_rave.glif14
-rw-r--r--tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mA_R_ingA_bv.glif14
-rw-r--r--tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mA_T_ilde.glif14
-rw-r--r--tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mB_.glif55
-rw-r--r--tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mC_.glif39
-rw-r--r--tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mD_.glif65
-rw-r--r--tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mE_.glif52
-rw-r--r--tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mF_.glif44
-rw-r--r--tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mG_.glif100
-rw-r--r--tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mH_.glif54
-rw-r--r--tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mI_.glif50
-rw-r--r--tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mJ_.glif45
-rw-r--r--tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mK_.glif50
-rw-r--r--tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mL_.glif35
-rw-r--r--tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mM_.glif80
-rw-r--r--tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mN_.glif57
-rw-r--r--tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mO_.glif40
-rw-r--r--tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mP_.glif66
-rw-r--r--tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mQ_.glif54
-rw-r--r--tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mR_.glif42
-rw-r--r--tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mS_.glif50
-rw-r--r--tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mT_.glif45
-rw-r--r--tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mU_.glif57
-rw-r--r--tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mV_.glif34
-rw-r--r--tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mW_.glif50
-rw-r--r--tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mX_.glif40
-rw-r--r--tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mY_.glif45
-rw-r--r--tests/reference/ufo/psfnormalize.ufo/glyphs/N_onB_reakingH_yphen.glif9
-rw-r--r--tests/reference/ufo/psfnormalize.ufo/glyphs/N_umS_gn.glif31
-rw-r--r--tests/reference/ufo/psfnormalize.ufo/glyphs/P_ercentS_gn.glif93
-rw-r--r--tests/reference/ufo/psfnormalize.ufo/glyphs/P_lusS_gn.glif19
-rw-r--r--tests/reference/ufo/psfnormalize.ufo/glyphs/Q_stnM_rk.glif49
-rw-r--r--tests/reference/ufo/psfnormalize.ufo/glyphs/Q_uotM_rk.glif27
-rw-r--r--tests/reference/ufo/psfnormalize.ufo/glyphs/R_everseS_olidus.glif13
-rw-r--r--tests/reference/ufo/psfnormalize.ufo/glyphs/R_tC_urlyB_rac.glif50
-rw-r--r--tests/reference/ufo/psfnormalize.ufo/glyphs/R_tP_aren.glif29
-rw-r--r--tests/reference/ufo/psfnormalize.ufo/glyphs/R_tS_qrB_rac.glif17
-rw-r--r--tests/reference/ufo/psfnormalize.ufo/glyphs/S_emicolon.glif38
-rw-r--r--tests/reference/ufo/psfnormalize.ufo/glyphs/S_olidus.glif13
-rw-r--r--tests/reference/ufo/psfnormalize.ufo/glyphs/S_pace.glif6
-rw-r--r--tests/reference/ufo/psfnormalize.ufo/glyphs/T_ilde.glif29
-rw-r--r--tests/reference/ufo/psfnormalize.ufo/glyphs/V_ertL_ine.glif13
-rw-r--r--tests/reference/ufo/psfnormalize.ufo/glyphs/_notdef.glif18
-rw-r--r--tests/reference/ufo/psfnormalize.ufo/glyphs/_null.glif4
-rw-r--r--tests/reference/ufo/psfnormalize.ufo/glyphs/contents.plist232
-rw-r--r--tests/reference/ufo/psfnormalize.ufo/glyphs/nonmarkingreturn.glif5
-rw-r--r--tests/reference/ufo/psfnormalize.ufo/layercontents.plist10
-rw-r--r--tests/reference/ufo/psfnormalize.ufo/lib.plist534
-rw-r--r--tests/reference/ufo/psfnormalize.ufo/metainfo.plist10
-rw-r--r--tests/reference/ufo/psfrenameglyphs.lg34
-rw-r--r--tests/reference/ufo/psfrenameglyphs.ufo/fontinfo.plist244
-rw-r--r--tests/reference/ufo/psfrenameglyphs.ufo/glyphs/A_mpersand.glif61
-rw-r--r--tests/reference/ufo/psfrenameglyphs.ufo/glyphs/A_tS_gn.glif80
-rw-r--r--tests/reference/ufo/psfrenameglyphs.ufo/glyphs/B_pos.glif17
-rw-r--r--tests/reference/ufo/psfrenameglyphs.ufo/glyphs/C_ircumA_ccent.glif17
-rw-r--r--tests/reference/ufo/psfrenameglyphs.ufo/glyphs/C_olon.glif35
-rw-r--r--tests/reference/ufo/psfrenameglyphs.ufo/glyphs/C_ombA_cute.glif14
-rw-r--r--tests/reference/ufo/psfrenameglyphs.ufo/glyphs/C_ombC_ircum.glif17
-rw-r--r--tests/reference/ufo/psfrenameglyphs.ufo/glyphs/C_ombD_iaer.glif36
-rw-r--r--tests/reference/ufo/psfrenameglyphs.ufo/glyphs/C_ombG_rave.glif14
-rw-r--r--tests/reference/ufo/psfrenameglyphs.ufo/glyphs/C_ombR_ingA_bv.glif36
-rw-r--r--tests/reference/ufo/psfrenameglyphs.ufo/glyphs/C_ombT_ilde.glif36
-rw-r--r--tests/reference/ufo/psfrenameglyphs.ufo/glyphs/C_omma.glif24
-rw-r--r--tests/reference/ufo/psfrenameglyphs.ufo/glyphs/D_igitE_ight.glif63
-rw-r--r--tests/reference/ufo/psfrenameglyphs.ufo/glyphs/D_igitF_ive.glif44
-rw-r--r--tests/reference/ufo/psfrenameglyphs.ufo/glyphs/D_igitF_our.glif27
-rw-r--r--tests/reference/ufo/psfrenameglyphs.ufo/glyphs/D_igitN_ine.glif49
-rw-r--r--tests/reference/ufo/psfrenameglyphs.ufo/glyphs/D_igitO_ne.glif22
-rw-r--r--tests/reference/ufo/psfrenameglyphs.ufo/glyphs/D_igitS_even.glif25
-rw-r--r--tests/reference/ufo/psfrenameglyphs.ufo/glyphs/D_igitS_ix.glif49
-rw-r--r--tests/reference/ufo/psfrenameglyphs.ufo/glyphs/D_igitT_hree.glif52
-rw-r--r--tests/reference/ufo/psfrenameglyphs.ufo/glyphs/D_igitT_wo.glif37
-rw-r--r--tests/reference/ufo/psfrenameglyphs.ufo/glyphs/D_igitZ_ero.glif37
-rw-r--r--tests/reference/ufo/psfrenameglyphs.ufo/glyphs/D_ollarS_gn.glif57
-rw-r--r--tests/reference/ufo/psfrenameglyphs.ufo/glyphs/D_ottedC_irc.glif235
-rw-r--r--tests/reference/ufo/psfrenameglyphs.ufo/glyphs/E_qS_gn.glif19
-rw-r--r--tests/reference/ufo/psfrenameglyphs.ufo/glyphs/E_xclamationM_rk.glif31
-rw-r--r--tests/reference/ufo/psfrenameglyphs.ufo/glyphs/F_ullS_top.glif21
-rw-r--r--tests/reference/ufo/psfrenameglyphs.ufo/glyphs/G_T_S_gn.glif16
-rw-r--r--tests/reference/ufo/psfrenameglyphs.ufo/glyphs/G_raveA_ccent.glif14
-rw-r--r--tests/reference/ufo/psfrenameglyphs.ufo/glyphs/H_yphen.glif14
-rw-r--r--tests/reference/ufo/psfrenameglyphs.ufo/glyphs/H_yphenM_inus.glif14
-rw-r--r--tests/reference/ufo/psfrenameglyphs.ufo/glyphs/H_yphen_S_oft.glif9
-rw-r--r--tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_T_S_gn.glif16
-rw-r--r--tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_ftC_urlyB_rac.glif47
-rw-r--r--tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_ftP_aren.glif23
-rw-r--r--tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_ftS_qrB_rac.glif17
-rw-r--r--tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_owL_ine.glif13
-rw-r--r--tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnC_apA_.alt.glif31
-rw-r--r--tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnC_apA_.glif32
-rw-r--r--tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnC_apA_D_iaer.glif13
-rw-r--r--tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnC_apB_.glif62
-rw-r--r--tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnC_apC_.glif38
-rw-r--r--tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnC_apD_.glif45
-rw-r--r--tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnC_apE_.glif35
-rw-r--r--tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnC_apF_.glif30
-rw-r--r--tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnC_apG_.glif42
-rw-r--r--tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnC_apH_.glif40
-rw-r--r--tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnC_apI_.glif26
-rw-r--r--tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnC_apJ_.glif32
-rw-r--r--tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnC_apK_.glif34
-rw-r--r--tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnC_apL_.glif28
-rw-r--r--tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnC_apM_.glif38
-rw-r--r--tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnC_apN_.glif37
-rw-r--r--tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnC_apO_.glif40
-rw-r--r--tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnC_apP_.glif50
-rw-r--r--tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnC_apQ_.glif49
-rw-r--r--tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnC_apR_.glif55
-rw-r--r--tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnC_apS_.glif50
-rw-r--r--tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnC_apT_.glif32
-rw-r--r--tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnC_apU_.glif38
-rw-r--r--tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnC_apV_.glif26
-rw-r--r--tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnC_apW_.glif45
-rw-r--r--tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnC_apX_.glif39
-rw-r--r--tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnC_apY_.glif39
-rw-r--r--tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mA_.glif76
-rw-r--r--tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mA_A_cute.glif14
-rw-r--r--tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mA_C_ircum.glif14
-rw-r--r--tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mA_D_iaer.glif14
-rw-r--r--tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mA_G_rave.glif14
-rw-r--r--tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mA_R_ingA_bv.glif14
-rw-r--r--tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mA_T_ilde.glif14
-rw-r--r--tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mB_.glif50
-rw-r--r--tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mC_.glif39
-rw-r--r--tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mD_.glif53
-rw-r--r--tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mE_.glif45
-rw-r--r--tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mF_.glif39
-rw-r--r--tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mG_.glif91
-rw-r--r--tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mH_.glif43
-rw-r--r--tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mI_.glif42
-rw-r--r--tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mJ_.glif44
-rw-r--r--tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mK_.glif34
-rw-r--r--tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mL_.glif23
-rw-r--r--tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mM_.glif52
-rw-r--r--tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mN_.glif43
-rw-r--r--tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mO_.glif40
-rw-r--r--tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mP_.glif59
-rw-r--r--tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mQ_.glif47
-rw-r--r--tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mR_.glif35
-rw-r--r--tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mS_.glif50
-rw-r--r--tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mT_.glif35
-rw-r--r--tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mU_.glif51
-rw-r--r--tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mV_.glif30
-rw-r--r--tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mW_.glif30
-rw-r--r--tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mX_.glif40
-rw-r--r--tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mY_.glif39
-rw-r--r--tests/reference/ufo/psfrenameglyphs.ufo/glyphs/N_onB_reakingH_yphen.glif9
-rw-r--r--tests/reference/ufo/psfrenameglyphs.ufo/glyphs/N_umS_gn.glif31
-rw-r--r--tests/reference/ufo/psfrenameglyphs.ufo/glyphs/P_ercentS_gn.glif69
-rw-r--r--tests/reference/ufo/psfrenameglyphs.ufo/glyphs/P_lusS_gn.glif19
-rw-r--r--tests/reference/ufo/psfrenameglyphs.ufo/glyphs/Q_stnM_rk.glif49
-rw-r--r--tests/reference/ufo/psfrenameglyphs.ufo/glyphs/Q_uotM_rk.glif27
-rw-r--r--tests/reference/ufo/psfrenameglyphs.ufo/glyphs/R_everseS_olidus.glif13
-rw-r--r--tests/reference/ufo/psfrenameglyphs.ufo/glyphs/R_tC_urlyB_rac.glif47
-rw-r--r--tests/reference/ufo/psfrenameglyphs.ufo/glyphs/R_tP_aren.glif23
-rw-r--r--tests/reference/ufo/psfrenameglyphs.ufo/glyphs/R_tS_qrB_rac.glif17
-rw-r--r--tests/reference/ufo/psfrenameglyphs.ufo/glyphs/S_emicolon.glif38
-rw-r--r--tests/reference/ufo/psfrenameglyphs.ufo/glyphs/S_olidus.glif13
-rw-r--r--tests/reference/ufo/psfrenameglyphs.ufo/glyphs/S_pace.glif6
-rw-r--r--tests/reference/ufo/psfrenameglyphs.ufo/glyphs/S_tar.glif51
-rw-r--r--tests/reference/ufo/psfrenameglyphs.ufo/glyphs/T_ilde.glif29
-rw-r--r--tests/reference/ufo/psfrenameglyphs.ufo/glyphs/V_ertL_ine.glif13
-rw-r--r--tests/reference/ufo/psfrenameglyphs.ufo/glyphs/_notdef.glif18
-rw-r--r--tests/reference/ufo/psfrenameglyphs.ufo/glyphs/_null.glif4
-rw-r--r--tests/reference/ufo/psfrenameglyphs.ufo/glyphs/contents.plist234
-rw-r--r--tests/reference/ufo/psfrenameglyphs.ufo/glyphs/nonmarkingreturn.glif5
-rw-r--r--tests/reference/ufo/psfrenameglyphs.ufo/layercontents.plist10
-rw-r--r--tests/reference/ufo/psfrenameglyphs.ufo/lib.plist531
-rw-r--r--tests/reference/ufo/psfrenameglyphs.ufo/metainfo.plist10
-rw-r--r--tests/reference/ufo/psfsetassocfeat.lg30
-rw-r--r--tests/reference/ufo/psfsetassocfeat.ufo/fontinfo.plist243
-rw-r--r--tests/reference/ufo/psfsetassocfeat.ufo/glyphs/A_mpersand.glif61
-rw-r--r--tests/reference/ufo/psfsetassocfeat.ufo/glyphs/A_pos.glif17
-rw-r--r--tests/reference/ufo/psfsetassocfeat.ufo/glyphs/A_sterisk.glif51
-rw-r--r--tests/reference/ufo/psfsetassocfeat.ufo/glyphs/A_tS_gn.glif104
-rw-r--r--tests/reference/ufo/psfsetassocfeat.ufo/glyphs/C_ircumA_ccent.glif17
-rw-r--r--tests/reference/ufo/psfsetassocfeat.ufo/glyphs/C_olon.glif35
-rw-r--r--tests/reference/ufo/psfsetassocfeat.ufo/glyphs/C_ombA_cute.glif14
-rw-r--r--tests/reference/ufo/psfsetassocfeat.ufo/glyphs/C_ombC_ircum.glif17
-rw-r--r--tests/reference/ufo/psfsetassocfeat.ufo/glyphs/C_ombD_iaer.glif36
-rw-r--r--tests/reference/ufo/psfsetassocfeat.ufo/glyphs/C_ombG_rave.glif14
-rw-r--r--tests/reference/ufo/psfsetassocfeat.ufo/glyphs/C_ombR_ingA_bv.glif36
-rw-r--r--tests/reference/ufo/psfsetassocfeat.ufo/glyphs/C_ombT_ilde.glif36
-rw-r--r--tests/reference/ufo/psfsetassocfeat.ufo/glyphs/C_omma.glif24
-rw-r--r--tests/reference/ufo/psfsetassocfeat.ufo/glyphs/D_igitE_ight.glif63
-rw-r--r--tests/reference/ufo/psfsetassocfeat.ufo/glyphs/D_igitF_ive.glif44
-rw-r--r--tests/reference/ufo/psfsetassocfeat.ufo/glyphs/D_igitF_our.glif27
-rw-r--r--tests/reference/ufo/psfsetassocfeat.ufo/glyphs/D_igitN_ine.glif49
-rw-r--r--tests/reference/ufo/psfsetassocfeat.ufo/glyphs/D_igitO_ne.glif22
-rw-r--r--tests/reference/ufo/psfsetassocfeat.ufo/glyphs/D_igitS_even.glif25
-rw-r--r--tests/reference/ufo/psfsetassocfeat.ufo/glyphs/D_igitS_ix.glif49
-rw-r--r--tests/reference/ufo/psfsetassocfeat.ufo/glyphs/D_igitT_hree.glif52
-rw-r--r--tests/reference/ufo/psfsetassocfeat.ufo/glyphs/D_igitT_wo.glif37
-rw-r--r--tests/reference/ufo/psfsetassocfeat.ufo/glyphs/D_igitZ_ero.glif49
-rw-r--r--tests/reference/ufo/psfsetassocfeat.ufo/glyphs/D_ollarS_gn.glif53
-rw-r--r--tests/reference/ufo/psfsetassocfeat.ufo/glyphs/D_ottedC_irc.glif235
-rw-r--r--tests/reference/ufo/psfsetassocfeat.ufo/glyphs/E_qS_gn.glif19
-rw-r--r--tests/reference/ufo/psfsetassocfeat.ufo/glyphs/E_xclamationM_rk.glif31
-rw-r--r--tests/reference/ufo/psfsetassocfeat.ufo/glyphs/F_ullS_top.glif21
-rw-r--r--tests/reference/ufo/psfsetassocfeat.ufo/glyphs/G_T_S_gn.glif16
-rw-r--r--tests/reference/ufo/psfsetassocfeat.ufo/glyphs/G_raveA_ccent.glif14
-rw-r--r--tests/reference/ufo/psfsetassocfeat.ufo/glyphs/H_yphen.glif14
-rw-r--r--tests/reference/ufo/psfsetassocfeat.ufo/glyphs/H_yphenM_inus.glif14
-rw-r--r--tests/reference/ufo/psfsetassocfeat.ufo/glyphs/H_yphen_S_oft.glif9
-rw-r--r--tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_T_S_gn.glif16
-rw-r--r--tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_ftC_urlyB_rac.glif50
-rw-r--r--tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_ftP_aren.glif29
-rw-r--r--tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_ftS_qrB_rac.glif17
-rw-r--r--tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_owL_ine.glif13
-rw-r--r--tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnC_apA_.glif38
-rw-r--r--tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnC_apA_D_iaer.glif13
-rw-r--r--tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnC_apB_.glif62
-rw-r--r--tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnC_apC_.glif38
-rw-r--r--tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnC_apD_.glif51
-rw-r--r--tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnC_apE_.glif35
-rw-r--r--tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnC_apF_.glif30
-rw-r--r--tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnC_apG_.glif48
-rw-r--r--tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnC_apH_.glif36
-rw-r--r--tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnC_apI_.glif26
-rw-r--r--tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnC_apJ_.glif30
-rw-r--r--tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnC_apK_.glif35
-rw-r--r--tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnC_apL_.glif28
-rw-r--r--tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnC_apM_.glif36
-rw-r--r--tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnC_apN_.glif37
-rw-r--r--tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnC_apO_.glif40
-rw-r--r--tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnC_apP_.glif50
-rw-r--r--tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnC_apQ_.glif52
-rw-r--r--tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnC_apR_.glif55
-rw-r--r--tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnC_apS_.glif50
-rw-r--r--tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnC_apT_.glif32
-rw-r--r--tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnC_apU_.glif50
-rw-r--r--tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnC_apV_.glif26
-rw-r--r--tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnC_apW_.glif44
-rw-r--r--tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnC_apX_.glif39
-rw-r--r--tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnC_apY_.glif39
-rw-r--r--tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mA_.glif77
-rw-r--r--tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mA_A_cute.glif14
-rw-r--r--tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mA_C_ircum.glif14
-rw-r--r--tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mA_D_iaer.glif14
-rw-r--r--tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mA_G_rave.glif14
-rw-r--r--tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mA_R_ingA_bv.glif14
-rw-r--r--tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mA_T_ilde.glif14
-rw-r--r--tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mB_.glif55
-rw-r--r--tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mC_.glif39
-rw-r--r--tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mD_.glif65
-rw-r--r--tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mE_.glif52
-rw-r--r--tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mF_.glif44
-rw-r--r--tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mG_.glif100
-rw-r--r--tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mH_.glif54
-rw-r--r--tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mI_.glif50
-rw-r--r--tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mJ_.glif45
-rw-r--r--tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mK_.glif50
-rw-r--r--tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mL_.glif35
-rw-r--r--tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mM_.glif80
-rw-r--r--tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mN_.glif57
-rw-r--r--tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mO_.glif40
-rw-r--r--tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mP_.glif66
-rw-r--r--tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mQ_.glif54
-rw-r--r--tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mR_.glif42
-rw-r--r--tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mS_.glif50
-rw-r--r--tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mT_.glif45
-rw-r--r--tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mU_.glif57
-rw-r--r--tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mV_.glif34
-rw-r--r--tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mW_.glif50
-rw-r--r--tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mX_.glif40
-rw-r--r--tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mY_.glif45
-rw-r--r--tests/reference/ufo/psfsetassocfeat.ufo/glyphs/N_onB_reakingH_yphen.glif9
-rw-r--r--tests/reference/ufo/psfsetassocfeat.ufo/glyphs/N_umS_gn.glif31
-rw-r--r--tests/reference/ufo/psfsetassocfeat.ufo/glyphs/P_ercentS_gn.glif93
-rw-r--r--tests/reference/ufo/psfsetassocfeat.ufo/glyphs/P_lusS_gn.glif19
-rw-r--r--tests/reference/ufo/psfsetassocfeat.ufo/glyphs/Q_stnM_rk.glif49
-rw-r--r--tests/reference/ufo/psfsetassocfeat.ufo/glyphs/Q_uotM_rk.glif27
-rw-r--r--tests/reference/ufo/psfsetassocfeat.ufo/glyphs/R_everseS_olidus.glif13
-rw-r--r--tests/reference/ufo/psfsetassocfeat.ufo/glyphs/R_tC_urlyB_rac.glif50
-rw-r--r--tests/reference/ufo/psfsetassocfeat.ufo/glyphs/R_tP_aren.glif29
-rw-r--r--tests/reference/ufo/psfsetassocfeat.ufo/glyphs/R_tS_qrB_rac.glif17
-rw-r--r--tests/reference/ufo/psfsetassocfeat.ufo/glyphs/S_emicolon.glif38
-rw-r--r--tests/reference/ufo/psfsetassocfeat.ufo/glyphs/S_olidus.glif13
-rw-r--r--tests/reference/ufo/psfsetassocfeat.ufo/glyphs/S_pace.glif6
-rw-r--r--tests/reference/ufo/psfsetassocfeat.ufo/glyphs/T_ilde.glif29
-rw-r--r--tests/reference/ufo/psfsetassocfeat.ufo/glyphs/V_ertL_ine.glif13
-rw-r--r--tests/reference/ufo/psfsetassocfeat.ufo/glyphs/_notdef.glif18
-rw-r--r--tests/reference/ufo/psfsetassocfeat.ufo/glyphs/_null.glif4
-rw-r--r--tests/reference/ufo/psfsetassocfeat.ufo/glyphs/contents.plist232
-rw-r--r--tests/reference/ufo/psfsetassocfeat.ufo/glyphs/nonmarkingreturn.glif5
-rw-r--r--tests/reference/ufo/psfsetassocfeat.ufo/layercontents.plist10
-rw-r--r--tests/reference/ufo/psfsetassocfeat.ufo/lib.plist538
-rw-r--r--tests/reference/ufo/psfsetassocfeat.ufo/metainfo.plist10
-rw-r--r--tests/reference/ufo/psfsetassocuids.lg22
-rw-r--r--tests/reference/ufo/psfsetassocuids.ufo/fontinfo.plist245
-rw-r--r--tests/reference/ufo/psfsetassocuids.ufo/glyphs/A_mpersand.glif61
-rw-r--r--tests/reference/ufo/psfsetassocuids.ufo/glyphs/A_pos.glif17
-rw-r--r--tests/reference/ufo/psfsetassocuids.ufo/glyphs/A_sterisk.glif51
-rw-r--r--tests/reference/ufo/psfsetassocuids.ufo/glyphs/A_tS_gn.glif80
-rw-r--r--tests/reference/ufo/psfsetassocuids.ufo/glyphs/C_ircumA_ccent.glif25
-rw-r--r--tests/reference/ufo/psfsetassocuids.ufo/glyphs/C_olon.glif35
-rw-r--r--tests/reference/ufo/psfsetassocuids.ufo/glyphs/C_ombA_cute.glif14
-rw-r--r--tests/reference/ufo/psfsetassocuids.ufo/glyphs/C_ombC_ircum.glif17
-rw-r--r--tests/reference/ufo/psfsetassocuids.ufo/glyphs/C_ombD_iaer.glif36
-rw-r--r--tests/reference/ufo/psfsetassocuids.ufo/glyphs/C_ombG_rave.glif14
-rw-r--r--tests/reference/ufo/psfsetassocuids.ufo/glyphs/C_ombR_ingA_bv.glif36
-rw-r--r--tests/reference/ufo/psfsetassocuids.ufo/glyphs/C_ombT_ilde.glif36
-rw-r--r--tests/reference/ufo/psfsetassocuids.ufo/glyphs/C_omma.glif24
-rw-r--r--tests/reference/ufo/psfsetassocuids.ufo/glyphs/D_igitE_ight.glif63
-rw-r--r--tests/reference/ufo/psfsetassocuids.ufo/glyphs/D_igitF_ive.glif44
-rw-r--r--tests/reference/ufo/psfsetassocuids.ufo/glyphs/D_igitF_our.glif27
-rw-r--r--tests/reference/ufo/psfsetassocuids.ufo/glyphs/D_igitN_ine.glif49
-rw-r--r--tests/reference/ufo/psfsetassocuids.ufo/glyphs/D_igitO_ne.glif22
-rw-r--r--tests/reference/ufo/psfsetassocuids.ufo/glyphs/D_igitS_even.glif25
-rw-r--r--tests/reference/ufo/psfsetassocuids.ufo/glyphs/D_igitS_ix.glif49
-rw-r--r--tests/reference/ufo/psfsetassocuids.ufo/glyphs/D_igitT_hree.glif52
-rw-r--r--tests/reference/ufo/psfsetassocuids.ufo/glyphs/D_igitT_wo.glif37
-rw-r--r--tests/reference/ufo/psfsetassocuids.ufo/glyphs/D_igitZ_ero.glif37
-rw-r--r--tests/reference/ufo/psfsetassocuids.ufo/glyphs/D_ollarS_gn.glif57
-rw-r--r--tests/reference/ufo/psfsetassocuids.ufo/glyphs/D_ottedC_irc.glif235
-rw-r--r--tests/reference/ufo/psfsetassocuids.ufo/glyphs/E_qS_gn.glif19
-rw-r--r--tests/reference/ufo/psfsetassocuids.ufo/glyphs/E_xclamationM_rk.glif31
-rw-r--r--tests/reference/ufo/psfsetassocuids.ufo/glyphs/F_ullS_top.glif21
-rw-r--r--tests/reference/ufo/psfsetassocuids.ufo/glyphs/G_T_S_gn.glif16
-rw-r--r--tests/reference/ufo/psfsetassocuids.ufo/glyphs/G_raveA_ccent.glif14
-rw-r--r--tests/reference/ufo/psfsetassocuids.ufo/glyphs/H_yphen.glif14
-rw-r--r--tests/reference/ufo/psfsetassocuids.ufo/glyphs/H_yphenM_inus.glif14
-rw-r--r--tests/reference/ufo/psfsetassocuids.ufo/glyphs/H_yphen_S_oft.glif9
-rw-r--r--tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_T_S_gn.glif16
-rw-r--r--tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_ftC_urlyB_rac.glif47
-rw-r--r--tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_ftP_aren.glif23
-rw-r--r--tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_ftS_qrB_rac.glif17
-rw-r--r--tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_owL_ine.glif13
-rw-r--r--tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnC_apA_.alt.glif31
-rw-r--r--tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnC_apA_.glif32
-rw-r--r--tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnC_apA_D_iaer.glif13
-rw-r--r--tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnC_apB_.glif62
-rw-r--r--tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnC_apC_.glif38
-rw-r--r--tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnC_apD_.glif45
-rw-r--r--tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnC_apE_.glif35
-rw-r--r--tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnC_apF_.glif30
-rw-r--r--tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnC_apG_.glif42
-rw-r--r--tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnC_apH_.glif40
-rw-r--r--tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnC_apI_.glif26
-rw-r--r--tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnC_apJ_.glif32
-rw-r--r--tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnC_apK_.glif34
-rw-r--r--tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnC_apL_.glif28
-rw-r--r--tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnC_apM_.glif38
-rw-r--r--tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnC_apN_.glif37
-rw-r--r--tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnC_apO_.glif40
-rw-r--r--tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnC_apP_.glif50
-rw-r--r--tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnC_apQ_.glif49
-rw-r--r--tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnC_apR_.glif55
-rw-r--r--tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnC_apS_.glif50
-rw-r--r--tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnC_apT_.glif32
-rw-r--r--tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnC_apU_.glif46
-rw-r--r--tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnC_apV_.glif26
-rw-r--r--tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnC_apW_.glif45
-rw-r--r--tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnC_apX_.glif39
-rw-r--r--tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnC_apY_.glif39
-rw-r--r--tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mA_.glif76
-rw-r--r--tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mA_A_cute.glif14
-rw-r--r--tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mA_C_ircum.glif14
-rw-r--r--tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mA_D_iaer.glif14
-rw-r--r--tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mA_G_rave.glif14
-rw-r--r--tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mA_R_ingA_bv.glif14
-rw-r--r--tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mA_T_ilde.glif14
-rw-r--r--tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mB_.glif50
-rw-r--r--tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mC_.glif39
-rw-r--r--tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mD_.glif53
-rw-r--r--tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mE_.glif45
-rw-r--r--tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mF_.glif39
-rw-r--r--tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mG_.glif91
-rw-r--r--tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mH_.glif43
-rw-r--r--tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mI_.glif42
-rw-r--r--tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mJ_.glif44
-rw-r--r--tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mK_.glif34
-rw-r--r--tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mL_.glif23
-rw-r--r--tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mM_.glif52
-rw-r--r--tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mN_.glif43
-rw-r--r--tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mO_.glif40
-rw-r--r--tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mP_.glif59
-rw-r--r--tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mQ_.glif47
-rw-r--r--tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mR_.glif35
-rw-r--r--tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mS_.glif50
-rw-r--r--tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mT_.glif35
-rw-r--r--tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mU_.glif51
-rw-r--r--tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mV_.glif30
-rw-r--r--tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mW_.glif30
-rw-r--r--tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mX_.glif40
-rw-r--r--tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mY_.glif39
-rw-r--r--tests/reference/ufo/psfsetassocuids.ufo/glyphs/N_onB_reakingH_yphen.glif9
-rw-r--r--tests/reference/ufo/psfsetassocuids.ufo/glyphs/N_umS_gn.glif31
-rw-r--r--tests/reference/ufo/psfsetassocuids.ufo/glyphs/P_ercentS_gn.glif69
-rw-r--r--tests/reference/ufo/psfsetassocuids.ufo/glyphs/P_lusS_gn.glif19
-rw-r--r--tests/reference/ufo/psfsetassocuids.ufo/glyphs/Q_stnM_rk.glif49
-rw-r--r--tests/reference/ufo/psfsetassocuids.ufo/glyphs/Q_uotM_rk.glif27
-rw-r--r--tests/reference/ufo/psfsetassocuids.ufo/glyphs/R_everseS_olidus.glif13
-rw-r--r--tests/reference/ufo/psfsetassocuids.ufo/glyphs/R_tC_urlyB_rac.glif47
-rw-r--r--tests/reference/ufo/psfsetassocuids.ufo/glyphs/R_tP_aren.glif23
-rw-r--r--tests/reference/ufo/psfsetassocuids.ufo/glyphs/R_tS_qrB_rac.glif17
-rw-r--r--tests/reference/ufo/psfsetassocuids.ufo/glyphs/S_emicolon.glif38
-rw-r--r--tests/reference/ufo/psfsetassocuids.ufo/glyphs/S_olidus.glif13
-rw-r--r--tests/reference/ufo/psfsetassocuids.ufo/glyphs/S_pace.glif6
-rw-r--r--tests/reference/ufo/psfsetassocuids.ufo/glyphs/T_ilde.glif29
-rw-r--r--tests/reference/ufo/psfsetassocuids.ufo/glyphs/V_ertL_ine.glif13
-rw-r--r--tests/reference/ufo/psfsetassocuids.ufo/glyphs/_notdef.glif18
-rw-r--r--tests/reference/ufo/psfsetassocuids.ufo/glyphs/_null.glif4
-rw-r--r--tests/reference/ufo/psfsetassocuids.ufo/glyphs/contents.plist234
-rw-r--r--tests/reference/ufo/psfsetassocuids.ufo/glyphs/nonmarkingreturn.glif5
-rw-r--r--tests/reference/ufo/psfsetassocuids.ufo/layercontents.plist10
-rw-r--r--tests/reference/ufo/psfsetassocuids.ufo/lib.plist535
-rw-r--r--tests/reference/ufo/psfsetassocuids.ufo/metainfo.plist10
-rw-r--r--tests/reference/ufo/psfsetglyphorder.lg158
-rw-r--r--tests/reference/ufo/psfsetglyphorder.ufo/fontinfo.plist243
-rw-r--r--tests/reference/ufo/psfsetglyphorder.ufo/glyphs/A_mpersand.glif61
-rw-r--r--tests/reference/ufo/psfsetglyphorder.ufo/glyphs/A_pos.glif17
-rw-r--r--tests/reference/ufo/psfsetglyphorder.ufo/glyphs/A_sterisk.glif51
-rw-r--r--tests/reference/ufo/psfsetglyphorder.ufo/glyphs/A_tS_gn.glif104
-rw-r--r--tests/reference/ufo/psfsetglyphorder.ufo/glyphs/C_ircumA_ccent.glif17
-rw-r--r--tests/reference/ufo/psfsetglyphorder.ufo/glyphs/C_olon.glif35
-rw-r--r--tests/reference/ufo/psfsetglyphorder.ufo/glyphs/C_ombA_cute.glif14
-rw-r--r--tests/reference/ufo/psfsetglyphorder.ufo/glyphs/C_ombC_ircum.glif17
-rw-r--r--tests/reference/ufo/psfsetglyphorder.ufo/glyphs/C_ombD_iaer.glif36
-rw-r--r--tests/reference/ufo/psfsetglyphorder.ufo/glyphs/C_ombG_rave.glif14
-rw-r--r--tests/reference/ufo/psfsetglyphorder.ufo/glyphs/C_ombR_ingA_bv.glif36
-rw-r--r--tests/reference/ufo/psfsetglyphorder.ufo/glyphs/C_ombT_ilde.glif36
-rw-r--r--tests/reference/ufo/psfsetglyphorder.ufo/glyphs/C_omma.glif24
-rw-r--r--tests/reference/ufo/psfsetglyphorder.ufo/glyphs/D_igitE_ight.glif63
-rw-r--r--tests/reference/ufo/psfsetglyphorder.ufo/glyphs/D_igitF_ive.glif44
-rw-r--r--tests/reference/ufo/psfsetglyphorder.ufo/glyphs/D_igitF_our.glif27
-rw-r--r--tests/reference/ufo/psfsetglyphorder.ufo/glyphs/D_igitN_ine.glif49
-rw-r--r--tests/reference/ufo/psfsetglyphorder.ufo/glyphs/D_igitO_ne.glif22
-rw-r--r--tests/reference/ufo/psfsetglyphorder.ufo/glyphs/D_igitS_even.glif25
-rw-r--r--tests/reference/ufo/psfsetglyphorder.ufo/glyphs/D_igitS_ix.glif49
-rw-r--r--tests/reference/ufo/psfsetglyphorder.ufo/glyphs/D_igitT_hree.glif52
-rw-r--r--tests/reference/ufo/psfsetglyphorder.ufo/glyphs/D_igitT_wo.glif37
-rw-r--r--tests/reference/ufo/psfsetglyphorder.ufo/glyphs/D_igitZ_ero.glif49
-rw-r--r--tests/reference/ufo/psfsetglyphorder.ufo/glyphs/D_ollarS_gn.glif53
-rw-r--r--tests/reference/ufo/psfsetglyphorder.ufo/glyphs/D_ottedC_irc.glif235
-rw-r--r--tests/reference/ufo/psfsetglyphorder.ufo/glyphs/E_qS_gn.glif19
-rw-r--r--tests/reference/ufo/psfsetglyphorder.ufo/glyphs/E_xclamationM_rk.glif31
-rw-r--r--tests/reference/ufo/psfsetglyphorder.ufo/glyphs/F_ullS_top.glif21
-rw-r--r--tests/reference/ufo/psfsetglyphorder.ufo/glyphs/G_T_S_gn.glif16
-rw-r--r--tests/reference/ufo/psfsetglyphorder.ufo/glyphs/G_raveA_ccent.glif14
-rw-r--r--tests/reference/ufo/psfsetglyphorder.ufo/glyphs/H_yphen.glif14
-rw-r--r--tests/reference/ufo/psfsetglyphorder.ufo/glyphs/H_yphenM_inus.glif14
-rw-r--r--tests/reference/ufo/psfsetglyphorder.ufo/glyphs/H_yphen_S_oft.glif9
-rw-r--r--tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_T_S_gn.glif16
-rw-r--r--tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_ftC_urlyB_rac.glif50
-rw-r--r--tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_ftP_aren.glif29
-rw-r--r--tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_ftS_qrB_rac.glif17
-rw-r--r--tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_owL_ine.glif13
-rw-r--r--tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnC_apA_.glif32
-rw-r--r--tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnC_apA_D_iaer.glif13
-rw-r--r--tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnC_apB_.glif62
-rw-r--r--tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnC_apC_.glif38
-rw-r--r--tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnC_apD_.glif51
-rw-r--r--tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnC_apE_.glif35
-rw-r--r--tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnC_apF_.glif30
-rw-r--r--tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnC_apG_.glif48
-rw-r--r--tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnC_apH_.glif36
-rw-r--r--tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnC_apI_.glif26
-rw-r--r--tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnC_apJ_.glif30
-rw-r--r--tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnC_apK_.glif35
-rw-r--r--tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnC_apL_.glif28
-rw-r--r--tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnC_apM_.glif36
-rw-r--r--tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnC_apN_.glif37
-rw-r--r--tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnC_apO_.glif40
-rw-r--r--tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnC_apP_.glif50
-rw-r--r--tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnC_apQ_.glif52
-rw-r--r--tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnC_apR_.glif55
-rw-r--r--tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnC_apS_.glif50
-rw-r--r--tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnC_apT_.glif32
-rw-r--r--tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnC_apU_.glif44
-rw-r--r--tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnC_apV_.glif26
-rw-r--r--tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnC_apW_.glif44
-rw-r--r--tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnC_apX_.glif39
-rw-r--r--tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnC_apY_.glif39
-rw-r--r--tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mA_.glif77
-rw-r--r--tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mA_A_cute.glif14
-rw-r--r--tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mA_C_ircum.glif14
-rw-r--r--tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mA_D_iaer.glif14
-rw-r--r--tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mA_G_rave.glif14
-rw-r--r--tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mA_R_ingA_bv.glif14
-rw-r--r--tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mA_T_ilde.glif14
-rw-r--r--tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mB_.glif55
-rw-r--r--tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mC_.glif39
-rw-r--r--tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mD_.glif65
-rw-r--r--tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mE_.glif52
-rw-r--r--tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mF_.glif44
-rw-r--r--tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mG_.glif100
-rw-r--r--tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mH_.glif54
-rw-r--r--tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mI_.glif50
-rw-r--r--tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mJ_.glif45
-rw-r--r--tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mK_.glif50
-rw-r--r--tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mL_.glif35
-rw-r--r--tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mM_.glif80
-rw-r--r--tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mN_.glif57
-rw-r--r--tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mO_.glif40
-rw-r--r--tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mP_.glif66
-rw-r--r--tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mQ_.glif54
-rw-r--r--tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mR_.glif42
-rw-r--r--tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mS_.glif50
-rw-r--r--tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mT_.glif45
-rw-r--r--tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mU_.glif57
-rw-r--r--tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mV_.glif34
-rw-r--r--tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mW_.glif50
-rw-r--r--tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mX_.glif40
-rw-r--r--tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mY_.glif45
-rw-r--r--tests/reference/ufo/psfsetglyphorder.ufo/glyphs/N_onB_reakingH_yphen.glif9
-rw-r--r--tests/reference/ufo/psfsetglyphorder.ufo/glyphs/N_umS_gn.glif31
-rw-r--r--tests/reference/ufo/psfsetglyphorder.ufo/glyphs/P_ercentS_gn.glif93
-rw-r--r--tests/reference/ufo/psfsetglyphorder.ufo/glyphs/P_lusS_gn.glif19
-rw-r--r--tests/reference/ufo/psfsetglyphorder.ufo/glyphs/Q_stnM_rk.glif49
-rw-r--r--tests/reference/ufo/psfsetglyphorder.ufo/glyphs/Q_uotM_rk.glif27
-rw-r--r--tests/reference/ufo/psfsetglyphorder.ufo/glyphs/R_everseS_olidus.glif13
-rw-r--r--tests/reference/ufo/psfsetglyphorder.ufo/glyphs/R_tC_urlyB_rac.glif50
-rw-r--r--tests/reference/ufo/psfsetglyphorder.ufo/glyphs/R_tP_aren.glif29
-rw-r--r--tests/reference/ufo/psfsetglyphorder.ufo/glyphs/R_tS_qrB_rac.glif17
-rw-r--r--tests/reference/ufo/psfsetglyphorder.ufo/glyphs/S_emicolon.glif38
-rw-r--r--tests/reference/ufo/psfsetglyphorder.ufo/glyphs/S_olidus.glif13
-rw-r--r--tests/reference/ufo/psfsetglyphorder.ufo/glyphs/S_pace.glif6
-rw-r--r--tests/reference/ufo/psfsetglyphorder.ufo/glyphs/T_ilde.glif29
-rw-r--r--tests/reference/ufo/psfsetglyphorder.ufo/glyphs/V_ertL_ine.glif13
-rw-r--r--tests/reference/ufo/psfsetglyphorder.ufo/glyphs/_notdef.glif18
-rw-r--r--tests/reference/ufo/psfsetglyphorder.ufo/glyphs/_null.glif4
-rw-r--r--tests/reference/ufo/psfsetglyphorder.ufo/glyphs/contents.plist232
-rw-r--r--tests/reference/ufo/psfsetglyphorder.ufo/glyphs/nonmarkingreturn.glif5
-rw-r--r--tests/reference/ufo/psfsetglyphorder.ufo/layercontents.plist10
-rw-r--r--tests/reference/ufo/psfsetglyphorder.ufo/lib.plist451
-rw-r--r--tests/reference/ufo/psfsetglyphorder.ufo/metainfo.plist10
-rw-r--r--tests/reference/ufo/psfsetkeys.lg27
-rw-r--r--tests/reference/ufo/psfsetkeys.ufo/fontinfo.plist242
-rw-r--r--tests/reference/ufo/psfsetkeys.ufo/glyphs/A_mpersand.glif61
-rw-r--r--tests/reference/ufo/psfsetkeys.ufo/glyphs/A_pos.glif17
-rw-r--r--tests/reference/ufo/psfsetkeys.ufo/glyphs/A_sterisk.glif51
-rw-r--r--tests/reference/ufo/psfsetkeys.ufo/glyphs/A_tS_gn.glif104
-rw-r--r--tests/reference/ufo/psfsetkeys.ufo/glyphs/C_ircumA_ccent.glif17
-rw-r--r--tests/reference/ufo/psfsetkeys.ufo/glyphs/C_olon.glif35
-rw-r--r--tests/reference/ufo/psfsetkeys.ufo/glyphs/C_ombA_cute.glif14
-rw-r--r--tests/reference/ufo/psfsetkeys.ufo/glyphs/C_ombC_ircum.glif17
-rw-r--r--tests/reference/ufo/psfsetkeys.ufo/glyphs/C_ombD_iaer.glif36
-rw-r--r--tests/reference/ufo/psfsetkeys.ufo/glyphs/C_ombG_rave.glif14
-rw-r--r--tests/reference/ufo/psfsetkeys.ufo/glyphs/C_ombR_ingA_bv.glif36
-rw-r--r--tests/reference/ufo/psfsetkeys.ufo/glyphs/C_ombT_ilde.glif36
-rw-r--r--tests/reference/ufo/psfsetkeys.ufo/glyphs/C_omma.glif24
-rw-r--r--tests/reference/ufo/psfsetkeys.ufo/glyphs/D_igitE_ight.glif63
-rw-r--r--tests/reference/ufo/psfsetkeys.ufo/glyphs/D_igitF_ive.glif44
-rw-r--r--tests/reference/ufo/psfsetkeys.ufo/glyphs/D_igitF_our.glif27
-rw-r--r--tests/reference/ufo/psfsetkeys.ufo/glyphs/D_igitN_ine.glif49
-rw-r--r--tests/reference/ufo/psfsetkeys.ufo/glyphs/D_igitO_ne.glif22
-rw-r--r--tests/reference/ufo/psfsetkeys.ufo/glyphs/D_igitS_even.glif25
-rw-r--r--tests/reference/ufo/psfsetkeys.ufo/glyphs/D_igitS_ix.glif49
-rw-r--r--tests/reference/ufo/psfsetkeys.ufo/glyphs/D_igitT_hree.glif52
-rw-r--r--tests/reference/ufo/psfsetkeys.ufo/glyphs/D_igitT_wo.glif37
-rw-r--r--tests/reference/ufo/psfsetkeys.ufo/glyphs/D_igitZ_ero.glif49
-rw-r--r--tests/reference/ufo/psfsetkeys.ufo/glyphs/D_ollarS_gn.glif57
-rw-r--r--tests/reference/ufo/psfsetkeys.ufo/glyphs/D_ottedC_irc.glif235
-rw-r--r--tests/reference/ufo/psfsetkeys.ufo/glyphs/E_qS_gn.glif19
-rw-r--r--tests/reference/ufo/psfsetkeys.ufo/glyphs/E_xclamationM_rk.glif31
-rw-r--r--tests/reference/ufo/psfsetkeys.ufo/glyphs/F_ullS_top.glif21
-rw-r--r--tests/reference/ufo/psfsetkeys.ufo/glyphs/G_T_S_gn.glif16
-rw-r--r--tests/reference/ufo/psfsetkeys.ufo/glyphs/G_raveA_ccent.glif14
-rw-r--r--tests/reference/ufo/psfsetkeys.ufo/glyphs/H_yphen.glif14
-rw-r--r--tests/reference/ufo/psfsetkeys.ufo/glyphs/H_yphenM_inus.glif14
-rw-r--r--tests/reference/ufo/psfsetkeys.ufo/glyphs/H_yphen_S_oft.glif9
-rw-r--r--tests/reference/ufo/psfsetkeys.ufo/glyphs/L_T_S_gn.glif16
-rw-r--r--tests/reference/ufo/psfsetkeys.ufo/glyphs/L_ftC_urlyB_rac.glif50
-rw-r--r--tests/reference/ufo/psfsetkeys.ufo/glyphs/L_ftP_aren.glif29
-rw-r--r--tests/reference/ufo/psfsetkeys.ufo/glyphs/L_ftS_qrB_rac.glif17
-rw-r--r--tests/reference/ufo/psfsetkeys.ufo/glyphs/L_owL_ine.glif13
-rw-r--r--tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnC_apA_.glif32
-rw-r--r--tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnC_apA_D_iaer.glif13
-rw-r--r--tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnC_apB_.glif62
-rw-r--r--tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnC_apC_.glif38
-rw-r--r--tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnC_apD_.glif51
-rw-r--r--tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnC_apE_.glif35
-rw-r--r--tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnC_apF_.glif30
-rw-r--r--tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnC_apG_.glif48
-rw-r--r--tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnC_apH_.glif40
-rw-r--r--tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnC_apI_.glif26
-rw-r--r--tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnC_apJ_.glif32
-rw-r--r--tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnC_apK_.glif35
-rw-r--r--tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnC_apL_.glif28
-rw-r--r--tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnC_apM_.glif38
-rw-r--r--tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnC_apN_.glif37
-rw-r--r--tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnC_apO_.glif40
-rw-r--r--tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnC_apP_.glif50
-rw-r--r--tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnC_apQ_.glif52
-rw-r--r--tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnC_apR_.glif55
-rw-r--r--tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnC_apS_.glif50
-rw-r--r--tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnC_apT_.glif32
-rw-r--r--tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnC_apU_.glif44
-rw-r--r--tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnC_apV_.glif26
-rw-r--r--tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnC_apW_.glif45
-rw-r--r--tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnC_apX_.glif39
-rw-r--r--tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnC_apY_.glif39
-rw-r--r--tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mA_.glif79
-rw-r--r--tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mA_A_cute.glif14
-rw-r--r--tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mA_C_ircum.glif14
-rw-r--r--tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mA_D_iaer.glif14
-rw-r--r--tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mA_G_rave.glif14
-rw-r--r--tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mA_R_ingA_bv.glif14
-rw-r--r--tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mA_T_ilde.glif14
-rw-r--r--tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mB_.glif55
-rw-r--r--tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mC_.glif39
-rw-r--r--tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mD_.glif65
-rw-r--r--tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mE_.glif52
-rw-r--r--tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mF_.glif44
-rw-r--r--tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mG_.glif91
-rw-r--r--tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mH_.glif54
-rw-r--r--tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mI_.glif50
-rw-r--r--tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mJ_.glif45
-rw-r--r--tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mK_.glif45
-rw-r--r--tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mL_.glif35
-rw-r--r--tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mM_.glif80
-rw-r--r--tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mN_.glif57
-rw-r--r--tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mO_.glif40
-rw-r--r--tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mP_.glif66
-rw-r--r--tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mQ_.glif54
-rw-r--r--tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mR_.glif42
-rw-r--r--tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mS_.glif50
-rw-r--r--tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mT_.glif45
-rw-r--r--tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mU_.glif57
-rw-r--r--tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mV_.glif34
-rw-r--r--tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mW_.glif50
-rw-r--r--tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mX_.glif40
-rw-r--r--tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mY_.glif45
-rw-r--r--tests/reference/ufo/psfsetkeys.ufo/glyphs/N_onB_reakingH_yphen.glif9
-rw-r--r--tests/reference/ufo/psfsetkeys.ufo/glyphs/N_umS_gn.glif31
-rw-r--r--tests/reference/ufo/psfsetkeys.ufo/glyphs/P_ercentS_gn.glif93
-rw-r--r--tests/reference/ufo/psfsetkeys.ufo/glyphs/P_lusS_gn.glif19
-rw-r--r--tests/reference/ufo/psfsetkeys.ufo/glyphs/Q_stnM_rk.glif49
-rw-r--r--tests/reference/ufo/psfsetkeys.ufo/glyphs/Q_uotM_rk.glif27
-rw-r--r--tests/reference/ufo/psfsetkeys.ufo/glyphs/R_everseS_olidus.glif13
-rw-r--r--tests/reference/ufo/psfsetkeys.ufo/glyphs/R_tC_urlyB_rac.glif47
-rw-r--r--tests/reference/ufo/psfsetkeys.ufo/glyphs/R_tP_aren.glif29
-rw-r--r--tests/reference/ufo/psfsetkeys.ufo/glyphs/R_tS_qrB_rac.glif17
-rw-r--r--tests/reference/ufo/psfsetkeys.ufo/glyphs/S_emicolon.glif38
-rw-r--r--tests/reference/ufo/psfsetkeys.ufo/glyphs/S_olidus.glif13
-rw-r--r--tests/reference/ufo/psfsetkeys.ufo/glyphs/S_pace.glif6
-rw-r--r--tests/reference/ufo/psfsetkeys.ufo/glyphs/T_ilde.glif29
-rw-r--r--tests/reference/ufo/psfsetkeys.ufo/glyphs/V_ertL_ine.glif13
-rw-r--r--tests/reference/ufo/psfsetkeys.ufo/glyphs/_notdef.glif18
-rw-r--r--tests/reference/ufo/psfsetkeys.ufo/glyphs/_null.glif4
-rw-r--r--tests/reference/ufo/psfsetkeys.ufo/glyphs/contents.plist232
-rw-r--r--tests/reference/ufo/psfsetkeys.ufo/glyphs/nonmarkingreturn.glif5
-rw-r--r--tests/reference/ufo/psfsetkeys.ufo/layercontents.plist10
-rw-r--r--tests/reference/ufo/psfsetkeys.ufo/lib.plist534
-rw-r--r--tests/reference/ufo/psfsetkeys.ufo/metainfo.plist10
-rw-r--r--tests/reference/ufo/psfsetpsnames.lg155
-rw-r--r--tests/reference/ufo/psfsetpsnames.ufo/fontinfo.plist245
-rw-r--r--tests/reference/ufo/psfsetpsnames.ufo/glyphs/A_mpersand.glif61
-rw-r--r--tests/reference/ufo/psfsetpsnames.ufo/glyphs/A_pos.glif17
-rw-r--r--tests/reference/ufo/psfsetpsnames.ufo/glyphs/A_sterisk.glif51
-rw-r--r--tests/reference/ufo/psfsetpsnames.ufo/glyphs/A_tS_gn.glif104
-rw-r--r--tests/reference/ufo/psfsetpsnames.ufo/glyphs/C_ircumA_ccent.glif17
-rw-r--r--tests/reference/ufo/psfsetpsnames.ufo/glyphs/C_olon.glif35
-rw-r--r--tests/reference/ufo/psfsetpsnames.ufo/glyphs/C_ombA_cute.glif14
-rw-r--r--tests/reference/ufo/psfsetpsnames.ufo/glyphs/C_ombC_ircum.glif17
-rw-r--r--tests/reference/ufo/psfsetpsnames.ufo/glyphs/C_ombD_iaer.glif36
-rw-r--r--tests/reference/ufo/psfsetpsnames.ufo/glyphs/C_ombG_rave.glif14
-rw-r--r--tests/reference/ufo/psfsetpsnames.ufo/glyphs/C_ombR_ingA_bv.glif36
-rw-r--r--tests/reference/ufo/psfsetpsnames.ufo/glyphs/C_ombT_ilde.glif36
-rw-r--r--tests/reference/ufo/psfsetpsnames.ufo/glyphs/C_omma.glif24
-rw-r--r--tests/reference/ufo/psfsetpsnames.ufo/glyphs/D_igitE_ight.glif63
-rw-r--r--tests/reference/ufo/psfsetpsnames.ufo/glyphs/D_igitF_ive.glif44
-rw-r--r--tests/reference/ufo/psfsetpsnames.ufo/glyphs/D_igitF_our.glif27
-rw-r--r--tests/reference/ufo/psfsetpsnames.ufo/glyphs/D_igitN_ine.glif49
-rw-r--r--tests/reference/ufo/psfsetpsnames.ufo/glyphs/D_igitO_ne.glif22
-rw-r--r--tests/reference/ufo/psfsetpsnames.ufo/glyphs/D_igitS_even.glif25
-rw-r--r--tests/reference/ufo/psfsetpsnames.ufo/glyphs/D_igitS_ix.glif49
-rw-r--r--tests/reference/ufo/psfsetpsnames.ufo/glyphs/D_igitT_hree.glif52
-rw-r--r--tests/reference/ufo/psfsetpsnames.ufo/glyphs/D_igitT_wo.glif37
-rw-r--r--tests/reference/ufo/psfsetpsnames.ufo/glyphs/D_igitZ_ero.glif49
-rw-r--r--tests/reference/ufo/psfsetpsnames.ufo/glyphs/D_ollarS_gn.glif57
-rw-r--r--tests/reference/ufo/psfsetpsnames.ufo/glyphs/D_ottedC_irc.glif235
-rw-r--r--tests/reference/ufo/psfsetpsnames.ufo/glyphs/E_qS_gn.glif19
-rw-r--r--tests/reference/ufo/psfsetpsnames.ufo/glyphs/E_xclamationM_rk.glif31
-rw-r--r--tests/reference/ufo/psfsetpsnames.ufo/glyphs/F_ullS_top.glif21
-rw-r--r--tests/reference/ufo/psfsetpsnames.ufo/glyphs/G_T_S_gn.glif16
-rw-r--r--tests/reference/ufo/psfsetpsnames.ufo/glyphs/G_raveA_ccent.glif14
-rw-r--r--tests/reference/ufo/psfsetpsnames.ufo/glyphs/H_yphen.glif14
-rw-r--r--tests/reference/ufo/psfsetpsnames.ufo/glyphs/H_yphenM_inus.glif14
-rw-r--r--tests/reference/ufo/psfsetpsnames.ufo/glyphs/H_yphen_S_oft.glif9
-rw-r--r--tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_T_S_gn.glif16
-rw-r--r--tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_ftC_urlyB_rac.glif50
-rw-r--r--tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_ftP_aren.glif29
-rw-r--r--tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_ftS_qrB_rac.glif17
-rw-r--r--tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_owL_ine.glif13
-rw-r--r--tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnC_apA_.glif32
-rw-r--r--tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnC_apA_D_iaer.glif13
-rw-r--r--tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnC_apB_.glif62
-rw-r--r--tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnC_apC_.glif38
-rw-r--r--tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnC_apD_.glif51
-rw-r--r--tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnC_apE_.glif35
-rw-r--r--tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnC_apF_.glif30
-rw-r--r--tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnC_apG_.glif48
-rw-r--r--tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnC_apH_.glif40
-rw-r--r--tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnC_apI_.glif26
-rw-r--r--tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnC_apJ_.glif32
-rw-r--r--tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnC_apK_.glif35
-rw-r--r--tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnC_apL_.glif28
-rw-r--r--tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnC_apM_.glif38
-rw-r--r--tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnC_apN_.glif37
-rw-r--r--tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnC_apO_.glif40
-rw-r--r--tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnC_apP_.glif50
-rw-r--r--tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnC_apQ_.glif52
-rw-r--r--tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnC_apR_.glif55
-rw-r--r--tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnC_apS_.glif50
-rw-r--r--tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnC_apT_.glif32
-rw-r--r--tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnC_apU_.glif44
-rw-r--r--tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnC_apV_.glif26
-rw-r--r--tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnC_apW_.glif45
-rw-r--r--tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnC_apX_.glif39
-rw-r--r--tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnC_apY_.glif39
-rw-r--r--tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mA_.glif79
-rw-r--r--tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mA_A_cute.glif14
-rw-r--r--tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mA_C_ircum.glif14
-rw-r--r--tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mA_D_iaer.glif14
-rw-r--r--tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mA_G_rave.glif14
-rw-r--r--tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mA_R_ingA_bv.glif14
-rw-r--r--tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mA_T_ilde.glif14
-rw-r--r--tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mB_.glif55
-rw-r--r--tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mC_.glif39
-rw-r--r--tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mD_.glif65
-rw-r--r--tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mE_.glif52
-rw-r--r--tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mF_.glif44
-rw-r--r--tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mG_.glif91
-rw-r--r--tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mH_.glif54
-rw-r--r--tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mI_.glif50
-rw-r--r--tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mJ_.glif45
-rw-r--r--tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mK_.glif45
-rw-r--r--tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mL_.glif35
-rw-r--r--tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mM_.glif80
-rw-r--r--tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mN_.glif57
-rw-r--r--tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mO_.glif40
-rw-r--r--tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mP_.glif66
-rw-r--r--tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mQ_.glif54
-rw-r--r--tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mR_.glif42
-rw-r--r--tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mS_.glif50
-rw-r--r--tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mT_.glif45
-rw-r--r--tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mU_.glif57
-rw-r--r--tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mV_.glif34
-rw-r--r--tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mW_.glif50
-rw-r--r--tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mX_.glif40
-rw-r--r--tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mY_.glif45
-rw-r--r--tests/reference/ufo/psfsetpsnames.ufo/glyphs/N_onB_reakingH_yphen.glif9
-rw-r--r--tests/reference/ufo/psfsetpsnames.ufo/glyphs/N_umS_gn.glif31
-rw-r--r--tests/reference/ufo/psfsetpsnames.ufo/glyphs/P_ercentS_gn.glif93
-rw-r--r--tests/reference/ufo/psfsetpsnames.ufo/glyphs/P_lusS_gn.glif19
-rw-r--r--tests/reference/ufo/psfsetpsnames.ufo/glyphs/Q_stnM_rk.glif49
-rw-r--r--tests/reference/ufo/psfsetpsnames.ufo/glyphs/Q_uotM_rk.glif27
-rw-r--r--tests/reference/ufo/psfsetpsnames.ufo/glyphs/R_everseS_olidus.glif13
-rw-r--r--tests/reference/ufo/psfsetpsnames.ufo/glyphs/R_tC_urlyB_rac.glif47
-rw-r--r--tests/reference/ufo/psfsetpsnames.ufo/glyphs/R_tP_aren.glif29
-rw-r--r--tests/reference/ufo/psfsetpsnames.ufo/glyphs/R_tS_qrB_rac.glif17
-rw-r--r--tests/reference/ufo/psfsetpsnames.ufo/glyphs/S_emicolon.glif38
-rw-r--r--tests/reference/ufo/psfsetpsnames.ufo/glyphs/S_olidus.glif13
-rw-r--r--tests/reference/ufo/psfsetpsnames.ufo/glyphs/S_pace.glif6
-rw-r--r--tests/reference/ufo/psfsetpsnames.ufo/glyphs/T_ilde.glif29
-rw-r--r--tests/reference/ufo/psfsetpsnames.ufo/glyphs/V_ertL_ine.glif13
-rw-r--r--tests/reference/ufo/psfsetpsnames.ufo/glyphs/_notdef.glif18
-rw-r--r--tests/reference/ufo/psfsetpsnames.ufo/glyphs/_null.glif4
-rw-r--r--tests/reference/ufo/psfsetpsnames.ufo/glyphs/contents.plist232
-rw-r--r--tests/reference/ufo/psfsetpsnames.ufo/glyphs/nonmarkingreturn.glif5
-rw-r--r--tests/reference/ufo/psfsetpsnames.ufo/layercontents.plist10
-rw-r--r--tests/reference/ufo/psfsetpsnames.ufo/lib.plist368
-rw-r--r--tests/reference/ufo/psfsetpsnames.ufo/metainfo.plist10
-rw-r--r--tests/reference/ufo/psfsetunicodes.lg149
-rw-r--r--tests/reference/ufo/psfsetunicodes.ufo/fontinfo.plist240
-rw-r--r--tests/reference/ufo/psfsetunicodes.ufo/glyphs/A_mpersand.glif61
-rw-r--r--tests/reference/ufo/psfsetunicodes.ufo/glyphs/A_pos.glif17
-rw-r--r--tests/reference/ufo/psfsetunicodes.ufo/glyphs/A_sterisk.glif51
-rw-r--r--tests/reference/ufo/psfsetunicodes.ufo/glyphs/A_tS_gn.glif104
-rw-r--r--tests/reference/ufo/psfsetunicodes.ufo/glyphs/C_ircumA_ccent.glif17
-rw-r--r--tests/reference/ufo/psfsetunicodes.ufo/glyphs/C_olon.glif35
-rw-r--r--tests/reference/ufo/psfsetunicodes.ufo/glyphs/C_ombA_cute.glif14
-rw-r--r--tests/reference/ufo/psfsetunicodes.ufo/glyphs/C_ombC_ircum.glif17
-rw-r--r--tests/reference/ufo/psfsetunicodes.ufo/glyphs/C_ombD_iaer.glif36
-rw-r--r--tests/reference/ufo/psfsetunicodes.ufo/glyphs/C_ombG_rave.glif14
-rw-r--r--tests/reference/ufo/psfsetunicodes.ufo/glyphs/C_ombR_ingA_bv.glif36
-rw-r--r--tests/reference/ufo/psfsetunicodes.ufo/glyphs/C_ombT_ilde.glif36
-rw-r--r--tests/reference/ufo/psfsetunicodes.ufo/glyphs/C_omma.glif23
-rw-r--r--tests/reference/ufo/psfsetunicodes.ufo/glyphs/D_igitE_ight.glif63
-rw-r--r--tests/reference/ufo/psfsetunicodes.ufo/glyphs/D_igitF_ive.glif44
-rw-r--r--tests/reference/ufo/psfsetunicodes.ufo/glyphs/D_igitF_our.glif27
-rw-r--r--tests/reference/ufo/psfsetunicodes.ufo/glyphs/D_igitN_ine.glif49
-rw-r--r--tests/reference/ufo/psfsetunicodes.ufo/glyphs/D_igitO_ne.glif22
-rw-r--r--tests/reference/ufo/psfsetunicodes.ufo/glyphs/D_igitS_even.glif25
-rw-r--r--tests/reference/ufo/psfsetunicodes.ufo/glyphs/D_igitS_ix.glif49
-rw-r--r--tests/reference/ufo/psfsetunicodes.ufo/glyphs/D_igitT_hree.glif52
-rw-r--r--tests/reference/ufo/psfsetunicodes.ufo/glyphs/D_igitT_wo.glif37
-rw-r--r--tests/reference/ufo/psfsetunicodes.ufo/glyphs/D_igitZ_ero.glif49
-rw-r--r--tests/reference/ufo/psfsetunicodes.ufo/glyphs/D_ollarS_gn.glif53
-rw-r--r--tests/reference/ufo/psfsetunicodes.ufo/glyphs/D_ottedC_irc.glif235
-rw-r--r--tests/reference/ufo/psfsetunicodes.ufo/glyphs/E_qS_gn.glif19
-rw-r--r--tests/reference/ufo/psfsetunicodes.ufo/glyphs/E_xclamationM_rk.glif31
-rw-r--r--tests/reference/ufo/psfsetunicodes.ufo/glyphs/F_ullS_top.glif21
-rw-r--r--tests/reference/ufo/psfsetunicodes.ufo/glyphs/G_T_S_gn.glif16
-rw-r--r--tests/reference/ufo/psfsetunicodes.ufo/glyphs/G_raveA_ccent.glif14
-rw-r--r--tests/reference/ufo/psfsetunicodes.ufo/glyphs/H_yphen.glif14
-rw-r--r--tests/reference/ufo/psfsetunicodes.ufo/glyphs/H_yphenM_inus.glif14
-rw-r--r--tests/reference/ufo/psfsetunicodes.ufo/glyphs/H_yphen_S_oft.glif9
-rw-r--r--tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_T_S_gn.glif16
-rw-r--r--tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_ftC_urlyB_rac.glif50
-rw-r--r--tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_ftP_aren.glif29
-rw-r--r--tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_ftS_qrB_rac.glif17
-rw-r--r--tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_owL_ine.glif13
-rw-r--r--tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnC_apA_.glif32
-rw-r--r--tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnC_apA_D_iaer.glif13
-rw-r--r--tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnC_apB_.glif62
-rw-r--r--tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnC_apC_.glif38
-rw-r--r--tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnC_apD_.glif51
-rw-r--r--tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnC_apE_.glif35
-rw-r--r--tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnC_apF_.glif30
-rw-r--r--tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnC_apG_.glif48
-rw-r--r--tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnC_apH_.glif36
-rw-r--r--tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnC_apI_.glif26
-rw-r--r--tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnC_apJ_.glif30
-rw-r--r--tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnC_apK_.glif35
-rw-r--r--tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnC_apL_.glif28
-rw-r--r--tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnC_apM_.glif36
-rw-r--r--tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnC_apN_.glif37
-rw-r--r--tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnC_apO_.glif40
-rw-r--r--tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnC_apP_.glif50
-rw-r--r--tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnC_apQ_.glif52
-rw-r--r--tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnC_apR_.glif55
-rw-r--r--tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnC_apS_.glif50
-rw-r--r--tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnC_apT_.glif32
-rw-r--r--tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnC_apU_.glif44
-rw-r--r--tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnC_apV_.glif26
-rw-r--r--tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnC_apW_.glif44
-rw-r--r--tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnC_apX_.glif39
-rw-r--r--tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnC_apY_.glif39
-rw-r--r--tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mA_.glif77
-rw-r--r--tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mA_A_cute.glif14
-rw-r--r--tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mA_C_ircum.glif14
-rw-r--r--tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mA_D_iaer.glif14
-rw-r--r--tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mA_G_rave.glif14
-rw-r--r--tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mA_R_ingA_bv.glif14
-rw-r--r--tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mA_T_ilde.glif14
-rw-r--r--tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mB_.glif55
-rw-r--r--tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mC_.glif39
-rw-r--r--tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mD_.glif65
-rw-r--r--tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mE_.glif52
-rw-r--r--tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mF_.glif44
-rw-r--r--tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mG_.glif100
-rw-r--r--tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mH_.glif54
-rw-r--r--tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mI_.glif50
-rw-r--r--tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mJ_.glif45
-rw-r--r--tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mK_.glif50
-rw-r--r--tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mL_.glif35
-rw-r--r--tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mM_.glif80
-rw-r--r--tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mN_.glif57
-rw-r--r--tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mO_.glif40
-rw-r--r--tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mP_.glif66
-rw-r--r--tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mQ_.glif54
-rw-r--r--tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mR_.glif42
-rw-r--r--tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mS_.glif50
-rw-r--r--tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mT_.glif45
-rw-r--r--tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mU_.glif57
-rw-r--r--tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mV_.glif34
-rw-r--r--tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mW_.glif50
-rw-r--r--tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mX_.glif40
-rw-r--r--tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mY_.glif45
-rw-r--r--tests/reference/ufo/psfsetunicodes.ufo/glyphs/N_onB_reakingH_yphen.glif9
-rw-r--r--tests/reference/ufo/psfsetunicodes.ufo/glyphs/N_umS_gn.glif31
-rw-r--r--tests/reference/ufo/psfsetunicodes.ufo/glyphs/P_ercentS_gn.glif93
-rw-r--r--tests/reference/ufo/psfsetunicodes.ufo/glyphs/P_lusS_gn.glif19
-rw-r--r--tests/reference/ufo/psfsetunicodes.ufo/glyphs/Q_stnM_rk.glif49
-rw-r--r--tests/reference/ufo/psfsetunicodes.ufo/glyphs/Q_uotM_rk.glif27
-rw-r--r--tests/reference/ufo/psfsetunicodes.ufo/glyphs/R_everseS_olidus.glif13
-rw-r--r--tests/reference/ufo/psfsetunicodes.ufo/glyphs/R_tC_urlyB_rac.glif50
-rw-r--r--tests/reference/ufo/psfsetunicodes.ufo/glyphs/R_tP_aren.glif29
-rw-r--r--tests/reference/ufo/psfsetunicodes.ufo/glyphs/R_tS_qrB_rac.glif17
-rw-r--r--tests/reference/ufo/psfsetunicodes.ufo/glyphs/S_emicolon.glif38
-rw-r--r--tests/reference/ufo/psfsetunicodes.ufo/glyphs/S_olidus.glif13
-rw-r--r--tests/reference/ufo/psfsetunicodes.ufo/glyphs/S_pace.glif6
-rw-r--r--tests/reference/ufo/psfsetunicodes.ufo/glyphs/T_ilde.glif29
-rw-r--r--tests/reference/ufo/psfsetunicodes.ufo/glyphs/V_ertL_ine.glif13
-rw-r--r--tests/reference/ufo/psfsetunicodes.ufo/glyphs/_notdef.glif18
-rw-r--r--tests/reference/ufo/psfsetunicodes.ufo/glyphs/_null.glif4
-rw-r--r--tests/reference/ufo/psfsetunicodes.ufo/glyphs/contents.plist232
-rw-r--r--tests/reference/ufo/psfsetunicodes.ufo/glyphs/nonmarkingreturn.glif5
-rw-r--r--tests/reference/ufo/psfsetunicodes.ufo/layercontents.plist10
-rw-r--r--tests/reference/ufo/psfsetunicodes.ufo/lib.plist534
-rw-r--r--tests/reference/ufo/psfsetunicodes.ufo/metainfo.plist10
-rw-r--r--tests/reference/ufo/psfsyncmasters-Bold-fontinfo.plist245
-rw-r--r--tests/reference/ufo/psfsyncmasters-Bold-lib.plist536
-rw-r--r--tests/reference/ufo/psfsyncmasters-BoldItalic-fontinfo.plist243
-rw-r--r--tests/reference/ufo/psfsyncmasters-Italic-fontinfo.plist243
-rw-r--r--tests/reference/ufo/psfsyncmasters.lg12
-rw-r--r--tests/reference/ufo/psfufo2ttf.lg4
-rw-r--r--tests/reference/ufo/psfufo2ttf.ttfbin0 -> 22532 bytes
-rw-r--r--tests/resetreferencelogs.py67
-rw-r--r--tests/runlocalufotests.py63
-rw-r--r--tests/runmakefeatests.py46
-rw-r--r--tests/setuplocalufotests.py69
-rw-r--r--tests/setuptestdata.py47
-rw-r--r--tests/ufo/test_10_psfbuildcomp.py37
-rw-r--r--tests/ufo/test_16_psfchangettfglyphnames.py37
-rw-r--r--tests/ufo/test_18_psfcheckbasicchars.py36
-rw-r--r--tests/ufo/test_23_psfcopyglyphs.py41
-rw-r--r--tests/ufo/test_30_psfdeleteglyphs.py37
-rw-r--r--tests/ufo/test_34_psfexportanchors.py36
-rw-r--r--tests/ufo/test_36_psfexportunicodes.py36
-rw-r--r--tests/ufo/test_38_psfgenftml.py75
-rw-r--r--tests/ufo/test_40_psfglyphs2ufo.py64
-rw-r--r--tests/ufo/test_42_psfmakefea.py37
-rw-r--r--tests/ufo/test_44_psfmakewoffmetatdata.py37
-rw-r--r--tests/ufo/test_46_psfrenameglyphs.py37
-rw-r--r--tests/ufo/test_50_psfsetassocfeat.py37
-rw-r--r--tests/ufo/test_52_psfsetassocuids.py37
-rw-r--r--tests/ufo/test_54_psfsetglyphorder.py37
-rw-r--r--tests/ufo/test_56_psfsetkeys.py37
-rw-r--r--tests/ufo/test_60_psfsetpsnames.py37
-rw-r--r--tests/ufo/test_62_psfsetunicodes.py37
-rw-r--r--tests/ufo/test_80_psfsyncmasters.py73
-rw-r--r--tests/ufo/test_88_psfufo2ttf.py37
-rw-r--r--tests/ufo/test_99_psfnormalize.py37
2258 files changed, 124905 insertions, 0 deletions
diff --git a/tests/fontparts/test_10_psfbuildcompgc.py b/tests/fontparts/test_10_psfbuildcompgc.py
new file mode 100644
index 0000000..ef8b17d
--- /dev/null
+++ b/tests/fontparts/test_10_psfbuildcompgc.py
@@ -0,0 +1,37 @@
+#!/usr/bin/env python
+''' Test of script named in testname below
+'''
+__url__ = 'http://github.com/silnrsi/pysilfont'
+__copyright__ = 'Copyright (c) 2018 SIL International (http://www.sil.org)'
+__license__ = 'Released under the MIT License (http://opensource.org/licenses/MIT)'
+__author__ = 'David Raymond'
+
+import silfont.util
+
+# Next 7 lines of code may be test-specific
+import silfont.scripts.psfbuildcompgc as testcommand
+testname = "psfbuildcompgc"
+cl = "psfbuildcompgc tests/input/font-psf-test/source/PsfTest-Regular.ufo -i tests/input/psfbuildcomp.txt -l local/testresults/fontparts/psfbuildcompgc.log"
+outfont = "local/testresults/fontparts/psfbuildcompgc.ufo" # Set to None for commands which don't output a font
+diffexts = [".ufo", ".log"] # List of extensions of all output files
+exp_errors = 0 # These may need updating if the test ufo is updated
+exp_warnings = 0 # The test ufo should have some errors/warnings to test the code!
+
+# Code after this can be the same for most/all tests; if needed to be different for a test remove this comment!
+
+def test_run():
+ result = silfont.util.test_run("FP", cl, testcommand, outfont, exp_errors, exp_warnings)
+ assert result
+
+def test_diffs(): # Do a diff on all output files
+ result = silfont.util.test_diffs("fontparts", testname, diffexts)
+ assert result
+
+if __name__ == "__main__":
+ test_run()
+ test_diffs()
+
+
+
+
+
diff --git a/tests/input/PsfTest-R.ttf b/tests/input/PsfTest-R.ttf
new file mode 100644
index 0000000..547fcd2
--- /dev/null
+++ b/tests/input/PsfTest-R.ttf
Binary files differ
diff --git a/tests/input/font-psf-test/FONTLOG.txt b/tests/input/font-psf-test/FONTLOG.txt
new file mode 100644
index 0000000..01ffd97
--- /dev/null
+++ b/tests/input/font-psf-test/FONTLOG.txt
@@ -0,0 +1,174 @@
+FONTLOG
+Psf Test
+==========================
+
+
+This file provides detailed information on the Psf Test family
+of fonts. This information should be distributed along with the Andika
+Mtihani fonts and any derivative works.
+
+Psf Test is a font family used only for testing the pysilfont framework.
+It is not intended to be an installable font family and doesn't even
+contain a complete Latin alphabet (Z and z are missing). The contents of
+these fonts are taken from Andika New Basic (https://scripts.sil.org/andika).
+
+For copyright and licensing information - including any Reserved Font
+Names - see OFL.txt.
+
+For practical information about using, modifying and redistributing this
+font see OFL-FAQ.txt.
+
+
+ChangeLog
+----------
+(This should list both major and minor changes, most recent first.)
+
+9 Aug 2018 (SIL NRSI team) Psf Test version 5.500
+- Reduced character set to only a useful subset and missing a few characters
+- Intended only as a test font for pysilfont
+
+20 Apr 2015 (SIL NRSI team) Andika New Basic version 5.500
+- Reduced character set to a "Basic" number of characters
+- Added Bold, Italic, and Bold-Italic faces
+- Improved design of U+0254/U+0186 and their .TopSerif alternates
+- Metrics of these alternates are now same as those of default glyphs
+- Added Capital J alternate for U+004A
+
+27 Oct 2014 (SIL NRSI team) Andika Regular version 5.000
+- Added Stylistic Sets to the font for OpenType support
+ of previously Graphite-only features
+- Added Character Variants to the font for OpenType support
+ of previously Graphite-only features
+- Added Serbian feature when Serbian language is turned on
+- Added hook D variant feature (for U+018A/U+0257)
+- Removed "Show deprecated PUA" feature
+- Removed "Romanian-style diacritics" feature
+ (because glyphs are now encoded)
+- Removed "Diacritic selection" feature
+- Added U+039E, U+03BC, U+03C6 and U+03C9 in the Greek and Coptic block
+- Added U+0528..U+052F in the Cyrillic Supplement block
+- Added U+2041 in the General Punctuation block
+- Added U+2095..U+209C in the Superscripts and Subscripts block
+- Added U+20B6..U+20BD in the Currency Symbols block
+- Added U+210C, U+2113, U+2117, U+212D, U+2135, U+214F in the
+ Letterlike Symbols block
+- Added U+2150..U+2152 and U+2189 in the Number Forms block
+- Added U+2226, U+2234..U+2235, U+2262, U+2282..U+2287 in the
+ Mathematical Operators block
+- Added U+2640, U+2642, U+266D, U+266F in the Miscellaneous Symbols block
+- Added U+27E8..U+27E9 in the Miscellaneous Mathematical Symbols-A block
+- Added U+2C7E..U+2C7F in the Latin Extended-C block
+- Added U+2C88 in the Coptic block
+- Added U+2E00..U+2E0D, U+2E3A..U+2E3B in the Supplemental
+ Punctuation block
+- Added U+A736..U+A73F, U+A742..U+A74D, U+A750..U+A787, U+A790..U+A7AD,
+ U+A7B0..U+A7B1, U+A7F7..U+A7FA in the Latin Extended-D block.
+ These were also added to relevant features.
+- Added U+A92E in the Kayah Li block (to support the Kayah Li language
+ when using the Roman script)
+- Added U+AB64..U+AB65 in the Latin Extended-E block
+- Added U+1D40C, U+1D504..U+1D505, U+1D50A, U+1D50E..U+1D50F, U+1D514,
+ U+1D516..U+1D517, U+1D519 in the Mathematical Alphanumeric Symbols block
+- Added PUA characters U+F26C (curl J) and U+F26D (left-hook b)
+- Characters in our PUA that were added to Unicode have had their
+ codepoints updated:
+ F1AD>A7F9, F266>A78E, F26B>A78D, F32C>0526, F32D>0527, F17B>1DFD, F209>2C70
+- These PUA characters were deprecated (now white on black glyphs):
+ U+F17B, U+F1AD, U+F209, U+F247, U+F248, U+F266, U+F26B, U+F32C, U+F32D
+- Deleted U+0149 as it is officially deprecated in Unicode
+- Added support for shorter macrons under narrow letters (i,l,r,t).
+ (This only works for Graphite or using precomposed characters in OpenType.)
+- Made it possible for saltillo characters (U+A78B and U+A78C) to "carry"
+ diacritics
+- Improved design of U+A722..U+A725 and U+A78D
+- Refactored all cedilla positioning
+- Removal of unneeded duplicate glyphs (because of improvements in smart
+ font code)
+- Bug fix in Graphite code to allow for simultaneous selection of Vietnamese
+ alternates and Small Caps
+- Bug fix in Graphite code to allow for simultaneous selection of Ogonek
+ alternates and Small Caps
+- Version number bumped up to match other SIL Roman fonts
+- Optimized Graphite code for faster processing of plain ASCII text
+- Subscript and Superscript parentheses, minus, plus and equals were raised.
+ Metrics were not changed.
+- Modified U+0452 to have a descender
+- Changed postscript names for U+0218 and U+0219
+- Changed postscript names for U+2203, U+232A and U+2329
+- Changed design of U+A728 to use lowercase ezh form
+- Added space to right of U+201E to make it equal to that of U+201A
+- Made U+005C Reverse Solidus an actual reverse of U+002F Solidus
+- "Hide tone contour staves" feature now works with single tonebar
+- Changed U+1D44 and U+0250 to be double-story rather than single-story
+- Allowed combining marks to render properly with U+02D0
+
+1 Aug 2012 (SIL NRSI team) Andika Regular version 1.004
+- Changed Graphite feature identifiers from integers to 4-character
+ alphanumeric tags (no other changes)
+
+12 Sep 2011 (SIL NRSI team) Andika Regular version 1.002
+- Removed the VDMX table and changed the version number.
+
+8 Jul 2011 (SIL NRSI team) Andika Regular version 1.000
+- Released under SIL Open Font License.
+
+2 May 2008 (SIL NRSI team) Andika Basic Regular version 1.0
+- Released under SIL Open Font License.
+
+19 Jan 2007 (SIL NRSI team) Andika Design Review version 0.001
+- Released under Open Font License. Five new fonts containing
+ revisions of some glyphs and different combinations of others.
+
+7 Aug 2006 (SIL NRSI team) Andika Design Review version 0.001
+- Released under Open Font License.
+
+
+Acknowledgements
+-----------------
+(Here is where contributors can be acknowledged. If you make modifications
+be sure to add your name (N), email (E), web-address (W) and description (D).
+This list is sorted by last name in alphabetical order.)
+
+N: Don Collingsworth
+E: http://scripts.sil.org/support
+W: http://scripts.sil.org/
+D: Contributed some extended Latin glyphs
+
+N: Victor Gaultney
+E: http://scripts.sil.org/support
+W: http://www.sil.org/~gaultney/
+D: Original Designer
+
+N: Eric Hays
+E: http://scripts.sil.org/support
+W: http://scripts.sil.org/
+D: Contributed some extended Latin glyphs
+
+N: Annie Olsen
+E: http://scripts.sil.org/support
+W: http://scripts.sil.org/
+D: Lead Designer
+
+N: Julie Remington
+E: http://scripts.sil.org/support
+W: http://scripts.sil.org/
+D: Contributed some extended Latin glyphs
+
+N: Pablo Ugerman
+W: http://www.ugrdesign.com.ar/
+D: Volunteer designer for much of Bold face
+
+N: SIL font engineers
+E: http://scripts.sil.org/support
+W: http://scripts.sil.org/
+D: Graphite, OpenType, and TypeTuner code, and build support
+
+
+The Andika, Andika Basic and Andika New Basic fonts are maintained by
+SIL International.
+
+For more information please visit the Andika page on SIL
+International's Computers and Writing Systems website:
+http://scripts.sil.org/andika
+
+Support through the website: http://scripts.sil.org/Support
diff --git a/tests/input/font-psf-test/OFL-FAQ.txt b/tests/input/font-psf-test/OFL-FAQ.txt
new file mode 100644
index 0000000..b7caf2b
--- /dev/null
+++ b/tests/input/font-psf-test/OFL-FAQ.txt
@@ -0,0 +1,427 @@
+OFL FAQ - Frequently Asked Questions about the SIL Open Font License (OFL)
+Version 1.1-update4 - Sept 2014
+(See http://scripts.sil.org/OFL for updates)
+
+
+CONTENTS OF THIS FAQ
+1 USING AND DISTRIBUTING FONTS LICENSED UNDER THE OFL
+2 USING OFL FONTS FOR WEB PAGES AND ONLINE WEB FONT SERVICES
+3 MODIFYING OFL-LICENSED FONTS
+4 LICENSING YOUR ORIGINAL FONTS UNDER THE OFL
+5 CHOOSING RESERVED FONT NAMES
+6 ABOUT THE FONTLOG
+7 MAKING CONTRIBUTIONS TO OFL PROJECTS
+8 ABOUT THE LICENSE ITSELF
+9 ABOUT SIL INTERNATIONAL
+APPENDIX A - FONTLOG EXAMPLE
+
+1 USING AND DISTRIBUTING FONTS LICENSED UNDER THE OFL
+
+1.1 Can I use the fonts for a book or other print publication, to create logos or other graphics or even to manufacture objects based on their outlines?
+Yes. You are very welcome to do so. Authors of fonts released under the OFL allow you to use their font software as such for any kind of design work. No additional license or permission is required, unlike with some other licenses. Some examples of these uses are: logos, posters, business cards, stationery, video titling, signage, t-shirts, personalised fabric, 3D-printed/laser-cut shapes, sculptures, rubber stamps, cookie cutters and lead type.
+
+1.1.1 Does that restrict the license or distribution of that artwork?
+No. You remain the author and copyright holder of that newly derived graphic or object. You are simply using an open font in the design process. It is only when you redistribute, bundle or modify the font itself that other conditions of the license have to be respected (see below for more details).
+
+1.1.2 Is any kind of acknowledgement required?
+No. Font authors may appreciate being mentioned in your artwork's acknowledgements alongside the name of the font, possibly with a link to their website, but that is not required.
+
+1.2 Can the fonts be included with Free/Libre and Open Source Software collections such as GNU/Linux and BSD distributions and repositories?
+Yes! Fonts licensed under the OFL can be freely included alongside other software under FLOSS (Free/Libre and Open Source Software) licenses. Since fonts are typically aggregated with, not merged into, existing software, there is little need to be concerned about incompatibility with existing software licenses. You may also repackage the fonts and the accompanying components in a .rpm or .deb package (or other similar package formats or installers) and include them in distribution CD/DVDs and online repositories. (Also see section 5.9 about rebuilding from source.)
+
+1.3 I want to distribute the fonts with my program. Does this mean my program also has to be Free/Libre and Open Source Software?
+No. Only the portions based on the Font Software are required to be released under the OFL. The intent of the license is to allow aggregation or bundling with software under restricted licensing as well.
+
+1.4 Can I sell a software package that includes these fonts?
+Yes, you can do this with both the Original Version and a Modified Version of the fonts. Examples of bundling made possible by the OFL would include: word processors, design and publishing applications, training and educational software, games and entertainment software, mobile device applications, etc.
+
+1.5 Can I include the fonts on a CD of freeware or commercial fonts?
+Yes, as long some other font or software is also on the disk, so the OFL font is not sold by itself.
+
+1.6 Why won't the OFL let me sell the fonts alone?
+The intent is to keep people from making money by simply redistributing the fonts. The only people who ought to profit directly from the fonts should be the original authors, and those authors have kindly given up potential direct income to distribute their fonts under the OFL. Please honour and respect their contribution!
+
+1.7 What about sharing OFL fonts with friends on a CD, DVD or USB stick?
+You are very welcome to share open fonts with friends, family and colleagues through removable media. Just remember to include the full font package, including any copyright notices and licensing information as available in OFL.txt. In the case where you sell the font, it has to come bundled with software.
+
+1.8 Can I host the fonts on a web site for others to use?
+Yes, as long as you make the full font package available. In most cases it may be best to point users to the main site that distributes the Original Version so they always get the most recent stable and complete version. See also discussion of web fonts in Section 2.
+
+1.9 Can I host the fonts on a server for use over our internal network?
+Yes. If the fonts are transferred from the server to the client computer by means that allow them to be used even if the computer is no longer attached to the network, the full package (copyright notices, licensing information, etc.) should be included.
+
+1.10 Does the full OFL license text always need to accompany the font?
+The only situation in which an OFL font can be distributed without the text of the OFL (either in a separate file or in font metadata), is when a font is embedded in a document or bundled within a program. In the case of metadata included within a font, it is legally sufficient to include only a link to the text of the OFL on http://scripts.sil.org/OFL, but we strongly recommend against this. Most modern font formats include metadata fields that will accept the full OFL text, and full inclusion increases the likelihood that users will understand and properly apply the license.
+
+1.11 What do you mean by 'embedding'? How does that differ from other means of distribution?
+By 'embedding' we mean inclusion of the font in a document or file in a way that makes extraction (and redistribution) difficult or clearly discouraged. In many cases the names of embedded fonts might also not be obvious to those reading the document, the font data format might be altered, and only a subset of the font - only the glyphs required for the text - might be included. Any other means of delivering a font to another person is considered 'distribution', and needs to be accompanied by any copyright notices and licensing information available in OFL.txt.
+
+1.12 So can I embed OFL fonts in my document?
+Yes, either in full or a subset. The restrictions regarding font modification and redistribution do not apply, as the font is not intended for use outside the document.
+
+1.13 Does embedding alter the license of the document itself?
+No. Referencing or embedding an OFL font in any document does not change the license of the document itself. The requirement for fonts to remain under the OFL does not apply to any document created using the fonts and their derivatives. Similarly, creating any kind of graphic using a font under OFL does not make the resulting artwork subject to the OFL.
+
+1.14 If OFL fonts are extracted from a document in which they are embedded (such as a PDF file), what can be done with them? Is this a risk to author(s)?
+The few utilities that can extract fonts embedded in a PDF will typically output limited amounts of outlines - not a complete font. To create a working font from this method is much more difficult and time consuming than finding the source of the original OFL font. So there is little chance that an OFL font would be extracted and redistributed inappropriately through this method. Even so, copyright laws address any misrepresentation of authorship. All Font Software released under the OFL and marked as such by the author(s) is intended to remain under this license regardless of the distribution method, and cannot be redistributed under any other license. We strongly discourage any font extraction - we recommend directly using the font sources instead - but if you extract font outlines from a document, please be considerate: respect the work of the author(s) and the licensing model.
+
+1.15 What about distributing fonts with a document? Within a compressed folder structure? Is it distribution, bundling or embedding?
+Certain document formats may allow the inclusion of an unmodified font within their file structure which may consist of a compressed folder containing the various resources forming the document (such as pictures and thumbnails). Including fonts within such a structure is understood as being different from embedding but rather similar to bundling (or mere aggregation) which the license explicitly allows. In this case the font is conveyed unchanged whereas embedding a font usually transforms it from the original format. The OFL does not allow anyone to extract the font from such a structure to then redistribute it under another license. The explicit permission to redistribute and embed does not cancel the requirement for the Font Software to remain under the license chosen by its author(s). Even if the font travels inside the document as one of its assets, it should not lose its authorship information and licensing.
+
+1.16 What about ebooks shipping with open fonts?
+The requirements differ depending on whether the fonts are linked, embedded or distributed (bundled or aggregated). Some ebook formats use web technologies to do font linking via @font-face, others are designed for font embedding, some use fonts distributed with the document or reading software, and a few rely solely on the fonts already present on the target system. The license requirements depend on the type of inclusion as discussed in 1.15.
+
+1.17 Can Font Software released under the OFL be subject to URL-based access restrictions methods or DRM (Digital Rights Management) mechanisms?
+Yes, but these issues are out-of-scope for the OFL. The license itself neither encourages their use nor prohibits them since such mechanisms are not implemented in the components of the Font Software but through external software. Such restrictions are put in place for many different purposes corresponding to various usage scenarios. One common example is to limit potentially dangerous cross-site scripting attacks. However, in the spirit of libre/open fonts and unrestricted writing systems, we strongly encourage open sharing and reuse of OFL fonts, and the establishment of an environment where such restrictions are unnecessary. Note that whether you wish to use such mechanisms or you prefer not to, you must still abide by the rules set forth by the OFL when using fonts released by their authors under this license. Derivative fonts must be licensed under the OFL, even if they are part of a service for which you charge fees and/or for which access to source code is restricted. You may not sell the fonts on their own - they must be part of a larger software package, bundle or subscription plan. For example, even if the OFL font is distributed in a software package or via an online service using a DRM mechanism, the user would still have the right to extract that font, use, study, modify and redistribute it under the OFL.
+
+1.18 I've come across a font released under the OFL. How can I easily get more information about the Original Version? How can I know where it stands compared to the Original Version or other Modified Versions?
+Consult the copyright statement(s) in the license for ways to contact the original authors. Consult the FONTLOG (see section 6 for more details and examples) for information on how the font differs from the Original Version, and get in touch with the various contributors via the information in the acknowledgement section. Please consider using the Original Versions of the fonts whenever possible.
+
+1.19 What do you mean in condition 4 of the OFL's permissions and conditions? Can you provide examples of abusive promotion / endorsement / advertisement vs. normal acknowledgement?
+The intent is that the goodwill and reputation of the author(s) should not be used in a way that makes it sound like the original author(s) endorse or approve of a specific Modified Version or software bundle. For example, it would not be right to advertise a word processor by naming the author(s) in a listing of software features, or to promote a Modified Version on a web site by saying "designed by ...". However, it would be appropriate to acknowledge the author(s) if your software package has a list of people who deserve thanks. We realize that this can seem to be a grey area, but the standard used to judge an acknowledgement is that if the acknowledgement benefits the author(s) it is allowed, but if it primarily benefits other parties, or could reflect poorly on the author(s), then it is not.
+
+1.20 I'm writing a small app for mobile platforms, do I need to include the whole package?
+If you bundle a font under the OFL with your mobile app you must comply with the terms of the license. At a minimum you must include the copyright statement, the license notice and the license text. A mention of this information in your About box or Changelog, with a link to where the font package is from, is good practice, and the extra space needed to carry these items is very small. You do not, however, need to include the full contents of the font package - only the fonts you use and the copyright and license that apply to them. For example, if you only use the regular weight in your app, you do not need to include the italic and bold versions.
+
+1.21 What about including OFL fonts by default in my firmware or dedicated operating system?
+Many such systems are restricted and turned into appliances so that users cannot study or modify them. Using open fonts to increase quality and language coverage is a great idea, but you need to be aware that if there is a way for users to extract fonts you cannot legally prevent them from doing that. The fonts themselves, including any changes you make to them, must be distributed under the OFL even if your firmware has a more restrictive license. If you do transform the fonts and change their formats when you include them in your firmware you must respect any names reserved by the font authors via the RFN mechanism and pick your own font name. Alternatively if you directly add a font under the OFL to the font folder of your firmware without modifying or optimizing it you are simply bundling the font like with any other software collection, and do not need to make any further changes.
+
+1.22 Can I make and publish CMS themes or templates that use OFL fonts? Can I include the fonts themselves in the themes or templates? Can I sell the whole package?
+Yes, you are very welcome to integrate open fonts into themes and templates for your preferred CMS and make them more widely available. Remember that you can only sell the fonts and your CMS add-on as part of a software bundle. (See 1.4 for details and examples about selling bundles).
+
+1.23 Can OFL fonts be included in services that deliver fonts to the desktop from remote repositories? Even if they contain both OFL and non-OFL fonts?
+Yes. Some foundries have set up services to deliver fonts to subscribers directly to desktops from their online repositories; similarly, plugins are available to preview and use fonts directly in your design tool or publishing suite. These services may mix open and restricted fonts in the same channel, however they should make a clear distinction between them to users. These services should also not hinder users (such as through DRM or obfuscation mechanisms) from extracting and using the OFL fonts in other environments, or continuing to use OFL fonts after subscription terms have ended, as those uses are specifically allowed by the OFL.
+
+1.24 Can services that provide or distribute OFL fonts restrict my use of them?
+No. The terms of use of such services cannot replace or restrict the terms of the OFL, as that would be the same as distributing the fonts under a different license, which is not allowed. You are still entitled to use, modify and redistribute them as the original authors have intended outside of the sole control of that particular distribution channel. Note, however, that the fonts provided by these services may differ from the Original Versions.
+
+
+2 USING OFL FONTS FOR WEBPAGES AND ONLINE WEB FONT SERVICES
+
+NOTE: This section often refers to a separate paper on 'Web Fonts & RFNs'. This is available at http://scripts.sil.org/OFL_web_fonts_and_RFNs
+
+2.1 Can I make webpages using these fonts?
+Yes! Go ahead! Using CSS (Cascading Style Sheets) is recommended. Your three best options are:
+- referring directly in your stylesheet to open fonts which may be available on the user's system
+- providing links to download the full package of the font - either from your own website or from elsewhere - so users can install it themselves
+- using @font-face to distribute the font directly to browsers. This is recommended and explicitly allowed by the licensing model because it is distribution. The font file itself is distributed with other components of the webpage. It is not embedded in the webpage but referenced through a web address which will cause the browser to retrieve and use the corresponding font to render the webpage (see 1.11 and 1.15 for details related to embedding fonts into documents). As you take advantage of the @font-face cross-platform standard, be aware that web fonts are often tuned for a web environment and not intended for installation and use outside a browser. The reasons in favour of using web fonts are to allow design of dynamic text elements instead of static graphics, to make it easier for content to be localized and translated, indexed and searched, and all this with cross-platform open standards without depending on restricted extensions or plugins. You should check the CSS cascade (the order in which fonts are being called or delivered to your users) when testing.
+
+2.2 Can I make and use WOFF (Web Open Font Format) versions of OFL fonts?
+Yes, but you need to be careful. A change in font format normally is considered modification, and Reserved Font Names (RFNs) cannot be used. Because of the design of the WOFF format, however, it is possible to create a WOFF version that is not considered modification, and so would not require a name change. You are allowed to create, use and distribute a WOFF version of an OFL font without changing the font name, but only if:
+
+- the original font data remains unchanged except for WOFF compression, and
+- WOFF-specific metadata is either omitted altogether or present and includes, unaltered, the contents of all equivalent metadata in the original font.
+
+If the original font data or metadata is changed, or the WOFF-specific metadata is incomplete, the font must be considered a Modified Version, the OFL restrictions would apply and the name of the font must be changed: any RFNs cannot be used and copyright notices and licensing information must be included and cannot be deleted or modified. You must come up with a unique name - we recommend one corresponding to your domain or your particular web application. Be aware that only the original author(s) can use RFNs. This is to prevent collisions between a derivative tuned to your audience and the original upstream version and so to reduce confusion.
+
+Please note that most WOFF conversion tools and online services do not meet the two requirements listed above, and so their output must be considered a Modified Version. So be very careful and check to be sure that the tool or service you're using is compressing unchanged data and completely and accurately reflecting the original font metadata.
+
+2.3 What about other web font formats such as EOT/EOTLite/CWT/etc.?
+In most cases these formats alter the original font data more than WOFF, and do not completely support appropriate metadata, so their use must be considered modification and RFNs may not be used. However, there may be certain formats or usage scenarios that may allow the use of RFNs. See http://scripts.sil.org/OFL_web_fonts_and_RFNs
+
+2.4 Can I make OFL fonts available through web font online services?
+Yes, you are welcome to include OFL fonts in online web font services as long as you properly meet all the conditions of the license. The origin and open status of the font should be clear among the other fonts you are hosting. Authorship, copyright notices and license information must be sufficiently visible to your users or subscribers so they know where the font comes from and the rights granted by the author(s). Make sure the font file contains the needed copyright notice(s) and licensing information in its metadata. Please double-check the accuracy of every field to prevent contradictory information. Other font formats, including EOT/EOTLite/CWT and superior alternatives like WOFF, already provide fields for this information. Remember that if you modify the font within your library or convert it to another format for any reason the OFL restrictions apply and you need to change the names accordingly. Please respect the author's wishes as expressed in the OFL and do not misrepresent original designers and their work. Don't lump quality open fonts together with dubious freeware or public domain fonts. Consider how you can best work with the original designers and foundries, support their efforts and generate goodwill that will benefit your service. (See 1.17 for details related to URL-based access restrictions methods or DRM mechanisms).
+
+2.5 Some web font formats and services provide ways of "optimizing" the font for a particular website or web application; is that allowed?
+Yes, it is permitted, but remember that these optimized versions are Modified Versions and so must follow OFL requirements like appropriate renaming. Also you need to bear in mind the other important parameters beyond compression, speed and responsiveness: you need to consider the audience of your particular website or web application, as choosing some optimization parameters may turn out to be less than ideal for them. Subsetting by removing certain glyphs or features may seriously limit functionality of the font in various languages that your users expect. It may also introduce degradation of quality in the rendering or specific bugs on the various target platforms compared to the original font from upstream. In other words, remember that one person's optimized font may be another person's missing feature. Various advanced typographic features (OpenType, Graphite or AAT) are also available through CSS and may provide the desired effects without the need to modify the font.
+
+2.6 Is subsetting a web font considered modification?
+Yes. Removing any parts of the font when delivering a web font to a browser, including unused glyphs and smart font code, is considered modification. This is permitted by the OFL but would not normally allow the use of RFNs. Some newer subsetting technologies may be able to subset in a way that allows users to effectively have access to the complete font, including smart font behaviour. See 2.8 and http://scripts.sil.org/OFL_web_fonts_and_RFNs
+
+2.7 Are there any situations in which a modified web font could use RFNs?
+Yes. If a web font is optimized only in ways that preserve Functional Equivalence (see 2.8), then it may use RFNs, as it reasonably represents the Original Version and respects the intentions of the author(s) and the main purposes of the RFN mechanism (avoids collisions, protects authors, minimizes support, encourages derivatives). However this is technically very difficult and often impractical, so a much better scenario is for the web font service or provider to sign a separate agreement with the author(s) that allows the use of RFNs for Modified Versions.
+
+2.8 How do you know if an optimization to a web font preserves Functional Equivalence?
+Functional Equivalence is described in full in the 'Web fonts and RFNs' paper at http://scripts.sil.org/OFL_web_fonts_and_RFNs, in general, an optimized font is deemed to be Functionally Equivalent (FE) to the Original Version if it:
+
+- Supports the same full character inventory. If a character can be properly displayed using the Original Version, then that same character, encoded correctly on a web page, will display properly.
+- Provides the same smart font behavior. Any dynamic shaping behavior that works with the Original Version should work when optimized, unless the browser or environment does not support it. There does not need to be guaranteed support in the client, but there should be no forced degradation of smart font or shaping behavior, such as the removal or obfuscation of OpenType, Graphite or AAT tables.
+- Presents text with no obvious degradation in visual quality. The lettershapes should be equally (or more) readable, within limits of the rendering platform.
+- Preserves original author, project and license metadata. At a minimum, this should include: Copyright and authorship; The license as stated in the Original Version, whether that is the full text of the OFL or a link to the web version; Any RFN declarations; Information already present in the font or documentation that points back to the Original Version, such as a link to the project or the author's website.
+
+If an optimized font meets these requirements, and so is considered to be FE, then it's very likely that the original author would feel that the optimized font is a good and reasonable equivalent. If it falls short of any of these requirements, the optimized font does not reasonably represent the Original Version, and so should be considered to be a Modified Version. Like other Modified Versions, it would not be allowed to use any RFNs and you simply need to pick your own font name.
+
+2.9 Isn't use of web fonts another form of embedding?
+No. Unlike embedded fonts in a PDF, web fonts are not an integrated part of the document itself. They are not specific to a single document and are often applied to thousands of documents around the world. The font data is not stored alongside the document data and often originates from a different location. The ease by which the web fonts used by a document may be identified and downloaded for desktop use demonstrates that they are philosophically and technically separate from the web pages that specify them. See http://scripts.sil.org/OFL_web_fonts_and_RFNs
+
+2.10 So would it be better to not use RFNs at all if you want your font to be distributed by a web fonts service?
+No. Although the OFL does not require authors to use RFNs, the RFN mechanism is an important part of the OFL model and completely compatible with web font services. If that web font service modifies the fonts, then the best solution is to sign a separate agreement for the use of any RFNs. It is perfectly valid for an author to not declare any RFNs, but before they do so they need to fully understand the benefits they are giving up, and the overall negative effect of allowing many different versions bearing the same name to be widely distributed. As a result, we don't generally recommend it.
+
+2.11 What should an agreement for the use of RFNs say? Are there any examples?
+There is no prescribed format for this agreement, as legal systems vary, and no recommended examples. Authors may wish to add specific clauses to further restrict use, require author review of Modified Versions, establish user support mechanisms or provide terms for ending the agreement. Such agreements are usually not public, and apply only to the main parties. However, it would be very beneficial for web font services to clearly state when they have established such agreements, so that the public understands clearly that their service is operating appropriately.
+
+See the separate paper on 'Web Fonts & RFNs' for in-depth discussion of issues related to the use of RFNs for web fonts. This is available at http://scripts.sil.org/OFL_web_fonts_and_RFNs
+
+
+3 MODIFYING OFL-LICENSED FONTS
+
+3.1 Can I change the fonts? Are there any limitations to what things I can and cannot change?
+You are allowed to change anything, as long as such changes do not violate the terms of the license. In other words, you are not allowed to remove the copyright statement(s) from the font, but you could put additional information into it that covers your contribution. See the placeholders in the OFL header template for recommendations on where to add your own statements. (Remember that, when authors have reserved names via the RFN mechanism, you need to change the internal names of the font to your own font name when making your modified version even if it is just a small change.)
+
+3.2 I have a font that needs a few extra glyphs - can I take them from an OFL licensed font and copy them into mine?
+Yes, but if you distribute that font to others it must be under the OFL, and include the information mentioned in condition 2 of the license.
+
+3.3 Can I charge people for my additional work? In other words, if I add a bunch of special glyphs or OpenType/Graphite/AAT code, can I sell the enhanced font?
+Not by itself. Derivative fonts must be released under the OFL and cannot be sold by themselves. It is permitted, however, to include them in a larger software package (such as text editors, office suites or operating systems), even if the larger package is sold. In that case, you are strongly encouraged, but not required, to also make that derived font easily and freely available outside of the larger package.
+
+3.4 Can I pay someone to enhance the fonts for my use and distribution?
+Yes. This is a good way to fund the further development of the fonts. Keep in mind, however, that if the font is distributed to others it must be under the OFL. You won't be able to recover your investment by exclusively selling the font, but you will be making a valuable contribution to the community. Please remember how you have benefited from the contributions of others.
+
+3.5 I need to make substantial revisions to the font to make it work with my program. It will be a lot of work, and a big investment, and I want to be sure that it can only be distributed with my program. Can I restrict its use?
+No. If you redistribute a Modified Version of the font it must be under the OFL. You may not restrict it in any way beyond what the OFL permits and requires. This is intended to ensure that all released improvements to the fonts become available to everyone. But you will likely get an edge over competitors by being the first to distribute a bundle with the enhancements. Again, please remember how you have benefited from the contributions of others.
+
+3.6 Do I have to make any derivative fonts (including extended source files, build scripts, documentation, etc.) publicly available?
+No, but please consider sharing your improvements with others. You may find that you receive in return more than what you gave.
+
+3.7 If a trademark is claimed in the OFL font, does that trademark need to remain in modified fonts?
+Yes. Any trademark notices must remain in any derivative fonts to respect trademark laws, but you may add any additional trademarks you claim, officially registered or not. For example if an OFL font called "Foo" contains a notice that "Foo is a trademark of Acme", then if you rename the font to "Bar" when creating a Modified Version, the new trademark notice could say "Foo is a trademark of Acme Inc. - Bar is a trademark of Roadrunner Technologies Ltd.". Trademarks work alongside the OFL and are not subject to the terms of the licensing agreement. The OFL does not grant any rights under trademark law. Bear in mind that trademark law varies from country to country and that there are no international trademark conventions as there are for copyright. You may need to significantly invest in registering and defending a trademark for it to remain valid in the countries you are interested in. This may be costly for an individual independent designer.
+
+3.8 If I commit changes to a font (or publish a branch in a DVCS) as part of a public open source software project, do I have to change the internal font names?
+Only if there are declared RFNs. Making a public commit or publishing a public branch is effectively redistributing your modifications, so any change to the font will require that you do not use the RFNs. Even if there are no RFNs, it may be useful to change the name or add a suffix indicating that a particular version of the font is still in development and not released yet. This will clearly indicate to users and fellow designers that this particular font is not ready for release yet. See section 5 for more details.
+
+
+4 LICENSING YOUR ORIGINAL FONTS UNDER THE OFL
+
+4.1 Can I use the SIL OFL for my own fonts?
+Yes! We heartily encourage everyone to use the OFL to distribute their own original fonts. It is a carefully constructed license that allows great freedom along with enough artistic integrity protection for the work of the authors as well as clear rules for other contributors and those who redistribute the fonts. The licensing model is used successfully by various organisations, both for-profit and not-for-profit, to release fonts of varying levels of scope and complexity.
+
+4.2 What do I have to do to apply the OFL to my font?
+If you want to release your fonts under the OFL, we recommend you do the following:
+
+4.2.1 Put your copyright and Reserved Font Names information at the beginning of the main OFL.txt file in place of the dedicated placeholders (marked with the <> characters). Include this file in your release package.
+
+4.2.2 Put your copyright and the OFL text with your chosen Reserved Font Name(s) into your font files (the copyright and license fields). A link to the OFL text on the OFL web site is an acceptable (but not recommended) alternative. Also add this information to any other components (build scripts, glyph databases, documentation, test files, etc). Accurate metadata in your font files is beneficial to you as an increasing number of applications are exposing this information to the user. For example, clickable links can bring users back to your website and let them know about other work you have done or services you provide. Depending on the format of your fonts and sources, you can use template human-readable headers or machine-readable metadata. You should also double-check that there is no conflicting metadata in the font itself contradicting the license, such as the fstype bits in the os2 table or fields in the name table.
+
+4.2.3 Write an initial FONTLOG.txt for your font and include it in the release package (see Section 6 and Appendix A for details including a template).
+
+4.2.4 Include the relevant practical documentation on the license by adding the current OFL-FAQ.txt file in your package.
+
+4.2.5 If you wish you can use the OFL graphics (http://scripts.sil.org/OFL_logo) on your website.
+
+4.3 Will you make my font OFL for me?
+We won't do the work for you. We can, however, try to answer your questions, unfortunately we do not have the resources to review and check your font packages for correct use of the OFL. We recommend you turn to designers, foundries or consulting companies with experience in doing open font design to provide this service to you.
+
+4.4 Will you distribute my OFL font for me?
+No, although if the font is of sufficient quality and general interest we may include a link to it on our partial list of OFL fonts on the OFL web site. You may wish to consider other open font catalogs or hosting services, such as the Unifont Font Guide (http://unifont.org/fontguide), The League of Movable Type (http://theleagueofmovabletype.com) or the Open Font Library (http://openfontlibrary.org/), which despite the name has no direct relationship to the OFL or SIL. We do not endorse any particular catalog or hosting service - it is your responsibility to determine if the service is right for you and if it treats authors with fairness.
+
+4.5 Why should I use the OFL for my fonts?
+- to meet needs for fonts that can be modified to support lesser-known languages
+- to provide a legal and clear way for people to respect your work but still use it (and reduce piracy)
+- to involve others in your font project
+- to enable your fonts to be expanded with new weights and improved writing system/language support
+- to allow more technical font developers to add features to your design (such as OpenType, Graphite or AAT support)
+- to renew the life of an old font lying on your hard drive with no business model
+- to allow your font to be included in Libre Software operating systems like Ubuntu
+- to give your font world status and wide, unrestricted distribution
+- to educate students about quality typeface and font design
+- to expand your test base and get more useful feedback
+- to extend your reach to new markets when users see your metadata and go to your website
+- to get your font more easily into one of the web font online services
+- to attract attention for your commercial fonts
+- to make money through web font services
+- to make money by bundling fonts with applications
+- to make money adjusting and extending existing open fonts
+- to get a better chance that foundations/NGOs/charities/companies who commission fonts will pick you
+- to be part of a sharing design and development community
+- to give back and contribute to a growing body of font sources
+
+
+5 CHOOSING RESERVED FONT NAMES
+
+5.1 What are Reserved Font Names?
+These are font names, or portions of font names, that the author has chosen to reserve for use only with the Original Version of the font, or for Modified Version(s) created by the original author.
+
+5.2 Why can't I use the Reserved Font Names in my derivative font names? I'd like people to know where the design came from.
+The best way to acknowledge the source of the design is to thank the original authors and any other contributors in the files that are distributed with your revised font (although no acknowledgement is required). The FONTLOG is a natural place to do this. Reserved Font Names ensure that the only fonts that have the original names are the unmodified Original Versions. This allows designers to maintain artistic integrity while allowing collaboration to happen. It eliminates potential confusion and name conflicts. When choosing a name, be creative and avoid names that reuse almost all the same letters in the same order or sound like the original. It will help everyone if Original Versions and Modified Versions can easily be distinguished from one another and from other derivatives. Any substitution and matching mechanism is outside the scope of the license.
+
+5.3 What do you mean by "primary name as presented to the user"? Are you referring to the font menu name?
+Yes, this applies to the font menu name and other mechanisms that specify a font in a document. It would be fine, however, to keep a text reference to the original fonts in the description field, in your modified source file or in documentation provided alongside your derivative as long as no one could be confused that your modified source is the original. But you cannot use the Reserved Font Names in any way to identify the font to the user (unless the Copyright Holder(s) allow(s) it through a separate agreement). Users who install derivatives (Modified Versions) on their systems should not see any of the original Reserved Font Names in their font menus, for example. Again, this is to ensure that users are not confused and do not mistake one font for another and so expect features only another derivative or the Original Version can actually offer.
+
+5.4 Am I not allowed to use any part of the Reserved Font Names?
+You may not use individual words from the Reserved Font Names, but you would be allowed to use parts of words, as long as you do not use any word from the Reserved Font Names entirely. We do not recommend using parts of words because of potential confusion, but it is allowed. For example, if "Foobar" was a Reserved Font Name, you would be allowed to use "Foo" or "bar", although we would not recommend it. Such an unfortunate choice would confuse the users of your fonts as well as make it harder for other designers to contribute.
+
+5.5 So what should I, as an author, identify as Reserved Font Names?
+Original authors are encouraged to name their fonts using clear, distinct names, and only declare the unique parts of the name as Reserved Font Names. For example, the author of a font called "Foobar Sans" would declare "Foobar" as a Reserved Font Name, but not "Sans", as that is a common typographical term, and may be a useful word to use in a derivative font name. Reserved Font Names should also be single words for simplicity and legibility. A font called "Flowing River" should have Reserved Font Names "Flowing" and "River", not "Flowing River". You also need to be very careful about reserving font names which are already linked to trademarks (whether registered or not) which you do not own.
+
+5.6 Do I, as an author, have to identify any Reserved Font Names?
+No. RFNs are optional and not required, but we encourage you to use them. This is primarily to avoid confusion between your work and Modified Versions. As an author you can release a font under the OFL and not declare any Reserved Font Names. There may be situations where you find that using no RFNs and letting your font be changed and modified - including any kind of modification - without having to change the original name is desirable. However you need to be fully aware of the consequences. There will be no direct way for end-users and other designers to distinguish your Original Version from many Modified Versions that may be created. You have to trust whoever is making the changes and the optimizations to not introduce problematic changes. The RFNs you choose for your own creation have value to you as an author because they allow you to maintain artistic integrity and keep some control over the distribution channel to your end-users. For discussion of RFNs and web fonts see section 2.
+
+5.7 Are any names (such as the main font name) reserved by default?
+No. That is a change to the license as of version 1.1. If you want any names to be Reserved Font Names, they must be specified after the copyright statement(s).
+
+5.8 Is there any situation in which I can use Reserved Font Names for a Modified Version?
+The Copyright Holder(s) can give certain trusted parties the right to use any of the Reserved Font Names through separate written agreements. For example, even if "Foobar" is a RFN, you could write up an agreement to give company "XYZ" the right to distribute a modified version with a name that includes "Foobar". This allows for freedom without confusion. The existence of such an agreement should be made as clear as possible to downstream users and designers in the distribution package and the relevant documentation. They need to know if they are a party to the agreement or not and what they are practically allowed to do or not even if all the details of the agreement are not public.
+
+5.9 Do font rebuilds require a name change? Do I have to change the name of the font when my packaging workflow includes a full rebuild from source?
+Yes, all rebuilds which change the font data and the smart code are Modified Versions and the requirements of the OFL apply: you need to respect what the Author(s) have chosen in terms of Reserved Font Names. However if a package (or installer) is simply a wrapper or a compressed structure around the final font - leaving them intact on the inside - then no name change is required. Please get in touch with the author(s) and copyright holder(s) to inquire about the presence of font sources beyond the final font file(s) and the recommended build path. That build path may very well be non-trivial and hard to reproduce accurately by the maintainer. If a full font build path is made available by the upstream author(s) please be aware that any regressions and changes you may introduce when doing a rebuild for packaging purposes is your own responsibility as a package maintainer since you are effectively creating a separate branch. You should make it very clear to your users that your rebuilt version is not the canonical one from upstream.
+
+5.10 Can I add other Reserved Font Names when making a derivative font?
+Yes. List your additional Reserved Font Names after your additional copyright statement, as indicated with example placeholders at the top of the OFL.txt file. Be sure you do not remove any existing RFNs but only add your own. RFN statements should be placed next to the copyright statement of the relevant author as indicated in the OFL.txt template to make them visible to designers wishing to make their separate version.
+
+
+6 ABOUT THE FONTLOG
+
+6.1 What is this FONTLOG thing exactly?
+It has three purposes: 1) to provide basic information on the font to users and other designers and developers, 2) to document changes that have been made to the font or accompanying files, either by the original authors or others, and 3) to provide a place to acknowledge authors and other contributors. Please use it!
+
+6.2 Is the FONTLOG required?
+It is not a requirement of the license, but we strongly recommend you have one.
+
+6.3 Am I required to update the FONTLOG when making Modified Versions?
+No, but users, designers and other developers might get very frustrated with you if you don't. People need to know how derivative fonts differ from the original, and how to take advantage of the changes, or build on them. There are utilities that can help create and maintain a FONTLOG, such as the FONTLOG support in FontForge.
+
+6.4 What should the FONTLOG look like?
+It is typically a separate text file (FONTLOG.txt), but can take other formats. It commonly includes these four sections:
+
+- brief header describing the FONTLOG itself and name of the font family
+- Basic Font Information - description of the font family, purpose and breadth
+- ChangeLog - chronological listing of changes
+- Acknowledgements - list of authors and contributors with contact information
+
+It could also include other sections, such as: where to find documentation, how to make contributions, information on contributing organizations, source code details, and a short design guide. See Appendix A for an example FONTLOG.
+
+
+7 MAKING CONTRIBUTIONS TO OFL PROJECTS
+
+7.1 Can I contribute work to OFL projects?
+In many cases, yes. It is common for OFL fonts to be developed by a team of people who welcome contributions from the wider community. Contact the original authors for specific information on how to participate in their projects.
+
+7.2 Why should I contribute my changes back to the original authors?
+It would benefit many people if you contributed back in response to what you've received. Your contributions and improvements to the fonts and other components could be a tremendous help and would encourage others to contribute as well and 'give back'. You will then benefit from other people's contributions as well. Sometimes maintaining your own separate version takes more effort than merging back with the original. Be aware that any contributions, however, must be either your own original creation or work that you own, and you may be asked to affirm that clearly when you contribute.
+
+7.3 I've made some very nice improvements to the font. Will you consider adopting them and putting them into future Original Versions?
+Most authors would be very happy to receive such contributions. Keep in mind that it is unlikely that they would want to incorporate major changes that would require additional work on their end. Any contributions would likely need to be made for all the fonts in a family and match the overall design and style. Authors are encouraged to include a guide to the design with the fonts. It would also help to have contributions submitted as patches or clearly marked changes - the use of smart source revision control systems like subversion, mercurial, git or bzr is a good idea. Please follow the recommendations given by the author(s) in terms of preferred source formats and configuration parameters for sending contributions. If this is not indicated in a FONTLOG or other documentation of the font, consider asking them directly. Examples of useful contributions are bug fixes, additional glyphs, stylistic alternates (and the smart font code to access them) or improved hinting. Keep in mind that some kinds of changes (esp. hinting) may be technically difficult to integrate.
+
+7.4 How can I financially support the development of OFL fonts?
+It is likely that most authors of OFL fonts would accept financial contributions - contact them for instructions on how to do this. Such contributions would support future development. You can also pay for others to enhance the fonts and contribute the results back to the original authors for inclusion in the Original Version.
+
+
+8 ABOUT THE LICENSE ITSELF
+
+8.1 I see that this is version 1.1 of the license. Will there be later changes?
+Version 1.1 is the first minor revision of the OFL. We are confident that version 1.1 will meet most needs, but are open to future improvements. Any revisions would be for future font releases, and previously existing licenses would remain in effect. No retroactive changes are possible, although the Copyright Holder(s) can re-release the font under a revised OFL. All versions will be available on our web site: http://scripts.sil.org/OFL.
+
+8.2 Does this license restrict the rights of the Copyright Holder(s)?
+No. The Copyright Holder(s) still retain(s) all the rights to their creation; they are only releasing a portion of it for use in a specific way. For example, the Copyright Holder(s) may choose to release a 'basic' version of their font under the OFL, but sell a restricted 'enhanced' version under a different license. They may also choose to release the same font under both the OFL and some other license. Only the Copyright Holder(s) can do this, and doing so does not change the terms of the OFL as it applies to that font.
+
+8.3 Is the OFL a contract or a license?
+The OFL is a worldwide license based on international copyright agreements and conventions. It is not a contract and so does not require you to sign it to have legal validity. By using, modifying and redistributing components under the OFL you indicate that you accept the license.
+
+8.4 I really like the terms of the OFL, but want to change it a little. Am I allowed to take ideas and actual wording from the OFL and put them into my own custom license for distributing my fonts?
+We strongly recommend against creating your very own unique open licensing model. Using a modified or derivative license will likely cut you off - along with the font(s) under that license - from the community of designers using the OFL, potentially expose you and your users to legal liabilities, and possibly put your work and rights at risk. The OFL went though a community and legal review process that took years of effort, and that review is only applicable to an unmodified OFL. The text of the OFL has been written by SIL (with review and consultation from the community) and is copyright (c) 2005-2013 SIL International. You may re-use the ideas and wording (in part, not in whole) in another non-proprietary license provided that you call your license by another unambiguous name, that you do not use the preamble, that you do not mention SIL and that you clearly present your license as different from the OFL so as not to cause confusion by being too similar to the original. If you feel the OFL does not meet your needs for an open license, please contact us.
+
+8.5 Can I translate the license and the FAQ into other languages?
+SIL certainly recognises the need for people who are not familiar with English to be able to understand the OFL and its use. Making the license very clear and readable has been a key goal for the OFL, but we know that people understand their own language best.
+
+If you are an experienced translator, you are very welcome to translate the OFL and OFL-FAQ so that designers and users in your language community can understand the license better. But only the original English version of the license has legal value and has been approved by the community. Translations do not count as legal substitutes and should only serve as a way to explain the original license. SIL - as the author and steward of the license for the community at large - does not approve any translation of the OFL as legally valid because even small translation ambiguities could be abused and create problems.
+
+SIL gives permission to publish unofficial translations into other languages provided that they comply with the following guidelines:
+
+- Put the following disclaimer in both English and the target language stating clearly that the translation is unofficial:
+
+"This is an unofficial translation of the SIL Open Font License into <language_name>. It was not published by SIL International, and does not legally state the distribution terms for fonts that use the OFL. A release under the OFL is only valid when using the original English text. However, we recognize that this unofficial translation will help users and designers not familiar with English to better understand and use the OFL. We encourage designers who consider releasing their creation under the OFL to read the OFL-FAQ in their own language if it is available. Please go to http://scripts.sil.org/OFL for the official version of the license and the accompanying OFL-FAQ."
+
+- Keep your unofficial translation current and update it at our request if needed, for example if there is any ambiguity which could lead to confusion.
+
+If you start such a unofficial translation effort of the OFL and OFL-FAQ please let us know.
+
+8.6 Does the OFL have an explicit expiration term?
+No, the implicit intent of the OFL is that the permissions granted are perpetual and irrevocable.
+
+
+9 ABOUT SIL INTERNATIONAL
+
+9.1 Who is SIL International and what do they do?
+SIL serves language communities worldwide, building their capacity for sustainable language development, by means of research, translation, training and materials development. SIL makes its services available to all without regard to religious belief, political ideology, gender, race, or ethnic background. SIL's members and volunteers share a Christian commitment.
+
+9.2 What does this have to do with font licensing?
+The ability to read, write, type and publish in one's own language is one of the most critical needs for millions of people around the world. This requires fonts that are widely available and support lesser-known languages. SIL develops - and encourages others to develop - a complete stack of writing systems implementation components available under open licenses. This open stack includes input methods, smart fonts, smart rendering libraries and smart applications. There has been a need for a common open license that is specifically applicable to fonts and related software (a crucial component of this stack), so SIL developed the SIL Open Font License with the help of the Free/Libre and Open Source Software community.
+
+9.3 How can I contact SIL?
+Our main web site is: http://www.sil.org/
+Our site about complex scripts is: http://scripts.sil.org/
+Information about this license (and contact information) is at: http://scripts.sil.org/OFL
+
+
+APPENDIX A - FONTLOG EXAMPLE
+
+Here is an example of the recommended format for a FONTLOG, although other formats are allowed.
+
+-----
+FONTLOG for the GlobalFontFamily fonts
+
+This file provides detailed information on the GlobalFontFamily Font Software. This information should be distributed along with the GlobalFontFamily fonts and any derivative works.
+
+Basic Font Information
+
+GlobalFontFamily is a Unicode typeface family that supports all languages that use the Latin script and its variants, and could be expanded to support other scripts.
+
+NewWorldFontFamily is based on the GlobalFontFamily and also supports Greek, Hebrew, Cyrillic and Armenian.
+
+More specifically, this release supports the following Unicode ranges...
+This release contains...
+Documentation can be found at...
+To contribute to the project...
+
+ChangeLog
+
+10 December 2010 (Fred Foobar) GlobalFontFamily-devel version 1.4
+- fix new build and testing system (bug #123456)
+
+1 August 2008 (Tom Parker) GlobalFontFamily version 1.2.1
+- Tweaked the smart font code (Branch merged with trunk version)
+- Provided improved build and debugging environment for smart behaviours
+
+7 February 2007 (Pat Johnson) NewWorldFontFamily Version 1.3
+- Added Greek and Cyrillic glyphs
+
+7 March 2006 (Fred Foobar) NewWorldFontFamily Version 1.2
+- Tweaked contextual behaviours
+
+1 Feb 2005 (Jane Doe) NewWorldFontFamily Version 1.1
+- Improved build script performance and verbosity
+- Extended the smart code documentation
+- Corrected minor typos in the documentation
+- Fixed position of combining inverted breve below (U+032F)
+- Added OpenType/Graphite smart code for Armenian
+- Added Armenian glyphs (U+0531 -> U+0587)
+- Released as "NewWorldFontFamily"
+
+1 Jan 2005 (Joe Smith) GlobalFontFamily Version 1.0
+- Initial release
+
+Acknowledgements
+
+If you make modifications be sure to add your name (N), email (E), web-address (if you have one) (W) and description (D). This list is in alphabetical order.
+
+N: Jane Doe
+E: jane@university.edu
+W: http://art.university.edu/projects/fonts
+D: Contributor - Armenian glyphs and code
+
+N: Fred Foobar
+E: fred@foobar.org
+W: http://foobar.org
+D: Contributor - misc Graphite fixes
+
+N: Pat Johnson
+E: pat@fontstudio.org
+W: http://pat.fontstudio.org
+D: Designer - Greek & Cyrillic glyphs based on Roman design
+
+N: Tom Parker
+E: tom@company.com
+W: http://www.company.com/tom/projects/fonts
+D: Engineer - original smart font code
+
+N: Joe Smith
+E: joe@fontstudio.org
+W: http://joe.fontstudio.org
+D: Designer - original Roman glyphs
+
+Fontstudio.org is an not-for-profit design group whose purpose is...
+Foobar.org is a distributed community of developers...
+Company.com is a small business who likes to support community designers...
+University.edu is a renowned educational institution with a strong design department...
+-----
+
diff --git a/tests/input/font-psf-test/OFL.txt b/tests/input/font-psf-test/OFL.txt
new file mode 100644
index 0000000..0208027
--- /dev/null
+++ b/tests/input/font-psf-test/OFL.txt
@@ -0,0 +1,94 @@
+Copyright (c) 2004-2015, SIL International (http://scripts.sil.org),
+with Reserved Font Names 'Andika' and 'SIL'.
+
+This Font Software is licensed under the SIL Open Font License, Version 1.1.
+This license is copied below, and is also available with a FAQ at:
+http://scripts.sil.org/OFL
+
+
+-----------------------------------------------------------
+SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
+-----------------------------------------------------------
+
+PREAMBLE
+The goals of the Open Font License (OFL) are to stimulate worldwide
+development of collaborative font projects, to support the font creation
+efforts of academic and linguistic communities, and to provide a free and
+open framework in which fonts may be shared and improved in partnership
+with others.
+
+The OFL allows the licensed fonts to be used, studied, modified and
+redistributed freely as long as they are not sold by themselves. The
+fonts, including any derivative works, can be bundled, embedded,
+redistributed and/or sold with any software provided that any reserved
+names are not used by derivative works. The fonts and derivatives,
+however, cannot be released under any other type of license. The
+requirement for fonts to remain under this license does not apply
+to any document created using the fonts or their derivatives.
+
+DEFINITIONS
+"Font Software" refers to the set of files released by the Copyright
+Holder(s) under this license and clearly marked as such. This may
+include source files, build scripts and documentation.
+
+"Reserved Font Name" refers to any names specified as such after the
+copyright statement(s).
+
+"Original Version" refers to the collection of Font Software components as
+distributed by the Copyright Holder(s).
+
+"Modified Version" refers to any derivative made by adding to, deleting,
+or substituting -- in part or in whole -- any of the components of the
+Original Version, by changing formats or by porting the Font Software to a
+new environment.
+
+"Author" refers to any designer, engineer, programmer, technical
+writer or other person who contributed to the Font Software.
+
+PERMISSION & CONDITIONS
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of the Font Software, to use, study, copy, merge, embed, modify,
+redistribute, and sell modified and unmodified copies of the Font
+Software, subject to the following conditions:
+
+1) Neither the Font Software nor any of its individual components,
+in Original or Modified Versions, may be sold by itself.
+
+2) Original or Modified Versions of the Font Software may be bundled,
+redistributed and/or sold with any software, provided that each copy
+contains the above copyright notice and this license. These can be
+included either as stand-alone text files, human-readable headers or
+in the appropriate machine-readable metadata fields within text or
+binary files as long as those fields can be easily viewed by the user.
+
+3) No Modified Version of the Font Software may use the Reserved Font
+Name(s) unless explicit written permission is granted by the corresponding
+Copyright Holder. This restriction only applies to the primary font name as
+presented to the users.
+
+4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
+Software shall not be used to promote, endorse or advertise any
+Modified Version, except to acknowledge the contribution(s) of the
+Copyright Holder(s) and the Author(s) or with their explicit written
+permission.
+
+5) The Font Software, modified or unmodified, in part or in whole,
+must be distributed entirely under this license, and must not be
+distributed under any other license. The requirement for fonts to
+remain under this license does not apply to any document created
+using the Font Software.
+
+TERMINATION
+This license becomes null and void if any of the above conditions are
+not met.
+
+DISCLAIMER
+THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
+OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
+COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
+DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
+OTHER DEALINGS IN THE FONT SOFTWARE.
diff --git a/tests/input/font-psf-test/README.md b/tests/input/font-psf-test/README.md
new file mode 100644
index 0000000..572d380
--- /dev/null
+++ b/tests/input/font-psf-test/README.md
@@ -0,0 +1,9 @@
+# Psf Test
+
+Psf Test is a font family used only for testing the pysilfont framework. It is not intended to be an installable font family and doesn't even contain a complete Latin alphabet (Z and z are missing). The contents of these fonts are taken from [Andika New Basic](https://scripts.sil.org/andika).
+
+For copyright and licensing information - including any Reserved Font Names - see [OFL.txt](OFL.txt).
+
+For practical information about using, modifying and redistributing this font see [OFL-FAQ.txt](OFL-FAQ.txt).
+
+For more details about this project, including changelog and acknowledgements see [FONTLOG.txt](FONTLOG.txt) and [README.txt](README.txt).
diff --git a/tests/input/font-psf-test/README.txt b/tests/input/font-psf-test/README.txt
new file mode 100644
index 0000000..a0d837c
--- /dev/null
+++ b/tests/input/font-psf-test/README.txt
@@ -0,0 +1,87 @@
+README
+Andika
+=========================================
+
+(see FONTLOG.txt for information on the Psf Test family)
+
+Thank you for your interest in Andika ("Write!" in Swahili), a
+Unicode-compliant sans serif font designed by SIL International
+primarily for literacy use.
+
+Andika supports a wide range of Latin and Cyrillic characters.
+Documentation for the font is available on Andika website
+(http://scripts.sil.org/andika), including details on what ranges are
+supported.
+
+Andika is released under the SIL Open Font License.
+
+See the OFL and OFL-FAQ for details of the SIL Open Font License.
+See the FONTLOG for information on this and previous releases.
+See the website (http://scripts.sil.org/andika) for further documentation.
+Andika FAQ (http://scripts.sil.org/Andika_FAQ-KI) for frequently
+asked questions and their answers.
+See the SIL Unicode Roman FAQ (http://scripts.sil.org/ComplexRomanFontFAQ)
+for frequently asked questions and their answers regarding SIL's Roman fonts.
+
+
+TIPS
+====
+
+As this font is distributed at no cost, we are unable to provide a
+commercial level of personal technical support. The font has, however,
+been through some testing on various platforms to be sure it works in most
+situations. In particular, it has been tested and shown to work on Windows
+XP, Windows Vista and Windows 7. Graphite capabilities have been tested
+on Graphite-supported platforms.
+
+If you do find a problem, please do report it to andika@sil.org.
+We can't guarantee any direct response, but will try to fix reported bugs in
+future versions. Make sure you read through the
+SIL Unicode Roman FAQ (http://scripts.sil.org/ComplexRomanFontFAQ).
+
+Many problems can be solved, or at least explained, through an understanding
+of the encoding and use of the fonts. Here are some basic hints:
+
+Encoding:
+The fonts are encoded according to Unicode, so your application must support
+Unicode text in order to access letters other than the standard alphabet.
+Most Windows applications provide basic Unicode support. You will, however,
+need some way of entering Unicode text into your document.
+
+Keyboarding:
+Andika does not include any keyboarding helps or utilities. It uses the
+built-in keyboards of the operating system. You will need to install the
+appropriate keyboard and input method for the characters of the language you
+wish to use. If you want to enter characters that are not supported by any
+system keyboard, the Keyman program (www.tavultesoft.com) can be helpful
+on Windows systems. Also available for Windows is MSKLC
+(http://www.microsoft.com/globaldev/tools/msklc.mspx).
+For other platforms, KMFL (http://kmfl.sourceforge.net/),
+XKB (http://www.x.org/wiki/XKB) or Ukelele (http://scripts.sil.org/ukelele)
+can be helpful.
+
+If you want to enter characters that are not supported by any system
+keyboard, and to access the full Unicode range, we suggest you use
+gucharmap, kcharselect on Ubuntu or similar software.
+
+Another method of entering some symbols is provided by a few applications such
+as Adobe InDesign or OpenOffice.org. They can display a glyph palette or input
+dialog that shows all the glyphs (symbols) in a font and allow you to enter
+them by clicking on the glyph you want.
+
+Rendering:
+This font is designed to work with Graphite or Opentype advanced font
+technologies. To take advantage of the advanced typographic
+capabilities of this font, you must be using applications that provide an
+adequate level of support for Graphite or OpenType. See "Applications
+that provide an adequate level of support for SIL Unicode Roman fonts"
+(http://scripts.sil.org/Complex_AdLvSup).
+
+
+CONTACT
+========
+For more information please visit the Andika page on SIL International's
+Computers and Writing systems website:
+http://scripts.sil.org/andika
+
+Support through the website: http://scripts.sil.org/Support
diff --git a/tests/input/font-psf-test/preflight b/tests/input/font-psf-test/preflight
new file mode 100755
index 0000000..9a63416
--- /dev/null
+++ b/tests/input/font-psf-test/preflight
@@ -0,0 +1,19 @@
+#!/bin/sh
+
+# This normalization will also run check and fix routines
+psfnormalize -p checkfix=fix source/PsfTest-Regular.ufo -l source/logs/normR.log
+psfnormalize -p checkfix=fix source/PsfTest-Bold.ufo -l source/logs/normB.log
+psfnormalize -p checkfix=fix source/PsfTest-Italic.ufo -l source/logs/normI.log
+psfnormalize -p checkfix=fix source/PsfTest-BoldItalic.ufo -l source/logs/normBI.log
+
+# Building composites - needs to be done after normalization or may complain due to bad anchor coordinates
+psfbuildcomp -i source/composites.txt source/PsfTest-Regular.ufo -l source/logs/compsR.log
+psfbuildcomp -i source/composites.txt source/PsfTest-Bold.ufo -l source/logs/compsB.log
+psfbuildcomp -i source/composites.txt source/PsfTest-Italic.ufo -l source/logs/compsI.log
+psfbuildcomp -i source/composites.txt source/PsfTest-BoldItalic.ufo -l source/logs/compsBI.log
+
+psfsetpsnames -i source/glyph_data.csv source/PsfTest-Regular.ufo -l source/logs/psnames.log
+psfsetglyphorder --header sort_final -i source/glyph_data.csv source/PsfTest-Regular.ufo -l source/logs/sortorder.log
+
+# Following sync will copy psnames and glyphorder updates to all fonts
+psfsyncmasters source/PsfTestRoman.designspace source/PsfTestItalic.designspace -l source/logs/sync.log
diff --git a/tests/input/font-psf-test/preflightg b/tests/input/font-psf-test/preflightg
new file mode 100755
index 0000000..f7618cf
--- /dev/null
+++ b/tests/input/font-psf-test/preflightg
@@ -0,0 +1,7 @@
+#!/bin/sh
+
+# Produce individual UFOs from Glyphs files
+psfglyphs2ufo --nofea source/PsfTestRoman.glyphs source -l source/logs/glyphs2ufoR.log
+psfglyphs2ufo --nofea source/PsfTestItalic.glyphs source -l source/logs/glyphs2ufoI.log
+
+./preflight \ No newline at end of file
diff --git a/tests/input/font-psf-test/source/PsfTest-Bold.ufo/fontinfo.plist b/tests/input/font-psf-test/source/PsfTest-Bold.ufo/fontinfo.plist
new file mode 100644
index 0000000..ca93d40
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Bold.ufo/fontinfo.plist
@@ -0,0 +1,245 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>ascender</key>
+ <integer>2100</integer>
+ <key>capHeight</key>
+ <integer>1485</integer>
+ <key>copyright</key>
+ <string>Copyright (c) 2004-2021 SIL International</string>
+ <key>descender</key>
+ <integer>-550</integer>
+ <key>familyName</key>
+ <string>Psf Test</string>
+ <key>note</key>
+ <string>Test note
+Second line
+
+Third line
+</string>
+ <key>openTypeHeadCreated</key>
+ <string>2021/01/01 11:00:00</string>
+ <key>openTypeHheaAscender</key>
+ <integer>2100</integer>
+ <key>openTypeHheaDescender</key>
+ <integer>-550</integer>
+ <key>openTypeHheaLineGap</key>
+ <integer>0</integer>
+ <key>openTypeNameDescription</key>
+ <string>Copyright (c) 2004-2021 SIL International</string>
+ <key>openTypeNameDesigner</key>
+ <string>Victor Gaultney, Annie Olsen, Julie Remington, Don Collingsworth, Eric Hays, Becca Hirsbrunner</string>
+ <key>openTypeNameDesignerURL</key>
+ <string>http://scripts.sil.org/</string>
+ <key>openTypeNameLicense</key>
+ <string>Copyright (c) 2004-2021 SIL International (http://www.sil.org/) with Reserved Font Names "Andika" and "SIL".
+
+This Font Software is licensed under the SIL Open Font License, Version 1.1. This license is copied below, and is also available with a FAQ at: http://scripts.sil.org/OFL
+
+
+-----------------------------------------------------------
+SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
+-----------------------------------------------------------
+
+PREAMBLE
+The goals of the Open Font License (OFL) are to stimulate worldwide development of collaborative font projects, to support the font creation efforts of academic and linguistic communities, and to provide a free and open framework in which fonts may be shared and improved in partnership with others.
+
+The OFL allows the licensed fonts to be used, studied, modified and redistributed freely as long as they are not sold by themselves. The fonts, including any derivative works, can be bundled, embedded, redistributed and/or sold with any software provided that any reserved names are not used by derivative works. The fonts and derivatives, however, cannot be released under any other type of license. The requirement for fonts to remain under this license does not apply to any document created using the fonts or their derivatives.
+
+DEFINITIONS
+"Font Software" refers to the set of files released by the Copyright Holder(s) under this license and clearly marked as such. This may include source files, build scripts and documentation.
+
+"Reserved Font Name" refers to any names specified as such after the copyright statement(s).
+
+"Original Version" refers to the collection of Font Software components as distributed by the Copyright Holder(s).
+
+"Modified Version" refers to any derivative made by adding to, deleting, or substituting -- in part or in whole -- any of the components of the Original Version, by changing formats or by porting the Font Software to a new environment.
+
+"Author" refers to any designer, engineer, programmer, technical writer or other person who contributed to the Font Software.
+
+PERMISSION &amp; CONDITIONS
+Permission is hereby granted, free of charge, to any person obtaining a copy of the Font Software, to use, study, copy, merge, embed, modify, redistribute, and sell modified and unmodified copies of the Font Software, subject to the following conditions:
+
+1) Neither the Font Software nor any of its individual components, in Original or Modified Versions, may be sold by itself.
+
+2) Original or Modified Versions of the Font Software may be bundled, redistributed and/or sold with any software, provided that each copy contains the above copyright notice and this license. These can be included either as stand-alone text files, human-readable headers or in the appropriate machine-readable metadata fields within text or binary files as long as those fields can be easily viewed by the user.
+
+3) No Modified Version of the Font Software may use the Reserved Font Name(s) unless explicit written permission is granted by the corresponding Copyright Holder. This restriction only applies to the primary font name as presented to the users.
+
+4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font Software shall not be used to promote, endorse or advertise any Modified Version, except to acknowledge the contribution(s) of the Copyright Holder(s) and the Author(s) or with their explicit written permission.
+
+5) The Font Software, modified or unmodified, in part or in whole, must be distributed entirely under this license, and must not be distributed under any other license. The requirement for fonts to remain under this license does not apply to any document created using the Font Software.
+
+TERMINATION
+This license becomes null and void if any of the above conditions are not met.
+
+DISCLAIMER
+THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM OTHER DEALINGS IN THE FONT SOFTWARE.</string>
+ <key>openTypeNameLicenseURL</key>
+ <string>http://scripts.sil.org/OFL</string>
+ <key>openTypeNameManufacturer</key>
+ <string>SIL International</string>
+ <key>openTypeNameManufacturerURL</key>
+ <string>http://scripts.sil.org</string>
+ <key>openTypeNamePreferredFamilyName</key>
+ <string>Psf Test</string>
+ <key>openTypeNamePreferredSubfamilyName</key>
+ <string>Bold</string>
+ <key>openTypeNameUniqueID</key>
+ <string>SIL International: Psf Test Bold: 2022</string>
+ <key>openTypeNameVersion</key>
+ <string>Version 5.550</string>
+ <key>openTypeOS2CodePageRanges</key>
+ <array>
+ <integer>0</integer>
+ <integer>1</integer>
+ <integer>2</integer>
+ <integer>4</integer>
+ <integer>7</integer>
+ <integer>8</integer>
+ </array>
+ <key>openTypeOS2FamilyClass</key>
+ <array>
+ <integer>0</integer>
+ <integer>0</integer>
+ </array>
+ <key>openTypeOS2Panose</key>
+ <array>
+ <integer>2</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ </array>
+ <key>openTypeOS2StrikeoutPosition</key>
+ <integer>700</integer>
+ <key>openTypeOS2StrikeoutSize</key>
+ <integer>100</integer>
+ <key>openTypeOS2SubscriptXOffset</key>
+ <integer>0</integer>
+ <key>openTypeOS2SubscriptXSize</key>
+ <integer>1433</integer>
+ <key>openTypeOS2SubscriptYOffset</key>
+ <integer>286</integer>
+ <key>openTypeOS2SubscriptYSize</key>
+ <integer>1331</integer>
+ <key>openTypeOS2SuperscriptXOffset</key>
+ <integer>0</integer>
+ <key>openTypeOS2SuperscriptXSize</key>
+ <integer>1433</integer>
+ <key>openTypeOS2SuperscriptYOffset</key>
+ <integer>976</integer>
+ <key>openTypeOS2SuperscriptYSize</key>
+ <integer>1331</integer>
+ <key>openTypeOS2Type</key>
+ <array/>
+ <key>openTypeOS2TypoAscender</key>
+ <integer>2100</integer>
+ <key>openTypeOS2TypoDescender</key>
+ <integer>-550</integer>
+ <key>openTypeOS2TypoLineGap</key>
+ <integer>0</integer>
+ <key>openTypeOS2UnicodeRanges</key>
+ <array>
+ <integer>0</integer>
+ <integer>1</integer>
+ <integer>6</integer>
+ <integer>7</integer>
+ <integer>31</integer>
+ <integer>33</integer>
+ <integer>35</integer>
+ <integer>36</integer>
+ <integer>37</integer>
+ <integer>38</integer>
+ <integer>39</integer>
+ <integer>40</integer>
+ <integer>45</integer>
+ <integer>46</integer>
+ <integer>47</integer>
+ <integer>57</integer>
+ <integer>60</integer>
+ <integer>62</integer>
+ <integer>64</integer>
+ <integer>67</integer>
+ <integer>69</integer>
+ <integer>89</integer>
+ </array>
+ <key>openTypeOS2VendorID</key>
+ <string>SIL</string>
+ <key>openTypeOS2WeightClass</key>
+ <integer>700</integer>
+ <key>openTypeOS2WidthClass</key>
+ <integer>5</integer>
+ <key>openTypeOS2WinAscent</key>
+ <integer>2100</integer>
+ <key>openTypeOS2WinDescent</key>
+ <integer>550</integer>
+ <key>postscriptBlueValues</key>
+ <array>
+ <integer>-490</integer>
+ <integer>-490</integer>
+ <integer>-25</integer>
+ <integer>0</integer>
+ <integer>1020</integer>
+ <integer>1040</integer>
+ <integer>1455</integer>
+ <integer>1485</integer>
+ <integer>1600</integer>
+ <integer>1620</integer>
+ </array>
+ <key>postscriptFontName</key>
+ <string>PsfTest-Bold</string>
+ <key>postscriptFullName</key>
+ <string>Psf Test Bold</string>
+ <key>postscriptStemSnapH</key>
+ <array>
+ <integer>140</integer>
+ <integer>145</integer>
+ <integer>150</integer>
+ <integer>155</integer>
+ <integer>160</integer>
+ <integer>165</integer>
+ <integer>170</integer>
+ <integer>175</integer>
+ <integer>185</integer>
+ <integer>270</integer>
+ </array>
+ <key>postscriptStemSnapV</key>
+ <array>
+ <integer>165</integer>
+ <integer>180</integer>
+ <integer>185</integer>
+ <integer>190</integer>
+ <integer>195</integer>
+ <integer>200</integer>
+ <integer>205</integer>
+ <integer>270</integer>
+ </array>
+ <key>postscriptUnderlinePosition</key>
+ <integer>-110</integer>
+ <key>postscriptUnderlineThickness</key>
+ <integer>80</integer>
+ <key>styleMapFamilyName</key>
+ <string>Psf Test</string>
+ <key>styleMapStyleName</key>
+ <string>bold</string>
+ <key>styleName</key>
+ <string>Bold</string>
+ <key>trademark</key>
+ <string>Andika is a trademark of SIL International.</string>
+ <key>unitsPerEm</key>
+ <integer>2048</integer>
+ <key>versionMajor</key>
+ <integer>5</integer>
+ <key>versionMinor</key>
+ <integer>550</integer>
+ <key>xHeight</key>
+ <integer>1040</integer>
+</dict>
+</plist>
diff --git a/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/A_mpersand.glif b/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/A_mpersand.glif
new file mode 100644
index 0000000..f2749f2
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/A_mpersand.glif
@@ -0,0 +1,61 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Ampersand" format="2">
+ <advance width="1355"/>
+ <unicode hex="0026"/>
+ <outline>
+ <contour>
+ <point x="1060" y="600" type="line"/>
+ <point x="996" y="433"/>
+ <point x="715" y="190"/>
+ <point x="540" y="190" type="curve" smooth="yes"/>
+ <point x="425" y="190"/>
+ <point x="335" y="257"/>
+ <point x="335" y="370" type="curve" smooth="yes"/>
+ <point x="335" y="480"/>
+ <point x="411" y="547"/>
+ <point x="585" y="700" type="curve" smooth="yes"/>
+ <point x="766" y="859"/>
+ <point x="925" y="1048"/>
+ <point x="925" y="1190" type="curve" smooth="yes"/>
+ <point x="925" y="1372"/>
+ <point x="777" y="1485"/>
+ <point x="575" y="1485" type="curve" smooth="yes"/>
+ <point x="366" y="1485"/>
+ <point x="190" y="1372"/>
+ <point x="190" y="1160" type="curve" smooth="yes"/>
+ <point x="190" y="1000"/>
+ <point x="407" y="785"/>
+ <point x="590" y="540" type="curve" smooth="yes"/>
+ <point x="859" y="179"/>
+ <point x="1038" y="-25"/>
+ <point x="1090" y="-25" type="curve" smooth="yes"/>
+ <point x="1125" y="-25"/>
+ <point x="1253" y="58"/>
+ <point x="1290" y="90" type="curve"/>
+ <point x="1195" y="130"/>
+ <point x="1060" y="305"/>
+ <point x="785" y="680" type="curve" smooth="yes"/>
+ <point x="619" y="906"/>
+ <point x="420" y="1085"/>
+ <point x="420" y="1170" type="curve" smooth="yes"/>
+ <point x="420" y="1241"/>
+ <point x="483" y="1310"/>
+ <point x="560" y="1310" type="curve" smooth="yes"/>
+ <point x="640" y="1310"/>
+ <point x="695" y="1254"/>
+ <point x="695" y="1175" type="curve" smooth="yes"/>
+ <point x="695" y="1106"/>
+ <point x="628" y="1001"/>
+ <point x="455" y="840" type="curve" smooth="yes"/>
+ <point x="251" y="651"/>
+ <point x="90" y="527"/>
+ <point x="90" y="344" type="curve" smooth="yes"/>
+ <point x="90" y="121"/>
+ <point x="242" y="-25"/>
+ <point x="525" y="-25" type="curve" smooth="yes"/>
+ <point x="808" y="-25"/>
+ <point x="1117" y="264"/>
+ <point x="1195" y="425" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/A_pos.glif b/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/A_pos.glif
new file mode 100644
index 0000000..61494e8
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/A_pos.glif
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Apos" format="2">
+ <advance width="625"/>
+ <unicode hex="0027"/>
+ <outline>
+ <contour>
+ <point x="400" y="1045" type="line"/>
+ <point x="405" y="1186"/>
+ <point x="406" y="1339"/>
+ <point x="435" y="1585" type="curve"/>
+ <point x="190" y="1585" type="line"/>
+ <point x="221" y="1339"/>
+ <point x="221" y="1186"/>
+ <point x="225" y="1045" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/A_sterisk.glif b/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/A_sterisk.glif
new file mode 100644
index 0000000..ed9d25e
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/A_sterisk.glif
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Asterisk" format="2">
+ <advance width="1040"/>
+ <unicode hex="002A"/>
+ <outline>
+ <contour>
+ <point x="827" y="1493" type="line"/>
+ <point x="747" y="1426"/>
+ <point x="679" y="1367"/>
+ <point x="594" y="1308" type="curve"/>
+ <point x="599" y="1405"/>
+ <point x="609" y="1486"/>
+ <point x="624" y="1600" type="curve"/>
+ <point x="425" y="1600" type="line"/>
+ <point x="444" y="1497"/>
+ <point x="460" y="1412"/>
+ <point x="468" y="1308" type="curve"/>
+ <point x="383" y="1360"/>
+ <point x="312" y="1408"/>
+ <point x="228" y="1476" type="curve"/>
+ <point x="126" y="1306" type="line"/>
+ <point x="231" y="1271"/>
+ <point x="331" y="1234"/>
+ <point x="412" y="1196" type="curve"/>
+ <point x="328" y="1153"/>
+ <point x="243" y="1120"/>
+ <point x="136" y="1077" type="curve"/>
+ <point x="237" y="897" type="line"/>
+ <point x="316" y="968"/>
+ <point x="382" y="1026"/>
+ <point x="466" y="1087" type="curve"/>
+ <point x="459" y="983"/>
+ <point x="449" y="896"/>
+ <point x="431" y="793" type="curve"/>
+ <point x="632" y="793" type="line"/>
+ <point x="610" y="906"/>
+ <point x="602" y="987"/>
+ <point x="593" y="1084" type="curve"/>
+ <point x="682" y="1027"/>
+ <point x="747" y="981"/>
+ <point x="830" y="914" type="curve"/>
+ <point x="936" y="1089" type="line"/>
+ <point x="827" y="1127"/>
+ <point x="743" y="1155"/>
+ <point x="651" y="1196" type="curve"/>
+ <point x="738" y="1241"/>
+ <point x="820" y="1277"/>
+ <point x="924" y="1321" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/A_tS_gn.glif b/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/A_tS_gn.glif
new file mode 100644
index 0000000..47fee96
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/A_tS_gn.glif
@@ -0,0 +1,80 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="AtSgn" format="2">
+ <advance width="1742"/>
+ <unicode hex="0040"/>
+ <outline>
+ <contour>
+ <point x="1140" y="10" type="line"/>
+ <point x="1077" y="-34"/>
+ <point x="988" y="-60"/>
+ <point x="895" y="-60" type="curve" smooth="yes"/>
+ <point x="558" y="-60"/>
+ <point x="290" y="204"/>
+ <point x="290" y="605" type="curve" smooth="yes"/>
+ <point x="290" y="973"/>
+ <point x="557" y="1240"/>
+ <point x="895" y="1240" type="curve" smooth="yes"/>
+ <point x="1278" y="1240"/>
+ <point x="1460" y="992"/>
+ <point x="1460" y="670" type="curve" smooth="yes"/>
+ <point x="1460" y="452"/>
+ <point x="1363" y="335"/>
+ <point x="1305" y="335" type="curve" smooth="yes"/>
+ <point x="1256" y="335"/>
+ <point x="1220" y="430"/>
+ <point x="1220" y="650" type="curve" smooth="yes"/>
+ <point x="1220" y="980" type="line"/>
+ <point x="1133" y="1015"/>
+ <point x="986" y="1040"/>
+ <point x="905" y="1040" type="curve" smooth="yes"/>
+ <point x="741" y="1040"/>
+ <point x="618" y="961"/>
+ <point x="535" y="825" type="curve" smooth="yes"/>
+ <point x="488" y="746"/>
+ <point x="460" y="653"/>
+ <point x="460" y="530" type="curve" smooth="yes"/>
+ <point x="460" y="304"/>
+ <point x="606" y="163"/>
+ <point x="740" y="163" type="curve" smooth="yes"/>
+ <point x="867" y="163"/>
+ <point x="1013" y="331"/>
+ <point x="1065" y="455" type="curve"/>
+ <point x="1075" y="287"/>
+ <point x="1153" y="160"/>
+ <point x="1275" y="160" type="curve" smooth="yes"/>
+ <point x="1450" y="160"/>
+ <point x="1650" y="358"/>
+ <point x="1650" y="700" type="curve" smooth="yes"/>
+ <point x="1650" y="1137"/>
+ <point x="1342" y="1425"/>
+ <point x="905" y="1425" type="curve" smooth="yes"/>
+ <point x="480" y="1425"/>
+ <point x="90" y="1136"/>
+ <point x="90" y="575" type="curve" smooth="yes"/>
+ <point x="90" y="38"/>
+ <point x="479" y="-245"/>
+ <point x="880" y="-245" type="curve" smooth="yes"/>
+ <point x="1015" y="-245"/>
+ <point x="1175" y="-198"/>
+ <point x="1275" y="-128" type="curve"/>
+ </contour>
+ <contour>
+ <point x="1020" y="710" type="line"/>
+ <point x="988" y="572"/>
+ <point x="863" y="350"/>
+ <point x="773" y="350" type="curve" smooth="yes"/>
+ <point x="701" y="350"/>
+ <point x="660" y="428"/>
+ <point x="660" y="575" type="curve" smooth="yes"/>
+ <point x="660" y="652"/>
+ <point x="682" y="737"/>
+ <point x="720" y="786" type="curve" smooth="yes"/>
+ <point x="756" y="831"/>
+ <point x="807" y="855"/>
+ <point x="875" y="855" type="curve" smooth="yes"/>
+ <point x="949" y="855"/>
+ <point x="987" y="836"/>
+ <point x="1020" y="820" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/C_ircumA_ccent.glif b/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/C_ircumA_ccent.glif
new file mode 100644
index 0000000..7258b7d
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/C_ircumA_ccent.glif
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="CircumAccent" format="2">
+ <advance width="880"/>
+ <unicode hex="005E"/>
+ <anchor x="440" y="1635" name="U"/>
+ <outline>
+ <contour>
+ <point x="888" y="1200" type="line"/>
+ <point x="598" y="1600" type="line"/>
+ <point x="298" y="1600" type="line"/>
+ <point x="8" y="1200" type="line"/>
+ <point x="248" y="1200" type="line"/>
+ <point x="448" y="1430" type="line"/>
+ <point x="648" y="1200" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/C_olon.glif b/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/C_olon.glif
new file mode 100644
index 0000000..ae4801a
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/C_olon.glif
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Colon" format="2">
+ <advance width="710"/>
+ <unicode hex="003A"/>
+ <outline>
+ <contour>
+ <point x="200" y="150" type="curve" smooth="yes"/>
+ <point x="200" y="46"/>
+ <point x="274" y="-25"/>
+ <point x="375" y="-25" type="curve" smooth="yes"/>
+ <point x="477" y="-25"/>
+ <point x="550" y="46"/>
+ <point x="550" y="150" type="curve" smooth="yes"/>
+ <point x="550" y="252"/>
+ <point x="477" y="325"/>
+ <point x="375" y="325" type="curve" smooth="yes"/>
+ <point x="274" y="325"/>
+ <point x="200" y="252"/>
+ </contour>
+ <contour>
+ <point x="200" y="750" type="curve" smooth="yes"/>
+ <point x="200" y="646"/>
+ <point x="274" y="575"/>
+ <point x="375" y="575" type="curve" smooth="yes"/>
+ <point x="477" y="575"/>
+ <point x="550" y="646"/>
+ <point x="550" y="750" type="curve" smooth="yes"/>
+ <point x="550" y="852"/>
+ <point x="477" y="925"/>
+ <point x="375" y="925" type="curve" smooth="yes"/>
+ <point x="274" y="925"/>
+ <point x="200" y="852"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/C_ombA_cute.glif b/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/C_ombA_cute.glif
new file mode 100644
index 0000000..5574223
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/C_ombA_cute.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="CombAcute" format="2">
+ <unicode hex="0301"/>
+ <anchor x="-600" y="1635" name="U"/>
+ <anchor x="-540" y="1100" name="_U"/>
+ <outline>
+ <contour>
+ <point x="-470" y="1600" type="line"/>
+ <point x="-760" y="1200" type="line"/>
+ <point x="-520" y="1200" type="line"/>
+ <point x="-120" y="1600" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/C_ombC_ircum.glif b/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/C_ombC_ircum.glif
new file mode 100644
index 0000000..ca30491
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/C_ombC_ircum.glif
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="CombCircum" format="2">
+ <unicode hex="0302"/>
+ <anchor x="-588" y="1635" name="U"/>
+ <anchor x="-580" y="1100" name="_U"/>
+ <outline>
+ <contour>
+ <point x="-140" y="1200" type="line"/>
+ <point x="-430" y="1600" type="line"/>
+ <point x="-730" y="1600" type="line"/>
+ <point x="-1020" y="1200" type="line"/>
+ <point x="-780" y="1200" type="line"/>
+ <point x="-580" y="1430" type="line"/>
+ <point x="-380" y="1200" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/C_ombD_iaer.glif b/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/C_ombD_iaer.glif
new file mode 100644
index 0000000..5a15368
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/C_ombD_iaer.glif
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="CombDiaer" format="2">
+ <unicode hex="0308"/>
+ <anchor x="-580" y="1585" name="U"/>
+ <anchor x="-580" y="1100" name="_U"/>
+ <outline>
+ <contour>
+ <point x="-510" y="1385" type="curve" smooth="yes"/>
+ <point x="-510" y="1281"/>
+ <point x="-436" y="1210"/>
+ <point x="-335" y="1210" type="curve" smooth="yes"/>
+ <point x="-233" y="1210"/>
+ <point x="-160" y="1281"/>
+ <point x="-160" y="1385" type="curve" smooth="yes"/>
+ <point x="-160" y="1487"/>
+ <point x="-233" y="1560"/>
+ <point x="-335" y="1560" type="curve" smooth="yes"/>
+ <point x="-436" y="1560"/>
+ <point x="-510" y="1487"/>
+ </contour>
+ <contour>
+ <point x="-1000" y="1385" type="curve" smooth="yes"/>
+ <point x="-1000" y="1281"/>
+ <point x="-926" y="1210"/>
+ <point x="-825" y="1210" type="curve" smooth="yes"/>
+ <point x="-723" y="1210"/>
+ <point x="-650" y="1281"/>
+ <point x="-650" y="1385" type="curve" smooth="yes"/>
+ <point x="-650" y="1487"/>
+ <point x="-723" y="1560"/>
+ <point x="-825" y="1560" type="curve" smooth="yes"/>
+ <point x="-926" y="1560"/>
+ <point x="-1000" y="1487"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/C_ombG_rave.glif b/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/C_ombG_rave.glif
new file mode 100644
index 0000000..33bed8f
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/C_ombG_rave.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="CombGrave" format="2">
+ <unicode hex="0300"/>
+ <anchor x="-590" y="1635" name="U"/>
+ <anchor x="-630" y="1100" name="_U"/>
+ <outline>
+ <contour>
+ <point x="-1050" y="1600" type="line"/>
+ <point x="-650" y="1200" type="line"/>
+ <point x="-410" y="1200" type="line"/>
+ <point x="-700" y="1600" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/C_ombR_ingA_bv.glif b/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/C_ombR_ingA_bv.glif
new file mode 100644
index 0000000..7e03146
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/C_ombR_ingA_bv.glif
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="CombRingAbv" format="2">
+ <unicode hex="030A"/>
+ <anchor x="-570" y="1635" name="U"/>
+ <anchor x="-572" y="1100" name="_U"/>
+ <outline>
+ <contour>
+ <point x="-475" y="1400" type="curve" smooth="yes"/>
+ <point x="-475" y="1345"/>
+ <point x="-515" y="1305"/>
+ <point x="-570" y="1305" type="curve" smooth="yes"/>
+ <point x="-625" y="1305"/>
+ <point x="-665" y="1345"/>
+ <point x="-665" y="1400" type="curve" smooth="yes"/>
+ <point x="-665" y="1455"/>
+ <point x="-625" y="1495"/>
+ <point x="-570" y="1495" type="curve" smooth="yes"/>
+ <point x="-515" y="1495"/>
+ <point x="-475" y="1455"/>
+ </contour>
+ <contour>
+ <point x="-815" y="1400" type="curve" smooth="yes"/>
+ <point x="-815" y="1260"/>
+ <point x="-710" y="1160"/>
+ <point x="-570" y="1160" type="curve" smooth="yes"/>
+ <point x="-430" y="1160"/>
+ <point x="-325" y="1260"/>
+ <point x="-325" y="1400" type="curve" smooth="yes"/>
+ <point x="-325" y="1540"/>
+ <point x="-430" y="1640"/>
+ <point x="-570" y="1640" type="curve" smooth="yes"/>
+ <point x="-710" y="1640"/>
+ <point x="-815" y="1540"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/C_ombT_ilde.glif b/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/C_ombT_ilde.glif
new file mode 100644
index 0000000..ee23af5
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/C_ombT_ilde.glif
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="CombTilde" format="2">
+ <unicode hex="0303"/>
+ <anchor x="-580" y="1490" name="U"/>
+ <anchor x="-580" y="1100" name="_U"/>
+ <outline>
+ <contour>
+ <point x="-830" y="1190" type="line"/>
+ <point x="-824" y="1232"/>
+ <point x="-803" y="1280"/>
+ <point x="-753" y="1280" type="curve" smooth="yes"/>
+ <point x="-710" y="1280"/>
+ <point x="-653" y="1264"/>
+ <point x="-570" y="1229" type="curve" smooth="yes"/>
+ <point x="-500" y="1199"/>
+ <point x="-448" y="1180"/>
+ <point x="-386" y="1180" type="curve" smooth="yes"/>
+ <point x="-250" y="1180"/>
+ <point x="-155" y="1307"/>
+ <point x="-155" y="1480" type="curve"/>
+ <point x="-310" y="1480" type="line"/>
+ <point x="-318" y="1438"/>
+ <point x="-340" y="1390"/>
+ <point x="-387" y="1390" type="curve" smooth="yes"/>
+ <point x="-435" y="1390"/>
+ <point x="-472" y="1408"/>
+ <point x="-550" y="1437" type="curve" smooth="yes"/>
+ <point x="-629" y="1466"/>
+ <point x="-695" y="1490"/>
+ <point x="-760" y="1490" type="curve" smooth="yes"/>
+ <point x="-892" y="1490"/>
+ <point x="-985" y="1349"/>
+ <point x="-985" y="1190" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/C_omma.glif b/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/C_omma.glif
new file mode 100644
index 0000000..9d4845e
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/C_omma.glif
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Comma" format="2">
+ <advance width="665"/>
+ <unicode hex="002C"/>
+ <outline>
+ <contour>
+ <point x="185" y="50" type="line"/>
+ <point x="345" y="50" type="line"/>
+ <point x="345" y="-34"/>
+ <point x="290" y="-153"/>
+ <point x="185" y="-265" type="curve"/>
+ <point x="330" y="-335" type="line"/>
+ <point x="454" y="-228"/>
+ <point x="560" y="-49"/>
+ <point x="560" y="130" type="curve" smooth="yes"/>
+ <point x="560" y="254"/>
+ <point x="489" y="340"/>
+ <point x="375" y="340" type="curve" smooth="yes"/>
+ <point x="262" y="340"/>
+ <point x="185" y="255"/>
+ <point x="185" y="180" type="curve" smooth="yes"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/D_igitE_ight.glif b/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/D_igitE_ight.glif
new file mode 100644
index 0000000..a59fff4
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/D_igitE_ight.glif
@@ -0,0 +1,63 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitEight" format="2">
+ <advance width="1200"/>
+ <unicode hex="0038"/>
+ <anchor x="600" y="-100" name="L"/>
+ <anchor x="600" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="600" y="-25" type="curve" smooth="yes"/>
+ <point x="877" y="-25"/>
+ <point x="1130" y="144"/>
+ <point x="1130" y="415" type="curve" smooth="yes"/>
+ <point x="1130" y="641"/>
+ <point x="985" y="739"/>
+ <point x="875" y="795" type="curve"/>
+ <point x="953" y="841"/>
+ <point x="1060" y="923"/>
+ <point x="1060" y="1105" type="curve" smooth="yes"/>
+ <point x="1060" y="1350"/>
+ <point x="860" y="1485"/>
+ <point x="610" y="1485" type="curve" smooth="yes"/>
+ <point x="361" y="1485"/>
+ <point x="140" y="1350"/>
+ <point x="140" y="1105" type="curve" smooth="yes"/>
+ <point x="140" y="923"/>
+ <point x="252" y="838"/>
+ <point x="330" y="795" type="curve"/>
+ <point x="201" y="725"/>
+ <point x="70" y="631"/>
+ <point x="70" y="405" type="curve" smooth="yes"/>
+ <point x="70" y="134"/>
+ <point x="324" y="-25"/>
+ </contour>
+ <contour>
+ <point x="810" y="1100" type="curve" smooth="yes"/>
+ <point x="810" y="974"/>
+ <point x="733" y="895"/>
+ <point x="600" y="895" type="curve" smooth="yes"/>
+ <point x="467" y="895"/>
+ <point x="390" y="974"/>
+ <point x="390" y="1100" type="curve" smooth="yes"/>
+ <point x="390" y="1217"/>
+ <point x="477" y="1290"/>
+ <point x="600" y="1290" type="curve" smooth="yes"/>
+ <point x="743" y="1290"/>
+ <point x="810" y="1207"/>
+ </contour>
+ <contour>
+ <point x="865" y="435" type="curve" smooth="yes"/>
+ <point x="865" y="300"/>
+ <point x="768" y="185"/>
+ <point x="600" y="185" type="curve" smooth="yes"/>
+ <point x="440" y="185"/>
+ <point x="335" y="300"/>
+ <point x="335" y="435" type="curve" smooth="yes"/>
+ <point x="335" y="582"/>
+ <point x="450" y="680"/>
+ <point x="600" y="680" type="curve" smooth="yes"/>
+ <point x="748" y="680"/>
+ <point x="865" y="582"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/D_igitF_ive.glif b/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/D_igitF_ive.glif
new file mode 100644
index 0000000..102780d
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/D_igitF_ive.glif
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitFive" format="2">
+ <advance width="1200"/>
+ <unicode hex="0035"/>
+ <anchor x="600" y="-100" name="L"/>
+ <anchor x="600" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="175" y="645" type="line"/>
+ <point x="299" y="693"/>
+ <point x="404" y="710"/>
+ <point x="510" y="710" type="curve" smooth="yes"/>
+ <point x="670" y="710"/>
+ <point x="810" y="632"/>
+ <point x="810" y="470" type="curve" smooth="yes"/>
+ <point x="810" y="318"/>
+ <point x="690" y="215"/>
+ <point x="530" y="215" type="curve" smooth="yes"/>
+ <point x="390" y="215"/>
+ <point x="274" y="252"/>
+ <point x="140" y="360" type="curve"/>
+ <point x="100" y="80" type="line"/>
+ <point x="225" y="2"/>
+ <point x="365" y="-25"/>
+ <point x="520" y="-25" type="curve" smooth="yes"/>
+ <point x="833" y="-25"/>
+ <point x="1090" y="163"/>
+ <point x="1090" y="475" type="curve" smooth="yes"/>
+ <point x="1090" y="752"/>
+ <point x="882" y="930"/>
+ <point x="605" y="930" type="curve" smooth="yes"/>
+ <point x="543" y="930"/>
+ <point x="468" y="911"/>
+ <point x="435" y="895" type="curve"/>
+ <point x="435" y="1215" type="line"/>
+ <point x="765" y="1215" type="line" smooth="yes"/>
+ <point x="849" y="1215"/>
+ <point x="955" y="1211"/>
+ <point x="1030" y="1195" type="curve"/>
+ <point x="1030" y="1460" type="line"/>
+ <point x="175" y="1460" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/D_igitF_our.glif b/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/D_igitF_our.glif
new file mode 100644
index 0000000..7d2cbe6
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/D_igitF_our.glif
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitFour" format="2">
+ <advance width="1200"/>
+ <unicode hex="0034"/>
+ <anchor x="607" y="-100" name="L"/>
+ <anchor x="607" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1155" y="345" type="line"/>
+ <point x="1155" y="570" type="line"/>
+ <point x="995" y="570" type="line"/>
+ <point x="995" y="1460" type="line"/>
+ <point x="695" y="1460" type="line"/>
+ <point x="60" y="570" type="line"/>
+ <point x="60" y="345" type="line"/>
+ <point x="730" y="345" type="line"/>
+ <point x="730" y="0" type="line"/>
+ <point x="995" y="0" type="line"/>
+ <point x="995" y="345" type="line"/>
+ </contour>
+ <contour>
+ <point x="730" y="1145" type="line"/>
+ <point x="730" y="570" type="line"/>
+ <point x="305" y="570" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/D_igitN_ine.glif b/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/D_igitN_ine.glif
new file mode 100644
index 0000000..b1e153b
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/D_igitN_ine.glif
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitNine" format="2">
+ <advance width="1200"/>
+ <unicode hex="0039"/>
+ <anchor x="600" y="-100" name="L"/>
+ <anchor x="600" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="154" y="65" type="line"/>
+ <point x="248" y="5"/>
+ <point x="364" y="-25"/>
+ <point x="492" y="-25" type="curve" smooth="yes"/>
+ <point x="967" y="-25"/>
+ <point x="1135" y="411"/>
+ <point x="1135" y="780" type="curve" smooth="yes"/>
+ <point x="1135" y="1150"/>
+ <point x="977" y="1485"/>
+ <point x="589" y="1485" type="curve" smooth="yes"/>
+ <point x="310" y="1485"/>
+ <point x="70" y="1300"/>
+ <point x="70" y="1002" type="curve" smooth="yes"/>
+ <point x="70" y="763"/>
+ <point x="272" y="576"/>
+ <point x="550" y="576" type="curve" smooth="yes"/>
+ <point x="741" y="576"/>
+ <point x="913" y="707"/>
+ <point x="1010" y="868" type="curve"/>
+ <point x="939" y="991" type="line"/>
+ <point x="865" y="877"/>
+ <point x="729" y="790"/>
+ <point x="574" y="790" type="curve" smooth="yes"/>
+ <point x="425" y="790"/>
+ <point x="326" y="890"/>
+ <point x="326" y="1036" type="curve" smooth="yes"/>
+ <point x="326" y="1153"/>
+ <point x="425" y="1250"/>
+ <point x="573" y="1250" type="curve" smooth="yes"/>
+ <point x="773" y="1250"/>
+ <point x="870" y="1102"/>
+ <point x="870" y="813" type="curve" smooth="yes"/>
+ <point x="870" y="326"/>
+ <point x="699" y="210"/>
+ <point x="502" y="210" type="curve" smooth="yes"/>
+ <point x="406" y="210"/>
+ <point x="294" y="234"/>
+ <point x="208" y="320" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/D_igitO_ne.glif b/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/D_igitO_ne.glif
new file mode 100644
index 0000000..c744b9f
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/D_igitO_ne.glif
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitOne" format="2">
+ <advance width="1200"/>
+ <unicode hex="0031"/>
+ <anchor x="600" y="-100" name="L"/>
+ <anchor x="600" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1075" y="0" type="line"/>
+ <point x="1075" y="235" type="line"/>
+ <point x="767" y="235" type="line"/>
+ <point x="767" y="1460" type="line"/>
+ <point x="492" y="1460" type="line"/>
+ <point x="177" y="1278" type="line"/>
+ <point x="212" y="1018" type="line"/>
+ <point x="492" y="1170" type="line"/>
+ <point x="492" y="235" type="line"/>
+ <point x="185" y="235" type="line"/>
+ <point x="185" y="0" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/D_igitS_even.glif b/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/D_igitS_even.glif
new file mode 100644
index 0000000..63fb1c4
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/D_igitS_even.glif
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitSeven" format="2">
+ <advance width="1200"/>
+ <unicode hex="0037"/>
+ <anchor x="600" y="-100" name="L"/>
+ <anchor x="600" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="520" y="0" type="line"/>
+ <point x="649" y="459"/>
+ <point x="834" y="855"/>
+ <point x="1130" y="1260" type="curve"/>
+ <point x="1130" y="1460" type="line"/>
+ <point x="100" y="1460" type="line"/>
+ <point x="100" y="1195" type="line"/>
+ <point x="176" y="1211"/>
+ <point x="292" y="1215"/>
+ <point x="480" y="1215" type="curve" smooth="yes"/>
+ <point x="800" y="1215" type="line"/>
+ <point x="542" y="842"/>
+ <point x="409" y="566"/>
+ <point x="235" y="0" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/D_igitS_ix.glif b/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/D_igitS_ix.glif
new file mode 100644
index 0000000..7526cc6
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/D_igitS_ix.glif
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitSix" format="2">
+ <advance width="1200"/>
+ <unicode hex="0036"/>
+ <anchor x="610" y="-100" name="L"/>
+ <anchor x="610" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1073" y="1395" type="line"/>
+ <point x="969" y="1465"/>
+ <point x="873" y="1485"/>
+ <point x="735" y="1485" type="curve" smooth="yes"/>
+ <point x="260" y="1485"/>
+ <point x="90" y="1069"/>
+ <point x="90" y="680" type="curve" smooth="yes"/>
+ <point x="90" y="223"/>
+ <point x="297" y="-25"/>
+ <point x="652" y="-25" type="curve" smooth="yes"/>
+ <point x="955" y="-25"/>
+ <point x="1155" y="179"/>
+ <point x="1155" y="470" type="curve" smooth="yes"/>
+ <point x="1155" y="729"/>
+ <point x="963" y="925"/>
+ <point x="675" y="925" type="curve" smooth="yes"/>
+ <point x="484" y="925"/>
+ <point x="338" y="810"/>
+ <point x="225" y="655" type="curve"/>
+ <point x="290" y="540" type="line"/>
+ <point x="372" y="643"/>
+ <point x="500" y="710"/>
+ <point x="655" y="710" type="curve" smooth="yes"/>
+ <point x="814" y="710"/>
+ <point x="900" y="601"/>
+ <point x="900" y="455" type="curve" smooth="yes"/>
+ <point x="900" y="329"/>
+ <point x="803" y="210"/>
+ <point x="656" y="210" type="curve" smooth="yes"/>
+ <point x="474" y="210"/>
+ <point x="355" y="386"/>
+ <point x="355" y="645" type="curve" smooth="yes"/>
+ <point x="355" y="1132"/>
+ <point x="528" y="1250"/>
+ <point x="725" y="1250" type="curve" smooth="yes"/>
+ <point x="821" y="1250"/>
+ <point x="923" y="1226"/>
+ <point x="1009" y="1140" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/D_igitT_hree.glif b/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/D_igitT_hree.glif
new file mode 100644
index 0000000..883bd62
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/D_igitT_hree.glif
@@ -0,0 +1,52 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitThree" format="2">
+ <advance width="1200"/>
+ <unicode hex="0033"/>
+ <anchor x="600" y="-100" name="L"/>
+ <anchor x="600" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="390" y="885" type="line"/>
+ <point x="390" y="645" type="line"/>
+ <point x="480" y="645" type="line" smooth="yes"/>
+ <point x="706" y="645"/>
+ <point x="835" y="548"/>
+ <point x="835" y="425" type="curve" smooth="yes"/>
+ <point x="835" y="291"/>
+ <point x="708" y="210"/>
+ <point x="565" y="210" type="curve" smooth="yes"/>
+ <point x="405" y="210"/>
+ <point x="244" y="282"/>
+ <point x="135" y="405" type="curve"/>
+ <point x="100" y="130" type="line"/>
+ <point x="205" y="32"/>
+ <point x="368" y="-25"/>
+ <point x="545" y="-25" type="curve" smooth="yes"/>
+ <point x="874" y="-25"/>
+ <point x="1120" y="170"/>
+ <point x="1120" y="405" type="curve" smooth="yes"/>
+ <point x="1120" y="672"/>
+ <point x="892" y="756"/>
+ <point x="750" y="780" type="curve"/>
+ <point x="892" y="809"/>
+ <point x="1070" y="957"/>
+ <point x="1070" y="1140" type="curve" smooth="yes"/>
+ <point x="1070" y="1354"/>
+ <point x="868" y="1485"/>
+ <point x="580" y="1485" type="curve" smooth="yes"/>
+ <point x="413" y="1485"/>
+ <point x="240" y="1416"/>
+ <point x="160" y="1325" type="curve"/>
+ <point x="195" y="1095" type="line"/>
+ <point x="308" y="1211"/>
+ <point x="436" y="1250"/>
+ <point x="590" y="1250" type="curve" smooth="yes"/>
+ <point x="689" y="1250"/>
+ <point x="791" y="1193"/>
+ <point x="791" y="1102" type="curve" smooth="yes"/>
+ <point x="791" y="994"/>
+ <point x="662" y="885"/>
+ <point x="480" y="885" type="curve" smooth="yes"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/D_igitT_wo.glif b/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/D_igitT_wo.glif
new file mode 100644
index 0000000..1d73732
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/D_igitT_wo.glif
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitTwo" format="2">
+ <advance width="1200"/>
+ <unicode hex="0032"/>
+ <anchor x="600" y="-100" name="L"/>
+ <anchor x="560" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1090" y="260" type="line"/>
+ <point x="1010" y="246"/>
+ <point x="942" y="245"/>
+ <point x="745" y="245" type="curve" smooth="yes"/>
+ <point x="480" y="245" type="line"/>
+ <point x="699" y="422"/>
+ <point x="1046" y="739"/>
+ <point x="1046" y="1065" type="curve" smooth="yes"/>
+ <point x="1046" y="1323"/>
+ <point x="850" y="1485"/>
+ <point x="560" y="1485" type="curve" smooth="yes"/>
+ <point x="391" y="1485"/>
+ <point x="196" y="1402"/>
+ <point x="105" y="1290" type="curve"/>
+ <point x="170" y="1050" type="line"/>
+ <point x="259" y="1158"/>
+ <point x="412" y="1235"/>
+ <point x="535" y="1235" type="curve" smooth="yes"/>
+ <point x="688" y="1235"/>
+ <point x="758" y="1133"/>
+ <point x="758" y="1015" type="curve" smooth="yes"/>
+ <point x="758" y="758"/>
+ <point x="381" y="415"/>
+ <point x="110" y="220" type="curve"/>
+ <point x="110" y="0" type="line"/>
+ <point x="1090" y="0" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/D_igitZ_ero.glif b/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/D_igitZ_ero.glif
new file mode 100644
index 0000000..01f4532
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/D_igitZ_ero.glif
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitZero" format="2">
+ <advance width="1200"/>
+ <unicode hex="0030"/>
+ <anchor x="605" y="-100" name="L"/>
+ <anchor x="605" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="850" y="715" type="curve" smooth="yes"/>
+ <point x="850" y="368"/>
+ <point x="762" y="205"/>
+ <point x="600" y="205" type="curve" smooth="yes"/>
+ <point x="432" y="205"/>
+ <point x="350" y="375"/>
+ <point x="350" y="745" type="curve" smooth="yes"/>
+ <point x="350" y="1093"/>
+ <point x="437" y="1255"/>
+ <point x="600" y="1255" type="curve" smooth="yes"/>
+ <point x="772" y="1255"/>
+ <point x="850" y="1086"/>
+ </contour>
+ <contour>
+ <point x="1135" y="740" type="curve" smooth="yes"/>
+ <point x="1135" y="1286"/>
+ <point x="950" y="1485"/>
+ <point x="610" y="1485" type="curve" smooth="yes"/>
+ <point x="291" y="1485"/>
+ <point x="65" y="1283"/>
+ <point x="65" y="720" type="curve" smooth="yes"/>
+ <point x="65" y="165"/>
+ <point x="271" y="-25"/>
+ <point x="590" y="-25" type="curve" smooth="yes"/>
+ <point x="911" y="-25"/>
+ <point x="1135" y="161"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/D_ollarS_gn.glif b/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/D_ollarS_gn.glif
new file mode 100644
index 0000000..f8b49cd
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/D_ollarS_gn.glif
@@ -0,0 +1,57 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DollarSgn" format="2">
+ <advance width="1200"/>
+ <unicode hex="0024"/>
+ <outline>
+ <contour>
+ <point x="1006" y="1316" type="line"/>
+ <point x="886" y="1374"/>
+ <point x="764" y="1389"/>
+ <point x="623" y="1389" type="curve" smooth="yes"/>
+ <point x="317" y="1389"/>
+ <point x="150" y="1203"/>
+ <point x="150" y="1017" type="curve" smooth="yes"/>
+ <point x="150" y="830"/>
+ <point x="275" y="730"/>
+ <point x="540" y="623" type="curve" smooth="yes"/>
+ <point x="802" y="517"/>
+ <point x="851" y="472"/>
+ <point x="851" y="386" type="curve" smooth="yes"/>
+ <point x="851" y="267"/>
+ <point x="744" y="211"/>
+ <point x="586" y="211" type="curve" smooth="yes"/>
+ <point x="440" y="211"/>
+ <point x="297" y="281"/>
+ <point x="195" y="383" type="curve"/>
+ <point x="123" y="124" type="line"/>
+ <point x="216" y="49"/>
+ <point x="388" y="0"/>
+ <point x="586" y="0" type="curve" smooth="yes"/>
+ <point x="847" y="0"/>
+ <point x="1086" y="147"/>
+ <point x="1086" y="414" type="curve" smooth="yes"/>
+ <point x="1086" y="633"/>
+ <point x="927" y="723"/>
+ <point x="679" y="826" type="curve" smooth="yes"/>
+ <point x="431" y="929"/>
+ <point x="385" y="969"/>
+ <point x="385" y="1040" type="curve" smooth="yes"/>
+ <point x="385" y="1132"/>
+ <point x="466" y="1188"/>
+ <point x="613" y="1188" type="curve" smooth="yes"/>
+ <point x="741" y="1188"/>
+ <point x="876" y="1154"/>
+ <point x="949" y="1077" type="curve"/>
+ </contour>
+ <contour>
+ <point x="548" y="1600" type="line"/>
+ <point x="548" y="788" type="line"/>
+ <point x="518" y="726" type="line"/>
+ <point x="518" y="-220" type="line"/>
+ <point x="688" y="-220" type="line"/>
+ <point x="688" y="668" type="line"/>
+ <point x="718" y="734" type="line"/>
+ <point x="718" y="1600" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/D_ottedC_irc.glif b/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/D_ottedC_irc.glif
new file mode 100644
index 0000000..4cf5cb4
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/D_ottedC_irc.glif
@@ -0,0 +1,235 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DottedCirc" format="2">
+ <advance width="1106"/>
+ <unicode hex="25CC"/>
+ <anchor x="553" y="0" name="H"/>
+ <anchor x="553" y="-100" name="L"/>
+ <anchor x="810" y="0" name="O"/>
+ <anchor x="553" y="1000" name="U"/>
+ <outline>
+ <contour>
+ <point x="443" y="837" type="curve" smooth="yes"/>
+ <point x="443" y="864"/>
+ <point x="423" y="885"/>
+ <point x="398" y="885" type="curve" smooth="yes"/>
+ <point x="371" y="885"/>
+ <point x="348" y="861"/>
+ <point x="348" y="837" type="curve" smooth="yes"/>
+ <point x="348" y="809"/>
+ <point x="372" y="789"/>
+ <point x="398" y="789" type="curve" smooth="yes"/>
+ <point x="425" y="789"/>
+ <point x="443" y="812"/>
+ </contour>
+ <contour>
+ <point x="758" y="79" type="curve" smooth="yes"/>
+ <point x="758" y="106"/>
+ <point x="736" y="127"/>
+ <point x="710" y="127" type="curve" smooth="yes"/>
+ <point x="685" y="127"/>
+ <point x="662" y="103"/>
+ <point x="662" y="80" type="curve" smooth="yes"/>
+ <point x="662" y="52"/>
+ <point x="686" y="31"/>
+ <point x="710" y="31" type="curve" smooth="yes"/>
+ <point x="737" y="31"/>
+ <point x="758" y="55"/>
+ </contour>
+ <contour>
+ <point x="310" y="749" type="curve" smooth="yes"/>
+ <point x="310" y="775"/>
+ <point x="288" y="796"/>
+ <point x="263" y="796" type="curve" smooth="yes"/>
+ <point x="238" y="796"/>
+ <point x="215" y="774"/>
+ <point x="215" y="747" type="curve" smooth="yes"/>
+ <point x="215" y="722"/>
+ <point x="236" y="701"/>
+ <point x="263" y="701" type="curve" smooth="yes"/>
+ <point x="291" y="701"/>
+ <point x="310" y="720"/>
+ </contour>
+ <contour>
+ <point x="891" y="168" type="curve" smooth="yes"/>
+ <point x="891" y="197"/>
+ <point x="870" y="215"/>
+ <point x="843" y="215" type="curve" smooth="yes"/>
+ <point x="817" y="215"/>
+ <point x="795" y="194"/>
+ <point x="795" y="168" type="curve" smooth="yes"/>
+ <point x="795" y="143"/>
+ <point x="816" y="121"/>
+ <point x="843" y="121" type="curve" smooth="yes"/>
+ <point x="871" y="121"/>
+ <point x="891" y="143"/>
+ </contour>
+ <contour>
+ <point x="222" y="613" type="curve" smooth="yes"/>
+ <point x="222" y="640"/>
+ <point x="199" y="663"/>
+ <point x="173" y="663" type="curve" smooth="yes"/>
+ <point x="149" y="663"/>
+ <point x="126" y="642"/>
+ <point x="126" y="615" type="curve" smooth="yes"/>
+ <point x="126" y="591"/>
+ <point x="145" y="567"/>
+ <point x="173" y="567" type="curve" smooth="yes"/>
+ <point x="197" y="567"/>
+ <point x="222" y="587"/>
+ </contour>
+ <contour>
+ <point x="980" y="301" type="curve" smooth="yes"/>
+ <point x="980" y="327"/>
+ <point x="957" y="348"/>
+ <point x="932" y="348" type="curve" smooth="yes"/>
+ <point x="908" y="348"/>
+ <point x="884" y="332"/>
+ <point x="884" y="301" type="curve" smooth="yes"/>
+ <point x="884" y="277"/>
+ <point x="902" y="254"/>
+ <point x="932" y="254" type="curve" smooth="yes"/>
+ <point x="957" y="254"/>
+ <point x="980" y="274"/>
+ </contour>
+ <contour>
+ <point x="191" y="459" type="curve" smooth="yes"/>
+ <point x="191" y="484"/>
+ <point x="168" y="505"/>
+ <point x="143" y="505" type="curve" smooth="yes"/>
+ <point x="116" y="505"/>
+ <point x="95" y="484"/>
+ <point x="95" y="458" type="curve" smooth="yes"/>
+ <point x="95" y="433"/>
+ <point x="115" y="410"/>
+ <point x="143" y="410" type="curve" smooth="yes"/>
+ <point x="167" y="410"/>
+ <point x="191" y="432"/>
+ </contour>
+ <contour>
+ <point x="1011" y="458" type="curve" smooth="yes"/>
+ <point x="1011" y="484"/>
+ <point x="990" y="506"/>
+ <point x="964" y="506" type="curve" smooth="yes"/>
+ <point x="940" y="506"/>
+ <point x="915" y="484"/>
+ <point x="915" y="457" type="curve" smooth="yes"/>
+ <point x="915" y="433"/>
+ <point x="936" y="411"/>
+ <point x="964" y="411" type="curve" smooth="yes"/>
+ <point x="990" y="411"/>
+ <point x="1011" y="433"/>
+ </contour>
+ <contour>
+ <point x="222" y="302" type="curve" smooth="yes"/>
+ <point x="222" y="328"/>
+ <point x="200" y="348"/>
+ <point x="174" y="348" type="curve" smooth="yes"/>
+ <point x="147" y="348"/>
+ <point x="126" y="326"/>
+ <point x="126" y="302" type="curve" smooth="yes"/>
+ <point x="126" y="275"/>
+ <point x="149" y="253"/>
+ <point x="174" y="253" type="curve" smooth="yes"/>
+ <point x="201" y="253"/>
+ <point x="222" y="277"/>
+ </contour>
+ <contour>
+ <point x="980" y="615" type="curve" smooth="yes"/>
+ <point x="980" y="642"/>
+ <point x="955" y="663"/>
+ <point x="931" y="663" type="curve" smooth="yes"/>
+ <point x="904" y="663"/>
+ <point x="885" y="638"/>
+ <point x="885" y="614" type="curve" smooth="yes"/>
+ <point x="885" y="588"/>
+ <point x="907" y="567"/>
+ <point x="931" y="567" type="curve" smooth="yes"/>
+ <point x="959" y="567"/>
+ <point x="980" y="591"/>
+ </contour>
+ <contour>
+ <point x="310" y="168" type="curve" smooth="yes"/>
+ <point x="310" y="195"/>
+ <point x="291" y="215"/>
+ <point x="263" y="215" type="curve" smooth="yes"/>
+ <point x="238" y="215"/>
+ <point x="215" y="190"/>
+ <point x="215" y="168" type="curve" smooth="yes"/>
+ <point x="215" y="143"/>
+ <point x="238" y="120"/>
+ <point x="263" y="120" type="curve" smooth="yes"/>
+ <point x="289" y="120"/>
+ <point x="310" y="143"/>
+ </contour>
+ <contour>
+ <point x="890" y="748" type="curve" smooth="yes"/>
+ <point x="890" y="774"/>
+ <point x="870" y="796"/>
+ <point x="843" y="796" type="curve" smooth="yes"/>
+ <point x="815" y="796"/>
+ <point x="796" y="773"/>
+ <point x="796" y="748" type="curve" smooth="yes"/>
+ <point x="796" y="724"/>
+ <point x="817" y="700"/>
+ <point x="843" y="700" type="curve" smooth="yes"/>
+ <point x="869" y="700"/>
+ <point x="890" y="722"/>
+ </contour>
+ <contour>
+ <point x="444" y="78" type="curve" smooth="yes"/>
+ <point x="444" y="102"/>
+ <point x="423" y="126"/>
+ <point x="396" y="126" type="curve" smooth="yes"/>
+ <point x="370" y="126"/>
+ <point x="348" y="102"/>
+ <point x="348" y="78" type="curve" smooth="yes"/>
+ <point x="348" y="55"/>
+ <point x="370" y="31"/>
+ <point x="396" y="31" type="curve" smooth="yes"/>
+ <point x="420" y="31"/>
+ <point x="444" y="51"/>
+ </contour>
+ <contour>
+ <point x="758" y="836" type="curve" smooth="yes"/>
+ <point x="758" y="861"/>
+ <point x="737" y="885"/>
+ <point x="710" y="885" type="curve" smooth="yes"/>
+ <point x="684" y="885"/>
+ <point x="663" y="862"/>
+ <point x="663" y="838" type="curve" smooth="yes"/>
+ <point x="663" y="814"/>
+ <point x="683" y="789"/>
+ <point x="710" y="789" type="curve" smooth="yes"/>
+ <point x="734" y="789"/>
+ <point x="758" y="809"/>
+ </contour>
+ <contour>
+ <point x="601" y="47" type="curve" smooth="yes"/>
+ <point x="601" y="73"/>
+ <point x="579" y="95"/>
+ <point x="553" y="95" type="curve" smooth="yes"/>
+ <point x="527" y="95"/>
+ <point x="506" y="73"/>
+ <point x="506" y="47" type="curve" smooth="yes"/>
+ <point x="506" y="21"/>
+ <point x="527" y="0"/>
+ <point x="553" y="0" type="curve" smooth="yes"/>
+ <point x="579" y="0"/>
+ <point x="601" y="21"/>
+ </contour>
+ <contour>
+ <point x="601" y="868" type="curve" smooth="yes"/>
+ <point x="601" y="894"/>
+ <point x="579" y="916"/>
+ <point x="553" y="916" type="curve" smooth="yes"/>
+ <point x="527" y="916"/>
+ <point x="506" y="894"/>
+ <point x="506" y="868" type="curve" smooth="yes"/>
+ <point x="506" y="842"/>
+ <point x="527" y="821"/>
+ <point x="553" y="821" type="curve" smooth="yes"/>
+ <point x="579" y="821"/>
+ <point x="601" y="842"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/E_qS_gn.glif b/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/E_qS_gn.glif
new file mode 100644
index 0000000..9eeb2ef
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/E_qS_gn.glif
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="EqSgn" format="2">
+ <advance width="1200"/>
+ <unicode hex="003D"/>
+ <outline>
+ <contour>
+ <point x="120" y="440" type="line"/>
+ <point x="1080" y="440" type="line"/>
+ <point x="1080" y="650" type="line"/>
+ <point x="120" y="650" type="line"/>
+ </contour>
+ <contour>
+ <point x="120" y="810" type="line"/>
+ <point x="1080" y="810" type="line"/>
+ <point x="1080" y="1020" type="line"/>
+ <point x="120" y="1020" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/E_xclamationM_rk.glif b/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/E_xclamationM_rk.glif
new file mode 100644
index 0000000..cfdf1a6
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/E_xclamationM_rk.glif
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="ExclamationMrk" format="2">
+ <advance width="780"/>
+ <unicode hex="0021"/>
+ <outline>
+ <contour>
+ <point x="530" y="500" type="line"/>
+ <point x="536" y="790"/>
+ <point x="531" y="1076"/>
+ <point x="570" y="1510" type="curve"/>
+ <point x="235" y="1510" type="line"/>
+ <point x="273" y="1076"/>
+ <point x="268" y="790"/>
+ <point x="275" y="500" type="curve"/>
+ </contour>
+ <contour>
+ <point x="230" y="150" type="curve" smooth="yes"/>
+ <point x="230" y="46"/>
+ <point x="304" y="-25"/>
+ <point x="405" y="-25" type="curve" smooth="yes"/>
+ <point x="507" y="-25"/>
+ <point x="580" y="46"/>
+ <point x="580" y="150" type="curve" smooth="yes"/>
+ <point x="580" y="252"/>
+ <point x="507" y="325"/>
+ <point x="405" y="325" type="curve" smooth="yes"/>
+ <point x="304" y="325"/>
+ <point x="230" y="252"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/F_ullS_top.glif b/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/F_ullS_top.glif
new file mode 100644
index 0000000..b05d598
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/F_ullS_top.glif
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="FullStop" format="2">
+ <advance width="710"/>
+ <unicode hex="002E"/>
+ <outline>
+ <contour>
+ <point x="200" y="150" type="curve" smooth="yes"/>
+ <point x="200" y="46"/>
+ <point x="274" y="-25"/>
+ <point x="375" y="-25" type="curve" smooth="yes"/>
+ <point x="477" y="-25"/>
+ <point x="550" y="46"/>
+ <point x="550" y="150" type="curve" smooth="yes"/>
+ <point x="550" y="252"/>
+ <point x="477" y="325"/>
+ <point x="375" y="325" type="curve" smooth="yes"/>
+ <point x="274" y="325"/>
+ <point x="200" y="252"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/G_T_S_gn.glif b/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/G_T_S_gn.glif
new file mode 100644
index 0000000..650e4d2
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/G_T_S_gn.glif
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="GTSgn" format="2">
+ <advance width="1200"/>
+ <unicode hex="003E"/>
+ <outline>
+ <contour>
+ <point x="130" y="245" type="line"/>
+ <point x="1090" y="635" type="line"/>
+ <point x="1090" y="825" type="line"/>
+ <point x="130" y="1215" type="line"/>
+ <point x="130" y="985" type="line"/>
+ <point x="810" y="730" type="line"/>
+ <point x="130" y="475" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/G_raveA_ccent.glif b/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/G_raveA_ccent.glif
new file mode 100644
index 0000000..83a5f21
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/G_raveA_ccent.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="GraveAccent" format="2">
+ <advance width="640"/>
+ <unicode hex="0060"/>
+ <anchor x="500" y="1635" name="U"/>
+ <outline>
+ <contour>
+ <point x="0" y="1600" type="line"/>
+ <point x="400" y="1200" type="line"/>
+ <point x="640" y="1200" type="line"/>
+ <point x="350" y="1600" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/H_yphen.glif b/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/H_yphen.glif
new file mode 100644
index 0000000..d79c70a
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/H_yphen.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Hyphen" format="2">
+ <advance width="880"/>
+ <unicode hex="2010"/>
+ <anchor x="440" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="70" y="525" type="line"/>
+ <point x="810" y="525" type="line"/>
+ <point x="810" y="735" type="line"/>
+ <point x="70" y="735" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/H_yphenM_inus.glif b/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/H_yphenM_inus.glif
new file mode 100644
index 0000000..b88bdd4
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/H_yphenM_inus.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="HyphenMinus" format="2">
+ <advance width="895"/>
+ <unicode hex="002D"/>
+ <anchor x="450" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="80" y="525" type="line"/>
+ <point x="815" y="525" type="line"/>
+ <point x="815" y="735" type="line"/>
+ <point x="80" y="735" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/H_yphen_S_oft.glif b/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/H_yphen_S_oft.glif
new file mode 100644
index 0000000..916f8cf
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/H_yphen_S_oft.glif
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Hyphen_Soft" format="2">
+ <advance width="895"/>
+ <unicode hex="00AD"/>
+ <anchor x="450" y="1100" name="U"/>
+ <outline>
+ <component base="HyphenMinus"/>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_T_S_gn.glif b/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_T_S_gn.glif
new file mode 100644
index 0000000..ab92cf3
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_T_S_gn.glif
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LTSgn" format="2">
+ <advance width="1200"/>
+ <unicode hex="003C"/>
+ <outline>
+ <contour>
+ <point x="1070" y="475" type="line"/>
+ <point x="390" y="730" type="line"/>
+ <point x="1070" y="985" type="line"/>
+ <point x="1070" y="1215" type="line"/>
+ <point x="110" y="825" type="line"/>
+ <point x="110" y="635" type="line"/>
+ <point x="1070" y="245" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_ftC_urlyB_rac.glif b/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_ftC_urlyB_rac.glif
new file mode 100644
index 0000000..2370b56
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_ftC_urlyB_rac.glif
@@ -0,0 +1,47 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LftCurlyBrac" format="2">
+ <advance width="1040"/>
+ <unicode hex="007B"/>
+ <outline>
+ <contour>
+ <point x="895" y="-179" type="line"/>
+ <point x="828" y="-160"/>
+ <point x="704" y="-122"/>
+ <point x="685" y="-100" type="curve" smooth="yes"/>
+ <point x="650" y="-60"/>
+ <point x="663" y="411"/>
+ <point x="645" y="445" type="curve" smooth="yes"/>
+ <point x="621" y="491"/>
+ <point x="483" y="580"/>
+ <point x="483" y="615" type="curve" smooth="yes"/>
+ <point x="483" y="650"/>
+ <point x="620" y="740"/>
+ <point x="643" y="785" type="curve" smooth="yes"/>
+ <point x="661" y="820"/>
+ <point x="650" y="1289"/>
+ <point x="685" y="1330" type="curve" smooth="yes"/>
+ <point x="702" y="1351"/>
+ <point x="807" y="1390"/>
+ <point x="870" y="1409" type="curve"/>
+ <point x="820" y="1640" type="line"/>
+ <point x="692" y="1613"/>
+ <point x="502" y="1562"/>
+ <point x="455" y="1515" type="curve" smooth="yes"/>
+ <point x="381" y="1442"/>
+ <point x="392" y="852"/>
+ <point x="370" y="820" type="curve" smooth="yes"/>
+ <point x="340" y="777"/>
+ <point x="170" y="670"/>
+ <point x="170" y="615" type="curve" smooth="yes"/>
+ <point x="170" y="560"/>
+ <point x="340" y="453"/>
+ <point x="370" y="410" type="curve" smooth="yes"/>
+ <point x="392" y="378"/>
+ <point x="380" y="-213"/>
+ <point x="455" y="-285" type="curve" smooth="yes"/>
+ <point x="505" y="-333"/>
+ <point x="709" y="-383"/>
+ <point x="845" y="-410" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_ftP_aren.glif b/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_ftP_aren.glif
new file mode 100644
index 0000000..99e1982
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_ftP_aren.glif
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LftParen" format="2">
+ <advance width="860"/>
+ <unicode hex="0028"/>
+ <outline>
+ <contour>
+ <point x="555" y="1640" type="line"/>
+ <point x="290" y="1444"/>
+ <point x="115" y="1062"/>
+ <point x="115" y="625" type="curve" smooth="yes"/>
+ <point x="115" y="218"/>
+ <point x="260" y="-125"/>
+ <point x="535" y="-410" type="curve"/>
+ <point x="686" y="-240" type="line"/>
+ <point x="462" y="11"/>
+ <point x="376" y="335"/>
+ <point x="376" y="635" type="curve" smooth="yes"/>
+ <point x="376" y="938"/>
+ <point x="466" y="1261"/>
+ <point x="676" y="1455" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_ftS_qrB_rac.glif b/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_ftS_qrB_rac.glif
new file mode 100644
index 0000000..dcf019b
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_ftS_qrB_rac.glif
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LftSqrBrac" format="2">
+ <advance width="850"/>
+ <unicode hex="005B"/>
+ <outline>
+ <contour>
+ <point x="710" y="-410" type="line"/>
+ <point x="710" y="-200" type="line"/>
+ <point x="470" y="-200" type="line"/>
+ <point x="470" y="1390" type="line"/>
+ <point x="710" y="1390" type="line"/>
+ <point x="710" y="1600" type="line"/>
+ <point x="190" y="1600" type="line"/>
+ <point x="190" y="-410" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_owL_ine.glif b/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_owL_ine.glif
new file mode 100644
index 0000000..225c4ce
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_owL_ine.glif
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LowLine" format="2">
+ <advance width="1274"/>
+ <unicode hex="005F"/>
+ <outline>
+ <contour>
+ <point x="0" y="-350" type="line"/>
+ <point x="1274" y="-350" type="line"/>
+ <point x="1274" y="-140" type="line"/>
+ <point x="0" y="-140" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_tnC_apA_.alt.glif b/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_tnC_apA_.alt.glif
new file mode 100644
index 0000000..cf1b900
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_tnC_apA_.alt.glif
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapA.alt" format="2">
+ <advance width="1485"/>
+ <anchor x="1275" y="0" name="H"/>
+ <anchor x="732" y="-100" name="L"/>
+ <anchor x="1495" y="0" name="O"/>
+ <anchor x="732" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1115" y="0" type="line"/>
+ <point x="1408" y="0" type="line"/>
+ <point x="1373" y="80"/>
+ <point x="1341" y="168"/>
+ <point x="1278" y="355" type="curve" smooth="yes"/>
+ <point x="908" y="1460" type="line"/>
+ <point x="552" y="1460" type="line"/>
+ <point x="182" y="355" type="line" smooth="yes"/>
+ <point x="119" y="166"/>
+ <point x="88" y="81"/>
+ <point x="52" y="0" type="curve"/>
+ <point x="350" y="0" type="line"/>
+ <point x="460" y="355" type="line"/>
+ <point x="1004" y="355" type="line"/>
+ </contour>
+ <contour>
+ <point x="730" y="1228" type="line"/>
+ <point x="936" y="570" type="line"/>
+ <point x="526" y="570" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_tnC_apA_.glif b/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_tnC_apA_.glif
new file mode 100644
index 0000000..9fa1f45
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_tnC_apA_.glif
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapA" format="2">
+ <advance width="1485"/>
+ <unicode hex="0041"/>
+ <anchor x="1275" y="0" name="H"/>
+ <anchor x="732" y="-100" name="L"/>
+ <anchor x="1495" y="0" name="O"/>
+ <anchor x="732" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1115" y="0" type="line"/>
+ <point x="1408" y="0" type="line"/>
+ <point x="1373" y="80"/>
+ <point x="1341" y="168"/>
+ <point x="1278" y="355" type="curve" smooth="yes"/>
+ <point x="908" y="1460" type="line"/>
+ <point x="552" y="1460" type="line"/>
+ <point x="182" y="355" type="line" smooth="yes"/>
+ <point x="119" y="166"/>
+ <point x="88" y="81"/>
+ <point x="52" y="0" type="curve"/>
+ <point x="350" y="0" type="line"/>
+ <point x="460" y="355" type="line"/>
+ <point x="1004" y="355" type="line"/>
+ </contour>
+ <contour>
+ <point x="730" y="1228" type="line"/>
+ <point x="936" y="570" type="line"/>
+ <point x="526" y="570" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_tnC_apA_D_iaer.glif b/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_tnC_apA_D_iaer.glif
new file mode 100644
index 0000000..79101d0
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_tnC_apA_D_iaer.glif
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapADiaer" format="2">
+ <advance width="1485"/>
+ <unicode hex="00C4"/>
+ <anchor x="1275" y="0" name="H"/>
+ <anchor x="732" y="-100" name="L"/>
+ <anchor x="1495" y="0" name="O"/>
+ <anchor x="732" y="2015" name="U"/>
+ <outline>
+ <component base="LtnCapA"/>
+ <component base="CombDiaer" xOffset="1312" yOffset="430"/>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_tnC_apB_.glif b/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_tnC_apB_.glif
new file mode 100644
index 0000000..df49e47
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_tnC_apB_.glif
@@ -0,0 +1,62 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapB" format="2">
+ <advance width="1385"/>
+ <unicode hex="0042"/>
+ <anchor x="670" y="-100" name="L"/>
+ <anchor x="670" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="450" y="1248" type="line"/>
+ <point x="487" y="1250"/>
+ <point x="562" y="1253"/>
+ <point x="631" y="1253" type="curve" smooth="yes"/>
+ <point x="818" y="1253"/>
+ <point x="897" y="1196"/>
+ <point x="897" y="1077" type="curve" smooth="yes"/>
+ <point x="897" y="951"/>
+ <point x="794" y="875"/>
+ <point x="605" y="875" type="curve" smooth="yes"/>
+ <point x="450" y="875" type="line"/>
+ </contour>
+ <contour>
+ <point x="1245" y="430" type="curve" smooth="yes"/>
+ <point x="1245" y="672"/>
+ <point x="1084" y="760"/>
+ <point x="935" y="800" type="curve"/>
+ <point x="1065" y="850"/>
+ <point x="1170" y="947"/>
+ <point x="1170" y="1110" type="curve" smooth="yes"/>
+ <point x="1170" y="1378"/>
+ <point x="937" y="1470"/>
+ <point x="615" y="1470" type="curve" smooth="yes"/>
+ <point x="422" y="1470"/>
+ <point x="248" y="1466"/>
+ <point x="150" y="1460" type="curve"/>
+ <point x="165" y="1380"/>
+ <point x="165" y="1196"/>
+ <point x="165" y="1000" type="curve" smooth="yes"/>
+ <point x="165" y="455" type="line" smooth="yes"/>
+ <point x="165" y="257"/>
+ <point x="165" y="80"/>
+ <point x="150" y="0" type="curve"/>
+ <point x="150" y="0"/>
+ <point x="401" y="-10"/>
+ <point x="631" y="-10" type="curve" smooth="yes"/>
+ <point x="1055" y="-10"/>
+ <point x="1245" y="181"/>
+ </contour>
+ <contour>
+ <point x="450" y="658" type="line"/>
+ <point x="643" y="658" type="line" smooth="yes"/>
+ <point x="853" y="658"/>
+ <point x="972" y="587"/>
+ <point x="972" y="450" type="curve" smooth="yes"/>
+ <point x="972" y="269"/>
+ <point x="826" y="215"/>
+ <point x="652" y="215" type="curve" smooth="yes"/>
+ <point x="552" y="215"/>
+ <point x="483" y="218"/>
+ <point x="450" y="220" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_tnC_apC_.glif b/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_tnC_apC_.glif
new file mode 100644
index 0000000..78c5238
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_tnC_apC_.glif
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapC" format="2">
+ <advance width="1385"/>
+ <unicode hex="0043"/>
+ <anchor x="745" y="0" name="H"/>
+ <anchor x="745" y="-100" name="L"/>
+ <anchor x="745" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1215" y="405" type="line"/>
+ <point x="1105" y="293"/>
+ <point x="940" y="220"/>
+ <point x="790" y="220" type="curve" smooth="yes"/>
+ <point x="531" y="220"/>
+ <point x="375" y="413"/>
+ <point x="375" y="735" type="curve" smooth="yes"/>
+ <point x="375" y="1074"/>
+ <point x="557" y="1245"/>
+ <point x="800" y="1245" type="curve" smooth="yes"/>
+ <point x="931" y="1245"/>
+ <point x="1053" y="1205"/>
+ <point x="1180" y="1105" type="curve"/>
+ <point x="1250" y="1345" type="line"/>
+ <point x="1106" y="1449"/>
+ <point x="969" y="1485"/>
+ <point x="785" y="1485" type="curve" smooth="yes"/>
+ <point x="413" y="1485"/>
+ <point x="90" y="1225"/>
+ <point x="90" y="710" type="curve" smooth="yes"/>
+ <point x="90" y="260"/>
+ <point x="341" y="-25"/>
+ <point x="755" y="-25" type="curve" smooth="yes"/>
+ <point x="926" y="-25"/>
+ <point x="1142" y="42"/>
+ <point x="1265" y="140" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_tnC_apD_.glif b/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_tnC_apD_.glif
new file mode 100644
index 0000000..4dd3b9c
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_tnC_apD_.glif
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapD" format="2">
+ <advance width="1485"/>
+ <unicode hex="0044"/>
+ <anchor x="800" y="-100" name="L"/>
+ <anchor x="800" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="165" y="455" type="line"/>
+ <point x="164" y="257"/>
+ <point x="165" y="80"/>
+ <point x="150" y="0" type="curve"/>
+ <point x="150" y="0"/>
+ <point x="474" y="-10"/>
+ <point x="609" y="-10" type="curve" smooth="yes"/>
+ <point x="919" y="-10"/>
+ <point x="1370" y="145"/>
+ <point x="1370" y="740" type="curve" smooth="yes"/>
+ <point x="1370" y="1374"/>
+ <point x="906" y="1470"/>
+ <point x="630" y="1470" type="curve" smooth="yes"/>
+ <point x="487" y="1470"/>
+ <point x="239" y="1466"/>
+ <point x="150" y="1460" type="curve"/>
+ <point x="165" y="1380"/>
+ <point x="165" y="1196"/>
+ <point x="165" y="1000" type="curve" smooth="yes"/>
+ </contour>
+ <contour>
+ <point x="450" y="1241" type="line"/>
+ <point x="492" y="1243"/>
+ <point x="582" y="1246"/>
+ <point x="637" y="1246" type="curve" smooth="yes"/>
+ <point x="897" y="1246"/>
+ <point x="1078" y="1118"/>
+ <point x="1078" y="720" type="curve" smooth="yes"/>
+ <point x="1078" y="357"/>
+ <point x="856" y="221"/>
+ <point x="633" y="221" type="curve" smooth="yes"/>
+ <point x="554" y="221"/>
+ <point x="489" y="227"/>
+ <point x="450" y="231" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_tnC_apE_.glif b/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_tnC_apE_.glif
new file mode 100644
index 0000000..9572dfd
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_tnC_apE_.glif
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapE" format="2">
+ <advance width="1212"/>
+ <unicode hex="0045"/>
+ <anchor x="610" y="0" name="H"/>
+ <anchor x="610" y="-100" name="L"/>
+ <anchor x="1004" y="0" name="O"/>
+ <anchor x="1247" y="1200" name="R"/>
+ <anchor x="610" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="450" y="875" type="line"/>
+ <point x="450" y="1230" type="line"/>
+ <point x="1072" y="1230" type="line"/>
+ <point x="1072" y="1460" type="line"/>
+ <point x="150" y="1460" type="line"/>
+ <point x="165" y="1380"/>
+ <point x="165" y="1222"/>
+ <point x="165" y="1025" type="curve" smooth="yes"/>
+ <point x="165" y="435" type="line" smooth="yes"/>
+ <point x="165" y="238"/>
+ <point x="165" y="80"/>
+ <point x="150" y="0" type="curve"/>
+ <point x="1102" y="0" type="line"/>
+ <point x="1102" y="245" type="line"/>
+ <point x="1024" y="231"/>
+ <point x="899" y="230"/>
+ <point x="708" y="230" type="curve" smooth="yes"/>
+ <point x="450" y="230" type="line"/>
+ <point x="450" y="650" type="line"/>
+ <point x="997" y="650" type="line"/>
+ <point x="997" y="875" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_tnC_apF_.glif b/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_tnC_apF_.glif
new file mode 100644
index 0000000..9f4f14b
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_tnC_apF_.glif
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapF" format="2">
+ <advance width="1200"/>
+ <unicode hex="0046"/>
+ <anchor x="630" y="-100" name="L"/>
+ <anchor x="630" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="450" y="860" type="line"/>
+ <point x="450" y="1230" type="line"/>
+ <point x="1090" y="1230" type="line"/>
+ <point x="1090" y="1460" type="line"/>
+ <point x="150" y="1460" type="line"/>
+ <point x="165" y="1380"/>
+ <point x="165" y="1217"/>
+ <point x="165" y="1020" type="curve" smooth="yes"/>
+ <point x="165" y="435" type="line" smooth="yes"/>
+ <point x="165" y="238"/>
+ <point x="165" y="80"/>
+ <point x="150" y="0" type="curve"/>
+ <point x="465" y="0" type="line"/>
+ <point x="450" y="73"/>
+ <point x="450" y="222"/>
+ <point x="450" y="408" type="curve" smooth="yes"/>
+ <point x="450" y="635" type="line"/>
+ <point x="1005" y="635" type="line"/>
+ <point x="1005" y="860" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_tnC_apG_.glif b/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_tnC_apG_.glif
new file mode 100644
index 0000000..8358b8a
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_tnC_apG_.glif
@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapG" format="2">
+ <advance width="1472"/>
+ <unicode hex="0047"/>
+ <anchor x="807" y="0" name="H"/>
+ <anchor x="807" y="-100" name="L"/>
+ <anchor x="807" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1337" y="785" type="line"/>
+ <point x="767" y="785" type="line"/>
+ <point x="767" y="560" type="line"/>
+ <point x="1082" y="560" type="line"/>
+ <point x="1082" y="294" type="line"/>
+ <point x="966" y="236"/>
+ <point x="883" y="220"/>
+ <point x="769" y="220" type="curve" smooth="yes"/>
+ <point x="532" y="220"/>
+ <point x="375" y="420"/>
+ <point x="375" y="745" type="curve" smooth="yes"/>
+ <point x="375" y="1048"/>
+ <point x="545" y="1245"/>
+ <point x="810" y="1245" type="curve" smooth="yes"/>
+ <point x="953" y="1245"/>
+ <point x="1097" y="1205"/>
+ <point x="1236" y="1107" type="curve"/>
+ <point x="1322" y="1345" type="line"/>
+ <point x="1137" y="1462"/>
+ <point x="989" y="1485"/>
+ <point x="818" y="1485" type="curve" smooth="yes"/>
+ <point x="403" y="1485"/>
+ <point x="90" y="1199"/>
+ <point x="90" y="720" type="curve" smooth="yes"/>
+ <point x="90" y="241"/>
+ <point x="377" y="-25"/>
+ <point x="777" y="-25" type="curve" smooth="yes"/>
+ <point x="960" y="-25"/>
+ <point x="1120" y="11"/>
+ <point x="1337" y="155" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_tnC_apH_.glif b/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_tnC_apH_.glif
new file mode 100644
index 0000000..2e2e5e6
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_tnC_apH_.glif
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapH" format="2">
+ <advance width="1515"/>
+ <unicode hex="0048"/>
+ <anchor x="305" y="0" name="H"/>
+ <anchor x="745" y="-100" name="L"/>
+ <anchor x="745" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1040" y="1460" type="line"/>
+ <point x="1040" y="860" type="line"/>
+ <point x="450" y="860" type="line"/>
+ <point x="450" y="1460" type="line"/>
+ <point x="150" y="1460" type="line"/>
+ <point x="165" y="1380"/>
+ <point x="165" y="1227"/>
+ <point x="165" y="1030" type="curve" smooth="yes"/>
+ <point x="165" y="430" type="line" smooth="yes"/>
+ <point x="165" y="233"/>
+ <point x="165" y="80"/>
+ <point x="150" y="0" type="curve"/>
+ <point x="150" y="0"/>
+ <point x="450" y="0"/>
+ <point x="450" y="0" type="curve"/>
+ <point x="450" y="635" type="line"/>
+ <point x="1040" y="635" type="line"/>
+ <point x="1040" y="0" type="line"/>
+ <point x="1040" y="0"/>
+ <point x="1340" y="0"/>
+ <point x="1340" y="0" type="curve"/>
+ <point x="1325" y="80"/>
+ <point x="1325" y="233"/>
+ <point x="1325" y="430" type="curve" smooth="yes"/>
+ <point x="1325" y="1030" type="line" smooth="yes"/>
+ <point x="1325" y="1227"/>
+ <point x="1325" y="1380"/>
+ <point x="1340" y="1460" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_tnC_apI_.glif b/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_tnC_apI_.glif
new file mode 100644
index 0000000..388486b
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_tnC_apI_.glif
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapI" format="2">
+ <advance width="1045"/>
+ <unicode hex="0049"/>
+ <anchor x="520" y="0" name="H"/>
+ <anchor x="516" y="-100" name="L"/>
+ <anchor x="712" y="0" name="O"/>
+ <anchor x="1014" y="1200" name="R"/>
+ <anchor x="520" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="130" y="1460" type="line"/>
+ <point x="130" y="1255" type="line"/>
+ <point x="370" y="1255" type="line"/>
+ <point x="370" y="205" type="line"/>
+ <point x="130" y="205" type="line"/>
+ <point x="130" y="0" type="line"/>
+ <point x="895" y="0" type="line"/>
+ <point x="895" y="205" type="line"/>
+ <point x="655" y="205" type="line"/>
+ <point x="655" y="1255" type="line"/>
+ <point x="895" y="1255" type="line"/>
+ <point x="895" y="1460" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_tnC_apJ_.glif b/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_tnC_apJ_.glif
new file mode 100644
index 0000000..8ee9ce3
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_tnC_apJ_.glif
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapJ" format="2">
+ <advance width="1030"/>
+ <unicode hex="004A"/>
+ <anchor x="415" y="-100" name="L"/>
+ <anchor x="705" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="555" y="1460" type="line"/>
+ <point x="568" y="1354"/>
+ <point x="570" y="1175"/>
+ <point x="570" y="980" type="curve" smooth="yes"/>
+ <point x="570" y="558" type="line" smooth="yes"/>
+ <point x="570" y="383"/>
+ <point x="540" y="227"/>
+ <point x="365" y="227" type="curve" smooth="yes"/>
+ <point x="264" y="227"/>
+ <point x="153" y="270"/>
+ <point x="79" y="347" type="curve"/>
+ <point x="30" y="90" type="line"/>
+ <point x="109" y="9"/>
+ <point x="258" y="-25"/>
+ <point x="363" y="-25" type="curve" smooth="yes"/>
+ <point x="658" y="-25"/>
+ <point x="855" y="129"/>
+ <point x="855" y="535" type="curve" smooth="yes"/>
+ <point x="855" y="618"/>
+ <point x="855" y="1460"/>
+ <point x="855" y="1460" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_tnC_apK_.glif b/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_tnC_apK_.glif
new file mode 100644
index 0000000..abb6ff7
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_tnC_apK_.glif
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapK" format="2">
+ <advance width="1430"/>
+ <unicode hex="004B"/>
+ <anchor x="320" y="0" name="H"/>
+ <anchor x="740" y="-100" name="L"/>
+ <anchor x="725" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="944" y="1460" type="line"/>
+ <point x="371" y="732" type="line"/>
+ <point x="579" y="676" type="line"/>
+ <point x="1280" y="1460" type="line"/>
+ </contour>
+ <contour>
+ <point x="389" y="731" type="line"/>
+ <point x="990" y="0" type="line"/>
+ <point x="1360" y="0" type="line"/>
+ <point x="614" y="829" type="line"/>
+ </contour>
+ <contour>
+ <point x="450" y="1460" type="line"/>
+ <point x="150" y="1460" type="line"/>
+ <point x="165" y="1380"/>
+ <point x="165" y="1222"/>
+ <point x="165" y="1025" type="curve" smooth="yes"/>
+ <point x="165" y="435" type="line" smooth="yes"/>
+ <point x="165" y="238"/>
+ <point x="165" y="80"/>
+ <point x="150" y="0" type="curve"/>
+ <point x="450" y="0" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_tnC_apL_.glif b/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_tnC_apL_.glif
new file mode 100644
index 0000000..e1c1e2e
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_tnC_apL_.glif
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapL" format="2">
+ <advance width="1130"/>
+ <unicode hex="004C"/>
+ <anchor x="620" y="0" name="H"/>
+ <anchor x="620" y="-100" name="L"/>
+ <anchor x="650" y="1200" name="R"/>
+ <anchor x="620" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="450" y="230" type="line"/>
+ <point x="450" y="1460" type="line"/>
+ <point x="150" y="1460" type="line"/>
+ <point x="165" y="1380"/>
+ <point x="165" y="1222"/>
+ <point x="165" y="1025" type="curve" smooth="yes"/>
+ <point x="165" y="435" type="line" smooth="yes"/>
+ <point x="165" y="238"/>
+ <point x="165" y="80"/>
+ <point x="150" y="0" type="curve"/>
+ <point x="1085" y="0" type="line"/>
+ <point x="1085" y="245" type="line"/>
+ <point x="1008" y="231"/>
+ <point x="855" y="230"/>
+ <point x="666" y="230" type="curve" smooth="yes"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_tnC_apM_.glif b/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_tnC_apM_.glif
new file mode 100644
index 0000000..8da241e
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_tnC_apM_.glif
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapM" format="2">
+ <advance width="1855"/>
+ <unicode hex="004D"/>
+ <anchor x="915" y="-100" name="L"/>
+ <anchor x="915" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="917" y="275" type="line"/>
+ <point x="575" y="1460" type="line"/>
+ <point x="315" y="1460" type="line"/>
+ <point x="436" y="1170" type="line"/>
+ <point x="770" y="0" type="line"/>
+ <point x="1065" y="0" type="line"/>
+ <point x="1397" y="1170" type="line"/>
+ <point x="1517" y="1460" type="line"/>
+ <point x="1260" y="1460" type="line"/>
+ </contour>
+ <contour>
+ <point x="220" y="1460" type="line"/>
+ <point x="220" y="1460"/>
+ <point x="176" y="198"/>
+ <point x="150" y="0" type="curve"/>
+ <point x="420" y="0" type="line"/>
+ <point x="449" y="1205" type="line"/>
+ <point x="485" y="1460" type="line"/>
+ </contour>
+ <contour>
+ <point x="1680" y="0" type="line"/>
+ <point x="1651" y="198"/>
+ <point x="1610" y="1460"/>
+ <point x="1610" y="1460" type="curve"/>
+ <point x="1340" y="1460" type="line"/>
+ <point x="1385" y="1205" type="line"/>
+ <point x="1410" y="0" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_tnC_apN_.glif b/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_tnC_apN_.glif
new file mode 100644
index 0000000..aa2b5c4
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_tnC_apN_.glif
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapN" format="2">
+ <advance width="1545"/>
+ <unicode hex="004E"/>
+ <anchor x="1240" y="0" name="H"/>
+ <anchor x="765" y="-100" name="L"/>
+ <anchor x="765" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="223" y="1310" type="line"/>
+ <point x="1095" y="0" type="line"/>
+ <point x="1297" y="150" type="line"/>
+ <point x="425" y="1460" type="line"/>
+ </contour>
+ <contour>
+ <point x="1095" y="0" type="line"/>
+ <point x="1355" y="0" type="line"/>
+ <point x="1355" y="1025" type="line" smooth="yes"/>
+ <point x="1355" y="1222"/>
+ <point x="1356" y="1380"/>
+ <point x="1370" y="1460" type="curve"/>
+ <point x="1095" y="1460" type="line"/>
+ </contour>
+ <contour>
+ <point x="425" y="1460" type="line"/>
+ <point x="150" y="1460" type="line"/>
+ <point x="165" y="1380"/>
+ <point x="165" y="1222"/>
+ <point x="165" y="1025" type="curve" smooth="yes"/>
+ <point x="165" y="435" type="line" smooth="yes"/>
+ <point x="165" y="238"/>
+ <point x="165" y="80"/>
+ <point x="150" y="0" type="curve"/>
+ <point x="425" y="0" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_tnC_apO_.glif b/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_tnC_apO_.glif
new file mode 100644
index 0000000..10479ad
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_tnC_apO_.glif
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapO" format="2">
+ <advance width="1500"/>
+ <unicode hex="004F"/>
+ <anchor x="740" y="0" name="H"/>
+ <anchor x="740" y="-100" name="L"/>
+ <anchor x="976" y="0" name="O"/>
+ <anchor x="1480" y="1200" name="R"/>
+ <anchor x="740" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1100" y="715" type="curve" smooth="yes"/>
+ <point x="1100" y="404"/>
+ <point x="940" y="220"/>
+ <point x="740" y="220" type="curve" smooth="yes"/>
+ <point x="524" y="220"/>
+ <point x="375" y="423"/>
+ <point x="375" y="745" type="curve" smooth="yes"/>
+ <point x="375" y="1048"/>
+ <point x="529" y="1240"/>
+ <point x="740" y="1240" type="curve" smooth="yes"/>
+ <point x="951" y="1240"/>
+ <point x="1100" y="1041"/>
+ </contour>
+ <contour>
+ <point x="1385" y="740" type="curve" smooth="yes"/>
+ <point x="1385" y="1219"/>
+ <point x="1091" y="1485"/>
+ <point x="750" y="1485" type="curve" smooth="yes"/>
+ <point x="404" y="1485"/>
+ <point x="90" y="1199"/>
+ <point x="90" y="720" type="curve" smooth="yes"/>
+ <point x="90" y="241"/>
+ <point x="385" y="-25"/>
+ <point x="730" y="-25" type="curve" smooth="yes"/>
+ <point x="1072" y="-25"/>
+ <point x="1385" y="260"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_tnC_apP_.glif b/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_tnC_apP_.glif
new file mode 100644
index 0000000..18e9ee0
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_tnC_apP_.glif
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapP" format="2">
+ <advance width="1275"/>
+ <unicode hex="0050"/>
+ <anchor x="685" y="-100" name="L"/>
+ <anchor x="685" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="450" y="523" type="line"/>
+ <point x="515" y="516"/>
+ <point x="575" y="513"/>
+ <point x="648" y="513" type="curve" smooth="yes"/>
+ <point x="977" y="513"/>
+ <point x="1200" y="702"/>
+ <point x="1200" y="1010" type="curve" smooth="yes"/>
+ <point x="1200" y="1316"/>
+ <point x="981" y="1470"/>
+ <point x="658" y="1470" type="curve" smooth="yes"/>
+ <point x="445" y="1470"/>
+ <point x="150" y="1460"/>
+ <point x="150" y="1460" type="curve"/>
+ <point x="165" y="1380"/>
+ <point x="165" y="1196"/>
+ <point x="165" y="1000" type="curve" smooth="yes"/>
+ <point x="165" y="435" type="line" smooth="yes"/>
+ <point x="165" y="238"/>
+ <point x="165" y="80"/>
+ <point x="150" y="0" type="curve"/>
+ <point x="465" y="0" type="line"/>
+ <point x="451" y="78"/>
+ <point x="450" y="237"/>
+ <point x="450" y="435" type="curve" smooth="yes"/>
+ </contour>
+ <contour>
+ <point x="450" y="1240" type="line"/>
+ <point x="506" y="1243"/>
+ <point x="544" y="1245"/>
+ <point x="622" y="1245" type="curve" smooth="yes"/>
+ <point x="833" y="1245"/>
+ <point x="915" y="1145"/>
+ <point x="915" y="1000" type="curve" smooth="yes"/>
+ <point x="915" y="820"/>
+ <point x="811" y="730"/>
+ <point x="618" y="730" type="curve" smooth="yes"/>
+ <point x="556" y="730"/>
+ <point x="493" y="733"/>
+ <point x="450" y="740" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_tnC_apQ_.glif b/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_tnC_apQ_.glif
new file mode 100644
index 0000000..433087c
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_tnC_apQ_.glif
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapQ" format="2">
+ <advance width="1545"/>
+ <unicode hex="0051"/>
+ <anchor x="747" y="-270" name="L"/>
+ <anchor x="747" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1385" y="740" type="curve" smooth="yes"/>
+ <point x="1385" y="1219"/>
+ <point x="1091" y="1485"/>
+ <point x="750" y="1485" type="curve" smooth="yes"/>
+ <point x="404" y="1485"/>
+ <point x="90" y="1199"/>
+ <point x="90" y="720" type="curve" smooth="yes"/>
+ <point x="90" y="241"/>
+ <point x="385" y="-25"/>
+ <point x="730" y="-25" type="curve" smooth="yes"/>
+ <point x="807" y="-25"/>
+ <point x="840" y="-23"/>
+ <point x="889" y="-15" type="curve"/>
+ <point x="958" y="-15"/>
+ <point x="1266" y="-228"/>
+ <point x="1350" y="-228" type="curve" smooth="yes"/>
+ <point x="1424" y="-228"/>
+ <point x="1502" y="-68"/>
+ <point x="1535" y="-15" type="curve"/>
+ <point x="1394" y="1"/>
+ <point x="1277" y="68"/>
+ <point x="1146" y="142" type="curve"/>
+ <point x="1294" y="283"/>
+ <point x="1385" y="471"/>
+ </contour>
+ <contour>
+ <point x="1100" y="715" type="curve" smooth="yes"/>
+ <point x="1100" y="404"/>
+ <point x="943" y="220"/>
+ <point x="740" y="220" type="curve" smooth="yes"/>
+ <point x="524" y="220"/>
+ <point x="375" y="423"/>
+ <point x="375" y="745" type="curve" smooth="yes"/>
+ <point x="375" y="1048"/>
+ <point x="529" y="1240"/>
+ <point x="740" y="1240" type="curve" smooth="yes"/>
+ <point x="951" y="1240"/>
+ <point x="1100" y="1041"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_tnC_apR_.glif b/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_tnC_apR_.glif
new file mode 100644
index 0000000..6103056
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_tnC_apR_.glif
@@ -0,0 +1,55 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapR" format="2">
+ <advance width="1380"/>
+ <unicode hex="0052"/>
+ <anchor x="690" y="0" name="H"/>
+ <anchor x="690" y="-100" name="L"/>
+ <anchor x="660" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="450" y="585" type="line"/>
+ <point x="625" y="585" type="line" smooth="yes"/>
+ <point x="910" y="585"/>
+ <point x="1175" y="723"/>
+ <point x="1175" y="1040" type="curve" smooth="yes"/>
+ <point x="1175" y="1329"/>
+ <point x="961" y="1470"/>
+ <point x="650" y="1470" type="curve" smooth="yes"/>
+ <point x="416" y="1470"/>
+ <point x="150" y="1460"/>
+ <point x="150" y="1460" type="curve"/>
+ <point x="165" y="1380"/>
+ <point x="165" y="1196"/>
+ <point x="165" y="1000" type="curve" smooth="yes"/>
+ <point x="165" y="435" type="line" smooth="yes"/>
+ <point x="165" y="238"/>
+ <point x="165" y="80"/>
+ <point x="150" y="0" type="curve"/>
+ <point x="465" y="0" type="line"/>
+ <point x="451" y="78"/>
+ <point x="450" y="238"/>
+ <point x="450" y="435" type="curve" smooth="yes"/>
+ </contour>
+ <contour>
+ <point x="450" y="1240" type="line"/>
+ <point x="503" y="1243"/>
+ <point x="537" y="1245"/>
+ <point x="615" y="1245" type="curve" smooth="yes"/>
+ <point x="792" y="1245"/>
+ <point x="890" y="1186"/>
+ <point x="890" y="1035" type="curve" smooth="yes"/>
+ <point x="890" y="859"/>
+ <point x="780" y="800"/>
+ <point x="605" y="800" type="curve" smooth="yes"/>
+ <point x="450" y="800" type="line"/>
+ </contour>
+ <contour>
+ <point x="556" y="635" type="line"/>
+ <point x="975" y="0" type="line"/>
+ <point x="1330" y="0" type="line"/>
+ <point x="1263" y="73"/>
+ <point x="827" y="687"/>
+ <point x="827" y="687" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_tnC_apS_.glif b/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_tnC_apS_.glif
new file mode 100644
index 0000000..486ff77
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_tnC_apS_.glif
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapS" format="2">
+ <advance width="1243"/>
+ <unicode hex="0053"/>
+ <anchor x="616" y="0" name="H"/>
+ <anchor x="616" y="-100" name="L"/>
+ <anchor x="616" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1075" y="1395" type="line"/>
+ <point x="932" y="1458"/>
+ <point x="810" y="1485"/>
+ <point x="640" y="1485" type="curve" smooth="yes"/>
+ <point x="280" y="1485"/>
+ <point x="130" y="1239"/>
+ <point x="130" y="1060" type="curve" smooth="yes"/>
+ <point x="130" y="882"/>
+ <point x="196" y="754"/>
+ <point x="510" y="655" type="curve" smooth="yes"/>
+ <point x="800" y="563"/>
+ <point x="851" y="504"/>
+ <point x="851" y="420" type="curve" smooth="yes"/>
+ <point x="851" y="293"/>
+ <point x="730" y="220"/>
+ <point x="600" y="220" type="curve" smooth="yes"/>
+ <point x="439" y="220"/>
+ <point x="283" y="270"/>
+ <point x="140" y="385" type="curve"/>
+ <point x="90" y="110" type="line"/>
+ <point x="201" y="31"/>
+ <point x="391" y="-25"/>
+ <point x="600" y="-25" type="curve" smooth="yes"/>
+ <point x="895" y="-25"/>
+ <point x="1138" y="169"/>
+ <point x="1138" y="455" type="curve" smooth="yes"/>
+ <point x="1138" y="666"/>
+ <point x="994" y="787"/>
+ <point x="727" y="870" type="curve" smooth="yes"/>
+ <point x="464" y="952"/>
+ <point x="416" y="994"/>
+ <point x="416" y="1080" type="curve" smooth="yes"/>
+ <point x="416" y="1162"/>
+ <point x="506" y="1245"/>
+ <point x="630" y="1245" type="curve" smooth="yes"/>
+ <point x="771" y="1245"/>
+ <point x="873" y="1209"/>
+ <point x="1030" y="1130" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_tnC_apT_.glif b/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_tnC_apT_.glif
new file mode 100644
index 0000000..5f87c10
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_tnC_apT_.glif
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapT" format="2">
+ <advance width="1275"/>
+ <unicode hex="0054"/>
+ <anchor x="632" y="0" name="H"/>
+ <anchor x="632" y="-100" name="L"/>
+ <anchor x="632" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="45" y="1460" type="line"/>
+ <point x="45" y="1210" type="line"/>
+ <point x="117" y="1227"/>
+ <point x="196" y="1230"/>
+ <point x="276" y="1230" type="curve" smooth="yes"/>
+ <point x="488" y="1230" type="line"/>
+ <point x="488" y="413" type="line" smooth="yes"/>
+ <point x="488" y="226"/>
+ <point x="485" y="76"/>
+ <point x="468" y="0" type="curve"/>
+ <point x="793" y="0" type="line"/>
+ <point x="776" y="76"/>
+ <point x="773" y="226"/>
+ <point x="773" y="413" type="curve" smooth="yes"/>
+ <point x="773" y="1230" type="line"/>
+ <point x="989" y="1230" type="line" smooth="yes"/>
+ <point x="1070" y="1230"/>
+ <point x="1148" y="1227"/>
+ <point x="1220" y="1210" type="curve"/>
+ <point x="1220" y="1460" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_tnC_apU_.glif b/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_tnC_apU_.glif
new file mode 100644
index 0000000..b3f6b6f
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_tnC_apU_.glif
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapU" format="2">
+ <advance width="1490"/>
+ <unicode hex="0055"/>
+ <anchor x="732" y="0" name="H"/>
+ <anchor x="732" y="-100" name="L"/>
+ <anchor x="950" y="0" name="O"/>
+ <anchor x="1480" y="1200" name="R"/>
+ <anchor x="732" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1015" y="1460" type="line"/>
+ <point x="1015" y="560" type="line" smooth="yes"/>
+ <point x="1015" y="344"/>
+ <point x="952" y="204"/>
+ <point x="735" y="204" type="curve" smooth="yes"/>
+ <point x="513" y="204"/>
+ <point x="450" y="344"/>
+ <point x="450" y="560" type="curve" smooth="yes"/>
+ <point x="450" y="1460" type="line"/>
+ <point x="150" y="1460" type="line"/>
+ <point x="164" y="1380"/>
+ <point x="165" y="1222"/>
+ <point x="165" y="1025" type="curve" smooth="yes"/>
+ <point x="165" y="515" type="line" smooth="yes"/>
+ <point x="165" y="190"/>
+ <point x="356" y="-25"/>
+ <point x="735" y="-25" type="curve" smooth="yes"/>
+ <point x="1110" y="-25"/>
+ <point x="1300" y="190"/>
+ <point x="1300" y="515" type="curve" smooth="yes"/>
+ <point x="1300" y="1025" type="line" smooth="yes"/>
+ <point x="1300" y="1232"/>
+ <point x="1302" y="1380"/>
+ <point x="1315" y="1460" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_tnC_apV_.glif b/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_tnC_apV_.glif
new file mode 100644
index 0000000..3468784
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_tnC_apV_.glif
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapV" format="2">
+ <advance width="1465"/>
+ <unicode hex="0056"/>
+ <anchor x="730" y="0" name="H"/>
+ <anchor x="722" y="-100" name="L"/>
+ <anchor x="930" y="0" name="O"/>
+ <anchor x="722" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1115" y="1460" type="line"/>
+ <point x="722" y="260" type="line"/>
+ <point x="330" y="1460" type="line"/>
+ <point x="25" y="1460" type="line"/>
+ <point x="58" y="1378"/>
+ <point x="96" y="1288"/>
+ <point x="165" y="1095" type="curve" smooth="yes"/>
+ <point x="555" y="0" type="line"/>
+ <point x="890" y="0" type="line"/>
+ <point x="1280" y="1095" type="line" smooth="yes"/>
+ <point x="1348" y="1289"/>
+ <point x="1384" y="1378"/>
+ <point x="1420" y="1460" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_tnC_apW_.glif b/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_tnC_apW_.glif
new file mode 100644
index 0000000..98329a0
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_tnC_apW_.glif
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapW" format="2">
+ <advance width="2135"/>
+ <unicode hex="0057"/>
+ <anchor x="1052" y="-100" name="L"/>
+ <anchor x="1052" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1490" y="0" type="line"/>
+ <point x="1655" y="0" type="line"/>
+ <point x="1965" y="1095" type="line" smooth="yes"/>
+ <point x="2020" y="1289"/>
+ <point x="2048" y="1378"/>
+ <point x="2080" y="1460" type="curve"/>
+ <point x="1770" y="1460" type="line"/>
+ <point x="1470" y="130" type="line"/>
+ </contour>
+ <contour>
+ <point x="1180" y="1460" type="line"/>
+ <point x="920" y="1460" type="line"/>
+ <point x="995" y="1305" type="line"/>
+ <point x="1340" y="0" type="line"/>
+ <point x="1510" y="0" type="line"/>
+ <point x="1530" y="130" type="line"/>
+ </contour>
+ <contour>
+ <point x="600" y="0" type="line"/>
+ <point x="765" y="0" type="line"/>
+ <point x="1105" y="1305" type="line"/>
+ <point x="1180" y="1460" type="line"/>
+ <point x="920" y="1460" type="line"/>
+ <point x="580" y="130" type="line"/>
+ </contour>
+ <contour>
+ <point x="340" y="1460" type="line"/>
+ <point x="30" y="1460" type="line"/>
+ <point x="61" y="1381"/>
+ <point x="92" y="1286"/>
+ <point x="145" y="1095" type="curve" smooth="yes"/>
+ <point x="450" y="0" type="line"/>
+ <point x="620" y="0" type="line"/>
+ <point x="640" y="130" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_tnC_apX_.glif b/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_tnC_apX_.glif
new file mode 100644
index 0000000..17126dd
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_tnC_apX_.glif
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapX" format="2">
+ <advance width="1365"/>
+ <unicode hex="0058"/>
+ <anchor x="670" y="-100" name="L"/>
+ <anchor x="670" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="990" y="0" type="line"/>
+ <point x="1310" y="0" type="line"/>
+ <point x="1249" y="82"/>
+ <point x="1211" y="125"/>
+ <point x="1083" y="336" type="curve" smooth="yes"/>
+ <point x="400" y="1460" type="line"/>
+ <point x="75" y="1460" type="line"/>
+ <point x="139" y="1376"/>
+ <point x="189" y="1317"/>
+ <point x="315" y="1110" type="curve"/>
+ </contour>
+ <contour>
+ <point x="605" y="947" type="line"/>
+ <point x="255" y="340" type="line" smooth="yes"/>
+ <point x="133" y="128"/>
+ <point x="93" y="86"/>
+ <point x="30" y="0" type="curve"/>
+ <point x="350" y="0" type="line"/>
+ <point x="700" y="609" type="line"/>
+ </contour>
+ <contour>
+ <point x="750" y="609" type="line"/>
+ <point x="1040" y="1110" type="line" smooth="yes"/>
+ <point x="1153" y="1306"/>
+ <point x="1211" y="1383"/>
+ <point x="1275" y="1460" type="curve"/>
+ <point x="950" y="1460" type="line"/>
+ <point x="655" y="947" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_tnC_apY_.glif b/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_tnC_apY_.glif
new file mode 100644
index 0000000..a7a345d
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_tnC_apY_.glif
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapY" format="2">
+ <advance width="1364"/>
+ <unicode hex="0059"/>
+ <anchor x="672" y="-100" name="L"/>
+ <anchor x="672" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="575" y="560" type="line"/>
+ <point x="782" y="675" type="line"/>
+ <point x="357" y="1460" type="line"/>
+ <point x="25" y="1460" type="line"/>
+ <point x="137" y="1311"/>
+ <point x="203" y="1197"/>
+ <point x="280" y="1065" type="curve" smooth="yes"/>
+ </contour>
+ <contour>
+ <point x="770" y="560" type="line"/>
+ <point x="1069" y="1065" type="line" smooth="yes"/>
+ <point x="1145" y="1195"/>
+ <point x="1201" y="1291"/>
+ <point x="1319" y="1460" type="curve"/>
+ <point x="997" y="1460" type="line"/>
+ <point x="577" y="675" type="line"/>
+ </contour>
+ <contour>
+ <point x="530" y="695" type="line"/>
+ <point x="530" y="435" type="line" smooth="yes"/>
+ <point x="530" y="238"/>
+ <point x="530" y="80"/>
+ <point x="515" y="0" type="curve"/>
+ <point x="830" y="0" type="line"/>
+ <point x="815" y="80"/>
+ <point x="815" y="238"/>
+ <point x="815" y="435" type="curve" smooth="yes"/>
+ <point x="815" y="695" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_tnS_mA_.glif b/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_tnS_mA_.glif
new file mode 100644
index 0000000..7885750
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_tnS_mA_.glif
@@ -0,0 +1,76 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmA" format="2">
+ <advance width="1205"/>
+ <unicode hex="0061"/>
+ <note>
+
+
+
+
+ GlyphNote A
+
+
+
+
+ </note>
+ <anchor x="985" y="0" name="H"/>
+ <anchor x="610" y="-100" name="L"/>
+ <anchor x="1185" y="0" name="O"/>
+ <anchor x="1145" y="1000" name="R"/>
+ <anchor x="610" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="1120" y="0" type="line"/>
+ <point x="1078" y="112"/>
+ <point x="1050" y="226"/>
+ <point x="1050" y="370" type="curve"/>
+ <point x="1050" y="760" type="line"/>
+ <point x="1050" y="919"/>
+ <point x="877" y="1040"/>
+ <point x="615" y="1040" type="curve" smooth="yes"/>
+ <point x="446" y="1040"/>
+ <point x="330" y="994"/>
+ <point x="216" y="950" type="curve"/>
+ <point x="210" y="868"/>
+ <point x="207" y="735"/>
+ <point x="206" y="691" type="curve"/>
+ <point x="323" y="773"/>
+ <point x="424" y="816"/>
+ <point x="530" y="816" type="curve" smooth="yes"/>
+ <point x="680" y="816"/>
+ <point x="770" y="785"/>
+ <point x="770" y="710" type="curve" smooth="yes"/>
+ <point x="770" y="660" type="line"/>
+ <point x="729" y="659"/>
+ <point x="569" y="649"/>
+ <point x="500" y="642" type="curve" smooth="yes"/>
+ <point x="191" y="612"/>
+ <point x="100" y="438"/>
+ <point x="100" y="285" type="curve" smooth="yes"/>
+ <point x="100" y="121"/>
+ <point x="245" y="-25"/>
+ <point x="445" y="-25" type="curve" smooth="yes"/>
+ <point x="562" y="-25"/>
+ <point x="688" y="23"/>
+ <point x="800" y="135" type="curve"/>
+ <point x="814" y="79"/>
+ <point x="838" y="28"/>
+ <point x="850" y="0" type="curve"/>
+ </contour>
+ <contour>
+ <point x="770" y="355" type="line"/>
+ <point x="674" y="225"/>
+ <point x="600" y="205"/>
+ <point x="518" y="205" type="curve" smooth="yes"/>
+ <point x="436" y="205"/>
+ <point x="380" y="256"/>
+ <point x="380" y="320" type="curve" smooth="yes"/>
+ <point x="380" y="386"/>
+ <point x="422" y="442"/>
+ <point x="560" y="457" type="curve" smooth="yes"/>
+ <point x="611" y="463"/>
+ <point x="730" y="474"/>
+ <point x="770" y="475" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_tnS_mA_A_cute.glif b/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_tnS_mA_A_cute.glif
new file mode 100644
index 0000000..f1c66a5
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_tnS_mA_A_cute.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmAAcute" format="2">
+ <advance width="1205"/>
+ <unicode hex="00E1"/>
+ <anchor x="985" y="0" name="H"/>
+ <anchor x="610" y="-100" name="L"/>
+ <anchor x="1185" y="0" name="O"/>
+ <anchor x="1145" y="1000" name="R"/>
+ <anchor x="550" y="1635" name="U"/>
+ <outline>
+ <component base="LtnSmA"/>
+ <component base="CombAcute" xOffset="1150"/>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_tnS_mA_C_ircum.glif b/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_tnS_mA_C_ircum.glif
new file mode 100644
index 0000000..218d694
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_tnS_mA_C_ircum.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmACircum" format="2">
+ <advance width="1205"/>
+ <unicode hex="00E2"/>
+ <anchor x="985" y="0" name="H"/>
+ <anchor x="610" y="-100" name="L"/>
+ <anchor x="1185" y="0" name="O"/>
+ <anchor x="1145" y="1000" name="R"/>
+ <anchor x="602" y="1635" name="U"/>
+ <outline>
+ <component base="LtnSmA"/>
+ <component base="CombCircum" xOffset="1190"/>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_tnS_mA_D_iaer.glif b/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_tnS_mA_D_iaer.glif
new file mode 100644
index 0000000..bb0ea2c
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_tnS_mA_D_iaer.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmADiaer" format="2">
+ <advance width="1205"/>
+ <unicode hex="00E4"/>
+ <anchor x="985" y="0" name="H"/>
+ <anchor x="610" y="-100" name="L"/>
+ <anchor x="1185" y="0" name="O"/>
+ <anchor x="1145" y="1000" name="R"/>
+ <anchor x="610" y="1585" name="U"/>
+ <outline>
+ <component base="LtnSmA"/>
+ <component base="CombDiaer" xOffset="1190"/>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_tnS_mA_G_rave.glif b/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_tnS_mA_G_rave.glif
new file mode 100644
index 0000000..3153364
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_tnS_mA_G_rave.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmAGrave" format="2">
+ <advance width="1205"/>
+ <unicode hex="00E0"/>
+ <anchor x="985" y="0" name="H"/>
+ <anchor x="610" y="-100" name="L"/>
+ <anchor x="1185" y="0" name="O"/>
+ <anchor x="1145" y="1000" name="R"/>
+ <anchor x="650" y="1635" name="U"/>
+ <outline>
+ <component base="LtnSmA"/>
+ <component base="CombGrave" xOffset="1240"/>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_tnS_mA_R_ingA_bv.glif b/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_tnS_mA_R_ingA_bv.glif
new file mode 100644
index 0000000..3b8da5a
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_tnS_mA_R_ingA_bv.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmARingAbv" format="2">
+ <advance width="1205"/>
+ <unicode hex="00E5"/>
+ <anchor x="985" y="0" name="H"/>
+ <anchor x="610" y="-100" name="L"/>
+ <anchor x="1185" y="0" name="O"/>
+ <anchor x="1145" y="1000" name="R"/>
+ <anchor x="612" y="1635" name="U"/>
+ <outline>
+ <component base="LtnSmA"/>
+ <component base="CombRingAbv" xOffset="1182"/>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_tnS_mA_T_ilde.glif b/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_tnS_mA_T_ilde.glif
new file mode 100644
index 0000000..b3a8515
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_tnS_mA_T_ilde.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmATilde" format="2">
+ <advance width="1205"/>
+ <unicode hex="00E3"/>
+ <anchor x="985" y="0" name="H"/>
+ <anchor x="610" y="-100" name="L"/>
+ <anchor x="1185" y="0" name="O"/>
+ <anchor x="1145" y="1000" name="R"/>
+ <anchor x="610" y="1490" name="U"/>
+ <outline>
+ <component base="LtnSmA"/>
+ <component base="CombTilde" xOffset="1190"/>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_tnS_mB_.glif b/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_tnS_mB_.glif
new file mode 100644
index 0000000..6cc6671
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_tnS_mB_.glif
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmB" format="2">
+ <advance width="1215"/>
+ <unicode hex="0062"/>
+ <anchor x="610" y="0" name="H"/>
+ <anchor x="610" y="-100" name="L"/>
+ <anchor x="1215" y="1000" name="R"/>
+ <anchor x="610" y="1635" name="U"/>
+ <outline>
+ <contour>
+ <point x="120" y="1600" type="line"/>
+ <point x="135" y="1488"/>
+ <point x="135" y="1273"/>
+ <point x="135" y="1130" type="curve" smooth="yes"/>
+ <point x="135" y="936"/>
+ <point x="135" y="228"/>
+ <point x="135" y="65" type="curve"/>
+ <point x="286" y="26"/>
+ <point x="457" y="-25"/>
+ <point x="650" y="-25" type="curve" smooth="yes"/>
+ <point x="939" y="-25"/>
+ <point x="1125" y="197"/>
+ <point x="1125" y="540" type="curve" smooth="yes"/>
+ <point x="1125" y="832"/>
+ <point x="986" y="1040"/>
+ <point x="789" y="1040" type="curve" smooth="yes"/>
+ <point x="626" y="1040"/>
+ <point x="505" y="956"/>
+ <point x="415" y="845" type="curve"/>
+ <point x="415" y="934"/>
+ <point x="415" y="1600"/>
+ <point x="415" y="1600" type="curve"/>
+ </contour>
+ <contour>
+ <point x="415" y="585" type="line"/>
+ <point x="471" y="709"/>
+ <point x="580" y="795"/>
+ <point x="683" y="795" type="curve" smooth="yes"/>
+ <point x="793" y="795"/>
+ <point x="855" y="684"/>
+ <point x="855" y="505" type="curve" smooth="yes"/>
+ <point x="855" y="317"/>
+ <point x="750" y="190"/>
+ <point x="605" y="190" type="curve" smooth="yes"/>
+ <point x="538" y="190"/>
+ <point x="492" y="204"/>
+ <point x="415" y="240" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_tnS_mC_.glif b/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_tnS_mC_.glif
new file mode 100644
index 0000000..19a8a6d
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_tnS_mC_.glif
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmC" format="2">
+ <advance width="1022"/>
+ <unicode hex="0063"/>
+ <anchor x="555" y="0" name="H"/>
+ <anchor x="575" y="-100" name="L"/>
+ <anchor x="1020" y="1000" name="R"/>
+ <anchor x="575" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="922" y="969" type="line"/>
+ <point x="849" y="1007"/>
+ <point x="744" y="1040"/>
+ <point x="612" y="1040" type="curve" smooth="yes"/>
+ <point x="295" y="1040"/>
+ <point x="90" y="802"/>
+ <point x="90" y="490" type="curve" smooth="yes"/>
+ <point x="90" y="161"/>
+ <point x="309" y="-25"/>
+ <point x="578" y="-25" type="curve" smooth="yes"/>
+ <point x="727" y="-25"/>
+ <point x="831" y="8"/>
+ <point x="932" y="70" type="curve"/>
+ <point x="902" y="314" type="line"/>
+ <point x="815" y="245"/>
+ <point x="737" y="205"/>
+ <point x="617" y="205" type="curve" smooth="yes"/>
+ <point x="467" y="205"/>
+ <point x="370" y="324"/>
+ <point x="370" y="500" type="curve" smooth="yes"/>
+ <point x="370" y="694"/>
+ <point x="478" y="810"/>
+ <point x="617" y="810" type="curve" smooth="yes"/>
+ <point x="720" y="810"/>
+ <point x="788" y="779"/>
+ <point x="878" y="717" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_tnS_mD_.glif b/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_tnS_mD_.glif
new file mode 100644
index 0000000..fc1cc76
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_tnS_mD_.glif
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmD" format="2">
+ <advance width="1265"/>
+ <unicode hex="0064"/>
+ <anchor x="595" y="0" name="H"/>
+ <anchor x="595" y="-100" name="L"/>
+ <anchor x="1285" y="1000" name="R"/>
+ <anchor x="610" y="1635" name="U"/>
+ <outline>
+ <contour>
+ <point x="1115" y="1600" type="line"/>
+ <point x="810" y="1600" type="line"/>
+ <point x="829" y="1516"/>
+ <point x="835" y="1395"/>
+ <point x="835" y="1235" type="curve" smooth="yes"/>
+ <point x="835" y="955" type="line"/>
+ <point x="763" y="999"/>
+ <point x="669" y="1040"/>
+ <point x="590" y="1040" type="curve" smooth="yes"/>
+ <point x="319" y="1040"/>
+ <point x="100" y="814"/>
+ <point x="100" y="460" type="curve" smooth="yes"/>
+ <point x="100" y="167"/>
+ <point x="268" y="-25"/>
+ <point x="515" y="-25" type="curve" smooth="yes"/>
+ <point x="654" y="-25"/>
+ <point x="770" y="47"/>
+ <point x="860" y="175" type="curve"/>
+ <point x="877" y="105"/>
+ <point x="900" y="32"/>
+ <point x="915" y="0" type="curve"/>
+ <point x="1190" y="0" type="line"/>
+ <point x="1147" y="112"/>
+ <point x="1115" y="278"/>
+ <point x="1115" y="530" type="curve" smooth="yes"/>
+ </contour>
+ <contour>
+ <point x="835" y="400" type="line"/>
+ <point x="787" y="300"/>
+ <point x="676" y="200"/>
+ <point x="570" y="200" type="curve" smooth="yes"/>
+ <point x="443" y="200"/>
+ <point x="380" y="300"/>
+ <point x="380" y="490" type="curve" smooth="yes"/>
+ <point x="380" y="685"/>
+ <point x="485" y="800"/>
+ <point x="590" y="800" type="curve" smooth="yes"/>
+ <point x="683" y="800"/>
+ <point x="743" y="783"/>
+ <point x="835" y="738" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_tnS_mE_.glif b/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_tnS_mE_.glif
new file mode 100644
index 0000000..5c67455
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_tnS_mE_.glif
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmE" format="2">
+ <advance width="1110"/>
+ <unicode hex="0065"/>
+ <anchor x="569" y="0" name="H"/>
+ <anchor x="589" y="-100" name="L"/>
+ <anchor x="900" y="0" name="O"/>
+ <anchor x="1130" y="1000" name="R"/>
+ <anchor x="537" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="1010" y="450" type="line"/>
+ <point x="1010" y="469"/>
+ <point x="1009" y="513"/>
+ <point x="1009" y="532" type="curve" smooth="yes"/>
+ <point x="1009" y="782"/>
+ <point x="924" y="1040"/>
+ <point x="589" y="1040" type="curve" smooth="yes"/>
+ <point x="281" y="1040"/>
+ <point x="90" y="826"/>
+ <point x="90" y="495" type="curve" smooth="yes"/>
+ <point x="90" y="155"/>
+ <point x="324" y="-25"/>
+ <point x="589" y="-25" type="curve" smooth="yes"/>
+ <point x="745" y="-25"/>
+ <point x="871" y="2"/>
+ <point x="1015" y="75" type="curve"/>
+ <point x="994" y="306" type="line"/>
+ <point x="870" y="232"/>
+ <point x="745" y="205"/>
+ <point x="614" y="205" type="curve" smooth="yes"/>
+ <point x="448" y="205"/>
+ <point x="362" y="293"/>
+ <point x="362" y="505" type="curve" smooth="yes"/>
+ <point x="362" y="739"/>
+ <point x="431" y="830"/>
+ <point x="575" y="830" type="curve" smooth="yes"/>
+ <point x="693" y="830"/>
+ <point x="755" y="770"/>
+ <point x="755" y="630" type="curve"/>
+ <point x="242" y="630" type="line"/>
+ <point x="242" y="450" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_tnS_mF_.glif b/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_tnS_mF_.glif
new file mode 100644
index 0000000..8a5996d
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_tnS_mF_.glif
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmF" format="2">
+ <advance width="800"/>
+ <unicode hex="0066"/>
+ <anchor x="380" y="0" name="H"/>
+ <anchor x="400" y="-100" name="L"/>
+ <anchor x="600" y="1635" name="U"/>
+ <outline>
+ <contour>
+ <point x="30" y="805" type="line"/>
+ <point x="230" y="805" type="line"/>
+ <point x="230" y="0" type="line"/>
+ <point x="540" y="0" type="line"/>
+ <point x="518" y="105"/>
+ <point x="510" y="300"/>
+ <point x="510" y="494" type="curve" smooth="yes"/>
+ <point x="510" y="805" type="line"/>
+ <point x="765" y="805" type="line"/>
+ <point x="765" y="1005" type="line"/>
+ <point x="510" y="1005" type="line"/>
+ <point x="510" y="1159" type="line" smooth="yes"/>
+ <point x="510" y="1322"/>
+ <point x="552" y="1387"/>
+ <point x="648" y="1387" type="curve" smooth="yes"/>
+ <point x="697" y="1387"/>
+ <point x="765" y="1362"/>
+ <point x="808" y="1322" type="curve"/>
+ <point x="865" y="1550" type="line"/>
+ <point x="806" y="1588"/>
+ <point x="699" y="1620"/>
+ <point x="625" y="1620" type="curve" smooth="yes"/>
+ <point x="378" y="1620"/>
+ <point x="230" y="1470"/>
+ <point x="230" y="1170" type="curve" smooth="yes"/>
+ <point x="230" y="1005" type="line"/>
+ <point x="30" y="1005" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_tnS_mG_.glif b/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_tnS_mG_.glif
new file mode 100644
index 0000000..871e4e9
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_tnS_mG_.glif
@@ -0,0 +1,91 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmG" format="2">
+ <advance width="1170"/>
+ <unicode hex="0067"/>
+ <anchor x="597" y="-465" name="H"/>
+ <anchor x="597" y="-535" name="L"/>
+ <anchor x="1187" y="1000" name="R"/>
+ <anchor x="567" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="352" y="395" type="line"/>
+ <point x="256" y="357"/>
+ <point x="202" y="275"/>
+ <point x="202" y="215" type="curve" smooth="yes"/>
+ <point x="202" y="113"/>
+ <point x="280" y="12"/>
+ <point x="547" y="-23" type="curve" smooth="yes"/>
+ <point x="797" y="-50"/>
+ <point x="870" y="-99"/>
+ <point x="870" y="-170" type="curve" smooth="yes"/>
+ <point x="870" y="-229"/>
+ <point x="748" y="-302"/>
+ <point x="602" y="-302" type="curve" smooth="yes"/>
+ <point x="418" y="-302"/>
+ <point x="330" y="-235"/>
+ <point x="330" y="-180" type="curve" smooth="yes"/>
+ <point x="330" y="-121"/>
+ <point x="357" y="-56"/>
+ <point x="562" y="20" type="curve"/>
+ <point x="554" y="49"/>
+ <point x="322" y="75"/>
+ <point x="322" y="75" type="curve"/>
+ <point x="138" y="2"/>
+ <point x="50" y="-89"/>
+ <point x="50" y="-200" type="curve" smooth="yes"/>
+ <point x="50" y="-409"/>
+ <point x="341" y="-505"/>
+ <point x="587" y="-505" type="curve" smooth="yes"/>
+ <point x="843" y="-505"/>
+ <point x="1150" y="-375"/>
+ <point x="1150" y="-160" type="curve" smooth="yes"/>
+ <point x="1150" y="13"/>
+ <point x="1049" y="125"/>
+ <point x="752" y="165" type="curve" smooth="yes"/>
+ <point x="497" y="191"/>
+ <point x="433" y="216"/>
+ <point x="433" y="255" type="curve" smooth="yes"/>
+ <point x="433" y="285"/>
+ <point x="472" y="322"/>
+ <point x="588" y="350" type="curve"/>
+ </contour>
+ <contour>
+ <point x="1102" y="1040" type="line"/>
+ <point x="1003" y="1033"/>
+ <point x="871" y="997"/>
+ <point x="782" y="940" type="curve"/>
+ <point x="847" y="770" type="line"/>
+ <point x="939" y="808"/>
+ <point x="1019" y="823"/>
+ <point x="1092" y="825" type="curve"/>
+ </contour>
+ <contour>
+ <point x="122" y="670" type="curve" smooth="yes"/>
+ <point x="122" y="455"/>
+ <point x="316" y="305"/>
+ <point x="567" y="305" type="curve" smooth="yes"/>
+ <point x="820" y="305"/>
+ <point x="1012" y="465"/>
+ <point x="1012" y="680" type="curve" smooth="yes"/>
+ <point x="1012" y="884"/>
+ <point x="820" y="1040"/>
+ <point x="567" y="1040" type="curve" smooth="yes"/>
+ <point x="316" y="1040"/>
+ <point x="122" y="874"/>
+ </contour>
+ <contour>
+ <point x="377" y="680" type="curve" smooth="yes"/>
+ <point x="377" y="770"/>
+ <point x="457" y="847"/>
+ <point x="567" y="847" type="curve" smooth="yes"/>
+ <point x="678" y="847"/>
+ <point x="757" y="770"/>
+ <point x="757" y="680" type="curve" smooth="yes"/>
+ <point x="757" y="578"/>
+ <point x="678" y="501"/>
+ <point x="567" y="501" type="curve" smooth="yes"/>
+ <point x="457" y="501"/>
+ <point x="377" y="578"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_tnS_mH_.glif b/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_tnS_mH_.glif
new file mode 100644
index 0000000..15fc451
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_tnS_mH_.glif
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmH" format="2">
+ <advance width="1235"/>
+ <unicode hex="0068"/>
+ <anchor x="280" y="0" name="H"/>
+ <anchor x="620" y="-100" name="L"/>
+ <anchor x="620" y="1635" name="U"/>
+ <outline>
+ <contour>
+ <point x="415" y="580" type="line"/>
+ <point x="450" y="683"/>
+ <point x="560" y="795"/>
+ <point x="675" y="795" type="curve" smooth="yes"/>
+ <point x="782" y="795"/>
+ <point x="830" y="744"/>
+ <point x="830" y="550" type="curve" smooth="yes"/>
+ <point x="830" y="413"/>
+ <point x="830" y="0"/>
+ <point x="830" y="0" type="curve"/>
+ <point x="1110" y="0" type="line"/>
+ <point x="1110" y="0"/>
+ <point x="1110" y="459"/>
+ <point x="1110" y="625" type="curve" smooth="yes"/>
+ <point x="1110" y="900"/>
+ <point x="1008" y="1040"/>
+ <point x="805" y="1040" type="curve" smooth="yes"/>
+ <point x="662" y="1040"/>
+ <point x="513" y="976"/>
+ <point x="415" y="850" type="curve"/>
+ <point x="415" y="894"/>
+ <point x="415" y="1600"/>
+ <point x="415" y="1600" type="curve"/>
+ <point x="120" y="1600" type="line"/>
+ <point x="135" y="1514"/>
+ <point x="135" y="1345"/>
+ <point x="135" y="1130" type="curve" smooth="yes"/>
+ <point x="135" y="935"/>
+ <point x="135" y="0"/>
+ <point x="135" y="0" type="curve"/>
+ <point x="415" y="0" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_tnS_mI_.glif b/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_tnS_mI_.glif
new file mode 100644
index 0000000..05022d4
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_tnS_mI_.glif
@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmI" format="2">
+ <advance width="640"/>
+ <unicode hex="0069"/>
+ <anchor x="320" y="0" name="H"/>
+ <anchor x="320" y="-100" name="L"/>
+ <anchor x="580" y="0" name="O"/>
+ <anchor x="640" y="1000" name="R"/>
+ <anchor x="320" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="165" y="1020" type="line"/>
+ <point x="178" y="915"/>
+ <point x="180" y="725"/>
+ <point x="180" y="530" type="curve" smooth="yes"/>
+ <point x="180" y="336"/>
+ <point x="180" y="0"/>
+ <point x="180" y="0" type="curve"/>
+ <point x="480" y="0" type="line"/>
+ <point x="467" y="107"/>
+ <point x="460" y="346"/>
+ <point x="460" y="475" type="curve" smooth="yes"/>
+ <point x="460" y="558"/>
+ <point x="460" y="1020"/>
+ <point x="460" y="1020" type="curve"/>
+ </contour>
+ <contour>
+ <point x="145" y="1385" type="curve" smooth="yes"/>
+ <point x="145" y="1281"/>
+ <point x="219" y="1210"/>
+ <point x="320" y="1210" type="curve" smooth="yes"/>
+ <point x="422" y="1210"/>
+ <point x="495" y="1281"/>
+ <point x="495" y="1385" type="curve" smooth="yes"/>
+ <point x="495" y="1487"/>
+ <point x="422" y="1560"/>
+ <point x="320" y="1560" type="curve" smooth="yes"/>
+ <point x="219" y="1560"/>
+ <point x="145" y="1487"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_tnS_mJ_.glif b/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_tnS_mJ_.glif
new file mode 100644
index 0000000..6e044af
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_tnS_mJ_.glif
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmJ" format="2">
+ <advance width="670"/>
+ <unicode hex="006A"/>
+ <anchor x="140" y="-500" name="L"/>
+ <anchor x="355" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="185" y="1385" type="curve" smooth="yes"/>
+ <point x="185" y="1281"/>
+ <point x="259" y="1210"/>
+ <point x="360" y="1210" type="curve" smooth="yes"/>
+ <point x="462" y="1210"/>
+ <point x="535" y="1281"/>
+ <point x="535" y="1385" type="curve" smooth="yes"/>
+ <point x="535" y="1487"/>
+ <point x="462" y="1560"/>
+ <point x="360" y="1560" type="curve" smooth="yes"/>
+ <point x="259" y="1560"/>
+ <point x="185" y="1487"/>
+ </contour>
+ <contour>
+ <point x="500" y="1020" type="line"/>
+ <point x="205" y="1020" type="line"/>
+ <point x="218" y="915"/>
+ <point x="220" y="725"/>
+ <point x="220" y="530" type="curve"/>
+ <point x="220" y="20" type="line"/>
+ <point x="220" y="-150"/>
+ <point x="165" y="-232"/>
+ <point x="48" y="-232" type="curve" smooth="yes"/>
+ <point x="-20" y="-232"/>
+ <point x="-101" y="-195"/>
+ <point x="-145" y="-152" type="curve"/>
+ <point x="-190" y="-389" type="line"/>
+ <point x="-148" y="-421"/>
+ <point x="-37" y="-470"/>
+ <point x="56" y="-470" type="curve" smooth="yes"/>
+ <point x="306" y="-470"/>
+ <point x="500" y="-348"/>
+ <point x="500" y="25" type="curve" smooth="yes"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_tnS_mK_.glif b/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_tnS_mK_.glif
new file mode 100644
index 0000000..529f7dd
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_tnS_mK_.glif
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmK" format="2">
+ <advance width="1138"/>
+ <unicode hex="006B"/>
+ <anchor x="940" y="0" name="H"/>
+ <anchor x="585" y="-100" name="L"/>
+ <anchor x="1140" y="1000" name="R"/>
+ <anchor x="595" y="1635" name="U"/>
+ <outline>
+ <contour>
+ <point x="415" y="0" type="line"/>
+ <point x="415" y="1600" type="line"/>
+ <point x="120" y="1600" type="line"/>
+ <point x="135" y="1514"/>
+ <point x="135" y="1345"/>
+ <point x="135" y="1130" type="curve" smooth="yes"/>
+ <point x="135" y="934"/>
+ <point x="135" y="0"/>
+ <point x="135" y="0" type="curve"/>
+ </contour>
+ <contour>
+ <point x="723" y="1020" type="line"/>
+ <point x="353" y="570" type="line"/>
+ <point x="572" y="528" type="line"/>
+ <point x="1098" y="1020" type="line"/>
+ </contour>
+ <contour>
+ <point x="350" y="570" type="line"/>
+ <point x="761" y="0" type="line"/>
+ <point x="1128" y="0" type="line"/>
+ <point x="540" y="664" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_tnS_mL_.glif b/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_tnS_mL_.glif
new file mode 100644
index 0000000..0b21294
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_tnS_mL_.glif
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmL" format="2">
+ <advance width="640"/>
+ <unicode hex="006C"/>
+ <anchor x="335" y="0" name="H"/>
+ <anchor x="335" y="-100" name="L"/>
+ <anchor x="660" y="1000" name="R"/>
+ <anchor x="320" y="1635" name="U"/>
+ <outline>
+ <contour>
+ <point x="460" y="1600" type="line"/>
+ <point x="160" y="1600" type="line"/>
+ <point x="173" y="1485"/>
+ <point x="180" y="1324"/>
+ <point x="180" y="1130" type="curve" smooth="yes"/>
+ <point x="180" y="0" type="line"/>
+ <point x="480" y="0" type="line"/>
+ <point x="467" y="109"/>
+ <point x="460" y="346"/>
+ <point x="460" y="475" type="curve" smooth="yes"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_tnS_mM_.glif b/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_tnS_mM_.glif
new file mode 100644
index 0000000..eace489
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_tnS_mM_.glif
@@ -0,0 +1,52 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmM" format="2">
+ <advance width="1760"/>
+ <unicode hex="006D"/>
+ <anchor x="890" y="0" name="H"/>
+ <anchor x="890" y="-100" name="L"/>
+ <anchor x="890" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="115" y="1020" type="line"/>
+ <point x="136" y="951"/>
+ <point x="165" y="811"/>
+ <point x="165" y="615" type="curve" smooth="yes"/>
+ <point x="165" y="0" type="line"/>
+ <point x="445" y="0" type="line"/>
+ <point x="445" y="640" type="line"/>
+ <point x="484" y="731"/>
+ <point x="560" y="795"/>
+ <point x="635" y="795" type="curve" smooth="yes"/>
+ <point x="723" y="795"/>
+ <point x="750" y="759"/>
+ <point x="750" y="570" type="curve" smooth="yes"/>
+ <point x="750" y="0" type="line"/>
+ <point x="1030" y="0" type="line"/>
+ <point x="1030" y="660" type="line"/>
+ <point x="1073" y="742"/>
+ <point x="1147" y="795"/>
+ <point x="1220" y="795" type="curve" smooth="yes"/>
+ <point x="1310" y="795"/>
+ <point x="1335" y="751"/>
+ <point x="1335" y="550" type="curve" smooth="yes"/>
+ <point x="1335" y="0" type="line"/>
+ <point x="1615" y="0" type="line"/>
+ <point x="1615" y="660" type="line" smooth="yes"/>
+ <point x="1615" y="907"/>
+ <point x="1548" y="1040"/>
+ <point x="1345" y="1040" type="curve" smooth="yes"/>
+ <point x="1240" y="1040"/>
+ <point x="1131" y="1007"/>
+ <point x="1006" y="872" type="curve"/>
+ <point x="973" y="960"/>
+ <point x="891" y="1040"/>
+ <point x="760" y="1040" type="curve" smooth="yes"/>
+ <point x="644" y="1040"/>
+ <point x="544" y="1008"/>
+ <point x="422" y="875" type="curve"/>
+ <point x="412" y="920"/>
+ <point x="397" y="981"/>
+ <point x="375" y="1020" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_tnS_mN_.glif b/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_tnS_mN_.glif
new file mode 100644
index 0000000..f7abb6f
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_tnS_mN_.glif
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmN" format="2">
+ <advance width="1245"/>
+ <unicode hex="006E"/>
+ <anchor x="620" y="0" name="H"/>
+ <anchor x="620" y="-100" name="L"/>
+ <anchor x="620" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="1120" y="0" type="line"/>
+ <point x="1120" y="0"/>
+ <point x="1120" y="459"/>
+ <point x="1120" y="625" type="curve" smooth="yes"/>
+ <point x="1120" y="900"/>
+ <point x="998" y="1040"/>
+ <point x="795" y="1040" type="curve" smooth="yes"/>
+ <point x="654" y="1040"/>
+ <point x="537" y="980"/>
+ <point x="410" y="835" type="curve"/>
+ <point x="403" y="881"/>
+ <point x="385" y="980"/>
+ <point x="370" y="1020" type="curve"/>
+ <point x="95" y="1020" type="line"/>
+ <point x="117" y="951"/>
+ <point x="145" y="811"/>
+ <point x="145" y="615" type="curve" smooth="yes"/>
+ <point x="145" y="420"/>
+ <point x="145" y="0"/>
+ <point x="145" y="0" type="curve"/>
+ <point x="425" y="0" type="line"/>
+ <point x="425" y="580" type="line"/>
+ <point x="460" y="683"/>
+ <point x="570" y="795"/>
+ <point x="685" y="795" type="curve" smooth="yes"/>
+ <point x="792" y="795"/>
+ <point x="840" y="734"/>
+ <point x="840" y="550" type="curve" smooth="yes"/>
+ <point x="840" y="413"/>
+ <point x="840" y="0"/>
+ <point x="840" y="0" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_tnS_mO_.glif b/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_tnS_mO_.glif
new file mode 100644
index 0000000..063c297
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_tnS_mO_.glif
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmO" format="2">
+ <advance width="1160"/>
+ <unicode hex="006F"/>
+ <anchor x="578" y="0" name="H"/>
+ <anchor x="580" y="-100" name="L"/>
+ <anchor x="790" y="0" name="O"/>
+ <anchor x="1160" y="1000" name="R"/>
+ <anchor x="580" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="90" y="507" type="curve" smooth="yes"/>
+ <point x="90" y="163"/>
+ <point x="288" y="-25"/>
+ <point x="570" y="-25" type="curve" smooth="yes"/>
+ <point x="840" y="-25"/>
+ <point x="1070" y="163"/>
+ <point x="1070" y="507" type="curve" smooth="yes"/>
+ <point x="1070" y="851"/>
+ <point x="873" y="1040"/>
+ <point x="590" y="1040" type="curve" smooth="yes"/>
+ <point x="320" y="1040"/>
+ <point x="90" y="851"/>
+ </contour>
+ <contour>
+ <point x="370" y="507" type="curve" smooth="yes"/>
+ <point x="370" y="699"/>
+ <point x="451" y="815"/>
+ <point x="580" y="815" type="curve" smooth="yes"/>
+ <point x="717" y="815"/>
+ <point x="790" y="699"/>
+ <point x="790" y="507" type="curve" smooth="yes"/>
+ <point x="790" y="316"/>
+ <point x="709" y="200"/>
+ <point x="580" y="200" type="curve" smooth="yes"/>
+ <point x="443" y="200"/>
+ <point x="370" y="316"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_tnS_mP_.glif b/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_tnS_mP_.glif
new file mode 100644
index 0000000..4fe224b
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_tnS_mP_.glif
@@ -0,0 +1,59 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmP" format="2">
+ <advance width="1235"/>
+ <unicode hex="0070"/>
+ <anchor x="290" y="-435" name="H"/>
+ <anchor x="640" y="-500" name="L"/>
+ <anchor x="1235" y="1000" name="R"/>
+ <anchor x="640" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="450" y="-490" type="line"/>
+ <point x="433" y="-405"/>
+ <point x="425" y="-310"/>
+ <point x="425" y="-150" type="curve" smooth="yes"/>
+ <point x="425" y="-71"/>
+ <point x="425" y="-41"/>
+ <point x="425" y="65" type="curve"/>
+ <point x="518" y="10"/>
+ <point x="594" y="-25"/>
+ <point x="699" y="-25" type="curve" smooth="yes"/>
+ <point x="945" y="-25"/>
+ <point x="1145" y="193"/>
+ <point x="1145" y="535" type="curve" smooth="yes"/>
+ <point x="1145" y="828"/>
+ <point x="996" y="1040"/>
+ <point x="773" y="1040" type="curve" smooth="yes"/>
+ <point x="628" y="1040"/>
+ <point x="502" y="962"/>
+ <point x="410" y="850" type="curve"/>
+ <point x="401" y="932"/>
+ <point x="385" y="990"/>
+ <point x="370" y="1020" type="curve"/>
+ <point x="95" y="1020" type="line"/>
+ <point x="140" y="907"/>
+ <point x="145" y="734"/>
+ <point x="145" y="485" type="curve" smooth="yes"/>
+ <point x="145" y="291"/>
+ <point x="145" y="-345"/>
+ <point x="145" y="-490" type="curve"/>
+ </contour>
+ <contour>
+ <point x="633" y="206" type="curve" smooth="yes"/>
+ <point x="564" y="206"/>
+ <point x="527" y="225"/>
+ <point x="425" y="300" type="curve"/>
+ <point x="425" y="390"/>
+ <point x="425" y="507"/>
+ <point x="425" y="585" type="curve"/>
+ <point x="482" y="726"/>
+ <point x="583" y="802"/>
+ <point x="672" y="802" type="curve" smooth="yes"/>
+ <point x="793" y="802"/>
+ <point x="865" y="686"/>
+ <point x="865" y="505" type="curve" smooth="yes"/>
+ <point x="865" y="320"/>
+ <point x="755" y="206"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_tnS_mQ_.glif b/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_tnS_mQ_.glif
new file mode 100644
index 0000000..9727ad7
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_tnS_mQ_.glif
@@ -0,0 +1,47 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmQ" format="2">
+ <advance width="1210"/>
+ <unicode hex="0071"/>
+ <anchor x="600" y="-500" name="L"/>
+ <anchor x="1210" y="1000" name="R"/>
+ <anchor x="600" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="790" y="-490" type="line"/>
+ <point x="1095" y="-490" type="line"/>
+ <point x="1078" y="-405"/>
+ <point x="1070" y="-310"/>
+ <point x="1070" y="-150" type="curve" smooth="yes"/>
+ <point x="1070" y="-26"/>
+ <point x="1070" y="965"/>
+ <point x="1070" y="965" type="curve"/>
+ <point x="934" y="1001"/>
+ <point x="773" y="1040"/>
+ <point x="620" y="1040" type="curve" smooth="yes"/>
+ <point x="255" y="1040"/>
+ <point x="100" y="742"/>
+ <point x="100" y="435" type="curve" smooth="yes"/>
+ <point x="100" y="117"/>
+ <point x="316" y="-25"/>
+ <point x="500" y="-25" type="curve" smooth="yes"/>
+ <point x="593" y="-25"/>
+ <point x="686" y="14"/>
+ <point x="790" y="120" type="curve"/>
+ </contour>
+ <contour>
+ <point x="790" y="368" type="line"/>
+ <point x="727" y="258"/>
+ <point x="650" y="203"/>
+ <point x="580" y="203" type="curve" smooth="yes"/>
+ <point x="475" y="203"/>
+ <point x="380" y="287"/>
+ <point x="380" y="485" type="curve" smooth="yes"/>
+ <point x="380" y="641"/>
+ <point x="456" y="802"/>
+ <point x="655" y="802" type="curve" smooth="yes"/>
+ <point x="696" y="802"/>
+ <point x="749" y="789"/>
+ <point x="790" y="770" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_tnS_mR_.glif b/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_tnS_mR_.glif
new file mode 100644
index 0000000..8a81116
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_tnS_mR_.glif
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmR" format="2">
+ <advance width="995"/>
+ <unicode hex="0072"/>
+ <anchor x="285" y="0" name="H"/>
+ <anchor x="275" y="-100" name="L"/>
+ <anchor x="550" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="425" y="0" type="line"/>
+ <point x="425" y="530" type="line"/>
+ <point x="460" y="654"/>
+ <point x="570" y="781"/>
+ <point x="637" y="781" type="curve" smooth="yes"/>
+ <point x="722" y="781"/>
+ <point x="755" y="721"/>
+ <point x="762" y="630" type="curve"/>
+ <point x="985" y="665" type="line"/>
+ <point x="985" y="868"/>
+ <point x="913" y="1040"/>
+ <point x="725" y="1040" type="curve" smooth="yes"/>
+ <point x="634" y="1040"/>
+ <point x="507" y="964"/>
+ <point x="410" y="825" type="curve"/>
+ <point x="403" y="873"/>
+ <point x="385" y="978"/>
+ <point x="370" y="1020" type="curve"/>
+ <point x="95" y="1020" type="line"/>
+ <point x="117" y="951"/>
+ <point x="145" y="811"/>
+ <point x="145" y="615" type="curve" smooth="yes"/>
+ <point x="145" y="0" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_tnS_mS_.glif b/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_tnS_mS_.glif
new file mode 100644
index 0000000..06b1a9a
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_tnS_mS_.glif
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmS" format="2">
+ <advance width="1035"/>
+ <unicode hex="0073"/>
+ <anchor x="515" y="0" name="H"/>
+ <anchor x="515" y="-100" name="L"/>
+ <anchor x="530" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="905" y="960" type="line"/>
+ <point x="827" y="998"/>
+ <point x="708" y="1040"/>
+ <point x="545" y="1040" type="curve" smooth="yes"/>
+ <point x="202" y="1040"/>
+ <point x="110" y="818"/>
+ <point x="110" y="720" type="curve" smooth="yes"/>
+ <point x="110" y="594"/>
+ <point x="171" y="491"/>
+ <point x="455" y="432" type="curve" smooth="yes"/>
+ <point x="646" y="390"/>
+ <point x="690" y="348"/>
+ <point x="690" y="290" type="curve" smooth="yes"/>
+ <point x="690" y="243"/>
+ <point x="624" y="199"/>
+ <point x="530" y="199" type="curve" smooth="yes"/>
+ <point x="413" y="199"/>
+ <point x="254" y="253"/>
+ <point x="155" y="334" type="curve"/>
+ <point x="100" y="90" type="line"/>
+ <point x="187" y="28"/>
+ <point x="346" y="-25"/>
+ <point x="525" y="-25" type="curve" smooth="yes"/>
+ <point x="768" y="-25"/>
+ <point x="960" y="123"/>
+ <point x="960" y="315" type="curve" smooth="yes"/>
+ <point x="960" y="504"/>
+ <point x="788" y="583"/>
+ <point x="580" y="625" type="curve" smooth="yes"/>
+ <point x="405" y="659"/>
+ <point x="380" y="681"/>
+ <point x="380" y="730" type="curve" smooth="yes"/>
+ <point x="380" y="770"/>
+ <point x="418" y="816"/>
+ <point x="535" y="816" type="curve" smooth="yes"/>
+ <point x="674" y="816"/>
+ <point x="791" y="760"/>
+ <point x="866" y="721" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_tnS_mT_.glif b/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_tnS_mT_.glif
new file mode 100644
index 0000000..d4123c7
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_tnS_mT_.glif
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmT" format="2">
+ <advance width="885"/>
+ <unicode hex="0074"/>
+ <anchor x="530" y="0" name="H"/>
+ <anchor x="530" y="-100" name="L"/>
+ <anchor x="885" y="1000" name="R"/>
+ <anchor x="360" y="1360" name="U"/>
+ <outline>
+ <contour>
+ <point x="220" y="270" type="line"/>
+ <point x="220" y="39"/>
+ <point x="374" y="-25"/>
+ <point x="563" y="-25" type="curve" smooth="yes"/>
+ <point x="635" y="-25"/>
+ <point x="725" y="-3"/>
+ <point x="820" y="57" type="curve"/>
+ <point x="820" y="281" type="line"/>
+ <point x="741" y="232"/>
+ <point x="678" y="206"/>
+ <point x="627" y="206" type="curve" smooth="yes"/>
+ <point x="537" y="206"/>
+ <point x="500" y="235"/>
+ <point x="500" y="462" type="curve" smooth="yes"/>
+ <point x="500" y="1320" type="line"/>
+ <point x="220" y="1320" type="line"/>
+ </contour>
+ <contour>
+ <point x="805" y="805" type="line"/>
+ <point x="805" y="1005" type="line"/>
+ <point x="30" y="1005" type="line"/>
+ <point x="30" y="805" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_tnS_mU_.glif b/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_tnS_mU_.glif
new file mode 100644
index 0000000..5b8d434
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_tnS_mU_.glif
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmU" format="2">
+ <advance width="1245"/>
+ <unicode hex="0075"/>
+ <anchor x="515" y="0" name="H"/>
+ <anchor x="615" y="-100" name="L"/>
+ <anchor x="690" y="0" name="O"/>
+ <anchor x="1258" y="1000" name="R"/>
+ <anchor x="615" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="1160" y="0" type="line"/>
+ <point x="1118" y="112"/>
+ <point x="1095" y="256"/>
+ <point x="1095" y="450" type="curve" smooth="yes"/>
+ <point x="1095" y="646"/>
+ <point x="1095" y="1020"/>
+ <point x="1095" y="1020" type="curve"/>
+ <point x="795" y="1020" type="line"/>
+ <point x="813" y="898"/>
+ <point x="815" y="832"/>
+ <point x="815" y="700" type="curve" smooth="yes"/>
+ <point x="815" y="418" type="line"/>
+ <point x="774" y="326"/>
+ <point x="651" y="206"/>
+ <point x="560" y="206" type="curve" smooth="yes"/>
+ <point x="458" y="206"/>
+ <point x="425" y="284"/>
+ <point x="425" y="465" type="curve" smooth="yes"/>
+ <point x="425" y="603"/>
+ <point x="425" y="1020"/>
+ <point x="425" y="1020" type="curve"/>
+ <point x="125" y="1020" type="line"/>
+ <point x="143" y="900"/>
+ <point x="145" y="827"/>
+ <point x="145" y="700" type="curve" smooth="yes"/>
+ <point x="145" y="681"/>
+ <point x="145" y="424"/>
+ <point x="145" y="405" type="curve" smooth="yes"/>
+ <point x="145" y="120"/>
+ <point x="250" y="-25"/>
+ <point x="458" y="-25" type="curve" smooth="yes"/>
+ <point x="595" y="-25"/>
+ <point x="722" y="48"/>
+ <point x="840" y="185" type="curve"/>
+ <point x="850" y="116"/>
+ <point x="876" y="43"/>
+ <point x="895" y="0" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_tnS_mV_.glif b/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_tnS_mV_.glif
new file mode 100644
index 0000000..daf1468
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_tnS_mV_.glif
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmV" format="2">
+ <advance width="1104"/>
+ <unicode hex="0076"/>
+ <anchor x="565" y="0" name="H"/>
+ <anchor x="565" y="-100" name="L"/>
+ <anchor x="750" y="0" name="O"/>
+ <anchor x="565" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="786" y="1020" type="line"/>
+ <point x="556" y="290" type="line"/>
+ <point x="322" y="1020" type="line"/>
+ <point x="10" y="1020" type="line"/>
+ <point x="65" y="905"/>
+ <point x="133" y="746"/>
+ <point x="165" y="665" type="curve" smooth="yes"/>
+ <point x="227" y="510"/>
+ <point x="430" y="0"/>
+ <point x="430" y="0" type="curve"/>
+ <point x="674" y="0" type="line"/>
+ <point x="674" y="0"/>
+ <point x="886" y="536"/>
+ <point x="939" y="665" type="curve" smooth="yes"/>
+ <point x="972" y="744"/>
+ <point x="1037" y="905"/>
+ <point x="1094" y="1020" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_tnS_mW_.glif b/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_tnS_mW_.glif
new file mode 100644
index 0000000..1ca1ec4
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_tnS_mW_.glif
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmW" format="2">
+ <advance width="1570"/>
+ <unicode hex="0077"/>
+ <anchor x="785" y="-100" name="L"/>
+ <anchor x="785" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="665" y="1020" type="line"/>
+ <point x="480" y="285" type="line"/>
+ <point x="323" y="1020" type="line"/>
+ <point x="35" y="1020" type="line"/>
+ <point x="82" y="867"/>
+ <point x="110" y="771"/>
+ <point x="140" y="665" type="curve" smooth="yes"/>
+ <point x="325" y="0" type="line"/>
+ <point x="615" y="0" type="line"/>
+ <point x="785" y="695" type="line"/>
+ <point x="955" y="0" type="line"/>
+ <point x="1245" y="0" type="line"/>
+ <point x="1430" y="665" type="line" smooth="yes"/>
+ <point x="1464" y="785"/>
+ <point x="1488" y="868"/>
+ <point x="1535" y="1020" type="curve"/>
+ <point x="1247" y="1020" type="line"/>
+ <point x="1090" y="285" type="line"/>
+ <point x="905" y="1020" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_tnS_mX_.glif b/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_tnS_mX_.glif
new file mode 100644
index 0000000..971c129
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_tnS_mX_.glif
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmX" format="2">
+ <advance width="1185"/>
+ <unicode hex="0078"/>
+ <anchor x="960" y="0" name="H"/>
+ <anchor x="590" y="-100" name="L"/>
+ <anchor x="615" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="815" y="0" type="line"/>
+ <point x="1145" y="0" type="line"/>
+ <point x="1037" y="129"/>
+ <point x="989" y="190"/>
+ <point x="930" y="270" type="curve" smooth="yes"/>
+ <point x="380" y="1020" type="line"/>
+ <point x="50" y="1020" type="line"/>
+ <point x="158" y="887"/>
+ <point x="192" y="842"/>
+ <point x="260" y="750" type="curve" smooth="yes"/>
+ </contour>
+ <contour>
+ <point x="499" y="616" type="line"/>
+ <point x="245" y="270" type="line" smooth="yes"/>
+ <point x="195" y="201"/>
+ <point x="150" y="143"/>
+ <point x="40" y="0" type="curve"/>
+ <point x="345" y="0" type="line"/>
+ <point x="584" y="359" type="line"/>
+ </contour>
+ <contour>
+ <point x="675" y="405" type="line"/>
+ <point x="925" y="750" type="line" smooth="yes"/>
+ <point x="980" y="826"/>
+ <point x="1027" y="886"/>
+ <point x="1130" y="1020" type="curve"/>
+ <point x="825" y="1020" type="line"/>
+ <point x="595" y="668" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_tnS_mY_.glif b/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_tnS_mY_.glif
new file mode 100644
index 0000000..ea8d25e
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/L_tnS_mY_.glif
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmY" format="2">
+ <advance width="1100"/>
+ <unicode hex="0079"/>
+ <anchor x="845" y="-100" name="L"/>
+ <anchor x="1155" y="1000" name="R"/>
+ <anchor x="565" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="945" y="665" type="line" smooth="yes"/>
+ <point x="978" y="758"/>
+ <point x="1021" y="865"/>
+ <point x="1090" y="1020" type="curve"/>
+ <point x="777" y="1020" type="line"/>
+ <point x="777" y="1020"/>
+ <point x="646" y="549"/>
+ <point x="573" y="293" type="curve"/>
+ <point x="333" y="1020" type="line"/>
+ <point x="20" y="1020" type="line"/>
+ <point x="97" y="864"/>
+ <point x="144" y="757"/>
+ <point x="180" y="665" type="curve" smooth="yes"/>
+ <point x="445" y="-18" type="line"/>
+ <point x="366" y="-209"/>
+ <point x="304" y="-242"/>
+ <point x="245" y="-242" type="curve" smooth="yes"/>
+ <point x="179" y="-242"/>
+ <point x="102" y="-202"/>
+ <point x="60" y="-167" type="curve"/>
+ <point x="-10" y="-385" type="line"/>
+ <point x="63" y="-439"/>
+ <point x="154" y="-470"/>
+ <point x="245" y="-470" type="curve" smooth="yes"/>
+ <point x="427" y="-470"/>
+ <point x="565" y="-387"/>
+ <point x="705" y="0" type="curve" smooth="yes"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/N_onB_reakingH_yphen.glif b/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/N_onB_reakingH_yphen.glif
new file mode 100644
index 0000000..7dc67c0
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/N_onB_reakingH_yphen.glif
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="NonBreakingHyphen" format="2">
+ <advance width="895"/>
+ <unicode hex="2011"/>
+ <anchor x="450" y="1100" name="U"/>
+ <outline>
+ <component base="HyphenMinus"/>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/N_umS_gn.glif b/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/N_umS_gn.glif
new file mode 100644
index 0000000..54b82cb
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/N_umS_gn.glif
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="NumSgn" format="2">
+ <advance width="1200"/>
+ <unicode hex="0023"/>
+ <outline>
+ <contour>
+ <point x="412" y="1360" type="line"/>
+ <point x="52" y="100" type="line"/>
+ <point x="272" y="100" type="line"/>
+ <point x="632" y="1360" type="line"/>
+ </contour>
+ <contour>
+ <point x="10" y="425" type="line"/>
+ <point x="1101" y="425" type="line"/>
+ <point x="1101" y="635" type="line"/>
+ <point x="10" y="635" type="line"/>
+ </contour>
+ <contour>
+ <point x="69" y="850" type="line"/>
+ <point x="1160" y="850" type="line"/>
+ <point x="1160" y="1060" type="line"/>
+ <point x="69" y="1060" type="line"/>
+ </contour>
+ <contour>
+ <point x="887" y="1360" type="line"/>
+ <point x="527" y="100" type="line"/>
+ <point x="747" y="100" type="line"/>
+ <point x="1107" y="1360" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/P_ercentS_gn.glif b/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/P_ercentS_gn.glif
new file mode 100644
index 0000000..5017543
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/P_ercentS_gn.glif
@@ -0,0 +1,69 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="PercentSgn" format="2">
+ <advance width="1565"/>
+ <unicode hex="0025"/>
+ <outline>
+ <contour>
+ <point x="1073" y="1480" type="line"/>
+ <point x="291" y="-25" type="line"/>
+ <point x="499" y="-25" type="line"/>
+ <point x="1279" y="1480" type="line"/>
+ </contour>
+ <contour>
+ <point x="511" y="1076" type="curve" smooth="yes"/>
+ <point x="511" y="892"/>
+ <point x="470" y="815"/>
+ <point x="394" y="815" type="curve" smooth="yes"/>
+ <point x="315" y="815"/>
+ <point x="279" y="891"/>
+ <point x="279" y="1091" type="curve" smooth="yes"/>
+ <point x="279" y="1275"/>
+ <point x="317" y="1350"/>
+ <point x="394" y="1350" type="curve" smooth="yes"/>
+ <point x="475" y="1350"/>
+ <point x="511" y="1276"/>
+ </contour>
+ <contour>
+ <point x="721" y="1089" type="curve" smooth="yes"/>
+ <point x="721" y="1362"/>
+ <point x="584" y="1480"/>
+ <point x="399" y="1480" type="curve" smooth="yes"/>
+ <point x="215" y="1480"/>
+ <point x="69" y="1360"/>
+ <point x="69" y="1078" type="curve" smooth="yes"/>
+ <point x="69" y="796"/>
+ <point x="205" y="685"/>
+ <point x="390" y="685" type="curve" smooth="yes"/>
+ <point x="575" y="685"/>
+ <point x="721" y="794"/>
+ </contour>
+ <contour>
+ <point x="1286" y="366" type="curve" smooth="yes"/>
+ <point x="1286" y="182"/>
+ <point x="1245" y="105"/>
+ <point x="1169" y="105" type="curve" smooth="yes"/>
+ <point x="1090" y="105"/>
+ <point x="1054" y="181"/>
+ <point x="1054" y="381" type="curve" smooth="yes"/>
+ <point x="1054" y="565"/>
+ <point x="1092" y="640"/>
+ <point x="1169" y="640" type="curve" smooth="yes"/>
+ <point x="1250" y="640"/>
+ <point x="1286" y="566"/>
+ </contour>
+ <contour>
+ <point x="1496" y="379" type="curve" smooth="yes"/>
+ <point x="1496" y="652"/>
+ <point x="1359" y="770"/>
+ <point x="1174" y="770" type="curve" smooth="yes"/>
+ <point x="990" y="770"/>
+ <point x="844" y="650"/>
+ <point x="844" y="368" type="curve" smooth="yes"/>
+ <point x="844" y="86"/>
+ <point x="980" y="-25"/>
+ <point x="1165" y="-25" type="curve" smooth="yes"/>
+ <point x="1350" y="-25"/>
+ <point x="1496" y="84"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/P_lusS_gn.glif b/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/P_lusS_gn.glif
new file mode 100644
index 0000000..a1a4c93
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/P_lusS_gn.glif
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="PlusSgn" format="2">
+ <advance width="1200"/>
+ <unicode hex="002B"/>
+ <outline>
+ <contour>
+ <point x="495" y="1180" type="line"/>
+ <point x="495" y="285" type="line"/>
+ <point x="705" y="285" type="line"/>
+ <point x="705" y="1180" type="line"/>
+ </contour>
+ <contour>
+ <point x="155" y="630" type="line"/>
+ <point x="1045" y="630" type="line"/>
+ <point x="1045" y="840" type="line"/>
+ <point x="155" y="840" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/Q_stnM_rk.glif b/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/Q_stnM_rk.glif
new file mode 100644
index 0000000..c9bbb28
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/Q_stnM_rk.glif
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="QstnMrk" format="2">
+ <advance width="1090"/>
+ <unicode hex="003F"/>
+ <outline>
+ <contour>
+ <point x="640" y="500" type="line"/>
+ <point x="640" y="671"/>
+ <point x="668" y="805"/>
+ <point x="767" y="956" type="curve" smooth="yes"/>
+ <point x="837" y="1063"/>
+ <point x="900" y="1117"/>
+ <point x="900" y="1220" type="curve" smooth="yes"/>
+ <point x="900" y="1402"/>
+ <point x="757" y="1540"/>
+ <point x="500" y="1540" type="curve" smooth="yes"/>
+ <point x="355" y="1540"/>
+ <point x="206" y="1470"/>
+ <point x="140" y="1407" type="curve"/>
+ <point x="185" y="1168" type="line"/>
+ <point x="261" y="1247"/>
+ <point x="372" y="1295"/>
+ <point x="472" y="1295" type="curve" smooth="yes"/>
+ <point x="569" y="1295"/>
+ <point x="615" y="1249"/>
+ <point x="615" y="1190" type="curve" smooth="yes"/>
+ <point x="615" y="1139"/>
+ <point x="565" y="1096"/>
+ <point x="495" y="980" type="curve" smooth="yes"/>
+ <point x="434" y="879"/>
+ <point x="375" y="710"/>
+ <point x="375" y="500" type="curve"/>
+ </contour>
+ <contour>
+ <point x="335" y="150" type="curve" smooth="yes"/>
+ <point x="335" y="46"/>
+ <point x="409" y="-25"/>
+ <point x="510" y="-25" type="curve" smooth="yes"/>
+ <point x="612" y="-25"/>
+ <point x="685" y="46"/>
+ <point x="685" y="150" type="curve" smooth="yes"/>
+ <point x="685" y="252"/>
+ <point x="612" y="325"/>
+ <point x="510" y="325" type="curve" smooth="yes"/>
+ <point x="409" y="325"/>
+ <point x="335" y="252"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/Q_uotM_rk.glif b/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/Q_uotM_rk.glif
new file mode 100644
index 0000000..794a655
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/Q_uotM_rk.glif
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="QuotMrk" format="2">
+ <advance width="1085"/>
+ <unicode hex="0022"/>
+ <outline>
+ <contour>
+ <point x="450" y="1045" type="line"/>
+ <point x="455" y="1186"/>
+ <point x="456" y="1339"/>
+ <point x="485" y="1585" type="curve"/>
+ <point x="240" y="1585" type="line"/>
+ <point x="271" y="1339"/>
+ <point x="271" y="1186"/>
+ <point x="275" y="1045" type="curve"/>
+ </contour>
+ <contour>
+ <point x="810" y="1045" type="line"/>
+ <point x="815" y="1186"/>
+ <point x="816" y="1339"/>
+ <point x="845" y="1585" type="curve"/>
+ <point x="600" y="1585" type="line"/>
+ <point x="631" y="1339"/>
+ <point x="631" y="1186"/>
+ <point x="635" y="1045" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/R_everseS_olidus.glif b/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/R_everseS_olidus.glif
new file mode 100644
index 0000000..799c999
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/R_everseS_olidus.glif
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="ReverseSolidus" format="2">
+ <advance width="1080"/>
+ <unicode hex="005C"/>
+ <outline>
+ <contour>
+ <point x="10" y="1600" type="line"/>
+ <point x="840" y="-245" type="line"/>
+ <point x="1070" y="-245" type="line"/>
+ <point x="240" y="1600" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/R_tC_urlyB_rac.glif b/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/R_tC_urlyB_rac.glif
new file mode 100644
index 0000000..48383fb
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/R_tC_urlyB_rac.glif
@@ -0,0 +1,47 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="RtCurlyBrac" format="2">
+ <advance width="1040"/>
+ <unicode hex="007D"/>
+ <outline>
+ <contour>
+ <point x="180" y="-410" type="line"/>
+ <point x="316" y="-383"/>
+ <point x="520" y="-333"/>
+ <point x="570" y="-285" type="curve" smooth="yes"/>
+ <point x="645" y="-213"/>
+ <point x="633" y="378"/>
+ <point x="655" y="410" type="curve" smooth="yes"/>
+ <point x="685" y="453"/>
+ <point x="855" y="560"/>
+ <point x="855" y="615" type="curve" smooth="yes"/>
+ <point x="855" y="670"/>
+ <point x="685" y="777"/>
+ <point x="655" y="820" type="curve" smooth="yes"/>
+ <point x="633" y="852"/>
+ <point x="644" y="1442"/>
+ <point x="570" y="1515" type="curve" smooth="yes"/>
+ <point x="523" y="1562"/>
+ <point x="333" y="1613"/>
+ <point x="205" y="1640" type="curve"/>
+ <point x="155" y="1409" type="line"/>
+ <point x="218" y="1390"/>
+ <point x="323" y="1351"/>
+ <point x="340" y="1330" type="curve" smooth="yes"/>
+ <point x="375" y="1289"/>
+ <point x="364" y="820"/>
+ <point x="382" y="785" type="curve" smooth="yes"/>
+ <point x="405" y="740"/>
+ <point x="542" y="650"/>
+ <point x="542" y="615" type="curve" smooth="yes"/>
+ <point x="542" y="580"/>
+ <point x="404" y="491"/>
+ <point x="380" y="445" type="curve" smooth="yes"/>
+ <point x="362" y="411"/>
+ <point x="375" y="-60"/>
+ <point x="340" y="-100" type="curve" smooth="yes"/>
+ <point x="321" y="-122"/>
+ <point x="197" y="-160"/>
+ <point x="130" y="-179" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/R_tP_aren.glif b/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/R_tP_aren.glif
new file mode 100644
index 0000000..ae49fca
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/R_tP_aren.glif
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="RtParen" format="2">
+ <advance width="860"/>
+ <unicode hex="0029"/>
+ <outline>
+ <contour>
+ <point x="185" y="1455" type="line"/>
+ <point x="395" y="1261"/>
+ <point x="485" y="938"/>
+ <point x="485" y="635" type="curve" smooth="yes"/>
+ <point x="485" y="335"/>
+ <point x="399" y="11"/>
+ <point x="175" y="-240" type="curve"/>
+ <point x="326" y="-410" type="line"/>
+ <point x="601" y="-125"/>
+ <point x="746" y="218"/>
+ <point x="746" y="625" type="curve" smooth="yes"/>
+ <point x="746" y="1062"/>
+ <point x="571" y="1444"/>
+ <point x="306" y="1640" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/R_tS_qrB_rac.glif b/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/R_tS_qrB_rac.glif
new file mode 100644
index 0000000..325e575
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/R_tS_qrB_rac.glif
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="RtSqrBrac" format="2">
+ <advance width="850"/>
+ <unicode hex="005D"/>
+ <outline>
+ <contour>
+ <point x="660" y="-410" type="line"/>
+ <point x="660" y="1600" type="line"/>
+ <point x="140" y="1600" type="line"/>
+ <point x="140" y="1390" type="line"/>
+ <point x="380" y="1390" type="line"/>
+ <point x="380" y="-200" type="line"/>
+ <point x="140" y="-200" type="line"/>
+ <point x="140" y="-410" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/S_emicolon.glif b/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/S_emicolon.glif
new file mode 100644
index 0000000..ae95657
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/S_emicolon.glif
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Semicolon" format="2">
+ <advance width="710"/>
+ <unicode hex="003B"/>
+ <outline>
+ <contour>
+ <point x="200" y="750" type="curve" smooth="yes"/>
+ <point x="200" y="646"/>
+ <point x="274" y="575"/>
+ <point x="375" y="575" type="curve" smooth="yes"/>
+ <point x="477" y="575"/>
+ <point x="550" y="646"/>
+ <point x="550" y="750" type="curve" smooth="yes"/>
+ <point x="550" y="852"/>
+ <point x="477" y="925"/>
+ <point x="375" y="925" type="curve" smooth="yes"/>
+ <point x="274" y="925"/>
+ <point x="200" y="852"/>
+ </contour>
+ <contour>
+ <point x="185" y="50" type="line"/>
+ <point x="345" y="50" type="line"/>
+ <point x="345" y="-34"/>
+ <point x="290" y="-153"/>
+ <point x="185" y="-265" type="curve"/>
+ <point x="330" y="-335" type="line"/>
+ <point x="454" y="-228"/>
+ <point x="560" y="-49"/>
+ <point x="560" y="130" type="curve" smooth="yes"/>
+ <point x="560" y="254"/>
+ <point x="489" y="340"/>
+ <point x="375" y="340" type="curve" smooth="yes"/>
+ <point x="262" y="340"/>
+ <point x="185" y="255"/>
+ <point x="185" y="180" type="curve" smooth="yes"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/S_olidus.glif b/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/S_olidus.glif
new file mode 100644
index 0000000..1e33c05
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/S_olidus.glif
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Solidus" format="2">
+ <advance width="1080"/>
+ <unicode hex="002F"/>
+ <outline>
+ <contour>
+ <point x="840" y="1600" type="line"/>
+ <point x="10" y="-245" type="line"/>
+ <point x="240" y="-245" type="line"/>
+ <point x="1070" y="1600" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/S_pace.glif b/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/S_pace.glif
new file mode 100644
index 0000000..ef0bed7
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/S_pace.glif
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Space" format="2">
+ <advance width="550"/>
+ <unicode hex="0020"/>
+ <outline/>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/T_ilde.glif b/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/T_ilde.glif
new file mode 100644
index 0000000..ec9fc73
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/T_ilde.glif
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Tilde" format="2">
+ <advance width="1115"/>
+ <unicode hex="007E"/>
+ <outline>
+ <contour>
+ <point x="165" y="345" type="line"/>
+ <point x="170" y="394"/>
+ <point x="202" y="435"/>
+ <point x="280" y="435" type="curve" smooth="yes"/>
+ <point x="435" y="435"/>
+ <point x="615" y="330"/>
+ <point x="825" y="330" type="curve" smooth="yes"/>
+ <point x="984" y="330"/>
+ <point x="1080" y="512"/>
+ <point x="1080" y="640" type="curve"/>
+ <point x="935" y="640" type="line"/>
+ <point x="928" y="594"/>
+ <point x="898" y="540"/>
+ <point x="815" y="540" type="curve" smooth="yes"/>
+ <point x="599" y="540"/>
+ <point x="461" y="645"/>
+ <point x="260" y="645" type="curve" smooth="yes"/>
+ <point x="104" y="645"/>
+ <point x="20" y="467"/>
+ <point x="20" y="345" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/V_ertL_ine.glif b/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/V_ertL_ine.glif
new file mode 100644
index 0000000..d7caa84
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/V_ertL_ine.glif
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="VertLine" format="2">
+ <advance width="690"/>
+ <unicode hex="007C"/>
+ <outline>
+ <contour>
+ <point x="240" y="1600" type="line"/>
+ <point x="240" y="-390" type="line"/>
+ <point x="450" y="-390" type="line"/>
+ <point x="450" y="1600" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/_notdef.glif b/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/_notdef.glif
new file mode 100644
index 0000000..a3e9354
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/_notdef.glif
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name=".notdef" format="2">
+ <advance width="1400"/>
+ <outline>
+ <contour>
+ <point x="100" y="0" type="line"/>
+ <point x="1300" y="0" type="line"/>
+ <point x="1300" y="1800" type="line"/>
+ <point x="100" y="1800" type="line"/>
+ </contour>
+ <contour>
+ <point x="150" y="1750" type="line"/>
+ <point x="1250" y="1750" type="line"/>
+ <point x="1250" y="50" type="line"/>
+ <point x="150" y="50" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/_null.glif b/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/_null.glif
new file mode 100644
index 0000000..0b9caa6
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/_null.glif
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name=".null" format="2">
+ <outline/>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/contents.plist b/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/contents.plist
new file mode 100644
index 0000000..de3c0b3
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/contents.plist
@@ -0,0 +1,234 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>.notdef</key>
+ <string>_notdef.glif</string>
+ <key>.null</key>
+ <string>_null.glif</string>
+ <key>Ampersand</key>
+ <string>A_mpersand.glif</string>
+ <key>Apos</key>
+ <string>A_pos.glif</string>
+ <key>Asterisk</key>
+ <string>A_sterisk.glif</string>
+ <key>AtSgn</key>
+ <string>A_tS_gn.glif</string>
+ <key>CircumAccent</key>
+ <string>C_ircumA_ccent.glif</string>
+ <key>Colon</key>
+ <string>C_olon.glif</string>
+ <key>CombAcute</key>
+ <string>C_ombA_cute.glif</string>
+ <key>CombCircum</key>
+ <string>C_ombC_ircum.glif</string>
+ <key>CombDiaer</key>
+ <string>C_ombD_iaer.glif</string>
+ <key>CombGrave</key>
+ <string>C_ombG_rave.glif</string>
+ <key>CombRingAbv</key>
+ <string>C_ombR_ingA_bv.glif</string>
+ <key>CombTilde</key>
+ <string>C_ombT_ilde.glif</string>
+ <key>Comma</key>
+ <string>C_omma.glif</string>
+ <key>DigitEight</key>
+ <string>D_igitE_ight.glif</string>
+ <key>DigitFive</key>
+ <string>D_igitF_ive.glif</string>
+ <key>DigitFour</key>
+ <string>D_igitF_our.glif</string>
+ <key>DigitNine</key>
+ <string>D_igitN_ine.glif</string>
+ <key>DigitOne</key>
+ <string>D_igitO_ne.glif</string>
+ <key>DigitSeven</key>
+ <string>D_igitS_even.glif</string>
+ <key>DigitSix</key>
+ <string>D_igitS_ix.glif</string>
+ <key>DigitThree</key>
+ <string>D_igitT_hree.glif</string>
+ <key>DigitTwo</key>
+ <string>D_igitT_wo.glif</string>
+ <key>DigitZero</key>
+ <string>D_igitZ_ero.glif</string>
+ <key>DollarSgn</key>
+ <string>D_ollarS_gn.glif</string>
+ <key>DottedCirc</key>
+ <string>D_ottedC_irc.glif</string>
+ <key>EqSgn</key>
+ <string>E_qS_gn.glif</string>
+ <key>ExclamationMrk</key>
+ <string>E_xclamationM_rk.glif</string>
+ <key>FullStop</key>
+ <string>F_ullS_top.glif</string>
+ <key>GTSgn</key>
+ <string>G_T_S_gn.glif</string>
+ <key>GraveAccent</key>
+ <string>G_raveA_ccent.glif</string>
+ <key>Hyphen</key>
+ <string>H_yphen.glif</string>
+ <key>HyphenMinus</key>
+ <string>H_yphenM_inus.glif</string>
+ <key>Hyphen_Soft</key>
+ <string>H_yphen_S_oft.glif</string>
+ <key>LTSgn</key>
+ <string>L_T_S_gn.glif</string>
+ <key>LftCurlyBrac</key>
+ <string>L_ftC_urlyB_rac.glif</string>
+ <key>LftParen</key>
+ <string>L_ftP_aren.glif</string>
+ <key>LftSqrBrac</key>
+ <string>L_ftS_qrB_rac.glif</string>
+ <key>LowLine</key>
+ <string>L_owL_ine.glif</string>
+ <key>LtnCapA</key>
+ <string>L_tnC_apA_.glif</string>
+ <key>LtnCapA.alt</key>
+ <string>L_tnC_apA_.alt.glif</string>
+ <key>LtnCapADiaer</key>
+ <string>L_tnC_apA_D_iaer.glif</string>
+ <key>LtnCapB</key>
+ <string>L_tnC_apB_.glif</string>
+ <key>LtnCapC</key>
+ <string>L_tnC_apC_.glif</string>
+ <key>LtnCapD</key>
+ <string>L_tnC_apD_.glif</string>
+ <key>LtnCapE</key>
+ <string>L_tnC_apE_.glif</string>
+ <key>LtnCapF</key>
+ <string>L_tnC_apF_.glif</string>
+ <key>LtnCapG</key>
+ <string>L_tnC_apG_.glif</string>
+ <key>LtnCapH</key>
+ <string>L_tnC_apH_.glif</string>
+ <key>LtnCapI</key>
+ <string>L_tnC_apI_.glif</string>
+ <key>LtnCapJ</key>
+ <string>L_tnC_apJ_.glif</string>
+ <key>LtnCapK</key>
+ <string>L_tnC_apK_.glif</string>
+ <key>LtnCapL</key>
+ <string>L_tnC_apL_.glif</string>
+ <key>LtnCapM</key>
+ <string>L_tnC_apM_.glif</string>
+ <key>LtnCapN</key>
+ <string>L_tnC_apN_.glif</string>
+ <key>LtnCapO</key>
+ <string>L_tnC_apO_.glif</string>
+ <key>LtnCapP</key>
+ <string>L_tnC_apP_.glif</string>
+ <key>LtnCapQ</key>
+ <string>L_tnC_apQ_.glif</string>
+ <key>LtnCapR</key>
+ <string>L_tnC_apR_.glif</string>
+ <key>LtnCapS</key>
+ <string>L_tnC_apS_.glif</string>
+ <key>LtnCapT</key>
+ <string>L_tnC_apT_.glif</string>
+ <key>LtnCapU</key>
+ <string>L_tnC_apU_.glif</string>
+ <key>LtnCapV</key>
+ <string>L_tnC_apV_.glif</string>
+ <key>LtnCapW</key>
+ <string>L_tnC_apW_.glif</string>
+ <key>LtnCapX</key>
+ <string>L_tnC_apX_.glif</string>
+ <key>LtnCapY</key>
+ <string>L_tnC_apY_.glif</string>
+ <key>LtnSmA</key>
+ <string>L_tnS_mA_.glif</string>
+ <key>LtnSmAAcute</key>
+ <string>L_tnS_mA_A_cute.glif</string>
+ <key>LtnSmACircum</key>
+ <string>L_tnS_mA_C_ircum.glif</string>
+ <key>LtnSmADiaer</key>
+ <string>L_tnS_mA_D_iaer.glif</string>
+ <key>LtnSmAGrave</key>
+ <string>L_tnS_mA_G_rave.glif</string>
+ <key>LtnSmARingAbv</key>
+ <string>L_tnS_mA_R_ingA_bv.glif</string>
+ <key>LtnSmATilde</key>
+ <string>L_tnS_mA_T_ilde.glif</string>
+ <key>LtnSmB</key>
+ <string>L_tnS_mB_.glif</string>
+ <key>LtnSmC</key>
+ <string>L_tnS_mC_.glif</string>
+ <key>LtnSmD</key>
+ <string>L_tnS_mD_.glif</string>
+ <key>LtnSmE</key>
+ <string>L_tnS_mE_.glif</string>
+ <key>LtnSmF</key>
+ <string>L_tnS_mF_.glif</string>
+ <key>LtnSmG</key>
+ <string>L_tnS_mG_.glif</string>
+ <key>LtnSmH</key>
+ <string>L_tnS_mH_.glif</string>
+ <key>LtnSmI</key>
+ <string>L_tnS_mI_.glif</string>
+ <key>LtnSmJ</key>
+ <string>L_tnS_mJ_.glif</string>
+ <key>LtnSmK</key>
+ <string>L_tnS_mK_.glif</string>
+ <key>LtnSmL</key>
+ <string>L_tnS_mL_.glif</string>
+ <key>LtnSmM</key>
+ <string>L_tnS_mM_.glif</string>
+ <key>LtnSmN</key>
+ <string>L_tnS_mN_.glif</string>
+ <key>LtnSmO</key>
+ <string>L_tnS_mO_.glif</string>
+ <key>LtnSmP</key>
+ <string>L_tnS_mP_.glif</string>
+ <key>LtnSmQ</key>
+ <string>L_tnS_mQ_.glif</string>
+ <key>LtnSmR</key>
+ <string>L_tnS_mR_.glif</string>
+ <key>LtnSmS</key>
+ <string>L_tnS_mS_.glif</string>
+ <key>LtnSmT</key>
+ <string>L_tnS_mT_.glif</string>
+ <key>LtnSmU</key>
+ <string>L_tnS_mU_.glif</string>
+ <key>LtnSmV</key>
+ <string>L_tnS_mV_.glif</string>
+ <key>LtnSmW</key>
+ <string>L_tnS_mW_.glif</string>
+ <key>LtnSmX</key>
+ <string>L_tnS_mX_.glif</string>
+ <key>LtnSmY</key>
+ <string>L_tnS_mY_.glif</string>
+ <key>NonBreakingHyphen</key>
+ <string>N_onB_reakingH_yphen.glif</string>
+ <key>NumSgn</key>
+ <string>N_umS_gn.glif</string>
+ <key>PercentSgn</key>
+ <string>P_ercentS_gn.glif</string>
+ <key>PlusSgn</key>
+ <string>P_lusS_gn.glif</string>
+ <key>QstnMrk</key>
+ <string>Q_stnM_rk.glif</string>
+ <key>QuotMrk</key>
+ <string>Q_uotM_rk.glif</string>
+ <key>ReverseSolidus</key>
+ <string>R_everseS_olidus.glif</string>
+ <key>RtCurlyBrac</key>
+ <string>R_tC_urlyB_rac.glif</string>
+ <key>RtParen</key>
+ <string>R_tP_aren.glif</string>
+ <key>RtSqrBrac</key>
+ <string>R_tS_qrB_rac.glif</string>
+ <key>Semicolon</key>
+ <string>S_emicolon.glif</string>
+ <key>Solidus</key>
+ <string>S_olidus.glif</string>
+ <key>Space</key>
+ <string>S_pace.glif</string>
+ <key>Tilde</key>
+ <string>T_ilde.glif</string>
+ <key>VertLine</key>
+ <string>V_ertL_ine.glif</string>
+ <key>nonmarkingreturn</key>
+ <string>nonmarkingreturn.glif</string>
+</dict>
+</plist>
diff --git a/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/nonmarkingreturn.glif b/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/nonmarkingreturn.glif
new file mode 100644
index 0000000..ee41448
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Bold.ufo/glyphs/nonmarkingreturn.glif
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="nonmarkingreturn" format="2">
+ <advance width="1024"/>
+ <outline/>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Bold.ufo/layercontents.plist b/tests/input/font-psf-test/source/PsfTest-Bold.ufo/layercontents.plist
new file mode 100644
index 0000000..42b7482
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Bold.ufo/layercontents.plist
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<array>
+ <array>
+ <string>public.default</string>
+ <string>glyphs</string>
+ </array>
+</array>
+</plist>
diff --git a/tests/input/font-psf-test/source/PsfTest-Bold.ufo/lib.plist b/tests/input/font-psf-test/source/PsfTest-Bold.ufo/lib.plist
new file mode 100644
index 0000000..4fe2e05
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Bold.ufo/lib.plist
@@ -0,0 +1,535 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>com.schriftgestaltung.Glyphs.fontUserData</key>
+ <dict/>
+ <key>com.schriftgestaltung.appVersion</key>
+ <string>1161</string>
+ <key>com.schriftgestaltung.customParameter.GSFont.DisplayStrings</key>
+ <string/>
+ <key>com.schriftgestaltung.customParameter.GSFont.disablesAutomaticAlignment</key>
+ <true/>
+ <key>com.schriftgestaltung.customParameter.GSFont.disablesLastChange</key>
+ <true/>
+ <key>com.schriftgestaltung.customParameter.GSFont.useNiceNames</key>
+ <integer>0</integer>
+ <key>com.schriftgestaltung.customParameter.GSFontMaster.customValue</key>
+ <integer>0</integer>
+ <key>com.schriftgestaltung.customParameter.GSFontMaster.customValue1</key>
+ <integer>0</integer>
+ <key>com.schriftgestaltung.customParameter.GSFontMaster.customValue2</key>
+ <integer>0</integer>
+ <key>com.schriftgestaltung.customParameter.GSFontMaster.customValue3</key>
+ <integer>0</integer>
+ <key>com.schriftgestaltung.customParameter.GSFontMaster.iconName</key>
+ <string/>
+ <key>com.schriftgestaltung.customParameter.GSFontMaster.weightValue</key>
+ <integer>700</integer>
+ <key>com.schriftgestaltung.customParameter.GSFontMaster.widthValue</key>
+ <integer>100</integer>
+ <key>com.schriftgestaltung.disablesAutomaticAlignment</key>
+ <true/>
+ <key>com.schriftgestaltung.disablesLastChange</key>
+ <true/>
+ <key>com.schriftgestaltung.fontMasterOrder</key>
+ <integer>1</integer>
+ <key>com.schriftgestaltung.glyphOrder</key>
+ <array>
+ <string>.notdef</string>
+ <string>.null</string>
+ <string>nonmarkingreturn</string>
+ <string>Space</string>
+ <string>ExclamationMrk</string>
+ <string>QuotMrk</string>
+ <string>NumSgn</string>
+ <string>DollarSgn</string>
+ <string>PercentSgn</string>
+ <string>Ampersand</string>
+ <string>Apos</string>
+ <string>LftParen</string>
+ <string>RtParen</string>
+ <string>Asterisk</string>
+ <string>PlusSgn</string>
+ <string>Comma</string>
+ <string>HyphenMinus</string>
+ <string>FullStop</string>
+ <string>Solidus</string>
+ <string>DigitOne</string>
+ <string>DigitTwo</string>
+ <string>DigitThree</string>
+ <string>DigitFour</string>
+ <string>DigitFive</string>
+ <string>DigitSix</string>
+ <string>DigitSeven</string>
+ <string>DigitEight</string>
+ <string>DigitNine</string>
+ <string>Colon</string>
+ <string>Semicolon</string>
+ <string>LTSgn</string>
+ <string>EqSgn</string>
+ <string>GTSgn</string>
+ <string>QstnMrk</string>
+ <string>AtSgn</string>
+ <string>LtnCapA</string>
+ <string>LtnCapA.alt</string>
+ <string>LtnCapB</string>
+ <string>LtnCapC</string>
+ <string>LtnCapD</string>
+ <string>LtnCapE</string>
+ <string>LtnCapF</string>
+ <string>LtnCapG</string>
+ <string>LtnCapH</string>
+ <string>LtnCapI</string>
+ <string>LtnCapJ</string>
+ <string>LtnCapK</string>
+ <string>LtnCapL</string>
+ <string>LtnCapM</string>
+ <string>LtnCapN</string>
+ <string>LtnCapO</string>
+ <string>LtnCapP</string>
+ <string>LtnCapQ</string>
+ <string>LtnCapR</string>
+ <string>LtnCapS</string>
+ <string>LtnCapT</string>
+ <string>LtnCapU</string>
+ <string>LtnCapV</string>
+ <string>LtnCapW</string>
+ <string>LtnCapX</string>
+ <string>LtnCapY</string>
+ <string>LftSqrBrac</string>
+ <string>ReverseSolidus</string>
+ <string>RtSqrBrac</string>
+ <string>CircumAccent</string>
+ <string>LowLine</string>
+ <string>GraveAccent</string>
+ <string>LtnSmA</string>
+ <string>LtnSmB</string>
+ <string>LtnSmC</string>
+ <string>LtnSmD</string>
+ <string>LtnSmE</string>
+ <string>LtnSmF</string>
+ <string>LtnSmG</string>
+ <string>LtnSmH</string>
+ <string>LtnSmI</string>
+ <string>LtnSmJ</string>
+ <string>LtnSmK</string>
+ <string>LtnSmL</string>
+ <string>LtnSmM</string>
+ <string>LtnSmN</string>
+ <string>LtnSmO</string>
+ <string>LtnSmP</string>
+ <string>LtnSmQ</string>
+ <string>LtnSmR</string>
+ <string>LtnSmS</string>
+ <string>LtnSmT</string>
+ <string>LtnSmU</string>
+ <string>LtnSmV</string>
+ <string>LtnSmW</string>
+ <string>LtnSmX</string>
+ <string>LtnSmY</string>
+ <string>LftCurlyBrac</string>
+ <string>VertLine</string>
+ <string>RtCurlyBrac</string>
+ <string>Tilde</string>
+ <string>LtnCapADiaer</string>
+ <string>LtnSmAAcute</string>
+ <string>LtnSmAGrave</string>
+ <string>LtnSmACircum</string>
+ <string>LtnSmADiaer</string>
+ <string>LtnSmATilde</string>
+ <string>LtnSmARingAbv</string>
+ <string>DottedCirc</string>
+ <string>Hyphen</string>
+ <string>NonBreakingHyphen</string>
+ <string>Hyphen_Soft</string>
+ <string>CombAcute</string>
+ <string>CombGrave</string>
+ <string>CombCircum</string>
+ <string>CombTilde</string>
+ <string>CombDiaer</string>
+ <string>CombRingAbv</string>
+ </array>
+ <key>com.schriftgestaltung.keyboardIncrement</key>
+ <integer>1</integer>
+ <key>com.schriftgestaltung.weight</key>
+ <string>Bold</string>
+ <key>com.schriftgestaltung.weightValue</key>
+ <integer>700</integer>
+ <key>com.schriftgestaltung.width</key>
+ <string>Regular</string>
+ <key>com.schriftgestaltung.widthValue</key>
+ <integer>100</integer>
+ <key>org.sil.lcg.toneLetters</key>
+ <dict>
+ <key>contourWidth</key>
+ <integer>540</integer>
+ <key>dotSize</key>
+ <integer>280</integer>
+ <key>dotSpacing</key>
+ <integer>200</integer>
+ <key>glyphDepth</key>
+ <integer>-25</integer>
+ <key>glyphHeight</key>
+ <integer>1600</integer>
+ <key>italicAngle</key>
+ <integer>0</integer>
+ <key>marginDotLeft</key>
+ <integer>100</integer>
+ <key>marginDotRight</key>
+ <integer>140</integer>
+ <key>marginFlatLeft</key>
+ <integer>100</integer>
+ <key>marginFlatRight</key>
+ <integer>140</integer>
+ <key>marginPointLeft</key>
+ <integer>80</integer>
+ <key>marginPointRight</key>
+ <integer>120</integer>
+ <key>strokeThickness</key>
+ <integer>200</integer>
+ </dict>
+ <key>public.glyphOrder</key>
+ <array>
+ <string>.notdef</string>
+ <string>.null</string>
+ <string>nonmarkingreturn</string>
+ <string>Space</string>
+ <string>ExclamationMrk</string>
+ <string>QuotMrk</string>
+ <string>NumSgn</string>
+ <string>DollarSgn</string>
+ <string>PercentSgn</string>
+ <string>Ampersand</string>
+ <string>Apos</string>
+ <string>LftParen</string>
+ <string>RtParen</string>
+ <string>Asterisk</string>
+ <string>PlusSgn</string>
+ <string>Comma</string>
+ <string>HyphenMinus</string>
+ <string>FullStop</string>
+ <string>Solidus</string>
+ <string>DigitZero</string>
+ <string>DigitOne</string>
+ <string>DigitTwo</string>
+ <string>DigitThree</string>
+ <string>DigitFour</string>
+ <string>DigitFive</string>
+ <string>DigitSix</string>
+ <string>DigitSeven</string>
+ <string>DigitEight</string>
+ <string>DigitNine</string>
+ <string>Colon</string>
+ <string>Semicolon</string>
+ <string>LTSgn</string>
+ <string>EqSgn</string>
+ <string>GTSgn</string>
+ <string>QstnMrk</string>
+ <string>AtSgn</string>
+ <string>LtnCapA</string>
+ <string>LtnCapA.alt</string>
+ <string>LtnCapB</string>
+ <string>LtnCapC</string>
+ <string>LtnCapD</string>
+ <string>LtnCapE</string>
+ <string>LtnCapF</string>
+ <string>LtnCapG</string>
+ <string>LtnCapH</string>
+ <string>LtnCapI</string>
+ <string>LtnCapJ</string>
+ <string>LtnCapK</string>
+ <string>LtnCapL</string>
+ <string>LtnCapM</string>
+ <string>LtnCapN</string>
+ <string>LtnCapO</string>
+ <string>LtnCapP</string>
+ <string>LtnCapQ</string>
+ <string>LtnCapR</string>
+ <string>LtnCapS</string>
+ <string>LtnCapT</string>
+ <string>LtnCapU</string>
+ <string>LtnCapV</string>
+ <string>LtnCapW</string>
+ <string>LtnCapX</string>
+ <string>LtnCapY</string>
+ <string>LftSqrBrac</string>
+ <string>ReverseSolidus</string>
+ <string>RtSqrBrac</string>
+ <string>CircumAccent</string>
+ <string>LowLine</string>
+ <string>GraveAccent</string>
+ <string>LtnSmA</string>
+ <string>LtnSmB</string>
+ <string>LtnSmC</string>
+ <string>LtnSmD</string>
+ <string>LtnSmE</string>
+ <string>LtnSmF</string>
+ <string>LtnSmG</string>
+ <string>LtnSmH</string>
+ <string>LtnSmI</string>
+ <string>LtnSmJ</string>
+ <string>LtnSmK</string>
+ <string>LtnSmL</string>
+ <string>LtnSmM</string>
+ <string>LtnSmN</string>
+ <string>LtnSmO</string>
+ <string>LtnSmP</string>
+ <string>LtnSmQ</string>
+ <string>LtnSmR</string>
+ <string>LtnSmS</string>
+ <string>LtnSmT</string>
+ <string>LtnSmU</string>
+ <string>LtnSmV</string>
+ <string>LtnSmW</string>
+ <string>LtnSmX</string>
+ <string>LtnSmY</string>
+ <string>LftCurlyBrac</string>
+ <string>VertLine</string>
+ <string>RtCurlyBrac</string>
+ <string>Tilde</string>
+ <string>LtnCapADiaer</string>
+ <string>LtnSmAAcute</string>
+ <string>LtnSmAGrave</string>
+ <string>LtnSmACircum</string>
+ <string>LtnSmADiaer</string>
+ <string>LtnSmATilde</string>
+ <string>LtnSmARingAbv</string>
+ <string>DottedCirc</string>
+ <string>Hyphen</string>
+ <string>NonBreakingHyphen</string>
+ <string>Hyphen_Soft</string>
+ <string>CombAcute</string>
+ <string>CombGrave</string>
+ <string>CombCircum</string>
+ <string>CombTilde</string>
+ <string>CombDiaer</string>
+ <string>CombRingAbv</string>
+ </array>
+ <key>public.postscriptNames</key>
+ <dict>
+ <key>Ampersand</key>
+ <string>ampersand</string>
+ <key>Apos</key>
+ <string>quotesingle</string>
+ <key>Asterisk</key>
+ <string>asterisk</string>
+ <key>AtSgn</key>
+ <string>at</string>
+ <key>CircumAccent</key>
+ <string>asciicircum</string>
+ <key>Colon</key>
+ <string>colon</string>
+ <key>CombAcute</key>
+ <string>acutecomb</string>
+ <key>CombCircum</key>
+ <string>uni0302</string>
+ <key>CombDiaer</key>
+ <string>uni0308</string>
+ <key>CombGrave</key>
+ <string>gravecomb</string>
+ <key>CombRingAbv</key>
+ <string>uni030A</string>
+ <key>CombTilde</key>
+ <string>tildecomb</string>
+ <key>Comma</key>
+ <string>comma</string>
+ <key>DigitEight</key>
+ <string>eight</string>
+ <key>DigitFive</key>
+ <string>five</string>
+ <key>DigitFour</key>
+ <string>four</string>
+ <key>DigitNine</key>
+ <string>nine</string>
+ <key>DigitOne</key>
+ <string>one</string>
+ <key>DigitSeven</key>
+ <string>seven</string>
+ <key>DigitSix</key>
+ <string>six</string>
+ <key>DigitThree</key>
+ <string>three</string>
+ <key>DigitTwo</key>
+ <string>two</string>
+ <key>DigitZero</key>
+ <string>zero</string>
+ <key>DollarSgn</key>
+ <string>dollar</string>
+ <key>DottedCirc</key>
+ <string>uni25CC</string>
+ <key>EqSgn</key>
+ <string>equal</string>
+ <key>ExclamationMrk</key>
+ <string>exclam</string>
+ <key>FullStop</key>
+ <string>period</string>
+ <key>GTSgn</key>
+ <string>greater</string>
+ <key>GraveAccent</key>
+ <string>grave</string>
+ <key>Hyphen</key>
+ <string>uni2010</string>
+ <key>HyphenMinus</key>
+ <string>hyphen</string>
+ <key>Hyphen_Soft</key>
+ <string>uni00AD</string>
+ <key>LTSgn</key>
+ <string>less</string>
+ <key>LftCurlyBrac</key>
+ <string>braceleft</string>
+ <key>LftParen</key>
+ <string>parenleft</string>
+ <key>LftSqrBrac</key>
+ <string>bracketleft</string>
+ <key>LowLine</key>
+ <string>underscore</string>
+ <key>LtnCapA</key>
+ <string>A</string>
+ <key>LtnCapA.alt</key>
+ <string>A</string>
+ <key>LtnCapADiaer</key>
+ <string>Adieresis</string>
+ <key>LtnCapB</key>
+ <string>B</string>
+ <key>LtnCapC</key>
+ <string>C</string>
+ <key>LtnCapD</key>
+ <string>D</string>
+ <key>LtnCapE</key>
+ <string>E</string>
+ <key>LtnCapF</key>
+ <string>F</string>
+ <key>LtnCapG</key>
+ <string>G</string>
+ <key>LtnCapH</key>
+ <string>H</string>
+ <key>LtnCapI</key>
+ <string>I</string>
+ <key>LtnCapJ</key>
+ <string>J</string>
+ <key>LtnCapK</key>
+ <string>K</string>
+ <key>LtnCapL</key>
+ <string>L</string>
+ <key>LtnCapM</key>
+ <string>M</string>
+ <key>LtnCapN</key>
+ <string>N</string>
+ <key>LtnCapO</key>
+ <string>O</string>
+ <key>LtnCapP</key>
+ <string>P</string>
+ <key>LtnCapQ</key>
+ <string>Q</string>
+ <key>LtnCapR</key>
+ <string>R</string>
+ <key>LtnCapS</key>
+ <string>S</string>
+ <key>LtnCapT</key>
+ <string>T</string>
+ <key>LtnCapU</key>
+ <string>U</string>
+ <key>LtnCapV</key>
+ <string>V</string>
+ <key>LtnCapW</key>
+ <string>W</string>
+ <key>LtnCapX</key>
+ <string>X</string>
+ <key>LtnCapY</key>
+ <string>Y</string>
+ <key>LtnSmA</key>
+ <string>a</string>
+ <key>LtnSmAAcute</key>
+ <string>aacute</string>
+ <key>LtnSmACircum</key>
+ <string>acircumflex</string>
+ <key>LtnSmADiaer</key>
+ <string>adieresis</string>
+ <key>LtnSmAGrave</key>
+ <string>agrave</string>
+ <key>LtnSmARingAbv</key>
+ <string>aring</string>
+ <key>LtnSmATilde</key>
+ <string>atilde</string>
+ <key>LtnSmB</key>
+ <string>b</string>
+ <key>LtnSmC</key>
+ <string>c</string>
+ <key>LtnSmD</key>
+ <string>d</string>
+ <key>LtnSmE</key>
+ <string>e</string>
+ <key>LtnSmF</key>
+ <string>f</string>
+ <key>LtnSmG</key>
+ <string>g</string>
+ <key>LtnSmH</key>
+ <string>h</string>
+ <key>LtnSmI</key>
+ <string>i</string>
+ <key>LtnSmJ</key>
+ <string>j</string>
+ <key>LtnSmK</key>
+ <string>k</string>
+ <key>LtnSmL</key>
+ <string>l</string>
+ <key>LtnSmM</key>
+ <string>m</string>
+ <key>LtnSmN</key>
+ <string>n</string>
+ <key>LtnSmO</key>
+ <string>o</string>
+ <key>LtnSmP</key>
+ <string>p</string>
+ <key>LtnSmQ</key>
+ <string>q</string>
+ <key>LtnSmR</key>
+ <string>r</string>
+ <key>LtnSmS</key>
+ <string>s</string>
+ <key>LtnSmT</key>
+ <string>t</string>
+ <key>LtnSmU</key>
+ <string>u</string>
+ <key>LtnSmV</key>
+ <string>v</string>
+ <key>LtnSmW</key>
+ <string>w</string>
+ <key>LtnSmX</key>
+ <string>x</string>
+ <key>LtnSmY</key>
+ <string>y</string>
+ <key>NonBreakingHyphen</key>
+ <string>uni2011</string>
+ <key>NumSgn</key>
+ <string>numbersign</string>
+ <key>PercentSgn</key>
+ <string>percent</string>
+ <key>PlusSgn</key>
+ <string>plus</string>
+ <key>QstnMrk</key>
+ <string>question</string>
+ <key>QuotMrk</key>
+ <string>quotedbl</string>
+ <key>ReverseSolidus</key>
+ <string>backslash</string>
+ <key>RtCurlyBrac</key>
+ <string>braceright</string>
+ <key>RtParen</key>
+ <string>parenright</string>
+ <key>RtSqrBrac</key>
+ <string>bracketright</string>
+ <key>Semicolon</key>
+ <string>semicolon</string>
+ <key>Solidus</key>
+ <string>slash</string>
+ <key>Space</key>
+ <string>space</string>
+ <key>Tilde</key>
+ <string>asciitilde</string>
+ <key>VertLine</key>
+ <string>bar</string>
+ </dict>
+</dict>
+</plist>
diff --git a/tests/input/font-psf-test/source/PsfTest-Bold.ufo/metainfo.plist b/tests/input/font-psf-test/source/PsfTest-Bold.ufo/metainfo.plist
new file mode 100644
index 0000000..aa10c5c
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Bold.ufo/metainfo.plist
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>creator</key>
+ <string>org.sil.scripts.pysilfont</string>
+ <key>formatVersion</key>
+ <integer>3</integer>
+</dict>
+</plist>
diff --git a/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/fontinfo.plist b/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/fontinfo.plist
new file mode 100644
index 0000000..3f3c5f4
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/fontinfo.plist
@@ -0,0 +1,245 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>ascender</key>
+ <integer>2100</integer>
+ <key>capHeight</key>
+ <integer>1485</integer>
+ <key>copyright</key>
+ <string>Copyright (c) 2004-2021 SIL International</string>
+ <key>descender</key>
+ <integer>-550</integer>
+ <key>familyName</key>
+ <string>Psf Test</string>
+ <key>italicAngle</key>
+ <integer>-14</integer>
+ <key>macintoshFONDName</key>
+ <string>My Test</string>
+ <key>openTypeHeadCreated</key>
+ <string>2021/01/01 11:00:00</string>
+ <key>openTypeHheaAscender</key>
+ <integer>2200</integer>
+ <key>openTypeHheaDescender</key>
+ <integer>-550</integer>
+ <key>openTypeHheaLineGap</key>
+ <integer>0</integer>
+ <key>openTypeNameDescription</key>
+ <string>Copyright (c) 2004-2021 SIL International</string>
+ <key>openTypeNameDesigner</key>
+ <string>Victor Gaultney, Annie Olsen, Julie Remington, Don Collingsworth, Eric Hays, Becca Hirsbrunner</string>
+ <key>openTypeNameDesignerURL</key>
+ <string>http://scripts.sil.org/</string>
+ <key>openTypeNameLicense</key>
+ <string>Copyright (c) 2004-2021 SIL International (http://www.sil.org/) with Reserved Font Names "Andika" and "SIL".
+
+This Font Software is licensed under the SIL Open Font License, Version 1.1. This license is copied below, and is also available with a FAQ at: http://scripts.sil.org/OFL
+
+
+-----------------------------------------------------------
+SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
+-----------------------------------------------------------
+
+PREAMBLE
+The goals of the Open Font License (OFL) are to stimulate worldwide development of collaborative font projects, to support the font creation efforts of academic and linguistic communities, and to provide a free and open framework in which fonts may be shared and improved in partnership with others.
+
+The OFL allows the licensed fonts to be used, studied, modified and redistributed freely as long as they are not sold by themselves. The fonts, including any derivative works, can be bundled, embedded, redistributed and/or sold with any software provided that any reserved names are not used by derivative works. The fonts and derivatives, however, cannot be released under any other type of license. The requirement for fonts to remain under this license does not apply to any document created using the fonts or their derivatives.
+
+DEFINITIONS
+"Font Software" refers to the set of files released by the Copyright Holder(s) under this license and clearly marked as such. This may include source files, build scripts and documentation.
+
+"Reserved Font Name" refers to any names specified as such after the copyright statement(s).
+
+"Original Version" refers to the collection of Font Software components as distributed by the Copyright Holder(s).
+
+"Modified Version" refers to any derivative made by adding to, deleting, or substituting -- in part or in whole -- any of the components of the Original Version, by changing formats or by porting the Font Software to a new environment.
+
+"Author" refers to any designer, engineer, programmer, technical writer or other person who contributed to the Font Software.
+
+PERMISSION &amp; CONDITIONS
+Permission is hereby granted, free of charge, to any person obtaining a copy of the Font Software, to use, study, copy, merge, embed, modify, redistribute, and sell modified and unmodified copies of the Font Software, subject to the following conditions:
+
+1) Neither the Font Software nor any of its individual components, in Original or Modified Versions, may be sold by itself.
+
+2) Original or Modified Versions of the Font Software may be bundled, redistributed and/or sold with any software, provided that each copy contains the above copyright notice and this license. These can be included either as stand-alone text files, human-readable headers or in the appropriate machine-readable metadata fields within text or binary files as long as those fields can be easily viewed by the user.
+
+3) No Modified Version of the Font Software may use the Reserved Font Name(s) unless explicit written permission is granted by the corresponding Copyright Holder. This restriction only applies to the primary font name as presented to the users.
+
+4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font Software shall not be used to promote, endorse or advertise any Modified Version, except to acknowledge the contribution(s) of the Copyright Holder(s) and the Author(s) or with their explicit written permission.
+
+5) The Font Software, modified or unmodified, in part or in whole, must be distributed entirely under this license, and must not be distributed under any other license. The requirement for fonts to remain under this license does not apply to any document created using the Font Software.
+
+TERMINATION
+This license becomes null and void if any of the above conditions are not met.
+
+DISCLAIMER
+THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM OTHER DEALINGS IN THE FONT SOFTWARE.</string>
+ <key>openTypeNameLicenseURL</key>
+ <string>http://scripts.sil.org/OFL</string>
+ <key>openTypeNameManufacturer</key>
+ <string>SIL International</string>
+ <key>openTypeNameManufacturerURL</key>
+ <string>http://scripts.sil.org</string>
+ <key>openTypeNamePreferredFamilyName</key>
+ <string>Psf Test</string>
+ <key>openTypeNamePreferredSubfamilyName</key>
+ <string>Bold Italic</string>
+ <key>openTypeNameUniqueID</key>
+ <string>SIL International: Psf Test Bold Italic: 2022</string>
+ <key>openTypeNameVersion</key>
+ <string>Version 5.550</string>
+ <key>openTypeOS2CodePageRanges</key>
+ <array>
+ <integer>0</integer>
+ <integer>1</integer>
+ <integer>2</integer>
+ <integer>4</integer>
+ <integer>7</integer>
+ <integer>8</integer>
+ </array>
+ <key>openTypeOS2FamilyClass</key>
+ <array>
+ <integer>0</integer>
+ <integer>0</integer>
+ </array>
+ <key>openTypeOS2Panose</key>
+ <array>
+ <integer>2</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ </array>
+ <key>openTypeOS2StrikeoutPosition</key>
+ <integer>700</integer>
+ <key>openTypeOS2StrikeoutSize</key>
+ <integer>100</integer>
+ <key>openTypeOS2SubscriptXOffset</key>
+ <integer>0</integer>
+ <key>openTypeOS2SubscriptXSize</key>
+ <integer>1433</integer>
+ <key>openTypeOS2SubscriptYOffset</key>
+ <integer>286</integer>
+ <key>openTypeOS2SubscriptYSize</key>
+ <integer>1331</integer>
+ <key>openTypeOS2SuperscriptXOffset</key>
+ <integer>0</integer>
+ <key>openTypeOS2SuperscriptXSize</key>
+ <integer>1433</integer>
+ <key>openTypeOS2SuperscriptYOffset</key>
+ <integer>976</integer>
+ <key>openTypeOS2SuperscriptYSize</key>
+ <integer>1331</integer>
+ <key>openTypeOS2Type</key>
+ <array/>
+ <key>openTypeOS2TypoAscender</key>
+ <integer>2100</integer>
+ <key>openTypeOS2TypoDescender</key>
+ <integer>-550</integer>
+ <key>openTypeOS2TypoLineGap</key>
+ <integer>0</integer>
+ <key>openTypeOS2UnicodeRanges</key>
+ <array>
+ <integer>0</integer>
+ <integer>1</integer>
+ <integer>6</integer>
+ <integer>7</integer>
+ <integer>31</integer>
+ <integer>33</integer>
+ <integer>35</integer>
+ <integer>36</integer>
+ <integer>37</integer>
+ <integer>38</integer>
+ <integer>39</integer>
+ <integer>40</integer>
+ <integer>45</integer>
+ <integer>46</integer>
+ <integer>47</integer>
+ <integer>57</integer>
+ <integer>60</integer>
+ <integer>62</integer>
+ <integer>64</integer>
+ <integer>67</integer>
+ <integer>69</integer>
+ <integer>89</integer>
+ </array>
+ <key>openTypeOS2VendorID</key>
+ <string>SIL</string>
+ <key>openTypeOS2WeightClass</key>
+ <integer>700</integer>
+ <key>openTypeOS2WidthClass</key>
+ <integer>5</integer>
+ <key>openTypeOS2WinAscent</key>
+ <integer>2100</integer>
+ <key>openTypeOS2WinDescent</key>
+ <integer>550</integer>
+ <key>postscriptBlueValues</key>
+ <array>
+ <integer>-490</integer>
+ <integer>-490</integer>
+ <integer>-25</integer>
+ <integer>0</integer>
+ <integer>1020</integer>
+ <integer>1040</integer>
+ <integer>1455</integer>
+ <integer>1485</integer>
+ <integer>1600</integer>
+ <integer>1620</integer>
+ </array>
+ <key>postscriptFamilyBlues</key>
+ <array/>
+ <key>postscriptFontName</key>
+ <string>PsfTest-BoldItalic</string>
+ <key>postscriptFullName</key>
+ <string>Psf Test Bold Italic</string>
+ <key>postscriptStemSnapH</key>
+ <array>
+ <integer>140</integer>
+ <integer>145</integer>
+ <integer>150</integer>
+ <integer>155</integer>
+ <integer>160</integer>
+ <integer>165</integer>
+ <integer>170</integer>
+ <integer>175</integer>
+ <integer>185</integer>
+ <integer>270</integer>
+ </array>
+ <key>postscriptStemSnapV</key>
+ <array>
+ <integer>165</integer>
+ <integer>180</integer>
+ <integer>185</integer>
+ <integer>190</integer>
+ <integer>195</integer>
+ <integer>200</integer>
+ <integer>205</integer>
+ <integer>270</integer>
+ </array>
+ <key>postscriptUnderlinePosition</key>
+ <integer>-110</integer>
+ <key>postscriptUnderlineThickness</key>
+ <integer>80</integer>
+ <key>styleMapFamilyName</key>
+ <string>Psf Test</string>
+ <key>styleMapStyleName</key>
+ <string>bold italic</string>
+ <key>styleName</key>
+ <string>Bold Italic</string>
+ <key>trademark</key>
+ <string>Andika is a trademark of SIL International.</string>
+ <key>unitsPerEm</key>
+ <integer>2048</integer>
+ <key>versionMajor</key>
+ <integer>5</integer>
+ <key>versionMinor</key>
+ <integer>550</integer>
+ <key>xHeight</key>
+ <integer>1040</integer>
+</dict>
+</plist>
diff --git a/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/A_mpersand.glif b/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/A_mpersand.glif
new file mode 100644
index 0000000..f3fb1c7
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/A_mpersand.glif
@@ -0,0 +1,61 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Ampersand" format="2">
+ <advance width="1333"/>
+ <unicode hex="0026"/>
+ <outline>
+ <contour>
+ <point x="1146" y="594" type="line"/>
+ <point x="1040" y="429"/>
+ <point x="712" y="198"/>
+ <point x="537" y="198" type="curve" smooth="yes"/>
+ <point x="437" y="198"/>
+ <point x="363" y="257"/>
+ <point x="363" y="345" type="curve" smooth="yes"/>
+ <point x="363" y="490"/>
+ <point x="474" y="535"/>
+ <point x="695" y="693" type="curve" smooth="yes"/>
+ <point x="940" y="868"/>
+ <point x="1160" y="1032"/>
+ <point x="1160" y="1213" type="curve" smooth="yes"/>
+ <point x="1160" y="1361"/>
+ <point x="1026" y="1470"/>
+ <point x="849" y="1470" type="curve" smooth="yes"/>
+ <point x="637" y="1470"/>
+ <point x="414" y="1364"/>
+ <point x="414" y="1124" type="curve" smooth="yes"/>
+ <point x="414" y="968"/>
+ <point x="552" y="751"/>
+ <point x="661" y="535" type="curve" smooth="yes"/>
+ <point x="842" y="177"/>
+ <point x="969" y="-25"/>
+ <point x="1021" y="-25" type="curve" smooth="yes"/>
+ <point x="1056" y="-25"/>
+ <point x="1205" y="57"/>
+ <point x="1250" y="89" type="curve"/>
+ <point x="1165" y="129"/>
+ <point x="1073" y="302"/>
+ <point x="890" y="673" type="curve" smooth="yes"/>
+ <point x="788" y="881"/>
+ <point x="651" y="1063"/>
+ <point x="651" y="1163" type="curve" smooth="yes"/>
+ <point x="651" y="1245"/>
+ <point x="729" y="1307"/>
+ <point x="803" y="1307" type="curve" smooth="yes"/>
+ <point x="873" y="1307"/>
+ <point x="926" y="1250"/>
+ <point x="926" y="1184" type="curve" smooth="yes"/>
+ <point x="926" y="1081"/>
+ <point x="821" y="997"/>
+ <point x="600" y="832" type="curve" smooth="yes"/>
+ <point x="392" y="677"/>
+ <point x="108" y="540"/>
+ <point x="108" y="268" type="curve" smooth="yes"/>
+ <point x="108" y="98"/>
+ <point x="229" y="-25"/>
+ <point x="466" y="-25" type="curve" smooth="yes"/>
+ <point x="749" y="-25"/>
+ <point x="1120" y="261"/>
+ <point x="1237" y="421" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/A_pos.glif b/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/A_pos.glif
new file mode 100644
index 0000000..68b000e
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/A_pos.glif
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Apos" format="2">
+ <advance width="605"/>
+ <unicode hex="0027"/>
+ <outline>
+ <contour>
+ <point x="598" y="1035" type="line"/>
+ <point x="637" y="1174"/>
+ <point x="676" y="1326"/>
+ <point x="766" y="1569" type="curve"/>
+ <point x="521" y="1569" type="line"/>
+ <point x="491" y="1326"/>
+ <point x="453" y="1174"/>
+ <point x="423" y="1035" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/A_sterisk.glif b/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/A_sterisk.glif
new file mode 100644
index 0000000..a36131c
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/A_sterisk.glif
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Asterisk" format="2">
+ <advance width="1020"/>
+ <unicode hex="002A"/>
+ <outline>
+ <contour>
+ <point x="1135" y="1478" type="line"/>
+ <point x="1039" y="1412"/>
+ <point x="956" y="1353"/>
+ <point x="856" y="1295" type="curve"/>
+ <point x="885" y="1391"/>
+ <point x="915" y="1471"/>
+ <point x="958" y="1584" type="curve"/>
+ <point x="759" y="1584" type="line"/>
+ <point x="753" y="1482"/>
+ <point x="748" y="1398"/>
+ <point x="730" y="1295" type="curve"/>
+ <point x="658" y="1346"/>
+ <point x="599" y="1394"/>
+ <point x="532" y="1461" type="curve"/>
+ <point x="388" y="1293" type="line"/>
+ <point x="484" y="1258"/>
+ <point x="575" y="1222"/>
+ <point x="647" y="1184" type="curve"/>
+ <point x="552" y="1141"/>
+ <point x="459" y="1109"/>
+ <point x="341" y="1066" type="curve"/>
+ <point x="398" y="888" type="line"/>
+ <point x="494" y="958"/>
+ <point x="575" y="1016"/>
+ <point x="674" y="1076" type="curve"/>
+ <point x="641" y="973"/>
+ <point x="610" y="887"/>
+ <point x="566" y="785" type="curve"/>
+ <point x="767" y="785" type="line"/>
+ <point x="773" y="897"/>
+ <point x="785" y="977"/>
+ <point x="800" y="1073" type="curve"/>
+ <point x="875" y="1017"/>
+ <point x="929" y="971"/>
+ <point x="995" y="905" type="curve"/>
+ <point x="1144" y="1078" type="line"/>
+ <point x="1045" y="1116"/>
+ <point x="967" y="1143"/>
+ <point x="886" y="1184" type="curve"/>
+ <point x="984" y="1229"/>
+ <point x="1075" y="1264"/>
+ <point x="1190" y="1308" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/A_tS_gn.glif b/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/A_tS_gn.glif
new file mode 100644
index 0000000..e2233cf
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/A_tS_gn.glif
@@ -0,0 +1,104 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="AtSgn" format="2">
+ <advance width="1693"/>
+ <unicode hex="0040"/>
+ <outline>
+ <contour>
+ <point x="1082" y="10" type="line"/>
+ <point x="1008" y="-34"/>
+ <point x="933" y="-59"/>
+ <point x="840" y="-59" type="curve" smooth="yes"/>
+ <point x="540" y="-59"/>
+ <point x="362" y="143"/>
+ <point x="362" y="434" type="curve" smooth="yes"/>
+ <point x="362" y="498"/>
+ <point x="371" y="567"/>
+ <point x="389" y="639" type="curve" smooth="yes"/>
+ <point x="480" y="1003"/>
+ <point x="783" y="1228"/>
+ <point x="1121" y="1228" type="curve" smooth="yes"/>
+ <point x="1424" y="1228"/>
+ <point x="1581" y="1069"/>
+ <point x="1581" y="813" type="curve" smooth="yes"/>
+ <point x="1581" y="753"/>
+ <point x="1572" y="688"/>
+ <point x="1555" y="619" type="curve" smooth="yes"/>
+ <point x="1506" y="418"/>
+ <point x="1400" y="331"/>
+ <point x="1340" y="331" type="curve" smooth="yes"/>
+ <point x="1307" y="331"/>
+ <point x="1287" y="362"/>
+ <point x="1287" y="432" type="curve" smooth="yes"/>
+ <point x="1287" y="482"/>
+ <point x="1297" y="551"/>
+ <point x="1320" y="643" type="curve" smooth="yes"/>
+ <point x="1401" y="970" type="line"/>
+ <point x="1323" y="1005"/>
+ <point x="1182" y="1030"/>
+ <point x="1101" y="1030" type="curve" smooth="yes"/>
+ <point x="937" y="1030"/>
+ <point x="822" y="974"/>
+ <point x="710" y="862" type="curve" smooth="yes"/>
+ <point x="637" y="789"/>
+ <point x="569" y="677"/>
+ <point x="539" y="556" type="curve" smooth="yes"/>
+ <point x="529" y="518"/>
+ <point x="525" y="481"/>
+ <point x="525" y="447" type="curve" smooth="yes"/>
+ <point x="525" y="279"/>
+ <point x="629" y="161"/>
+ <point x="740" y="161" type="curve" smooth="yes"/>
+ <point x="867" y="161"/>
+ <point x="1034" y="328"/>
+ <point x="1117" y="450" type="curve"/>
+ <point x="1112" y="422"/>
+ <point x="1110" y="394"/>
+ <point x="1110" y="367" type="curve" smooth="yes"/>
+ <point x="1110" y="252"/>
+ <point x="1157" y="155"/>
+ <point x="1291" y="155" type="curve" smooth="yes"/>
+ <point x="1454" y="155"/>
+ <point x="1674" y="332"/>
+ <point x="1752" y="646" type="curve" smooth="yes"/>
+ <point x="1768" y="710"/>
+ <point x="1775" y="771"/>
+ <point x="1775" y="829" type="curve" smooth="yes"/>
+ <point x="1775" y="1169"/>
+ <point x="1520" y="1411"/>
+ <point x="1156" y="1411" type="curve" smooth="yes"/>
+ <point x="731" y="1411"/>
+ <point x="322" y="1180"/>
+ <point x="183" y="624" type="curve" smooth="yes"/>
+ <point x="163" y="544"/>
+ <point x="154" y="469"/>
+ <point x="154" y="398" type="curve" smooth="yes"/>
+ <point x="154" y="-1"/>
+ <point x="448" y="-243"/>
+ <point x="789" y="-243" type="curve" smooth="yes"/>
+ <point x="924" y="-243"/>
+ <point x="1076" y="-206"/>
+ <point x="1193" y="-137" type="curve"/>
+ </contour>
+ <contour>
+ <point x="1135" y="703" type="line"/>
+ <point x="1069" y="566"/>
+ <point x="899" y="346"/>
+ <point x="809" y="346" type="curve" smooth="yes"/>
+ <point x="757" y="346"/>
+ <point x="726" y="386"/>
+ <point x="726" y="463" type="curve" smooth="yes"/>
+ <point x="726" y="493"/>
+ <point x="731" y="528"/>
+ <point x="741" y="569" type="curve" smooth="yes"/>
+ <point x="760" y="645"/>
+ <point x="803" y="731"/>
+ <point x="853" y="778" type="curve" smooth="yes"/>
+ <point x="901" y="824"/>
+ <point x="957" y="846"/>
+ <point x="1025" y="846" type="curve" smooth="yes"/>
+ <point x="1099" y="846"/>
+ <point x="1133" y="828"/>
+ <point x="1162" y="812" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/C_ircumA_ccent.glif b/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/C_ircumA_ccent.glif
new file mode 100644
index 0000000..b60b998
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/C_ircumA_ccent.glif
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="CircumAccent" format="2">
+ <advance width="860"/>
+ <unicode hex="005E"/>
+ <anchor x="788" y="1635" name="U"/>
+ <outline>
+ <contour>
+ <point x="1056" y="1188" type="line"/>
+ <point x="845" y="1584" type="line"/>
+ <point x="545" y="1584" type="line"/>
+ <point x="177" y="1188" type="line"/>
+ <point x="417" y="1188" type="line"/>
+ <point x="674" y="1416" type="line"/>
+ <point x="817" y="1188" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/C_olon.glif b/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/C_olon.glif
new file mode 100644
index 0000000..37f30d8
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/C_olon.glif
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Colon" format="2">
+ <advance width="690"/>
+ <unicode hex="003A"/>
+ <outline>
+ <contour>
+ <point x="171" y="116" type="curve" smooth="yes"/>
+ <point x="171" y="35"/>
+ <point x="232" y="-25"/>
+ <point x="318" y="-25" type="curve" smooth="yes"/>
+ <point x="436" y="-25"/>
+ <point x="531" y="71"/>
+ <point x="531" y="181" type="curve" smooth="yes"/>
+ <point x="531" y="261"/>
+ <point x="472" y="322"/>
+ <point x="385" y="322" type="curve" smooth="yes"/>
+ <point x="268" y="322"/>
+ <point x="171" y="226"/>
+ </contour>
+ <contour>
+ <point x="319" y="710" type="curve" smooth="yes"/>
+ <point x="319" y="629"/>
+ <point x="380" y="569"/>
+ <point x="466" y="569" type="curve" smooth="yes"/>
+ <point x="584" y="569"/>
+ <point x="679" y="665"/>
+ <point x="679" y="775" type="curve" smooth="yes"/>
+ <point x="679" y="855"/>
+ <point x="620" y="916"/>
+ <point x="533" y="916" type="curve" smooth="yes"/>
+ <point x="416" y="916"/>
+ <point x="319" y="820"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/C_ombA_cute.glif b/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/C_ombA_cute.glif
new file mode 100644
index 0000000..f3ea065
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/C_ombA_cute.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="CombAcute" format="2">
+ <unicode hex="0301"/>
+ <anchor x="-251" y="1635" name="U"/>
+ <anchor x="-325" y="1100" name="_U"/>
+ <outline>
+ <contour>
+ <point x="-165" y="1584" type="line"/>
+ <point x="-523" y="1188" type="line"/>
+ <point x="-283" y="1188" type="line"/>
+ <point x="204" y="1584" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/C_ombC_ircum.glif b/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/C_ombC_ircum.glif
new file mode 100644
index 0000000..9dc18ac
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/C_ombC_ircum.glif
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="CombCircum" format="2">
+ <unicode hex="0302"/>
+ <anchor x="-239" y="1635" name="U"/>
+ <anchor x="-330" y="1100" name="_U"/>
+ <outline>
+ <contour>
+ <point x="88" y="1188" type="line"/>
+ <point x="-123" y="1584" type="line"/>
+ <point x="-423" y="1584" type="line"/>
+ <point x="-791" y="1188" type="line"/>
+ <point x="-551" y="1188" type="line"/>
+ <point x="-294" y="1416" type="line"/>
+ <point x="-151" y="1188" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/C_ombD_iaer.glif b/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/C_ombD_iaer.glif
new file mode 100644
index 0000000..490587d
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/C_ombD_iaer.glif
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="CombDiaer" format="2">
+ <unicode hex="0308"/>
+ <anchor x="-243" y="1585" name="U"/>
+ <anchor x="-365" y="1100" name="_U"/>
+ <outline>
+ <contour>
+ <point x="-233" y="1338" type="curve" smooth="yes"/>
+ <point x="-233" y="1256"/>
+ <point x="-172" y="1198"/>
+ <point x="-86" y="1198" type="curve" smooth="yes"/>
+ <point x="32" y="1198"/>
+ <point x="126" y="1294"/>
+ <point x="126" y="1404" type="curve" smooth="yes"/>
+ <point x="126" y="1484"/>
+ <point x="66" y="1544"/>
+ <point x="-21" y="1544" type="curve" smooth="yes"/>
+ <point x="-139" y="1544"/>
+ <point x="-233" y="1447"/>
+ </contour>
+ <contour>
+ <point x="-723" y="1338" type="curve" smooth="yes"/>
+ <point x="-723" y="1256"/>
+ <point x="-662" y="1198"/>
+ <point x="-576" y="1198" type="curve" smooth="yes"/>
+ <point x="-457" y="1198"/>
+ <point x="-363" y="1293"/>
+ <point x="-363" y="1404" type="curve" smooth="yes"/>
+ <point x="-363" y="1484"/>
+ <point x="-423" y="1544"/>
+ <point x="-510" y="1544" type="curve" smooth="yes"/>
+ <point x="-628" y="1544"/>
+ <point x="-723" y="1448"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/C_ombG_rave.glif b/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/C_ombG_rave.glif
new file mode 100644
index 0000000..49617c2
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/C_ombG_rave.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="CombGrave" format="2">
+ <unicode hex="0300"/>
+ <anchor x="-241" y="1635" name="U"/>
+ <anchor x="-415" y="1100" name="_U"/>
+ <outline>
+ <contour>
+ <point x="-725" y="1584" type="line"/>
+ <point x="-403" y="1188" type="line"/>
+ <point x="-173" y="1188" type="line"/>
+ <point x="-395" y="1584" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/C_ombR_ingA_bv.glif b/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/C_ombR_ingA_bv.glif
new file mode 100644
index 0000000..27f9832
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/C_ombR_ingA_bv.glif
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="CombRingAbv" format="2">
+ <unicode hex="030A"/>
+ <anchor x="-221" y="1635" name="U"/>
+ <anchor x="-357" y="1100" name="_U"/>
+ <outline>
+ <contour>
+ <point x="-358" y="1292" type="curve" smooth="yes"/>
+ <point x="-406" y="1292"/>
+ <point x="-442" y="1330"/>
+ <point x="-442" y="1375" type="curve" smooth="yes"/>
+ <point x="-442" y="1440"/>
+ <point x="-385" y="1480"/>
+ <point x="-331" y="1480" type="curve" smooth="yes"/>
+ <point x="-283" y="1480"/>
+ <point x="-247" y="1443"/>
+ <point x="-247" y="1398" type="curve" smooth="yes"/>
+ <point x="-247" y="1335"/>
+ <point x="-301" y="1292"/>
+ </contour>
+ <contour>
+ <point x="-598" y="1348" type="curve" smooth="yes"/>
+ <point x="-598" y="1238"/>
+ <point x="-504" y="1148"/>
+ <point x="-384" y="1148" type="curve" smooth="yes"/>
+ <point x="-223" y="1148"/>
+ <point x="-92" y="1271"/>
+ <point x="-92" y="1424" type="curve" smooth="yes"/>
+ <point x="-92" y="1534"/>
+ <point x="-186" y="1624"/>
+ <point x="-306" y="1624" type="curve" smooth="yes"/>
+ <point x="-467" y="1624"/>
+ <point x="-598" y="1501"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/C_ombT_ilde.glif b/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/C_ombT_ilde.glif
new file mode 100644
index 0000000..1aa1b62
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/C_ombT_ilde.glif
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="CombTilde" format="2">
+ <unicode hex="0303"/>
+ <anchor x="-355" y="1490" name="U"/>
+ <anchor x="-390" y="1100" name="_U"/>
+ <outline>
+ <contour>
+ <point x="-687" y="1178" type="line"/>
+ <point x="-673" y="1232"/>
+ <point x="-628" y="1271"/>
+ <point x="-584" y="1271" type="curve" smooth="yes"/>
+ <point x="-546" y="1271"/>
+ <point x="-498" y="1247"/>
+ <point x="-437" y="1217" type="curve" smooth="yes"/>
+ <point x="-375" y="1187"/>
+ <point x="-327" y="1168"/>
+ <point x="-265" y="1168" type="curve" smooth="yes"/>
+ <point x="-129" y="1168"/>
+ <point x="-13" y="1294"/>
+ <point x="30" y="1465" type="curve"/>
+ <point x="-125" y="1465" type="line"/>
+ <point x="-138" y="1415"/>
+ <point x="-190" y="1373"/>
+ <point x="-235" y="1373" type="curve" smooth="yes"/>
+ <point x="-272" y="1373"/>
+ <point x="-306" y="1399"/>
+ <point x="-366" y="1423" type="curve" smooth="yes"/>
+ <point x="-438" y="1452"/>
+ <point x="-498" y="1475"/>
+ <point x="-563" y="1475" type="curve" smooth="yes"/>
+ <point x="-695" y="1475"/>
+ <point x="-802" y="1336"/>
+ <point x="-842" y="1178" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/C_omma.glif b/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/C_omma.glif
new file mode 100644
index 0000000..4105316
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/C_omma.glif
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Comma" format="2">
+ <advance width="645"/>
+ <unicode hex="002C"/>
+ <outline>
+ <contour>
+ <point x="137" y="49" type="line"/>
+ <point x="297" y="49" type="line"/>
+ <point x="276" y="-34"/>
+ <point x="192" y="-151"/>
+ <point x="59" y="-262" type="curve"/>
+ <point x="187" y="-332" type="line"/>
+ <point x="337" y="-222"/>
+ <point x="539" y="-11"/>
+ <point x="539" y="165" type="curve" smooth="yes"/>
+ <point x="539" y="262"/>
+ <point x="495" y="337"/>
+ <point x="379" y="337" type="curve" smooth="yes"/>
+ <point x="266" y="337"/>
+ <point x="187" y="252"/>
+ <point x="169" y="178" type="curve" smooth="yes"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/D_igitE_ight.glif b/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/D_igitE_ight.glif
new file mode 100644
index 0000000..9272dc9
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/D_igitE_ight.glif
@@ -0,0 +1,63 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitEight" format="2">
+ <advance width="1180"/>
+ <unicode hex="0038"/>
+ <anchor x="515" y="-100" name="L"/>
+ <anchor x="922" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="543" y="-25" type="curve" smooth="yes"/>
+ <point x="860" y="-25"/>
+ <point x="1182" y="176"/>
+ <point x="1182" y="498" type="curve" smooth="yes"/>
+ <point x="1182" y="642"/>
+ <point x="1090" y="742"/>
+ <point x="1011" y="787" type="curve"/>
+ <point x="1159" y="866"/>
+ <point x="1279" y="994"/>
+ <point x="1279" y="1163" type="curve" smooth="yes"/>
+ <point x="1279" y="1342"/>
+ <point x="1123" y="1470"/>
+ <point x="906" y="1470" type="curve" smooth="yes"/>
+ <point x="632" y="1470"/>
+ <point x="349" y="1310"/>
+ <point x="349" y="1028" type="curve" smooth="yes"/>
+ <point x="349" y="904"/>
+ <point x="412" y="821"/>
+ <point x="466" y="787" type="curve"/>
+ <point x="270" y="703"/>
+ <point x="108" y="563"/>
+ <point x="108" y="341" type="curve" smooth="yes"/>
+ <point x="108" y="123"/>
+ <point x="301" y="-25"/>
+ </contour>
+ <contour>
+ <point x="760" y="886" type="curve" smooth="yes"/>
+ <point x="651" y="886"/>
+ <point x="593" y="939"/>
+ <point x="593" y="1038" type="curve" smooth="yes"/>
+ <point x="593" y="1175"/>
+ <point x="721" y="1277"/>
+ <point x="858" y="1277" type="curve" smooth="yes"/>
+ <point x="976" y="1277"/>
+ <point x="1028" y="1221"/>
+ <point x="1028" y="1127" type="curve" smooth="yes"/>
+ <point x="1028" y="993"/>
+ <point x="898" y="886"/>
+ </contour>
+ <contour>
+ <point x="595" y="183" type="curve" smooth="yes"/>
+ <point x="458" y="183"/>
+ <point x="375" y="267"/>
+ <point x="375" y="384" type="curve" smooth="yes"/>
+ <point x="375" y="549"/>
+ <point x="549" y="673"/>
+ <point x="707" y="673" type="curve" smooth="yes"/>
+ <point x="833" y="673"/>
+ <point x="920" y="602"/>
+ <point x="920" y="477" type="curve" smooth="yes"/>
+ <point x="920" y="317"/>
+ <point x="759" y="183"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/D_igitF_ive.glif b/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/D_igitF_ive.glif
new file mode 100644
index 0000000..1c4dd99
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/D_igitF_ive.glif
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitFive" format="2">
+ <advance width="1180"/>
+ <unicode hex="0035"/>
+ <anchor x="515" y="-100" name="L"/>
+ <anchor x="922" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1330" y="1445" type="line"/>
+ <point x="475" y="1445" type="line"/>
+ <point x="274" y="639" type="line"/>
+ <point x="410" y="686"/>
+ <point x="519" y="703"/>
+ <point x="625" y="703" type="curve" smooth="yes"/>
+ <point x="763" y="703"/>
+ <point x="867" y="630"/>
+ <point x="867" y="507" type="curve" smooth="yes"/>
+ <point x="867" y="318"/>
+ <point x="680" y="213"/>
+ <point x="503" y="213" type="curve" smooth="yes"/>
+ <point x="363" y="213"/>
+ <point x="255" y="260"/>
+ <point x="168" y="356" type="curve"/>
+ <point x="59" y="79" type="line"/>
+ <point x="165" y="2"/>
+ <point x="308" y="-25"/>
+ <point x="483" y="-25" type="curve" smooth="yes"/>
+ <point x="841" y="-25"/>
+ <point x="1155" y="204"/>
+ <point x="1155" y="564" type="curve" smooth="yes"/>
+ <point x="1155" y="774"/>
+ <point x="1007" y="921"/>
+ <point x="774" y="921" type="curve" smooth="yes"/>
+ <point x="712" y="921"/>
+ <point x="632" y="902"/>
+ <point x="595" y="886" type="curve"/>
+ <point x="674" y="1203" type="line"/>
+ <point x="1004" y="1203" type="line" smooth="yes"/>
+ <point x="1088" y="1203"/>
+ <point x="1193" y="1199"/>
+ <point x="1264" y="1183" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/D_igitF_our.glif b/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/D_igitF_our.glif
new file mode 100644
index 0000000..617709f
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/D_igitF_our.glif
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitFour" format="2">
+ <advance width="1180"/>
+ <unicode hex="0034"/>
+ <anchor x="522" y="-100" name="L"/>
+ <anchor x="929" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1180" y="342" type="line"/>
+ <point x="1235" y="564" type="line"/>
+ <point x="1075" y="564" type="line"/>
+ <point x="1295" y="1445" type="line"/>
+ <point x="945" y="1445" type="line"/>
+ <point x="120" y="564" type="line"/>
+ <point x="65" y="342" type="line"/>
+ <point x="755" y="342" type="line"/>
+ <point x="670" y="0" type="line"/>
+ <point x="935" y="0" type="line"/>
+ <point x="1020" y="342" type="line"/>
+ </contour>
+ <contour>
+ <point x="954" y="1143" type="line"/>
+ <point x="810" y="564" type="line"/>
+ <point x="385" y="564" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/D_igitN_ine.glif b/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/D_igitN_ine.glif
new file mode 100644
index 0000000..85e36a0
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/D_igitN_ine.glif
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitNine" format="2">
+ <advance width="1180"/>
+ <unicode hex="0039"/>
+ <anchor x="515" y="-100" name="L"/>
+ <anchor x="922" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="119" y="84" type="line"/>
+ <point x="199" y="25"/>
+ <point x="327" y="-25"/>
+ <point x="455" y="-25" type="curve" smooth="yes"/>
+ <point x="979" y="-25"/>
+ <point x="1289" y="533"/>
+ <point x="1289" y="979" type="curve" smooth="yes"/>
+ <point x="1289" y="1248"/>
+ <point x="1164" y="1470"/>
+ <point x="833" y="1470" type="curve" smooth="yes"/>
+ <point x="554" y="1470"/>
+ <point x="255" y="1239"/>
+ <point x="255" y="932" type="curve" smooth="yes"/>
+ <point x="255" y="736"/>
+ <point x="399" y="570"/>
+ <point x="644" y="570" type="curve" smooth="yes"/>
+ <point x="833" y="570"/>
+ <point x="1027" y="700"/>
+ <point x="1164" y="859" type="curve"/>
+ <point x="1123" y="981" type="line"/>
+ <point x="1021" y="868"/>
+ <point x="863" y="782"/>
+ <point x="728" y="782" type="curve" smooth="yes"/>
+ <point x="589" y="782"/>
+ <point x="519" y="845"/>
+ <point x="519" y="955" type="curve" smooth="yes"/>
+ <point x="519" y="1133"/>
+ <point x="653" y="1237"/>
+ <point x="801" y="1237" type="curve" smooth="yes"/>
+ <point x="951" y="1237"/>
+ <point x="1029" y="1136"/>
+ <point x="1029" y="965" type="curve" smooth="yes"/>
+ <point x="1029" y="476"/>
+ <point x="710" y="208"/>
+ <point x="513" y="208" type="curve" smooth="yes"/>
+ <point x="417" y="208"/>
+ <point x="301" y="252"/>
+ <point x="237" y="337" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/D_igitO_ne.glif b/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/D_igitO_ne.glif
new file mode 100644
index 0000000..df3633d
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/D_igitO_ne.glif
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitOne" format="2">
+ <advance width="1180"/>
+ <unicode hex="0031"/>
+ <anchor x="515" y="-100" name="L"/>
+ <anchor x="922" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="490" y="233" type="line"/>
+ <point x="183" y="233" type="line"/>
+ <point x="125" y="0" type="line"/>
+ <point x="1015" y="0" type="line"/>
+ <point x="1073" y="233" type="line"/>
+ <point x="765" y="233" type="line"/>
+ <point x="1067" y="1445" type="line"/>
+ <point x="792" y="1445" type="line"/>
+ <point x="432" y="1265" type="line"/>
+ <point x="403" y="1008" type="line"/>
+ <point x="720" y="1158" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/D_igitS_even.glif b/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/D_igitS_even.glif
new file mode 100644
index 0000000..23ac13b
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/D_igitS_even.glif
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitSeven" format="2">
+ <advance width="1180"/>
+ <unicode hex="0037"/>
+ <anchor x="515" y="-100" name="L"/>
+ <anchor x="922" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="480" y="0" type="line"/>
+ <point x="722" y="454"/>
+ <point x="1004" y="846"/>
+ <point x="1400" y="1247" type="curve"/>
+ <point x="1450" y="1445" type="line"/>
+ <point x="390" y="1445" type="line"/>
+ <point x="324" y="1178" type="line"/>
+ <point x="404" y="1194"/>
+ <point x="521" y="1198"/>
+ <point x="709" y="1198" type="curve" smooth="yes"/>
+ <point x="1039" y="1198" type="line"/>
+ <point x="689" y="829"/>
+ <point x="488" y="560"/>
+ <point x="175" y="0" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/D_igitS_ix.glif b/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/D_igitS_ix.glif
new file mode 100644
index 0000000..5fad278
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/D_igitS_ix.glif
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitSix" format="2">
+ <advance width="1180"/>
+ <unicode hex="0036"/>
+ <anchor x="525" y="-100" name="L"/>
+ <anchor x="932" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1347" y="1371" type="line"/>
+ <point x="1260" y="1440"/>
+ <point x="1149" y="1470"/>
+ <point x="1011" y="1470" type="curve" smooth="yes"/>
+ <point x="493" y="1470"/>
+ <point x="181" y="971"/>
+ <point x="181" y="500" type="curve" smooth="yes"/>
+ <point x="181" y="188"/>
+ <point x="368" y="-25"/>
+ <point x="635" y="-25" type="curve" smooth="yes"/>
+ <point x="954" y="-25"/>
+ <point x="1207" y="192"/>
+ <point x="1207" y="498" type="curve" smooth="yes"/>
+ <point x="1207" y="714"/>
+ <point x="1058" y="916"/>
+ <point x="813" y="916" type="curve" smooth="yes"/>
+ <point x="622" y="916"/>
+ <point x="477" y="802"/>
+ <point x="326" y="648" type="curve"/>
+ <point x="363" y="525" type="line"/>
+ <point x="470" y="637"/>
+ <point x="595" y="703"/>
+ <point x="750" y="703" type="curve" smooth="yes"/>
+ <point x="882" y="703"/>
+ <point x="954" y="586"/>
+ <point x="954" y="466" type="curve" smooth="yes"/>
+ <point x="954" y="325"/>
+ <point x="828" y="208"/>
+ <point x="677" y="208" type="curve" smooth="yes"/>
+ <point x="526" y="208"/>
+ <point x="447" y="350"/>
+ <point x="447" y="533" type="curve" smooth="yes"/>
+ <point x="447" y="978"/>
+ <point x="738" y="1237"/>
+ <point x="953" y="1237" type="curve" smooth="yes"/>
+ <point x="1049" y="1237"/>
+ <point x="1155" y="1204"/>
+ <point x="1220" y="1119" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/D_igitT_hree.glif b/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/D_igitT_hree.glif
new file mode 100644
index 0000000..5be951b
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/D_igitT_hree.glif
@@ -0,0 +1,52 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitThree" format="2">
+ <advance width="1180"/>
+ <unicode hex="0033"/>
+ <anchor x="515" y="-100" name="L"/>
+ <anchor x="922" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="548" y="876" type="line"/>
+ <point x="489" y="639" type="line"/>
+ <point x="579" y="639" type="line" smooth="yes"/>
+ <point x="778" y="639"/>
+ <point x="880" y="555"/>
+ <point x="880" y="452" type="curve" smooth="yes"/>
+ <point x="880" y="295"/>
+ <point x="726" y="208"/>
+ <point x="576" y="208" type="curve" smooth="yes"/>
+ <point x="386" y="208"/>
+ <point x="253" y="279"/>
+ <point x="174" y="401" type="curve"/>
+ <point x="72" y="129" type="line"/>
+ <point x="162" y="32"/>
+ <point x="321" y="-25"/>
+ <point x="518" y="-25" type="curve" smooth="yes"/>
+ <point x="867" y="-25"/>
+ <point x="1163" y="169"/>
+ <point x="1163" y="471" type="curve" smooth="yes"/>
+ <point x="1163" y="644"/>
+ <point x="999" y="751"/>
+ <point x="882" y="772" type="curve"/>
+ <point x="1076" y="817"/>
+ <point x="1296" y="963"/>
+ <point x="1296" y="1172" type="curve" smooth="yes"/>
+ <point x="1296" y="1348"/>
+ <point x="1112" y="1470"/>
+ <point x="856" y="1470" type="curve" smooth="yes"/>
+ <point x="689" y="1470"/>
+ <point x="529" y="1402"/>
+ <point x="427" y="1312" type="curve"/>
+ <point x="405" y="1084" type="line"/>
+ <point x="546" y="1199"/>
+ <point x="664" y="1237"/>
+ <point x="818" y="1237" type="curve" smooth="yes"/>
+ <point x="928" y="1237"/>
+ <point x="1001" y="1178"/>
+ <point x="1001" y="1100" type="curve" smooth="yes"/>
+ <point x="1001" y="975"/>
+ <point x="819" y="876"/>
+ <point x="638" y="876" type="curve" smooth="yes"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/D_igitT_wo.glif b/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/D_igitT_wo.glif
new file mode 100644
index 0000000..001d438
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/D_igitT_wo.glif
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitTwo" format="2">
+ <advance width="1180"/>
+ <unicode hex="0032"/>
+ <anchor x="515" y="-100" name="L"/>
+ <anchor x="882" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1094" y="257" type="line"/>
+ <point x="1010" y="244"/>
+ <point x="942" y="243"/>
+ <point x="745" y="243" type="curve" smooth="yes"/>
+ <point x="480" y="243" type="line"/>
+ <point x="875" y="492"/>
+ <point x="1255" y="786"/>
+ <point x="1255" y="1125" type="curve" smooth="yes"/>
+ <point x="1255" y="1324"/>
+ <point x="1106" y="1470"/>
+ <point x="846" y="1470" type="curve" smooth="yes"/>
+ <point x="667" y="1470"/>
+ <point x="472" y="1388"/>
+ <point x="363" y="1277" type="curve"/>
+ <point x="374" y="1039" type="line"/>
+ <point x="489" y="1146"/>
+ <point x="646" y="1223"/>
+ <point x="762" y="1223" type="curve" smooth="yes"/>
+ <point x="890" y="1223"/>
+ <point x="949" y="1138"/>
+ <point x="949" y="1040" type="curve" smooth="yes"/>
+ <point x="949" y="805"/>
+ <point x="500" y="440"/>
+ <point x="104" y="218" type="curve"/>
+ <point x="50" y="0" type="line"/>
+ <point x="1030" y="0" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/D_igitZ_ero.glif b/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/D_igitZ_ero.glif
new file mode 100644
index 0000000..895a8e4
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/D_igitZ_ero.glif
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitZero" format="2">
+ <advance width="1180"/>
+ <unicode hex="0030"/>
+ <anchor x="520" y="-100" name="L"/>
+ <anchor x="927" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="959" y="683" type="curve" smooth="yes"/>
+ <point x="873" y="339"/>
+ <point x="762" y="203"/>
+ <point x="600" y="203" type="curve" smooth="yes"/>
+ <point x="469" y="203"/>
+ <point x="432" y="294"/>
+ <point x="432" y="454" type="curve" smooth="yes"/>
+ <point x="432" y="537"/>
+ <point x="447" y="630"/>
+ <point x="478" y="755" type="curve" smooth="yes"/>
+ <point x="564" y="1099"/>
+ <point x="676" y="1242"/>
+ <point x="839" y="1242" type="curve" smooth="yes"/>
+ <point x="971" y="1242"/>
+ <point x="1010" y="1140"/>
+ <point x="1010" y="992" type="curve" smooth="yes"/>
+ <point x="1010" y="907"/>
+ <point x="991" y="811"/>
+ </contour>
+ <contour>
+ <point x="1246" y="689" type="curve" smooth="yes"/>
+ <point x="1281" y="828"/>
+ <point x="1298" y="927"/>
+ <point x="1298" y="1028" type="curve" smooth="yes"/>
+ <point x="1298" y="1317"/>
+ <point x="1158" y="1470"/>
+ <point x="906" y="1470" type="curve" smooth="yes"/>
+ <point x="587" y="1470"/>
+ <point x="329" y="1302"/>
+ <point x="190" y="745" type="curve" smooth="yes"/>
+ <point x="157" y="611"/>
+ <point x="141" y="516"/>
+ <point x="141" y="420" type="curve" smooth="yes"/>
+ <point x="141" y="131"/>
+ <point x="292" y="-25"/>
+ <point x="533" y="-25" type="curve" smooth="yes"/>
+ <point x="854" y="-25"/>
+ <point x="1103" y="115"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/D_ollarS_gn.glif b/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/D_ollarS_gn.glif
new file mode 100644
index 0000000..0b8bdfc
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/D_ollarS_gn.glif
@@ -0,0 +1,57 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DollarSgn" format="2">
+ <advance width="1180"/>
+ <unicode hex="0024"/>
+ <outline>
+ <contour>
+ <point x="879" y="1584" type="line"/>
+ <point x="679" y="780" type="line"/>
+ <point x="634" y="719" type="line"/>
+ <point x="400" y="-218" type="line"/>
+ <point x="576" y="-218" type="line"/>
+ <point x="795" y="661" type="line"/>
+ <point x="842" y="727" type="line"/>
+ <point x="1055" y="1584" type="line"/>
+ </contour>
+ <contour>
+ <point x="1250" y="1303" type="line"/>
+ <point x="1145" y="1355"/>
+ <point x="1026" y="1375"/>
+ <point x="885" y="1375" type="curve" smooth="yes"/>
+ <point x="537" y="1375"/>
+ <point x="345" y="1216"/>
+ <point x="345" y="984" type="curve" smooth="yes"/>
+ <point x="345" y="841"/>
+ <point x="441" y="726"/>
+ <point x="638" y="622" type="curve" smooth="yes"/>
+ <point x="832" y="519"/>
+ <point x="881" y="451"/>
+ <point x="881" y="381" type="curve" smooth="yes"/>
+ <point x="881" y="274"/>
+ <point x="817" y="209"/>
+ <point x="613" y="209" type="curve" smooth="yes"/>
+ <point x="462" y="209"/>
+ <point x="336" y="298"/>
+ <point x="259" y="389" type="curve"/>
+ <point x="133" y="143" type="line"/>
+ <point x="243" y="56"/>
+ <point x="378" y="0"/>
+ <point x="566" y="0" type="curve" smooth="yes"/>
+ <point x="879" y="0"/>
+ <point x="1120" y="142"/>
+ <point x="1120" y="396" type="curve" smooth="yes"/>
+ <point x="1120" y="562"/>
+ <point x="1028" y="682"/>
+ <point x="817" y="803" type="curve" smooth="yes"/>
+ <point x="635" y="908"/>
+ <point x="592" y="958"/>
+ <point x="592" y="1016" type="curve" smooth="yes"/>
+ <point x="592" y="1113"/>
+ <point x="649" y="1176"/>
+ <point x="826" y="1176" type="curve" smooth="yes"/>
+ <point x="954" y="1176"/>
+ <point x="1048" y="1135"/>
+ <point x="1134" y="1066" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/D_ottedC_irc.glif b/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/D_ottedC_irc.glif
new file mode 100644
index 0000000..f7581b6
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/D_ottedC_irc.glif
@@ -0,0 +1,235 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DottedCirc" format="2">
+ <advance width="1086"/>
+ <unicode hex="25CC"/>
+ <anchor x="493" y="0" name="H"/>
+ <anchor x="545" y="-100" name="L"/>
+ <anchor x="750" y="0" name="O"/>
+ <anchor x="645" y="1000" name="U"/>
+ <outline>
+ <contour>
+ <point x="443" y="837" type="curve" smooth="yes"/>
+ <point x="443" y="864"/>
+ <point x="423" y="885"/>
+ <point x="398" y="885" type="curve" smooth="yes"/>
+ <point x="371" y="885"/>
+ <point x="348" y="861"/>
+ <point x="348" y="837" type="curve" smooth="yes"/>
+ <point x="348" y="809"/>
+ <point x="372" y="789"/>
+ <point x="398" y="789" type="curve" smooth="yes"/>
+ <point x="425" y="789"/>
+ <point x="443" y="812"/>
+ </contour>
+ <contour>
+ <point x="758" y="79" type="curve" smooth="yes"/>
+ <point x="758" y="106"/>
+ <point x="736" y="127"/>
+ <point x="710" y="127" type="curve" smooth="yes"/>
+ <point x="685" y="127"/>
+ <point x="662" y="103"/>
+ <point x="662" y="80" type="curve" smooth="yes"/>
+ <point x="662" y="52"/>
+ <point x="686" y="31"/>
+ <point x="710" y="31" type="curve" smooth="yes"/>
+ <point x="737" y="31"/>
+ <point x="758" y="55"/>
+ </contour>
+ <contour>
+ <point x="310" y="749" type="curve" smooth="yes"/>
+ <point x="310" y="775"/>
+ <point x="288" y="796"/>
+ <point x="263" y="796" type="curve" smooth="yes"/>
+ <point x="238" y="796"/>
+ <point x="215" y="774"/>
+ <point x="215" y="747" type="curve" smooth="yes"/>
+ <point x="215" y="722"/>
+ <point x="236" y="701"/>
+ <point x="263" y="701" type="curve" smooth="yes"/>
+ <point x="291" y="701"/>
+ <point x="310" y="720"/>
+ </contour>
+ <contour>
+ <point x="891" y="168" type="curve" smooth="yes"/>
+ <point x="891" y="197"/>
+ <point x="870" y="215"/>
+ <point x="843" y="215" type="curve" smooth="yes"/>
+ <point x="817" y="215"/>
+ <point x="795" y="194"/>
+ <point x="795" y="168" type="curve" smooth="yes"/>
+ <point x="795" y="143"/>
+ <point x="816" y="121"/>
+ <point x="843" y="121" type="curve" smooth="yes"/>
+ <point x="871" y="121"/>
+ <point x="891" y="143"/>
+ </contour>
+ <contour>
+ <point x="222" y="613" type="curve" smooth="yes"/>
+ <point x="222" y="640"/>
+ <point x="199" y="663"/>
+ <point x="173" y="663" type="curve" smooth="yes"/>
+ <point x="149" y="663"/>
+ <point x="126" y="642"/>
+ <point x="126" y="615" type="curve" smooth="yes"/>
+ <point x="126" y="591"/>
+ <point x="145" y="567"/>
+ <point x="173" y="567" type="curve" smooth="yes"/>
+ <point x="197" y="567"/>
+ <point x="222" y="587"/>
+ </contour>
+ <contour>
+ <point x="980" y="301" type="curve" smooth="yes"/>
+ <point x="980" y="327"/>
+ <point x="957" y="348"/>
+ <point x="932" y="348" type="curve" smooth="yes"/>
+ <point x="908" y="348"/>
+ <point x="884" y="332"/>
+ <point x="884" y="301" type="curve" smooth="yes"/>
+ <point x="884" y="277"/>
+ <point x="902" y="254"/>
+ <point x="932" y="254" type="curve" smooth="yes"/>
+ <point x="957" y="254"/>
+ <point x="980" y="274"/>
+ </contour>
+ <contour>
+ <point x="191" y="459" type="curve" smooth="yes"/>
+ <point x="191" y="484"/>
+ <point x="168" y="505"/>
+ <point x="143" y="505" type="curve" smooth="yes"/>
+ <point x="116" y="505"/>
+ <point x="95" y="484"/>
+ <point x="95" y="458" type="curve" smooth="yes"/>
+ <point x="95" y="433"/>
+ <point x="115" y="410"/>
+ <point x="143" y="410" type="curve" smooth="yes"/>
+ <point x="167" y="410"/>
+ <point x="191" y="432"/>
+ </contour>
+ <contour>
+ <point x="1011" y="458" type="curve" smooth="yes"/>
+ <point x="1011" y="484"/>
+ <point x="990" y="506"/>
+ <point x="964" y="506" type="curve" smooth="yes"/>
+ <point x="940" y="506"/>
+ <point x="915" y="484"/>
+ <point x="915" y="457" type="curve" smooth="yes"/>
+ <point x="915" y="433"/>
+ <point x="936" y="411"/>
+ <point x="964" y="411" type="curve" smooth="yes"/>
+ <point x="990" y="411"/>
+ <point x="1011" y="433"/>
+ </contour>
+ <contour>
+ <point x="222" y="302" type="curve" smooth="yes"/>
+ <point x="222" y="328"/>
+ <point x="200" y="348"/>
+ <point x="174" y="348" type="curve" smooth="yes"/>
+ <point x="147" y="348"/>
+ <point x="126" y="326"/>
+ <point x="126" y="302" type="curve" smooth="yes"/>
+ <point x="126" y="275"/>
+ <point x="149" y="253"/>
+ <point x="174" y="253" type="curve" smooth="yes"/>
+ <point x="201" y="253"/>
+ <point x="222" y="277"/>
+ </contour>
+ <contour>
+ <point x="980" y="615" type="curve" smooth="yes"/>
+ <point x="980" y="642"/>
+ <point x="955" y="663"/>
+ <point x="931" y="663" type="curve" smooth="yes"/>
+ <point x="904" y="663"/>
+ <point x="885" y="638"/>
+ <point x="885" y="614" type="curve" smooth="yes"/>
+ <point x="885" y="588"/>
+ <point x="907" y="567"/>
+ <point x="931" y="567" type="curve" smooth="yes"/>
+ <point x="959" y="567"/>
+ <point x="980" y="591"/>
+ </contour>
+ <contour>
+ <point x="310" y="168" type="curve" smooth="yes"/>
+ <point x="310" y="195"/>
+ <point x="291" y="215"/>
+ <point x="263" y="215" type="curve" smooth="yes"/>
+ <point x="238" y="215"/>
+ <point x="215" y="190"/>
+ <point x="215" y="168" type="curve" smooth="yes"/>
+ <point x="215" y="143"/>
+ <point x="238" y="120"/>
+ <point x="263" y="120" type="curve" smooth="yes"/>
+ <point x="289" y="120"/>
+ <point x="310" y="143"/>
+ </contour>
+ <contour>
+ <point x="890" y="748" type="curve" smooth="yes"/>
+ <point x="890" y="774"/>
+ <point x="870" y="796"/>
+ <point x="843" y="796" type="curve" smooth="yes"/>
+ <point x="815" y="796"/>
+ <point x="796" y="773"/>
+ <point x="796" y="748" type="curve" smooth="yes"/>
+ <point x="796" y="724"/>
+ <point x="817" y="700"/>
+ <point x="843" y="700" type="curve" smooth="yes"/>
+ <point x="869" y="700"/>
+ <point x="890" y="722"/>
+ </contour>
+ <contour>
+ <point x="444" y="78" type="curve" smooth="yes"/>
+ <point x="444" y="102"/>
+ <point x="423" y="126"/>
+ <point x="396" y="126" type="curve" smooth="yes"/>
+ <point x="370" y="126"/>
+ <point x="348" y="102"/>
+ <point x="348" y="78" type="curve" smooth="yes"/>
+ <point x="348" y="55"/>
+ <point x="370" y="31"/>
+ <point x="396" y="31" type="curve" smooth="yes"/>
+ <point x="420" y="31"/>
+ <point x="444" y="51"/>
+ </contour>
+ <contour>
+ <point x="758" y="836" type="curve" smooth="yes"/>
+ <point x="758" y="861"/>
+ <point x="737" y="885"/>
+ <point x="710" y="885" type="curve" smooth="yes"/>
+ <point x="684" y="885"/>
+ <point x="663" y="862"/>
+ <point x="663" y="838" type="curve" smooth="yes"/>
+ <point x="663" y="814"/>
+ <point x="683" y="789"/>
+ <point x="710" y="789" type="curve" smooth="yes"/>
+ <point x="734" y="789"/>
+ <point x="758" y="809"/>
+ </contour>
+ <contour>
+ <point x="601" y="47" type="curve" smooth="yes"/>
+ <point x="601" y="73"/>
+ <point x="579" y="95"/>
+ <point x="553" y="95" type="curve" smooth="yes"/>
+ <point x="527" y="95"/>
+ <point x="506" y="73"/>
+ <point x="506" y="47" type="curve" smooth="yes"/>
+ <point x="506" y="21"/>
+ <point x="527" y="0"/>
+ <point x="553" y="0" type="curve" smooth="yes"/>
+ <point x="579" y="0"/>
+ <point x="601" y="21"/>
+ </contour>
+ <contour>
+ <point x="601" y="868" type="curve" smooth="yes"/>
+ <point x="601" y="894"/>
+ <point x="579" y="916"/>
+ <point x="553" y="916" type="curve" smooth="yes"/>
+ <point x="527" y="916"/>
+ <point x="506" y="894"/>
+ <point x="506" y="868" type="curve" smooth="yes"/>
+ <point x="506" y="842"/>
+ <point x="527" y="821"/>
+ <point x="553" y="821" type="curve" smooth="yes"/>
+ <point x="579" y="821"/>
+ <point x="601" y="842"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/E_qS_gn.glif b/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/E_qS_gn.glif
new file mode 100644
index 0000000..0461eab
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/E_qS_gn.glif
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="EqSgn" format="2">
+ <advance width="1180"/>
+ <unicode hex="003D"/>
+ <outline>
+ <contour>
+ <point x="168" y="436" type="line"/>
+ <point x="1128" y="436" type="line"/>
+ <point x="1180" y="643" type="line"/>
+ <point x="220" y="643" type="line"/>
+ </contour>
+ <contour>
+ <point x="259" y="802" type="line"/>
+ <point x="1219" y="802" type="line"/>
+ <point x="1271" y="1010" type="line"/>
+ <point x="311" y="1010" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/E_xclamationM_rk.glif b/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/E_xclamationM_rk.glif
new file mode 100644
index 0000000..167f45e
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/E_xclamationM_rk.glif
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="ExclamationMrk" format="2">
+ <advance width="760"/>
+ <unicode hex="0021"/>
+ <outline>
+ <contour>
+ <point x="593" y="495" type="line"/>
+ <point x="670" y="782"/>
+ <point x="736" y="1065"/>
+ <point x="882" y="1495" type="curve"/>
+ <point x="547" y="1495" type="line"/>
+ <point x="478" y="1065"/>
+ <point x="402" y="782"/>
+ <point x="338" y="495" type="curve"/>
+ </contour>
+ <contour>
+ <point x="201" y="116" type="curve" smooth="yes"/>
+ <point x="201" y="35"/>
+ <point x="262" y="-25"/>
+ <point x="348" y="-25" type="curve" smooth="yes"/>
+ <point x="466" y="-25"/>
+ <point x="561" y="71"/>
+ <point x="561" y="181" type="curve" smooth="yes"/>
+ <point x="561" y="261"/>
+ <point x="502" y="322"/>
+ <point x="415" y="322" type="curve" smooth="yes"/>
+ <point x="298" y="322"/>
+ <point x="201" y="226"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/F_ullS_top.glif b/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/F_ullS_top.glif
new file mode 100644
index 0000000..cfedcd4
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/F_ullS_top.glif
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="FullStop" format="2">
+ <advance width="690"/>
+ <unicode hex="002E"/>
+ <outline>
+ <contour>
+ <point x="171" y="116" type="curve" smooth="yes"/>
+ <point x="171" y="35"/>
+ <point x="232" y="-25"/>
+ <point x="318" y="-25" type="curve" smooth="yes"/>
+ <point x="436" y="-25"/>
+ <point x="531" y="71"/>
+ <point x="531" y="181" type="curve" smooth="yes"/>
+ <point x="531" y="261"/>
+ <point x="472" y="322"/>
+ <point x="385" y="322" type="curve" smooth="yes"/>
+ <point x="268" y="322"/>
+ <point x="171" y="226"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/G_T_S_gn.glif b/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/G_T_S_gn.glif
new file mode 100644
index 0000000..6dab866
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/G_T_S_gn.glif
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="GTSgn" format="2">
+ <advance width="1180"/>
+ <unicode hex="003E"/>
+ <outline>
+ <contour>
+ <point x="130" y="243" type="line"/>
+ <point x="1186" y="629" type="line"/>
+ <point x="1233" y="817" type="line"/>
+ <point x="369" y="1203" type="line"/>
+ <point x="313" y="975" type="line"/>
+ <point x="930" y="733" type="line"/>
+ <point x="187" y="470" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/G_raveA_ccent.glif b/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/G_raveA_ccent.glif
new file mode 100644
index 0000000..f745b6a
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/G_raveA_ccent.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="GraveAccent" format="2">
+ <advance width="620"/>
+ <unicode hex="0060"/>
+ <anchor x="848" y="1635" name="U"/>
+ <outline>
+ <contour>
+ <point x="265" y="1584" type="line"/>
+ <point x="587" y="1188" type="line"/>
+ <point x="817" y="1188" type="line"/>
+ <point x="595" y="1584" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/H_yphen.glif b/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/H_yphen.glif
new file mode 100644
index 0000000..810f855
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/H_yphen.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Hyphen" format="2">
+ <advance width="860"/>
+ <unicode hex="2010"/>
+ <anchor x="655" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="139" y="520" type="line"/>
+ <point x="879" y="520" type="line"/>
+ <point x="931" y="728" type="line"/>
+ <point x="191" y="728" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/H_yphenM_inus.glif b/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/H_yphenM_inus.glif
new file mode 100644
index 0000000..d8ce949
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/H_yphenM_inus.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="HyphenMinus" format="2">
+ <advance width="875"/>
+ <unicode hex="002D"/>
+ <anchor x="665" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="149" y="520" type="line"/>
+ <point x="884" y="520" type="line"/>
+ <point x="936" y="728" type="line"/>
+ <point x="201" y="728" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/H_yphen_S_oft.glif b/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/H_yphen_S_oft.glif
new file mode 100644
index 0000000..2f651fa
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/H_yphen_S_oft.glif
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Hyphen_Soft" format="2">
+ <advance width="875"/>
+ <unicode hex="00AD"/>
+ <anchor x="665" y="1100" name="U"/>
+ <outline>
+ <component base="HyphenMinus"/>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_T_S_gn.glif b/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_T_S_gn.glif
new file mode 100644
index 0000000..b2883d3
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_T_S_gn.glif
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LTSgn" format="2">
+ <advance width="1180"/>
+ <unicode hex="003C"/>
+ <outline>
+ <contour>
+ <point x="1127" y="470" type="line"/>
+ <point x="510" y="713" type="line"/>
+ <point x="1253" y="975" type="line"/>
+ <point x="1309" y="1203" type="line"/>
+ <point x="253" y="817" type="line"/>
+ <point x="206" y="629" type="line"/>
+ <point x="1070" y="243" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_ftC_urlyB_rac.glif b/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_ftC_urlyB_rac.glif
new file mode 100644
index 0000000..c92f889
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_ftC_urlyB_rac.glif
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LftCurlyBrac" format="2">
+ <advance width="1020"/>
+ <unicode hex="007B"/>
+ <outline>
+ <contour>
+ <point x="790" y="-177" type="line"/>
+ <point x="717" y="-149"/>
+ <point x="597" y="-129"/>
+ <point x="597" y="-79" type="curve" smooth="yes"/>
+ <point x="597" y="16"/>
+ <point x="695" y="378"/>
+ <point x="695" y="435" type="curve" smooth="yes"/>
+ <point x="695" y="476"/>
+ <point x="574" y="568"/>
+ <point x="574" y="605" type="curve" smooth="yes"/>
+ <point x="574" y="644"/>
+ <point x="742" y="733"/>
+ <point x="776" y="777" type="curve" smooth="yes"/>
+ <point x="803" y="812"/>
+ <point x="908" y="1276"/>
+ <point x="953" y="1317" type="curve" smooth="yes"/>
+ <point x="975" y="1337"/>
+ <point x="1090" y="1376"/>
+ <point x="1157" y="1395" type="curve"/>
+ <point x="1165" y="1624" type="line"/>
+ <point x="1031" y="1597"/>
+ <point x="827" y="1546"/>
+ <point x="768" y="1500" type="curve" smooth="yes"/>
+ <point x="677" y="1428"/>
+ <point x="542" y="843"/>
+ <point x="512" y="812" type="curve" smooth="yes"/>
+ <point x="472" y="770"/>
+ <point x="260" y="659"/>
+ <point x="260" y="601" type="curve" smooth="yes"/>
+ <point x="260" y="540"/>
+ <point x="412" y="434"/>
+ <point x="412" y="399" type="curve" smooth="yes"/>
+ <point x="412" y="337"/>
+ <point x="311" y="-52"/>
+ <point x="311" y="-216" type="curve" smooth="yes"/>
+ <point x="311" y="-248"/>
+ <point x="315" y="-271"/>
+ <point x="324" y="-282" type="curve" smooth="yes"/>
+ <point x="362" y="-330"/>
+ <point x="554" y="-379"/>
+ <point x="683" y="-406" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_ftP_aren.glif b/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_ftP_aren.glif
new file mode 100644
index 0000000..42e4531
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_ftP_aren.glif
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LftParen" format="2">
+ <advance width="840"/>
+ <unicode hex="0028"/>
+ <outline>
+ <contour>
+ <point x="899" y="1624" type="line"/>
+ <point x="586" y="1430"/>
+ <point x="317" y="1081"/>
+ <point x="209" y="649" type="curve" smooth="yes"/>
+ <point x="177" y="521"/>
+ <point x="161" y="397"/>
+ <point x="161" y="277" type="curve" smooth="yes"/>
+ <point x="161" y="20"/>
+ <point x="234" y="-214"/>
+ <point x="373" y="-406" type="curve"/>
+ <point x="565" y="-198" type="line"/>
+ <point x="479" y="-42"/>
+ <point x="436" y="130"/>
+ <point x="436" y="315" type="curve" smooth="yes"/>
+ <point x="436" y="422"/>
+ <point x="450" y="534"/>
+ <point x="479" y="649" type="curve" smooth="yes"/>
+ <point x="559" y="972"/>
+ <point x="715" y="1216"/>
+ <point x="966" y="1411" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_ftS_qrB_rac.glif b/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_ftS_qrB_rac.glif
new file mode 100644
index 0000000..db76a2d
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_ftS_qrB_rac.glif
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LftSqrBrac" format="2">
+ <advance width="830"/>
+ <unicode hex="005B"/>
+ <outline>
+ <contour>
+ <point x="553" y="-406" type="line"/>
+ <point x="605" y="-198" type="line"/>
+ <point x="365" y="-198" type="line"/>
+ <point x="753" y="1376" type="line"/>
+ <point x="993" y="1376" type="line"/>
+ <point x="1044" y="1584" type="line"/>
+ <point x="524" y="1584" type="line"/>
+ <point x="33" y="-406" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_owL_ine.glif b/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_owL_ine.glif
new file mode 100644
index 0000000..de8a991
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_owL_ine.glif
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LowLine" format="2">
+ <advance width="1254"/>
+ <unicode hex="005F"/>
+ <outline>
+ <contour>
+ <point x="-146" y="-347" type="line"/>
+ <point x="1127" y="-347" type="line"/>
+ <point x="1179" y="-139" type="line"/>
+ <point x="-94" y="-139" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_tnC_apA_.glif b/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_tnC_apA_.glif
new file mode 100644
index 0000000..592502c
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_tnC_apA_.glif
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapA" format="2">
+ <advance width="1465"/>
+ <unicode hex="0041"/>
+ <anchor x="1215" y="0" name="H"/>
+ <anchor x="647" y="-100" name="L"/>
+ <anchor x="1435" y="0" name="O"/>
+ <anchor x="1054" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1055" y="0" type="line"/>
+ <point x="1338" y="0" type="line"/>
+ <point x="1322" y="79"/>
+ <point x="1312" y="166"/>
+ <point x="1295" y="351" type="curve" smooth="yes"/>
+ <point x="1198" y="1445" type="line"/>
+ <point x="842" y="1445" type="line"/>
+ <point x="199" y="351" type="line" smooth="yes"/>
+ <point x="89" y="164"/>
+ <point x="37" y="80"/>
+ <point x="-18" y="0" type="curve"/>
+ <point x="290" y="0" type="line"/>
+ <point x="487" y="351" type="line"/>
+ <point x="1031" y="351" type="line"/>
+ </contour>
+ <contour>
+ <point x="973" y="1216" type="line"/>
+ <point x="1016" y="564" type="line"/>
+ <point x="606" y="564" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_tnC_apA_D_iaer.glif b/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_tnC_apA_D_iaer.glif
new file mode 100644
index 0000000..17600b4
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_tnC_apA_D_iaer.glif
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapADiaer" format="2">
+ <advance width="1465"/>
+ <unicode hex="00C4"/>
+ <anchor x="1215" y="0" name="H"/>
+ <anchor x="647" y="-100" name="L"/>
+ <anchor x="1435" y="0" name="O"/>
+ <anchor x="1176" y="2015" name="U"/>
+ <outline>
+ <component base="LtnCapA"/>
+ <component base="CombDiaer" xOffset="1419" yOffset="430"/>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_tnC_apB_.glif b/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_tnC_apB_.glif
new file mode 100644
index 0000000..2b14150
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_tnC_apB_.glif
@@ -0,0 +1,62 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapB" format="2">
+ <advance width="1367"/>
+ <unicode hex="0042"/>
+ <anchor x="585" y="-100" name="L"/>
+ <anchor x="992" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="698" y="1236" type="line"/>
+ <point x="735" y="1237"/>
+ <point x="791" y="1240"/>
+ <point x="860" y="1240" type="curve" smooth="yes"/>
+ <point x="1021" y="1240"/>
+ <point x="1101" y="1179"/>
+ <point x="1101" y="1087" type="curve" smooth="yes"/>
+ <point x="1101" y="932"/>
+ <point x="962" y="866"/>
+ <point x="770" y="866" type="curve" smooth="yes"/>
+ <point x="605" y="866" type="line"/>
+ </contour>
+ <contour>
+ <point x="217" y="450" type="line"/>
+ <point x="168" y="254"/>
+ <point x="124" y="79"/>
+ <point x="90" y="0" type="curve"/>
+ <point x="161" y="-3"/>
+ <point x="368" y="-10"/>
+ <point x="598" y="-10" type="curve" smooth="yes"/>
+ <point x="1055" y="-10"/>
+ <point x="1298" y="206"/>
+ <point x="1298" y="508" type="curve" smooth="yes"/>
+ <point x="1298" y="673"/>
+ <point x="1188" y="759"/>
+ <point x="1072" y="792" type="curve"/>
+ <point x="1254" y="848"/>
+ <point x="1388" y="956"/>
+ <point x="1388" y="1155" type="curve" smooth="yes"/>
+ <point x="1388" y="1359"/>
+ <point x="1181" y="1455"/>
+ <point x="897" y="1455" type="curve" smooth="yes"/>
+ <point x="704" y="1455"/>
+ <point x="549" y="1451"/>
+ <point x="450" y="1445" type="curve"/>
+ <point x="445" y="1366"/>
+ <point x="399" y="1182"/>
+ <point x="351" y="990" type="curve" smooth="yes"/>
+ </contour>
+ <contour>
+ <point x="552" y="651" type="line"/>
+ <point x="745" y="651" type="line" smooth="yes"/>
+ <point x="927" y="651"/>
+ <point x="1019" y="577"/>
+ <point x="1019" y="468" type="curve" smooth="yes"/>
+ <point x="1019" y="295"/>
+ <point x="879" y="213"/>
+ <point x="675" y="213" type="curve" smooth="yes"/>
+ <point x="575" y="213"/>
+ <point x="476" y="216"/>
+ <point x="444" y="218" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_tnC_apC_.glif b/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_tnC_apC_.glif
new file mode 100644
index 0000000..569eba9
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_tnC_apC_.glif
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapC" format="2">
+ <advance width="1357"/>
+ <unicode hex="0043"/>
+ <anchor x="685" y="0" name="H"/>
+ <anchor x="660" y="-100" name="L"/>
+ <anchor x="1067" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1286" y="391" type="line"/>
+ <point x="1149" y="280"/>
+ <point x="966" y="218"/>
+ <point x="816" y="218" type="curve" smooth="yes"/>
+ <point x="594" y="218"/>
+ <point x="472" y="349"/>
+ <point x="472" y="588" type="curve" smooth="yes"/>
+ <point x="472" y="922"/>
+ <point x="690" y="1230"/>
+ <point x="1039" y="1230" type="curve" smooth="yes"/>
+ <point x="1170" y="1230"/>
+ <point x="1298" y="1188"/>
+ <point x="1385" y="1093" type="curve"/>
+ <point x="1515" y="1331" type="line"/>
+ <point x="1408" y="1418"/>
+ <point x="1247" y="1470"/>
+ <point x="1073" y="1470" type="curve" smooth="yes"/>
+ <point x="545" y="1470"/>
+ <point x="191" y="1032"/>
+ <point x="191" y="544" type="curve" smooth="yes"/>
+ <point x="191" y="210"/>
+ <point x="404" y="-25"/>
+ <point x="750" y="-25" type="curve" smooth="yes"/>
+ <point x="921" y="-25"/>
+ <point x="1124" y="27"/>
+ <point x="1271" y="124" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_tnC_apD_.glif b/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_tnC_apD_.glif
new file mode 100644
index 0000000..093d346
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_tnC_apD_.glif
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapD" format="2">
+ <advance width="1465"/>
+ <unicode hex="0044"/>
+ <anchor x="690" y="-100" name="L"/>
+ <anchor x="1122" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="217" y="450" type="line" smooth="yes"/>
+ <point x="167" y="251"/>
+ <point x="124" y="79"/>
+ <point x="90" y="0" type="curve"/>
+ <point x="90" y="0"/>
+ <point x="431" y="-10"/>
+ <point x="566" y="-10" type="curve" smooth="yes"/>
+ <point x="1036" y="-10"/>
+ <point x="1361" y="195"/>
+ <point x="1471" y="648" type="curve" smooth="yes"/>
+ <point x="1494" y="742"/>
+ <point x="1505" y="827"/>
+ <point x="1505" y="902" type="curve" smooth="yes"/>
+ <point x="1505" y="1325"/>
+ <point x="1172" y="1455"/>
+ <point x="912" y="1455" type="curve" smooth="yes"/>
+ <point x="769" y="1455"/>
+ <point x="540" y="1451"/>
+ <point x="450" y="1445" type="curve"/>
+ <point x="445" y="1371"/>
+ <point x="404" y="1205"/>
+ <point x="359" y="1024" type="curve" smooth="yes"/>
+ </contour>
+ <contour>
+ <point x="696" y="1229" type="line"/>
+ <point x="738" y="1231"/>
+ <point x="809" y="1234"/>
+ <point x="864" y="1234" type="curve" smooth="yes"/>
+ <point x="1077" y="1234"/>
+ <point x="1212" y="1104"/>
+ <point x="1212" y="871" type="curve" smooth="yes"/>
+ <point x="1212" y="805"/>
+ <point x="1201" y="731"/>
+ <point x="1181" y="647" type="curve" smooth="yes"/>
+ <point x="1108" y="346"/>
+ <point x="930" y="219"/>
+ <point x="647" y="219" type="curve" smooth="yes"/>
+ <point x="568" y="219"/>
+ <point x="485" y="225"/>
+ <point x="447" y="229" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_tnC_apE_.glif b/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_tnC_apE_.glif
new file mode 100644
index 0000000..8e7a0a1
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_tnC_apE_.glif
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapE" format="2">
+ <advance width="1192"/>
+ <unicode hex="0045"/>
+ <anchor x="550" y="0" name="H"/>
+ <anchor x="525" y="-100" name="L"/>
+ <anchor x="944" y="0" name="O"/>
+ <anchor x="1487" y="1200" name="R"/>
+ <anchor x="932" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="605" y="866" type="line"/>
+ <point x="693" y="1217" type="line"/>
+ <point x="1315" y="1217" type="line"/>
+ <point x="1372" y="1445" type="line"/>
+ <point x="450" y="1445" type="line"/>
+ <point x="444" y="1366"/>
+ <point x="406" y="1210"/>
+ <point x="358" y="1015" type="curve" smooth="yes"/>
+ <point x="212" y="431" type="line" smooth="yes"/>
+ <point x="163" y="236"/>
+ <point x="123" y="79"/>
+ <point x="90" y="0" type="curve"/>
+ <point x="1042" y="0" type="line"/>
+ <point x="1102" y="243" type="line"/>
+ <point x="1021" y="229"/>
+ <point x="895" y="228"/>
+ <point x="704" y="228" type="curve" smooth="yes"/>
+ <point x="446" y="228" type="line"/>
+ <point x="550" y="644" type="line"/>
+ <point x="1097" y="644" type="line"/>
+ <point x="1152" y="866" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_tnC_apF_.glif b/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_tnC_apF_.glif
new file mode 100644
index 0000000..df3370c
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_tnC_apF_.glif
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapF" format="2">
+ <advance width="1180"/>
+ <unicode hex="0046"/>
+ <anchor x="545" y="-100" name="L"/>
+ <anchor x="952" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="602" y="851" type="line"/>
+ <point x="693" y="1217" type="line"/>
+ <point x="1333" y="1217" type="line"/>
+ <point x="1390" y="1445" type="line"/>
+ <point x="450" y="1445" type="line"/>
+ <point x="445" y="1366"/>
+ <point x="405" y="1205"/>
+ <point x="356" y="1010" type="curve" smooth="yes"/>
+ <point x="212" y="431" type="line" smooth="yes"/>
+ <point x="163" y="236"/>
+ <point x="123" y="79"/>
+ <point x="90" y="0" type="curve"/>
+ <point x="405" y="0" type="line"/>
+ <point x="407" y="72"/>
+ <point x="444" y="220"/>
+ <point x="490" y="404" type="curve" smooth="yes"/>
+ <point x="546" y="629" type="line"/>
+ <point x="1101" y="629" type="line"/>
+ <point x="1157" y="851" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_tnC_apG_.glif b/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_tnC_apG_.glif
new file mode 100644
index 0000000..7d36953
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_tnC_apG_.glif
@@ -0,0 +1,48 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapG" format="2">
+ <advance width="1452"/>
+ <unicode hex="0047"/>
+ <anchor x="747" y="0" name="H"/>
+ <anchor x="722" y="-100" name="L"/>
+ <anchor x="1129" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1480" y="767" type="line"/>
+ <point x="910" y="767" type="line"/>
+ <point x="855" y="544" type="line"/>
+ <point x="1170" y="544" type="line"/>
+ <point x="1104" y="271" type="line"/>
+ <point x="1015" y="231"/>
+ <point x="916" y="218"/>
+ <point x="805" y="218" type="curve" smooth="yes"/>
+ <point x="593" y="218"/>
+ <point x="475" y="352"/>
+ <point x="475" y="567" type="curve" smooth="yes"/>
+ <point x="475" y="633"/>
+ <point x="484" y="708"/>
+ <point x="505" y="789" type="curve" smooth="yes"/>
+ <point x="581" y="1079"/>
+ <point x="802" y="1230"/>
+ <point x="1067" y="1230" type="curve" smooth="yes"/>
+ <point x="1220" y="1230"/>
+ <point x="1334" y="1193"/>
+ <point x="1449" y="1096" type="curve"/>
+ <point x="1594" y="1332" type="line"/>
+ <point x="1447" y="1437"/>
+ <point x="1275" y="1470"/>
+ <point x="1094" y="1470" type="curve" smooth="yes"/>
+ <point x="709" y="1470"/>
+ <point x="345" y="1257"/>
+ <point x="227" y="783" type="curve" smooth="yes"/>
+ <point x="205" y="694"/>
+ <point x="194" y="611"/>
+ <point x="194" y="534" type="curve" smooth="yes"/>
+ <point x="194" y="176"/>
+ <point x="419" y="-25"/>
+ <point x="768" y="-25" type="curve" smooth="yes"/>
+ <point x="940" y="-25"/>
+ <point x="1105" y="10"/>
+ <point x="1325" y="133" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_tnC_apH_.glif b/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_tnC_apH_.glif
new file mode 100644
index 0000000..a49f5fb
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_tnC_apH_.glif
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapH" format="2">
+ <advance width="1495"/>
+ <unicode hex="0048"/>
+ <anchor x="245" y="0" name="H"/>
+ <anchor x="660" y="-100" name="L"/>
+ <anchor x="1067" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1340" y="1445" type="line"/>
+ <point x="1192" y="851" type="line"/>
+ <point x="602" y="851" type="line"/>
+ <point x="750" y="1445" type="line"/>
+ <point x="450" y="1445" type="line"/>
+ <point x="445" y="1366"/>
+ <point x="408" y="1215"/>
+ <point x="359" y="1020" type="curve" smooth="yes"/>
+ <point x="211" y="426" type="line" smooth="yes"/>
+ <point x="162" y="231"/>
+ <point x="124" y="79"/>
+ <point x="90" y="0" type="curve"/>
+ <point x="90" y="0"/>
+ <point x="390" y="0"/>
+ <point x="390" y="0" type="curve"/>
+ <point x="546" y="629" type="line"/>
+ <point x="1136" y="629" type="line"/>
+ <point x="980" y="0" type="line"/>
+ <point x="980" y="0"/>
+ <point x="1280" y="0"/>
+ <point x="1280" y="0" type="curve"/>
+ <point x="1284" y="79"/>
+ <point x="1322" y="231"/>
+ <point x="1371" y="426" type="curve" smooth="yes"/>
+ <point x="1519" y="1020" type="line" smooth="yes"/>
+ <point x="1567" y="1215"/>
+ <point x="1605" y="1366"/>
+ <point x="1640" y="1445" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_tnC_apI_.glif b/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_tnC_apI_.glif
new file mode 100644
index 0000000..fc059de
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_tnC_apI_.glif
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapI" format="2">
+ <advance width="1025"/>
+ <unicode hex="0049"/>
+ <anchor x="460" y="0" name="H"/>
+ <anchor x="431" y="-100" name="L"/>
+ <anchor x="652" y="0" name="O"/>
+ <anchor x="1254" y="1200" name="R"/>
+ <anchor x="842" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="430" y="1445" type="line"/>
+ <point x="379" y="1242" type="line"/>
+ <point x="619" y="1242" type="line"/>
+ <point x="360" y="203" type="line"/>
+ <point x="120" y="203" type="line"/>
+ <point x="70" y="0" type="line"/>
+ <point x="835" y="0" type="line"/>
+ <point x="885" y="203" type="line"/>
+ <point x="645" y="203" type="line"/>
+ <point x="904" y="1242" type="line"/>
+ <point x="1144" y="1242" type="line"/>
+ <point x="1195" y="1445" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_tnC_apJ_.glif b/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_tnC_apJ_.glif
new file mode 100644
index 0000000..6a3a604
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_tnC_apJ_.glif
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapJ" format="2">
+ <advance width="1010"/>
+ <unicode hex="004A"/>
+ <anchor x="330" y="-100" name="L"/>
+ <anchor x="1027" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="855" y="1445" type="line"/>
+ <point x="842" y="1340"/>
+ <point x="799" y="1163"/>
+ <point x="751" y="970" type="curve" smooth="yes"/>
+ <point x="647" y="552" type="line" smooth="yes"/>
+ <point x="602" y="370"/>
+ <point x="516" y="225"/>
+ <point x="341" y="225" type="curve" smooth="yes"/>
+ <point x="260" y="225"/>
+ <point x="159" y="267"/>
+ <point x="104" y="344" type="curve"/>
+ <point x="-8" y="89" type="line"/>
+ <point x="51" y="19"/>
+ <point x="191" y="-25"/>
+ <point x="326" y="-25" type="curve" smooth="yes"/>
+ <point x="611" y="-25"/>
+ <point x="826" y="128"/>
+ <point x="927" y="530" type="curve" smooth="yes"/>
+ <point x="947" y="612"/>
+ <point x="1155" y="1445"/>
+ <point x="1155" y="1445" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_tnC_apK_.glif b/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_tnC_apK_.glif
new file mode 100644
index 0000000..44d4d68
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_tnC_apK_.glif
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapK" format="2">
+ <advance width="1410"/>
+ <unicode hex="004B"/>
+ <anchor x="260" y="0" name="H"/>
+ <anchor x="655" y="-100" name="L"/>
+ <anchor x="1047" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="750" y="1445" type="line"/>
+ <point x="450" y="1445" type="line"/>
+ <point x="444" y="1366"/>
+ <point x="406" y="1210"/>
+ <point x="358" y="1015" type="curve" smooth="yes"/>
+ <point x="212" y="431" type="line" smooth="yes"/>
+ <point x="163" y="236"/>
+ <point x="123" y="79"/>
+ <point x="90" y="0" type="curve"/>
+ <point x="390" y="0" type="line"/>
+ </contour>
+ <contour>
+ <point x="1244" y="1445" type="line"/>
+ <point x="461" y="697" type="line"/>
+ <point x="634" y="738" type="line"/>
+ <point x="758" y="724" type="line"/>
+ <point x="1580" y="1445" type="line"/>
+ </contour>
+ <contour>
+ <point x="509" y="724" type="line"/>
+ <point x="950" y="0" type="line"/>
+ <point x="1300" y="0" type="line"/>
+ <point x="738" y="801" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_tnC_apL_.glif b/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_tnC_apL_.glif
new file mode 100644
index 0000000..f8d6959
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_tnC_apL_.glif
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapL" format="2">
+ <advance width="1110"/>
+ <unicode hex="004C"/>
+ <anchor x="560" y="0" name="H"/>
+ <anchor x="535" y="-100" name="L"/>
+ <anchor x="890" y="1200" name="R"/>
+ <anchor x="942" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="446" y="228" type="line"/>
+ <point x="750" y="1445" type="line"/>
+ <point x="450" y="1445" type="line"/>
+ <point x="444" y="1366"/>
+ <point x="406" y="1210"/>
+ <point x="358" y="1015" type="curve" smooth="yes"/>
+ <point x="212" y="431" type="line" smooth="yes"/>
+ <point x="163" y="236"/>
+ <point x="123" y="79"/>
+ <point x="90" y="0" type="curve"/>
+ <point x="1025" y="0" type="line"/>
+ <point x="1085" y="243" type="line"/>
+ <point x="1005" y="229"/>
+ <point x="851" y="228"/>
+ <point x="662" y="228" type="curve" smooth="yes"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_tnC_apM_.glif b/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_tnC_apM_.glif
new file mode 100644
index 0000000..67d1463
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_tnC_apM_.glif
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapM" format="2">
+ <advance width="1835"/>
+ <unicode hex="004D"/>
+ <anchor x="830" y="-100" name="L"/>
+ <anchor x="1237" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="919" y="272" type="line"/>
+ <point x="865" y="1445" type="line"/>
+ <point x="615" y="1445" type="line"/>
+ <point x="664" y="1158" type="line"/>
+ <point x="710" y="0" type="line"/>
+ <point x="1005" y="0" type="line"/>
+ <point x="1625" y="1158" type="line"/>
+ <point x="1817" y="1445" type="line"/>
+ <point x="1550" y="1445" type="line"/>
+ </contour>
+ <contour>
+ <point x="520" y="1445" type="line"/>
+ <point x="520" y="1445"/>
+ <point x="164" y="196"/>
+ <point x="90" y="0" type="curve"/>
+ <point x="360" y="0" type="line"/>
+ <point x="686" y="1193" type="line"/>
+ <point x="785" y="1445" type="line"/>
+ </contour>
+ <contour>
+ <point x="1630" y="0" type="line"/>
+ <point x="1649" y="196"/>
+ <point x="1910" y="1445"/>
+ <point x="1910" y="1445" type="curve"/>
+ <point x="1640" y="1445" type="line"/>
+ <point x="1622" y="1193" type="line"/>
+ <point x="1360" y="0" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_tnC_apN_.glif b/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_tnC_apN_.glif
new file mode 100644
index 0000000..838490a
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_tnC_apN_.glif
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapN" format="2">
+ <advance width="1525"/>
+ <unicode hex="004E"/>
+ <anchor x="1180" y="0" name="H"/>
+ <anchor x="680" y="-100" name="L"/>
+ <anchor x="1087" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="506" y="1297" type="line"/>
+ <point x="1035" y="0" type="line"/>
+ <point x="1253" y="148" type="line"/>
+ <point x="725" y="1445" type="line"/>
+ </contour>
+ <contour>
+ <point x="1035" y="0" type="line"/>
+ <point x="1305" y="0" type="line"/>
+ <point x="1558" y="1015" type="line" smooth="yes"/>
+ <point x="1606" y="1210"/>
+ <point x="1646" y="1366"/>
+ <point x="1680" y="1445" type="curve"/>
+ <point x="1395" y="1445" type="line"/>
+ </contour>
+ <contour>
+ <point x="725" y="1445" type="line"/>
+ <point x="440" y="1445" type="line"/>
+ <point x="434" y="1366"/>
+ <point x="396" y="1210"/>
+ <point x="348" y="1015" type="curve" smooth="yes"/>
+ <point x="202" y="431" type="line" smooth="yes"/>
+ <point x="153" y="236"/>
+ <point x="113" y="79"/>
+ <point x="80" y="0" type="curve"/>
+ <point x="365" y="0" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_tnC_apO_.glif b/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_tnC_apO_.glif
new file mode 100644
index 0000000..4410e20
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_tnC_apO_.glif
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapO" format="2">
+ <advance width="1480"/>
+ <unicode hex="004F"/>
+ <anchor x="680" y="0" name="H"/>
+ <anchor x="655" y="-100" name="L"/>
+ <anchor x="916" y="0" name="O"/>
+ <anchor x="1720" y="1200" name="R"/>
+ <anchor x="1062" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="754" y="218" type="curve" smooth="yes"/>
+ <point x="580" y="218"/>
+ <point x="471" y="345"/>
+ <point x="471" y="568" type="curve" smooth="yes"/>
+ <point x="471" y="922"/>
+ <point x="664" y="1228"/>
+ <point x="966" y="1228" type="curve" smooth="yes"/>
+ <point x="1134" y="1228"/>
+ <point x="1237" y="1106"/>
+ <point x="1237" y="891" type="curve" smooth="yes"/>
+ <point x="1237" y="540"/>
+ <point x="1060" y="218"/>
+ </contour>
+ <contour>
+ <point x="1519" y="911" type="curve" smooth="yes"/>
+ <point x="1519" y="1249"/>
+ <point x="1350" y="1470"/>
+ <point x="1026" y="1470" type="curve" smooth="yes"/>
+ <point x="510" y="1470"/>
+ <point x="191" y="1010"/>
+ <point x="191" y="539" type="curve" smooth="yes"/>
+ <point x="191" y="199"/>
+ <point x="401" y="-25"/>
+ <point x="693" y="-25" type="curve" smooth="yes"/>
+ <point x="1121" y="-25"/>
+ <point x="1519" y="337"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_tnC_apP_.glif b/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_tnC_apP_.glif
new file mode 100644
index 0000000..b0d40c0
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_tnC_apP_.glif
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapP" format="2">
+ <advance width="1255"/>
+ <unicode hex="0050"/>
+ <anchor x="600" y="-100" name="L"/>
+ <anchor x="970" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="519" y="518" type="line"/>
+ <point x="582" y="511"/>
+ <point x="661" y="508"/>
+ <point x="734" y="508" type="curve" smooth="yes"/>
+ <point x="1118" y="508"/>
+ <point x="1393" y="718"/>
+ <point x="1393" y="1076" type="curve" smooth="yes"/>
+ <point x="1393" y="1306"/>
+ <point x="1215" y="1455"/>
+ <point x="940" y="1455" type="curve" smooth="yes"/>
+ <point x="727" y="1455"/>
+ <point x="450" y="1445"/>
+ <point x="450" y="1445" type="curve"/>
+ <point x="445" y="1366"/>
+ <point x="400" y="1184"/>
+ <point x="351" y="990" type="curve" smooth="yes"/>
+ <point x="212" y="431" type="line" smooth="yes"/>
+ <point x="164" y="237"/>
+ <point x="124" y="79"/>
+ <point x="90" y="0" type="curve"/>
+ <point x="405" y="0" type="line"/>
+ <point x="410" y="77"/>
+ <point x="448" y="235"/>
+ <point x="497" y="431" type="curve" smooth="yes"/>
+ </contour>
+ <contour>
+ <point x="696" y="1228" type="line"/>
+ <point x="752" y="1231"/>
+ <point x="781" y="1233"/>
+ <point x="849" y="1233" type="curve" smooth="yes"/>
+ <point x="1020" y="1233"/>
+ <point x="1103" y="1135"/>
+ <point x="1103" y="1020" type="curve" smooth="yes"/>
+ <point x="1103" y="827"/>
+ <point x="965" y="723"/>
+ <point x="758" y="723" type="curve" smooth="yes"/>
+ <point x="696" y="723"/>
+ <point x="614" y="726"/>
+ <point x="572" y="733" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_tnC_apQ_.glif b/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_tnC_apQ_.glif
new file mode 100644
index 0000000..7013e5f
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_tnC_apQ_.glif
@@ -0,0 +1,52 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapQ" format="2">
+ <advance width="1488"/>
+ <unicode hex="0051"/>
+ <anchor x="619" y="-270" name="L"/>
+ <anchor x="1069" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1527" y="922" type="curve" smooth="yes"/>
+ <point x="1527" y="1259"/>
+ <point x="1324" y="1470"/>
+ <point x="1029" y="1470" type="curve" smooth="yes"/>
+ <point x="663" y="1470"/>
+ <point x="339" y="1229"/>
+ <point x="221" y="755" type="curve" smooth="yes"/>
+ <point x="201" y="673"/>
+ <point x="191" y="597"/>
+ <point x="191" y="526" type="curve" smooth="yes"/>
+ <point x="191" y="185"/>
+ <point x="410" y="-25"/>
+ <point x="696" y="-25" type="curve" smooth="yes"/>
+ <point x="743" y="-25"/>
+ <point x="787" y="-23"/>
+ <point x="838" y="-15" type="curve"/>
+ <point x="907" y="-15"/>
+ <point x="1162" y="-221"/>
+ <point x="1246" y="-221" type="curve" smooth="yes"/>
+ <point x="1310" y="-221"/>
+ <point x="1422" y="-74"/>
+ <point x="1468" y="-22" type="curve"/>
+ <point x="1331" y="-6"/>
+ <point x="1227" y="60"/>
+ <point x="1115" y="134" type="curve"/>
+ <point x="1312" y="242"/>
+ <point x="1527" y="566"/>
+ </contour>
+ <contour>
+ <point x="757" y="218" type="curve" smooth="yes"/>
+ <point x="563" y="218"/>
+ <point x="471" y="355"/>
+ <point x="471" y="558" type="curve" smooth="yes"/>
+ <point x="471" y="912"/>
+ <point x="677" y="1228"/>
+ <point x="969" y="1228" type="curve" smooth="yes"/>
+ <point x="1147" y="1228"/>
+ <point x="1246" y="1106"/>
+ <point x="1246" y="891" type="curve" smooth="yes"/>
+ <point x="1246" y="560"/>
+ <point x="1053" y="218"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_tnC_apR_.glif b/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_tnC_apR_.glif
new file mode 100644
index 0000000..9133fd2
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_tnC_apR_.glif
@@ -0,0 +1,55 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapR" format="2">
+ <advance width="1360"/>
+ <unicode hex="0052"/>
+ <anchor x="630" y="0" name="H"/>
+ <anchor x="605" y="-100" name="L"/>
+ <anchor x="982" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="534" y="579" type="line"/>
+ <point x="749" y="579" type="line" smooth="yes"/>
+ <point x="1071" y="579"/>
+ <point x="1378" y="761"/>
+ <point x="1378" y="1117" type="curve" smooth="yes"/>
+ <point x="1378" y="1332"/>
+ <point x="1199" y="1455"/>
+ <point x="932" y="1455" type="curve" smooth="yes"/>
+ <point x="698" y="1455"/>
+ <point x="450" y="1445"/>
+ <point x="450" y="1445" type="curve"/>
+ <point x="445" y="1366"/>
+ <point x="400" y="1184"/>
+ <point x="351" y="990" type="curve" smooth="yes"/>
+ <point x="212" y="431" type="line"/>
+ <point x="164" y="236"/>
+ <point x="124" y="79"/>
+ <point x="90" y="0" type="curve"/>
+ <point x="405" y="0" type="line"/>
+ <point x="410" y="77"/>
+ <point x="448" y="236"/>
+ <point x="497" y="431" type="curve"/>
+ </contour>
+ <contour>
+ <point x="696" y="1228" type="line"/>
+ <point x="749" y="1231"/>
+ <point x="764" y="1233"/>
+ <point x="842" y="1233" type="curve" smooth="yes"/>
+ <point x="995" y="1233"/>
+ <point x="1089" y="1167"/>
+ <point x="1089" y="1060" type="curve" smooth="yes"/>
+ <point x="1089" y="899"/>
+ <point x="956" y="792"/>
+ <point x="782" y="792" type="curve" smooth="yes"/>
+ <point x="587" y="792" type="line"/>
+ </contour>
+ <contour>
+ <point x="652" y="629" type="line"/>
+ <point x="915" y="0" type="line"/>
+ <point x="1270" y="0" type="line"/>
+ <point x="1220" y="72"/>
+ <point x="962" y="623"/>
+ <point x="936" y="680" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_tnC_apS_.glif b/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_tnC_apS_.glif
new file mode 100644
index 0000000..79fe933
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_tnC_apS_.glif
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapS" format="2">
+ <advance width="1223"/>
+ <unicode hex="0053"/>
+ <anchor x="556" y="0" name="H"/>
+ <anchor x="531" y="-100" name="L"/>
+ <anchor x="938" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1339" y="1361" type="line"/>
+ <point x="1232" y="1430"/>
+ <point x="1086" y="1470"/>
+ <point x="916" y="1470" type="curve" smooth="yes"/>
+ <point x="600" y="1470"/>
+ <point x="332" y="1333"/>
+ <point x="332" y="1053" type="curve" smooth="yes"/>
+ <point x="332" y="889"/>
+ <point x="413" y="800"/>
+ <point x="621" y="658" type="curve" smooth="yes"/>
+ <point x="829" y="516"/>
+ <point x="885" y="448"/>
+ <point x="885" y="374" type="curve" smooth="yes"/>
+ <point x="885" y="276"/>
+ <point x="772" y="218"/>
+ <point x="624" y="218" type="curve" smooth="yes"/>
+ <point x="463" y="218"/>
+ <point x="270" y="340"/>
+ <point x="184" y="461" type="curve"/>
+ <point x="67" y="189" type="line"/>
+ <point x="147" y="91"/>
+ <point x="394" y="-25"/>
+ <point x="573" y="-25" type="curve" smooth="yes"/>
+ <point x="923" y="-25"/>
+ <point x="1182" y="124"/>
+ <point x="1182" y="419" type="curve" smooth="yes"/>
+ <point x="1182" y="584"/>
+ <point x="1077" y="682"/>
+ <point x="881" y="831" type="curve" smooth="yes"/>
+ <point x="728" y="947"/>
+ <point x="628" y="1010"/>
+ <point x="628" y="1082" type="curve" smooth="yes"/>
+ <point x="628" y="1198"/>
+ <point x="790" y="1230"/>
+ <point x="877" y="1230" type="curve" smooth="yes"/>
+ <point x="1018" y="1230"/>
+ <point x="1119" y="1189"/>
+ <point x="1228" y="1099" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_tnC_apT_.glif b/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_tnC_apT_.glif
new file mode 100644
index 0000000..b7aa4cd
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_tnC_apT_.glif
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapT" format="2">
+ <advance width="1255"/>
+ <unicode hex="0054"/>
+ <anchor x="572" y="0" name="H"/>
+ <anchor x="547" y="-100" name="L"/>
+ <anchor x="954" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="345" y="1445" type="line"/>
+ <point x="283" y="1198" type="line"/>
+ <point x="359" y="1215"/>
+ <point x="439" y="1218"/>
+ <point x="519" y="1218" type="curve" smooth="yes"/>
+ <point x="731" y="1218" type="line"/>
+ <point x="529" y="409" type="line" smooth="yes"/>
+ <point x="483" y="224"/>
+ <point x="443" y="75"/>
+ <point x="408" y="0" type="curve"/>
+ <point x="733" y="0" type="line"/>
+ <point x="734" y="75"/>
+ <point x="768" y="224"/>
+ <point x="814" y="409" type="curve" smooth="yes"/>
+ <point x="1016" y="1218" type="line"/>
+ <point x="1232" y="1218" type="line" smooth="yes"/>
+ <point x="1313" y="1218"/>
+ <point x="1390" y="1215"/>
+ <point x="1458" y="1198" type="curve"/>
+ <point x="1520" y="1445" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_tnC_apU_.glif b/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_tnC_apU_.glif
new file mode 100644
index 0000000..a01a283
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_tnC_apU_.glif
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapU" format="2">
+ <advance width="1470"/>
+ <unicode hex="0055"/>
+ <anchor x="672" y="0" name="H"/>
+ <anchor x="647" y="-100" name="L"/>
+ <anchor x="890" y="0" name="O"/>
+ <anchor x="1720" y="1200" name="R"/>
+ <anchor x="1054" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1315" y="1445" type="line"/>
+ <point x="1093" y="554" type="line" smooth="yes"/>
+ <point x="1040" y="341"/>
+ <point x="952" y="202"/>
+ <point x="735" y="202" type="curve" smooth="yes"/>
+ <point x="572" y="202"/>
+ <point x="515" y="305"/>
+ <point x="515" y="435" type="curve" smooth="yes"/>
+ <point x="515" y="482"/>
+ <point x="523" y="533"/>
+ <point x="535" y="583" type="curve" smooth="yes"/>
+ <point x="750" y="1445" type="line"/>
+ <point x="450" y="1445" type="line"/>
+ <point x="444" y="1366"/>
+ <point x="406" y="1210"/>
+ <point x="358" y="1015" type="curve" smooth="yes"/>
+ <point x="249" y="570" type="line" smooth="yes"/>
+ <point x="235" y="512"/>
+ <point x="228" y="457"/>
+ <point x="228" y="404" type="curve" smooth="yes"/>
+ <point x="228" y="155"/>
+ <point x="385" y="-25"/>
+ <point x="698" y="-25" type="curve" smooth="yes"/>
+ <point x="1063" y="-25"/>
+ <point x="1275" y="148"/>
+ <point x="1356" y="470" type="curve" smooth="yes"/>
+ <point x="1493" y="1015" type="line" smooth="yes"/>
+ <point x="1544" y="1220"/>
+ <point x="1582" y="1366"/>
+ <point x="1615" y="1445" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_tnC_apV_.glif b/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_tnC_apV_.glif
new file mode 100644
index 0000000..07a71af
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_tnC_apV_.glif
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapV" format="2">
+ <advance width="1445"/>
+ <unicode hex="0056"/>
+ <anchor x="670" y="0" name="H"/>
+ <anchor x="637" y="-100" name="L"/>
+ <anchor x="870" y="0" name="O"/>
+ <anchor x="1044" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1405" y="1445" type="line"/>
+ <point x="721" y="257" type="line"/>
+ <point x="620" y="1445" type="line"/>
+ <point x="325" y="1445" type="line"/>
+ <point x="339" y="1364"/>
+ <point x="354" y="1275"/>
+ <point x="375" y="1084" type="curve" smooth="yes"/>
+ <point x="495" y="0" type="line"/>
+ <point x="830" y="0" type="line"/>
+ <point x="1490" y="1084" type="line" smooth="yes"/>
+ <point x="1606" y="1276"/>
+ <point x="1664" y="1364"/>
+ <point x="1720" y="1445" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_tnC_apW_.glif b/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_tnC_apW_.glif
new file mode 100644
index 0000000..f0e3607
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_tnC_apW_.glif
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapW" format="2">
+ <advance width="2115"/>
+ <unicode hex="0057"/>
+ <anchor x="967" y="-100" name="L"/>
+ <anchor x="1374" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1430" y="0" type="line"/>
+ <point x="1595" y="0" type="line"/>
+ <point x="2165" y="1084" type="line" smooth="yes"/>
+ <point x="2266" y="1277"/>
+ <point x="2318" y="1364"/>
+ <point x="2370" y="1445" type="curve"/>
+ <point x="2050" y="1445" type="line"/>
+ <point x="1432" y="129" type="line"/>
+ </contour>
+ <contour>
+ <point x="1470" y="1445" type="line"/>
+ <point x="1220" y="1445" type="line"/>
+ <point x="1257" y="1292" type="line"/>
+ <point x="1280" y="0" type="line"/>
+ <point x="1450" y="0" type="line"/>
+ <point x="1492" y="129" type="line"/>
+ </contour>
+ <contour>
+ <point x="540" y="0" type="line"/>
+ <point x="705" y="0" type="line"/>
+ <point x="1367" y="1292" type="line"/>
+ <point x="1470" y="1445" type="line"/>
+ <point x="1210" y="1445" type="line"/>
+ <point x="542" y="129" type="line"/>
+ </contour>
+ <contour>
+ <point x="630" y="1445" type="line"/>
+ <point x="330" y="1445" type="line"/>
+ <point x="341" y="1367"/>
+ <point x="349" y="1273"/>
+ <point x="355" y="1084" type="curve" smooth="yes"/>
+ <point x="390" y="0" type="line"/>
+ <point x="560" y="0" type="line"/>
+ <point x="602" y="129" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_tnC_apX_.glif b/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_tnC_apX_.glif
new file mode 100644
index 0000000..633303c
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_tnC_apX_.glif
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapX" format="2">
+ <advance width="1345"/>
+ <unicode hex="0058"/>
+ <anchor x="585" y="-100" name="L"/>
+ <anchor x="992" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="930" y="0" type="line"/>
+ <point x="1240" y="0" type="line"/>
+ <point x="1199" y="81"/>
+ <point x="1172" y="125"/>
+ <point x="1096" y="333" type="curve" smooth="yes"/>
+ <point x="690" y="1445" type="line"/>
+ <point x="375" y="1445" type="line"/>
+ <point x="418" y="1362"/>
+ <point x="454" y="1304"/>
+ <point x="529" y="1099" type="curve" smooth="yes"/>
+ </contour>
+ <contour>
+ <point x="768" y="938" type="line"/>
+ <point x="269" y="337" type="line" smooth="yes"/>
+ <point x="94" y="126"/>
+ <point x="44" y="85"/>
+ <point x="-40" y="0" type="curve"/>
+ <point x="290" y="0" type="line"/>
+ <point x="790" y="603" type="line"/>
+ </contour>
+ <contour>
+ <point x="830" y="603" type="line"/>
+ <point x="1251" y="1099" type="line" smooth="yes"/>
+ <point x="1423" y="1302"/>
+ <point x="1492" y="1369"/>
+ <point x="1575" y="1445" type="curve"/>
+ <point x="1240" y="1445" type="line"/>
+ <point x="808" y="938" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_tnC_apY_.glif b/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_tnC_apY_.glif
new file mode 100644
index 0000000..49af854
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_tnC_apY_.glif
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapY" format="2">
+ <advance width="1344"/>
+ <unicode hex="0059"/>
+ <anchor x="587" y="-100" name="L"/>
+ <anchor x="994" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="325" y="1445" type="line"/>
+ <point x="400" y="1298"/>
+ <point x="438" y="1185"/>
+ <point x="482" y="1054" type="curve" smooth="yes"/>
+ <point x="653" y="554" type="line"/>
+ <point x="868" y="668" type="line"/>
+ <point x="637" y="1445" type="line"/>
+ </contour>
+ <contour>
+ <point x="1282" y="1445" type="line"/>
+ <point x="668" y="668" type="line"/>
+ <point x="848" y="554" type="line"/>
+ <point x="1271" y="1054" type="line" smooth="yes"/>
+ <point x="1379" y="1183"/>
+ <point x="1459" y="1278"/>
+ <point x="1619" y="1445" type="curve"/>
+ </contour>
+ <contour>
+ <point x="770" y="0" type="line"/>
+ <point x="774" y="79"/>
+ <point x="813" y="236"/>
+ <point x="862" y="431" type="curve" smooth="yes"/>
+ <point x="926" y="688" type="line"/>
+ <point x="641" y="688" type="line"/>
+ <point x="577" y="431" type="line" smooth="yes"/>
+ <point x="528" y="236"/>
+ <point x="488" y="79"/>
+ <point x="455" y="0" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_tnS_mA_.glif b/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_tnS_mA_.glif
new file mode 100644
index 0000000..0208140
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_tnS_mA_.glif
@@ -0,0 +1,79 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmA" format="2">
+ <advance width="1185"/>
+ <unicode hex="0061"/>
+ <anchor x="925" y="0" name="H"/>
+ <anchor x="525" y="-100" name="L"/>
+ <anchor x="1125" y="0" name="O"/>
+ <anchor x="1335" y="1000" name="R"/>
+ <anchor x="825" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="1060" y="0" type="line"/>
+ <point x="1054" y="44"/>
+ <point x="1051" y="87"/>
+ <point x="1051" y="133" type="curve" smooth="yes"/>
+ <point x="1051" y="204"/>
+ <point x="1059" y="280"/>
+ <point x="1081" y="366" type="curve"/>
+ <point x="1128" y="557"/>
+ <point x="1156" y="665"/>
+ <point x="1170" y="722" type="curve"/>
+ <point x="1174" y="738"/>
+ <point x="1176" y="754"/>
+ <point x="1176" y="770" type="curve" smooth="yes"/>
+ <point x="1176" y="909"/>
+ <point x="1026" y="1030"/>
+ <point x="791" y="1030" type="curve" smooth="yes"/>
+ <point x="632" y="1030"/>
+ <point x="514" y="994"/>
+ <point x="389" y="940" type="curve"/>
+ <point x="363" y="859"/>
+ <point x="327" y="728"/>
+ <point x="315" y="684" type="curve"/>
+ <point x="452" y="765"/>
+ <point x="565" y="808"/>
+ <point x="673" y="808" type="curve" smooth="yes"/>
+ <point x="809" y="808"/>
+ <point x="885" y="760"/>
+ <point x="885" y="709" type="curve" smooth="yes"/>
+ <point x="885" y="705"/>
+ <point x="884" y="700"/>
+ <point x="883" y="696" type="curve" smooth="yes"/>
+ <point x="872" y="653" type="line"/>
+ <point x="831" y="652"/>
+ <point x="669" y="643"/>
+ <point x="598" y="636" type="curve" smooth="yes"/>
+ <point x="367" y="614"/>
+ <point x="109" y="474"/>
+ <point x="109" y="236" type="curve" smooth="yes"/>
+ <point x="109" y="97"/>
+ <point x="215" y="-25"/>
+ <point x="388" y="-25" type="curve" smooth="yes"/>
+ <point x="505" y="-25"/>
+ <point x="633" y="23"/>
+ <point x="773" y="134" type="curve"/>
+ <point x="773" y="78"/>
+ <point x="784" y="28"/>
+ <point x="790" y="0" type="curve"/>
+ </contour>
+ <contour>
+ <point x="797" y="351" type="line"/>
+ <point x="669" y="223"/>
+ <point x="590" y="203"/>
+ <point x="508" y="203" type="curve" smooth="yes"/>
+ <point x="438" y="203"/>
+ <point x="398" y="246"/>
+ <point x="398" y="299" type="curve" smooth="yes"/>
+ <point x="398" y="308"/>
+ <point x="399" y="317"/>
+ <point x="401" y="326" type="curve" smooth="yes"/>
+ <point x="417" y="391"/>
+ <point x="471" y="438"/>
+ <point x="612" y="452" type="curve" smooth="yes"/>
+ <point x="665" y="458"/>
+ <point x="786" y="469"/>
+ <point x="827" y="470" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_tnS_mA_A_cute.glif b/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_tnS_mA_A_cute.glif
new file mode 100644
index 0000000..a91e18b
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_tnS_mA_A_cute.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmAAcute" format="2">
+ <advance width="1185"/>
+ <unicode hex="00E1"/>
+ <anchor x="925" y="0" name="H"/>
+ <anchor x="525" y="-100" name="L"/>
+ <anchor x="1125" y="0" name="O"/>
+ <anchor x="1335" y="1000" name="R"/>
+ <anchor x="899" y="1635" name="U"/>
+ <outline>
+ <component base="LtnSmA"/>
+ <component base="CombAcute" xOffset="1150"/>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_tnS_mA_C_ircum.glif b/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_tnS_mA_C_ircum.glif
new file mode 100644
index 0000000..c17afb1
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_tnS_mA_C_ircum.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmACircum" format="2">
+ <advance width="1185"/>
+ <unicode hex="00E2"/>
+ <anchor x="925" y="0" name="H"/>
+ <anchor x="525" y="-100" name="L"/>
+ <anchor x="1125" y="0" name="O"/>
+ <anchor x="1335" y="1000" name="R"/>
+ <anchor x="916" y="1635" name="U"/>
+ <outline>
+ <component base="LtnSmA"/>
+ <component base="CombCircum" xOffset="1155"/>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_tnS_mA_D_iaer.glif b/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_tnS_mA_D_iaer.glif
new file mode 100644
index 0000000..af45db4
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_tnS_mA_D_iaer.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmADiaer" format="2">
+ <advance width="1185"/>
+ <unicode hex="00E4"/>
+ <anchor x="925" y="0" name="H"/>
+ <anchor x="525" y="-100" name="L"/>
+ <anchor x="1125" y="0" name="O"/>
+ <anchor x="1335" y="1000" name="R"/>
+ <anchor x="947" y="1585" name="U"/>
+ <outline>
+ <component base="LtnSmA"/>
+ <component base="CombDiaer" xOffset="1190"/>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_tnS_mA_G_rave.glif b/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_tnS_mA_G_rave.glif
new file mode 100644
index 0000000..2374c69
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_tnS_mA_G_rave.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmAGrave" format="2">
+ <advance width="1185"/>
+ <unicode hex="00E0"/>
+ <anchor x="925" y="0" name="H"/>
+ <anchor x="525" y="-100" name="L"/>
+ <anchor x="1125" y="0" name="O"/>
+ <anchor x="1335" y="1000" name="R"/>
+ <anchor x="999" y="1635" name="U"/>
+ <outline>
+ <component base="LtnSmA"/>
+ <component base="CombGrave" xOffset="1240"/>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_tnS_mA_R_ingA_bv.glif b/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_tnS_mA_R_ingA_bv.glif
new file mode 100644
index 0000000..f8a7dcc
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_tnS_mA_R_ingA_bv.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmARingAbv" format="2">
+ <advance width="1185"/>
+ <unicode hex="00E5"/>
+ <anchor x="925" y="0" name="H"/>
+ <anchor x="525" y="-100" name="L"/>
+ <anchor x="1125" y="0" name="O"/>
+ <anchor x="1335" y="1000" name="R"/>
+ <anchor x="961" y="1635" name="U"/>
+ <outline>
+ <component base="LtnSmA"/>
+ <component base="CombRingAbv" xOffset="1182"/>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_tnS_mA_T_ilde.glif b/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_tnS_mA_T_ilde.glif
new file mode 100644
index 0000000..4a46027
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_tnS_mA_T_ilde.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmATilde" format="2">
+ <advance width="1185"/>
+ <unicode hex="00E3"/>
+ <anchor x="925" y="0" name="H"/>
+ <anchor x="525" y="-100" name="L"/>
+ <anchor x="1125" y="0" name="O"/>
+ <anchor x="1335" y="1000" name="R"/>
+ <anchor x="860" y="1490" name="U"/>
+ <outline>
+ <component base="LtnSmA"/>
+ <component base="CombTilde" xOffset="1215"/>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_tnS_mB_.glif b/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_tnS_mB_.glif
new file mode 100644
index 0000000..92bd16b
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_tnS_mB_.glif
@@ -0,0 +1,55 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmB" format="2">
+ <advance width="1229"/>
+ <unicode hex="0062"/>
+ <anchor x="550" y="0" name="H"/>
+ <anchor x="525" y="-100" name="L"/>
+ <anchor x="1405" y="1000" name="R"/>
+ <anchor x="958" y="1635" name="U"/>
+ <outline>
+ <contour>
+ <point x="482" y="432" type="line"/>
+ <point x="576" y="610"/>
+ <point x="726" y="787"/>
+ <point x="829" y="787" type="curve" smooth="yes"/>
+ <point x="911" y="787"/>
+ <point x="946" y="705"/>
+ <point x="946" y="590" type="curve" smooth="yes"/>
+ <point x="946" y="465"/>
+ <point x="897" y="350"/>
+ <point x="823" y="275" type="curve" smooth="yes"/>
+ <point x="769" y="221"/>
+ <point x="703" y="188"/>
+ <point x="631" y="188" type="curve" smooth="yes"/>
+ <point x="564" y="188"/>
+ <point x="502" y="202"/>
+ <point x="434" y="238" type="curve"/>
+ </contour>
+ <contour>
+ <point x="445" y="1585" type="line"/>
+ <point x="445" y="1439"/>
+ <point x="404" y="1242"/>
+ <point x="367" y="1095" type="curve" smooth="yes"/>
+ <point x="110" y="64" type="line"/>
+ <point x="252" y="16"/>
+ <point x="400" y="-25"/>
+ <point x="593" y="-25" type="curve" smooth="yes"/>
+ <point x="727" y="-25"/>
+ <point x="845" y="19"/>
+ <point x="942" y="91" type="curve" smooth="yes"/>
+ <point x="1122" y="224"/>
+ <point x="1229" y="453"/>
+ <point x="1229" y="672" type="curve" smooth="yes"/>
+ <point x="1229" y="906"/>
+ <point x="1138" y="1030"/>
+ <point x="985" y="1030" type="curve" smooth="yes"/>
+ <point x="822" y="1030"/>
+ <point x="684" y="906"/>
+ <point x="562" y="756" type="curve"/>
+ <point x="646" y="1095" type="line" smooth="yes"/>
+ <point x="686" y="1255"/>
+ <point x="725" y="1474"/>
+ <point x="725" y="1585" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_tnS_mC_.glif b/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_tnS_mC_.glif
new file mode 100644
index 0000000..62c096c
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_tnS_mC_.glif
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmC" format="2">
+ <advance width="1019"/>
+ <unicode hex="0063"/>
+ <anchor x="495" y="0" name="H"/>
+ <anchor x="490" y="-100" name="L"/>
+ <anchor x="1210" y="1000" name="R"/>
+ <anchor x="790" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="1099" y="959" type="line"/>
+ <point x="1035" y="997"/>
+ <point x="928" y="1030"/>
+ <point x="796" y="1030" type="curve" smooth="yes"/>
+ <point x="446" y="1030"/>
+ <point x="150" y="774"/>
+ <point x="150" y="386" type="curve" smooth="yes"/>
+ <point x="150" y="137"/>
+ <point x="341" y="-25"/>
+ <point x="569" y="-25" type="curve" smooth="yes"/>
+ <point x="718" y="-25"/>
+ <point x="835" y="11"/>
+ <point x="927" y="69" type="curve"/>
+ <point x="937" y="311" type="line"/>
+ <point x="840" y="238"/>
+ <point x="755" y="203"/>
+ <point x="625" y="203" type="curve" smooth="yes"/>
+ <point x="494" y="203"/>
+ <point x="417" y="302"/>
+ <point x="417" y="416" type="curve" smooth="yes"/>
+ <point x="417" y="661"/>
+ <point x="588" y="802"/>
+ <point x="754" y="802" type="curve" smooth="yes"/>
+ <point x="857" y="802"/>
+ <point x="918" y="781"/>
+ <point x="993" y="720" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_tnS_mD_.glif b/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_tnS_mD_.glif
new file mode 100644
index 0000000..fa38d37
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_tnS_mD_.glif
@@ -0,0 +1,65 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmD" format="2">
+ <advance width="1265"/>
+ <unicode hex="0064"/>
+ <anchor x="535" y="0" name="H"/>
+ <anchor x="540" y="-100" name="L"/>
+ <anchor x="1475" y="1000" name="R"/>
+ <anchor x="958" y="1635" name="U"/>
+ <outline>
+ <contour>
+ <point x="913" y="558" type="line"/>
+ <point x="861" y="438"/>
+ <point x="666" y="200"/>
+ <point x="560" y="200" type="curve" smooth="yes"/>
+ <point x="470" y="200"/>
+ <point x="427" y="263"/>
+ <point x="427" y="367" type="curve" smooth="yes"/>
+ <point x="427" y="480"/>
+ <point x="469" y="626"/>
+ <point x="554" y="714" type="curve" smooth="yes"/>
+ <point x="599" y="761"/>
+ <point x="657" y="792"/>
+ <point x="727" y="792" type="curve" smooth="yes"/>
+ <point x="820" y="792"/>
+ <point x="876" y="775"/>
+ <point x="957" y="731" type="curve"/>
+ </contour>
+ <contour>
+ <point x="1144" y="1585" type="line"/>
+ <point x="1144" y="1471"/>
+ <point x="1116" y="1327"/>
+ <point x="1079" y="1175" type="curve" smooth="yes"/>
+ <point x="1020" y="935" type="line"/>
+ <point x="949" y="989"/>
+ <point x="845" y="1030"/>
+ <point x="756" y="1030" type="curve" smooth="yes"/>
+ <point x="630" y="1030"/>
+ <point x="518" y="987"/>
+ <point x="426" y="917" type="curve" smooth="yes"/>
+ <point x="250" y="784"/>
+ <point x="145" y="553"/>
+ <point x="145" y="341" type="curve" smooth="yes"/>
+ <point x="145" y="130"/>
+ <point x="258" y="-25"/>
+ <point x="448" y="-25" type="curve" smooth="yes"/>
+ <point x="597" y="-25"/>
+ <point x="785" y="145"/>
+ <point x="867" y="267" type="curve"/>
+ <point x="855" y="181"/>
+ <point x="855" y="72"/>
+ <point x="855" y="0" type="curve"/>
+ <point x="1130" y="0" type="line"/>
+ <point x="1126" y="23"/>
+ <point x="1125" y="63"/>
+ <point x="1125" y="100" type="curve" smooth="yes"/>
+ <point x="1125" y="200"/>
+ <point x="1142" y="340"/>
+ <point x="1185" y="520" type="curve" smooth="yes"/>
+ <point x="1345" y="1190" type="line" smooth="yes"/>
+ <point x="1387" y="1366"/>
+ <point x="1415" y="1490"/>
+ <point x="1415" y="1585" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_tnS_mE_.glif b/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_tnS_mE_.glif
new file mode 100644
index 0000000..49f5856
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_tnS_mE_.glif
@@ -0,0 +1,52 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmE" format="2">
+ <advance width="1087"/>
+ <unicode hex="0065"/>
+ <anchor x="509" y="0" name="H"/>
+ <anchor x="555" y="-100" name="L"/>
+ <anchor x="840" y="0" name="O"/>
+ <anchor x="1320" y="1000" name="R"/>
+ <anchor x="752" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="1013" y="303" type="line"/>
+ <point x="871" y="230"/>
+ <point x="739" y="198"/>
+ <point x="608" y="198" type="curve" smooth="yes"/>
+ <point x="459" y="198"/>
+ <point x="401" y="297"/>
+ <point x="401" y="428" type="curve" smooth="yes"/>
+ <point x="401" y="683"/>
+ <point x="552" y="822"/>
+ <point x="713" y="822" type="curve" smooth="yes"/>
+ <point x="811" y="822"/>
+ <point x="869" y="782"/>
+ <point x="869" y="720" type="curve" smooth="yes"/>
+ <point x="869" y="635"/>
+ <point x="777" y="580"/>
+ <point x="533" y="580" type="curve" smooth="yes"/>
+ <point x="461" y="580"/>
+ <point x="385" y="589"/>
+ <point x="283" y="610" type="curve"/>
+ <point x="283" y="437" type="line"/>
+ <point x="353" y="422"/>
+ <point x="487" y="413"/>
+ <point x="569" y="413" type="curve" smooth="yes"/>
+ <point x="935" y="413"/>
+ <point x="1125" y="583"/>
+ <point x="1125" y="774" type="curve" smooth="yes"/>
+ <point x="1125" y="922"/>
+ <point x="993" y="1030"/>
+ <point x="769" y="1030" type="curve" smooth="yes"/>
+ <point x="435" y="1030"/>
+ <point x="148" y="775"/>
+ <point x="148" y="388" type="curve" smooth="yes"/>
+ <point x="148" y="135"/>
+ <point x="332" y="-25"/>
+ <point x="556" y="-25" type="curve" smooth="yes"/>
+ <point x="712" y="-25"/>
+ <point x="835" y="2"/>
+ <point x="997" y="74" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_tnS_mF_.glif b/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_tnS_mF_.glif
new file mode 100644
index 0000000..fd86bf3
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_tnS_mF_.glif
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmF" format="2">
+ <advance width="859"/>
+ <unicode hex="0066"/>
+ <anchor x="320" y="0" name="H"/>
+ <anchor x="400" y="-100" name="L"/>
+ <anchor x="948" y="1635" name="U"/>
+ <outline>
+ <contour>
+ <point x="180" y="797" type="line"/>
+ <point x="915" y="797" type="line"/>
+ <point x="965" y="995" type="line"/>
+ <point x="230" y="995" type="line"/>
+ </contour>
+ <contour>
+ <point x="1189" y="1534" type="line"/>
+ <point x="1139" y="1572"/>
+ <point x="1040" y="1604"/>
+ <point x="966" y="1604" type="curve" smooth="yes"/>
+ <point x="719" y="1604"/>
+ <point x="535" y="1455"/>
+ <point x="460" y="1158" type="curve" smooth="yes"/>
+ <point x="416" y="983"/>
+ <point x="253" y="334"/>
+ <point x="232" y="0" type="curve"/>
+ <point x="542" y="0" type="line"/>
+ <point x="536" y="28"/>
+ <point x="533" y="66"/>
+ <point x="533" y="110" type="curve" smooth="yes"/>
+ <point x="533" y="213"/>
+ <point x="550" y="356"/>
+ <point x="581" y="489" type="curve" smooth="yes"/>
+ <point x="649" y="784"/>
+ <point x="682" y="926"/>
+ <point x="735" y="1147" type="curve" smooth="yes"/>
+ <point x="774" y="1309"/>
+ <point x="836" y="1373"/>
+ <point x="932" y="1373" type="curve" smooth="yes"/>
+ <point x="981" y="1373"/>
+ <point x="1043" y="1348"/>
+ <point x="1076" y="1309" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_tnS_mG_.glif b/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_tnS_mG_.glif
new file mode 100644
index 0000000..c651c04
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_tnS_mG_.glif
@@ -0,0 +1,91 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmG" format="2">
+ <advance width="1120"/>
+ <unicode hex="0067"/>
+ <anchor x="420" y="-465" name="H"/>
+ <anchor x="403" y="-535" name="L"/>
+ <anchor x="1360" y="1000" name="R"/>
+ <anchor x="782" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="1027" y="-117" type="curve" smooth="yes"/>
+ <point x="1027" y="8"/>
+ <point x="938" y="114"/>
+ <point x="702" y="163" type="curve" smooth="yes"/>
+ <point x="473" y="210"/>
+ <point x="402" y="217"/>
+ <point x="402" y="249" type="curve" smooth="yes"/>
+ <point x="402" y="279"/>
+ <point x="493" y="321"/>
+ <point x="584" y="346" type="curve"/>
+ <point x="359" y="391" type="line"/>
+ <point x="263" y="354"/>
+ <point x="161" y="283"/>
+ <point x="161" y="188" type="curve" smooth="yes"/>
+ <point x="161" y="101"/>
+ <point x="230" y="4"/>
+ <point x="451" y="-23" type="curve" smooth="yes"/>
+ <point x="669" y="-50"/>
+ <point x="740" y="-97"/>
+ <point x="740" y="-157" type="curve" smooth="yes"/>
+ <point x="740" y="-245"/>
+ <point x="591" y="-299"/>
+ <point x="457" y="-299" type="curve" smooth="yes"/>
+ <point x="286" y="-299"/>
+ <point x="197" y="-233"/>
+ <point x="197" y="-180" type="curve" smooth="yes"/>
+ <point x="197" y="-74"/>
+ <point x="405" y="-4"/>
+ <point x="476" y="20" type="curve"/>
+ <point x="476" y="49"/>
+ <point x="250" y="74"/>
+ <point x="250" y="74" type="curve"/>
+ <point x="103" y="20"/>
+ <point x="-91" y="-65"/>
+ <point x="-91" y="-233" type="curve" smooth="yes"/>
+ <point x="-91" y="-409"/>
+ <point x="166" y="-500"/>
+ <point x="392" y="-500" type="curve" smooth="yes"/>
+ <point x="690" y="-500"/>
+ <point x="1027" y="-380"/>
+ </contour>
+ <contour>
+ <point x="1268" y="1030" type="line"/>
+ <point x="1168" y="1023"/>
+ <point x="1027" y="987"/>
+ <point x="924" y="931" type="curve"/>
+ <point x="946" y="762" type="line"/>
+ <point x="1048" y="800"/>
+ <point x="1132" y="815"/>
+ <point x="1205" y="817" type="curve"/>
+ </contour>
+ <contour>
+ <point x="198" y="627" type="curve" smooth="yes"/>
+ <point x="198" y="450"/>
+ <point x="353" y="302"/>
+ <point x="572" y="302" type="curve" smooth="yes"/>
+ <point x="824" y="302"/>
+ <point x="1087" y="444"/>
+ <point x="1087" y="702" type="curve" smooth="yes"/>
+ <point x="1087" y="874"/>
+ <point x="955" y="1030"/>
+ <point x="703" y="1030" type="curve" smooth="yes"/>
+ <point x="454" y="1030"/>
+ <point x="198" y="881"/>
+ </contour>
+ <contour>
+ <point x="663" y="829" type="curve" smooth="yes"/>
+ <point x="761" y="829"/>
+ <point x="842" y="762"/>
+ <point x="842" y="675" type="curve" smooth="yes"/>
+ <point x="842" y="559"/>
+ <point x="733" y="496"/>
+ <point x="620" y="496" type="curve" smooth="yes"/>
+ <point x="524" y="496"/>
+ <point x="450" y="569"/>
+ <point x="450" y="653" type="curve" smooth="yes"/>
+ <point x="450" y="769"/>
+ <point x="560" y="829"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_tnS_mH_.glif b/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_tnS_mH_.glif
new file mode 100644
index 0000000..7160c61
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_tnS_mH_.glif
@@ -0,0 +1,54 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmH" format="2">
+ <advance width="1273"/>
+ <unicode hex="0068"/>
+ <anchor x="220" y="0" name="H"/>
+ <anchor x="635" y="-100" name="L"/>
+ <anchor x="968" y="1635" name="U"/>
+ <outline>
+ <contour>
+ <point x="1140" y="0" type="line"/>
+ <point x="1135" y="29"/>
+ <point x="1129" y="60"/>
+ <point x="1129" y="90" type="curve" smooth="yes"/>
+ <point x="1129" y="135"/>
+ <point x="1134" y="170"/>
+ <point x="1141" y="215" type="curve" smooth="yes"/>
+ <point x="1171" y="400"/>
+ <point x="1253" y="590"/>
+ <point x="1253" y="725" type="curve" smooth="yes"/>
+ <point x="1253" y="900"/>
+ <point x="1183" y="1030"/>
+ <point x="990" y="1030" type="curve" smooth="yes"/>
+ <point x="849" y="1030"/>
+ <point x="694" y="902"/>
+ <point x="566" y="740" type="curve"/>
+ <point x="656" y="1095" type="line" smooth="yes"/>
+ <point x="696" y="1255"/>
+ <point x="735" y="1474"/>
+ <point x="735" y="1585" type="curve"/>
+ <point x="455" y="1585" type="line"/>
+ <point x="455" y="1439"/>
+ <point x="413" y="1242"/>
+ <point x="377" y="1095" type="curve" smooth="yes"/>
+ <point x="105" y="0" type="line"/>
+ <point x="385" y="0" type="line"/>
+ <point x="485" y="400" type="line"/>
+ <point x="580" y="596"/>
+ <point x="745" y="787"/>
+ <point x="850" y="787" type="curve" smooth="yes"/>
+ <point x="937" y="787"/>
+ <point x="953" y="722"/>
+ <point x="953" y="625" type="curve" smooth="yes"/>
+ <point x="953" y="529"/>
+ <point x="889" y="374"/>
+ <point x="863" y="213" type="curve" smooth="yes"/>
+ <point x="857" y="174"/>
+ <point x="853" y="134"/>
+ <point x="853" y="95" type="curve" smooth="yes"/>
+ <point x="853" y="63"/>
+ <point x="854" y="31"/>
+ <point x="860" y="0" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_tnS_mI_.glif b/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_tnS_mI_.glif
new file mode 100644
index 0000000..c19769e
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_tnS_mI_.glif
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmI" format="2">
+ <advance width="625"/>
+ <unicode hex="0069"/>
+ <anchor x="260" y="0" name="H"/>
+ <anchor x="335" y="-100" name="L"/>
+ <anchor x="520" y="0" name="O"/>
+ <anchor x="830" y="1000" name="R"/>
+ <anchor x="535" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="341" y="1010" type="line"/>
+ <point x="341" y="877"/>
+ <point x="290" y="698"/>
+ <point x="252" y="547" type="curve" smooth="yes"/>
+ <point x="213" y="390" type="line" smooth="yes"/>
+ <point x="193" y="309"/>
+ <point x="170" y="191"/>
+ <point x="170" y="88" type="curve" smooth="yes"/>
+ <point x="170" y="57"/>
+ <point x="172" y="27"/>
+ <point x="177" y="0" type="curve"/>
+ <point x="472" y="0" type="line"/>
+ <point x="463" y="39"/>
+ <point x="459" y="82"/>
+ <point x="459" y="126" type="curve" smooth="yes"/>
+ <point x="459" y="217"/>
+ <point x="475" y="310"/>
+ <point x="486" y="358" type="curve" smooth="yes"/>
+ <point x="531" y="546" type="line" smooth="yes"/>
+ <point x="572" y="719"/>
+ <point x="621" y="875"/>
+ <point x="625" y="1010" type="curve"/>
+ </contour>
+ <contour>
+ <point x="404" y="1341" type="curve" smooth="yes"/>
+ <point x="404" y="1259"/>
+ <point x="462" y="1197"/>
+ <point x="548" y="1197" type="curve" smooth="yes"/>
+ <point x="668" y="1197"/>
+ <point x="759" y="1292"/>
+ <point x="759" y="1403" type="curve" smooth="yes"/>
+ <point x="759" y="1483"/>
+ <point x="701" y="1544"/>
+ <point x="614" y="1544" type="curve" smooth="yes"/>
+ <point x="496" y="1544"/>
+ <point x="404" y="1451"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_tnS_mJ_.glif b/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_tnS_mJ_.glif
new file mode 100644
index 0000000..a454f7a
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_tnS_mJ_.glif
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmJ" format="2">
+ <advance width="695"/>
+ <unicode hex="006A"/>
+ <anchor x="-45" y="-500" name="L"/>
+ <anchor x="565" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="361" y="1010" type="line"/>
+ <point x="361" y="866"/>
+ <point x="284" y="395"/>
+ <point x="205" y="87" type="curve" smooth="yes"/>
+ <point x="148" y="-136"/>
+ <point x="54" y="-221"/>
+ <point x="-56" y="-221" type="curve" smooth="yes"/>
+ <point x="-137" y="-221"/>
+ <point x="-217" y="-187"/>
+ <point x="-252" y="-150" type="curve"/>
+ <point x="-355" y="-385" type="line"/>
+ <point x="-321" y="-417"/>
+ <point x="-172" y="-465"/>
+ <point x="-79" y="-465" type="curve" smooth="yes"/>
+ <point x="170" y="-465"/>
+ <point x="388" y="-295"/>
+ <point x="481" y="75" type="curve" smooth="yes"/>
+ <point x="501" y="157"/>
+ <point x="646" y="882"/>
+ <point x="646" y="1010" type="curve"/>
+ </contour>
+ <contour>
+ <point x="395" y="1341" type="curve" smooth="yes"/>
+ <point x="395" y="1259"/>
+ <point x="453" y="1197"/>
+ <point x="539" y="1197" type="curve" smooth="yes"/>
+ <point x="659" y="1197"/>
+ <point x="750" y="1292"/>
+ <point x="750" y="1403" type="curve" smooth="yes"/>
+ <point x="750" y="1483"/>
+ <point x="692" y="1544"/>
+ <point x="605" y="1544" type="curve" smooth="yes"/>
+ <point x="487" y="1544"/>
+ <point x="395" y="1451"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_tnS_mK_.glif b/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_tnS_mK_.glif
new file mode 100644
index 0000000..ed9d720
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_tnS_mK_.glif
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmK" format="2">
+ <advance width="1209"/>
+ <unicode hex="006B"/>
+ <anchor x="880" y="0" name="H"/>
+ <anchor x="600" y="-100" name="L"/>
+ <anchor x="1330" y="1000" name="R"/>
+ <anchor x="943" y="1635" name="U"/>
+ <outline>
+ <contour>
+ <point x="964" y="1010" type="line"/>
+ <point x="920" y="864"/>
+ <point x="682" y="702"/>
+ <point x="483" y="576" type="curve"/>
+ <point x="676" y="518" type="line"/>
+ <point x="915" y="662"/>
+ <point x="1289" y="867"/>
+ <point x="1289" y="1010" type="curve"/>
+ </contour>
+ <contour>
+ <point x="1168" y="0" type="line"/>
+ <point x="992" y="302"/>
+ <point x="856" y="620"/>
+ <point x="633" y="620" type="curve"/>
+ <point x="442" y="529" type="line"/>
+ <point x="606" y="529"/>
+ <point x="722" y="252"/>
+ <point x="831" y="0" type="curve"/>
+ </contour>
+ <contour>
+ <point x="394" y="0" type="line"/>
+ <point x="669" y="1105" type="line" smooth="yes"/>
+ <point x="713" y="1280"/>
+ <point x="744" y="1497"/>
+ <point x="744" y="1585" type="curve"/>
+ <point x="462" y="1585" type="line"/>
+ <point x="462" y="1471"/>
+ <point x="431" y="1274"/>
+ <point x="393" y="1122" type="curve" smooth="yes"/>
+ <point x="345" y="928"/>
+ <point x="115" y="0"/>
+ <point x="115" y="0" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_tnS_mL_.glif b/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_tnS_mL_.glif
new file mode 100644
index 0000000..3ecb48c
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_tnS_mL_.glif
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmL" format="2">
+ <advance width="641"/>
+ <unicode hex="006C"/>
+ <anchor x="275" y="0" name="H"/>
+ <anchor x="350" y="-100" name="L"/>
+ <anchor x="850" y="1000" name="R"/>
+ <anchor x="630" y="1635" name="U"/>
+ <outline>
+ <contour>
+ <point x="461" y="1585" type="line"/>
+ <point x="461" y="1439"/>
+ <point x="420" y="1242"/>
+ <point x="383" y="1095" type="curve" smooth="yes"/>
+ <point x="232" y="488" type="line" smooth="yes"/>
+ <point x="208" y="394"/>
+ <point x="175" y="269"/>
+ <point x="175" y="116" type="curve" smooth="yes"/>
+ <point x="175" y="89"/>
+ <point x="178" y="30"/>
+ <point x="180" y="0" type="curve"/>
+ <point x="470" y="0" type="line"/>
+ <point x="464" y="39"/>
+ <point x="461" y="80"/>
+ <point x="461" y="121" type="curve" smooth="yes"/>
+ <point x="461" y="277"/>
+ <point x="498" y="434"/>
+ <point x="518" y="515" type="curve" smooth="yes"/>
+ <point x="662" y="1095" type="line" smooth="yes"/>
+ <point x="702" y="1255"/>
+ <point x="741" y="1474"/>
+ <point x="741" y="1585" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_tnS_mM_.glif b/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_tnS_mM_.glif
new file mode 100644
index 0000000..6f5967a
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_tnS_mM_.glif
@@ -0,0 +1,80 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmM" format="2">
+ <advance width="1770"/>
+ <unicode hex="006D"/>
+ <anchor x="830" y="0" name="H"/>
+ <anchor x="805" y="-100" name="L"/>
+ <anchor x="1105" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="1609" y="0" type="line"/>
+ <point x="1604" y="29"/>
+ <point x="1602" y="60"/>
+ <point x="1602" y="90" type="curve" smooth="yes"/>
+ <point x="1602" y="136"/>
+ <point x="1606" y="181"/>
+ <point x="1613" y="228" type="curve" smooth="yes"/>
+ <point x="1628" y="333"/>
+ <point x="1747" y="670"/>
+ <point x="1747" y="822" type="curve" smooth="yes"/>
+ <point x="1747" y="958"/>
+ <point x="1681" y="1030"/>
+ <point x="1547" y="1030" type="curve" smooth="yes"/>
+ <point x="1391" y="1030"/>
+ <point x="1227" y="876"/>
+ <point x="1120" y="705" type="curve"/>
+ <point x="1125" y="738"/>
+ <point x="1127" y="769"/>
+ <point x="1127" y="798" type="curve" smooth="yes"/>
+ <point x="1127" y="944"/>
+ <point x="1067" y="1030"/>
+ <point x="941" y="1030" type="curve" smooth="yes"/>
+ <point x="815" y="1030"/>
+ <point x="664" y="911"/>
+ <point x="537" y="715" type="curve"/>
+ <point x="553" y="840"/>
+ <point x="556" y="911"/>
+ <point x="556" y="955" type="curve" smooth="yes"/>
+ <point x="556" y="981"/>
+ <point x="554" y="998"/>
+ <point x="551" y="1010" type="curve"/>
+ <point x="291" y="1010" type="line"/>
+ <point x="293" y="999"/>
+ <point x="294" y="975"/>
+ <point x="294" y="942" type="curve" smooth="yes"/>
+ <point x="294" y="855"/>
+ <point x="286" y="710"/>
+ <point x="261" y="609" type="curve" smooth="yes"/>
+ <point x="110" y="0" type="line"/>
+ <point x="390" y="0" type="line"/>
+ <point x="479" y="370" type="line"/>
+ <point x="541" y="552"/>
+ <point x="711" y="787"/>
+ <point x="791" y="787" type="curve" smooth="yes"/>
+ <point x="843" y="787"/>
+ <point x="857" y="741"/>
+ <point x="857" y="688" type="curve" smooth="yes"/>
+ <point x="857" y="625"/>
+ <point x="832" y="535"/>
+ <point x="819" y="483" type="curve" smooth="yes"/>
+ <point x="695" y="0" type="line"/>
+ <point x="975" y="0" type="line"/>
+ <point x="1067" y="370" type="line"/>
+ <point x="1139" y="556"/>
+ <point x="1300" y="787"/>
+ <point x="1381" y="787" type="curve" smooth="yes"/>
+ <point x="1434" y="787"/>
+ <point x="1450" y="762"/>
+ <point x="1450" y="706" type="curve" smooth="yes"/>
+ <point x="1450" y="592"/>
+ <point x="1350" y="331"/>
+ <point x="1330" y="205" type="curve" smooth="yes"/>
+ <point x="1324" y="168"/>
+ <point x="1321" y="132"/>
+ <point x="1321" y="95" type="curve" smooth="yes"/>
+ <point x="1321" y="63"/>
+ <point x="1323" y="31"/>
+ <point x="1329" y="0" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_tnS_mN_.glif b/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_tnS_mN_.glif
new file mode 100644
index 0000000..009224e
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_tnS_mN_.glif
@@ -0,0 +1,57 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmN" format="2">
+ <advance width="1281"/>
+ <unicode hex="006E"/>
+ <anchor x="560" y="0" name="H"/>
+ <anchor x="635" y="-100" name="L"/>
+ <anchor x="835" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="1145" y="0" type="line"/>
+ <point x="1140" y="29"/>
+ <point x="1138" y="60"/>
+ <point x="1138" y="90" type="curve" smooth="yes"/>
+ <point x="1138" y="136"/>
+ <point x="1141" y="182"/>
+ <point x="1149" y="228" type="curve" smooth="yes"/>
+ <point x="1173" y="366"/>
+ <point x="1258" y="591"/>
+ <point x="1258" y="725" type="curve" smooth="yes"/>
+ <point x="1258" y="890"/>
+ <point x="1188" y="1030"/>
+ <point x="995" y="1030" type="curve" smooth="yes"/>
+ <point x="844" y="1030"/>
+ <point x="685" y="903"/>
+ <point x="546" y="715" type="curve"/>
+ <point x="555" y="771"/>
+ <point x="569" y="875"/>
+ <point x="569" y="933" type="curve" smooth="yes"/>
+ <point x="569" y="962"/>
+ <point x="568" y="988"/>
+ <point x="565" y="1010" type="curve"/>
+ <point x="290" y="1010" type="line"/>
+ <point x="290" y="962" type="line" smooth="yes"/>
+ <point x="290" y="859"/>
+ <point x="280" y="685"/>
+ <point x="261" y="609" type="curve" smooth="yes"/>
+ <point x="110" y="0" type="line"/>
+ <point x="388" y="0" type="line"/>
+ <point x="490" y="405" type="line"/>
+ <point x="569" y="569"/>
+ <point x="740" y="787"/>
+ <point x="835" y="787" type="curve" smooth="yes"/>
+ <point x="922" y="787"/>
+ <point x="958" y="732"/>
+ <point x="958" y="625" type="curve" smooth="yes"/>
+ <point x="958" y="527"/>
+ <point x="891" y="369"/>
+ <point x="866" y="205" type="curve" smooth="yes"/>
+ <point x="860" y="168"/>
+ <point x="857" y="132"/>
+ <point x="857" y="95" type="curve" smooth="yes"/>
+ <point x="857" y="63"/>
+ <point x="859" y="31"/>
+ <point x="865" y="0" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_tnS_mO_.glif b/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_tnS_mO_.glif
new file mode 100644
index 0000000..d21fb58
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_tnS_mO_.glif
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmO" format="2">
+ <advance width="1139"/>
+ <unicode hex="006F"/>
+ <anchor x="518" y="0" name="H"/>
+ <anchor x="530" y="-100" name="L"/>
+ <anchor x="730" y="0" name="O"/>
+ <anchor x="1350" y="1000" name="R"/>
+ <anchor x="795" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="140" y="370" type="curve" smooth="yes"/>
+ <point x="140" y="128"/>
+ <point x="289" y="-25"/>
+ <point x="520" y="-25" type="curve" smooth="yes"/>
+ <point x="906" y="-25"/>
+ <point x="1144" y="295"/>
+ <point x="1144" y="641" type="curve" smooth="yes"/>
+ <point x="1144" y="880"/>
+ <point x="1003" y="1030"/>
+ <point x="773" y="1030" type="curve" smooth="yes"/>
+ <point x="390" y="1030"/>
+ <point x="140" y="718"/>
+ </contour>
+ <contour>
+ <point x="718" y="807" type="curve" smooth="yes"/>
+ <point x="826" y="807"/>
+ <point x="879" y="737"/>
+ <point x="879" y="612" type="curve" smooth="yes"/>
+ <point x="879" y="413"/>
+ <point x="764" y="198"/>
+ <point x="566" y="198" type="curve" smooth="yes"/>
+ <point x="464" y="198"/>
+ <point x="404" y="264"/>
+ <point x="404" y="385" type="curve" smooth="yes"/>
+ <point x="404" y="570"/>
+ <point x="512" y="807"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_tnS_mP_.glif b/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_tnS_mP_.glif
new file mode 100644
index 0000000..55c6e8b
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_tnS_mP_.glif
@@ -0,0 +1,66 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmP" format="2">
+ <advance width="1272"/>
+ <unicode hex="0070"/>
+ <anchor x="121" y="-435" name="H"/>
+ <anchor x="555" y="-500" name="L"/>
+ <anchor x="1425" y="1000" name="R"/>
+ <anchor x="855" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="523" y="500" type="line"/>
+ <point x="605" y="650"/>
+ <point x="765" y="794"/>
+ <point x="854" y="794" type="curve" smooth="yes"/>
+ <point x="932" y="794"/>
+ <point x="975" y="719"/>
+ <point x="975" y="609" type="curve" smooth="yes"/>
+ <point x="975" y="478"/>
+ <point x="924" y="334"/>
+ <point x="823" y="258" type="curve" smooth="yes"/>
+ <point x="778" y="224"/>
+ <point x="723" y="204"/>
+ <point x="658" y="204" type="curve" smooth="yes"/>
+ <point x="589" y="204"/>
+ <point x="517" y="243"/>
+ <point x="473" y="297" type="curve"/>
+ </contour>
+ <contour>
+ <point x="300" y="1010" type="line"/>
+ <point x="300" y="962" type="line" smooth="yes"/>
+ <point x="300" y="859"/>
+ <point x="290" y="685"/>
+ <point x="271" y="609" type="curve" smooth="yes"/>
+ <point x="75" y="-180" type="line" smooth="yes"/>
+ <point x="49" y="-286"/>
+ <point x="25" y="-403"/>
+ <point x="25" y="-485" type="curve"/>
+ <point x="314" y="-485" type="line"/>
+ <point x="314" y="-393"/>
+ <point x="328" y="-287"/>
+ <point x="362" y="-149" type="curve" smooth="yes"/>
+ <point x="415" y="64" type="line"/>
+ <point x="495" y="10"/>
+ <point x="562" y="-25"/>
+ <point x="667" y="-25" type="curve" smooth="yes"/>
+ <point x="750" y="-25"/>
+ <point x="833" y="-2"/>
+ <point x="909" y="40" type="curve" smooth="yes"/>
+ <point x="1112" y="152"/>
+ <point x="1267" y="398"/>
+ <point x="1267" y="685" type="curve" smooth="yes"/>
+ <point x="1267" y="884"/>
+ <point x="1176" y="1030"/>
+ <point x="1004" y="1030" type="curve" smooth="yes"/>
+ <point x="849" y="1030"/>
+ <point x="677" y="901"/>
+ <point x="565" y="752" type="curve"/>
+ <point x="574" y="808"/>
+ <point x="579" y="875"/>
+ <point x="579" y="933" type="curve" smooth="yes"/>
+ <point x="579" y="962"/>
+ <point x="578" y="988"/>
+ <point x="575" y="1010" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_tnS_mQ_.glif b/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_tnS_mQ_.glif
new file mode 100644
index 0000000..d3068d2
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_tnS_mQ_.glif
@@ -0,0 +1,54 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmQ" format="2">
+ <advance width="1206"/>
+ <unicode hex="0071"/>
+ <anchor x="415" y="-500" name="L"/>
+ <anchor x="1400" y="1000" name="R"/>
+ <anchor x="815" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="889" y="583" type="line"/>
+ <point x="832" y="467"/>
+ <point x="615" y="211"/>
+ <point x="520" y="211" type="curve" smooth="yes"/>
+ <point x="457" y="211"/>
+ <point x="429" y="263"/>
+ <point x="429" y="362" type="curve" smooth="yes"/>
+ <point x="429" y="484"/>
+ <point x="469" y="616"/>
+ <point x="551" y="702" type="curve" smooth="yes"/>
+ <point x="605" y="758"/>
+ <point x="676" y="794"/>
+ <point x="765" y="794" type="curve" smooth="yes"/>
+ <point x="806" y="794"/>
+ <point x="897" y="781"/>
+ <point x="933" y="762" type="curve"/>
+ </contour>
+ <contour>
+ <point x="936" y="-485" type="line"/>
+ <point x="936" y="-396"/>
+ <point x="951" y="-299"/>
+ <point x="978" y="-190" type="curve" smooth="yes"/>
+ <point x="1261" y="955" type="line"/>
+ <point x="1134" y="991"/>
+ <point x="972" y="1030"/>
+ <point x="819" y="1030" type="curve" smooth="yes"/>
+ <point x="678" y="1030"/>
+ <point x="516" y="969"/>
+ <point x="403" y="874" type="curve" smooth="yes"/>
+ <point x="244" y="739"/>
+ <point x="145" y="535"/>
+ <point x="145" y="331" type="curve" smooth="yes"/>
+ <point x="145" y="105"/>
+ <point x="275" y="-25"/>
+ <point x="391" y="-25" type="curve" smooth="yes"/>
+ <point x="529" y="-25"/>
+ <point x="729" y="134"/>
+ <point x="838" y="300" type="curve"/>
+ <point x="706" y="-185" type="line" smooth="yes"/>
+ <point x="675" y="-299"/>
+ <point x="661" y="-419"/>
+ <point x="661" y="-485" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_tnS_mR_.glif b/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_tnS_mR_.glif
new file mode 100644
index 0000000..48a3cc8
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_tnS_mR_.glif
@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmR" format="2">
+ <advance width="1021"/>
+ <unicode hex="0072"/>
+ <anchor x="225" y="0" name="H"/>
+ <anchor x="255" y="-100" name="L"/>
+ <anchor x="765" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="390" y="0" type="line"/>
+ <point x="494" y="420" type="line"/>
+ <point x="555" y="557"/>
+ <point x="727" y="773"/>
+ <point x="810" y="773" type="curve" smooth="yes"/>
+ <point x="864" y="773"/>
+ <point x="887" y="737"/>
+ <point x="887" y="678" type="curve" smooth="yes"/>
+ <point x="887" y="662"/>
+ <point x="885" y="644"/>
+ <point x="882" y="624" type="curve"/>
+ <point x="1114" y="658" type="line"/>
+ <point x="1123" y="706"/>
+ <point x="1136" y="752"/>
+ <point x="1136" y="794" type="curve" smooth="yes"/>
+ <point x="1136" y="931"/>
+ <point x="1084" y="1030"/>
+ <point x="963" y="1030" type="curve" smooth="yes"/>
+ <point x="828" y="1030"/>
+ <point x="670" y="883"/>
+ <point x="544" y="716" type="curve"/>
+ <point x="555" y="787"/>
+ <point x="570" y="960"/>
+ <point x="570" y="1010" type="curve"/>
+ <point x="295" y="1010" type="line"/>
+ <point x="295" y="962" type="line" smooth="yes"/>
+ <point x="295" y="894"/>
+ <point x="281" y="689"/>
+ <point x="261" y="609" type="curve" smooth="yes"/>
+ <point x="110" y="0" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_tnS_mS_.glif b/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_tnS_mS_.glif
new file mode 100644
index 0000000..568c40a
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_tnS_mS_.glif
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmS" format="2">
+ <advance width="1015"/>
+ <unicode hex="0073"/>
+ <anchor x="455" y="0" name="H"/>
+ <anchor x="530" y="-100" name="L"/>
+ <anchor x="745" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="1058" y="952" type="line"/>
+ <point x="990" y="990"/>
+ <point x="854" y="1030"/>
+ <point x="691" y="1030" type="curve" smooth="yes"/>
+ <point x="457" y="1030"/>
+ <point x="217" y="936"/>
+ <point x="217" y="722" type="curve" smooth="yes"/>
+ <point x="217" y="593"/>
+ <point x="306" y="517"/>
+ <point x="501" y="430" type="curve" smooth="yes"/>
+ <point x="648" y="364"/>
+ <point x="710" y="345"/>
+ <point x="710" y="288" type="curve" smooth="yes"/>
+ <point x="710" y="224"/>
+ <point x="649" y="197"/>
+ <point x="549" y="197" type="curve" smooth="yes"/>
+ <point x="392" y="197"/>
+ <point x="276" y="280"/>
+ <point x="197" y="371" type="curve"/>
+ <point x="72" y="129" type="line"/>
+ <point x="143" y="68"/>
+ <point x="319" y="-25"/>
+ <point x="498" y="-25" type="curve" smooth="yes"/>
+ <point x="767" y="-25"/>
+ <point x="979" y="104"/>
+ <point x="979" y="315" type="curve" smooth="yes"/>
+ <point x="979" y="440"/>
+ <point x="884" y="513"/>
+ <point x="695" y="600" type="curve" smooth="yes"/>
+ <point x="581" y="652"/>
+ <point x="477" y="688"/>
+ <point x="477" y="743" type="curve" smooth="yes"/>
+ <point x="477" y="785"/>
+ <point x="548" y="808"/>
+ <point x="646" y="808" type="curve" smooth="yes"/>
+ <point x="785" y="808"/>
+ <point x="895" y="764"/>
+ <point x="961" y="716" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_tnS_mT_.glif b/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_tnS_mT_.glif
new file mode 100644
index 0000000..c6a02c1
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_tnS_mT_.glif
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmT" format="2">
+ <advance width="900"/>
+ <unicode hex="0074"/>
+ <anchor x="470" y="0" name="H"/>
+ <anchor x="520" y="-100" name="L"/>
+ <anchor x="1075" y="1000" name="R"/>
+ <anchor x="640" y="1360" name="U"/>
+ <outline>
+ <contour>
+ <point x="831" y="278" type="line"/>
+ <point x="740" y="230"/>
+ <point x="670" y="204"/>
+ <point x="619" y="204" type="curve" smooth="yes"/>
+ <point x="556" y="204"/>
+ <point x="536" y="250"/>
+ <point x="536" y="318" type="curve" smooth="yes"/>
+ <point x="536" y="347"/>
+ <point x="539" y="380"/>
+ <point x="545" y="415" type="curve" smooth="yes"/>
+ <point x="567" y="549"/>
+ <point x="700" y="1039"/>
+ <point x="767" y="1307" type="curve"/>
+ <point x="487" y="1307" type="line"/>
+ <point x="419" y="1038"/>
+ <point x="265" y="471"/>
+ <point x="243" y="328" type="curve" smooth="yes"/>
+ <point x="239" y="302"/>
+ <point x="237" y="277"/>
+ <point x="237" y="253" type="curve" smooth="yes"/>
+ <point x="237" y="73"/>
+ <point x="351" y="-25"/>
+ <point x="518" y="-25" type="curve" smooth="yes"/>
+ <point x="590" y="-25"/>
+ <point x="703" y="-4"/>
+ <point x="812" y="55" type="curve"/>
+ </contour>
+ <contour>
+ <point x="945" y="797" type="line"/>
+ <point x="995" y="995" type="line"/>
+ <point x="220" y="995" type="line"/>
+ <point x="170" y="797" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_tnS_mU_.glif b/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_tnS_mU_.glif
new file mode 100644
index 0000000..5067d38
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_tnS_mU_.glif
@@ -0,0 +1,57 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmU" format="2">
+ <advance width="1257"/>
+ <unicode hex="0075"/>
+ <anchor x="455" y="0" name="H"/>
+ <anchor x="530" y="-100" name="L"/>
+ <anchor x="630" y="0" name="O"/>
+ <anchor x="1448" y="1000" name="R"/>
+ <anchor x="830" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="1117" y="0" type="line"/>
+ <point x="1113" y="29"/>
+ <point x="1112" y="62"/>
+ <point x="1112" y="100" type="curve" smooth="yes"/>
+ <point x="1112" y="206"/>
+ <point x="1131" y="341"/>
+ <point x="1157" y="455" type="curve" smooth="yes"/>
+ <point x="1212" y="689"/>
+ <point x="1274" y="905"/>
+ <point x="1282" y="1010" type="curve"/>
+ <point x="993" y="1010" type="line"/>
+ <point x="981" y="889"/>
+ <point x="992" y="918"/>
+ <point x="910" y="595" type="curve"/>
+ <point x="835" y="427"/>
+ <point x="618" y="205"/>
+ <point x="537" y="205" type="curve" smooth="yes"/>
+ <point x="491" y="205"/>
+ <point x="462" y="236"/>
+ <point x="462" y="308" type="curve" smooth="yes"/>
+ <point x="462" y="405"/>
+ <point x="536" y="663"/>
+ <point x="549" y="712" type="curve" smooth="yes"/>
+ <point x="583" y="847"/>
+ <point x="605" y="935"/>
+ <point x="610" y="1010" type="curve"/>
+ <point x="323" y="1010" type="line"/>
+ <point x="312" y="891"/>
+ <point x="296" y="819"/>
+ <point x="264" y="693" type="curve" smooth="yes"/>
+ <point x="191" y="401" type="line" smooth="yes"/>
+ <point x="173" y="330"/>
+ <point x="165" y="267"/>
+ <point x="165" y="214" type="curve" smooth="yes"/>
+ <point x="165" y="55"/>
+ <point x="252" y="-25"/>
+ <point x="381" y="-25" type="curve" smooth="yes"/>
+ <point x="545" y="-25"/>
+ <point x="769" y="160"/>
+ <point x="860" y="295" type="curve"/>
+ <point x="850" y="227"/>
+ <point x="842" y="53"/>
+ <point x="842" y="0" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_tnS_mV_.glif b/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_tnS_mV_.glif
new file mode 100644
index 0000000..d7ceb46
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_tnS_mV_.glif
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmV" format="2">
+ <advance width="1049"/>
+ <unicode hex="0076"/>
+ <anchor x="505" y="0" name="H"/>
+ <anchor x="410" y="-100" name="L"/>
+ <anchor x="690" y="0" name="O"/>
+ <anchor x="695" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="881" y="1010" type="line"/>
+ <point x="881" y="788"/>
+ <point x="719" y="534"/>
+ <point x="507" y="270" type="curve"/>
+ <point x="516" y="353"/>
+ <point x="521" y="457"/>
+ <point x="521" y="564" type="curve" smooth="yes"/>
+ <point x="521" y="730"/>
+ <point x="507" y="903"/>
+ <point x="472" y="1010" type="curve"/>
+ <point x="195" y="1010" type="line"/>
+ <point x="259" y="758"/>
+ <point x="282" y="509"/>
+ <point x="282" y="262" type="curve" smooth="yes"/>
+ <point x="282" y="174"/>
+ <point x="279" y="87"/>
+ <point x="274" y="0" type="curve"/>
+ <point x="535" y="0" type="line"/>
+ <point x="823" y="314"/>
+ <point x="1159" y="766"/>
+ <point x="1159" y="1010" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_tnS_mW_.glif b/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_tnS_mW_.glif
new file mode 100644
index 0000000..02f3211
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_tnS_mW_.glif
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmW" format="2">
+ <advance width="1620"/>
+ <unicode hex="0077"/>
+ <anchor x="700" y="-100" name="L"/>
+ <anchor x="1000" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="850" y="1010" type="line"/>
+ <point x="758" y="793"/>
+ <point x="592" y="496"/>
+ <point x="438" y="242" type="curve"/>
+ <point x="459" y="351"/>
+ <point x="476" y="509"/>
+ <point x="476" y="669" type="curve" smooth="yes"/>
+ <point x="476" y="788"/>
+ <point x="468" y="908"/>
+ <point x="448" y="1010" type="curve"/>
+ <point x="190" y="1010" type="line"/>
+ <point x="230" y="831"/>
+ <point x="236" y="678"/>
+ <point x="236" y="494" type="curve" smooth="yes"/>
+ <point x="236" y="364"/>
+ <point x="228" y="211"/>
+ <point x="209" y="0" type="curve"/>
+ <point x="499" y="0" type="line"/>
+ <point x="624" y="181"/>
+ <point x="838" y="560"/>
+ <point x="901" y="690" type="curve"/>
+ <point x="919" y="477"/>
+ <point x="919" y="212"/>
+ <point x="919" y="0" type="curve"/>
+ <point x="1179" y="0" type="line"/>
+ <point x="1430" y="328"/>
+ <point x="1710" y="775"/>
+ <point x="1710" y="1010" type="curve"/>
+ <point x="1432" y="1010" type="line"/>
+ <point x="1432" y="995" type="line" smooth="yes"/>
+ <point x="1432" y="797"/>
+ <point x="1245" y="435"/>
+ <point x="1106" y="242" type="curve"/>
+ <point x="1108" y="298"/>
+ <point x="1108" y="355"/>
+ <point x="1108" y="411" type="curve" smooth="yes"/>
+ <point x="1108" y="637"/>
+ <point x="1096" y="860"/>
+ <point x="1070" y="1010" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_tnS_mX_.glif b/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_tnS_mX_.glif
new file mode 100644
index 0000000..2e620de
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_tnS_mX_.glif
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmX" format="2">
+ <advance width="1104"/>
+ <unicode hex="0078"/>
+ <anchor x="900" y="0" name="H"/>
+ <anchor x="505" y="-100" name="L"/>
+ <anchor x="730" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="1040" y="0" type="line"/>
+ <point x="860" y="133"/>
+ <point x="655" y="882"/>
+ <point x="524" y="1010" type="curve"/>
+ <point x="186" y="1010" type="line"/>
+ <point x="425" y="832"/>
+ <point x="593" y="141"/>
+ <point x="713" y="0" type="curve"/>
+ </contour>
+ <contour>
+ <point x="509" y="572" type="line"/>
+ <point x="291" y="463"/>
+ <point x="62" y="230"/>
+ <point x="35" y="0" type="curve"/>
+ <point x="335" y="0" type="line"/>
+ <point x="336" y="156"/>
+ <point x="470" y="390"/>
+ <point x="658" y="477" type="curve"/>
+ </contour>
+ <contour>
+ <point x="764" y="471" type="line"/>
+ <point x="943" y="591"/>
+ <point x="1197" y="808"/>
+ <point x="1204" y="1010" type="curve"/>
+ <point x="894" y="1010" type="line"/>
+ <point x="894" y="852"/>
+ <point x="773" y="665"/>
+ <point x="616" y="571" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_tnS_mY_.glif b/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_tnS_mY_.glif
new file mode 100644
index 0000000..f2ae46b
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/L_tnS_mY_.glif
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmY" format="2">
+ <advance width="1041"/>
+ <unicode hex="0079"/>
+ <anchor x="810" y="-100" name="L"/>
+ <anchor x="1325" y="1000" name="R"/>
+ <anchor x="640" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="847" y="1010" type="line"/>
+ <point x="851" y="994"/>
+ <point x="852" y="977"/>
+ <point x="852" y="958" type="curve" smooth="yes"/>
+ <point x="852" y="786"/>
+ <point x="713" y="473"/>
+ <point x="596" y="260" type="curve"/>
+ <point x="596" y="478"/>
+ <point x="503" y="877"/>
+ <point x="403" y="1010" type="curve"/>
+ <point x="120" y="1010" type="line"/>
+ <point x="259" y="811"/>
+ <point x="401" y="401"/>
+ <point x="409" y="-18" type="curve"/>
+ <point x="283" y="-207"/>
+ <point x="183" y="-250"/>
+ <point x="114" y="-250" type="curve" smooth="yes"/>
+ <point x="48" y="-250"/>
+ <point x="-33" y="-201"/>
+ <point x="-63" y="-165" type="curve"/>
+ <point x="-195" y="-381" type="line"/>
+ <point x="-136" y="-435"/>
+ <point x="-13" y="-465"/>
+ <point x="78" y="-465" type="curve" smooth="yes"/>
+ <point x="260" y="-465"/>
+ <point x="447" y="-385"/>
+ <point x="684" y="0" type="curve" smooth="yes"/>
+ <point x="919" y="381"/>
+ <point x="1116" y="766"/>
+ <point x="1116" y="960" type="curve" smooth="yes"/>
+ <point x="1116" y="978"/>
+ <point x="1114" y="995"/>
+ <point x="1110" y="1010" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/N_onB_reakingH_yphen.glif b/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/N_onB_reakingH_yphen.glif
new file mode 100644
index 0000000..cd90adf
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/N_onB_reakingH_yphen.glif
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="NonBreakingHyphen" format="2">
+ <advance width="875"/>
+ <unicode hex="2011"/>
+ <anchor x="665" y="1100" name="U"/>
+ <outline>
+ <component base="HyphenMinus"/>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/N_umS_gn.glif b/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/N_umS_gn.glif
new file mode 100644
index 0000000..1d3e5e9
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/N_umS_gn.glif
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="NumSgn" format="2">
+ <advance width="1180"/>
+ <unicode hex="0023"/>
+ <outline>
+ <contour>
+ <point x="667" y="1346" type="line"/>
+ <point x="16" y="99" type="line"/>
+ <point x="256" y="99" type="line"/>
+ <point x="907" y="1346" type="line"/>
+ </contour>
+ <contour>
+ <point x="54" y="421" type="line"/>
+ <point x="1145" y="421" type="line"/>
+ <point x="1197" y="629" type="line"/>
+ <point x="106" y="629" type="line"/>
+ </contour>
+ <contour>
+ <point x="218" y="841" type="line"/>
+ <point x="1309" y="841" type="line"/>
+ <point x="1361" y="1049" type="line"/>
+ <point x="270" y="1049" type="line"/>
+ </contour>
+ <contour>
+ <point x="1142" y="1346" type="line"/>
+ <point x="491" y="99" type="line"/>
+ <point x="731" y="99" type="line"/>
+ <point x="1382" y="1346" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/P_ercentS_gn.glif b/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/P_ercentS_gn.glif
new file mode 100644
index 0000000..f87ea9f
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/P_ercentS_gn.glif
@@ -0,0 +1,93 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="PercentSgn" format="2">
+ <advance width="1545"/>
+ <unicode hex="0025"/>
+ <outline>
+ <contour>
+ <point x="1375" y="1465" type="line"/>
+ <point x="221" y="-25" type="line"/>
+ <point x="435" y="-25" type="line"/>
+ <point x="1587" y="1465" type="line"/>
+ </contour>
+ <contour>
+ <point x="714" y="1043" type="curve" smooth="yes"/>
+ <point x="669" y="861"/>
+ <point x="611" y="807"/>
+ <point x="535" y="807" type="curve" smooth="yes"/>
+ <point x="486" y="807"/>
+ <point x="461" y="843"/>
+ <point x="461" y="917" type="curve" smooth="yes"/>
+ <point x="461" y="963"/>
+ <point x="471" y="1023"/>
+ <point x="490" y="1099" type="curve" smooth="yes"/>
+ <point x="535" y="1281"/>
+ <point x="580" y="1336"/>
+ <point x="657" y="1336" type="curve" smooth="yes"/>
+ <point x="710" y="1336"/>
+ <point x="739" y="1296"/>
+ <point x="739" y="1212" type="curve" smooth="yes"/>
+ <point x="739" y="1168"/>
+ <point x="731" y="1111"/>
+ </contour>
+ <contour>
+ <point x="926" y="1054" type="curve" smooth="yes"/>
+ <point x="939" y="1107"/>
+ <point x="946" y="1156"/>
+ <point x="946" y="1199" type="curve" smooth="yes"/>
+ <point x="946" y="1374"/>
+ <point x="842" y="1465"/>
+ <point x="694" y="1465" type="curve" smooth="yes"/>
+ <point x="510" y="1465"/>
+ <point x="346" y="1369"/>
+ <point x="277" y="1090" type="curve" smooth="yes"/>
+ <point x="262" y="1031"/>
+ <point x="255" y="979"/>
+ <point x="255" y="933" type="curve" smooth="yes"/>
+ <point x="255" y="761"/>
+ <point x="353" y="678"/>
+ <point x="499" y="678" type="curve" smooth="yes"/>
+ <point x="684" y="678"/>
+ <point x="853" y="762"/>
+ </contour>
+ <contour>
+ <point x="1314" y="337" type="curve" smooth="yes"/>
+ <point x="1268" y="155"/>
+ <point x="1220" y="104"/>
+ <point x="1144" y="104" type="curve" smooth="yes"/>
+ <point x="1093" y="104"/>
+ <point x="1065" y="144"/>
+ <point x="1065" y="227" type="curve" smooth="yes"/>
+ <point x="1065" y="272"/>
+ <point x="1073" y="329"/>
+ <point x="1090" y="398" type="curve" smooth="yes"/>
+ <point x="1136" y="580"/>
+ <point x="1190" y="634"/>
+ <point x="1267" y="634" type="curve" smooth="yes"/>
+ <point x="1317" y="634"/>
+ <point x="1342" y="596"/>
+ <point x="1342" y="520" type="curve" smooth="yes"/>
+ <point x="1342" y="473"/>
+ <point x="1333" y="412"/>
+ </contour>
+ <contour>
+ <point x="1526" y="350" type="curve" smooth="yes"/>
+ <point x="1540" y="406"/>
+ <point x="1546" y="456"/>
+ <point x="1546" y="501" type="curve" smooth="yes"/>
+ <point x="1546" y="673"/>
+ <point x="1450" y="762"/>
+ <point x="1303" y="762" type="curve" smooth="yes"/>
+ <point x="1119" y="762"/>
+ <point x="946" y="665"/>
+ <point x="876" y="386" type="curve" smooth="yes"/>
+ <point x="862" y="331"/>
+ <point x="856" y="281"/>
+ <point x="856" y="237" type="curve" smooth="yes"/>
+ <point x="856" y="60"/>
+ <point x="960" y="-25"/>
+ <point x="1108" y="-25" type="curve" smooth="yes"/>
+ <point x="1293" y="-25"/>
+ <point x="1453" y="58"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/P_lusS_gn.glif b/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/P_lusS_gn.glif
new file mode 100644
index 0000000..bb54e70
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/P_lusS_gn.glif
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="PlusSgn" format="2">
+ <advance width="1180"/>
+ <unicode hex="002B"/>
+ <outline>
+ <contour>
+ <point x="722" y="1168" type="line"/>
+ <point x="500" y="282" type="line"/>
+ <point x="715" y="282" type="line"/>
+ <point x="936" y="1168" type="line"/>
+ </contour>
+ <contour>
+ <point x="250" y="624" type="line"/>
+ <point x="1140" y="624" type="line"/>
+ <point x="1192" y="832" type="line"/>
+ <point x="302" y="832" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/Q_stnM_rk.glif b/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/Q_stnM_rk.glif
new file mode 100644
index 0000000..5acaded
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/Q_stnM_rk.glif
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="QstnMrk" format="2">
+ <advance width="1070"/>
+ <unicode hex="003F"/>
+ <outline>
+ <contour>
+ <point x="703" y="495" type="line"/>
+ <point x="745" y="664"/>
+ <point x="787" y="792"/>
+ <point x="931" y="933" type="curve" smooth="yes"/>
+ <point x="1034" y="1033"/>
+ <point x="1143" y="1118"/>
+ <point x="1143" y="1256" type="curve" smooth="yes"/>
+ <point x="1143" y="1404"/>
+ <point x="1022" y="1525"/>
+ <point x="800" y="1525" type="curve" smooth="yes"/>
+ <point x="675" y="1525"/>
+ <point x="508" y="1455"/>
+ <point x="427" y="1393" type="curve"/>
+ <point x="413" y="1156" type="line"/>
+ <point x="508" y="1235"/>
+ <point x="621" y="1282"/>
+ <point x="721" y="1282" type="curve" smooth="yes"/>
+ <point x="811" y="1282"/>
+ <point x="846" y="1238"/>
+ <point x="846" y="1189" type="curve" smooth="yes"/>
+ <point x="846" y="1109"/>
+ <point x="760" y="1086"/>
+ <point x="650" y="956" type="curve" smooth="yes"/>
+ <point x="564" y="855"/>
+ <point x="490" y="703"/>
+ <point x="438" y="495" type="curve"/>
+ </contour>
+ <contour>
+ <point x="306" y="116" type="curve" smooth="yes"/>
+ <point x="306" y="35"/>
+ <point x="367" y="-25"/>
+ <point x="453" y="-25" type="curve" smooth="yes"/>
+ <point x="571" y="-25"/>
+ <point x="666" y="71"/>
+ <point x="666" y="181" type="curve" smooth="yes"/>
+ <point x="666" y="261"/>
+ <point x="607" y="322"/>
+ <point x="520" y="322" type="curve" smooth="yes"/>
+ <point x="403" y="322"/>
+ <point x="306" y="226"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/Q_uotM_rk.glif b/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/Q_uotM_rk.glif
new file mode 100644
index 0000000..f33fd18
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/Q_uotM_rk.glif
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="QuotMrk" format="2">
+ <advance width="1065"/>
+ <unicode hex="0022"/>
+ <outline>
+ <contour>
+ <point x="648" y="1035" type="line"/>
+ <point x="687" y="1174"/>
+ <point x="726" y="1326"/>
+ <point x="816" y="1569" type="curve"/>
+ <point x="571" y="1569" type="line"/>
+ <point x="541" y="1326"/>
+ <point x="503" y="1174"/>
+ <point x="473" y="1035" type="curve"/>
+ </contour>
+ <contour>
+ <point x="1008" y="1035" type="line"/>
+ <point x="1047" y="1174"/>
+ <point x="1086" y="1326"/>
+ <point x="1176" y="1569" type="curve"/>
+ <point x="931" y="1569" type="line"/>
+ <point x="901" y="1326"/>
+ <point x="863" y="1174"/>
+ <point x="833" y="1035" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/R_everseS_olidus.glif b/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/R_everseS_olidus.glif
new file mode 100644
index 0000000..0068c20
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/R_everseS_olidus.glif
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="ReverseSolidus" format="2">
+ <advance width="1060"/>
+ <unicode hex="005C"/>
+ <outline>
+ <contour>
+ <point x="344" y="1584" type="line"/>
+ <point x="719" y="-243" type="line"/>
+ <point x="949" y="-243" type="line"/>
+ <point x="574" y="1584" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/R_tC_urlyB_rac.glif b/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/R_tC_urlyB_rac.glif
new file mode 100644
index 0000000..726adad
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/R_tC_urlyB_rac.glif
@@ -0,0 +1,47 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="RtCurlyBrac" format="2">
+ <advance width="1020"/>
+ <unicode hex="007D"/>
+ <outline>
+ <contour>
+ <point x="442" y="1395" type="line"/>
+ <point x="513" y="1366"/>
+ <point x="611" y="1344"/>
+ <point x="611" y="1296" type="curve" smooth="yes"/>
+ <point x="611" y="1200"/>
+ <point x="515" y="837"/>
+ <point x="515" y="782" type="curve" smooth="yes"/>
+ <point x="515" y="743"/>
+ <point x="633" y="649"/>
+ <point x="633" y="613" type="curve" smooth="yes"/>
+ <point x="633" y="573"/>
+ <point x="465" y="486"/>
+ <point x="429" y="441" type="curve" smooth="yes"/>
+ <point x="403" y="407"/>
+ <point x="300" y="-59"/>
+ <point x="255" y="-99" type="curve" smooth="yes"/>
+ <point x="230" y="-121"/>
+ <point x="97" y="-158"/>
+ <point x="25" y="-177" type="curve"/>
+ <point x="17" y="-406" type="line"/>
+ <point x="160" y="-379"/>
+ <point x="377" y="-330"/>
+ <point x="439" y="-282" type="curve" smooth="yes"/>
+ <point x="532" y="-211"/>
+ <point x="666" y="374"/>
+ <point x="696" y="406" type="curve" smooth="yes"/>
+ <point x="734" y="446"/>
+ <point x="947" y="559"/>
+ <point x="947" y="616" type="curve" smooth="yes"/>
+ <point x="947" y="676"/>
+ <point x="796" y="783"/>
+ <point x="796" y="819" type="curve" smooth="yes"/>
+ <point x="796" y="880"/>
+ <point x="896" y="1288"/>
+ <point x="896" y="1453" type="curve" smooth="yes"/>
+ <point x="896" y="1529"/>
+ <point x="709" y="1591"/>
+ <point x="549" y="1624" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/R_tP_aren.glif b/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/R_tP_aren.glif
new file mode 100644
index 0000000..544faff
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/R_tP_aren.glif
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="RtParen" format="2">
+ <advance width="840"/>
+ <unicode hex="0029"/>
+ <outline>
+ <contour>
+ <point x="476" y="1411" type="line"/>
+ <point x="572" y="1290"/>
+ <point x="616" y="1127"/>
+ <point x="616" y="944" type="curve" smooth="yes"/>
+ <point x="616" y="832"/>
+ <point x="599" y="712"/>
+ <point x="569" y="589" type="curve" smooth="yes"/>
+ <point x="491" y="275"/>
+ <point x="333" y="48"/>
+ <point x="75" y="-198" type="curve"/>
+ <point x="163" y="-406" type="line"/>
+ <point x="509" y="-124"/>
+ <point x="743" y="206"/>
+ <point x="844" y="609" type="curve" smooth="yes"/>
+ <point x="876" y="735"/>
+ <point x="891" y="858"/>
+ <point x="891" y="973" type="curve" smooth="yes"/>
+ <point x="891" y="1252"/>
+ <point x="803" y="1487"/>
+ <point x="649" y="1624" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/R_tS_qrB_rac.glif b/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/R_tS_qrB_rac.glif
new file mode 100644
index 0000000..804527d
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/R_tS_qrB_rac.glif
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="RtSqrBrac" format="2">
+ <advance width="830"/>
+ <unicode hex="005D"/>
+ <outline>
+ <contour>
+ <point x="503" y="-406" type="line"/>
+ <point x="994" y="1584" type="line"/>
+ <point x="474" y="1584" type="line"/>
+ <point x="423" y="1376" type="line"/>
+ <point x="663" y="1376" type="line"/>
+ <point x="275" y="-198" type="line"/>
+ <point x="35" y="-198" type="line"/>
+ <point x="-17" y="-406" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/S_emicolon.glif b/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/S_emicolon.glif
new file mode 100644
index 0000000..1c9af02
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/S_emicolon.glif
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Semicolon" format="2">
+ <advance width="690"/>
+ <unicode hex="003B"/>
+ <outline>
+ <contour>
+ <point x="137" y="49" type="line"/>
+ <point x="297" y="49" type="line"/>
+ <point x="276" y="-34"/>
+ <point x="192" y="-151"/>
+ <point x="59" y="-262" type="curve"/>
+ <point x="187" y="-332" type="line"/>
+ <point x="337" y="-222"/>
+ <point x="539" y="-11"/>
+ <point x="539" y="165" type="curve" smooth="yes"/>
+ <point x="539" y="262"/>
+ <point x="495" y="337"/>
+ <point x="379" y="337" type="curve" smooth="yes"/>
+ <point x="266" y="337"/>
+ <point x="187" y="252"/>
+ <point x="169" y="178" type="curve" smooth="yes"/>
+ </contour>
+ <contour>
+ <point x="319" y="710" type="curve" smooth="yes"/>
+ <point x="319" y="629"/>
+ <point x="380" y="569"/>
+ <point x="466" y="569" type="curve" smooth="yes"/>
+ <point x="584" y="569"/>
+ <point x="679" y="665"/>
+ <point x="679" y="775" type="curve" smooth="yes"/>
+ <point x="679" y="855"/>
+ <point x="620" y="916"/>
+ <point x="533" y="916" type="curve" smooth="yes"/>
+ <point x="416" y="916"/>
+ <point x="319" y="820"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/S_olidus.glif b/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/S_olidus.glif
new file mode 100644
index 0000000..0bac67c
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/S_olidus.glif
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Solidus" format="2">
+ <advance width="1060"/>
+ <unicode hex="002F"/>
+ <outline>
+ <contour>
+ <point x="1164" y="1584" type="line"/>
+ <point x="-120" y="-243" type="line"/>
+ <point x="129" y="-243" type="line"/>
+ <point x="1414" y="1584" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/S_pace.glif b/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/S_pace.glif
new file mode 100644
index 0000000..c49f0f2
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/S_pace.glif
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Space" format="2">
+ <advance width="530"/>
+ <unicode hex="0020"/>
+ <outline/>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/T_ilde.glif b/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/T_ilde.glif
new file mode 100644
index 0000000..26c105f
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/T_ilde.glif
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Tilde" format="2">
+ <advance width="1155"/>
+ <unicode hex="007E"/>
+ <outline>
+ <contour>
+ <point x="190" y="342" type="line"/>
+ <point x="207" y="390"/>
+ <point x="249" y="431"/>
+ <point x="327" y="431" type="curve" smooth="yes"/>
+ <point x="502" y="431"/>
+ <point x="676" y="327"/>
+ <point x="906" y="327" type="curve" smooth="yes"/>
+ <point x="1065" y="327"/>
+ <point x="1206" y="507"/>
+ <point x="1238" y="634" type="curve"/>
+ <point x="1093" y="634" type="line"/>
+ <point x="1074" y="588"/>
+ <point x="1031" y="535"/>
+ <point x="948" y="535" type="curve" smooth="yes"/>
+ <point x="712" y="535"/>
+ <point x="580" y="639"/>
+ <point x="359" y="639" type="curve" smooth="yes"/>
+ <point x="203" y="639"/>
+ <point x="75" y="462"/>
+ <point x="45" y="342" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/V_ertL_ine.glif b/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/V_ertL_ine.glif
new file mode 100644
index 0000000..204ac86
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/V_ertL_ine.glif
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="VertLine" format="2">
+ <advance width="670"/>
+ <unicode hex="007C"/>
+ <outline>
+ <contour>
+ <point x="574" y="1594" type="line"/>
+ <point x="83" y="-396" type="line"/>
+ <point x="293" y="-396" type="line"/>
+ <point x="784" y="1594" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/_notdef.glif b/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/_notdef.glif
new file mode 100644
index 0000000..a3e9354
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/_notdef.glif
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name=".notdef" format="2">
+ <advance width="1400"/>
+ <outline>
+ <contour>
+ <point x="100" y="0" type="line"/>
+ <point x="1300" y="0" type="line"/>
+ <point x="1300" y="1800" type="line"/>
+ <point x="100" y="1800" type="line"/>
+ </contour>
+ <contour>
+ <point x="150" y="1750" type="line"/>
+ <point x="1250" y="1750" type="line"/>
+ <point x="1250" y="50" type="line"/>
+ <point x="150" y="50" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/_null.glif b/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/_null.glif
new file mode 100644
index 0000000..0b9caa6
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/_null.glif
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name=".null" format="2">
+ <outline/>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/contents.plist b/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/contents.plist
new file mode 100644
index 0000000..ad2aa41
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/contents.plist
@@ -0,0 +1,232 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>.notdef</key>
+ <string>_notdef.glif</string>
+ <key>.null</key>
+ <string>_null.glif</string>
+ <key>Ampersand</key>
+ <string>A_mpersand.glif</string>
+ <key>Apos</key>
+ <string>A_pos.glif</string>
+ <key>Asterisk</key>
+ <string>A_sterisk.glif</string>
+ <key>AtSgn</key>
+ <string>A_tS_gn.glif</string>
+ <key>CircumAccent</key>
+ <string>C_ircumA_ccent.glif</string>
+ <key>Colon</key>
+ <string>C_olon.glif</string>
+ <key>CombAcute</key>
+ <string>C_ombA_cute.glif</string>
+ <key>CombCircum</key>
+ <string>C_ombC_ircum.glif</string>
+ <key>CombDiaer</key>
+ <string>C_ombD_iaer.glif</string>
+ <key>CombGrave</key>
+ <string>C_ombG_rave.glif</string>
+ <key>CombRingAbv</key>
+ <string>C_ombR_ingA_bv.glif</string>
+ <key>CombTilde</key>
+ <string>C_ombT_ilde.glif</string>
+ <key>Comma</key>
+ <string>C_omma.glif</string>
+ <key>DigitEight</key>
+ <string>D_igitE_ight.glif</string>
+ <key>DigitFive</key>
+ <string>D_igitF_ive.glif</string>
+ <key>DigitFour</key>
+ <string>D_igitF_our.glif</string>
+ <key>DigitNine</key>
+ <string>D_igitN_ine.glif</string>
+ <key>DigitOne</key>
+ <string>D_igitO_ne.glif</string>
+ <key>DigitSeven</key>
+ <string>D_igitS_even.glif</string>
+ <key>DigitSix</key>
+ <string>D_igitS_ix.glif</string>
+ <key>DigitThree</key>
+ <string>D_igitT_hree.glif</string>
+ <key>DigitTwo</key>
+ <string>D_igitT_wo.glif</string>
+ <key>DigitZero</key>
+ <string>D_igitZ_ero.glif</string>
+ <key>DollarSgn</key>
+ <string>D_ollarS_gn.glif</string>
+ <key>DottedCirc</key>
+ <string>D_ottedC_irc.glif</string>
+ <key>EqSgn</key>
+ <string>E_qS_gn.glif</string>
+ <key>ExclamationMrk</key>
+ <string>E_xclamationM_rk.glif</string>
+ <key>FullStop</key>
+ <string>F_ullS_top.glif</string>
+ <key>GTSgn</key>
+ <string>G_T_S_gn.glif</string>
+ <key>GraveAccent</key>
+ <string>G_raveA_ccent.glif</string>
+ <key>Hyphen</key>
+ <string>H_yphen.glif</string>
+ <key>HyphenMinus</key>
+ <string>H_yphenM_inus.glif</string>
+ <key>Hyphen_Soft</key>
+ <string>H_yphen_S_oft.glif</string>
+ <key>LTSgn</key>
+ <string>L_T_S_gn.glif</string>
+ <key>LftCurlyBrac</key>
+ <string>L_ftC_urlyB_rac.glif</string>
+ <key>LftParen</key>
+ <string>L_ftP_aren.glif</string>
+ <key>LftSqrBrac</key>
+ <string>L_ftS_qrB_rac.glif</string>
+ <key>LowLine</key>
+ <string>L_owL_ine.glif</string>
+ <key>LtnCapA</key>
+ <string>L_tnC_apA_.glif</string>
+ <key>LtnCapADiaer</key>
+ <string>L_tnC_apA_D_iaer.glif</string>
+ <key>LtnCapB</key>
+ <string>L_tnC_apB_.glif</string>
+ <key>LtnCapC</key>
+ <string>L_tnC_apC_.glif</string>
+ <key>LtnCapD</key>
+ <string>L_tnC_apD_.glif</string>
+ <key>LtnCapE</key>
+ <string>L_tnC_apE_.glif</string>
+ <key>LtnCapF</key>
+ <string>L_tnC_apF_.glif</string>
+ <key>LtnCapG</key>
+ <string>L_tnC_apG_.glif</string>
+ <key>LtnCapH</key>
+ <string>L_tnC_apH_.glif</string>
+ <key>LtnCapI</key>
+ <string>L_tnC_apI_.glif</string>
+ <key>LtnCapJ</key>
+ <string>L_tnC_apJ_.glif</string>
+ <key>LtnCapK</key>
+ <string>L_tnC_apK_.glif</string>
+ <key>LtnCapL</key>
+ <string>L_tnC_apL_.glif</string>
+ <key>LtnCapM</key>
+ <string>L_tnC_apM_.glif</string>
+ <key>LtnCapN</key>
+ <string>L_tnC_apN_.glif</string>
+ <key>LtnCapO</key>
+ <string>L_tnC_apO_.glif</string>
+ <key>LtnCapP</key>
+ <string>L_tnC_apP_.glif</string>
+ <key>LtnCapQ</key>
+ <string>L_tnC_apQ_.glif</string>
+ <key>LtnCapR</key>
+ <string>L_tnC_apR_.glif</string>
+ <key>LtnCapS</key>
+ <string>L_tnC_apS_.glif</string>
+ <key>LtnCapT</key>
+ <string>L_tnC_apT_.glif</string>
+ <key>LtnCapU</key>
+ <string>L_tnC_apU_.glif</string>
+ <key>LtnCapV</key>
+ <string>L_tnC_apV_.glif</string>
+ <key>LtnCapW</key>
+ <string>L_tnC_apW_.glif</string>
+ <key>LtnCapX</key>
+ <string>L_tnC_apX_.glif</string>
+ <key>LtnCapY</key>
+ <string>L_tnC_apY_.glif</string>
+ <key>LtnSmA</key>
+ <string>L_tnS_mA_.glif</string>
+ <key>LtnSmAAcute</key>
+ <string>L_tnS_mA_A_cute.glif</string>
+ <key>LtnSmACircum</key>
+ <string>L_tnS_mA_C_ircum.glif</string>
+ <key>LtnSmADiaer</key>
+ <string>L_tnS_mA_D_iaer.glif</string>
+ <key>LtnSmAGrave</key>
+ <string>L_tnS_mA_G_rave.glif</string>
+ <key>LtnSmARingAbv</key>
+ <string>L_tnS_mA_R_ingA_bv.glif</string>
+ <key>LtnSmATilde</key>
+ <string>L_tnS_mA_T_ilde.glif</string>
+ <key>LtnSmB</key>
+ <string>L_tnS_mB_.glif</string>
+ <key>LtnSmC</key>
+ <string>L_tnS_mC_.glif</string>
+ <key>LtnSmD</key>
+ <string>L_tnS_mD_.glif</string>
+ <key>LtnSmE</key>
+ <string>L_tnS_mE_.glif</string>
+ <key>LtnSmF</key>
+ <string>L_tnS_mF_.glif</string>
+ <key>LtnSmG</key>
+ <string>L_tnS_mG_.glif</string>
+ <key>LtnSmH</key>
+ <string>L_tnS_mH_.glif</string>
+ <key>LtnSmI</key>
+ <string>L_tnS_mI_.glif</string>
+ <key>LtnSmJ</key>
+ <string>L_tnS_mJ_.glif</string>
+ <key>LtnSmK</key>
+ <string>L_tnS_mK_.glif</string>
+ <key>LtnSmL</key>
+ <string>L_tnS_mL_.glif</string>
+ <key>LtnSmM</key>
+ <string>L_tnS_mM_.glif</string>
+ <key>LtnSmN</key>
+ <string>L_tnS_mN_.glif</string>
+ <key>LtnSmO</key>
+ <string>L_tnS_mO_.glif</string>
+ <key>LtnSmP</key>
+ <string>L_tnS_mP_.glif</string>
+ <key>LtnSmQ</key>
+ <string>L_tnS_mQ_.glif</string>
+ <key>LtnSmR</key>
+ <string>L_tnS_mR_.glif</string>
+ <key>LtnSmS</key>
+ <string>L_tnS_mS_.glif</string>
+ <key>LtnSmT</key>
+ <string>L_tnS_mT_.glif</string>
+ <key>LtnSmU</key>
+ <string>L_tnS_mU_.glif</string>
+ <key>LtnSmV</key>
+ <string>L_tnS_mV_.glif</string>
+ <key>LtnSmW</key>
+ <string>L_tnS_mW_.glif</string>
+ <key>LtnSmX</key>
+ <string>L_tnS_mX_.glif</string>
+ <key>LtnSmY</key>
+ <string>L_tnS_mY_.glif</string>
+ <key>NonBreakingHyphen</key>
+ <string>N_onB_reakingH_yphen.glif</string>
+ <key>NumSgn</key>
+ <string>N_umS_gn.glif</string>
+ <key>PercentSgn</key>
+ <string>P_ercentS_gn.glif</string>
+ <key>PlusSgn</key>
+ <string>P_lusS_gn.glif</string>
+ <key>QstnMrk</key>
+ <string>Q_stnM_rk.glif</string>
+ <key>QuotMrk</key>
+ <string>Q_uotM_rk.glif</string>
+ <key>ReverseSolidus</key>
+ <string>R_everseS_olidus.glif</string>
+ <key>RtCurlyBrac</key>
+ <string>R_tC_urlyB_rac.glif</string>
+ <key>RtParen</key>
+ <string>R_tP_aren.glif</string>
+ <key>RtSqrBrac</key>
+ <string>R_tS_qrB_rac.glif</string>
+ <key>Semicolon</key>
+ <string>S_emicolon.glif</string>
+ <key>Solidus</key>
+ <string>S_olidus.glif</string>
+ <key>Space</key>
+ <string>S_pace.glif</string>
+ <key>Tilde</key>
+ <string>T_ilde.glif</string>
+ <key>VertLine</key>
+ <string>V_ertL_ine.glif</string>
+ <key>nonmarkingreturn</key>
+ <string>nonmarkingreturn.glif</string>
+</dict>
+</plist>
diff --git a/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/nonmarkingreturn.glif b/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/nonmarkingreturn.glif
new file mode 100644
index 0000000..9a63f06
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/glyphs/nonmarkingreturn.glif
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="nonmarkingreturn" format="2">
+ <advance width="1004"/>
+ <outline/>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/layercontents.plist b/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/layercontents.plist
new file mode 100644
index 0000000..42b7482
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/layercontents.plist
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<array>
+ <array>
+ <string>public.default</string>
+ <string>glyphs</string>
+ </array>
+</array>
+</plist>
diff --git a/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/lib.plist b/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/lib.plist
new file mode 100644
index 0000000..8d40b99
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/lib.plist
@@ -0,0 +1,538 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>com.schriftgestaltung.Glyphs.fontUserData</key>
+ <dict/>
+ <key>com.schriftgestaltung.appVersion</key>
+ <string>1161</string>
+ <key>com.schriftgestaltung.customName</key>
+ <string>Italic</string>
+ <key>com.schriftgestaltung.customParameter.GSFont.DisplayStrings</key>
+ <string/>
+ <key>com.schriftgestaltung.customParameter.GSFont.disablesAutomaticAlignment</key>
+ <true/>
+ <key>com.schriftgestaltung.customParameter.GSFont.disablesLastChange</key>
+ <true/>
+ <key>com.schriftgestaltung.customParameter.GSFont.useNiceNames</key>
+ <integer>0</integer>
+ <key>com.schriftgestaltung.customParameter.GSFontMaster.customValue</key>
+ <integer>0</integer>
+ <key>com.schriftgestaltung.customParameter.GSFontMaster.customValue1</key>
+ <integer>0</integer>
+ <key>com.schriftgestaltung.customParameter.GSFontMaster.customValue2</key>
+ <integer>0</integer>
+ <key>com.schriftgestaltung.customParameter.GSFontMaster.customValue3</key>
+ <integer>0</integer>
+ <key>com.schriftgestaltung.customParameter.GSFontMaster.iconName</key>
+ <string/>
+ <key>com.schriftgestaltung.customParameter.GSFontMaster.weightValue</key>
+ <integer>700</integer>
+ <key>com.schriftgestaltung.customParameter.GSFontMaster.widthValue</key>
+ <integer>100</integer>
+ <key>com.schriftgestaltung.disablesAutomaticAlignment</key>
+ <true/>
+ <key>com.schriftgestaltung.disablesLastChange</key>
+ <true/>
+ <key>com.schriftgestaltung.fontMasterOrder</key>
+ <integer>1</integer>
+ <key>com.schriftgestaltung.glyphOrder</key>
+ <array>
+ <string>.notdef</string>
+ <string>.null</string>
+ <string>nonmarkingreturn</string>
+ <string>Space</string>
+ <string>ExclamationMrk</string>
+ <string>QuotMrk</string>
+ <string>NumSgn</string>
+ <string>DollarSgn</string>
+ <string>PercentSgn</string>
+ <string>Ampersand</string>
+ <string>Apos</string>
+ <string>LftParen</string>
+ <string>RtParen</string>
+ <string>Asterisk</string>
+ <string>PlusSgn</string>
+ <string>Comma</string>
+ <string>HyphenMinus</string>
+ <string>FullStop</string>
+ <string>Solidus</string>
+ <string>DigitZero</string>
+ <string>DigitOne</string>
+ <string>DigitTwo</string>
+ <string>DigitThree</string>
+ <string>DigitFour</string>
+ <string>DigitFive</string>
+ <string>DigitSix</string>
+ <string>DigitSeven</string>
+ <string>DigitEight</string>
+ <string>DigitNine</string>
+ <string>Colon</string>
+ <string>Semicolon</string>
+ <string>LTSgn</string>
+ <string>EqSgn</string>
+ <string>GTSgn</string>
+ <string>QstnMrk</string>
+ <string>AtSgn</string>
+ <string>LtnCapA</string>
+ <string>LtnCapA.alt</string>
+ <string>LtnCapB</string>
+ <string>LtnCapC</string>
+ <string>LtnCapD</string>
+ <string>LtnCapE</string>
+ <string>LtnCapF</string>
+ <string>LtnCapG</string>
+ <string>LtnCapH</string>
+ <string>LtnCapI</string>
+ <string>LtnCapJ</string>
+ <string>LtnCapK</string>
+ <string>LtnCapL</string>
+ <string>LtnCapM</string>
+ <string>LtnCapN</string>
+ <string>LtnCapO</string>
+ <string>LtnCapP</string>
+ <string>LtnCapQ</string>
+ <string>LtnCapR</string>
+ <string>LtnCapS</string>
+ <string>LtnCapT</string>
+ <string>LtnCapU</string>
+ <string>LtnCapV</string>
+ <string>LtnCapW</string>
+ <string>LtnCapX</string>
+ <string>LtnCapY</string>
+ <string>LftSqrBrac</string>
+ <string>ReverseSolidus</string>
+ <string>RtSqrBrac</string>
+ <string>CircumAccent</string>
+ <string>LowLine</string>
+ <string>GraveAccent</string>
+ <string>LtnSmA</string>
+ <string>LtnSmB</string>
+ <string>LtnSmC</string>
+ <string>LtnSmD</string>
+ <string>LtnSmE</string>
+ <string>LtnSmF</string>
+ <string>LtnSmG</string>
+ <string>LtnSmH</string>
+ <string>LtnSmI</string>
+ <string>LtnSmJ</string>
+ <string>LtnSmK</string>
+ <string>LtnSmL</string>
+ <string>LtnSmM</string>
+ <string>LtnSmN</string>
+ <string>LtnSmO</string>
+ <string>LtnSmP</string>
+ <string>LtnSmQ</string>
+ <string>LtnSmR</string>
+ <string>LtnSmS</string>
+ <string>LtnSmT</string>
+ <string>LtnSmU</string>
+ <string>LtnSmV</string>
+ <string>LtnSmW</string>
+ <string>LtnSmX</string>
+ <string>LtnSmY</string>
+ <string>LftCurlyBrac</string>
+ <string>VertLine</string>
+ <string>RtCurlyBrac</string>
+ <string>Tilde</string>
+ <string>LtnCapADiaer</string>
+ <string>LtnSmAAcute</string>
+ <string>LtnSmAGrave</string>
+ <string>LtnSmACircum</string>
+ <string>LtnSmADiaer</string>
+ <string>LtnSmATilde</string>
+ <string>LtnSmARingAbv</string>
+ <string>DottedCirc</string>
+ <string>Hyphen</string>
+ <string>NonBreakingHyphen</string>
+ <string>Hyphen_Soft</string>
+ <string>CombAcute</string>
+ <string>CombGrave</string>
+ <string>CombCircum</string>
+ <string>CombTilde</string>
+ <string>CombDiaer</string>
+ <string>CombRingAbv</string>
+ </array>
+ <key>com.schriftgestaltung.keyboardIncrement</key>
+ <integer>1</integer>
+ <key>com.schriftgestaltung.weight</key>
+ <string>Bold</string>
+ <key>com.schriftgestaltung.weightValue</key>
+ <integer>700</integer>
+ <key>com.schriftgestaltung.width</key>
+ <string>Regular</string>
+ <key>com.schriftgestaltung.widthValue</key>
+ <integer>100</integer>
+ <key>org.sil.lcg.toneLetters</key>
+ <dict>
+ <key>contourWidth</key>
+ <integer>540</integer>
+ <key>dotSize</key>
+ <integer>280</integer>
+ <key>dotSpacing</key>
+ <integer>200</integer>
+ <key>glyphDepth</key>
+ <integer>-25</integer>
+ <key>glyphHeight</key>
+ <integer>1600</integer>
+ <key>italicAngle</key>
+ <integer>14</integer>
+ <key>marginDotLeft</key>
+ <integer>100</integer>
+ <key>marginDotRight</key>
+ <integer>140</integer>
+ <key>marginFlatLeft</key>
+ <integer>100</integer>
+ <key>marginFlatRight</key>
+ <integer>140</integer>
+ <key>marginPointLeft</key>
+ <integer>80</integer>
+ <key>marginPointRight</key>
+ <integer>120</integer>
+ <key>strokeThickness</key>
+ <integer>200</integer>
+ </dict>
+ <key>public.glyphOrder</key>
+ <array>
+ <string>.notdef</string>
+ <string>.null</string>
+ <string>nonmarkingreturn</string>
+ <string>Space</string>
+ <string>ExclamationMrk</string>
+ <string>QuotMrk</string>
+ <string>NumSgn</string>
+ <string>DollarSgn</string>
+ <string>PercentSgn</string>
+ <string>Ampersand</string>
+ <string>Apos</string>
+ <string>LftParen</string>
+ <string>RtParen</string>
+ <string>Asterisk</string>
+ <string>PlusSgn</string>
+ <string>Comma</string>
+ <string>HyphenMinus</string>
+ <string>FullStop</string>
+ <string>Solidus</string>
+ <string>DigitZero</string>
+ <string>DigitOne</string>
+ <string>DigitTwo</string>
+ <string>DigitThree</string>
+ <string>DigitFour</string>
+ <string>DigitFive</string>
+ <string>DigitSix</string>
+ <string>DigitSeven</string>
+ <string>DigitEight</string>
+ <string>DigitNine</string>
+ <string>Colon</string>
+ <string>Semicolon</string>
+ <string>LTSgn</string>
+ <string>EqSgn</string>
+ <string>GTSgn</string>
+ <string>QstnMrk</string>
+ <string>AtSgn</string>
+ <string>LtnCapA</string>
+ <string>LtnCapA.alt</string>
+ <string>LtnCapB</string>
+ <string>LtnCapC</string>
+ <string>LtnCapD</string>
+ <string>LtnCapE</string>
+ <string>LtnCapF</string>
+ <string>LtnCapG</string>
+ <string>LtnCapH</string>
+ <string>LtnCapI</string>
+ <string>LtnCapJ</string>
+ <string>LtnCapK</string>
+ <string>LtnCapL</string>
+ <string>LtnCapM</string>
+ <string>LtnCapN</string>
+ <string>LtnCapO</string>
+ <string>LtnCapP</string>
+ <string>LtnCapQ</string>
+ <string>LtnCapR</string>
+ <string>LtnCapS</string>
+ <string>LtnCapT</string>
+ <string>LtnCapU</string>
+ <string>LtnCapV</string>
+ <string>LtnCapW</string>
+ <string>LtnCapX</string>
+ <string>LtnCapY</string>
+ <string>LftSqrBrac</string>
+ <string>ReverseSolidus</string>
+ <string>RtSqrBrac</string>
+ <string>CircumAccent</string>
+ <string>LowLine</string>
+ <string>GraveAccent</string>
+ <string>LtnSmA</string>
+ <string>LtnSmB</string>
+ <string>LtnSmC</string>
+ <string>LtnSmD</string>
+ <string>LtnSmE</string>
+ <string>LtnSmF</string>
+ <string>LtnSmG</string>
+ <string>LtnSmH</string>
+ <string>LtnSmI</string>
+ <string>LtnSmJ</string>
+ <string>LtnSmK</string>
+ <string>LtnSmL</string>
+ <string>LtnSmM</string>
+ <string>LtnSmN</string>
+ <string>LtnSmO</string>
+ <string>LtnSmP</string>
+ <string>LtnSmQ</string>
+ <string>LtnSmR</string>
+ <string>LtnSmS</string>
+ <string>LtnSmT</string>
+ <string>LtnSmU</string>
+ <string>LtnSmV</string>
+ <string>LtnSmW</string>
+ <string>LtnSmX</string>
+ <string>LtnSmY</string>
+ <string>LftCurlyBrac</string>
+ <string>VertLine</string>
+ <string>RtCurlyBrac</string>
+ <string>Tilde</string>
+ <string>LtnCapADiaer</string>
+ <string>LtnSmAAcute</string>
+ <string>LtnSmAGrave</string>
+ <string>LtnSmACircum</string>
+ <string>LtnSmADiaer</string>
+ <string>LtnSmATilde</string>
+ <string>LtnSmARingAbv</string>
+ <string>DottedCirc</string>
+ <string>Hyphen</string>
+ <string>NonBreakingHyphen</string>
+ <string>Hyphen_Soft</string>
+ <string>CombAcute</string>
+ <string>CombGrave</string>
+ <string>CombCircum</string>
+ <string>CombTilde</string>
+ <string>CombDiaer</string>
+ <string>CombRingAbv</string>
+ </array>
+ <key>public.postscriptNames</key>
+ <dict>
+ <key>Ampersand</key>
+ <string>ampersand</string>
+ <key>Apos</key>
+ <string>quotesingle</string>
+ <key>Asterisk</key>
+ <string>asterisk</string>
+ <key>AtSgn</key>
+ <string>at</string>
+ <key>CircumAccent</key>
+ <string>asciicircum</string>
+ <key>Colon</key>
+ <string>colon</string>
+ <key>CombAcute</key>
+ <string>acutecomb</string>
+ <key>CombCircum</key>
+ <string>uni0302</string>
+ <key>CombDiaer</key>
+ <string>uni0308</string>
+ <key>CombGrave</key>
+ <string>gravecomb</string>
+ <key>CombRingAbv</key>
+ <string>uni030A</string>
+ <key>CombTilde</key>
+ <string>tildecomb</string>
+ <key>Comma</key>
+ <string>comma</string>
+ <key>DigitEight</key>
+ <string>eight</string>
+ <key>DigitFive</key>
+ <string>five</string>
+ <key>DigitFour</key>
+ <string>four</string>
+ <key>DigitNine</key>
+ <string>nine</string>
+ <key>DigitOne</key>
+ <string>one</string>
+ <key>DigitSeven</key>
+ <string>seven</string>
+ <key>DigitSix</key>
+ <string>six</string>
+ <key>DigitThree</key>
+ <string>three</string>
+ <key>DigitTwo</key>
+ <string>two</string>
+ <key>DigitZero</key>
+ <string>zero</string>
+ <key>DollarSgn</key>
+ <string>dollar</string>
+ <key>DottedCirc</key>
+ <string>uni25CC</string>
+ <key>EqSgn</key>
+ <string>equal</string>
+ <key>ExclamationMrk</key>
+ <string>exclam</string>
+ <key>FullStop</key>
+ <string>period</string>
+ <key>GTSgn</key>
+ <string>greater</string>
+ <key>GraveAccent</key>
+ <string>grave</string>
+ <key>Hyphen</key>
+ <string>uni2010</string>
+ <key>HyphenMinus</key>
+ <string>hyphen</string>
+ <key>Hyphen_Soft</key>
+ <string>uni00AD</string>
+ <key>LTSgn</key>
+ <string>less</string>
+ <key>LftCurlyBrac</key>
+ <string>braceleft</string>
+ <key>LftParen</key>
+ <string>parenleft</string>
+ <key>LftSqrBrac</key>
+ <string>bracketleft</string>
+ <key>LowLine</key>
+ <string>underscore</string>
+ <key>LtnCapA</key>
+ <string>A</string>
+ <key>LtnCapA.alt</key>
+ <string>A</string>
+ <key>LtnCapADiaer</key>
+ <string>Adieresis</string>
+ <key>LtnCapB</key>
+ <string>B</string>
+ <key>LtnCapC</key>
+ <string>C</string>
+ <key>LtnCapD</key>
+ <string>D</string>
+ <key>LtnCapE</key>
+ <string>E</string>
+ <key>LtnCapF</key>
+ <string>F</string>
+ <key>LtnCapG</key>
+ <string>G</string>
+ <key>LtnCapH</key>
+ <string>H</string>
+ <key>LtnCapI</key>
+ <string>I</string>
+ <key>LtnCapJ</key>
+ <string>J</string>
+ <key>LtnCapK</key>
+ <string>K</string>
+ <key>LtnCapL</key>
+ <string>L</string>
+ <key>LtnCapM</key>
+ <string>M</string>
+ <key>LtnCapN</key>
+ <string>N</string>
+ <key>LtnCapO</key>
+ <string>O</string>
+ <key>LtnCapP</key>
+ <string>P</string>
+ <key>LtnCapQ</key>
+ <string>Q</string>
+ <key>LtnCapR</key>
+ <string>R</string>
+ <key>LtnCapS</key>
+ <string>S</string>
+ <key>LtnCapT</key>
+ <string>T</string>
+ <key>LtnCapU</key>
+ <string>U</string>
+ <key>LtnCapV</key>
+ <string>V</string>
+ <key>LtnCapW</key>
+ <string>W</string>
+ <key>LtnCapX</key>
+ <string>X</string>
+ <key>LtnCapY</key>
+ <string>Y</string>
+ <key>LtnSmA</key>
+ <string>a</string>
+ <key>LtnSmAAcute</key>
+ <string>aacute</string>
+ <key>LtnSmACircum</key>
+ <string>acircumflex</string>
+ <key>LtnSmADiaer</key>
+ <string>adieresis</string>
+ <key>LtnSmAGrave</key>
+ <string>agrave</string>
+ <key>LtnSmARingAbv</key>
+ <string>aring</string>
+ <key>LtnSmATilde</key>
+ <string>atilde</string>
+ <key>LtnSmB</key>
+ <string>b</string>
+ <key>LtnSmC</key>
+ <string>c</string>
+ <key>LtnSmD</key>
+ <string>d</string>
+ <key>LtnSmE</key>
+ <string>e</string>
+ <key>LtnSmF</key>
+ <string>f</string>
+ <key>LtnSmG</key>
+ <string>g</string>
+ <key>LtnSmH</key>
+ <string>h</string>
+ <key>LtnSmI</key>
+ <string>i</string>
+ <key>LtnSmJ</key>
+ <string>j</string>
+ <key>LtnSmK</key>
+ <string>k</string>
+ <key>LtnSmL</key>
+ <string>l</string>
+ <key>LtnSmM</key>
+ <string>m</string>
+ <key>LtnSmN</key>
+ <string>n</string>
+ <key>LtnSmO</key>
+ <string>o</string>
+ <key>LtnSmP</key>
+ <string>p</string>
+ <key>LtnSmQ</key>
+ <string>q</string>
+ <key>LtnSmR</key>
+ <string>r</string>
+ <key>LtnSmS</key>
+ <string>s</string>
+ <key>LtnSmT</key>
+ <string>t</string>
+ <key>LtnSmU</key>
+ <string>u</string>
+ <key>LtnSmV</key>
+ <string>v</string>
+ <key>LtnSmW</key>
+ <string>w</string>
+ <key>LtnSmX</key>
+ <string>x</string>
+ <key>LtnSmY</key>
+ <string>y</string>
+ <key>NonBreakingHyphen</key>
+ <string>uni2011</string>
+ <key>NumSgn</key>
+ <string>numbersign</string>
+ <key>PercentSgn</key>
+ <string>percent</string>
+ <key>PlusSgn</key>
+ <string>plus</string>
+ <key>QstnMrk</key>
+ <string>question</string>
+ <key>QuotMrk</key>
+ <string>quotedbl</string>
+ <key>ReverseSolidus</key>
+ <string>backslash</string>
+ <key>RtCurlyBrac</key>
+ <string>braceright</string>
+ <key>RtParen</key>
+ <string>parenright</string>
+ <key>RtSqrBrac</key>
+ <string>bracketright</string>
+ <key>Semicolon</key>
+ <string>semicolon</string>
+ <key>Solidus</key>
+ <string>slash</string>
+ <key>Space</key>
+ <string>space</string>
+ <key>Tilde</key>
+ <string>asciitilde</string>
+ <key>VertLine</key>
+ <string>bar</string>
+ </dict>
+</dict>
+</plist>
diff --git a/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/metainfo.plist b/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/metainfo.plist
new file mode 100644
index 0000000..aa10c5c
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo/metainfo.plist
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>creator</key>
+ <string>org.sil.scripts.pysilfont</string>
+ <key>formatVersion</key>
+ <integer>3</integer>
+</dict>
+</plist>
diff --git a/tests/input/font-psf-test/source/PsfTest-Italic.ufo/fontinfo.plist b/tests/input/font-psf-test/source/PsfTest-Italic.ufo/fontinfo.plist
new file mode 100644
index 0000000..e6bd28c
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Italic.ufo/fontinfo.plist
@@ -0,0 +1,243 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>ascender</key>
+ <integer>2100</integer>
+ <key>capHeight</key>
+ <real>1485.3</real>
+ <key>copyright</key>
+ <string>Copyright (c) 2004-2021 SIL International</string>
+ <key>descender</key>
+ <integer>-550</integer>
+ <key>familyName</key>
+ <string>Psf Test</string>
+ <key>italicAngle</key>
+ <integer>-14</integer>
+ <key>openTypeHeadCreated</key>
+ <string>2021/01/01 11:00:00</string>
+ <key>openTypeHheaAscender</key>
+ <integer>2100</integer>
+ <key>openTypeHheaDescender</key>
+ <integer>-550</integer>
+ <key>openTypeHheaLineGap</key>
+ <integer>0</integer>
+ <key>openTypeNameDescription</key>
+ <string>Copyright (c) 2004-2021 SIL International</string>
+ <key>openTypeNameDesigner</key>
+ <string>Victor Gaultney, Annie Olsen, Julie Remington, Don Collingsworth, Eric Hays, Becca Hirsbrunner</string>
+ <key>openTypeNameDesignerURL</key>
+ <string>http://scripts.sil.org/</string>
+ <key>openTypeNameLicense</key>
+ <string>Copyright (c) 2004-2021 SIL International (http://www.sil.org/) with Reserved Font Names "Andika" and "SIL".
+
+This Font Software is licensed under the SIL Open Font License, Version 1.1. This license is copied below, and is also available with a FAQ at: http://scripts.sil.org/OFL
+
+
+-----------------------------------------------------------
+SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
+-----------------------------------------------------------
+
+PREAMBLE
+The goals of the Open Font License (OFL) are to stimulate worldwide development of collaborative font projects, to support the font creation efforts of academic and linguistic communities, and to provide a free and open framework in which fonts may be shared and improved in partnership with others.
+
+The OFL allows the licensed fonts to be used, studied, modified and redistributed freely as long as they are not sold by themselves. The fonts, including any derivative works, can be bundled, embedded, redistributed and/or sold with any software provided that any reserved names are not used by derivative works. The fonts and derivatives, however, cannot be released under any other type of license. The requirement for fonts to remain under this license does not apply to any document created using the fonts or their derivatives.
+
+DEFINITIONS
+"Font Software" refers to the set of files released by the Copyright Holder(s) under this license and clearly marked as such. This may include source files, build scripts and documentation.
+
+"Reserved Font Name" refers to any names specified as such after the copyright statement(s).
+
+"Original Version" refers to the collection of Font Software components as distributed by the Copyright Holder(s).
+
+"Modified Version" refers to any derivative made by adding to, deleting, or substituting -- in part or in whole -- any of the components of the Original Version, by changing formats or by porting the Font Software to a new environment.
+
+"Author" refers to any designer, engineer, programmer, technical writer or other person who contributed to the Font Software.
+
+PERMISSION &amp; CONDITIONS
+Permission is hereby granted, free of charge, to any person obtaining a copy of the Font Software, to use, study, copy, merge, embed, modify, redistribute, and sell modified and unmodified copies of the Font Software, subject to the following conditions:
+
+1) Neither the Font Software nor any of its individual components, in Original or Modified Versions, may be sold by itself.
+
+2) Original or Modified Versions of the Font Software may be bundled, redistributed and/or sold with any software, provided that each copy contains the above copyright notice and this license. These can be included either as stand-alone text files, human-readable headers or in the appropriate machine-readable metadata fields within text or binary files as long as those fields can be easily viewed by the user.
+
+3) No Modified Version of the Font Software may use the Reserved Font Name(s) unless explicit written permission is granted by the corresponding Copyright Holder. This restriction only applies to the primary font name as presented to the users.
+
+4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font Software shall not be used to promote, endorse or advertise any Modified Version, except to acknowledge the contribution(s) of the Copyright Holder(s) and the Author(s) or with their explicit written permission.
+
+5) The Font Software, modified or unmodified, in part or in whole, must be distributed entirely under this license, and must not be distributed under any other license. The requirement for fonts to remain under this license does not apply to any document created using the Font Software.
+
+TERMINATION
+This license becomes null and void if any of the above conditions are not met.
+
+DISCLAIMER
+THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM OTHER DEALINGS IN THE FONT SOFTWARE.</string>
+ <key>openTypeNameLicenseURL</key>
+ <string>http://scripts.sil.org/OFL</string>
+ <key>openTypeNameManufacturer</key>
+ <string>SIL International</string>
+ <key>openTypeNameManufacturerURL</key>
+ <string>http://scripts.sil.org</string>
+ <key>openTypeNamePreferredFamilyName</key>
+ <string>Psf Testing</string>
+ <key>openTypeNamePreferredSubfamilyName</key>
+ <string>Italic</string>
+ <key>openTypeNameUniqueID</key>
+ <string>SIL International: Psf Test Italic: 2022</string>
+ <key>openTypeNameVersion</key>
+ <string>Version 5.550</string>
+ <key>openTypeOS2CodePageRanges</key>
+ <array>
+ <integer>0</integer>
+ <integer>1</integer>
+ <integer>2</integer>
+ <integer>4</integer>
+ <integer>7</integer>
+ <integer>8</integer>
+ </array>
+ <key>openTypeOS2FamilyClass</key>
+ <array>
+ <integer>0</integer>
+ <integer>0</integer>
+ </array>
+ <key>openTypeOS2Panose</key>
+ <array>
+ <integer>2</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ </array>
+ <key>openTypeOS2StrikeoutPosition</key>
+ <integer>700</integer>
+ <key>openTypeOS2StrikeoutSize</key>
+ <integer>100</integer>
+ <key>openTypeOS2SubscriptXOffset</key>
+ <integer>0</integer>
+ <key>openTypeOS2SubscriptXSize</key>
+ <integer>1433</integer>
+ <key>openTypeOS2SubscriptYOffset</key>
+ <integer>286</integer>
+ <key>openTypeOS2SubscriptYSize</key>
+ <integer>1331</integer>
+ <key>openTypeOS2SuperscriptXOffset</key>
+ <integer>0</integer>
+ <key>openTypeOS2SuperscriptXSize</key>
+ <integer>1433</integer>
+ <key>openTypeOS2SuperscriptYOffset</key>
+ <integer>976</integer>
+ <key>openTypeOS2SuperscriptYSize</key>
+ <integer>1331</integer>
+ <key>openTypeOS2Type</key>
+ <array/>
+ <key>openTypeOS2TypoAscender</key>
+ <integer>2100</integer>
+ <key>openTypeOS2TypoDescender</key>
+ <integer>-550</integer>
+ <key>openTypeOS2TypoLineGap</key>
+ <integer>1</integer>
+ <key>openTypeOS2UnicodeRanges</key>
+ <array>
+ <integer>0</integer>
+ <integer>1</integer>
+ <integer>6</integer>
+ <integer>7</integer>
+ <integer>31</integer>
+ <integer>33</integer>
+ <integer>35</integer>
+ <integer>36</integer>
+ <integer>37</integer>
+ <integer>38</integer>
+ <integer>39</integer>
+ <integer>40</integer>
+ <integer>45</integer>
+ <integer>46</integer>
+ <integer>47</integer>
+ <integer>57</integer>
+ <integer>60</integer>
+ <integer>62</integer>
+ <integer>64</integer>
+ <integer>67</integer>
+ <integer>69</integer>
+ <integer>89</integer>
+ </array>
+ <key>openTypeOS2VendorID</key>
+ <string>SIL</string>
+ <key>openTypeOS2WeightClass</key>
+ <integer>400</integer>
+ <key>openTypeOS2WidthClass</key>
+ <integer>5</integer>
+ <key>openTypeOS2WinAscent</key>
+ <integer>2100</integer>
+ <key>openTypeOS2WinDescent</key>
+ <integer>550</integer>
+ <key>postscriptBlueValues</key>
+ <array>
+ <integer>-490</integer>
+ <integer>-490</integer>
+ <integer>-25</integer>
+ <integer>0</integer>
+ <integer>1020</integer>
+ <integer>1040</integer>
+ <integer>1455</integer>
+ <integer>1485</integer>
+ <integer>1600</integer>
+ <integer>1620</integer>
+ </array>
+ <key>postscriptFontName</key>
+ <string>PsfTest-Italic</string>
+ <key>postscriptFullName</key>
+ <string>Psf Test Italic</string>
+ <key>postscriptStemSnapH</key>
+ <array>
+ <integer>140</integer>
+ <integer>145</integer>
+ <integer>150</integer>
+ <integer>155</integer>
+ <integer>160</integer>
+ <integer>165</integer>
+ <integer>170</integer>
+ <integer>175</integer>
+ <integer>185</integer>
+ <integer>270</integer>
+ </array>
+ <key>postscriptStemSnapV</key>
+ <array>
+ <integer>165</integer>
+ <integer>180</integer>
+ <integer>185</integer>
+ <integer>190</integer>
+ <integer>195</integer>
+ <integer>200</integer>
+ <integer>205</integer>
+ <integer>270</integer>
+ </array>
+ <key>postscriptUnderlinePosition</key>
+ <integer>-110</integer>
+ <key>postscriptUnderlineThickness</key>
+ <integer>80</integer>
+ <key>styleMapFamilyName</key>
+ <string>Psf test</string>
+ <key>styleMapStyleName</key>
+ <string>italic</string>
+ <key>styleName</key>
+ <string>Italic</string>
+ <key>trademark</key>
+ <string>Andika is a trademark of SIL International.</string>
+ <key>unitsPerEm</key>
+ <integer>2048</integer>
+ <key>versionMajor</key>
+ <integer>5</integer>
+ <key>versionMinor</key>
+ <integer>550</integer>
+ <key>xHeight</key>
+ <integer>1040</integer>
+ <key>year</key>
+ <integer>2021</integer>
+</dict>
+</plist>
diff --git a/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/A_mpersand.glif b/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/A_mpersand.glif
new file mode 100644
index 0000000..689cb3e
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/A_mpersand.glif
@@ -0,0 +1,61 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Ampersand" format="2">
+ <advance width="1202"/>
+ <unicode hex="0026"/>
+ <outline>
+ <contour>
+ <point x="1054" y="559" type="line"/>
+ <point x="949" y="395"/>
+ <point x="616" y="147"/>
+ <point x="441" y="147" type="curve" smooth="yes"/>
+ <point x="318" y="147"/>
+ <point x="256" y="224"/>
+ <point x="256" y="314" type="curve" smooth="yes"/>
+ <point x="256" y="453"/>
+ <point x="369" y="575"/>
+ <point x="590" y="725" type="curve" smooth="yes"/>
+ <point x="836" y="892"/>
+ <point x="1022" y="1067"/>
+ <point x="1022" y="1223" type="curve" smooth="yes"/>
+ <point x="1022" y="1363"/>
+ <point x="894" y="1455"/>
+ <point x="762" y="1455" type="curve" smooth="yes"/>
+ <point x="504" y="1455"/>
+ <point x="378" y="1328"/>
+ <point x="378" y="1114" type="curve" smooth="yes"/>
+ <point x="378" y="953"/>
+ <point x="514" y="771"/>
+ <point x="614" y="559" type="curve" smooth="yes"/>
+ <point x="783" y="198"/>
+ <point x="906" y="-25"/>
+ <point x="958" y="-25" type="curve" smooth="yes"/>
+ <point x="993" y="-25"/>
+ <point x="1087" y="37"/>
+ <point x="1132" y="69" type="curve"/>
+ <point x="1046" y="108"/>
+ <point x="926" y="291"/>
+ <point x="756" y="666" type="curve" smooth="yes"/>
+ <point x="665" y="866"/>
+ <point x="544" y="1029"/>
+ <point x="544" y="1149" type="curve" smooth="yes"/>
+ <point x="544" y="1252"/>
+ <point x="632" y="1323"/>
+ <point x="724" y="1323" type="curve" smooth="yes"/>
+ <point x="794" y="1323"/>
+ <point x="858" y="1266"/>
+ <point x="858" y="1193" type="curve" smooth="yes"/>
+ <point x="858" y="1107"/>
+ <point x="743" y="1004"/>
+ <point x="492" y="826" type="curve" smooth="yes"/>
+ <point x="182" y="606"/>
+ <point x="73" y="439"/>
+ <point x="73" y="288" type="curve" smooth="yes"/>
+ <point x="73" y="113"/>
+ <point x="195" y="-25"/>
+ <point x="383" y="-25" type="curve" smooth="yes"/>
+ <point x="656" y="-25"/>
+ <point x="1009" y="269"/>
+ <point x="1126" y="426" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/A_pos.glif b/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/A_pos.glif
new file mode 100644
index 0000000..deb1650
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/A_pos.glif
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Apos" format="2">
+ <advance width="585"/>
+ <unicode hex="0027"/>
+ <outline>
+ <contour>
+ <point x="560" y="1024" type="line"/>
+ <point x="599" y="1162"/>
+ <point x="643" y="1312"/>
+ <point x="732" y="1553" type="curve"/>
+ <point x="527" y="1553" type="line"/>
+ <point x="498" y="1312"/>
+ <point x="465" y="1162"/>
+ <point x="435" y="1024" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/A_sterisk.glif b/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/A_sterisk.glif
new file mode 100644
index 0000000..3027a5d
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/A_sterisk.glif
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Asterisk" format="2">
+ <advance width="1008"/>
+ <unicode hex="002A"/>
+ <outline>
+ <contour>
+ <point x="745" y="1568" type="line"/>
+ <point x="733" y="1438"/>
+ <point x="725" y="1359"/>
+ <point x="707" y="1274" type="curve"/>
+ <point x="644" y="1317"/>
+ <point x="587" y="1359"/>
+ <point x="498" y="1436" type="curve"/>
+ <point x="392" y="1313" type="line"/>
+ <point x="505" y="1264"/>
+ <point x="575" y="1236"/>
+ <point x="643" y="1196" type="curve"/>
+ <point x="556" y="1153"/>
+ <point x="474" y="1117"/>
+ <point x="340" y="1063" type="curve"/>
+ <point x="379" y="941" type="line"/>
+ <point x="504" y="1021"/>
+ <point x="584" y="1072"/>
+ <point x="668" y="1117" type="curve"/>
+ <point x="645" y="1034"/>
+ <point x="619" y="954"/>
+ <point x="575" y="823" type="curve"/>
+ <point x="715" y="823" type="line"/>
+ <point x="727" y="954"/>
+ <point x="741" y="1031"/>
+ <point x="758" y="1117" type="curve"/>
+ <point x="821" y="1073"/>
+ <point x="878" y="1032"/>
+ <point x="968" y="956" type="curve"/>
+ <point x="1073" y="1078" type="line"/>
+ <point x="959" y="1126"/>
+ <point x="890" y="1155"/>
+ <point x="823" y="1196" type="curve"/>
+ <point x="909" y="1236"/>
+ <point x="990" y="1273"/>
+ <point x="1126" y="1328" type="curve"/>
+ <point x="1086" y="1450" type="line"/>
+ <point x="961" y="1368"/>
+ <point x="883" y="1321"/>
+ <point x="797" y="1274" type="curve"/>
+ <point x="819" y="1359"/>
+ <point x="845" y="1438"/>
+ <point x="890" y="1568" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/A_tS_gn.glif b/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/A_tS_gn.glif
new file mode 100644
index 0000000..2cd2542
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/A_tS_gn.glif
@@ -0,0 +1,104 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="AtSgn" format="2">
+ <advance width="1682"/>
+ <unicode hex="0040"/>
+ <outline>
+ <contour>
+ <point x="1082" y="-10" type="line"/>
+ <point x="980" y="-69"/>
+ <point x="889" y="-93"/>
+ <point x="796" y="-93" type="curve" smooth="yes"/>
+ <point x="507" y="-93"/>
+ <point x="301" y="104"/>
+ <point x="301" y="414" type="curve" smooth="yes"/>
+ <point x="301" y="476"/>
+ <point x="309" y="543"/>
+ <point x="327" y="613" type="curve" smooth="yes"/>
+ <point x="425" y="1003"/>
+ <point x="782" y="1245"/>
+ <point x="1110" y="1245" type="curve" smooth="yes"/>
+ <point x="1433" y="1245"/>
+ <point x="1590" y="1060"/>
+ <point x="1590" y="813" type="curve" smooth="yes"/>
+ <point x="1590" y="760"/>
+ <point x="1582" y="705"/>
+ <point x="1568" y="647" type="curve" smooth="yes"/>
+ <point x="1510" y="413"/>
+ <point x="1365" y="309"/>
+ <point x="1297" y="309" type="curve" smooth="yes"/>
+ <point x="1261" y="309"/>
+ <point x="1238" y="344"/>
+ <point x="1238" y="420" type="curve" smooth="yes"/>
+ <point x="1238" y="468"/>
+ <point x="1247" y="533"/>
+ <point x="1268" y="617" type="curve" smooth="yes"/>
+ <point x="1354" y="960" type="line"/>
+ <point x="1276" y="995"/>
+ <point x="1155" y="1019"/>
+ <point x="1074" y="1019" type="curve" smooth="yes"/>
+ <point x="910" y="1019"/>
+ <point x="790" y="962"/>
+ <point x="673" y="828" type="curve" smooth="yes"/>
+ <point x="607" y="751"/>
+ <point x="554" y="650"/>
+ <point x="524" y="529" type="curve" smooth="yes"/>
+ <point x="514" y="488"/>
+ <point x="509" y="450"/>
+ <point x="509" y="416" type="curve" smooth="yes"/>
+ <point x="509" y="259"/>
+ <point x="609" y="179"/>
+ <point x="719" y="179" type="curve" smooth="yes"/>
+ <point x="836" y="179"/>
+ <point x="1017" y="359"/>
+ <point x="1099" y="480" type="curve"/>
+ <point x="1093" y="446"/>
+ <point x="1089" y="413"/>
+ <point x="1089" y="382" type="curve" smooth="yes"/>
+ <point x="1089" y="264"/>
+ <point x="1136" y="176"/>
+ <point x="1233" y="176" type="curve" smooth="yes"/>
+ <point x="1408" y="176"/>
+ <point x="1635" y="331"/>
+ <point x="1716" y="656" type="curve" smooth="yes"/>
+ <point x="1732" y="722"/>
+ <point x="1740" y="784"/>
+ <point x="1740" y="843" type="curve" smooth="yes"/>
+ <point x="1740" y="1161"/>
+ <point x="1513" y="1377"/>
+ <point x="1153" y="1377" type="curve" smooth="yes"/>
+ <point x="738" y="1377"/>
+ <point x="310" y="1143"/>
+ <point x="175" y="603" type="curve" smooth="yes"/>
+ <point x="155" y="522"/>
+ <point x="145" y="446"/>
+ <point x="145" y="375" type="curve" smooth="yes"/>
+ <point x="145" y="-5"/>
+ <point x="417" y="-230"/>
+ <point x="747" y="-230" type="curve" smooth="yes"/>
+ <point x="882" y="-230"/>
+ <point x="1044" y="-184"/>
+ <point x="1161" y="-116" type="curve"/>
+ </contour>
+ <contour>
+ <point x="1141" y="706" type="line"/>
+ <point x="1075" y="570"/>
+ <point x="856" y="314"/>
+ <point x="766" y="314" type="curve" smooth="yes"/>
+ <point x="712" y="314"/>
+ <point x="669" y="362"/>
+ <point x="669" y="459" type="curve" smooth="yes"/>
+ <point x="669" y="491"/>
+ <point x="674" y="530"/>
+ <point x="685" y="573" type="curve" smooth="yes"/>
+ <point x="704" y="649"/>
+ <point x="739" y="726"/>
+ <point x="780" y="774" type="curve" smooth="yes"/>
+ <point x="859" y="868"/>
+ <point x="943" y="887"/>
+ <point x="1011" y="887" type="curve" smooth="yes"/>
+ <point x="1085" y="887"/>
+ <point x="1148" y="868"/>
+ <point x="1177" y="853" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/C_ircumA_ccent.glif b/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/C_ircumA_ccent.glif
new file mode 100644
index 0000000..91ab811
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/C_ircumA_ccent.glif
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="CircumAccent" format="2">
+ <advance width="830"/>
+ <unicode hex="005E"/>
+ <anchor x="705" y="1635" name="U"/>
+ <outline>
+ <contour>
+ <point x="316" y="1147" type="line"/>
+ <point x="660" y="1421" type="line"/>
+ <point x="866" y="1147" type="line"/>
+ <point x="1015" y="1147" type="line"/>
+ <point x="761" y="1568" type="line"/>
+ <point x="591" y="1568" type="line"/>
+ <point x="166" y="1147" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/C_olon.glif b/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/C_olon.glif
new file mode 100644
index 0000000..bcccfc2
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/C_olon.glif
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Colon" format="2">
+ <advance width="620"/>
+ <unicode hex="003A"/>
+ <outline>
+ <contour>
+ <point x="314" y="758" type="curve" smooth="yes"/>
+ <point x="314" y="696"/>
+ <point x="365" y="642"/>
+ <point x="430" y="642" type="curve" smooth="yes"/>
+ <point x="514" y="642"/>
+ <point x="590" y="712"/>
+ <point x="590" y="792" type="curve" smooth="yes"/>
+ <point x="590" y="854"/>
+ <point x="540" y="907"/>
+ <point x="476" y="907" type="curve" smooth="yes"/>
+ <point x="393" y="907"/>
+ <point x="314" y="837"/>
+ </contour>
+ <contour>
+ <point x="148" y="90" type="curve" smooth="yes"/>
+ <point x="148" y="28"/>
+ <point x="198" y="-25"/>
+ <point x="263" y="-25" type="curve" smooth="yes"/>
+ <point x="347" y="-25"/>
+ <point x="424" y="45"/>
+ <point x="424" y="125" type="curve" smooth="yes"/>
+ <point x="424" y="186"/>
+ <point x="374" y="240"/>
+ <point x="309" y="240" type="curve" smooth="yes"/>
+ <point x="225" y="240"/>
+ <point x="148" y="170"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/C_ombA_cute.glif b/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/C_ombA_cute.glif
new file mode 100644
index 0000000..a7607fe
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/C_ombA_cute.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="CombAcute" format="2">
+ <unicode hex="0301"/>
+ <anchor x="-221" y="1635" name="U"/>
+ <anchor x="-355" y="1100" name="_U"/>
+ <outline>
+ <contour>
+ <point x="-99" y="1568" type="line"/>
+ <point x="-524" y="1147" type="line"/>
+ <point x="-354" y="1147" type="line"/>
+ <point x="150" y="1568" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/C_ombC_ircum.glif b/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/C_ombC_ircum.glif
new file mode 100644
index 0000000..6614f85
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/C_ombC_ircum.glif
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="CombCircum" format="2">
+ <unicode hex="0302"/>
+ <anchor x="-221" y="1635" name="U"/>
+ <anchor x="-320" y="1100" name="_U"/>
+ <outline>
+ <contour>
+ <point x="-619" y="1147" type="line"/>
+ <point x="-275" y="1421" type="line"/>
+ <point x="-69" y="1147" type="line"/>
+ <point x="80" y="1147" type="line"/>
+ <point x="-174" y="1568" type="line"/>
+ <point x="-344" y="1568" type="line"/>
+ <point x="-769" y="1147" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/C_ombD_iaer.glif b/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/C_ombD_iaer.glif
new file mode 100644
index 0000000..d6b35b7
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/C_ombD_iaer.glif
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="CombDiaer" format="2">
+ <unicode hex="0308"/>
+ <anchor x="-253" y="1505" name="U"/>
+ <anchor x="-350" y="1100" name="_U"/>
+ <outline>
+ <contour>
+ <point x="39" y="1338" type="curve" smooth="yes"/>
+ <point x="39" y="1399"/>
+ <point x="-7" y="1450"/>
+ <point x="-72" y="1450" type="curve" smooth="yes"/>
+ <point x="-167" y="1450"/>
+ <point x="-229" y="1372"/>
+ <point x="-229" y="1299" type="curve" smooth="yes"/>
+ <point x="-229" y="1238"/>
+ <point x="-182" y="1186"/>
+ <point x="-118" y="1186" type="curve" smooth="yes"/>
+ <point x="-33" y="1186"/>
+ <point x="39" y="1259"/>
+ </contour>
+ <contour>
+ <point x="-381" y="1338" type="curve" smooth="yes"/>
+ <point x="-381" y="1399"/>
+ <point x="-427" y="1450"/>
+ <point x="-492" y="1450" type="curve" smooth="yes"/>
+ <point x="-587" y="1450"/>
+ <point x="-649" y="1372"/>
+ <point x="-649" y="1299" type="curve" smooth="yes"/>
+ <point x="-649" y="1238"/>
+ <point x="-602" y="1186"/>
+ <point x="-538" y="1186" type="curve" smooth="yes"/>
+ <point x="-453" y="1186"/>
+ <point x="-381" y="1259"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/C_ombG_rave.glif b/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/C_ombG_rave.glif
new file mode 100644
index 0000000..8869bb9
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/C_ombG_rave.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="CombGrave" format="2">
+ <unicode hex="0300"/>
+ <anchor x="-201" y="1635" name="U"/>
+ <anchor x="-335" y="1100" name="_U"/>
+ <outline>
+ <contour>
+ <point x="-619" y="1568" type="line"/>
+ <point x="-284" y="1147" type="line"/>
+ <point x="-134" y="1147" type="line"/>
+ <point x="-409" y="1568" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/C_ombR_ingA_bv.glif b/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/C_ombR_ingA_bv.glif
new file mode 100644
index 0000000..38232a0
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/C_ombR_ingA_bv.glif
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="CombRingAbv" format="2">
+ <unicode hex="030A"/>
+ <anchor x="-221" y="1635" name="U"/>
+ <anchor x="-385" y="1100" name="_U"/>
+ <outline>
+ <contour>
+ <point x="-377" y="1259" type="curve" smooth="yes"/>
+ <point x="-427" y="1259"/>
+ <point x="-456" y="1287"/>
+ <point x="-456" y="1329" type="curve" smooth="yes"/>
+ <point x="-456" y="1400"/>
+ <point x="-393" y="1455"/>
+ <point x="-328" y="1455" type="curve" smooth="yes"/>
+ <point x="-278" y="1455"/>
+ <point x="-248" y="1428"/>
+ <point x="-248" y="1385" type="curve" smooth="yes"/>
+ <point x="-248" y="1314"/>
+ <point x="-312" y="1259"/>
+ </contour>
+ <contour>
+ <point x="-573" y="1320" type="curve" smooth="yes"/>
+ <point x="-573" y="1224"/>
+ <point x="-498" y="1147"/>
+ <point x="-395" y="1147" type="curve" smooth="yes"/>
+ <point x="-257" y="1147"/>
+ <point x="-131" y="1263"/>
+ <point x="-131" y="1394" type="curve" smooth="yes"/>
+ <point x="-131" y="1491"/>
+ <point x="-206" y="1568"/>
+ <point x="-310" y="1568" type="curve" smooth="yes"/>
+ <point x="-448" y="1568"/>
+ <point x="-573" y="1451"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/C_ombT_ilde.glif b/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/C_ombT_ilde.glif
new file mode 100644
index 0000000..f79322e
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/C_ombT_ilde.glif
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="CombTilde" format="2">
+ <unicode hex="0303"/>
+ <anchor x="-290" y="1475" name="U"/>
+ <anchor x="-385" y="1100" name="_U"/>
+ <outline>
+ <contour>
+ <point x="-646" y="1181" type="line"/>
+ <point x="-629" y="1229"/>
+ <point x="-589" y="1269"/>
+ <point x="-540" y="1269" type="curve" smooth="yes"/>
+ <point x="-503" y="1269"/>
+ <point x="-466" y="1253"/>
+ <point x="-398" y="1218" type="curve" smooth="yes"/>
+ <point x="-344" y="1190"/>
+ <point x="-296" y="1171"/>
+ <point x="-243" y="1171" type="curve" smooth="yes"/>
+ <point x="-120" y="1171"/>
+ <point x="-15" y="1286"/>
+ <point x="16" y="1411" type="curve"/>
+ <point x="-89" y="1411" type="line"/>
+ <point x="-107" y="1366"/>
+ <point x="-147" y="1323"/>
+ <point x="-194" y="1323" type="curve" smooth="yes"/>
+ <point x="-236" y="1323"/>
+ <point x="-273" y="1342"/>
+ <point x="-338" y="1370" type="curve" smooth="yes"/>
+ <point x="-401" y="1397"/>
+ <point x="-442" y="1421"/>
+ <point x="-498" y="1421" type="curve" smooth="yes"/>
+ <point x="-617" y="1421"/>
+ <point x="-721" y="1300"/>
+ <point x="-751" y="1181" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/C_omma.glif b/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/C_omma.glif
new file mode 100644
index 0000000..eaff517
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/C_omma.glif
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Comma" format="2">
+ <advance width="630"/>
+ <unicode hex="002C"/>
+ <outline>
+ <contour>
+ <point x="137" y="49" type="line"/>
+ <point x="277" y="49" type="line"/>
+ <point x="252" y="-50"/>
+ <point x="145" y="-169"/>
+ <point x="73" y="-225" type="curve"/>
+ <point x="163" y="-265" type="line"/>
+ <point x="280" y="-175"/>
+ <point x="431" y="-28"/>
+ <point x="431" y="118" type="curve" smooth="yes"/>
+ <point x="431" y="193"/>
+ <point x="378" y="245"/>
+ <point x="311" y="245" type="curve" smooth="yes"/>
+ <point x="254" y="245"/>
+ <point x="190" y="209"/>
+ <point x="161" y="147" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/D_igitE_ight.glif b/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/D_igitE_ight.glif
new file mode 100644
index 0000000..262f860
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/D_igitE_ight.glif
@@ -0,0 +1,63 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitEight" format="2">
+ <advance width="1180"/>
+ <unicode hex="0038"/>
+ <anchor x="515" y="-100" name="L"/>
+ <anchor x="922" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="542" y="-25" type="curve" smooth="yes"/>
+ <point x="839" y="-25"/>
+ <point x="1160" y="170"/>
+ <point x="1160" y="475" type="curve" smooth="yes"/>
+ <point x="1160" y="626"/>
+ <point x="1068" y="733"/>
+ <point x="988" y="779" type="curve"/>
+ <point x="1155" y="860"/>
+ <point x="1270" y="970"/>
+ <point x="1270" y="1151" type="curve" smooth="yes"/>
+ <point x="1270" y="1340"/>
+ <point x="1102" y="1455"/>
+ <point x="901" y="1455" type="curve" smooth="yes"/>
+ <point x="620" y="1455"/>
+ <point x="348" y="1292"/>
+ <point x="348" y="1018" type="curve" smooth="yes"/>
+ <point x="348" y="891"/>
+ <point x="427" y="814"/>
+ <point x="483" y="779" type="curve"/>
+ <point x="297" y="706"/>
+ <point x="115" y="549"/>
+ <point x="115" y="325" type="curve" smooth="yes"/>
+ <point x="115" y="111"/>
+ <point x="317" y="-25"/>
+ </contour>
+ <contour>
+ <point x="750" y="848" type="curve" smooth="yes"/>
+ <point x="628" y="848"/>
+ <point x="541" y="917"/>
+ <point x="541" y="1029" type="curve" smooth="yes"/>
+ <point x="541" y="1205"/>
+ <point x="704" y="1299"/>
+ <point x="862" y="1299" type="curve" smooth="yes"/>
+ <point x="985" y="1299"/>
+ <point x="1076" y="1235"/>
+ <point x="1076" y="1128" type="curve" smooth="yes"/>
+ <point x="1076" y="955"/>
+ <point x="907" y="848"/>
+ </contour>
+ <contour>
+ <point x="564" y="142" type="curve" smooth="yes"/>
+ <point x="413" y="142"/>
+ <point x="322" y="225"/>
+ <point x="322" y="350" type="curve" smooth="yes"/>
+ <point x="322" y="557"/>
+ <point x="520" y="696"/>
+ <point x="712" y="696" type="curve" smooth="yes"/>
+ <point x="864" y="696"/>
+ <point x="961" y="602"/>
+ <point x="961" y="476" type="curve" smooth="yes"/>
+ <point x="961" y="266"/>
+ <point x="753" y="142"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/D_igitF_ive.glif b/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/D_igitF_ive.glif
new file mode 100644
index 0000000..a224838
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/D_igitF_ive.glif
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitFive" format="2">
+ <advance width="1180"/>
+ <unicode hex="0035"/>
+ <anchor x="515" y="-100" name="L"/>
+ <anchor x="922" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1296" y="1431" type="line"/>
+ <point x="491" y="1431" type="line"/>
+ <point x="302" y="671" type="line"/>
+ <point x="438" y="718"/>
+ <point x="537" y="735"/>
+ <point x="643" y="735" type="curve" smooth="yes"/>
+ <point x="784" y="735"/>
+ <point x="933" y="660"/>
+ <point x="933" y="508" type="curve" smooth="yes"/>
+ <point x="933" y="273"/>
+ <point x="710" y="152"/>
+ <point x="497" y="152" type="curve" smooth="yes"/>
+ <point x="357" y="152"/>
+ <point x="263" y="195"/>
+ <point x="170" y="284" type="curve"/>
+ <point x="89" y="78" type="line"/>
+ <point x="195" y="2"/>
+ <point x="326" y="-25"/>
+ <point x="481" y="-25" type="curve" smooth="yes"/>
+ <point x="807" y="-25"/>
+ <point x="1129" y="190"/>
+ <point x="1129" y="546" type="curve" smooth="yes"/>
+ <point x="1129" y="757"/>
+ <point x="951" y="911"/>
+ <point x="702" y="911" type="curve" smooth="yes"/>
+ <point x="629" y="911"/>
+ <point x="576" y="906"/>
+ <point x="544" y="902" type="curve"/>
+ <point x="635" y="1264" type="line"/>
+ <point x="1020" y="1264" type="line" smooth="yes"/>
+ <point x="1104" y="1264"/>
+ <point x="1179" y="1260"/>
+ <point x="1250" y="1245" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/D_igitF_our.glif b/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/D_igitF_our.glif
new file mode 100644
index 0000000..eeccb48
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/D_igitF_our.glif
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitFour" format="2">
+ <advance width="1180"/>
+ <unicode hex="0034"/>
+ <anchor x="522" y="-100" name="L"/>
+ <anchor x="929" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1161" y="387" type="line"/>
+ <point x="1199" y="539" type="line"/>
+ <point x="1009" y="539" type="line"/>
+ <point x="1236" y="1450" type="line"/>
+ <point x="1026" y="1450" type="line"/>
+ <point x="144" y="539" type="line"/>
+ <point x="106" y="387" type="line"/>
+ <point x="781" y="387" type="line"/>
+ <point x="685" y="0" type="line"/>
+ <point x="875" y="0" type="line"/>
+ <point x="971" y="387" type="line"/>
+ </contour>
+ <contour>
+ <point x="985" y="1205" type="line"/>
+ <point x="819" y="539" type="line"/>
+ <point x="337" y="539" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/D_igitN_ine.glif b/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/D_igitN_ine.glif
new file mode 100644
index 0000000..191cd79
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/D_igitN_ine.glif
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitNine" format="2">
+ <advance width="1180"/>
+ <unicode hex="0039"/>
+ <anchor x="515" y="-100" name="L"/>
+ <anchor x="922" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="157" y="94" type="line"/>
+ <point x="208" y="29"/>
+ <point x="355" y="-25"/>
+ <point x="473" y="-25" type="curve" smooth="yes"/>
+ <point x="999" y="-25"/>
+ <point x="1267" y="520"/>
+ <point x="1267" y="982" type="curve" smooth="yes"/>
+ <point x="1267" y="1248"/>
+ <point x="1127" y="1455"/>
+ <point x="866" y="1455" type="curve" smooth="yes"/>
+ <point x="596" y="1455"/>
+ <point x="303" y="1269"/>
+ <point x="303" y="932" type="curve" smooth="yes"/>
+ <point x="303" y="761"/>
+ <point x="425" y="574"/>
+ <point x="661" y="574" type="curve" smooth="yes"/>
+ <point x="852" y="574"/>
+ <point x="1036" y="683"/>
+ <point x="1172" y="840" type="curve"/>
+ <point x="1121" y="922" type="line"/>
+ <point x="1019" y="810"/>
+ <point x="872" y="745"/>
+ <point x="717" y="745" type="curve" smooth="yes"/>
+ <point x="584" y="745"/>
+ <point x="498" y="833"/>
+ <point x="498" y="956" type="curve" smooth="yes"/>
+ <point x="498" y="1146"/>
+ <point x="638" y="1284"/>
+ <point x="821" y="1284" type="curve" smooth="yes"/>
+ <point x="998" y="1284"/>
+ <point x="1073" y="1119"/>
+ <point x="1073" y="956" type="curve" smooth="yes"/>
+ <point x="1073" y="455"/>
+ <point x="760" y="147"/>
+ <point x="496" y="147" type="curve" smooth="yes"/>
+ <point x="410" y="147"/>
+ <point x="298" y="209"/>
+ <point x="249" y="285" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/D_igitO_ne.glif b/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/D_igitO_ne.glif
new file mode 100644
index 0000000..a639774
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/D_igitO_ne.glif
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitOne" format="2">
+ <advance width="1180"/>
+ <unicode hex="0031"/>
+ <anchor x="515" y="-100" name="L"/>
+ <anchor x="922" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1021" y="167" type="line"/>
+ <point x="706" y="167" type="line"/>
+ <point x="1026" y="1450" type="line"/>
+ <point x="856" y="1450" type="line"/>
+ <point x="459" y="1243" type="line"/>
+ <point x="440" y="1066" type="line"/>
+ <point x="782" y="1235" type="line"/>
+ <point x="516" y="167" type="line"/>
+ <point x="201" y="167" type="line"/>
+ <point x="160" y="0" type="line"/>
+ <point x="980" y="0" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/D_igitS_even.glif b/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/D_igitS_even.glif
new file mode 100644
index 0000000..68c6ef6
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/D_igitS_even.glif
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitSeven" format="2">
+ <advance width="1180"/>
+ <unicode hex="0037"/>
+ <anchor x="515" y="-100" name="L"/>
+ <anchor x="922" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="420" y="0" type="line"/>
+ <point x="661" y="450"/>
+ <point x="972" y="877"/>
+ <point x="1367" y="1274" type="curve"/>
+ <point x="1406" y="1431" type="line"/>
+ <point x="386" y="1431" type="line"/>
+ <point x="341" y="1245" type="line"/>
+ <point x="421" y="1260"/>
+ <point x="538" y="1264"/>
+ <point x="726" y="1264" type="curve" smooth="yes"/>
+ <point x="1126" y="1264" type="line"/>
+ <point x="774" y="889"/>
+ <point x="517" y="555"/>
+ <point x="215" y="0" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/D_igitS_ix.glif b/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/D_igitS_ix.glif
new file mode 100644
index 0000000..b6be793
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/D_igitS_ix.glif
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitSix" format="2">
+ <advance width="1180"/>
+ <unicode hex="0036"/>
+ <anchor x="515" y="-100" name="L"/>
+ <anchor x="922" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1313" y="1347" type="line"/>
+ <point x="1248" y="1418"/>
+ <point x="1135" y="1455"/>
+ <point x="1017" y="1455" type="curve" smooth="yes"/>
+ <point x="481" y="1454"/>
+ <point x="208" y="915"/>
+ <point x="208" y="475" type="curve" smooth="yes"/>
+ <point x="208" y="167"/>
+ <point x="392" y="-25"/>
+ <point x="623" y="-25" type="curve" smooth="yes"/>
+ <point x="947" y="-25"/>
+ <point x="1183" y="169"/>
+ <point x="1183" y="517" type="curve" smooth="yes"/>
+ <point x="1183" y="709"/>
+ <point x="1029" y="887"/>
+ <point x="793" y="887" type="curve" smooth="yes"/>
+ <point x="636" y="887"/>
+ <point x="432" y="784"/>
+ <point x="317" y="633" type="curve"/>
+ <point x="364" y="559" type="line"/>
+ <point x="471" y="660"/>
+ <point x="596" y="716"/>
+ <point x="751" y="716" type="curve" smooth="yes"/>
+ <point x="898" y="716"/>
+ <point x="987" y="614"/>
+ <point x="987" y="454" type="curve" smooth="yes"/>
+ <point x="987" y="263"/>
+ <point x="816" y="147"/>
+ <point x="656" y="147" type="curve" smooth="yes"/>
+ <point x="491" y="147"/>
+ <point x="403" y="284"/>
+ <point x="403" y="472" type="curve" smooth="yes"/>
+ <point x="403" y="962"/>
+ <point x="664" y="1284"/>
+ <point x="985" y="1284" type="curve" smooth="yes"/>
+ <point x="1081" y="1284"/>
+ <point x="1174" y="1235"/>
+ <point x="1222" y="1156" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/D_igitT_hree.glif b/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/D_igitT_hree.glif
new file mode 100644
index 0000000..e01df2c
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/D_igitT_hree.glif
@@ -0,0 +1,52 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitThree" format="2">
+ <advance width="1180"/>
+ <unicode hex="0033"/>
+ <anchor x="515" y="-100" name="L"/>
+ <anchor x="922" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="562" y="853" type="line"/>
+ <point x="521" y="686" type="line"/>
+ <point x="591" y="686" type="line" smooth="yes"/>
+ <point x="802" y="686"/>
+ <point x="944" y="606"/>
+ <point x="944" y="476" type="curve" smooth="yes"/>
+ <point x="944" y="268"/>
+ <point x="738" y="147"/>
+ <point x="551" y="147" type="curve" smooth="yes"/>
+ <point x="371" y="147"/>
+ <point x="260" y="227"/>
+ <point x="181" y="348" type="curve"/>
+ <point x="104" y="137" type="line"/>
+ <point x="185" y="41"/>
+ <point x="341" y="-25"/>
+ <point x="518" y="-25" type="curve" smooth="yes"/>
+ <point x="815" y="-25"/>
+ <point x="1141" y="168"/>
+ <point x="1141" y="475" type="curve" smooth="yes"/>
+ <point x="1141" y="670"/>
+ <point x="973" y="763"/>
+ <point x="855" y="784" type="curve"/>
+ <point x="1046" y="827"/>
+ <point x="1266" y="955"/>
+ <point x="1266" y="1163" type="curve" smooth="yes"/>
+ <point x="1266" y="1338"/>
+ <point x="1073" y="1455"/>
+ <point x="852" y="1455" type="curve" smooth="yes"/>
+ <point x="685" y="1455"/>
+ <point x="536" y="1388"/>
+ <point x="433" y="1299" type="curve"/>
+ <point x="427" y="1132" type="line"/>
+ <point x="568" y="1246"/>
+ <point x="696" y="1284"/>
+ <point x="850" y="1284" type="curve" smooth="yes"/>
+ <point x="957" y="1284"/>
+ <point x="1068" y="1236"/>
+ <point x="1068" y="1137" type="curve" smooth="yes"/>
+ <point x="1068" y="949"/>
+ <point x="781" y="853"/>
+ <point x="632" y="853" type="curve" smooth="yes"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/D_igitT_wo.glif b/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/D_igitT_wo.glif
new file mode 100644
index 0000000..d1bbb54
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/D_igitT_wo.glif
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitTwo" format="2">
+ <advance width="1180"/>
+ <unicode hex="0032"/>
+ <anchor x="515" y="-100" name="L"/>
+ <anchor x="882" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1063" y="176" type="line"/>
+ <point x="980" y="163"/>
+ <point x="822" y="162"/>
+ <point x="625" y="162" type="curve" smooth="yes"/>
+ <point x="370" y="162" type="line"/>
+ <point x="783" y="393"/>
+ <point x="1210" y="830"/>
+ <point x="1210" y="1098" type="curve" smooth="yes"/>
+ <point x="1210" y="1296"/>
+ <point x="1075" y="1455"/>
+ <point x="842" y="1455" type="curve" smooth="yes"/>
+ <point x="673" y="1455"/>
+ <point x="488" y="1374"/>
+ <point x="380" y="1264" type="curve"/>
+ <point x="388" y="1098" type="line"/>
+ <point x="503" y="1203"/>
+ <point x="660" y="1279"/>
+ <point x="783" y="1279" type="curve" smooth="yes"/>
+ <point x="915" y="1279"/>
+ <point x="1003" y="1199"/>
+ <point x="1003" y="1063" type="curve" smooth="yes"/>
+ <point x="1003" y="848"/>
+ <point x="506" y="386"/>
+ <point x="101" y="167" type="curve"/>
+ <point x="60" y="0" type="line"/>
+ <point x="1020" y="0" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/D_igitZ_ero.glif b/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/D_igitZ_ero.glif
new file mode 100644
index 0000000..5d1bf0e
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/D_igitZ_ero.glif
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitZero" format="2">
+ <advance width="1180"/>
+ <unicode hex="0030"/>
+ <anchor x="520" y="-100" name="L"/>
+ <anchor x="927" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1024" y="711" type="curve" smooth="yes"/>
+ <point x="925" y="312"/>
+ <point x="747" y="142"/>
+ <point x="565" y="142" type="curve" smooth="yes"/>
+ <point x="432" y="142"/>
+ <point x="360" y="218"/>
+ <point x="360" y="383" type="curve" smooth="yes"/>
+ <point x="360" y="468"/>
+ <point x="377" y="579"/>
+ <point x="412" y="720" type="curve" smooth="yes"/>
+ <point x="512" y="1120"/>
+ <point x="678" y="1289"/>
+ <point x="871" y="1289" type="curve" smooth="yes"/>
+ <point x="1006" y="1289"/>
+ <point x="1077" y="1223"/>
+ <point x="1077" y="1051" type="curve" smooth="yes"/>
+ <point x="1077" y="966"/>
+ <point x="1060" y="854"/>
+ </contour>
+ <contour>
+ <point x="1230" y="715" type="curve" smooth="yes"/>
+ <point x="1262" y="841"/>
+ <point x="1276" y="949"/>
+ <point x="1276" y="1040" type="curve" smooth="yes"/>
+ <point x="1276" y="1335"/>
+ <point x="1124" y="1455"/>
+ <point x="902" y="1455" type="curve" smooth="yes"/>
+ <point x="613" y="1455"/>
+ <point x="344" y="1267"/>
+ <point x="206" y="716" type="curve" smooth="yes"/>
+ <point x="173" y="584"/>
+ <point x="158" y="474"/>
+ <point x="158" y="381" type="curve" smooth="yes"/>
+ <point x="158" y="104"/>
+ <point x="313" y="-25"/>
+ <point x="533" y="-25" type="curve" smooth="yes"/>
+ <point x="804" y="-25"/>
+ <point x="1086" y="138"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/D_ollarS_gn.glif b/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/D_ollarS_gn.glif
new file mode 100644
index 0000000..5c2db20
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/D_ollarS_gn.glif
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DollarSgn" format="2">
+ <advance width="1180"/>
+ <unicode hex="0024"/>
+ <outline>
+ <contour>
+ <point x="1225" y="1280" type="line"/>
+ <point x="1119" y="1337"/>
+ <point x="1023" y="1361"/>
+ <point x="882" y="1361" type="curve" smooth="yes"/>
+ <point x="513" y="1361"/>
+ <point x="354" y="1182"/>
+ <point x="354" y="992" type="curve" smooth="yes"/>
+ <point x="354" y="837"/>
+ <point x="446" y="771"/>
+ <point x="639" y="650" type="curve" smooth="yes"/>
+ <point x="844" y="521"/>
+ <point x="919" y="439"/>
+ <point x="919" y="357" type="curve" smooth="yes"/>
+ <point x="919" y="244"/>
+ <point x="826" y="158"/>
+ <point x="635" y="158" type="curve" smooth="yes"/>
+ <point x="469" y="158"/>
+ <point x="314" y="266"/>
+ <point x="251" y="347" type="curve"/>
+ <point x="163" y="162" type="line"/>
+ <point x="304" y="58"/>
+ <point x="453" y="0"/>
+ <point x="606" y="0" type="curve" smooth="yes"/>
+ <point x="872" y="0"/>
+ <point x="1102" y="119"/>
+ <point x="1102" y="381" type="curve" smooth="yes"/>
+ <point x="1102" y="528"/>
+ <point x="981" y="657"/>
+ <point x="801" y="771" type="curve" smooth="yes"/>
+ <point x="610" y="892"/>
+ <point x="535" y="943"/>
+ <point x="535" y="1024" type="curve" smooth="yes"/>
+ <point x="535" y="1116"/>
+ <point x="657" y="1203"/>
+ <point x="832" y="1203" type="curve" smooth="yes"/>
+ <point x="950" y="1203"/>
+ <point x="1031" y="1176"/>
+ <point x="1144" y="1104" type="curve"/>
+ </contour>
+ <contour>
+ <point x="878" y="1568" type="line"/>
+ <point x="434" y="-216" type="line"/>
+ <point x="574" y="-216" type="line"/>
+ <point x="1018" y="1568" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/D_ottedC_irc.glif b/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/D_ottedC_irc.glif
new file mode 100644
index 0000000..2cdf8fd
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/D_ottedC_irc.glif
@@ -0,0 +1,235 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DottedCirc" format="2">
+ <advance width="1086"/>
+ <unicode hex="25CC"/>
+ <anchor x="493" y="0" name="H"/>
+ <anchor x="468" y="-100" name="L"/>
+ <anchor x="750" y="0" name="O"/>
+ <anchor x="743" y="1000" name="U"/>
+ <outline>
+ <contour>
+ <point x="588" y="834" type="curve" smooth="yes"/>
+ <point x="588" y="858"/>
+ <point x="571" y="867"/>
+ <point x="553" y="867" type="curve" smooth="yes"/>
+ <point x="521" y="867"/>
+ <point x="491" y="837"/>
+ <point x="491" y="809" type="curve" smooth="yes"/>
+ <point x="491" y="788"/>
+ <point x="508" y="773"/>
+ <point x="530" y="773" type="curve" smooth="yes"/>
+ <point x="564" y="773"/>
+ <point x="588" y="805"/>
+ </contour>
+ <contour>
+ <point x="677" y="124" type="curve" smooth="yes"/>
+ <point x="647" y="124"/>
+ <point x="620" y="93"/>
+ <point x="620" y="67" type="curve" smooth="yes"/>
+ <point x="620" y="46"/>
+ <point x="636" y="30"/>
+ <point x="657" y="30" type="curve" smooth="yes"/>
+ <point x="687" y="30"/>
+ <point x="718" y="60"/>
+ <point x="718" y="86" type="curve" smooth="yes"/>
+ <point x="718" y="109"/>
+ <point x="700" y="124"/>
+ </contour>
+ <contour>
+ <point x="396" y="780" type="curve" smooth="yes"/>
+ <point x="369" y="780"/>
+ <point x="336" y="753"/>
+ <point x="336" y="722" type="curve" smooth="yes"/>
+ <point x="336" y="702"/>
+ <point x="351" y="687"/>
+ <point x="374" y="687" type="curve" smooth="yes"/>
+ <point x="403" y="687"/>
+ <point x="434" y="711"/>
+ <point x="434" y="744" type="curve" smooth="yes"/>
+ <point x="434" y="764"/>
+ <point x="414" y="780"/>
+ </contour>
+ <contour>
+ <point x="873" y="175" type="curve" smooth="yes"/>
+ <point x="872" y="199"/>
+ <point x="854" y="211"/>
+ <point x="833" y="211" type="curve" smooth="yes"/>
+ <point x="803" y="211"/>
+ <point x="774" y="183"/>
+ <point x="774" y="153" type="curve" smooth="yes"/>
+ <point x="774" y="133"/>
+ <point x="789" y="119"/>
+ <point x="812" y="119" type="curve" smooth="yes"/>
+ <point x="843" y="119"/>
+ <point x="873" y="146"/>
+ </contour>
+ <contour>
+ <point x="313" y="612" type="curve" smooth="yes"/>
+ <point x="312" y="633"/>
+ <point x="296" y="650"/>
+ <point x="275" y="650" type="curve" smooth="yes"/>
+ <point x="247" y="650"/>
+ <point x="215" y="623"/>
+ <point x="215" y="592" type="curve" smooth="yes"/>
+ <point x="215" y="573"/>
+ <point x="227" y="556"/>
+ <point x="251" y="556" type="curve" smooth="yes"/>
+ <point x="278" y="556"/>
+ <point x="313" y="581"/>
+ </contour>
+ <contour>
+ <point x="994" y="306" type="curve" smooth="yes"/>
+ <point x="993" y="327"/>
+ <point x="978" y="341"/>
+ <point x="958" y="341" type="curve" smooth="yes"/>
+ <point x="933" y="341"/>
+ <point x="896" y="321"/>
+ <point x="896" y="284" type="curve" smooth="yes"/>
+ <point x="896" y="265"/>
+ <point x="909" y="249"/>
+ <point x="934" y="249" type="curve" smooth="yes"/>
+ <point x="963" y="249"/>
+ <point x="994" y="275"/>
+ </contour>
+ <contour>
+ <point x="205" y="495" type="curve" smooth="yes"/>
+ <point x="175" y="495"/>
+ <point x="145" y="468"/>
+ <point x="145" y="438" type="curve" smooth="yes"/>
+ <point x="145" y="418"/>
+ <point x="159" y="402"/>
+ <point x="183" y="402" type="curve" smooth="yes"/>
+ <point x="208" y="402"/>
+ <point x="244" y="428"/>
+ <point x="244" y="459" type="curve" smooth="yes"/>
+ <point x="244" y="479"/>
+ <point x="227" y="495"/>
+ </contour>
+ <contour>
+ <point x="1026" y="496" type="curve" smooth="yes"/>
+ <point x="999" y="496"/>
+ <point x="965" y="469"/>
+ <point x="965" y="438" type="curve" smooth="yes"/>
+ <point x="965" y="418"/>
+ <point x="979" y="403"/>
+ <point x="1004" y="403" type="curve" smooth="yes"/>
+ <point x="1033" y="403"/>
+ <point x="1064" y="431"/>
+ <point x="1064" y="460" type="curve" smooth="yes"/>
+ <point x="1064" y="480"/>
+ <point x="1048" y="496"/>
+ </contour>
+ <contour>
+ <point x="237" y="307" type="curve" smooth="yes"/>
+ <point x="237" y="327"/>
+ <point x="221" y="341"/>
+ <point x="199" y="341" type="curve" smooth="yes"/>
+ <point x="169" y="341"/>
+ <point x="138" y="314"/>
+ <point x="138" y="285" type="curve" smooth="yes"/>
+ <point x="138" y="263"/>
+ <point x="153" y="248"/>
+ <point x="175" y="248" type="curve" smooth="yes"/>
+ <point x="206" y="248"/>
+ <point x="237" y="278"/>
+ </contour>
+ <contour>
+ <point x="1071" y="613" type="curve" smooth="yes"/>
+ <point x="1071" y="634"/>
+ <point x="1055" y="650"/>
+ <point x="1034" y="650" type="curve" smooth="yes"/>
+ <point x="1003" y="650"/>
+ <point x="973" y="619"/>
+ <point x="973" y="590" type="curve" smooth="yes"/>
+ <point x="973" y="570"/>
+ <point x="989" y="556"/>
+ <point x="1009" y="556" type="curve" smooth="yes"/>
+ <point x="1041" y="556"/>
+ <point x="1071" y="585"/>
+ </contour>
+ <contour>
+ <point x="292" y="177" type="curve" smooth="yes"/>
+ <point x="292" y="197"/>
+ <point x="277" y="211"/>
+ <point x="253" y="211" type="curve" smooth="yes"/>
+ <point x="224" y="211"/>
+ <point x="194" y="181"/>
+ <point x="194" y="154" type="curve" smooth="yes"/>
+ <point x="194" y="134"/>
+ <point x="211" y="118"/>
+ <point x="232" y="118" type="curve" smooth="yes"/>
+ <point x="262" y="118"/>
+ <point x="292" y="148"/>
+ </contour>
+ <contour>
+ <point x="917" y="724" type="curve" smooth="yes"/>
+ <point x="917" y="704"/>
+ <point x="931" y="686"/>
+ <point x="954" y="686" type="curve" smooth="yes"/>
+ <point x="984" y="686"/>
+ <point x="1014" y="716"/>
+ <point x="1014" y="745" type="curve" smooth="yes"/>
+ <point x="1014" y="765"/>
+ <point x="1000" y="780"/>
+ <point x="977" y="780" type="curve" smooth="yes"/>
+ <point x="947" y="780"/>
+ <point x="917" y="753"/>
+ </contour>
+ <contour>
+ <point x="403" y="87" type="curve" smooth="yes"/>
+ <point x="403" y="107"/>
+ <point x="390" y="123"/>
+ <point x="367" y="123" type="curve" smooth="yes"/>
+ <point x="339" y="123"/>
+ <point x="305" y="96"/>
+ <point x="305" y="68" type="curve" smooth="yes"/>
+ <point x="305" y="49"/>
+ <point x="320" y="30"/>
+ <point x="343" y="30" type="curve" smooth="yes"/>
+ <point x="371" y="30"/>
+ <point x="403" y="56"/>
+ </contour>
+ <contour>
+ <point x="806" y="810" type="curve" smooth="yes"/>
+ <point x="806" y="791"/>
+ <point x="819" y="773"/>
+ <point x="842" y="773" type="curve" smooth="yes"/>
+ <point x="869" y="773"/>
+ <point x="903" y="799"/>
+ <point x="903" y="830" type="curve" smooth="yes"/>
+ <point x="903" y="850"/>
+ <point x="889" y="867"/>
+ <point x="866" y="867" type="curve" smooth="yes"/>
+ <point x="836" y="867"/>
+ <point x="806" y="839"/>
+ </contour>
+ <contour>
+ <point x="553" y="57" type="curve" smooth="yes"/>
+ <point x="553" y="78"/>
+ <point x="538" y="93"/>
+ <point x="516" y="93" type="curve" smooth="yes"/>
+ <point x="485" y="93"/>
+ <point x="456" y="65"/>
+ <point x="456" y="36" type="curve" smooth="yes"/>
+ <point x="456" y="16"/>
+ <point x="471" y="0"/>
+ <point x="493" y="0" type="curve" smooth="yes"/>
+ <point x="523" y="0"/>
+ <point x="553" y="27"/>
+ </contour>
+ <contour>
+ <point x="656" y="839" type="curve" smooth="yes"/>
+ <point x="656" y="819"/>
+ <point x="671" y="805"/>
+ <point x="693" y="805" type="curve" smooth="yes"/>
+ <point x="721" y="805"/>
+ <point x="754" y="830"/>
+ <point x="754" y="861" type="curve" smooth="yes"/>
+ <point x="754" y="882"/>
+ <point x="738" y="898"/>
+ <point x="716" y="898" type="curve" smooth="yes"/>
+ <point x="685" y="898"/>
+ <point x="656" y="868"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/E_qS_gn.glif b/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/E_qS_gn.glif
new file mode 100644
index 0000000..3d756e8
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/E_qS_gn.glif
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="EqSgn" format="2">
+ <advance width="1180"/>
+ <unicode hex="003D"/>
+ <outline>
+ <contour>
+ <point x="177" y="470" type="line"/>
+ <point x="1137" y="470" type="line"/>
+ <point x="1173" y="617" type="line"/>
+ <point x="213" y="617" type="line"/>
+ </contour>
+ <contour>
+ <point x="262" y="813" type="line"/>
+ <point x="1222" y="813" type="line"/>
+ <point x="1259" y="960" type="line"/>
+ <point x="299" y="960" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/E_xclamationM_rk.glif b/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/E_xclamationM_rk.glif
new file mode 100644
index 0000000..a1c14d9
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/E_xclamationM_rk.glif
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="ExclamationMrk" format="2">
+ <advance width="744"/>
+ <unicode hex="0021"/>
+ <outline>
+ <contour>
+ <point x="497" y="431" type="line"/>
+ <point x="574" y="715"/>
+ <point x="653" y="1054"/>
+ <point x="799" y="1480" type="curve"/>
+ <point x="544" y="1480" type="line"/>
+ <point x="475" y="1054"/>
+ <point x="386" y="715"/>
+ <point x="322" y="431" type="curve"/>
+ </contour>
+ <contour>
+ <point x="188" y="90" type="curve" smooth="yes"/>
+ <point x="188" y="28"/>
+ <point x="238" y="-25"/>
+ <point x="303" y="-25" type="curve" smooth="yes"/>
+ <point x="387" y="-25"/>
+ <point x="464" y="45"/>
+ <point x="464" y="125" type="curve" smooth="yes"/>
+ <point x="464" y="186"/>
+ <point x="414" y="240"/>
+ <point x="349" y="240" type="curve" smooth="yes"/>
+ <point x="265" y="240"/>
+ <point x="188" y="170"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/F_ullS_top.glif b/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/F_ullS_top.glif
new file mode 100644
index 0000000..a6c4d08
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/F_ullS_top.glif
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="FullStop" format="2">
+ <advance width="620"/>
+ <unicode hex="002E"/>
+ <outline>
+ <contour>
+ <point x="148" y="90" type="curve" smooth="yes"/>
+ <point x="148" y="28"/>
+ <point x="198" y="-25"/>
+ <point x="263" y="-25" type="curve" smooth="yes"/>
+ <point x="347" y="-25"/>
+ <point x="424" y="45"/>
+ <point x="424" y="125" type="curve" smooth="yes"/>
+ <point x="424" y="186"/>
+ <point x="374" y="240"/>
+ <point x="309" y="240" type="curve" smooth="yes"/>
+ <point x="225" y="240"/>
+ <point x="148" y="170"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/G_T_S_gn.glif b/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/G_T_S_gn.glif
new file mode 100644
index 0000000..12da8b3
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/G_T_S_gn.glif
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="GTSgn" format="2">
+ <advance width="1180"/>
+ <unicode hex="003E"/>
+ <outline>
+ <contour>
+ <point x="312" y="1014" type="line"/>
+ <point x="1028" y="725" type="line"/>
+ <point x="163" y="417" type="line"/>
+ <point x="119" y="240" type="line"/>
+ <point x="1197" y="632" type="line"/>
+ <point x="1239" y="799" type="line"/>
+ <point x="356" y="1191" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/G_raveA_ccent.glif b/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/G_raveA_ccent.glif
new file mode 100644
index 0000000..48adfc4
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/G_raveA_ccent.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="GraveAccent" format="2">
+ <advance width="560"/>
+ <unicode hex="0060"/>
+ <anchor x="738" y="1635" name="U"/>
+ <outline>
+ <contour>
+ <point x="261" y="1568" type="line"/>
+ <point x="596" y="1147" type="line"/>
+ <point x="746" y="1147" type="line"/>
+ <point x="471" y="1568" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/H_yphen.glif b/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/H_yphen.glif
new file mode 100644
index 0000000..ae8cad5
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/H_yphen.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Hyphen" format="2">
+ <advance width="840"/>
+ <unicode hex="2010"/>
+ <anchor x="645" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="155" y="544" type="line"/>
+ <point x="855" y="544" type="line"/>
+ <point x="892" y="691" type="line"/>
+ <point x="192" y="691" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/H_yphenM_inus.glif b/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/H_yphenM_inus.glif
new file mode 100644
index 0000000..155b460
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/H_yphenM_inus.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="HyphenMinus" format="2">
+ <advance width="840"/>
+ <unicode hex="002D"/>
+ <anchor x="645" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="155" y="544" type="line"/>
+ <point x="855" y="544" type="line"/>
+ <point x="892" y="691" type="line"/>
+ <point x="192" y="691" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/H_yphen_S_oft.glif b/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/H_yphen_S_oft.glif
new file mode 100644
index 0000000..0c7b834
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/H_yphen_S_oft.glif
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Hyphen_Soft" format="2">
+ <advance width="840"/>
+ <unicode hex="00AD"/>
+ <anchor x="645" y="1100" name="U"/>
+ <outline>
+ <component base="HyphenMinus"/>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_T_S_gn.glif b/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_T_S_gn.glif
new file mode 100644
index 0000000..3c857a5
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_T_S_gn.glif
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LTSgn" format="2">
+ <advance width="1180"/>
+ <unicode hex="003C"/>
+ <outline>
+ <contour>
+ <point x="1123" y="417" type="line"/>
+ <point x="408" y="705" type="line"/>
+ <point x="1272" y="1014" type="line"/>
+ <point x="1316" y="1191" type="line"/>
+ <point x="239" y="799" type="line"/>
+ <point x="197" y="632" type="line"/>
+ <point x="1079" y="240" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_ftC_urlyB_rac.glif b/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_ftC_urlyB_rac.glif
new file mode 100644
index 0000000..4f8c90c
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_ftC_urlyB_rac.glif
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LftCurlyBrac" format="2">
+ <advance width="980"/>
+ <unicode hex="007B"/>
+ <outline>
+ <contour>
+ <point x="713" y="-265" type="line"/>
+ <point x="660" y="-250"/>
+ <point x="526" y="-188"/>
+ <point x="526" y="-158" type="curve" smooth="yes"/>
+ <point x="526" y="-59"/>
+ <point x="649" y="404"/>
+ <point x="649" y="469" type="curve" smooth="yes"/>
+ <point x="649" y="509"/>
+ <point x="520" y="577"/>
+ <point x="520" y="602" type="curve" smooth="yes"/>
+ <point x="520" y="620"/>
+ <point x="688" y="700"/>
+ <point x="712" y="730" type="curve" smooth="yes"/>
+ <point x="741" y="767"/>
+ <point x="867" y="1326"/>
+ <point x="912" y="1372" type="curve" smooth="yes"/>
+ <point x="938" y="1399"/>
+ <point x="1073" y="1447"/>
+ <point x="1146" y="1470" type="curve"/>
+ <point x="1140" y="1607" type="line"/>
+ <point x="1030" y="1581"/>
+ <point x="856" y="1529"/>
+ <point x="805" y="1485" type="curve" smooth="yes"/>
+ <point x="714" y="1406"/>
+ <point x="572" y="796"/>
+ <point x="540" y="764" type="curve" smooth="yes"/>
+ <point x="504" y="729"/>
+ <point x="300" y="633"/>
+ <point x="300" y="601" type="curve" smooth="yes"/>
+ <point x="300" y="560"/>
+ <point x="460" y="468"/>
+ <point x="460" y="432" type="curve" smooth="yes"/>
+ <point x="460" y="362"/>
+ <point x="355" y="-53"/>
+ <point x="355" y="-219" type="curve" smooth="yes"/>
+ <point x="355" y="-247"/>
+ <point x="358" y="-268"/>
+ <point x="365" y="-279" type="curve" smooth="yes"/>
+ <point x="394" y="-323"/>
+ <point x="542" y="-375"/>
+ <point x="639" y="-402" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_ftP_aren.glif b/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_ftP_aren.glif
new file mode 100644
index 0000000..bc65fc1
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_ftP_aren.glif
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LftParen" format="2">
+ <advance width="775"/>
+ <unicode hex="0028"/>
+ <outline>
+ <contour>
+ <point x="895" y="1607" type="line"/>
+ <point x="582" y="1415"/>
+ <point x="314" y="1061"/>
+ <point x="207" y="633" type="curve" smooth="yes"/>
+ <point x="176" y="508"/>
+ <point x="161" y="386"/>
+ <point x="161" y="270" type="curve" smooth="yes"/>
+ <point x="161" y="17"/>
+ <point x="233" y="-211"/>
+ <point x="374" y="-402" type="curve"/>
+ <point x="505" y="-260" type="line"/>
+ <point x="397" y="-102"/>
+ <point x="348" y="75"/>
+ <point x="348" y="270" type="curve" smooth="yes"/>
+ <point x="348" y="385"/>
+ <point x="365" y="506"/>
+ <point x="397" y="633" type="curve" smooth="yes"/>
+ <point x="484" y="982"/>
+ <point x="647" y="1254"/>
+ <point x="932" y="1455" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_ftS_qrB_rac.glif b/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_ftS_qrB_rac.glif
new file mode 100644
index 0000000..6d064d1
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_ftS_qrB_rac.glif
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LftSqrBrac" format="2">
+ <advance width="770"/>
+ <unicode hex="005B"/>
+ <outline>
+ <contour>
+ <point x="484" y="-402" type="line"/>
+ <point x="521" y="-255" type="line"/>
+ <point x="266" y="-255" type="line"/>
+ <point x="679" y="1421" type="line"/>
+ <point x="934" y="1421" type="line"/>
+ <point x="970" y="1568" type="line"/>
+ <point x="530" y="1568" type="line"/>
+ <point x="44" y="-402" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_owL_ine.glif b/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_owL_ine.glif
new file mode 100644
index 0000000..879d36b
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_owL_ine.glif
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LowLine" format="2">
+ <advance width="1254"/>
+ <unicode hex="005F"/>
+ <outline>
+ <contour>
+ <point x="-138" y="-314" type="line"/>
+ <point x="1135" y="-314" type="line"/>
+ <point x="1172" y="-167" type="line"/>
+ <point x="-101" y="-167" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_tnC_apA_.glif b/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_tnC_apA_.glif
new file mode 100644
index 0000000..3a14b0e
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_tnC_apA_.glif
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapA" format="2">
+ <advance width="1395"/>
+ <unicode hex="0041"/>
+ <anchor x="1170" y="0" name="H"/>
+ <anchor x="602" y="-100" name="L"/>
+ <anchor x="1390" y="0" name="O"/>
+ <anchor x="1009" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1080" y="0" type="line"/>
+ <point x="1275" y="0" type="line"/>
+ <point x="1259" y="78"/>
+ <point x="1243" y="166"/>
+ <point x="1221" y="348" type="curve" smooth="yes"/>
+ <point x="1091" y="1431" type="line"/>
+ <point x="876" y="1431" type="line"/>
+ <point x="206" y="348" type="line" smooth="yes"/>
+ <point x="93" y="165"/>
+ <point x="35" y="79"/>
+ <point x="-20" y="0" type="curve"/>
+ <point x="195" y="0" type="line"/>
+ <point x="422" y="377" type="line"/>
+ <point x="1038" y="377" type="line"/>
+ </contour>
+ <contour>
+ <point x="944" y="1240" type="line"/>
+ <point x="1022" y="529" type="line"/>
+ <point x="514" y="529" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_tnC_apA_D_iaer.glif b/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_tnC_apA_D_iaer.glif
new file mode 100644
index 0000000..6c3502c
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_tnC_apA_D_iaer.glif
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapADiaer" format="2">
+ <advance width="1395"/>
+ <unicode hex="00C4"/>
+ <anchor x="1170" y="0" name="H"/>
+ <anchor x="602" y="-100" name="L"/>
+ <anchor x="1390" y="0" name="O"/>
+ <anchor x="1106" y="1935" name="U"/>
+ <outline>
+ <component base="LtnCapA"/>
+ <component base="CombDiaer" xOffset="1359" yOffset="430"/>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_tnC_apB_.glif b/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_tnC_apB_.glif
new file mode 100644
index 0000000..5445f93
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_tnC_apB_.glif
@@ -0,0 +1,62 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapB" format="2">
+ <advance width="1271"/>
+ <unicode hex="0042"/>
+ <anchor x="530" y="-100" name="L"/>
+ <anchor x="937" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="625" y="1284" type="line"/>
+ <point x="667" y="1286"/>
+ <point x="733" y="1289"/>
+ <point x="811" y="1289" type="curve" smooth="yes"/>
+ <point x="993" y="1289"/>
+ <point x="1080" y="1230"/>
+ <point x="1080" y="1105" type="curve" smooth="yes"/>
+ <point x="1080" y="932"/>
+ <point x="931" y="838"/>
+ <point x="698" y="838" type="curve" smooth="yes"/>
+ <point x="513" y="838" type="line"/>
+ </contour>
+ <contour>
+ <point x="226" y="446" type="line"/>
+ <point x="178" y="252"/>
+ <point x="134" y="78"/>
+ <point x="100" y="0" type="curve"/>
+ <point x="151" y="-5"/>
+ <point x="359" y="-10"/>
+ <point x="562" y="-10" type="curve" smooth="yes"/>
+ <point x="960" y="-10"/>
+ <point x="1201" y="149"/>
+ <point x="1201" y="453" type="curve" smooth="yes"/>
+ <point x="1201" y="644"/>
+ <point x="1067" y="736"/>
+ <point x="955" y="764" type="curve"/>
+ <point x="1155" y="819"/>
+ <point x="1283" y="941"/>
+ <point x="1283" y="1140" type="curve" smooth="yes"/>
+ <point x="1283" y="1310"/>
+ <point x="1136" y="1441"/>
+ <point x="869" y="1441" type="curve" smooth="yes"/>
+ <point x="700" y="1441"/>
+ <point x="546" y="1437"/>
+ <point x="456" y="1431" type="curve"/>
+ <point x="452" y="1352"/>
+ <point x="407" y="1172"/>
+ <point x="359" y="980" type="curve" smooth="yes"/>
+ </contour>
+ <contour>
+ <point x="476" y="686" type="line"/>
+ <point x="721" y="686" type="line" smooth="yes"/>
+ <point x="892" y="686"/>
+ <point x="1011" y="598"/>
+ <point x="1011" y="450" type="curve" smooth="yes"/>
+ <point x="1011" y="218"/>
+ <point x="806" y="147"/>
+ <point x="586" y="147" type="curve" smooth="yes"/>
+ <point x="474" y="147"/>
+ <point x="379" y="150"/>
+ <point x="342" y="152" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_tnC_apC_.glif b/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_tnC_apC_.glif
new file mode 100644
index 0000000..c2e4948
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_tnC_apC_.glif
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapC" format="2">
+ <advance width="1341"/>
+ <unicode hex="0043"/>
+ <anchor x="690" y="0" name="H"/>
+ <anchor x="665" y="-100" name="L"/>
+ <anchor x="1072" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1237" y="318" type="line"/>
+ <point x="1115" y="222"/>
+ <point x="934" y="147"/>
+ <point x="752" y="147" type="curve" smooth="yes"/>
+ <point x="537" y="147"/>
+ <point x="385" y="304"/>
+ <point x="385" y="532" type="curve" smooth="yes"/>
+ <point x="385" y="964"/>
+ <point x="704" y="1289"/>
+ <point x="1037" y="1289" type="curve" smooth="yes"/>
+ <point x="1168" y="1289"/>
+ <point x="1310" y="1235"/>
+ <point x="1385" y="1132" type="curve"/>
+ <point x="1489" y="1308" type="line"/>
+ <point x="1388" y="1408"/>
+ <point x="1201" y="1455"/>
+ <point x="1058" y="1455" type="curve" smooth="yes"/>
+ <point x="645" y="1455"/>
+ <point x="185" y="1093"/>
+ <point x="185" y="513" type="curve" smooth="yes"/>
+ <point x="185" y="202"/>
+ <point x="381" y="-25"/>
+ <point x="709" y="-25" type="curve" smooth="yes"/>
+ <point x="896" y="-25"/>
+ <point x="1087" y="21"/>
+ <point x="1230" y="127" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_tnC_apD_.glif b/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_tnC_apD_.glif
new file mode 100644
index 0000000..3b93811
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_tnC_apD_.glif
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapD" format="2">
+ <advance width="1421"/>
+ <unicode hex="0044"/>
+ <anchor x="630" y="-100" name="L"/>
+ <anchor x="1037" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="226" y="446" type="line"/>
+ <point x="176" y="252"/>
+ <point x="134" y="78"/>
+ <point x="100" y="0" type="curve"/>
+ <point x="100" y="0"/>
+ <point x="414" y="-10"/>
+ <point x="542" y="-10" type="curve" smooth="yes"/>
+ <point x="985" y="-10"/>
+ <point x="1299" y="181"/>
+ <point x="1415" y="648" type="curve" smooth="yes"/>
+ <point x="1437" y="738"/>
+ <point x="1447" y="819"/>
+ <point x="1447" y="891" type="curve" smooth="yes"/>
+ <point x="1447" y="1279"/>
+ <point x="1188" y="1441"/>
+ <point x="894" y="1441" type="curve" smooth="yes"/>
+ <point x="759" y="1441"/>
+ <point x="543" y="1437"/>
+ <point x="456" y="1431" type="curve"/>
+ <point x="452" y="1352"/>
+ <point x="407" y="1172"/>
+ <point x="359" y="980" type="curve" smooth="yes"/>
+ </contour>
+ <contour>
+ <point x="623" y="1279" type="line"/>
+ <point x="674" y="1281"/>
+ <point x="764" y="1284"/>
+ <point x="830" y="1284" type="curve" smooth="yes"/>
+ <point x="1105" y="1284"/>
+ <point x="1246" y="1140"/>
+ <point x="1246" y="850" type="curve" smooth="yes"/>
+ <point x="1246" y="784"/>
+ <point x="1236" y="710"/>
+ <point x="1216" y="629" type="curve" smooth="yes"/>
+ <point x="1134" y="300"/>
+ <point x="925" y="152"/>
+ <point x="572" y="152" type="curve" smooth="yes"/>
+ <point x="477" y="152"/>
+ <point x="391" y="158"/>
+ <point x="345" y="162" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_tnC_apE_.glif b/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_tnC_apE_.glif
new file mode 100644
index 0000000..8b5f8b9
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_tnC_apE_.glif
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapE" format="2">
+ <advance width="1140"/>
+ <unicode hex="0045"/>
+ <anchor x="540" y="0" name="H"/>
+ <anchor x="515" y="-100" name="L"/>
+ <anchor x="857" y="0" name="O"/>
+ <anchor x="1400" y="1200" name="R"/>
+ <anchor x="922" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="511" y="828" type="line"/>
+ <point x="621" y="1269" type="line"/>
+ <point x="1266" y="1269" type="line"/>
+ <point x="1306" y="1431" type="line"/>
+ <point x="456" y="1431" type="line"/>
+ <point x="452" y="1352"/>
+ <point x="413" y="1197"/>
+ <point x="365" y="1005" type="curve" smooth="yes"/>
+ <point x="221" y="426" type="line" smooth="yes"/>
+ <point x="173" y="233"/>
+ <point x="134" y="78"/>
+ <point x="100" y="0" type="curve"/>
+ <point x="980" y="0" type="line"/>
+ <point x="1023" y="176" type="line"/>
+ <point x="940" y="163"/>
+ <point x="806" y="162"/>
+ <point x="609" y="162" type="curve" smooth="yes"/>
+ <point x="345" y="162" type="line"/>
+ <point x="472" y="671" type="line"/>
+ <point x="1042" y="671" type="line"/>
+ <point x="1081" y="828" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_tnC_apF_.glif b/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_tnC_apF_.glif
new file mode 100644
index 0000000..cbc1726
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_tnC_apF_.glif
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapF" format="2">
+ <advance width="1130"/>
+ <unicode hex="0046"/>
+ <anchor x="510" y="-100" name="L"/>
+ <anchor x="917" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="508" y="818" type="line"/>
+ <point x="621" y="1269" type="line"/>
+ <point x="1286" y="1269" type="line"/>
+ <point x="1326" y="1431" type="line"/>
+ <point x="456" y="1431" type="line"/>
+ <point x="452" y="1352"/>
+ <point x="412" y="1193"/>
+ <point x="364" y="1000" type="curve" smooth="yes"/>
+ <point x="221" y="426" type="line" smooth="yes"/>
+ <point x="173" y="233"/>
+ <point x="134" y="78"/>
+ <point x="100" y="0" type="curve"/>
+ <point x="320" y="0" type="line"/>
+ <point x="323" y="76"/>
+ <point x="362" y="232"/>
+ <point x="411" y="426" type="curve" smooth="yes"/>
+ <point x="470" y="662" type="line"/>
+ <point x="1050" y="662" type="line"/>
+ <point x="1088" y="818" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_tnC_apG_.glif b/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_tnC_apG_.glif
new file mode 100644
index 0000000..c39b75a
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_tnC_apG_.glif
@@ -0,0 +1,48 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapG" format="2">
+ <advance width="1406"/>
+ <unicode hex="0047"/>
+ <anchor x="685" y="0" name="H"/>
+ <anchor x="660" y="-100" name="L"/>
+ <anchor x="1067" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1403" y="710" type="line"/>
+ <point x="863" y="710" type="line"/>
+ <point x="822" y="548" type="line"/>
+ <point x="1172" y="548" type="line"/>
+ <point x="1090" y="220" type="line"/>
+ <point x="1012" y="176"/>
+ <point x="858" y="147"/>
+ <point x="739" y="147" type="curve" smooth="yes"/>
+ <point x="520" y="147"/>
+ <point x="384" y="272"/>
+ <point x="384" y="493" type="curve" smooth="yes"/>
+ <point x="384" y="560"/>
+ <point x="394" y="636"/>
+ <point x="415" y="720" type="curve" smooth="yes"/>
+ <point x="500" y="1062"/>
+ <point x="747" y="1289"/>
+ <point x="1052" y="1289" type="curve" smooth="yes"/>
+ <point x="1195" y="1289"/>
+ <point x="1335" y="1233"/>
+ <point x="1425" y="1122" type="curve"/>
+ <point x="1534" y="1298" type="line"/>
+ <point x="1409" y="1405"/>
+ <point x="1235" y="1455"/>
+ <point x="1063" y="1455" type="curve" smooth="yes"/>
+ <point x="680" y="1455"/>
+ <point x="334" y="1195"/>
+ <point x="217" y="726" type="curve" smooth="yes"/>
+ <point x="195" y="639"/>
+ <point x="185" y="559"/>
+ <point x="185" y="486" type="curve" smooth="yes"/>
+ <point x="185" y="162"/>
+ <point x="406" y="-25"/>
+ <point x="714" y="-25" type="curve" smooth="yes"/>
+ <point x="907" y="-25"/>
+ <point x="1149" y="50"/>
+ <point x="1258" y="132" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_tnC_apH_.glif b/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_tnC_apH_.glif
new file mode 100644
index 0000000..f454288
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_tnC_apH_.glif
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapH" format="2">
+ <advance width="1455"/>
+ <unicode hex="0048"/>
+ <anchor x="225" y="0" name="H"/>
+ <anchor x="640" y="-100" name="L"/>
+ <anchor x="1047" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1230" y="0" type="line"/>
+ <point x="1234" y="78"/>
+ <point x="1273" y="233"/>
+ <point x="1321" y="426" type="curve" smooth="yes"/>
+ <point x="1465" y="1005" type="line" smooth="yes"/>
+ <point x="1513" y="1198"/>
+ <point x="1552" y="1352"/>
+ <point x="1586" y="1431" type="curve"/>
+ <point x="1381" y="1431" type="line"/>
+ <point x="1228" y="818" type="line"/>
+ <point x="508" y="818" type="line"/>
+ <point x="661" y="1431" type="line"/>
+ <point x="456" y="1431" type="line"/>
+ <point x="452" y="1352"/>
+ <point x="413" y="1197"/>
+ <point x="365" y="1005" type="curve" smooth="yes"/>
+ <point x="221" y="426" type="line" smooth="yes"/>
+ <point x="173" y="233"/>
+ <point x="134" y="78"/>
+ <point x="100" y="0" type="curve"/>
+ <point x="305" y="0" type="line"/>
+ <point x="470" y="662" type="line"/>
+ <point x="1190" y="662" type="line"/>
+ <point x="1025" y="0" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_tnC_apI_.glif b/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_tnC_apI_.glif
new file mode 100644
index 0000000..78b151c
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_tnC_apI_.glif
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapI" format="2">
+ <advance width="955"/>
+ <unicode hex="0049"/>
+ <anchor x="417" y="0" name="H"/>
+ <anchor x="392" y="-100" name="L"/>
+ <anchor x="613" y="0" name="O"/>
+ <anchor x="1215" y="1200" name="R"/>
+ <anchor x="799" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="436" y="1431" type="line"/>
+ <point x="401" y="1289" type="line"/>
+ <point x="641" y="1289" type="line"/>
+ <point x="355" y="142" type="line"/>
+ <point x="115" y="142" type="line"/>
+ <point x="80" y="0" type="line"/>
+ <point x="755" y="0" type="line"/>
+ <point x="790" y="142" type="line"/>
+ <point x="545" y="142" type="line"/>
+ <point x="831" y="1289" type="line"/>
+ <point x="1076" y="1289" type="line"/>
+ <point x="1111" y="1431" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_tnC_apJ_.glif b/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_tnC_apJ_.glif
new file mode 100644
index 0000000..417d1f8
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_tnC_apJ_.glif
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapJ" format="2">
+ <advance width="996"/>
+ <unicode hex="004A"/>
+ <anchor x="325" y="-100" name="L"/>
+ <anchor x="997" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="871" y="1431" type="line"/>
+ <point x="858" y="1327"/>
+ <point x="817" y="1151"/>
+ <point x="769" y="960" type="curve" smooth="yes"/>
+ <point x="648" y="475" type="line" smooth="yes"/>
+ <point x="592" y="251"/>
+ <point x="484" y="152"/>
+ <point x="337" y="152" type="curve" smooth="yes"/>
+ <point x="245" y="152"/>
+ <point x="145" y="224"/>
+ <point x="97" y="299" type="curve"/>
+ <point x="6" y="118" type="line"/>
+ <point x="58" y="39"/>
+ <point x="193" y="-25"/>
+ <point x="298" y="-25" type="curve" smooth="yes"/>
+ <point x="555" y="-25"/>
+ <point x="749" y="117"/>
+ <point x="850" y="524" type="curve" smooth="yes"/>
+ <point x="1076" y="1431" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_tnC_apK_.glif b/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_tnC_apK_.glif
new file mode 100644
index 0000000..8e54a6d
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_tnC_apK_.glif
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapK" format="2">
+ <advance width="1261"/>
+ <unicode hex="004B"/>
+ <anchor x="210" y="0" name="H"/>
+ <anchor x="610" y="-100" name="L"/>
+ <anchor x="972" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1221" y="1431" type="line"/>
+ <point x="406" y="689" type="line"/>
+ <point x="547" y="730" type="line"/>
+ <point x="660" y="725" type="line"/>
+ <point x="1461" y="1431" type="line"/>
+ </contour>
+ <contour>
+ <point x="1170" y="0" type="line"/>
+ <point x="615" y="823" type="line"/>
+ <point x="469" y="720" type="line"/>
+ <point x="925" y="0" type="line"/>
+ </contour>
+ <contour>
+ <point x="661" y="1431" type="line"/>
+ <point x="456" y="1431" type="line"/>
+ <point x="452" y="1352"/>
+ <point x="413" y="1197"/>
+ <point x="365" y="1005" type="curve" smooth="yes"/>
+ <point x="221" y="426" type="line" smooth="yes"/>
+ <point x="173" y="233"/>
+ <point x="134" y="78"/>
+ <point x="100" y="0" type="curve"/>
+ <point x="305" y="0" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_tnC_apL_.glif b/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_tnC_apL_.glif
new file mode 100644
index 0000000..d2eb932
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_tnC_apL_.glif
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapL" format="2">
+ <advance width="1060"/>
+ <unicode hex="004C"/>
+ <anchor x="532" y="0" name="H"/>
+ <anchor x="507" y="-100" name="L"/>
+ <anchor x="780" y="1200" name="R"/>
+ <anchor x="914" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="345" y="162" type="line"/>
+ <point x="661" y="1431" type="line"/>
+ <point x="456" y="1431" type="line"/>
+ <point x="452" y="1352"/>
+ <point x="413" y="1197"/>
+ <point x="365" y="1005" type="curve" smooth="yes"/>
+ <point x="221" y="426" type="line" smooth="yes"/>
+ <point x="173" y="233"/>
+ <point x="134" y="78"/>
+ <point x="100" y="0" type="curve"/>
+ <point x="965" y="0" type="line"/>
+ <point x="1008" y="176" type="line"/>
+ <point x="925" y="163"/>
+ <point x="766" y="162"/>
+ <point x="569" y="162" type="curve" smooth="yes"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_tnC_apM_.glif b/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_tnC_apM_.glif
new file mode 100644
index 0000000..7c3c824
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_tnC_apM_.glif
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapM" format="2">
+ <advance width="1785"/>
+ <unicode hex="004D"/>
+ <anchor x="800" y="-100" name="L"/>
+ <anchor x="1207" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="880" y="201" type="line"/>
+ <point x="751" y="1431" type="line"/>
+ <point x="591" y="1431" type="line"/>
+ <point x="740" y="0" type="line"/>
+ <point x="935" y="0" type="line"/>
+ <point x="1793" y="1431" type="line"/>
+ <point x="1616" y="1431" type="line"/>
+ </contour>
+ <contour>
+ <point x="536" y="1431" type="line"/>
+ <point x="536" y="1431"/>
+ <point x="184" y="194"/>
+ <point x="110" y="0" type="curve"/>
+ <point x="295" y="0" type="line"/>
+ <point x="621" y="1181" type="line"/>
+ <point x="711" y="1431" type="line"/>
+ </contour>
+ <contour>
+ <point x="1560" y="0" type="line"/>
+ <point x="1579" y="194"/>
+ <point x="1846" y="1431"/>
+ <point x="1846" y="1431" type="curve"/>
+ <point x="1671" y="1431" type="line"/>
+ <point x="1641" y="1181" type="line"/>
+ <point x="1375" y="0" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_tnC_apN_.glif b/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_tnC_apN_.glif
new file mode 100644
index 0000000..7306669
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_tnC_apN_.glif
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapN" format="2">
+ <advance width="1480"/>
+ <unicode hex="004E"/>
+ <anchor x="1170" y="0" name="H"/>
+ <anchor x="652" y="-100" name="L"/>
+ <anchor x="1059" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="491" y="1328" type="line"/>
+ <point x="1075" y="0" type="line"/>
+ <point x="1219" y="98" type="line"/>
+ <point x="636" y="1431" type="line"/>
+ </contour>
+ <contour>
+ <point x="1075" y="0" type="line"/>
+ <point x="1250" y="0" type="line"/>
+ <point x="1500" y="1005" type="line" smooth="yes"/>
+ <point x="1548" y="1198"/>
+ <point x="1588" y="1352"/>
+ <point x="1621" y="1431" type="curve"/>
+ <point x="1431" y="1431" type="line"/>
+ </contour>
+ <contour>
+ <point x="636" y="1431" type="line"/>
+ <point x="446" y="1431" type="line"/>
+ <point x="442" y="1352"/>
+ <point x="403" y="1197"/>
+ <point x="355" y="1005" type="curve" smooth="yes"/>
+ <point x="211" y="426" type="line" smooth="yes"/>
+ <point x="163" y="233"/>
+ <point x="124" y="78"/>
+ <point x="90" y="0" type="curve"/>
+ <point x="280" y="0" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_tnC_apO_.glif b/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_tnC_apO_.glif
new file mode 100644
index 0000000..19c4886
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_tnC_apO_.glif
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapO" format="2">
+ <advance width="1447"/>
+ <unicode hex="004F"/>
+ <anchor x="657" y="0" name="H"/>
+ <anchor x="632" y="-100" name="L"/>
+ <anchor x="896" y="0" name="O"/>
+ <anchor x="1700" y="1200" name="R"/>
+ <anchor x="1039" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="719" y="147" type="curve" smooth="yes"/>
+ <point x="514" y="147"/>
+ <point x="386" y="300"/>
+ <point x="386" y="541" type="curve" smooth="yes"/>
+ <point x="386" y="871"/>
+ <point x="606" y="1284"/>
+ <point x="963" y="1284" type="curve" smooth="yes"/>
+ <point x="1164" y="1284"/>
+ <point x="1291" y="1133"/>
+ <point x="1291" y="892" type="curve" smooth="yes"/>
+ <point x="1291" y="563"/>
+ <point x="1077" y="147"/>
+ </contour>
+ <contour>
+ <point x="1492" y="931" type="curve" smooth="yes"/>
+ <point x="1492" y="1263"/>
+ <point x="1278" y="1455"/>
+ <point x="1015" y="1455" type="curve" smooth="yes"/>
+ <point x="599" y="1455"/>
+ <point x="185" y="1036"/>
+ <point x="185" y="500" type="curve" smooth="yes"/>
+ <point x="185" y="167"/>
+ <point x="400" y="-25"/>
+ <point x="666" y="-25" type="curve" smooth="yes"/>
+ <point x="1078" y="-25"/>
+ <point x="1492" y="395"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_tnC_apP_.glif b/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_tnC_apP_.glif
new file mode 100644
index 0000000..5b51a57
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_tnC_apP_.glif
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapP" format="2">
+ <advance width="1190"/>
+ <unicode hex="0050"/>
+ <anchor x="552" y="-100" name="L"/>
+ <anchor x="959" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="443" y="554" type="line"/>
+ <point x="506" y="547"/>
+ <point x="597" y="544"/>
+ <point x="670" y="544" type="curve" smooth="yes"/>
+ <point x="1058" y="544"/>
+ <point x="1321" y="733"/>
+ <point x="1321" y="1084" type="curve" smooth="yes"/>
+ <point x="1321" y="1302"/>
+ <point x="1141" y="1441"/>
+ <point x="864" y="1441" type="curve" smooth="yes"/>
+ <point x="651" y="1441"/>
+ <point x="456" y="1431"/>
+ <point x="456" y="1431" type="curve"/>
+ <point x="452" y="1352"/>
+ <point x="407" y="1172"/>
+ <point x="359" y="980" type="curve"/>
+ <point x="221" y="426" type="line" smooth="yes"/>
+ <point x="173" y="233"/>
+ <point x="134" y="78"/>
+ <point x="100" y="0" type="curve"/>
+ <point x="320" y="0" type="line"/>
+ <point x="324" y="76"/>
+ <point x="362" y="232"/>
+ <point x="411" y="426" type="curve" smooth="yes"/>
+ </contour>
+ <contour>
+ <point x="623" y="1279" type="line"/>
+ <point x="692" y="1282"/>
+ <point x="721" y="1284"/>
+ <point x="815" y="1284" type="curve" smooth="yes"/>
+ <point x="1036" y="1284"/>
+ <point x="1121" y="1172"/>
+ <point x="1121" y="1048" type="curve" smooth="yes"/>
+ <point x="1121" y="845"/>
+ <point x="968" y="696"/>
+ <point x="693" y="696" type="curve" smooth="yes"/>
+ <point x="618" y="696"/>
+ <point x="542" y="698"/>
+ <point x="481" y="706" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_tnC_apQ_.glif b/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_tnC_apQ_.glif
new file mode 100644
index 0000000..3dcbc8d
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_tnC_apQ_.glif
@@ -0,0 +1,52 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapQ" format="2">
+ <advance width="1459"/>
+ <unicode hex="0051"/>
+ <anchor x="589" y="-270" name="L"/>
+ <anchor x="1039" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1495" y="939" type="curve" smooth="yes"/>
+ <point x="1495" y="1266"/>
+ <point x="1306" y="1455"/>
+ <point x="1026" y="1455" type="curve" smooth="yes"/>
+ <point x="703" y="1455"/>
+ <point x="332" y="1195"/>
+ <point x="215" y="726" type="curve" smooth="yes"/>
+ <point x="194" y="642"/>
+ <point x="185" y="564"/>
+ <point x="185" y="492" type="curve" smooth="yes"/>
+ <point x="185" y="165"/>
+ <point x="388" y="-25"/>
+ <point x="652" y="-25" type="curve" smooth="yes"/>
+ <point x="714" y="-25"/>
+ <point x="781" y="-17"/>
+ <point x="829" y="0" type="curve"/>
+ <point x="898" y="0"/>
+ <point x="1133" y="-186"/>
+ <point x="1217" y="-186" type="curve" smooth="yes"/>
+ <point x="1271" y="-186"/>
+ <point x="1355" y="-79"/>
+ <point x="1388" y="-44" type="curve"/>
+ <point x="1258" y="-27"/>
+ <point x="1155" y="27"/>
+ <point x="1049" y="103" type="curve"/>
+ <point x="1253" y="217"/>
+ <point x="1495" y="528"/>
+ </contour>
+ <contour>
+ <point x="690" y="147" type="curve" smooth="yes"/>
+ <point x="492" y="147"/>
+ <point x="384" y="284"/>
+ <point x="384" y="508" type="curve" smooth="yes"/>
+ <point x="384" y="856"/>
+ <point x="609" y="1284"/>
+ <point x="994" y="1284" type="curve" smooth="yes"/>
+ <point x="1188" y="1284"/>
+ <point x="1295" y="1149"/>
+ <point x="1295" y="925" type="curve" smooth="yes"/>
+ <point x="1295" y="490"/>
+ <point x="985" y="147"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_tnC_apR_.glif b/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_tnC_apR_.glif
new file mode 100644
index 0000000..c8f8186
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_tnC_apR_.glif
@@ -0,0 +1,55 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapR" format="2">
+ <advance width="1295"/>
+ <unicode hex="0052"/>
+ <anchor x="590" y="0" name="H"/>
+ <anchor x="525" y="-100" name="L"/>
+ <anchor x="932" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="457" y="613" type="line"/>
+ <point x="712" y="613" type="line" smooth="yes"/>
+ <point x="1010" y="613"/>
+ <point x="1303" y="784"/>
+ <point x="1303" y="1114" type="curve" smooth="yes"/>
+ <point x="1303" y="1326"/>
+ <point x="1114" y="1441"/>
+ <point x="844" y="1441" type="curve" smooth="yes"/>
+ <point x="610" y="1441"/>
+ <point x="456" y="1431"/>
+ <point x="456" y="1431" type="curve"/>
+ <point x="452" y="1352"/>
+ <point x="407" y="1172"/>
+ <point x="359" y="980" type="curve" smooth="yes"/>
+ <point x="221" y="426" type="line"/>
+ <point x="173" y="233"/>
+ <point x="134" y="78"/>
+ <point x="100" y="0" type="curve"/>
+ <point x="320" y="0" type="line"/>
+ <point x="324" y="76"/>
+ <point x="363" y="233"/>
+ <point x="411" y="426" type="curve"/>
+ </contour>
+ <contour>
+ <point x="623" y="1279" type="line"/>
+ <point x="677" y="1281"/>
+ <point x="725" y="1284"/>
+ <point x="795" y="1284" type="curve" smooth="yes"/>
+ <point x="1003" y="1284"/>
+ <point x="1104" y="1203"/>
+ <point x="1104" y="1076" type="curve" smooth="yes"/>
+ <point x="1104" y="856"/>
+ <point x="921" y="764"/>
+ <point x="685" y="764" type="curve" smooth="yes"/>
+ <point x="495" y="764" type="line"/>
+ </contour>
+ <contour>
+ <point x="656" y="622" type="line"/>
+ <point x="930" y="0" type="line"/>
+ <point x="1185" y="0" type="line"/>
+ <point x="1122" y="89"/>
+ <point x="864" y="602"/>
+ <point x="828" y="676" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_tnC_apS_.glif b/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_tnC_apS_.glif
new file mode 100644
index 0000000..01e9f47
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_tnC_apS_.glif
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapS" format="2">
+ <advance width="1155"/>
+ <unicode hex="0053"/>
+ <anchor x="520" y="0" name="H"/>
+ <anchor x="495" y="-100" name="L"/>
+ <anchor x="902" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1260" y="1347" type="line"/>
+ <point x="1146" y="1419"/>
+ <point x="1021" y="1455"/>
+ <point x="867" y="1455" type="curve" smooth="yes"/>
+ <point x="549" y="1455"/>
+ <point x="320" y="1303"/>
+ <point x="320" y="1040" type="curve" smooth="yes"/>
+ <point x="320" y="901"/>
+ <point x="438" y="794"/>
+ <point x="622" y="691" type="curve" smooth="yes"/>
+ <point x="877" y="549"/>
+ <point x="914" y="461"/>
+ <point x="914" y="378" type="curve" smooth="yes"/>
+ <point x="914" y="256"/>
+ <point x="792" y="147"/>
+ <point x="621" y="147" type="curve" smooth="yes"/>
+ <point x="473" y="147"/>
+ <point x="278" y="235"/>
+ <point x="161" y="378" type="curve"/>
+ <point x="65" y="187" type="line"/>
+ <point x="178" y="73"/>
+ <point x="365" y="-25"/>
+ <point x="558" y="-25" type="curve" smooth="yes"/>
+ <point x="852" y="-25"/>
+ <point x="1114" y="115"/>
+ <point x="1114" y="414" type="curve" smooth="yes"/>
+ <point x="1114" y="526"/>
+ <point x="1057" y="679"/>
+ <point x="800" y="828" type="curve" smooth="yes"/>
+ <point x="597" y="946"/>
+ <point x="510" y="1005"/>
+ <point x="510" y="1079" type="curve" smooth="yes"/>
+ <point x="510" y="1210"/>
+ <point x="659" y="1284"/>
+ <point x="845" y="1284" type="curve" smooth="yes"/>
+ <point x="959" y="1284"/>
+ <point x="1075" y="1240"/>
+ <point x="1173" y="1156" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_tnC_apT_.glif b/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_tnC_apT_.glif
new file mode 100644
index 0000000..0eeece4
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_tnC_apT_.glif
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapT" format="2">
+ <advance width="1245"/>
+ <unicode hex="0054"/>
+ <anchor x="562" y="0" name="H"/>
+ <anchor x="562" y="-100" name="L"/>
+ <anchor x="944" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="341" y="1431" type="line"/>
+ <point x="296" y="1250" type="line"/>
+ <point x="380" y="1266"/>
+ <point x="457" y="1269"/>
+ <point x="546" y="1269" type="curve" smooth="yes"/>
+ <point x="781" y="1269" type="line"/>
+ <point x="571" y="426" type="line" smooth="yes"/>
+ <point x="523" y="233"/>
+ <point x="481" y="78"/>
+ <point x="445" y="0" type="curve"/>
+ <point x="675" y="0" type="line"/>
+ <point x="677" y="78"/>
+ <point x="713" y="233"/>
+ <point x="761" y="426" type="curve" smooth="yes"/>
+ <point x="971" y="1269" type="line"/>
+ <point x="1211" y="1269" type="line" smooth="yes"/>
+ <point x="1301" y="1269"/>
+ <point x="1375" y="1266"/>
+ <point x="1451" y="1250" type="curve"/>
+ <point x="1496" y="1431" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_tnC_apU_.glif b/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_tnC_apU_.glif
new file mode 100644
index 0000000..9576e20
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_tnC_apU_.glif
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapU" format="2">
+ <advance width="1420"/>
+ <unicode hex="0055"/>
+ <anchor x="647" y="0" name="H"/>
+ <anchor x="622" y="-100" name="L"/>
+ <anchor x="865" y="0" name="O"/>
+ <anchor x="1640" y="1200" name="R"/>
+ <anchor x="1029" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1346" y="1431" type="line"/>
+ <point x="1126" y="549" type="line" smooth="yes"/>
+ <point x="1055" y="264"/>
+ <point x="916" y="132"/>
+ <point x="682" y="132" type="curve" smooth="yes"/>
+ <point x="485" y="132"/>
+ <point x="421" y="244"/>
+ <point x="421" y="391" type="curve" smooth="yes"/>
+ <point x="421" y="451"/>
+ <point x="431" y="516"/>
+ <point x="448" y="582" type="curve" smooth="yes"/>
+ <point x="661" y="1431" type="line"/>
+ <point x="456" y="1431" type="line"/>
+ <point x="451" y="1352"/>
+ <point x="414" y="1198"/>
+ <point x="365" y="1005" type="curve" smooth="yes"/>
+ <point x="251" y="552" type="line" smooth="yes"/>
+ <point x="236" y="493"/>
+ <point x="228" y="435"/>
+ <point x="228" y="379" type="curve" smooth="yes"/>
+ <point x="228" y="157"/>
+ <point x="351" y="-25"/>
+ <point x="643" y="-25" type="curve" smooth="yes"/>
+ <point x="1020" y="-25"/>
+ <point x="1223" y="177"/>
+ <point x="1299" y="480" type="curve" smooth="yes"/>
+ <point x="1430" y="1005" type="line" smooth="yes"/>
+ <point x="1480" y="1207"/>
+ <point x="1519" y="1352"/>
+ <point x="1551" y="1431" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_tnC_apV_.glif b/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_tnC_apV_.glif
new file mode 100644
index 0000000..2bf8b96
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_tnC_apV_.glif
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapV" format="2">
+ <advance width="1345"/>
+ <unicode hex="0056"/>
+ <anchor x="620" y="0" name="H"/>
+ <anchor x="587" y="-100" name="L"/>
+ <anchor x="820" y="0" name="O"/>
+ <anchor x="994" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1381" y="1431" type="line"/>
+ <point x="654" y="191" type="line"/>
+ <point x="536" y="1431" type="line"/>
+ <point x="331" y="1431" type="line"/>
+ <point x="344" y="1350"/>
+ <point x="355" y="1262"/>
+ <point x="377" y="1073" type="curve" smooth="yes"/>
+ <point x="500" y="0" type="line"/>
+ <point x="725" y="0" type="line"/>
+ <point x="1377" y="1073" type="line" smooth="yes"/>
+ <point x="1492" y="1263"/>
+ <point x="1550" y="1350"/>
+ <point x="1606" y="1431" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_tnC_apW_.glif b/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_tnC_apW_.glif
new file mode 100644
index 0000000..553ea17
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_tnC_apW_.glif
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapW" format="2">
+ <advance width="2060"/>
+ <unicode hex="0057"/>
+ <anchor x="942" y="-100" name="L"/>
+ <anchor x="1349" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1535" y="0" type="line"/>
+ <point x="2107" y="1073" type="line" smooth="yes"/>
+ <point x="2208" y="1263"/>
+ <point x="2259" y="1350"/>
+ <point x="2311" y="1431" type="curve"/>
+ <point x="2081" y="1431" type="line"/>
+ <point x="1431" y="127" type="line"/>
+ <point x="1420" y="0" type="line"/>
+ </contour>
+ <contour>
+ <point x="1310" y="0" type="line"/>
+ <point x="1420" y="0" type="line"/>
+ <point x="1461" y="127" type="line"/>
+ <point x="1406" y="1431" type="line"/>
+ <point x="1231" y="1431" type="line"/>
+ <point x="1248" y="1279" type="line"/>
+ </contour>
+ <contour>
+ <point x="625" y="0" type="line"/>
+ <point x="1406" y="1431" type="line"/>
+ <point x="1221" y="1431" type="line"/>
+ <point x="521" y="127" type="line"/>
+ <point x="521" y="0" type="line"/>
+ </contour>
+ <contour>
+ <point x="546" y="1431" type="line"/>
+ <point x="336" y="1431" type="line"/>
+ <point x="348" y="1353"/>
+ <point x="355" y="1260"/>
+ <point x="362" y="1073" type="curve" smooth="yes"/>
+ <point x="400" y="0" type="line"/>
+ <point x="521" y="0" type="line"/>
+ <point x="551" y="127" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_tnC_apX_.glif b/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_tnC_apX_.glif
new file mode 100644
index 0000000..2da5787
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_tnC_apX_.glif
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapX" format="2">
+ <advance width="1305"/>
+ <unicode hex="0058"/>
+ <anchor x="565" y="-100" name="L"/>
+ <anchor x="972" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="970" y="0" type="line"/>
+ <point x="1190" y="0" type="line"/>
+ <point x="1148" y="80"/>
+ <point x="1125" y="124"/>
+ <point x="1045" y="329" type="curve" smooth="yes"/>
+ <point x="611" y="1431" type="line"/>
+ <point x="386" y="1431" type="line"/>
+ <point x="430" y="1348"/>
+ <point x="462" y="1289"/>
+ <point x="541" y="1088" type="curve" smooth="yes"/>
+ </contour>
+ <contour>
+ <point x="752" y="872" type="line"/>
+ <point x="278" y="333" type="line" smooth="yes"/>
+ <point x="98" y="129"/>
+ <point x="53" y="84"/>
+ <point x="-30" y="0" type="curve"/>
+ <point x="210" y="0" type="line"/>
+ <point x="750" y="622" type="line"/>
+ </contour>
+ <contour>
+ <point x="765" y="622" type="line"/>
+ <point x="1183" y="1088" type="line" smooth="yes"/>
+ <point x="1360" y="1285"/>
+ <point x="1425" y="1355"/>
+ <point x="1506" y="1431" type="curve"/>
+ <point x="1261" y="1431" type="line"/>
+ <point x="767" y="872" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_tnC_apY_.glif b/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_tnC_apY_.glif
new file mode 100644
index 0000000..9ec65ef
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_tnC_apY_.glif
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapY" format="2">
+ <advance width="1300"/>
+ <unicode hex="0059"/>
+ <anchor x="565" y="-100" name="L"/>
+ <anchor x="972" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="331" y="1431" type="line"/>
+ <point x="407" y="1285"/>
+ <point x="446" y="1173"/>
+ <point x="490" y="1044" type="curve"/>
+ <point x="661" y="549" type="line"/>
+ <point x="829" y="661" type="line"/>
+ <point x="551" y="1431" type="line"/>
+ </contour>
+ <contour>
+ <point x="1321" y="1431" type="line"/>
+ <point x="684" y="661" type="line"/>
+ <point x="796" y="549" type="line"/>
+ <point x="1215" y="1044" type="line" smooth="yes"/>
+ <point x="1322" y="1171"/>
+ <point x="1402" y="1265"/>
+ <point x="1561" y="1431" type="curve"/>
+ </contour>
+ <contour>
+ <point x="700" y="0" type="line"/>
+ <point x="704" y="78"/>
+ <point x="743" y="233"/>
+ <point x="791" y="426" type="curve" smooth="yes"/>
+ <point x="854" y="681" type="line"/>
+ <point x="664" y="681" type="line"/>
+ <point x="601" y="426" type="line" smooth="yes"/>
+ <point x="553" y="233"/>
+ <point x="514" y="78"/>
+ <point x="480" y="0" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_tnS_mA_.glif b/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_tnS_mA_.glif
new file mode 100644
index 0000000..586e494
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_tnS_mA_.glif
@@ -0,0 +1,77 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmA" format="2">
+ <advance width="1107"/>
+ <unicode hex="0061"/>
+ <anchor x="860" y="0" name="H"/>
+ <anchor x="455" y="-100" name="L"/>
+ <anchor x="1065" y="0" name="O"/>
+ <anchor x="1310" y="1000" name="R"/>
+ <anchor x="755" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="972" y="0" type="line"/>
+ <point x="965" y="48"/>
+ <point x="960" y="98"/>
+ <point x="960" y="149" type="curve" smooth="yes"/>
+ <point x="960" y="214"/>
+ <point x="967" y="284"/>
+ <point x="987" y="363" type="curve"/>
+ <point x="1077" y="726" type="line"/>
+ <point x="1081" y="744"/>
+ <point x="1084" y="762"/>
+ <point x="1084" y="779" type="curve" smooth="yes"/>
+ <point x="1084" y="912"/>
+ <point x="955" y="1019"/>
+ <point x="751" y="1019" type="curve" smooth="yes"/>
+ <point x="599" y="1019"/>
+ <point x="502" y="974"/>
+ <point x="389" y="931" type="curve"/>
+ <point x="373" y="889"/>
+ <point x="343" y="783"/>
+ <point x="331" y="740" type="curve"/>
+ <point x="468" y="820"/>
+ <point x="560" y="862"/>
+ <point x="666" y="862" type="curve" smooth="yes"/>
+ <point x="798" y="862"/>
+ <point x="885" y="810"/>
+ <point x="885" y="718" type="curve" smooth="yes"/>
+ <point x="885" y="705"/>
+ <point x="884" y="691"/>
+ <point x="880" y="677" type="curve" smooth="yes"/>
+ <point x="867" y="622" type="line"/>
+ <point x="825" y="619"/>
+ <point x="661" y="605"/>
+ <point x="591" y="598" type="curve" smooth="yes"/>
+ <point x="282" y="568"/>
+ <point x="102" y="415"/>
+ <point x="102" y="233" type="curve" smooth="yes"/>
+ <point x="102" y="103"/>
+ <point x="223" y="-25"/>
+ <point x="390" y="-25" type="curve" smooth="yes"/>
+ <point x="514" y="-25"/>
+ <point x="674" y="47"/>
+ <point x="779" y="152" type="curve"/>
+ <point x="779" y="89"/>
+ <point x="787" y="31"/>
+ <point x="792" y="0" type="curve"/>
+ </contour>
+ <contour>
+ <point x="791" y="319" type="line"/>
+ <point x="674" y="191"/>
+ <point x="553" y="137"/>
+ <point x="451" y="137" type="curve" smooth="yes"/>
+ <point x="355" y="137"/>
+ <point x="290" y="192"/>
+ <point x="290" y="264" type="curve" smooth="yes"/>
+ <point x="290" y="274"/>
+ <point x="291" y="285"/>
+ <point x="294" y="296" type="curve" smooth="yes"/>
+ <point x="315" y="380"/>
+ <point x="432" y="450"/>
+ <point x="566" y="461" type="curve" smooth="yes"/>
+ <point x="631" y="466"/>
+ <point x="782" y="483"/>
+ <point x="832" y="485" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_tnS_mA_A_cute.glif b/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_tnS_mA_A_cute.glif
new file mode 100644
index 0000000..198d6db
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_tnS_mA_A_cute.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmAAcute" format="2">
+ <advance width="1107"/>
+ <unicode hex="00E1"/>
+ <anchor x="860" y="0" name="H"/>
+ <anchor x="455" y="-100" name="L"/>
+ <anchor x="1065" y="0" name="O"/>
+ <anchor x="1310" y="1000" name="R"/>
+ <anchor x="889" y="1635" name="U"/>
+ <outline>
+ <component base="LtnSmA"/>
+ <component base="CombAcute" xOffset="1110"/>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_tnS_mA_C_ircum.glif b/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_tnS_mA_C_ircum.glif
new file mode 100644
index 0000000..f5cfb16
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_tnS_mA_C_ircum.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmACircum" format="2">
+ <advance width="1107"/>
+ <unicode hex="00E2"/>
+ <anchor x="860" y="0" name="H"/>
+ <anchor x="455" y="-100" name="L"/>
+ <anchor x="1065" y="0" name="O"/>
+ <anchor x="1310" y="1000" name="R"/>
+ <anchor x="854" y="1635" name="U"/>
+ <outline>
+ <component base="LtnSmA"/>
+ <component base="CombCircum" xOffset="1075"/>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_tnS_mA_D_iaer.glif b/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_tnS_mA_D_iaer.glif
new file mode 100644
index 0000000..6f05301
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_tnS_mA_D_iaer.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmADiaer" format="2">
+ <advance width="1107"/>
+ <unicode hex="00E4"/>
+ <anchor x="860" y="0" name="H"/>
+ <anchor x="455" y="-100" name="L"/>
+ <anchor x="1065" y="0" name="O"/>
+ <anchor x="1310" y="1000" name="R"/>
+ <anchor x="852" y="1505" name="U"/>
+ <outline>
+ <component base="LtnSmA"/>
+ <component base="CombDiaer" xOffset="1105"/>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_tnS_mA_G_rave.glif b/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_tnS_mA_G_rave.glif
new file mode 100644
index 0000000..9048920
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_tnS_mA_G_rave.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmAGrave" format="2">
+ <advance width="1107"/>
+ <unicode hex="00E0"/>
+ <anchor x="860" y="0" name="H"/>
+ <anchor x="455" y="-100" name="L"/>
+ <anchor x="1065" y="0" name="O"/>
+ <anchor x="1310" y="1000" name="R"/>
+ <anchor x="889" y="1635" name="U"/>
+ <outline>
+ <component base="LtnSmA"/>
+ <component base="CombGrave" xOffset="1090"/>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_tnS_mA_R_ingA_bv.glif b/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_tnS_mA_R_ingA_bv.glif
new file mode 100644
index 0000000..8ada58f
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_tnS_mA_R_ingA_bv.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmARingAbv" format="2">
+ <advance width="1107"/>
+ <unicode hex="00E5"/>
+ <anchor x="860" y="0" name="H"/>
+ <anchor x="455" y="-100" name="L"/>
+ <anchor x="1065" y="0" name="O"/>
+ <anchor x="1310" y="1000" name="R"/>
+ <anchor x="919" y="1635" name="U"/>
+ <outline>
+ <component base="LtnSmA"/>
+ <component base="CombRingAbv" xOffset="1140"/>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_tnS_mA_T_ilde.glif b/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_tnS_mA_T_ilde.glif
new file mode 100644
index 0000000..c29348b
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_tnS_mA_T_ilde.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmATilde" format="2">
+ <advance width="1107"/>
+ <unicode hex="00E3"/>
+ <anchor x="860" y="0" name="H"/>
+ <anchor x="455" y="-100" name="L"/>
+ <anchor x="1065" y="0" name="O"/>
+ <anchor x="1310" y="1000" name="R"/>
+ <anchor x="850" y="1475" name="U"/>
+ <outline>
+ <component base="LtnSmA"/>
+ <component base="CombTilde" xOffset="1140"/>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_tnS_mB_.glif b/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_tnS_mB_.glif
new file mode 100644
index 0000000..b3a3696
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_tnS_mB_.glif
@@ -0,0 +1,55 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmB" format="2">
+ <advance width="1144"/>
+ <unicode hex="0062"/>
+ <anchor x="530" y="0" name="H"/>
+ <anchor x="505" y="-100" name="L"/>
+ <anchor x="1345" y="1000" name="R"/>
+ <anchor x="938" y="1635" name="U"/>
+ <outline>
+ <contour>
+ <point x="437" y="1570" type="line"/>
+ <point x="437" y="1456"/>
+ <point x="402" y="1246"/>
+ <point x="367" y="1105" type="curve" smooth="yes"/>
+ <point x="110" y="85" type="line"/>
+ <point x="198" y="44"/>
+ <point x="355" y="-25"/>
+ <point x="517" y="-25" type="curve" smooth="yes"/>
+ <point x="675" y="-25"/>
+ <point x="795" y="24"/>
+ <point x="907" y="125" type="curve" smooth="yes"/>
+ <point x="1050" y="255"/>
+ <point x="1162" y="466"/>
+ <point x="1162" y="695" type="curve" smooth="yes"/>
+ <point x="1162" y="930"/>
+ <point x="1046" y="1020"/>
+ <point x="907" y="1020" type="curve" smooth="yes"/>
+ <point x="754" y="1020"/>
+ <point x="584" y="878"/>
+ <point x="456" y="719" type="curve"/>
+ <point x="552" y="1105" type="line" smooth="yes"/>
+ <point x="600" y="1296"/>
+ <point x="627" y="1508"/>
+ <point x="627" y="1570" type="curve"/>
+ </contour>
+ <contour>
+ <point x="382" y="429" type="line"/>
+ <point x="485" y="617"/>
+ <point x="708" y="850"/>
+ <point x="822" y="850" type="curve" smooth="yes"/>
+ <point x="913" y="850"/>
+ <point x="972" y="784"/>
+ <point x="972" y="635" type="curve" smooth="yes"/>
+ <point x="972" y="469"/>
+ <point x="909" y="336"/>
+ <point x="822" y="250" type="curve" smooth="yes"/>
+ <point x="741" y="169"/>
+ <point x="638" y="125"/>
+ <point x="552" y="125" type="curve" smooth="yes"/>
+ <point x="466" y="125"/>
+ <point x="376" y="167"/>
+ <point x="325" y="200" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_tnS_mC_.glif b/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_tnS_mC_.glif
new file mode 100644
index 0000000..f54fbe9
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_tnS_mC_.glif
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmC" format="2">
+ <advance width="989"/>
+ <unicode hex="0063"/>
+ <anchor x="520" y="0" name="H"/>
+ <anchor x="495" y="-100" name="L"/>
+ <anchor x="1210" y="1000" name="R"/>
+ <anchor x="785" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="917" y="255" type="line"/>
+ <point x="811" y="179"/>
+ <point x="703" y="137"/>
+ <point x="583" y="137" type="curve" smooth="yes"/>
+ <point x="427" y="137"/>
+ <point x="331" y="239"/>
+ <point x="331" y="406" type="curve" smooth="yes"/>
+ <point x="331" y="619"/>
+ <point x="499" y="858"/>
+ <point x="742" y="858" type="curve" smooth="yes"/>
+ <point x="845" y="858"/>
+ <point x="924" y="824"/>
+ <point x="998" y="760" type="curve"/>
+ <point x="1077" y="936" type="line"/>
+ <point x="1016" y="985"/>
+ <point x="902" y="1020"/>
+ <point x="789" y="1020" type="curve" smooth="yes"/>
+ <point x="420" y="1020"/>
+ <point x="139" y="737"/>
+ <point x="139" y="381" type="curve" smooth="yes"/>
+ <point x="139" y="130"/>
+ <point x="309" y="-25"/>
+ <point x="532" y="-25" type="curve" smooth="yes"/>
+ <point x="682" y="-25"/>
+ <point x="785" y="9"/>
+ <point x="904" y="83" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_tnS_mD_.glif b/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_tnS_mD_.glif
new file mode 100644
index 0000000..4ea9ea1
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_tnS_mD_.glif
@@ -0,0 +1,65 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmD" format="2">
+ <advance width="1197"/>
+ <unicode hex="0064"/>
+ <anchor x="545" y="0" name="H"/>
+ <anchor x="520" y="-100" name="L"/>
+ <anchor x="1380" y="1000" name="R"/>
+ <anchor x="953" y="1635" name="U"/>
+ <outline>
+ <contour>
+ <point x="1144" y="1570" type="line"/>
+ <point x="1144" y="1456"/>
+ <point x="1114" y="1327"/>
+ <point x="1079" y="1175" type="curve" smooth="yes"/>
+ <point x="1024" y="935" type="line"/>
+ <point x="957" y="978"/>
+ <point x="854" y="1020"/>
+ <point x="759" y="1020" type="curve" smooth="yes"/>
+ <point x="650" y="1020"/>
+ <point x="534" y="979"/>
+ <point x="429" y="895" type="curve" smooth="yes"/>
+ <point x="262" y="761"/>
+ <point x="139" y="532"/>
+ <point x="139" y="288" type="curve" smooth="yes"/>
+ <point x="139" y="94"/>
+ <point x="250" y="-25"/>
+ <point x="424" y="-25" type="curve" smooth="yes"/>
+ <point x="563" y="-25"/>
+ <point x="791" y="141"/>
+ <point x="899" y="305" type="curve"/>
+ <point x="875" y="196"/>
+ <point x="869" y="93"/>
+ <point x="869" y="0" type="curve"/>
+ <point x="1052" y="0" type="line"/>
+ <point x="1048" y="23"/>
+ <point x="1047" y="53"/>
+ <point x="1047" y="90" type="curve" smooth="yes"/>
+ <point x="1047" y="190"/>
+ <point x="1063" y="340"/>
+ <point x="1107" y="520" type="curve" smooth="yes"/>
+ <point x="1267" y="1175" type="line" smooth="yes"/>
+ <point x="1310" y="1351"/>
+ <point x="1337" y="1475"/>
+ <point x="1337" y="1570" type="curve"/>
+ </contour>
+ <contour>
+ <point x="930" y="545" type="line"/>
+ <point x="846" y="370"/>
+ <point x="592" y="130"/>
+ <point x="479" y="130" type="curve" smooth="yes"/>
+ <point x="374" y="130"/>
+ <point x="330" y="195"/>
+ <point x="330" y="316" type="curve" smooth="yes"/>
+ <point x="330" y="460"/>
+ <point x="397" y="649"/>
+ <point x="509" y="760" type="curve" smooth="yes"/>
+ <point x="572" y="822"/>
+ <point x="643" y="855"/>
+ <point x="734" y="855" type="curve" smooth="yes"/>
+ <point x="835" y="855"/>
+ <point x="898" y="832"/>
+ <point x="984" y="780" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_tnS_mE_.glif b/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_tnS_mE_.glif
new file mode 100644
index 0000000..a3a6490
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_tnS_mE_.glif
@@ -0,0 +1,52 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmE" format="2">
+ <advance width="1042"/>
+ <unicode hex="0065"/>
+ <anchor x="485" y="0" name="H"/>
+ <anchor x="484" y="-100" name="L"/>
+ <anchor x="840" y="0" name="O"/>
+ <anchor x="1285" y="1000" name="R"/>
+ <anchor x="784" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="967" y="270" type="line"/>
+ <point x="854" y="189"/>
+ <point x="700" y="135"/>
+ <point x="567" y="135" type="curve" smooth="yes"/>
+ <point x="386" y="135"/>
+ <point x="317" y="263"/>
+ <point x="317" y="420" type="curve" smooth="yes"/>
+ <point x="317" y="686"/>
+ <point x="522" y="872"/>
+ <point x="720" y="872" type="curve" smooth="yes"/>
+ <point x="813" y="872"/>
+ <point x="883" y="823"/>
+ <point x="883" y="753" type="curve" smooth="yes"/>
+ <point x="883" y="660"/>
+ <point x="766" y="590"/>
+ <point x="539" y="590" type="curve" smooth="yes"/>
+ <point x="468" y="590"/>
+ <point x="382" y="596"/>
+ <point x="279" y="610" type="curve"/>
+ <point x="279" y="477" type="line"/>
+ <point x="391" y="461"/>
+ <point x="487" y="453"/>
+ <point x="569" y="453" type="curve" smooth="yes"/>
+ <point x="931" y="453"/>
+ <point x="1077" y="609"/>
+ <point x="1077" y="791" type="curve" smooth="yes"/>
+ <point x="1077" y="899"/>
+ <point x="986" y="1020"/>
+ <point x="772" y="1020" type="curve" smooth="yes"/>
+ <point x="399" y="1020"/>
+ <point x="137" y="710"/>
+ <point x="137" y="380" type="curve" smooth="yes"/>
+ <point x="137" y="147"/>
+ <point x="258" y="-25"/>
+ <point x="523" y="-25" type="curve" smooth="yes"/>
+ <point x="689" y="-25"/>
+ <point x="849" y="26"/>
+ <point x="955" y="83" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_tnS_mF_.glif b/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_tnS_mF_.glif
new file mode 100644
index 0000000..ede52a9
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_tnS_mF_.glif
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmF" format="2">
+ <advance width="756"/>
+ <unicode hex="0066"/>
+ <anchor x="290" y="0" name="H"/>
+ <anchor x="315" y="-100" name="L"/>
+ <anchor x="908" y="1635" name="U"/>
+ <outline>
+ <contour>
+ <point x="180" y="833" type="line"/>
+ <point x="835" y="833" type="line"/>
+ <point x="871" y="975" type="line"/>
+ <point x="216" y="975" type="line"/>
+ </contour>
+ <contour>
+ <point x="1106" y="1519" type="line"/>
+ <point x="1062" y="1555"/>
+ <point x="981" y="1588"/>
+ <point x="903" y="1588" type="curve" smooth="yes"/>
+ <point x="687" y="1588"/>
+ <point x="533" y="1478"/>
+ <point x="448" y="1147" type="curve" smooth="yes"/>
+ <point x="403" y="972"/>
+ <point x="244" y="334"/>
+ <point x="223" y="0" type="curve"/>
+ <point x="436" y="0" type="line"/>
+ <point x="430" y="28"/>
+ <point x="427" y="66"/>
+ <point x="427" y="110" type="curve" smooth="yes"/>
+ <point x="427" y="213"/>
+ <point x="447" y="351"/>
+ <point x="476" y="484" type="curve" smooth="yes"/>
+ <point x="510" y="641"/>
+ <point x="558" y="846"/>
+ <point x="641" y="1186" type="curve" smooth="yes"/>
+ <point x="682" y="1353"/>
+ <point x="758" y="1421"/>
+ <point x="862" y="1421" type="curve" smooth="yes"/>
+ <point x="920" y="1421"/>
+ <point x="988" y="1392"/>
+ <point x="1022" y="1362" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_tnS_mG_.glif b/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_tnS_mG_.glif
new file mode 100644
index 0000000..8931f8d
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_tnS_mG_.glif
@@ -0,0 +1,100 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmG" format="2">
+ <advance width="1075"/>
+ <unicode hex="0067"/>
+ <anchor x="368" y="-465" name="H"/>
+ <anchor x="351" y="-535" name="L"/>
+ <anchor x="1285" y="1000" name="R"/>
+ <anchor x="730" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="360" y="389" type="line"/>
+ <point x="277" y="352"/>
+ <point x="168" y="266"/>
+ <point x="168" y="176" type="curve" smooth="yes"/>
+ <point x="168" y="96"/>
+ <point x="246" y="33"/>
+ <point x="483" y="-5" type="curve" smooth="yes"/>
+ <point x="707" y="-41"/>
+ <point x="781" y="-94"/>
+ <point x="781" y="-151" type="curve" smooth="yes"/>
+ <point x="781" y="-256"/>
+ <point x="580" y="-353"/>
+ <point x="411" y="-353" type="curve" smooth="yes"/>
+ <point x="202" y="-353"/>
+ <point x="104" y="-271"/>
+ <point x="104" y="-196" type="curve" smooth="yes"/>
+ <point x="104" y="-189"/>
+ <point x="104" y="-183"/>
+ <point x="106" y="-176" type="curve" smooth="yes"/>
+ <point x="120" y="-119"/>
+ <point x="170" y="-55"/>
+ <point x="409" y="20" type="curve"/>
+ <point x="410" y="48"/>
+ <point x="248" y="73"/>
+ <point x="248" y="73" type="curve"/>
+ <point x="53" y="12"/>
+ <point x="-51" y="-77"/>
+ <point x="-78" y="-186" type="curve" smooth="yes"/>
+ <point x="-82" y="-201"/>
+ <point x="-84" y="-217"/>
+ <point x="-84" y="-231" type="curve" smooth="yes"/>
+ <point x="-84" y="-396"/>
+ <point x="158" y="-495"/>
+ <point x="371" y="-495" type="curve" smooth="yes"/>
+ <point x="632" y="-495"/>
+ <point x="972" y="-360"/>
+ <point x="972" y="-125" type="curve" smooth="yes"/>
+ <point x="972" y="0"/>
+ <point x="849" y="90"/>
+ <point x="619" y="127" type="curve" smooth="yes"/>
+ <point x="403" y="162"/>
+ <point x="341" y="184"/>
+ <point x="341" y="218" type="curve" smooth="yes"/>
+ <point x="341" y="263"/>
+ <point x="447" y="325"/>
+ <point x="522" y="342" type="curve"/>
+ </contour>
+ <contour>
+ <point x="1244" y="1019" type="line"/>
+ <point x="1143" y="1012"/>
+ <point x="1002" y="977"/>
+ <point x="899" y="921" type="curve"/>
+ <point x="936" y="809" type="line"/>
+ <point x="1037" y="846"/>
+ <point x="1121" y="860"/>
+ <point x="1194" y="862" type="curve"/>
+ </contour>
+ <contour>
+ <point x="212" y="613" type="curve" smooth="yes"/>
+ <point x="212" y="449"/>
+ <point x="356" y="319"/>
+ <point x="554" y="319" type="curve" smooth="yes"/>
+ <point x="791" y="319"/>
+ <point x="1030" y="495"/>
+ <point x="1030" y="729" type="curve" smooth="yes"/>
+ <point x="1030" y="894"/>
+ <point x="887" y="1019"/>
+ <point x="689" y="1019" type="curve" smooth="yes"/>
+ <point x="441" y="1019"/>
+ <point x="212" y="847"/>
+ </contour>
+ <contour>
+ <point x="857" y="704" type="curve" smooth="yes"/>
+ <point x="857" y="555"/>
+ <point x="712" y="456"/>
+ <point x="578" y="456" type="curve" smooth="yes"/>
+ <point x="463" y="456"/>
+ <point x="385" y="530"/>
+ <point x="385" y="628" type="curve" smooth="yes"/>
+ <point x="385" y="643"/>
+ <point x="387" y="660"/>
+ <point x="391" y="676" type="curve" smooth="yes"/>
+ <point x="421" y="797"/>
+ <point x="530" y="877"/>
+ <point x="663" y="877" type="curve" smooth="yes"/>
+ <point x="779" y="877"/>
+ <point x="857" y="802"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_tnS_mH_.glif b/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_tnS_mH_.glif
new file mode 100644
index 0000000..08afbac
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_tnS_mH_.glif
@@ -0,0 +1,54 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmH" format="2">
+ <advance width="1185"/>
+ <unicode hex="0068"/>
+ <anchor x="190" y="0" name="H"/>
+ <anchor x="550" y="-100" name="L"/>
+ <anchor x="933" y="1635" name="U"/>
+ <outline>
+ <contour>
+ <point x="1055" y="0" type="line"/>
+ <point x="1047" y="30"/>
+ <point x="1043" y="65"/>
+ <point x="1043" y="102" type="curve" smooth="yes"/>
+ <point x="1043" y="143"/>
+ <point x="1048" y="188"/>
+ <point x="1055" y="238" type="curve" smooth="yes"/>
+ <point x="1069" y="327"/>
+ <point x="1170" y="636"/>
+ <point x="1170" y="745" type="curve" smooth="yes"/>
+ <point x="1170" y="917"/>
+ <point x="1095" y="1020"/>
+ <point x="930" y="1020" type="curve" smooth="yes"/>
+ <point x="760" y="1020"/>
+ <point x="591" y="877"/>
+ <point x="475" y="723" type="curve"/>
+ <point x="571" y="1105" type="line" smooth="yes"/>
+ <point x="609" y="1259"/>
+ <point x="645" y="1482"/>
+ <point x="645" y="1570" type="curve"/>
+ <point x="455" y="1570" type="line"/>
+ <point x="455" y="1456"/>
+ <point x="423" y="1257"/>
+ <point x="385" y="1105" type="curve" smooth="yes"/>
+ <point x="110" y="0" type="line"/>
+ <point x="295" y="0" type="line"/>
+ <point x="397" y="408" type="line"/>
+ <point x="492" y="612"/>
+ <point x="717" y="850"/>
+ <point x="840" y="850" type="curve" smooth="yes"/>
+ <point x="937" y="850"/>
+ <point x="970" y="798"/>
+ <point x="970" y="680" type="curve" smooth="yes"/>
+ <point x="970" y="592"/>
+ <point x="886" y="319"/>
+ <point x="872" y="203" type="curve" smooth="yes"/>
+ <point x="867" y="158"/>
+ <point x="864" y="115"/>
+ <point x="864" y="77" type="curve" smooth="yes"/>
+ <point x="864" y="48"/>
+ <point x="866" y="21"/>
+ <point x="870" y="0" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_tnS_mI_.glif b/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_tnS_mI_.glif
new file mode 100644
index 0000000..65ed550
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_tnS_mI_.glif
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmI" format="2">
+ <advance width="554"/>
+ <unicode hex="0069"/>
+ <anchor x="235" y="0" name="H"/>
+ <anchor x="250" y="-100" name="L"/>
+ <anchor x="455" y="0" name="O"/>
+ <anchor x="745" y="1000" name="R"/>
+ <anchor x="472" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="361" y="1297" type="curve" smooth="yes"/>
+ <point x="361" y="1237"/>
+ <point x="404" y="1186"/>
+ <point x="467" y="1186" type="curve" smooth="yes"/>
+ <point x="552" y="1186"/>
+ <point x="624" y="1259"/>
+ <point x="624" y="1338" type="curve" smooth="yes"/>
+ <point x="624" y="1399"/>
+ <point x="578" y="1450"/>
+ <point x="513" y="1450" type="curve" smooth="yes"/>
+ <point x="428" y="1450"/>
+ <point x="361" y="1375"/>
+ </contour>
+ <contour>
+ <point x="335" y="1000" type="line"/>
+ <point x="335" y="886"/>
+ <point x="286" y="688"/>
+ <point x="246" y="537" type="curve" smooth="yes"/>
+ <point x="207" y="388" type="line" smooth="yes"/>
+ <point x="180" y="284"/>
+ <point x="165" y="172"/>
+ <point x="165" y="87" type="curve" smooth="yes"/>
+ <point x="165" y="53"/>
+ <point x="167" y="24"/>
+ <point x="172" y="0" type="curve"/>
+ <point x="372" y="0" type="line"/>
+ <point x="365" y="37"/>
+ <point x="360" y="85"/>
+ <point x="360" y="136" type="curve" smooth="yes"/>
+ <point x="360" y="208"/>
+ <point x="368" y="287"/>
+ <point x="386" y="357" type="curve" smooth="yes"/>
+ <point x="431" y="536" type="line" smooth="yes"/>
+ <point x="476" y="712"/>
+ <point x="525" y="912"/>
+ <point x="525" y="1000" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_tnS_mJ_.glif b/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_tnS_mJ_.glif
new file mode 100644
index 0000000..e9e18b8
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_tnS_mJ_.glif
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmJ" format="2">
+ <advance width="602"/>
+ <unicode hex="006A"/>
+ <anchor x="-60" y="-500" name="L"/>
+ <anchor x="510" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="370" y="1000" type="line"/>
+ <point x="370" y="856"/>
+ <point x="288" y="374"/>
+ <point x="214" y="77" type="curve" smooth="yes"/>
+ <point x="152" y="-173"/>
+ <point x="29" y="-295"/>
+ <point x="-77" y="-295" type="curve" smooth="yes"/>
+ <point x="-133" y="-295"/>
+ <point x="-217" y="-264"/>
+ <point x="-253" y="-229" type="curve"/>
+ <point x="-328" y="-397" type="line"/>
+ <point x="-278" y="-437"/>
+ <point x="-170" y="-465"/>
+ <point x="-114" y="-465" type="curve" smooth="yes"/>
+ <point x="103" y="-465"/>
+ <point x="303" y="-314"/>
+ <point x="396" y="66" type="curve" smooth="yes"/>
+ <point x="455" y="307"/>
+ <point x="560" y="872"/>
+ <point x="560" y="1000" type="curve"/>
+ </contour>
+ <contour>
+ <point x="397" y="1297" type="curve" smooth="yes"/>
+ <point x="397" y="1237"/>
+ <point x="440" y="1186"/>
+ <point x="503" y="1186" type="curve" smooth="yes"/>
+ <point x="588" y="1186"/>
+ <point x="660" y="1259"/>
+ <point x="660" y="1338" type="curve" smooth="yes"/>
+ <point x="660" y="1399"/>
+ <point x="614" y="1450"/>
+ <point x="549" y="1450" type="curve" smooth="yes"/>
+ <point x="464" y="1450"/>
+ <point x="397" y="1375"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_tnS_mK_.glif b/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_tnS_mK_.glif
new file mode 100644
index 0000000..28fbc71
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_tnS_mK_.glif
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmK" format="2">
+ <advance width="1059"/>
+ <unicode hex="006B"/>
+ <anchor x="840" y="0" name="H"/>
+ <anchor x="537" y="-100" name="L"/>
+ <anchor x="1225" y="1000" name="R"/>
+ <anchor x="920" y="1635" name="U"/>
+ <outline>
+ <contour>
+ <point x="295" y="0" type="line"/>
+ <point x="570" y="1105" type="line" smooth="yes"/>
+ <point x="614" y="1280"/>
+ <point x="645" y="1482"/>
+ <point x="645" y="1570" type="curve"/>
+ <point x="455" y="1570" type="line"/>
+ <point x="455" y="1456"/>
+ <point x="424" y="1259"/>
+ <point x="386" y="1107" type="curve" smooth="yes"/>
+ <point x="338" y="915"/>
+ <point x="110" y="0"/>
+ <point x="110" y="0" type="curve"/>
+ </contour>
+ <contour>
+ <point x="909" y="1000" type="line"/>
+ <point x="885" y="863"/>
+ <point x="654" y="700"/>
+ <point x="379" y="539" type="curve"/>
+ <point x="386" y="540"/>
+ <point x="393" y="540"/>
+ <point x="400" y="540" type="curve" smooth="yes"/>
+ <point x="467" y="540"/>
+ <point x="559" y="514"/>
+ <point x="559" y="514" type="curve"/>
+ <point x="902" y="702"/>
+ <point x="1134" y="884"/>
+ <point x="1134" y="1000" type="curve"/>
+ </contour>
+ <contour>
+ <point x="1010" y="0" type="line"/>
+ <point x="863" y="238"/>
+ <point x="718" y="600"/>
+ <point x="527" y="600" type="curve"/>
+ <point x="385" y="529" type="line"/>
+ <point x="540" y="529"/>
+ <point x="667" y="246"/>
+ <point x="775" y="0" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_tnS_mL_.glif b/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_tnS_mL_.glif
new file mode 100644
index 0000000..06d68fd
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_tnS_mL_.glif
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmL" format="2">
+ <advance width="575"/>
+ <unicode hex="006C"/>
+ <anchor x="230" y="0" name="H"/>
+ <anchor x="255" y="-100" name="L"/>
+ <anchor x="740" y="1000" name="R"/>
+ <anchor x="630" y="1635" name="U"/>
+ <outline>
+ <contour>
+ <point x="465" y="1570" type="line"/>
+ <point x="465" y="1456"/>
+ <point x="434" y="1259"/>
+ <point x="396" y="1107" type="curve" smooth="yes"/>
+ <point x="241" y="489" type="line" smooth="yes"/>
+ <point x="204" y="343"/>
+ <point x="186" y="220"/>
+ <point x="186" y="104" type="curve" smooth="yes"/>
+ <point x="186" y="69"/>
+ <point x="188" y="34"/>
+ <point x="191" y="0" type="curve"/>
+ <point x="391" y="0" type="line"/>
+ <point x="386" y="32"/>
+ <point x="384" y="70"/>
+ <point x="384" y="112" type="curve" smooth="yes"/>
+ <point x="384" y="230"/>
+ <point x="402" y="380"/>
+ <point x="436" y="517" type="curve" smooth="yes"/>
+ <point x="580" y="1105" type="line" smooth="yes"/>
+ <point x="623" y="1280"/>
+ <point x="655" y="1482"/>
+ <point x="655" y="1570" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_tnS_mM_.glif b/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_tnS_mM_.glif
new file mode 100644
index 0000000..a6b80db
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_tnS_mM_.glif
@@ -0,0 +1,80 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmM" format="2">
+ <advance width="1680"/>
+ <unicode hex="006D"/>
+ <anchor x="805" y="0" name="H"/>
+ <anchor x="780" y="-100" name="L"/>
+ <anchor x="1080" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="1520" y="0" type="line"/>
+ <point x="1512" y="30"/>
+ <point x="1510" y="65"/>
+ <point x="1510" y="102" type="curve" smooth="yes"/>
+ <point x="1510" y="143"/>
+ <point x="1515" y="188"/>
+ <point x="1522" y="238" type="curve" smooth="yes"/>
+ <point x="1536" y="327"/>
+ <point x="1655" y="691"/>
+ <point x="1655" y="800" type="curve" smooth="yes"/>
+ <point x="1655" y="930"/>
+ <point x="1594" y="1020"/>
+ <point x="1445" y="1020" type="curve" smooth="yes"/>
+ <point x="1292" y="1020"/>
+ <point x="1124" y="867"/>
+ <point x="1026" y="680" type="curve"/>
+ <point x="1030" y="704"/>
+ <point x="1045" y="778"/>
+ <point x="1045" y="800" type="curve" smooth="yes"/>
+ <point x="1045" y="932"/>
+ <point x="982" y="1020"/>
+ <point x="860" y="1020" type="curve" smooth="yes"/>
+ <point x="717" y="1020"/>
+ <point x="563" y="879"/>
+ <point x="446" y="680" type="curve"/>
+ <point x="466" y="753"/>
+ <point x="476" y="880"/>
+ <point x="476" y="961" type="curve" smooth="yes"/>
+ <point x="476" y="976"/>
+ <point x="476" y="989"/>
+ <point x="475" y="1000" type="curve"/>
+ <point x="295" y="1000" type="line"/>
+ <point x="296" y="983"/>
+ <point x="296" y="964"/>
+ <point x="296" y="945" type="curve" smooth="yes"/>
+ <point x="296" y="825"/>
+ <point x="283" y="680"/>
+ <point x="262" y="595" type="curve" smooth="yes"/>
+ <point x="115" y="0" type="line"/>
+ <point x="300" y="0" type="line"/>
+ <point x="389" y="359" type="line"/>
+ <point x="475" y="573"/>
+ <point x="685" y="850"/>
+ <point x="775" y="850" type="curve" smooth="yes"/>
+ <point x="833" y="850"/>
+ <point x="865" y="813"/>
+ <point x="865" y="720" type="curve" smooth="yes"/>
+ <point x="865" y="679"/>
+ <point x="846" y="583"/>
+ <point x="822" y="486" type="curve" smooth="yes"/>
+ <point x="700" y="0" type="line"/>
+ <point x="885" y="0" type="line"/>
+ <point x="974" y="359" type="line"/>
+ <point x="1032" y="531"/>
+ <point x="1242" y="850"/>
+ <point x="1357" y="850" type="curve" smooth="yes"/>
+ <point x="1425" y="850"/>
+ <point x="1457" y="813"/>
+ <point x="1457" y="720" type="curve" smooth="yes"/>
+ <point x="1457" y="632"/>
+ <point x="1349" y="319"/>
+ <point x="1335" y="203" type="curve" smooth="yes"/>
+ <point x="1330" y="158"/>
+ <point x="1327" y="115"/>
+ <point x="1327" y="77" type="curve" smooth="yes"/>
+ <point x="1327" y="48"/>
+ <point x="1331" y="21"/>
+ <point x="1335" y="0" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_tnS_mN_.glif b/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_tnS_mN_.glif
new file mode 100644
index 0000000..1f38f20
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_tnS_mN_.glif
@@ -0,0 +1,57 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmN" format="2">
+ <advance width="1195"/>
+ <unicode hex="006E"/>
+ <anchor x="540" y="0" name="H"/>
+ <anchor x="565" y="-100" name="L"/>
+ <anchor x="815" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="1060" y="0" type="line"/>
+ <point x="1052" y="30"/>
+ <point x="1050" y="65"/>
+ <point x="1050" y="102" type="curve" smooth="yes"/>
+ <point x="1050" y="143"/>
+ <point x="1055" y="188"/>
+ <point x="1062" y="238" type="curve" smooth="yes"/>
+ <point x="1075" y="327"/>
+ <point x="1175" y="636"/>
+ <point x="1175" y="745" type="curve" smooth="yes"/>
+ <point x="1175" y="917"/>
+ <point x="1100" y="1020"/>
+ <point x="935" y="1020" type="curve" smooth="yes"/>
+ <point x="755" y="1020"/>
+ <point x="581" y="870"/>
+ <point x="445" y="672" type="curve"/>
+ <point x="463" y="740"/>
+ <point x="477" y="873"/>
+ <point x="477" y="957" type="curve" smooth="yes"/>
+ <point x="477" y="973"/>
+ <point x="476" y="988"/>
+ <point x="475" y="1000" type="curve"/>
+ <point x="295" y="1000" type="line"/>
+ <point x="295" y="961" type="line" smooth="yes"/>
+ <point x="295" y="833"/>
+ <point x="283" y="679"/>
+ <point x="262" y="595" type="curve" smooth="yes"/>
+ <point x="115" y="0" type="line"/>
+ <point x="300" y="0" type="line"/>
+ <point x="392" y="370" type="line"/>
+ <point x="478" y="573"/>
+ <point x="708" y="850"/>
+ <point x="835" y="850" type="curve" smooth="yes"/>
+ <point x="927" y="850"/>
+ <point x="975" y="798"/>
+ <point x="975" y="680" type="curve" smooth="yes"/>
+ <point x="975" y="592"/>
+ <point x="888" y="319"/>
+ <point x="875" y="203" type="curve" smooth="yes"/>
+ <point x="870" y="158"/>
+ <point x="867" y="115"/>
+ <point x="867" y="77" type="curve" smooth="yes"/>
+ <point x="867" y="48"/>
+ <point x="871" y="21"/>
+ <point x="875" y="0" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_tnS_mO_.glif b/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_tnS_mO_.glif
new file mode 100644
index 0000000..bec7b9e
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_tnS_mO_.glif
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmO" format="2">
+ <advance width="1133"/>
+ <unicode hex="006F"/>
+ <anchor x="510" y="0" name="H"/>
+ <anchor x="505" y="-100" name="L"/>
+ <anchor x="800" y="0" name="O"/>
+ <anchor x="1330" y="1000" name="R"/>
+ <anchor x="785" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="142" y="344" type="curve" smooth="yes"/>
+ <point x="142" y="114"/>
+ <point x="306" y="-25"/>
+ <point x="530" y="-25" type="curve" smooth="yes"/>
+ <point x="896" y="-25"/>
+ <point x="1138" y="314"/>
+ <point x="1138" y="648" type="curve" smooth="yes"/>
+ <point x="1138" y="879"/>
+ <point x="985" y="1020"/>
+ <point x="761" y="1020" type="curve" smooth="yes"/>
+ <point x="387" y="1020"/>
+ <point x="142" y="677"/>
+ </contour>
+ <contour>
+ <point x="721" y="862" type="curve" smooth="yes"/>
+ <point x="859" y="862"/>
+ <point x="947" y="767"/>
+ <point x="947" y="611" type="curve" smooth="yes"/>
+ <point x="947" y="391"/>
+ <point x="795" y="132"/>
+ <point x="559" y="132" type="curve" smooth="yes"/>
+ <point x="421" y="132"/>
+ <point x="333" y="226"/>
+ <point x="333" y="380" type="curve" smooth="yes"/>
+ <point x="333" y="599"/>
+ <point x="486" y="862"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_tnS_mP_.glif b/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_tnS_mP_.glif
new file mode 100644
index 0000000..f9e06b1
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_tnS_mP_.glif
@@ -0,0 +1,66 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmP" format="2">
+ <advance width="1185"/>
+ <unicode hex="0070"/>
+ <anchor x="105" y="-435" name="H"/>
+ <anchor x="405" y="-500" name="L"/>
+ <anchor x="1360" y="1000" name="R"/>
+ <anchor x="805" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="215" y="-480" type="line"/>
+ <point x="215" y="-388"/>
+ <point x="229" y="-282"/>
+ <point x="255" y="-175" type="curve" smooth="yes"/>
+ <point x="320" y="85" type="line"/>
+ <point x="399" y="20"/>
+ <point x="468" y="-25"/>
+ <point x="575" y="-25" type="curve" smooth="yes"/>
+ <point x="685" y="-25"/>
+ <point x="797" y="9"/>
+ <point x="895" y="85" type="curve" smooth="yes"/>
+ <point x="1063" y="215"/>
+ <point x="1185" y="438"/>
+ <point x="1185" y="680" type="curve" smooth="yes"/>
+ <point x="1185" y="878"/>
+ <point x="1101" y="1020"/>
+ <point x="920" y="1020" type="curve" smooth="yes"/>
+ <point x="757" y="1020"/>
+ <point x="559" y="842"/>
+ <point x="452" y="680" type="curve"/>
+ <point x="468" y="760"/>
+ <point x="477" y="860"/>
+ <point x="477" y="940" type="curve" smooth="yes"/>
+ <point x="477" y="962"/>
+ <point x="477" y="982"/>
+ <point x="475" y="1000" type="curve"/>
+ <point x="295" y="1000" type="line"/>
+ <point x="295" y="971" type="line" smooth="yes"/>
+ <point x="295" y="819"/>
+ <point x="273" y="625"/>
+ <point x="235" y="475" type="curve" smooth="yes"/>
+ <point x="70" y="-175" type="line" smooth="yes"/>
+ <point x="43" y="-281"/>
+ <point x="20" y="-398"/>
+ <point x="20" y="-480" type="curve"/>
+ </contour>
+ <contour>
+ <point x="407" y="432" type="line"/>
+ <point x="544" y="656"/>
+ <point x="732" y="850"/>
+ <point x="840" y="850" type="curve" smooth="yes"/>
+ <point x="939" y="850"/>
+ <point x="990" y="763"/>
+ <point x="990" y="630" type="curve" smooth="yes"/>
+ <point x="990" y="491"/>
+ <point x="926" y="322"/>
+ <point x="815" y="220" type="curve" smooth="yes"/>
+ <point x="759" y="168"/>
+ <point x="693" y="135"/>
+ <point x="615" y="135" type="curve" smooth="yes"/>
+ <point x="523" y="135"/>
+ <point x="479" y="161"/>
+ <point x="365" y="255" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_tnS_mQ_.glif b/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_tnS_mQ_.glif
new file mode 100644
index 0000000..58d9f87
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_tnS_mQ_.glif
@@ -0,0 +1,54 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmQ" format="2">
+ <advance width="1115"/>
+ <unicode hex="0071"/>
+ <anchor x="370" y="-500" name="L"/>
+ <anchor x="1320" y="1000" name="R"/>
+ <anchor x="770" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="843" y="-480" type="line"/>
+ <point x="843" y="-391"/>
+ <point x="858" y="-294"/>
+ <point x="885" y="-185" type="curve" smooth="yes"/>
+ <point x="1165" y="945" type="line"/>
+ <point x="1066" y="980"/>
+ <point x="946" y="1020"/>
+ <point x="825" y="1020" type="curve" smooth="yes"/>
+ <point x="675" y="1020"/>
+ <point x="550" y="977"/>
+ <point x="440" y="890" type="curve" smooth="yes"/>
+ <point x="260" y="747"/>
+ <point x="135" y="505"/>
+ <point x="135" y="285" type="curve" smooth="yes"/>
+ <point x="135" y="73"/>
+ <point x="261" y="-25"/>
+ <point x="380" y="-25" type="curve" smooth="yes"/>
+ <point x="524" y="-25"/>
+ <point x="751" y="172"/>
+ <point x="825" y="300" type="curve"/>
+ <point x="693" y="-180" type="line" smooth="yes"/>
+ <point x="662" y="-294"/>
+ <point x="648" y="-414"/>
+ <point x="648" y="-480" type="curve"/>
+ </contour>
+ <contour>
+ <point x="885" y="565" type="line"/>
+ <point x="807" y="413"/>
+ <point x="550" y="140"/>
+ <point x="455" y="140" type="curve" smooth="yes"/>
+ <point x="376" y="140"/>
+ <point x="330" y="199"/>
+ <point x="330" y="330" type="curve" smooth="yes"/>
+ <point x="330" y="481"/>
+ <point x="400" y="658"/>
+ <point x="515" y="760" type="curve" smooth="yes"/>
+ <point x="580" y="817"/>
+ <point x="658" y="855"/>
+ <point x="750" y="855" type="curve" smooth="yes"/>
+ <point x="811" y="855"/>
+ <point x="893" y="840"/>
+ <point x="947" y="817" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_tnS_mR_.glif b/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_tnS_mR_.glif
new file mode 100644
index 0000000..8037612
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_tnS_mR_.glif
@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmR" format="2">
+ <advance width="910"/>
+ <unicode hex="0072"/>
+ <anchor x="210" y="0" name="H"/>
+ <anchor x="220" y="-100" name="L"/>
+ <anchor x="670" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="300" y="0" type="line"/>
+ <point x="402" y="415" type="line"/>
+ <point x="502" y="602"/>
+ <point x="703" y="850"/>
+ <point x="785" y="850" type="curve" smooth="yes"/>
+ <point x="831" y="850"/>
+ <point x="855" y="801"/>
+ <point x="855" y="740" type="curve" smooth="yes"/>
+ <point x="855" y="715"/>
+ <point x="852" y="689"/>
+ <point x="845" y="660" type="curve"/>
+ <point x="1010" y="690" type="line"/>
+ <point x="1022" y="737"/>
+ <point x="1030" y="783"/>
+ <point x="1030" y="825" type="curve" smooth="yes"/>
+ <point x="1030" y="935"/>
+ <point x="986" y="1020"/>
+ <point x="865" y="1020" type="curve" smooth="yes"/>
+ <point x="735" y="1020"/>
+ <point x="575" y="867"/>
+ <point x="445" y="675" type="curve"/>
+ <point x="467" y="773"/>
+ <point x="475" y="929"/>
+ <point x="475" y="1000" type="curve"/>
+ <point x="295" y="1000" type="line"/>
+ <point x="295" y="961" type="line" smooth="yes"/>
+ <point x="295" y="833"/>
+ <point x="283" y="679"/>
+ <point x="262" y="595" type="curve" smooth="yes"/>
+ <point x="115" y="0" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_tnS_mS_.glif b/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_tnS_mS_.glif
new file mode 100644
index 0000000..848ddda
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_tnS_mS_.glif
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmS" format="2">
+ <advance width="945"/>
+ <unicode hex="0073"/>
+ <anchor x="435" y="0" name="H"/>
+ <anchor x="440" y="-100" name="L"/>
+ <anchor x="710" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="990" y="941" type="line"/>
+ <point x="930" y="978"/>
+ <point x="815" y="1020"/>
+ <point x="640" y="1020" type="curve" smooth="yes"/>
+ <point x="384" y="1020"/>
+ <point x="230" y="881"/>
+ <point x="230" y="716" type="curve" smooth="yes"/>
+ <point x="230" y="614"/>
+ <point x="320" y="533"/>
+ <point x="466" y="461" type="curve" smooth="yes"/>
+ <point x="638" y="376"/>
+ <point x="700" y="333"/>
+ <point x="700" y="265" type="curve" smooth="yes"/>
+ <point x="700" y="188"/>
+ <point x="621" y="132"/>
+ <point x="532" y="132" type="curve" smooth="yes"/>
+ <point x="376" y="132"/>
+ <point x="244" y="216"/>
+ <point x="159" y="325" type="curve"/>
+ <point x="71" y="158" type="line"/>
+ <point x="160" y="60"/>
+ <point x="296" y="-25"/>
+ <point x="488" y="-25" type="curve" smooth="yes"/>
+ <point x="713" y="-25"/>
+ <point x="891" y="106"/>
+ <point x="891" y="306" type="curve" smooth="yes"/>
+ <point x="891" y="432"/>
+ <point x="774" y="515"/>
+ <point x="626" y="593" type="curve" smooth="yes"/>
+ <point x="476" y="672"/>
+ <point x="418" y="695"/>
+ <point x="418" y="753" type="curve" smooth="yes"/>
+ <point x="418" y="822"/>
+ <point x="494" y="862"/>
+ <point x="619" y="862" type="curve" smooth="yes"/>
+ <point x="743" y="862"/>
+ <point x="854" y="808"/>
+ <point x="911" y="769" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_tnS_mT_.glif b/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_tnS_mT_.glif
new file mode 100644
index 0000000..0eddfe9
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_tnS_mT_.glif
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmT" format="2">
+ <advance width="815"/>
+ <unicode hex="0074"/>
+ <anchor x="455" y="0" name="H"/>
+ <anchor x="390" y="-100" name="L"/>
+ <anchor x="1025" y="1000" name="R"/>
+ <anchor x="605" y="1360" name="U"/>
+ <outline>
+ <contour>
+ <point x="752" y="211" type="line"/>
+ <point x="665" y="169"/>
+ <point x="593" y="134"/>
+ <point x="527" y="134" type="curve" smooth="yes"/>
+ <point x="448" y="134"/>
+ <point x="425" y="188"/>
+ <point x="425" y="247" type="curve" smooth="yes"/>
+ <point x="425" y="274"/>
+ <point x="429" y="301"/>
+ <point x="434" y="326" type="curve" smooth="yes"/>
+ <point x="470" y="519"/>
+ <point x="564" y="843"/>
+ <point x="677" y="1294" type="curve"/>
+ <point x="492" y="1294" type="line"/>
+ <point x="377" y="841"/>
+ <point x="263" y="429"/>
+ <point x="243" y="301" type="curve" smooth="yes"/>
+ <point x="238" y="269"/>
+ <point x="236" y="240"/>
+ <point x="236" y="213" type="curve" smooth="yes"/>
+ <point x="236" y="41"/>
+ <point x="330" y="-25"/>
+ <point x="465" y="-25" type="curve" smooth="yes"/>
+ <point x="535" y="-25"/>
+ <point x="634" y="-6"/>
+ <point x="740" y="52" type="curve"/>
+ </contour>
+ <contour>
+ <point x="177" y="833" type="line"/>
+ <point x="887" y="833" type="line"/>
+ <point x="923" y="975" type="line"/>
+ <point x="213" y="975" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_tnS_mU_.glif b/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_tnS_mU_.glif
new file mode 100644
index 0000000..0eda3d2
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_tnS_mU_.glif
@@ -0,0 +1,57 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmU" format="2">
+ <advance width="1175"/>
+ <unicode hex="0075"/>
+ <anchor x="465" y="0" name="H"/>
+ <anchor x="504" y="-100" name="L"/>
+ <anchor x="640" y="0" name="O"/>
+ <anchor x="1375" y="1000" name="R"/>
+ <anchor x="804" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="1040" y="0" type="line"/>
+ <point x="1036" y="29"/>
+ <point x="1035" y="62"/>
+ <point x="1035" y="100" type="curve" smooth="yes"/>
+ <point x="1035" y="206"/>
+ <point x="1054" y="341"/>
+ <point x="1080" y="455" type="curve" smooth="yes"/>
+ <point x="1135" y="689"/>
+ <point x="1197" y="895"/>
+ <point x="1205" y="1000" type="curve"/>
+ <point x="1010" y="1000" type="line"/>
+ <point x="1003" y="882"/>
+ <point x="971" y="769"/>
+ <point x="920" y="565" type="curve"/>
+ <point x="827" y="376"/>
+ <point x="573" y="135"/>
+ <point x="475" y="135" type="curve" smooth="yes"/>
+ <point x="409" y="135"/>
+ <point x="365" y="181"/>
+ <point x="365" y="280" type="curve" smooth="yes"/>
+ <point x="365" y="347"/>
+ <point x="407" y="500"/>
+ <point x="459" y="702" type="curve" smooth="yes"/>
+ <point x="494" y="837"/>
+ <point x="515" y="925"/>
+ <point x="520" y="1000" type="curve"/>
+ <point x="325" y="1000" type="line"/>
+ <point x="313" y="882"/>
+ <point x="295" y="809"/>
+ <point x="265" y="685" type="curve" smooth="yes"/>
+ <point x="195" y="395" type="line" smooth="yes"/>
+ <point x="179" y="330"/>
+ <point x="170" y="275"/>
+ <point x="170" y="225" type="curve" smooth="yes"/>
+ <point x="170" y="60"/>
+ <point x="257" y="-25"/>
+ <point x="410" y="-25" type="curve" smooth="yes"/>
+ <point x="551" y="-25"/>
+ <point x="745" y="118"/>
+ <point x="880" y="305" type="curve"/>
+ <point x="861" y="196"/>
+ <point x="860" y="98"/>
+ <point x="860" y="0" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_tnS_mV_.glif b/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_tnS_mV_.glif
new file mode 100644
index 0000000..33e91d6
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_tnS_mV_.glif
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmV" format="2">
+ <advance width="941"/>
+ <unicode hex="0076"/>
+ <anchor x="359" y="0" name="H"/>
+ <anchor x="350" y="-100" name="L"/>
+ <anchor x="565" y="0" name="O"/>
+ <anchor x="650" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="180" y="1000" type="line"/>
+ <point x="232" y="825"/>
+ <point x="256" y="602"/>
+ <point x="256" y="354" type="curve" smooth="yes"/>
+ <point x="256" y="241"/>
+ <point x="251" y="122"/>
+ <point x="241" y="0" type="curve"/>
+ <point x="441" y="0" type="line"/>
+ <point x="744" y="336"/>
+ <point x="1056" y="765"/>
+ <point x="1056" y="1000" type="curve"/>
+ <point x="856" y="1000" type="line"/>
+ <point x="856" y="769"/>
+ <point x="606" y="394"/>
+ <point x="404" y="176" type="curve"/>
+ <point x="421" y="277"/>
+ <point x="429" y="402"/>
+ <point x="429" y="526" type="curve" smooth="yes"/>
+ <point x="429" y="707"/>
+ <point x="412" y="887"/>
+ <point x="380" y="1000" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_tnS_mW_.glif b/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_tnS_mW_.glif
new file mode 100644
index 0000000..1daea7c
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_tnS_mW_.glif
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmW" format="2">
+ <advance width="1555"/>
+ <unicode hex="0077"/>
+ <anchor x="690" y="-100" name="L"/>
+ <anchor x="990" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="858" y="1000" type="line"/>
+ <point x="743" y="739"/>
+ <point x="588" y="466"/>
+ <point x="388" y="181" type="curve"/>
+ <point x="417" y="339"/>
+ <point x="430" y="500"/>
+ <point x="430" y="644" type="curve" smooth="yes"/>
+ <point x="430" y="784"/>
+ <point x="418" y="908"/>
+ <point x="395" y="1000" type="curve"/>
+ <point x="195" y="1000" type="line"/>
+ <point x="234" y="873"/>
+ <point x="256" y="688"/>
+ <point x="256" y="472" type="curve" smooth="yes"/>
+ <point x="256" y="326"/>
+ <point x="246" y="166"/>
+ <point x="225" y="0" type="curve"/>
+ <point x="425" y="0" type="line"/>
+ <point x="632" y="298"/>
+ <point x="825" y="583"/>
+ <point x="896" y="765" type="curve"/>
+ <point x="920" y="478"/>
+ <point x="912" y="233"/>
+ <point x="915" y="0" type="curve"/>
+ <point x="1115" y="0" type="line"/>
+ <point x="1362" y="330"/>
+ <point x="1642" y="777"/>
+ <point x="1645" y="1000" type="curve"/>
+ <point x="1445" y="1000" type="line"/>
+ <point x="1445" y="990" type="line"/>
+ <point x="1445" y="797"/>
+ <point x="1242" y="417"/>
+ <point x="1063" y="181" type="curve"/>
+ <point x="1064" y="221"/>
+ <point x="1064" y="260"/>
+ <point x="1064" y="298" type="curve" smooth="yes"/>
+ <point x="1064" y="577"/>
+ <point x="1046" y="811"/>
+ <point x="1020" y="1000" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_tnS_mX_.glif b/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_tnS_mX_.glif
new file mode 100644
index 0000000..5508ff9
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_tnS_mX_.glif
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmX" format="2">
+ <advance width="1009"/>
+ <unicode hex="0078"/>
+ <anchor x="840" y="0" name="H"/>
+ <anchor x="457" y="-100" name="L"/>
+ <anchor x="657" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="945" y="0" type="line"/>
+ <point x="765" y="133"/>
+ <point x="558" y="867"/>
+ <point x="439" y="1000" type="curve"/>
+ <point x="181" y="1000" type="line"/>
+ <point x="410" y="832"/>
+ <point x="578" y="141"/>
+ <point x="698" y="0" type="curve"/>
+ </contour>
+ <contour>
+ <point x="504" y="572" type="line"/>
+ <point x="286" y="463"/>
+ <point x="57" y="230"/>
+ <point x="30" y="0" type="curve"/>
+ <point x="230" y="0" type="line"/>
+ <point x="231" y="156"/>
+ <point x="375" y="380"/>
+ <point x="563" y="467" type="curve"/>
+ </contour>
+ <contour>
+ <point x="659" y="471" type="line"/>
+ <point x="838" y="591"/>
+ <point x="1092" y="798"/>
+ <point x="1099" y="1000" type="curve"/>
+ <point x="889" y="1000" type="line"/>
+ <point x="883" y="842"/>
+ <point x="758" y="675"/>
+ <point x="601" y="581" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_tnS_mY_.glif b/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_tnS_mY_.glif
new file mode 100644
index 0000000..b9000c5
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/L_tnS_mY_.glif
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmY" format="2">
+ <advance width="976"/>
+ <unicode hex="0079"/>
+ <anchor x="710" y="-100" name="L"/>
+ <anchor x="1270" y="1000" name="R"/>
+ <anchor x="630" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="132" y="1000" type="line"/>
+ <point x="270" y="825"/>
+ <point x="398" y="406"/>
+ <point x="403" y="-16" type="curve"/>
+ <point x="263" y="-232"/>
+ <point x="145" y="-295"/>
+ <point x="64" y="-295" type="curve" smooth="yes"/>
+ <point x="-2" y="-295"/>
+ <point x="-69" y="-254"/>
+ <point x="-102" y="-220" type="curve"/>
+ <point x="-200" y="-377" type="line"/>
+ <point x="-141" y="-430"/>
+ <point x="-68" y="-465"/>
+ <point x="23" y="-465" type="curve" smooth="yes"/>
+ <point x="193" y="-465"/>
+ <point x="369" y="-371"/>
+ <point x="609" y="0" type="curve" smooth="yes"/>
+ <point x="877" y="414"/>
+ <point x="1056" y="808"/>
+ <point x="1056" y="964" type="curve" smooth="yes"/>
+ <point x="1056" y="978"/>
+ <point x="1055" y="990"/>
+ <point x="1052" y="1000" type="curve"/>
+ <point x="852" y="1000" type="line"/>
+ <point x="856" y="984"/>
+ <point x="858" y="967"/>
+ <point x="858" y="946" type="curve" smooth="yes"/>
+ <point x="858" y="783"/>
+ <point x="722" y="472"/>
+ <point x="548" y="189" type="curve"/>
+ <point x="548" y="484"/>
+ <point x="447" y="866"/>
+ <point x="347" y="1000" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/N_onB_reakingH_yphen.glif b/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/N_onB_reakingH_yphen.glif
new file mode 100644
index 0000000..e7d9c06
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/N_onB_reakingH_yphen.glif
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="NonBreakingHyphen" format="2">
+ <advance width="840"/>
+ <unicode hex="2011"/>
+ <anchor x="645" y="1100" name="U"/>
+ <outline>
+ <component base="HyphenMinus"/>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/N_umS_gn.glif b/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/N_umS_gn.glif
new file mode 100644
index 0000000..b7506f7
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/N_umS_gn.glif
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="NumSgn" format="2">
+ <advance width="1180"/>
+ <unicode hex="0023"/>
+ <outline>
+ <contour>
+ <point x="739" y="1333" type="line"/>
+ <point x="91" y="98" type="line"/>
+ <point x="261" y="98" type="line"/>
+ <point x="909" y="1333" type="line"/>
+ </contour>
+ <contour>
+ <point x="80" y="465" type="line"/>
+ <point x="1171" y="465" type="line"/>
+ <point x="1208" y="612" type="line"/>
+ <point x="117" y="612" type="line"/>
+ </contour>
+ <contour>
+ <point x="234" y="843" type="line"/>
+ <point x="1325" y="843" type="line"/>
+ <point x="1361" y="990" type="line"/>
+ <point x="270" y="990" type="line"/>
+ </contour>
+ <contour>
+ <point x="1164" y="1333" type="line"/>
+ <point x="516" y="98" type="line"/>
+ <point x="686" y="98" type="line"/>
+ <point x="1334" y="1333" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/P_ercentS_gn.glif b/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/P_ercentS_gn.glif
new file mode 100644
index 0000000..84241ea
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/P_ercentS_gn.glif
@@ -0,0 +1,93 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="PercentSgn" format="2">
+ <advance width="1506"/>
+ <unicode hex="0025"/>
+ <outline>
+ <contour>
+ <point x="1300" y="349" type="curve" smooth="yes"/>
+ <point x="1255" y="168"/>
+ <point x="1204" y="113"/>
+ <point x="1118" y="113" type="curve" smooth="yes"/>
+ <point x="1056" y="113"/>
+ <point x="1021" y="148"/>
+ <point x="1021" y="235" type="curve" smooth="yes"/>
+ <point x="1021" y="274"/>
+ <point x="1028" y="322"/>
+ <point x="1043" y="383" type="curve" smooth="yes"/>
+ <point x="1088" y="564"/>
+ <point x="1136" y="617"/>
+ <point x="1223" y="617" type="curve" smooth="yes"/>
+ <point x="1286" y="617"/>
+ <point x="1322" y="582"/>
+ <point x="1322" y="496" type="curve" smooth="yes"/>
+ <point x="1322" y="458"/>
+ <point x="1315" y="409"/>
+ </contour>
+ <contour>
+ <point x="1468" y="361" type="curve" smooth="yes"/>
+ <point x="1483" y="419"/>
+ <point x="1489" y="470"/>
+ <point x="1489" y="515" type="curve" smooth="yes"/>
+ <point x="1489" y="677"/>
+ <point x="1400" y="755"/>
+ <point x="1263" y="755" type="curve" smooth="yes"/>
+ <point x="1089" y="755"/>
+ <point x="945" y="647"/>
+ <point x="876" y="371" type="curve" smooth="yes"/>
+ <point x="861" y="310"/>
+ <point x="854" y="256"/>
+ <point x="854" y="210" type="curve" smooth="yes"/>
+ <point x="854" y="47"/>
+ <point x="943" y="-25"/>
+ <point x="1079" y="-25" type="curve" smooth="yes"/>
+ <point x="1254" y="-25"/>
+ <point x="1396" y="72"/>
+ </contour>
+ <contour>
+ <point x="1369" y="1450" type="line"/>
+ <point x="219" y="-25" type="line"/>
+ <point x="397" y="-25" type="line"/>
+ <point x="1545" y="1450" type="line"/>
+ </contour>
+ <contour>
+ <point x="717" y="1044" type="curve" smooth="yes"/>
+ <point x="672" y="864"/>
+ <point x="621" y="809"/>
+ <point x="535" y="809" type="curve" smooth="yes"/>
+ <point x="474" y="809"/>
+ <point x="439" y="844"/>
+ <point x="439" y="930" type="curve" smooth="yes"/>
+ <point x="439" y="969"/>
+ <point x="446" y="1018"/>
+ <point x="461" y="1079" type="curve" smooth="yes"/>
+ <point x="506" y="1260"/>
+ <point x="554" y="1313"/>
+ <point x="641" y="1313" type="curve" smooth="yes"/>
+ <point x="704" y="1313"/>
+ <point x="739" y="1278"/>
+ <point x="739" y="1192" type="curve" smooth="yes"/>
+ <point x="739" y="1153"/>
+ <point x="732" y="1105"/>
+ </contour>
+ <contour>
+ <point x="886" y="1057" type="curve" smooth="yes"/>
+ <point x="900" y="1114"/>
+ <point x="907" y="1166"/>
+ <point x="907" y="1210" type="curve" smooth="yes"/>
+ <point x="907" y="1373"/>
+ <point x="817" y="1450"/>
+ <point x="680" y="1450" type="curve" smooth="yes"/>
+ <point x="506" y="1450"/>
+ <point x="362" y="1343"/>
+ <point x="293" y="1066" type="curve" smooth="yes"/>
+ <point x="278" y="1005"/>
+ <point x="271" y="952"/>
+ <point x="271" y="906" type="curve" smooth="yes"/>
+ <point x="271" y="743"/>
+ <point x="360" y="671"/>
+ <point x="497" y="671" type="curve" smooth="yes"/>
+ <point x="672" y="671"/>
+ <point x="813" y="768"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/P_lusS_gn.glif b/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/P_lusS_gn.glif
new file mode 100644
index 0000000..8c4577e
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/P_lusS_gn.glif
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="PlusSgn" format="2">
+ <advance width="1180"/>
+ <unicode hex="002B"/>
+ <outline>
+ <contour>
+ <point x="748" y="1156" type="line"/>
+ <point x="529" y="279" type="line"/>
+ <point x="684" y="279" type="line"/>
+ <point x="903" y="1156" type="line"/>
+ </contour>
+ <contour>
+ <point x="256" y="647" type="line"/>
+ <point x="1146" y="647" type="line"/>
+ <point x="1182" y="794" type="line"/>
+ <point x="292" y="794" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/Q_stnM_rk.glif b/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/Q_stnM_rk.glif
new file mode 100644
index 0000000..8b14a6c
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/Q_stnM_rk.glif
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="QstnMrk" format="2">
+ <advance width="1030"/>
+ <unicode hex="003F"/>
+ <outline>
+ <contour>
+ <point x="419" y="1226" type="line"/>
+ <point x="514" y="1303"/>
+ <point x="615" y="1338"/>
+ <point x="685" y="1338" type="curve" smooth="yes"/>
+ <point x="800" y="1338"/>
+ <point x="858" y="1294"/>
+ <point x="858" y="1222" type="curve" smooth="yes"/>
+ <point x="858" y="1122"/>
+ <point x="713" y="1017"/>
+ <point x="654" y="960" type="curve" smooth="yes"/>
+ <point x="538" y="850"/>
+ <point x="473" y="715"/>
+ <point x="402" y="431" type="curve"/>
+ <point x="587" y="431" type="line"/>
+ <point x="656" y="707"/>
+ <point x="697" y="778"/>
+ <point x="831" y="901" type="curve" smooth="yes"/>
+ <point x="949" y="1010"/>
+ <point x="1072" y="1146"/>
+ <point x="1072" y="1272" type="curve" smooth="yes"/>
+ <point x="1072" y="1409"/>
+ <point x="947" y="1509"/>
+ <point x="746" y="1509" type="curve" smooth="yes"/>
+ <point x="631" y="1509"/>
+ <point x="500" y="1463"/>
+ <point x="419" y="1401" type="curve"/>
+ </contour>
+ <contour>
+ <point x="278" y="90" type="curve" smooth="yes"/>
+ <point x="278" y="28"/>
+ <point x="328" y="-25"/>
+ <point x="393" y="-25" type="curve" smooth="yes"/>
+ <point x="477" y="-25"/>
+ <point x="554" y="45"/>
+ <point x="554" y="125" type="curve" smooth="yes"/>
+ <point x="554" y="186"/>
+ <point x="504" y="240"/>
+ <point x="439" y="240" type="curve" smooth="yes"/>
+ <point x="355" y="240"/>
+ <point x="278" y="170"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/Q_uotM_rk.glif b/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/Q_uotM_rk.glif
new file mode 100644
index 0000000..4a8357b
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/Q_uotM_rk.glif
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="QuotMrk" format="2">
+ <advance width="1005"/>
+ <unicode hex="0022"/>
+ <outline>
+ <contour>
+ <point x="600" y="1024" type="line"/>
+ <point x="639" y="1162"/>
+ <point x="683" y="1312"/>
+ <point x="772" y="1553" type="curve"/>
+ <point x="567" y="1553" type="line"/>
+ <point x="538" y="1312"/>
+ <point x="505" y="1162"/>
+ <point x="475" y="1024" type="curve"/>
+ </contour>
+ <contour>
+ <point x="940" y="1024" type="line"/>
+ <point x="979" y="1162"/>
+ <point x="1023" y="1312"/>
+ <point x="1112" y="1553" type="curve"/>
+ <point x="907" y="1553" type="line"/>
+ <point x="878" y="1312"/>
+ <point x="845" y="1162"/>
+ <point x="815" y="1024" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/R_everseS_olidus.glif b/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/R_everseS_olidus.glif
new file mode 100644
index 0000000..f146267
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/R_everseS_olidus.glif
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="ReverseSolidus" format="2">
+ <advance width="1005"/>
+ <unicode hex="005C"/>
+ <outline>
+ <contour>
+ <point x="473" y="1538" type="line"/>
+ <point x="656" y="-123" type="line"/>
+ <point x="799" y="-93" type="line"/>
+ <point x="620" y="1568" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/R_tC_urlyB_rac.glif b/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/R_tC_urlyB_rac.glif
new file mode 100644
index 0000000..82df531
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/R_tC_urlyB_rac.glif
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="RtCurlyBrac" format="2">
+ <advance width="980"/>
+ <unicode hex="007D"/>
+ <outline>
+ <contour>
+ <point x="466" y="1470" type="line"/>
+ <point x="513" y="1452"/>
+ <point x="653" y="1397"/>
+ <point x="653" y="1366" type="curve" smooth="yes"/>
+ <point x="653" y="1238"/>
+ <point x="531" y="801"/>
+ <point x="531" y="737" type="curve" smooth="yes"/>
+ <point x="531" y="701"/>
+ <point x="660" y="627"/>
+ <point x="660" y="603" type="curve" smooth="yes"/>
+ <point x="660" y="585"/>
+ <point x="496" y="511"/>
+ <point x="468" y="475" type="curve" smooth="yes"/>
+ <point x="439" y="438"/>
+ <point x="312" y="-121"/>
+ <point x="268" y="-167" type="curve" smooth="yes"/>
+ <point x="241" y="-194"/>
+ <point x="106" y="-242"/>
+ <point x="33" y="-265" type="curve"/>
+ <point x="39" y="-402" type="line"/>
+ <point x="150" y="-375"/>
+ <point x="324" y="-323"/>
+ <point x="375" y="-279" type="curve" smooth="yes"/>
+ <point x="465" y="-201"/>
+ <point x="608" y="410"/>
+ <point x="639" y="441" type="curve" smooth="yes"/>
+ <point x="675" y="476"/>
+ <point x="880" y="571"/>
+ <point x="880" y="607" type="curve" smooth="yes"/>
+ <point x="880" y="639"/>
+ <point x="719" y="740"/>
+ <point x="719" y="771" type="curve" smooth="yes"/>
+ <point x="719" y="839"/>
+ <point x="825" y="1259"/>
+ <point x="825" y="1425" type="curve" smooth="yes"/>
+ <point x="825" y="1453"/>
+ <point x="822" y="1474"/>
+ <point x="815" y="1485" type="curve" smooth="yes"/>
+ <point x="786" y="1529"/>
+ <point x="638" y="1581"/>
+ <point x="540" y="1607" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/R_tP_aren.glif b/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/R_tP_aren.glif
new file mode 100644
index 0000000..3950e09
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/R_tP_aren.glif
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="RtParen" format="2">
+ <advance width="775"/>
+ <unicode hex="0029"/>
+ <outline>
+ <contour>
+ <point x="467" y="1455" type="line"/>
+ <point x="578" y="1327"/>
+ <point x="628" y="1146"/>
+ <point x="628" y="946" type="curve" smooth="yes"/>
+ <point x="628" y="832"/>
+ <point x="612" y="713"/>
+ <point x="582" y="593" type="curve" smooth="yes"/>
+ <point x="497" y="252"/>
+ <point x="328" y="-8"/>
+ <point x="40" y="-260" type="curve"/>
+ <point x="99" y="-402" type="line"/>
+ <point x="444" y="-123"/>
+ <point x="673" y="194"/>
+ <point x="772" y="593" type="curve" smooth="yes"/>
+ <point x="804" y="719"/>
+ <point x="819" y="843"/>
+ <point x="819" y="959" type="curve" smooth="yes"/>
+ <point x="819" y="1236"/>
+ <point x="733" y="1472"/>
+ <point x="580" y="1607" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/R_tS_qrB_rac.glif b/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/R_tS_qrB_rac.glif
new file mode 100644
index 0000000..4c13a82
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/R_tS_qrB_rac.glif
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="RtSqrBrac" format="2">
+ <advance width="770"/>
+ <unicode hex="005D"/>
+ <outline>
+ <contour>
+ <point x="434" y="-402" type="line"/>
+ <point x="920" y="1568" type="line"/>
+ <point x="480" y="1568" type="line"/>
+ <point x="444" y="1421" type="line"/>
+ <point x="699" y="1421" type="line"/>
+ <point x="286" y="-255" type="line"/>
+ <point x="31" y="-255" type="line"/>
+ <point x="-6" y="-402" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/S_emicolon.glif b/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/S_emicolon.glif
new file mode 100644
index 0000000..be971ac
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/S_emicolon.glif
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Semicolon" format="2">
+ <advance width="630"/>
+ <unicode hex="003B"/>
+ <outline>
+ <contour>
+ <point x="314" y="758" type="curve" smooth="yes"/>
+ <point x="314" y="696"/>
+ <point x="365" y="642"/>
+ <point x="430" y="642" type="curve" smooth="yes"/>
+ <point x="514" y="642"/>
+ <point x="590" y="712"/>
+ <point x="590" y="792" type="curve" smooth="yes"/>
+ <point x="590" y="854"/>
+ <point x="540" y="907"/>
+ <point x="476" y="907" type="curve" smooth="yes"/>
+ <point x="393" y="907"/>
+ <point x="314" y="837"/>
+ </contour>
+ <contour>
+ <point x="137" y="49" type="line"/>
+ <point x="277" y="49" type="line"/>
+ <point x="252" y="-50"/>
+ <point x="145" y="-169"/>
+ <point x="73" y="-225" type="curve"/>
+ <point x="163" y="-265" type="line"/>
+ <point x="280" y="-175"/>
+ <point x="431" y="-28"/>
+ <point x="431" y="118" type="curve" smooth="yes"/>
+ <point x="431" y="193"/>
+ <point x="378" y="245"/>
+ <point x="311" y="245" type="curve" smooth="yes"/>
+ <point x="254" y="245"/>
+ <point x="190" y="209"/>
+ <point x="161" y="147" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/S_olidus.glif b/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/S_olidus.glif
new file mode 100644
index 0000000..589697b
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/S_olidus.glif
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Solidus" format="2">
+ <advance width="980"/>
+ <unicode hex="002F"/>
+ <outline>
+ <contour>
+ <point x="1160" y="1568" type="line"/>
+ <point x="-119" y="-240" type="line"/>
+ <point x="50" y="-240" type="line"/>
+ <point x="1330" y="1568" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/S_pace.glif b/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/S_pace.glif
new file mode 100644
index 0000000..c49f0f2
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/S_pace.glif
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Space" format="2">
+ <advance width="530"/>
+ <unicode hex="0020"/>
+ <outline/>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/T_ilde.glif b/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/T_ilde.glif
new file mode 100644
index 0000000..bf260b8
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/T_ilde.glif
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Tilde" format="2">
+ <advance width="1095"/>
+ <unicode hex="007E"/>
+ <outline>
+ <contour>
+ <point x="156" y="368" type="line"/>
+ <point x="173" y="416"/>
+ <point x="215" y="456"/>
+ <point x="293" y="456" type="curve" smooth="yes"/>
+ <point x="468" y="456"/>
+ <point x="643" y="353"/>
+ <point x="873" y="353" type="curve" smooth="yes"/>
+ <point x="1032" y="353"/>
+ <point x="1137" y="472"/>
+ <point x="1169" y="598" type="curve"/>
+ <point x="1064" y="598" type="line"/>
+ <point x="1045" y="553"/>
+ <point x="1002" y="500"/>
+ <point x="919" y="500" type="curve" smooth="yes"/>
+ <point x="683" y="500"/>
+ <point x="551" y="603"/>
+ <point x="330" y="603" type="curve" smooth="yes"/>
+ <point x="184" y="603"/>
+ <point x="81" y="487"/>
+ <point x="51" y="368" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/V_ertL_ine.glif b/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/V_ertL_ine.glif
new file mode 100644
index 0000000..445d622
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/V_ertL_ine.glif
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="VertLine" format="2">
+ <advance width="670"/>
+ <unicode hex="007C"/>
+ <outline>
+ <contour>
+ <point x="602" y="1578" type="line"/>
+ <point x="112" y="-392" type="line"/>
+ <point x="262" y="-392" type="line"/>
+ <point x="752" y="1578" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/_notdef.glif b/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/_notdef.glif
new file mode 100644
index 0000000..a3e9354
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/_notdef.glif
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name=".notdef" format="2">
+ <advance width="1400"/>
+ <outline>
+ <contour>
+ <point x="100" y="0" type="line"/>
+ <point x="1300" y="0" type="line"/>
+ <point x="1300" y="1800" type="line"/>
+ <point x="100" y="1800" type="line"/>
+ </contour>
+ <contour>
+ <point x="150" y="1750" type="line"/>
+ <point x="1250" y="1750" type="line"/>
+ <point x="1250" y="50" type="line"/>
+ <point x="150" y="50" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/_null.glif b/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/_null.glif
new file mode 100644
index 0000000..0b9caa6
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/_null.glif
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name=".null" format="2">
+ <outline/>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/contents.plist b/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/contents.plist
new file mode 100644
index 0000000..ad2aa41
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/contents.plist
@@ -0,0 +1,232 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>.notdef</key>
+ <string>_notdef.glif</string>
+ <key>.null</key>
+ <string>_null.glif</string>
+ <key>Ampersand</key>
+ <string>A_mpersand.glif</string>
+ <key>Apos</key>
+ <string>A_pos.glif</string>
+ <key>Asterisk</key>
+ <string>A_sterisk.glif</string>
+ <key>AtSgn</key>
+ <string>A_tS_gn.glif</string>
+ <key>CircumAccent</key>
+ <string>C_ircumA_ccent.glif</string>
+ <key>Colon</key>
+ <string>C_olon.glif</string>
+ <key>CombAcute</key>
+ <string>C_ombA_cute.glif</string>
+ <key>CombCircum</key>
+ <string>C_ombC_ircum.glif</string>
+ <key>CombDiaer</key>
+ <string>C_ombD_iaer.glif</string>
+ <key>CombGrave</key>
+ <string>C_ombG_rave.glif</string>
+ <key>CombRingAbv</key>
+ <string>C_ombR_ingA_bv.glif</string>
+ <key>CombTilde</key>
+ <string>C_ombT_ilde.glif</string>
+ <key>Comma</key>
+ <string>C_omma.glif</string>
+ <key>DigitEight</key>
+ <string>D_igitE_ight.glif</string>
+ <key>DigitFive</key>
+ <string>D_igitF_ive.glif</string>
+ <key>DigitFour</key>
+ <string>D_igitF_our.glif</string>
+ <key>DigitNine</key>
+ <string>D_igitN_ine.glif</string>
+ <key>DigitOne</key>
+ <string>D_igitO_ne.glif</string>
+ <key>DigitSeven</key>
+ <string>D_igitS_even.glif</string>
+ <key>DigitSix</key>
+ <string>D_igitS_ix.glif</string>
+ <key>DigitThree</key>
+ <string>D_igitT_hree.glif</string>
+ <key>DigitTwo</key>
+ <string>D_igitT_wo.glif</string>
+ <key>DigitZero</key>
+ <string>D_igitZ_ero.glif</string>
+ <key>DollarSgn</key>
+ <string>D_ollarS_gn.glif</string>
+ <key>DottedCirc</key>
+ <string>D_ottedC_irc.glif</string>
+ <key>EqSgn</key>
+ <string>E_qS_gn.glif</string>
+ <key>ExclamationMrk</key>
+ <string>E_xclamationM_rk.glif</string>
+ <key>FullStop</key>
+ <string>F_ullS_top.glif</string>
+ <key>GTSgn</key>
+ <string>G_T_S_gn.glif</string>
+ <key>GraveAccent</key>
+ <string>G_raveA_ccent.glif</string>
+ <key>Hyphen</key>
+ <string>H_yphen.glif</string>
+ <key>HyphenMinus</key>
+ <string>H_yphenM_inus.glif</string>
+ <key>Hyphen_Soft</key>
+ <string>H_yphen_S_oft.glif</string>
+ <key>LTSgn</key>
+ <string>L_T_S_gn.glif</string>
+ <key>LftCurlyBrac</key>
+ <string>L_ftC_urlyB_rac.glif</string>
+ <key>LftParen</key>
+ <string>L_ftP_aren.glif</string>
+ <key>LftSqrBrac</key>
+ <string>L_ftS_qrB_rac.glif</string>
+ <key>LowLine</key>
+ <string>L_owL_ine.glif</string>
+ <key>LtnCapA</key>
+ <string>L_tnC_apA_.glif</string>
+ <key>LtnCapADiaer</key>
+ <string>L_tnC_apA_D_iaer.glif</string>
+ <key>LtnCapB</key>
+ <string>L_tnC_apB_.glif</string>
+ <key>LtnCapC</key>
+ <string>L_tnC_apC_.glif</string>
+ <key>LtnCapD</key>
+ <string>L_tnC_apD_.glif</string>
+ <key>LtnCapE</key>
+ <string>L_tnC_apE_.glif</string>
+ <key>LtnCapF</key>
+ <string>L_tnC_apF_.glif</string>
+ <key>LtnCapG</key>
+ <string>L_tnC_apG_.glif</string>
+ <key>LtnCapH</key>
+ <string>L_tnC_apH_.glif</string>
+ <key>LtnCapI</key>
+ <string>L_tnC_apI_.glif</string>
+ <key>LtnCapJ</key>
+ <string>L_tnC_apJ_.glif</string>
+ <key>LtnCapK</key>
+ <string>L_tnC_apK_.glif</string>
+ <key>LtnCapL</key>
+ <string>L_tnC_apL_.glif</string>
+ <key>LtnCapM</key>
+ <string>L_tnC_apM_.glif</string>
+ <key>LtnCapN</key>
+ <string>L_tnC_apN_.glif</string>
+ <key>LtnCapO</key>
+ <string>L_tnC_apO_.glif</string>
+ <key>LtnCapP</key>
+ <string>L_tnC_apP_.glif</string>
+ <key>LtnCapQ</key>
+ <string>L_tnC_apQ_.glif</string>
+ <key>LtnCapR</key>
+ <string>L_tnC_apR_.glif</string>
+ <key>LtnCapS</key>
+ <string>L_tnC_apS_.glif</string>
+ <key>LtnCapT</key>
+ <string>L_tnC_apT_.glif</string>
+ <key>LtnCapU</key>
+ <string>L_tnC_apU_.glif</string>
+ <key>LtnCapV</key>
+ <string>L_tnC_apV_.glif</string>
+ <key>LtnCapW</key>
+ <string>L_tnC_apW_.glif</string>
+ <key>LtnCapX</key>
+ <string>L_tnC_apX_.glif</string>
+ <key>LtnCapY</key>
+ <string>L_tnC_apY_.glif</string>
+ <key>LtnSmA</key>
+ <string>L_tnS_mA_.glif</string>
+ <key>LtnSmAAcute</key>
+ <string>L_tnS_mA_A_cute.glif</string>
+ <key>LtnSmACircum</key>
+ <string>L_tnS_mA_C_ircum.glif</string>
+ <key>LtnSmADiaer</key>
+ <string>L_tnS_mA_D_iaer.glif</string>
+ <key>LtnSmAGrave</key>
+ <string>L_tnS_mA_G_rave.glif</string>
+ <key>LtnSmARingAbv</key>
+ <string>L_tnS_mA_R_ingA_bv.glif</string>
+ <key>LtnSmATilde</key>
+ <string>L_tnS_mA_T_ilde.glif</string>
+ <key>LtnSmB</key>
+ <string>L_tnS_mB_.glif</string>
+ <key>LtnSmC</key>
+ <string>L_tnS_mC_.glif</string>
+ <key>LtnSmD</key>
+ <string>L_tnS_mD_.glif</string>
+ <key>LtnSmE</key>
+ <string>L_tnS_mE_.glif</string>
+ <key>LtnSmF</key>
+ <string>L_tnS_mF_.glif</string>
+ <key>LtnSmG</key>
+ <string>L_tnS_mG_.glif</string>
+ <key>LtnSmH</key>
+ <string>L_tnS_mH_.glif</string>
+ <key>LtnSmI</key>
+ <string>L_tnS_mI_.glif</string>
+ <key>LtnSmJ</key>
+ <string>L_tnS_mJ_.glif</string>
+ <key>LtnSmK</key>
+ <string>L_tnS_mK_.glif</string>
+ <key>LtnSmL</key>
+ <string>L_tnS_mL_.glif</string>
+ <key>LtnSmM</key>
+ <string>L_tnS_mM_.glif</string>
+ <key>LtnSmN</key>
+ <string>L_tnS_mN_.glif</string>
+ <key>LtnSmO</key>
+ <string>L_tnS_mO_.glif</string>
+ <key>LtnSmP</key>
+ <string>L_tnS_mP_.glif</string>
+ <key>LtnSmQ</key>
+ <string>L_tnS_mQ_.glif</string>
+ <key>LtnSmR</key>
+ <string>L_tnS_mR_.glif</string>
+ <key>LtnSmS</key>
+ <string>L_tnS_mS_.glif</string>
+ <key>LtnSmT</key>
+ <string>L_tnS_mT_.glif</string>
+ <key>LtnSmU</key>
+ <string>L_tnS_mU_.glif</string>
+ <key>LtnSmV</key>
+ <string>L_tnS_mV_.glif</string>
+ <key>LtnSmW</key>
+ <string>L_tnS_mW_.glif</string>
+ <key>LtnSmX</key>
+ <string>L_tnS_mX_.glif</string>
+ <key>LtnSmY</key>
+ <string>L_tnS_mY_.glif</string>
+ <key>NonBreakingHyphen</key>
+ <string>N_onB_reakingH_yphen.glif</string>
+ <key>NumSgn</key>
+ <string>N_umS_gn.glif</string>
+ <key>PercentSgn</key>
+ <string>P_ercentS_gn.glif</string>
+ <key>PlusSgn</key>
+ <string>P_lusS_gn.glif</string>
+ <key>QstnMrk</key>
+ <string>Q_stnM_rk.glif</string>
+ <key>QuotMrk</key>
+ <string>Q_uotM_rk.glif</string>
+ <key>ReverseSolidus</key>
+ <string>R_everseS_olidus.glif</string>
+ <key>RtCurlyBrac</key>
+ <string>R_tC_urlyB_rac.glif</string>
+ <key>RtParen</key>
+ <string>R_tP_aren.glif</string>
+ <key>RtSqrBrac</key>
+ <string>R_tS_qrB_rac.glif</string>
+ <key>Semicolon</key>
+ <string>S_emicolon.glif</string>
+ <key>Solidus</key>
+ <string>S_olidus.glif</string>
+ <key>Space</key>
+ <string>S_pace.glif</string>
+ <key>Tilde</key>
+ <string>T_ilde.glif</string>
+ <key>VertLine</key>
+ <string>V_ertL_ine.glif</string>
+ <key>nonmarkingreturn</key>
+ <string>nonmarkingreturn.glif</string>
+</dict>
+</plist>
diff --git a/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/nonmarkingreturn.glif b/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/nonmarkingreturn.glif
new file mode 100644
index 0000000..9a63f06
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Italic.ufo/glyphs/nonmarkingreturn.glif
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="nonmarkingreturn" format="2">
+ <advance width="1004"/>
+ <outline/>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Italic.ufo/layercontents.plist b/tests/input/font-psf-test/source/PsfTest-Italic.ufo/layercontents.plist
new file mode 100644
index 0000000..42b7482
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Italic.ufo/layercontents.plist
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<array>
+ <array>
+ <string>public.default</string>
+ <string>glyphs</string>
+ </array>
+</array>
+</plist>
diff --git a/tests/input/font-psf-test/source/PsfTest-Italic.ufo/lib.plist b/tests/input/font-psf-test/source/PsfTest-Italic.ufo/lib.plist
new file mode 100644
index 0000000..43413a8
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Italic.ufo/lib.plist
@@ -0,0 +1,538 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>com.schriftgestaltung.Glyphs.fontUserData</key>
+ <dict/>
+ <key>com.schriftgestaltung.appVersion</key>
+ <string>1161</string>
+ <key>com.schriftgestaltung.customName</key>
+ <string>Italic</string>
+ <key>com.schriftgestaltung.customParameter.GSFont.DisplayStrings</key>
+ <string/>
+ <key>com.schriftgestaltung.customParameter.GSFont.disablesAutomaticAlignment</key>
+ <true/>
+ <key>com.schriftgestaltung.customParameter.GSFont.disablesLastChange</key>
+ <true/>
+ <key>com.schriftgestaltung.customParameter.GSFont.useNiceNames</key>
+ <integer>0</integer>
+ <key>com.schriftgestaltung.customParameter.GSFontMaster.customValue</key>
+ <integer>0</integer>
+ <key>com.schriftgestaltung.customParameter.GSFontMaster.customValue1</key>
+ <integer>0</integer>
+ <key>com.schriftgestaltung.customParameter.GSFontMaster.customValue2</key>
+ <integer>0</integer>
+ <key>com.schriftgestaltung.customParameter.GSFontMaster.customValue3</key>
+ <integer>0</integer>
+ <key>com.schriftgestaltung.customParameter.GSFontMaster.iconName</key>
+ <string/>
+ <key>com.schriftgestaltung.customParameter.GSFontMaster.weightValue</key>
+ <integer>400</integer>
+ <key>com.schriftgestaltung.customParameter.GSFontMaster.widthValue</key>
+ <integer>100</integer>
+ <key>com.schriftgestaltung.disablesAutomaticAlignment</key>
+ <true/>
+ <key>com.schriftgestaltung.disablesLastChange</key>
+ <true/>
+ <key>com.schriftgestaltung.fontMasterOrder</key>
+ <integer>0</integer>
+ <key>com.schriftgestaltung.glyphOrder</key>
+ <array>
+ <string>.notdef</string>
+ <string>.null</string>
+ <string>nonmarkingreturn</string>
+ <string>Space</string>
+ <string>ExclamationMrk</string>
+ <string>QuotMrk</string>
+ <string>NumSgn</string>
+ <string>DollarSgn</string>
+ <string>PercentSgn</string>
+ <string>Ampersand</string>
+ <string>Apos</string>
+ <string>LftParen</string>
+ <string>RtParen</string>
+ <string>Asterisk</string>
+ <string>PlusSgn</string>
+ <string>Comma</string>
+ <string>HyphenMinus</string>
+ <string>FullStop</string>
+ <string>Solidus</string>
+ <string>DigitZero</string>
+ <string>DigitOne</string>
+ <string>DigitTwo</string>
+ <string>DigitThree</string>
+ <string>DigitFour</string>
+ <string>DigitFive</string>
+ <string>DigitSix</string>
+ <string>DigitSeven</string>
+ <string>DigitEight</string>
+ <string>DigitNine</string>
+ <string>Colon</string>
+ <string>Semicolon</string>
+ <string>LTSgn</string>
+ <string>EqSgn</string>
+ <string>GTSgn</string>
+ <string>QstnMrk</string>
+ <string>AtSgn</string>
+ <string>LtnCapA</string>
+ <string>LtnCapA.alt</string>
+ <string>LtnCapB</string>
+ <string>LtnCapC</string>
+ <string>LtnCapD</string>
+ <string>LtnCapE</string>
+ <string>LtnCapF</string>
+ <string>LtnCapG</string>
+ <string>LtnCapH</string>
+ <string>LtnCapI</string>
+ <string>LtnCapJ</string>
+ <string>LtnCapK</string>
+ <string>LtnCapL</string>
+ <string>LtnCapM</string>
+ <string>LtnCapN</string>
+ <string>LtnCapO</string>
+ <string>LtnCapP</string>
+ <string>LtnCapQ</string>
+ <string>LtnCapR</string>
+ <string>LtnCapS</string>
+ <string>LtnCapT</string>
+ <string>LtnCapU</string>
+ <string>LtnCapV</string>
+ <string>LtnCapW</string>
+ <string>LtnCapX</string>
+ <string>LtnCapY</string>
+ <string>LftSqrBrac</string>
+ <string>ReverseSolidus</string>
+ <string>RtSqrBrac</string>
+ <string>CircumAccent</string>
+ <string>LowLine</string>
+ <string>GraveAccent</string>
+ <string>LtnSmA</string>
+ <string>LtnSmB</string>
+ <string>LtnSmC</string>
+ <string>LtnSmD</string>
+ <string>LtnSmE</string>
+ <string>LtnSmF</string>
+ <string>LtnSmG</string>
+ <string>LtnSmH</string>
+ <string>LtnSmI</string>
+ <string>LtnSmJ</string>
+ <string>LtnSmK</string>
+ <string>LtnSmL</string>
+ <string>LtnSmM</string>
+ <string>LtnSmN</string>
+ <string>LtnSmO</string>
+ <string>LtnSmP</string>
+ <string>LtnSmQ</string>
+ <string>LtnSmR</string>
+ <string>LtnSmS</string>
+ <string>LtnSmT</string>
+ <string>LtnSmU</string>
+ <string>LtnSmV</string>
+ <string>LtnSmW</string>
+ <string>LtnSmX</string>
+ <string>LtnSmY</string>
+ <string>LftCurlyBrac</string>
+ <string>VertLine</string>
+ <string>RtCurlyBrac</string>
+ <string>Tilde</string>
+ <string>LtnCapADiaer</string>
+ <string>LtnSmAAcute</string>
+ <string>LtnSmAGrave</string>
+ <string>LtnSmACircum</string>
+ <string>LtnSmADiaer</string>
+ <string>LtnSmATilde</string>
+ <string>LtnSmARingAbv</string>
+ <string>DottedCirc</string>
+ <string>Hyphen</string>
+ <string>NonBreakingHyphen</string>
+ <string>Hyphen_Soft</string>
+ <string>CombAcute</string>
+ <string>CombGrave</string>
+ <string>CombCircum</string>
+ <string>CombTilde</string>
+ <string>CombDiaer</string>
+ <string>CombRingAbv</string>
+ </array>
+ <key>com.schriftgestaltung.keyboardIncrement</key>
+ <integer>1</integer>
+ <key>com.schriftgestaltung.weight</key>
+ <string>Regular</string>
+ <key>com.schriftgestaltung.weightValue</key>
+ <integer>400</integer>
+ <key>com.schriftgestaltung.width</key>
+ <string>Regular</string>
+ <key>com.schriftgestaltung.widthValue</key>
+ <integer>100</integer>
+ <key>org.sil.lcg.toneLetters</key>
+ <dict>
+ <key>contourWidth</key>
+ <integer>480</integer>
+ <key>dotSize</key>
+ <integer>180</integer>
+ <key>dotSpacing</key>
+ <integer>200</integer>
+ <key>glyphDepth</key>
+ <integer>-25</integer>
+ <key>glyphHeight</key>
+ <integer>1600</integer>
+ <key>italicAngle</key>
+ <integer>14</integer>
+ <key>marginDotLeft</key>
+ <integer>120</integer>
+ <key>marginDotRight</key>
+ <integer>160</integer>
+ <key>marginFlatLeft</key>
+ <integer>120</integer>
+ <key>marginFlatRight</key>
+ <integer>160</integer>
+ <key>marginPointLeft</key>
+ <integer>100</integer>
+ <key>marginPointRight</key>
+ <integer>140</integer>
+ <key>strokeThickness</key>
+ <integer>120</integer>
+ </dict>
+ <key>public.glyphOrder</key>
+ <array>
+ <string>.notdef</string>
+ <string>.null</string>
+ <string>nonmarkingreturn</string>
+ <string>Space</string>
+ <string>ExclamationMrk</string>
+ <string>QuotMrk</string>
+ <string>NumSgn</string>
+ <string>DollarSgn</string>
+ <string>PercentSgn</string>
+ <string>Ampersand</string>
+ <string>Apos</string>
+ <string>LftParen</string>
+ <string>RtParen</string>
+ <string>Asterisk</string>
+ <string>PlusSgn</string>
+ <string>Comma</string>
+ <string>HyphenMinus</string>
+ <string>FullStop</string>
+ <string>Solidus</string>
+ <string>DigitZero</string>
+ <string>DigitOne</string>
+ <string>DigitTwo</string>
+ <string>DigitThree</string>
+ <string>DigitFour</string>
+ <string>DigitFive</string>
+ <string>DigitSix</string>
+ <string>DigitSeven</string>
+ <string>DigitEight</string>
+ <string>DigitNine</string>
+ <string>Colon</string>
+ <string>Semicolon</string>
+ <string>LTSgn</string>
+ <string>EqSgn</string>
+ <string>GTSgn</string>
+ <string>QstnMrk</string>
+ <string>AtSgn</string>
+ <string>LtnCapA</string>
+ <string>LtnCapA.alt</string>
+ <string>LtnCapB</string>
+ <string>LtnCapC</string>
+ <string>LtnCapD</string>
+ <string>LtnCapE</string>
+ <string>LtnCapF</string>
+ <string>LtnCapG</string>
+ <string>LtnCapH</string>
+ <string>LtnCapI</string>
+ <string>LtnCapJ</string>
+ <string>LtnCapK</string>
+ <string>LtnCapL</string>
+ <string>LtnCapM</string>
+ <string>LtnCapN</string>
+ <string>LtnCapO</string>
+ <string>LtnCapP</string>
+ <string>LtnCapQ</string>
+ <string>LtnCapR</string>
+ <string>LtnCapS</string>
+ <string>LtnCapT</string>
+ <string>LtnCapU</string>
+ <string>LtnCapV</string>
+ <string>LtnCapW</string>
+ <string>LtnCapX</string>
+ <string>LtnCapY</string>
+ <string>LftSqrBrac</string>
+ <string>ReverseSolidus</string>
+ <string>RtSqrBrac</string>
+ <string>CircumAccent</string>
+ <string>LowLine</string>
+ <string>GraveAccent</string>
+ <string>LtnSmA</string>
+ <string>LtnSmB</string>
+ <string>LtnSmC</string>
+ <string>LtnSmD</string>
+ <string>LtnSmE</string>
+ <string>LtnSmF</string>
+ <string>LtnSmG</string>
+ <string>LtnSmH</string>
+ <string>LtnSmI</string>
+ <string>LtnSmJ</string>
+ <string>LtnSmK</string>
+ <string>LtnSmL</string>
+ <string>LtnSmM</string>
+ <string>LtnSmN</string>
+ <string>LtnSmO</string>
+ <string>LtnSmP</string>
+ <string>LtnSmQ</string>
+ <string>LtnSmR</string>
+ <string>LtnSmS</string>
+ <string>LtnSmT</string>
+ <string>LtnSmU</string>
+ <string>LtnSmV</string>
+ <string>LtnSmW</string>
+ <string>LtnSmX</string>
+ <string>LtnSmY</string>
+ <string>LftCurlyBrac</string>
+ <string>VertLine</string>
+ <string>RtCurlyBrac</string>
+ <string>Tilde</string>
+ <string>LtnCapADiaer</string>
+ <string>LtnSmAAcute</string>
+ <string>LtnSmAGrave</string>
+ <string>LtnSmACircum</string>
+ <string>LtnSmADiaer</string>
+ <string>LtnSmATilde</string>
+ <string>LtnSmARingAbv</string>
+ <string>DottedCirc</string>
+ <string>Hyphen</string>
+ <string>NonBreakingHyphen</string>
+ <string>Hyphen_Soft</string>
+ <string>CombAcute</string>
+ <string>CombGrave</string>
+ <string>CombCircum</string>
+ <string>CombTilde</string>
+ <string>CombDiaer</string>
+ <string>CombRingAbv</string>
+ </array>
+ <key>public.postscriptNames</key>
+ <dict>
+ <key>Ampersand</key>
+ <string>ampersand</string>
+ <key>Apos</key>
+ <string>quotesingle</string>
+ <key>Asterisk</key>
+ <string>asterisk</string>
+ <key>AtSgn</key>
+ <string>at</string>
+ <key>CircumAccent</key>
+ <string>asciicircum</string>
+ <key>Colon</key>
+ <string>colon</string>
+ <key>CombAcute</key>
+ <string>acutecomb</string>
+ <key>CombCircum</key>
+ <string>uni0302</string>
+ <key>CombDiaer</key>
+ <string>uni0308</string>
+ <key>CombGrave</key>
+ <string>gravecomb</string>
+ <key>CombRingAbv</key>
+ <string>uni030A</string>
+ <key>CombTilde</key>
+ <string>tildecomb</string>
+ <key>Comma</key>
+ <string>comma</string>
+ <key>DigitEight</key>
+ <string>eight</string>
+ <key>DigitFive</key>
+ <string>five</string>
+ <key>DigitFour</key>
+ <string>four</string>
+ <key>DigitNine</key>
+ <string>nine</string>
+ <key>DigitOne</key>
+ <string>one</string>
+ <key>DigitSeven</key>
+ <string>seven</string>
+ <key>DigitSix</key>
+ <string>six</string>
+ <key>DigitThree</key>
+ <string>three</string>
+ <key>DigitTwo</key>
+ <string>two</string>
+ <key>DigitZero</key>
+ <string>zero</string>
+ <key>DollarSgn</key>
+ <string>dollar</string>
+ <key>DottedCirc</key>
+ <string>uni25CC</string>
+ <key>EqSgn</key>
+ <string>equal</string>
+ <key>ExclamationMrk</key>
+ <string>exclam</string>
+ <key>FullStop</key>
+ <string>period</string>
+ <key>GTSgn</key>
+ <string>greater</string>
+ <key>GraveAccent</key>
+ <string>grave</string>
+ <key>Hyphen</key>
+ <string>uni2010</string>
+ <key>HyphenMinus</key>
+ <string>hyphen</string>
+ <key>Hyphen_Soft</key>
+ <string>uni00AD</string>
+ <key>LTSgn</key>
+ <string>less</string>
+ <key>LftCurlyBrac</key>
+ <string>braceleft</string>
+ <key>LftParen</key>
+ <string>parenleft</string>
+ <key>LftSqrBrac</key>
+ <string>bracketleft</string>
+ <key>LowLine</key>
+ <string>underscore</string>
+ <key>LtnCapA</key>
+ <string>A</string>
+ <key>LtnCapA.alt</key>
+ <string>A</string>
+ <key>LtnCapADiaer</key>
+ <string>Adieresis</string>
+ <key>LtnCapB</key>
+ <string>B</string>
+ <key>LtnCapC</key>
+ <string>C</string>
+ <key>LtnCapD</key>
+ <string>D</string>
+ <key>LtnCapE</key>
+ <string>E</string>
+ <key>LtnCapF</key>
+ <string>F</string>
+ <key>LtnCapG</key>
+ <string>G</string>
+ <key>LtnCapH</key>
+ <string>H</string>
+ <key>LtnCapI</key>
+ <string>I</string>
+ <key>LtnCapJ</key>
+ <string>J</string>
+ <key>LtnCapK</key>
+ <string>K</string>
+ <key>LtnCapL</key>
+ <string>L</string>
+ <key>LtnCapM</key>
+ <string>M</string>
+ <key>LtnCapN</key>
+ <string>N</string>
+ <key>LtnCapO</key>
+ <string>O</string>
+ <key>LtnCapP</key>
+ <string>P</string>
+ <key>LtnCapQ</key>
+ <string>Q</string>
+ <key>LtnCapR</key>
+ <string>R</string>
+ <key>LtnCapS</key>
+ <string>S</string>
+ <key>LtnCapT</key>
+ <string>T</string>
+ <key>LtnCapU</key>
+ <string>U</string>
+ <key>LtnCapV</key>
+ <string>V</string>
+ <key>LtnCapW</key>
+ <string>W</string>
+ <key>LtnCapX</key>
+ <string>X</string>
+ <key>LtnCapY</key>
+ <string>Y</string>
+ <key>LtnSmA</key>
+ <string>a</string>
+ <key>LtnSmAAcute</key>
+ <string>aacute</string>
+ <key>LtnSmACircum</key>
+ <string>acircumflex</string>
+ <key>LtnSmADiaer</key>
+ <string>adieresis</string>
+ <key>LtnSmAGrave</key>
+ <string>agrave</string>
+ <key>LtnSmARingAbv</key>
+ <string>aring</string>
+ <key>LtnSmATilde</key>
+ <string>atilde</string>
+ <key>LtnSmB</key>
+ <string>b</string>
+ <key>LtnSmC</key>
+ <string>c</string>
+ <key>LtnSmD</key>
+ <string>d</string>
+ <key>LtnSmE</key>
+ <string>e</string>
+ <key>LtnSmF</key>
+ <string>f</string>
+ <key>LtnSmG</key>
+ <string>g</string>
+ <key>LtnSmH</key>
+ <string>h</string>
+ <key>LtnSmI</key>
+ <string>i</string>
+ <key>LtnSmJ</key>
+ <string>j</string>
+ <key>LtnSmK</key>
+ <string>k</string>
+ <key>LtnSmL</key>
+ <string>l</string>
+ <key>LtnSmM</key>
+ <string>m</string>
+ <key>LtnSmN</key>
+ <string>n</string>
+ <key>LtnSmO</key>
+ <string>o</string>
+ <key>LtnSmP</key>
+ <string>p</string>
+ <key>LtnSmQ</key>
+ <string>q</string>
+ <key>LtnSmR</key>
+ <string>r</string>
+ <key>LtnSmS</key>
+ <string>s</string>
+ <key>LtnSmT</key>
+ <string>t</string>
+ <key>LtnSmU</key>
+ <string>u</string>
+ <key>LtnSmV</key>
+ <string>v</string>
+ <key>LtnSmW</key>
+ <string>w</string>
+ <key>LtnSmX</key>
+ <string>x</string>
+ <key>LtnSmY</key>
+ <string>y</string>
+ <key>NonBreakingHyphen</key>
+ <string>uni2011</string>
+ <key>NumSgn</key>
+ <string>numbersign</string>
+ <key>PercentSgn</key>
+ <string>percent</string>
+ <key>PlusSgn</key>
+ <string>plus</string>
+ <key>QstnMrk</key>
+ <string>question</string>
+ <key>QuotMrk</key>
+ <string>quotedbl</string>
+ <key>ReverseSolidus</key>
+ <string>backslash</string>
+ <key>RtCurlyBrac</key>
+ <string>braceright</string>
+ <key>RtParen</key>
+ <string>parenright</string>
+ <key>RtSqrBrac</key>
+ <string>bracketright</string>
+ <key>Semicolon</key>
+ <string>semicolon</string>
+ <key>Solidus</key>
+ <string>slash</string>
+ <key>Space</key>
+ <string>space</string>
+ <key>Tilde</key>
+ <string>asciitilde</string>
+ <key>VertLine</key>
+ <string>bar</string>
+ </dict>
+</dict>
+</plist>
diff --git a/tests/input/font-psf-test/source/PsfTest-Italic.ufo/metainfo.plist b/tests/input/font-psf-test/source/PsfTest-Italic.ufo/metainfo.plist
new file mode 100644
index 0000000..aa10c5c
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Italic.ufo/metainfo.plist
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>creator</key>
+ <string>org.sil.scripts.pysilfont</string>
+ <key>formatVersion</key>
+ <integer>3</integer>
+</dict>
+</plist>
diff --git a/tests/input/font-psf-test/source/PsfTest-Regular.ufo/fontinfo.plist b/tests/input/font-psf-test/source/PsfTest-Regular.ufo/fontinfo.plist
new file mode 100644
index 0000000..3f2d484
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Regular.ufo/fontinfo.plist
@@ -0,0 +1,260 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>ascender</key>
+ <integer>2100</integer>
+ <key>capHeight</key>
+ <real>1485</real>
+ <key>copyright</key>
+ <string>Copyright (c) 2004-2021 SIL International</string>
+ <key>descender</key>
+ <integer>-550</integer>
+ <key>familyName</key>
+ <string>Psf Test</string>
+ <key>guidelines</key>
+ <array>
+ <dict>
+ <key>angle</key>
+ <integer>0</integer>
+ <key>x</key>
+ <integer>1084</integer>
+ <key>y</key>
+ <integer>1040</integer>
+ </dict>
+ <dict>
+ <key>y</key>
+ <integer>1250</integer>
+ </dict>
+ </array>
+ <key>note</key>
+ <string>Test note
+Second line
+
+Third line
+</string>
+ <key>openTypeHeadCreated</key>
+ <string>2021/01/01 11:00:00</string>
+ <key>openTypeHheaAscender</key>
+ <integer>2100</integer>
+ <key>openTypeHheaDescender</key>
+ <integer>-550</integer>
+ <key>openTypeHheaLineGap</key>
+ <integer>0</integer>
+ <key>openTypeNameDescription</key>
+ <string>Copyright (c) 2004-2021 SIL International</string>
+ <key>openTypeNameDesigner</key>
+ <string>Victor Gaultney, Annie Olsen, Julie Remington, Don Collingsworth, Eric Hays, Becca Hirsbrunner</string>
+ <key>openTypeNameDesignerURL</key>
+ <string>http://scripts.sil.org/</string>
+ <key>openTypeNameLicense</key>
+ <string>Copyright (c) 2004-2021 SIL International (http://www.sil.org/) with Reserved Font Names "Andika" and "SIL".
+
+This Font Software is licensed under the SIL Open Font License, Version 1.1. This license is copied below, and is also available with a FAQ at: http://scripts.sil.org/OFL
+
+
+-----------------------------------------------------------
+SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
+-----------------------------------------------------------
+
+PREAMBLE
+The goals of the Open Font License (OFL) are to stimulate worldwide development of collaborative font projects, to support the font creation efforts of academic and linguistic communities, and to provide a free and open framework in which fonts may be shared and improved in partnership with others.
+
+The OFL allows the licensed fonts to be used, studied, modified and redistributed freely as long as they are not sold by themselves. The fonts, including any derivative works, can be bundled, embedded, redistributed and/or sold with any software provided that any reserved names are not used by derivative works. The fonts and derivatives, however, cannot be released under any other type of license. The requirement for fonts to remain under this license does not apply to any document created using the fonts or their derivatives.
+
+DEFINITIONS
+"Font Software" refers to the set of files released by the Copyright Holder(s) under this license and clearly marked as such. This may include source files, build scripts and documentation.
+
+"Reserved Font Name" refers to any names specified as such after the copyright statement(s).
+
+"Original Version" refers to the collection of Font Software components as distributed by the Copyright Holder(s).
+
+"Modified Version" refers to any derivative made by adding to, deleting, or substituting -- in part or in whole -- any of the components of the Original Version, by changing formats or by porting the Font Software to a new environment.
+
+"Author" refers to any designer, engineer, programmer, technical writer or other person who contributed to the Font Software.
+
+PERMISSION &amp; CONDITIONS
+Permission is hereby granted, free of charge, to any person obtaining a copy of the Font Software, to use, study, copy, merge, embed, modify, redistribute, and sell modified and unmodified copies of the Font Software, subject to the following conditions:
+
+1) Neither the Font Software nor any of its individual components, in Original or Modified Versions, may be sold by itself.
+
+2) Original or Modified Versions of the Font Software may be bundled, redistributed and/or sold with any software, provided that each copy contains the above copyright notice and this license. These can be included either as stand-alone text files, human-readable headers or in the appropriate machine-readable metadata fields within text or binary files as long as those fields can be easily viewed by the user.
+
+3) No Modified Version of the Font Software may use the Reserved Font Name(s) unless explicit written permission is granted by the corresponding Copyright Holder. This restriction only applies to the primary font name as presented to the users.
+
+4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font Software shall not be used to promote, endorse or advertise any Modified Version, except to acknowledge the contribution(s) of the Copyright Holder(s) and the Author(s) or with their explicit written permission.
+
+5) The Font Software, modified or unmodified, in part or in whole, must be distributed entirely under this license, and must not be distributed under any other license. The requirement for fonts to remain under this license does not apply to any document created using the Font Software.
+
+TERMINATION
+This license becomes null and void if any of the above conditions are not met.
+
+DISCLAIMER
+THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM OTHER DEALINGS IN THE FONT SOFTWARE.</string>
+ <key>openTypeNameLicenseURL</key>
+ <string>http://scripts.sil.org/OFL</string>
+ <key>openTypeNameManufacturer</key>
+ <string>SIL International</string>
+ <key>openTypeNameManufacturerURL</key>
+ <string>http://scripts.sil.org</string>
+ <key>openTypeNamePreferredFamilyName</key>
+ <string>Psf Test</string>
+ <key>openTypeNamePreferredSubfamilyName</key>
+ <string>Regular</string>
+ <key>openTypeNameUniqueID</key>
+ <string>SIL International: Psf Test Regular: 2022</string>
+ <key>openTypeNameVersion</key>
+ <string>Version 5.550</string>
+ <key>openTypeOS2CodePageRanges</key>
+ <array>
+ <integer>0</integer>
+ <integer>1</integer>
+ <integer>2</integer>
+ <integer>4</integer>
+ <integer>7</integer>
+ <integer>8</integer>
+ </array>
+ <key>openTypeOS2FamilyClass</key>
+ <array>
+ <integer>0</integer>
+ <integer>0</integer>
+ </array>
+ <key>openTypeOS2Panose</key>
+ <array>
+ <integer>2</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ </array>
+ <key>openTypeOS2StrikeoutPosition</key>
+ <integer>700</integer>
+ <key>openTypeOS2StrikeoutSize</key>
+ <integer>100</integer>
+ <key>openTypeOS2SubscriptXOffset</key>
+ <integer>0</integer>
+ <key>openTypeOS2SubscriptXSize</key>
+ <integer>1433</integer>
+ <key>openTypeOS2SubscriptYOffset</key>
+ <integer>286</integer>
+ <key>openTypeOS2SubscriptYSize</key>
+ <integer>1331</integer>
+ <key>openTypeOS2SuperscriptXOffset</key>
+ <integer>0</integer>
+ <key>openTypeOS2SuperscriptXSize</key>
+ <integer>1433</integer>
+ <key>openTypeOS2SuperscriptYOffset</key>
+ <integer>976</integer>
+ <key>openTypeOS2SuperscriptYSize</key>
+ <integer>1331</integer>
+ <key>openTypeOS2Type</key>
+ <array/>
+ <key>openTypeOS2TypoAscender</key>
+ <integer>2100</integer>
+ <key>openTypeOS2TypoDescender</key>
+ <integer>-550</integer>
+ <key>openTypeOS2TypoLineGap</key>
+ <integer>0</integer>
+ <key>openTypeOS2UnicodeRanges</key>
+ <array>
+ <integer>0</integer>
+ <integer>1</integer>
+ <integer>6</integer>
+ <integer>7</integer>
+ <integer>31</integer>
+ <integer>33</integer>
+ <integer>35</integer>
+ <integer>36</integer>
+ <integer>37</integer>
+ <integer>38</integer>
+ <integer>39</integer>
+ <integer>40</integer>
+ <integer>45</integer>
+ <integer>46</integer>
+ <integer>47</integer>
+ <integer>57</integer>
+ <integer>60</integer>
+ <integer>62</integer>
+ <integer>64</integer>
+ <integer>67</integer>
+ <integer>69</integer>
+ <integer>89</integer>
+ </array>
+ <key>openTypeOS2VendorID</key>
+ <string>SIL</string>
+ <key>openTypeOS2WeightClass</key>
+ <integer>400</integer>
+ <key>openTypeOS2WidthClass</key>
+ <integer>5</integer>
+ <key>openTypeOS2WinAscent</key>
+ <integer>2100</integer>
+ <key>openTypeOS2WinDescent</key>
+ <integer>550</integer>
+ <key>postscriptBlueValues</key>
+ <array>
+ <integer>-490</integer>
+ <integer>-490</integer>
+ <integer>-25</integer>
+ <integer>0</integer>
+ <integer>1020</integer>
+ <integer>1040</integer>
+ <integer>1455</integer>
+ <integer>1485</integer>
+ <integer>1600</integer>
+ <integer>1620</integer>
+ </array>
+ <key>postscriptFontName</key>
+ <string>PsfTest-Regular</string>
+ <key>postscriptFullName</key>
+ <string>Psf Test Regular</string>
+ <key>postscriptStemSnapH</key>
+ <array>
+ <integer>140</integer>
+ <integer>145</integer>
+ <integer>150</integer>
+ <integer>155</integer>
+ <integer>160</integer>
+ <integer>165</integer>
+ <integer>170</integer>
+ <integer>175</integer>
+ <integer>185</integer>
+ <integer>270</integer>
+ </array>
+ <key>postscriptStemSnapV</key>
+ <array>
+ <integer>165</integer>
+ <integer>180</integer>
+ <integer>185</integer>
+ <integer>190</integer>
+ <integer>195</integer>
+ <integer>200</integer>
+ <integer>205</integer>
+ <integer>270</integer>
+ </array>
+ <key>postscriptUnderlinePosition</key>
+ <integer>-110</integer>
+ <key>postscriptUnderlineThickness</key>
+ <integer>80</integer>
+ <key>styleMapFamilyName</key>
+ <string>Psf Test</string>
+ <key>styleMapStyleName</key>
+ <string>regular</string>
+ <key>styleName</key>
+ <string>Regular</string>
+ <key>trademark</key>
+ <string>Andika is a trademark of SIL International.</string>
+ <key>unitsPerEm</key>
+ <integer>2048</integer>
+ <key>versionMajor</key>
+ <integer>5</integer>
+ <key>versionMinor</key>
+ <integer>550</integer>
+ <key>xHeight</key>
+ <integer>1040</integer>
+</dict>
+</plist>
diff --git a/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/A_mpersand.glif b/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/A_mpersand.glif
new file mode 100644
index 0000000..c2cef04
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/A_mpersand.glif
@@ -0,0 +1,61 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Ampersand" format="2">
+ <advance width="1222"/>
+ <unicode hex="0026"/>
+ <outline>
+ <contour>
+ <point x="490" y="1485" type="curve" smooth="yes"/>
+ <point x="331" y="1485"/>
+ <point x="155" y="1412"/>
+ <point x="155" y="1190" type="curve" smooth="yes"/>
+ <point x="155" y="1010"/>
+ <point x="362" y="815"/>
+ <point x="535" y="570" type="curve" smooth="yes"/>
+ <point x="794" y="202"/>
+ <point x="973" y="-25"/>
+ <point x="1025" y="-25" type="curve" smooth="yes"/>
+ <point x="1060" y="-25"/>
+ <point x="1138" y="38"/>
+ <point x="1175" y="70" type="curve"/>
+ <point x="1080" y="110"/>
+ <point x="914" y="297"/>
+ <point x="650" y="680" type="curve" smooth="yes"/>
+ <point x="494" y="906"/>
+ <point x="315" y="1075"/>
+ <point x="315" y="1200" type="curve" smooth="yes"/>
+ <point x="315" y="1291"/>
+ <point x="398" y="1350"/>
+ <point x="475" y="1350" type="curve" smooth="yes"/>
+ <point x="555" y="1350"/>
+ <point x="630" y="1294"/>
+ <point x="630" y="1205" type="curve" smooth="yes"/>
+ <point x="630" y="1116"/>
+ <point x="523" y="1001"/>
+ <point x="350" y="840" type="curve" smooth="yes"/>
+ <point x="146" y="651"/>
+ <point x="55" y="527"/>
+ <point x="55" y="375" type="curve" smooth="yes"/>
+ <point x="55" y="151"/>
+ <point x="217" y="-25"/>
+ <point x="440" y="-25" type="curve" smooth="yes"/>
+ <point x="713" y="-25"/>
+ <point x="1002" y="274"/>
+ <point x="1080" y="435" type="curve"/>
+ <point x="975" y="570" type="line"/>
+ <point x="911" y="403"/>
+ <point x="630" y="150"/>
+ <point x="455" y="150" type="curve" smooth="yes"/>
+ <point x="310" y="150"/>
+ <point x="230" y="267"/>
+ <point x="230" y="380" type="curve" smooth="yes"/>
+ <point x="230" y="490"/>
+ <point x="296" y="587"/>
+ <point x="470" y="740" type="curve" smooth="yes"/>
+ <point x="651" y="899"/>
+ <point x="790" y="1068"/>
+ <point x="790" y="1200" type="curve" smooth="yes"/>
+ <point x="790" y="1382"/>
+ <point x="642" y="1485"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/A_pos.glif b/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/A_pos.glif
new file mode 100644
index 0000000..5042901
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/A_pos.glif
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Apos" format="2">
+ <advance width="605"/>
+ <unicode hex="0027"/>
+ <outline>
+ <contour>
+ <point x="365" y="1045" type="line"/>
+ <point x="370" y="1186"/>
+ <point x="376" y="1339"/>
+ <point x="405" y="1585" type="curve"/>
+ <point x="200" y="1585" type="line"/>
+ <point x="231" y="1339"/>
+ <point x="236" y="1186"/>
+ <point x="240" y="1045" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/A_sterisk.glif b/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/A_sterisk.glif
new file mode 100644
index 0000000..850d344
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/A_sterisk.glif
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Asterisk" format="2">
+ <advance width="1028"/>
+ <unicode hex="002A"/>
+ <outline>
+ <contour>
+ <point x="560" y="1600" type="curve"/>
+ <point x="415" y="1600" type="line"/>
+ <point x="434" y="1467"/>
+ <point x="447" y="1387"/>
+ <point x="450" y="1300" type="curve"/>
+ <point x="376" y="1344"/>
+ <point x="309" y="1387"/>
+ <point x="200" y="1465" type="curve"/>
+ <point x="125" y="1340" type="line"/>
+ <point x="250" y="1290"/>
+ <point x="327" y="1261"/>
+ <point x="405" y="1220" type="curve"/>
+ <point x="329" y="1177"/>
+ <point x="256" y="1140"/>
+ <point x="135" y="1085" type="curve"/>
+ <point x="205" y="960" type="line"/>
+ <point x="310" y="1042"/>
+ <point x="377" y="1094"/>
+ <point x="450" y="1140" type="curve"/>
+ <point x="448" y="1055"/>
+ <point x="442" y="973"/>
+ <point x="430" y="840" type="curve"/>
+ <point x="570" y="840" type="line"/>
+ <point x="550" y="973"/>
+ <point x="544" y="1052"/>
+ <point x="540" y="1140" type="curve"/>
+ <point x="614" y="1095"/>
+ <point x="681" y="1053"/>
+ <point x="790" y="975" type="curve"/>
+ <point x="865" y="1100" type="line"/>
+ <point x="739" y="1149"/>
+ <point x="663" y="1179"/>
+ <point x="585" y="1220" type="curve"/>
+ <point x="661" y="1261"/>
+ <point x="733" y="1299"/>
+ <point x="855" y="1355" type="curve"/>
+ <point x="785" y="1480" type="line"/>
+ <point x="680" y="1396"/>
+ <point x="614" y="1348"/>
+ <point x="540" y="1300" type="curve"/>
+ <point x="541" y="1387"/>
+ <point x="547" y="1467"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/A_tS_gn.glif b/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/A_tS_gn.glif
new file mode 100644
index 0000000..681014d
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/A_tS_gn.glif
@@ -0,0 +1,80 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="AtSgn" format="2">
+ <advance width="1702"/>
+ <unicode hex="0040"/>
+ <outline>
+ <contour>
+ <point x="1605" y="700" type="curve" smooth="yes"/>
+ <point x="1605" y="1127"/>
+ <point x="1307" y="1405"/>
+ <point x="880" y="1405" type="curve" smooth="yes"/>
+ <point x="465" y="1405"/>
+ <point x="95" y="1126"/>
+ <point x="95" y="575" type="curve" smooth="yes"/>
+ <point x="95" y="48"/>
+ <point x="464" y="-235"/>
+ <point x="855" y="-235" type="curve" smooth="yes"/>
+ <point x="990" y="-235"/>
+ <point x="1150" y="-188"/>
+ <point x="1250" y="-118" type="curve"/>
+ <point x="1145" y="-10" type="line"/>
+ <point x="1058" y="-70"/>
+ <point x="963" y="-95"/>
+ <point x="870" y="-95" type="curve" smooth="yes"/>
+ <point x="523" y="-95"/>
+ <point x="240" y="174"/>
+ <point x="240" y="605" type="curve" smooth="yes"/>
+ <point x="240" y="1003"/>
+ <point x="542" y="1270"/>
+ <point x="870" y="1270" type="curve" smooth="yes"/>
+ <point x="1263" y="1270"/>
+ <point x="1465" y="1002"/>
+ <point x="1465" y="670" type="curve" smooth="yes"/>
+ <point x="1465" y="432"/>
+ <point x="1348" y="315"/>
+ <point x="1280" y="315" type="curve" smooth="yes"/>
+ <point x="1221" y="315"/>
+ <point x="1175" y="410"/>
+ <point x="1175" y="630" type="curve" smooth="yes"/>
+ <point x="1175" y="980" type="line"/>
+ <point x="1088" y="1015"/>
+ <point x="961" y="1040"/>
+ <point x="880" y="1040" type="curve" smooth="yes"/>
+ <point x="716" y="1040"/>
+ <point x="613" y="971"/>
+ <point x="530" y="835" type="curve" smooth="yes"/>
+ <point x="483" y="756"/>
+ <point x="455" y="653"/>
+ <point x="455" y="530" type="curve" smooth="yes"/>
+ <point x="455" y="294"/>
+ <point x="601" y="183"/>
+ <point x="735" y="183" type="curve" smooth="yes"/>
+ <point x="852" y="183"/>
+ <point x="988" y="366"/>
+ <point x="1040" y="490" type="curve"/>
+ <point x="1050" y="322"/>
+ <point x="1128" y="180"/>
+ <point x="1250" y="180" type="curve" smooth="yes"/>
+ <point x="1425" y="180"/>
+ <point x="1605" y="368"/>
+ </contour>
+ <contour>
+ <point x="850" y="905" type="curve" smooth="yes"/>
+ <point x="924" y="905"/>
+ <point x="992" y="886"/>
+ <point x="1025" y="870" type="curve"/>
+ <point x="1025" y="720" type="line"/>
+ <point x="993" y="582"/>
+ <point x="838" y="320"/>
+ <point x="748" y="320" type="curve" smooth="yes"/>
+ <point x="676" y="320"/>
+ <point x="605" y="398"/>
+ <point x="605" y="575" type="curve" smooth="yes"/>
+ <point x="605" y="652"/>
+ <point x="621" y="731"/>
+ <point x="650" y="780" type="curve" smooth="yes"/>
+ <point x="706" y="876"/>
+ <point x="782" y="905"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/C_ircumA_ccent.glif b/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/C_ircumA_ccent.glif
new file mode 100644
index 0000000..60bd1cf
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/C_ircumA_ccent.glif
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="CircumAccent" format="2">
+ <advance width="850"/>
+ <unicode hex="005E"/>
+ <outline>
+ <component base="CombCircum" xOffset="995"/>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/C_olon.glif b/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/C_olon.glif
new file mode 100644
index 0000000..3cfbbc1
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/C_olon.glif
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Colon" format="2">
+ <advance width="640"/>
+ <unicode hex="003A"/>
+ <outline>
+ <contour>
+ <point x="185" y="790" type="curve" smooth="yes"/>
+ <point x="185" y="716"/>
+ <point x="246" y="655"/>
+ <point x="320" y="655" type="curve" smooth="yes"/>
+ <point x="394" y="655"/>
+ <point x="455" y="716"/>
+ <point x="455" y="790" type="curve" smooth="yes"/>
+ <point x="455" y="864"/>
+ <point x="394" y="925"/>
+ <point x="320" y="925" type="curve" smooth="yes"/>
+ <point x="246" y="925"/>
+ <point x="185" y="864"/>
+ </contour>
+ <contour>
+ <point x="185" y="110" type="curve" smooth="yes"/>
+ <point x="185" y="36"/>
+ <point x="246" y="-25"/>
+ <point x="320" y="-25" type="curve" smooth="yes"/>
+ <point x="394" y="-25"/>
+ <point x="455" y="36"/>
+ <point x="455" y="110" type="curve" smooth="yes"/>
+ <point x="455" y="184"/>
+ <point x="394" y="245"/>
+ <point x="320" y="245" type="curve" smooth="yes"/>
+ <point x="246" y="245"/>
+ <point x="185" y="184"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/C_ombA_cute.glif b/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/C_ombA_cute.glif
new file mode 100644
index 0000000..bb13221
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/C_ombA_cute.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="CombAcute" format="2">
+ <unicode hex="0301"/>
+ <anchor x="-570" y="1635" name="U"/>
+ <anchor x="-570" y="1100" name="_U"/>
+ <outline>
+ <contour>
+ <point x="-400" y="1600" type="line"/>
+ <point x="-750" y="1170" type="line"/>
+ <point x="-590" y="1170" type="line"/>
+ <point x="-170" y="1600" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/C_ombC_ircum.glif b/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/C_ombC_ircum.glif
new file mode 100644
index 0000000..fa444ec
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/C_ombC_ircum.glif
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="CombCircum" format="2">
+ <unicode hex="0302"/>
+ <anchor x="-570" y="1635" name="U"/>
+ <anchor x="-570" y="1100" name="_U"/>
+ <outline>
+ <contour>
+ <point x="-845" y="1170" type="line"/>
+ <point x="-570" y="1450" type="line"/>
+ <point x="-295" y="1170" type="line"/>
+ <point x="-145" y="1170" type="line"/>
+ <point x="-485" y="1600" type="line"/>
+ <point x="-655" y="1600" type="line"/>
+ <point x="-995" y="1170" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/C_ombD_iaer.glif b/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/C_ombD_iaer.glif
new file mode 100644
index 0000000..f7540ef
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/C_ombD_iaer.glif
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="CombDiaer" format="2">
+ <unicode hex="0308"/>
+ <anchor x="-570" y="1505" name="U"/>
+ <anchor x="-570" y="1100" name="_U"/>
+ <outline>
+ <contour>
+ <point x="-490" y="1345" type="curve" smooth="yes"/>
+ <point x="-490" y="1271"/>
+ <point x="-434" y="1210"/>
+ <point x="-360" y="1210" type="curve" smooth="yes"/>
+ <point x="-285" y="1210"/>
+ <point x="-230" y="1271"/>
+ <point x="-230" y="1345" type="curve" smooth="yes"/>
+ <point x="-230" y="1419"/>
+ <point x="-285" y="1480"/>
+ <point x="-360" y="1480" type="curve" smooth="yes"/>
+ <point x="-434" y="1480"/>
+ <point x="-490" y="1419"/>
+ </contour>
+ <contour>
+ <point x="-910" y="1345" type="curve" smooth="yes"/>
+ <point x="-910" y="1271"/>
+ <point x="-854" y="1210"/>
+ <point x="-780" y="1210" type="curve" smooth="yes"/>
+ <point x="-705" y="1210"/>
+ <point x="-650" y="1271"/>
+ <point x="-650" y="1345" type="curve" smooth="yes"/>
+ <point x="-650" y="1419"/>
+ <point x="-705" y="1480"/>
+ <point x="-780" y="1480" type="curve" smooth="yes"/>
+ <point x="-854" y="1480"/>
+ <point x="-910" y="1419"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/C_ombG_rave.glif b/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/C_ombG_rave.glif
new file mode 100644
index 0000000..c33b56a
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/C_ombG_rave.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="CombGrave" format="2">
+ <unicode hex="0300"/>
+ <anchor x="-550" y="1635" name="U"/>
+ <anchor x="-550" y="1100" name="_U"/>
+ <outline>
+ <contour>
+ <point x="-940" y="1600" type="line"/>
+ <point x="-520" y="1170" type="line"/>
+ <point x="-360" y="1170" type="line"/>
+ <point x="-710" y="1600" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/C_ombR_ingA_bv.glif b/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/C_ombR_ingA_bv.glif
new file mode 100644
index 0000000..b019e05
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/C_ombR_ingA_bv.glif
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="CombRingAbv" format="2">
+ <unicode hex="030A"/>
+ <anchor x="-570" y="1635" name="U"/>
+ <anchor x="-572" y="1100" name="_U"/>
+ <outline>
+ <contour>
+ <point x="-470" y="1385" type="curve" smooth="yes"/>
+ <point x="-470" y="1325"/>
+ <point x="-510" y="1285"/>
+ <point x="-570" y="1285" type="curve" smooth="yes"/>
+ <point x="-630" y="1285"/>
+ <point x="-670" y="1325"/>
+ <point x="-670" y="1385" type="curve" smooth="yes"/>
+ <point x="-670" y="1445"/>
+ <point x="-630" y="1485"/>
+ <point x="-570" y="1485" type="curve" smooth="yes"/>
+ <point x="-510" y="1485"/>
+ <point x="-470" y="1445"/>
+ </contour>
+ <contour>
+ <point x="-785" y="1385" type="curve" smooth="yes"/>
+ <point x="-785" y="1265"/>
+ <point x="-690" y="1170"/>
+ <point x="-570" y="1170" type="curve" smooth="yes"/>
+ <point x="-450" y="1170"/>
+ <point x="-355" y="1265"/>
+ <point x="-355" y="1385" type="curve" smooth="yes"/>
+ <point x="-355" y="1505"/>
+ <point x="-450" y="1600"/>
+ <point x="-570" y="1600" type="curve" smooth="yes"/>
+ <point x="-690" y="1600"/>
+ <point x="-785" y="1505"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/C_ombT_ilde.glif b/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/C_ombT_ilde.glif
new file mode 100644
index 0000000..88d5ca7
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/C_ombT_ilde.glif
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="CombTilde" format="2">
+ <unicode hex="0303"/>
+ <anchor x="-575" y="1475" name="U"/>
+ <anchor x="-575" y="1100" name="_U"/>
+ <outline>
+ <contour>
+ <point x="-820" y="1205" type="line"/>
+ <point x="-815" y="1254"/>
+ <point x="-784" y="1290"/>
+ <point x="-735" y="1290" type="curve" smooth="yes"/>
+ <point x="-698" y="1290"/>
+ <point x="-657" y="1274"/>
+ <point x="-580" y="1238" type="curve" smooth="yes"/>
+ <point x="-519" y="1210"/>
+ <point x="-466" y="1190"/>
+ <point x="-413" y="1190" type="curve" smooth="yes"/>
+ <point x="-290" y="1190"/>
+ <point x="-215" y="1312"/>
+ <point x="-215" y="1440" type="curve"/>
+ <point x="-320" y="1440" type="line"/>
+ <point x="-327" y="1394"/>
+ <point x="-358" y="1355"/>
+ <point x="-405" y="1355" type="curve" smooth="yes"/>
+ <point x="-447" y="1355"/>
+ <point x="-488" y="1374"/>
+ <point x="-560" y="1403" type="curve" smooth="yes"/>
+ <point x="-630" y="1431"/>
+ <point x="-677" y="1455"/>
+ <point x="-733" y="1455" type="curve" smooth="yes"/>
+ <point x="-852" y="1455"/>
+ <point x="-925" y="1327"/>
+ <point x="-925" y="1205" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/C_omma.glif b/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/C_omma.glif
new file mode 100644
index 0000000..6e8f5a3
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/C_omma.glif
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Comma" format="2">
+ <advance width="650"/>
+ <unicode hex="002C"/>
+ <outline>
+ <contour>
+ <point x="185" y="50" type="line"/>
+ <point x="325" y="50" type="line"/>
+ <point x="325" y="-51"/>
+ <point x="248" y="-172"/>
+ <point x="190" y="-230" type="curve"/>
+ <point x="290" y="-270" type="line"/>
+ <point x="407" y="-160"/>
+ <point x="465" y="-37"/>
+ <point x="465" y="85" type="curve" smooth="yes"/>
+ <point x="465" y="186"/>
+ <point x="400" y="250"/>
+ <point x="320" y="250" type="curve" smooth="yes"/>
+ <point x="263" y="250"/>
+ <point x="198" y="213"/>
+ <point x="185" y="150" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/D_igitE_ight.glif b/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/D_igitE_ight.glif
new file mode 100644
index 0000000..b7e540a
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/D_igitE_ight.glif
@@ -0,0 +1,63 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitEight" format="2">
+ <advance width="1200"/>
+ <unicode hex="0038"/>
+ <anchor x="600" y="-100" name="L"/>
+ <anchor x="600" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="600" y="-25" type="curve" smooth="yes"/>
+ <point x="857" y="-25"/>
+ <point x="1110" y="134"/>
+ <point x="1110" y="405" type="curve" smooth="yes"/>
+ <point x="1110" y="611"/>
+ <point x="965" y="739"/>
+ <point x="855" y="795" type="curve"/>
+ <point x="933" y="844"/>
+ <point x="1050" y="923"/>
+ <point x="1050" y="1105" type="curve" smooth="yes"/>
+ <point x="1050" y="1350"/>
+ <point x="840" y="1485"/>
+ <point x="610" y="1485" type="curve" smooth="yes"/>
+ <point x="381" y="1485"/>
+ <point x="150" y="1350"/>
+ <point x="150" y="1105" type="curve" smooth="yes"/>
+ <point x="150" y="923"/>
+ <point x="272" y="838"/>
+ <point x="350" y="795" type="curve"/>
+ <point x="221" y="725"/>
+ <point x="90" y="611"/>
+ <point x="90" y="405" type="curve" smooth="yes"/>
+ <point x="90" y="134"/>
+ <point x="344" y="-25"/>
+ </contour>
+ <contour>
+ <point x="860" y="1105" type="curve" smooth="yes"/>
+ <point x="860" y="949"/>
+ <point x="743" y="865"/>
+ <point x="600" y="865" type="curve" smooth="yes"/>
+ <point x="457" y="865"/>
+ <point x="340" y="949"/>
+ <point x="340" y="1105" type="curve" smooth="yes"/>
+ <point x="340" y="1252"/>
+ <point x="457" y="1325"/>
+ <point x="600" y="1325" type="curve" smooth="yes"/>
+ <point x="743" y="1325"/>
+ <point x="860" y="1252"/>
+ </contour>
+ <contour>
+ <point x="910" y="425" type="curve" smooth="yes"/>
+ <point x="910" y="250"/>
+ <point x="778" y="145"/>
+ <point x="600" y="145" type="curve" smooth="yes"/>
+ <point x="420" y="145"/>
+ <point x="290" y="250"/>
+ <point x="290" y="425" type="curve" smooth="yes"/>
+ <point x="290" y="592"/>
+ <point x="420" y="710"/>
+ <point x="600" y="710" type="curve" smooth="yes"/>
+ <point x="778" y="710"/>
+ <point x="910" y="592"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/D_igitF_ive.glif b/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/D_igitF_ive.glif
new file mode 100644
index 0000000..cb2dd85
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/D_igitF_ive.glif
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitFive" format="2">
+ <advance width="1200"/>
+ <unicode hex="0035"/>
+ <anchor x="600" y="-100" name="L"/>
+ <anchor x="600" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="195" y="685" type="line"/>
+ <point x="319" y="733"/>
+ <point x="404" y="750"/>
+ <point x="510" y="750" type="curve" smooth="yes"/>
+ <point x="670" y="750"/>
+ <point x="870" y="672"/>
+ <point x="870" y="470" type="curve" smooth="yes"/>
+ <point x="870" y="268"/>
+ <point x="730" y="155"/>
+ <point x="530" y="155" type="curve" smooth="yes"/>
+ <point x="390" y="155"/>
+ <point x="294" y="182"/>
+ <point x="160" y="290" type="curve"/>
+ <point x="130" y="80" type="line"/>
+ <point x="255" y="2"/>
+ <point x="363" y="-25"/>
+ <point x="518" y="-25" type="curve" smooth="yes"/>
+ <point x="831" y="-25"/>
+ <point x="1060" y="163"/>
+ <point x="1060" y="475" type="curve" smooth="yes"/>
+ <point x="1060" y="742"/>
+ <point x="832" y="930"/>
+ <point x="545" y="930" type="curve" smooth="yes"/>
+ <point x="472" y="930"/>
+ <point x="411" y="924"/>
+ <point x="380" y="920" type="curve"/>
+ <point x="380" y="1290" type="line"/>
+ <point x="765" y="1290" type="line"/>
+ <point x="849" y="1290"/>
+ <point x="925" y="1286"/>
+ <point x="1000" y="1270" type="curve"/>
+ <point x="1000" y="1460" type="line"/>
+ <point x="195" y="1460" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/D_igitF_our.glif b/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/D_igitF_our.glif
new file mode 100644
index 0000000..d9a5610
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/D_igitF_our.glif
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitFour" format="2">
+ <advance width="1200"/>
+ <unicode hex="0034"/>
+ <anchor x="607" y="-100" name="L"/>
+ <anchor x="607" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1125" y="395" type="line"/>
+ <point x="1125" y="550" type="line"/>
+ <point x="935" y="550" type="line"/>
+ <point x="935" y="1480" type="line"/>
+ <point x="745" y="1480" type="line"/>
+ <point x="90" y="550" type="line"/>
+ <point x="90" y="395" type="line"/>
+ <point x="745" y="395" type="line"/>
+ <point x="745" y="0" type="line"/>
+ <point x="935" y="0" type="line"/>
+ <point x="935" y="395" type="line"/>
+ </contour>
+ <contour>
+ <point x="745" y="1230" type="line"/>
+ <point x="745" y="550" type="line"/>
+ <point x="263" y="550" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/D_igitN_ine.glif b/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/D_igitN_ine.glif
new file mode 100644
index 0000000..0ce656a
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/D_igitN_ine.glif
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitNine" format="2">
+ <advance width="1200"/>
+ <unicode hex="0039"/>
+ <anchor x="600" y="-100" name="L"/>
+ <anchor x="600" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="193" y="65" type="line"/>
+ <point x="297" y="-5"/>
+ <point x="383" y="-25"/>
+ <point x="501" y="-25" type="curve" smooth="yes"/>
+ <point x="976" y="-25"/>
+ <point x="1114" y="411"/>
+ <point x="1114" y="780" type="curve" smooth="yes"/>
+ <point x="1114" y="1198"/>
+ <point x="926" y="1485"/>
+ <point x="616" y="1485" type="curve" smooth="yes"/>
+ <point x="349" y="1485"/>
+ <point x="112" y="1306"/>
+ <point x="112" y="1002" type="curve" smooth="yes"/>
+ <point x="112" y="773"/>
+ <point x="281" y="586"/>
+ <point x="559" y="586" type="curve" smooth="yes"/>
+ <point x="750" y="586"/>
+ <point x="922" y="717"/>
+ <point x="1019" y="878" type="curve"/>
+ <point x="948" y="961" type="line"/>
+ <point x="874" y="847"/>
+ <point x="738" y="760"/>
+ <point x="583" y="760" type="curve" smooth="yes"/>
+ <point x="424" y="760"/>
+ <point x="306" y="860"/>
+ <point x="306" y="1036" type="curve" smooth="yes"/>
+ <point x="306" y="1196"/>
+ <point x="420" y="1310"/>
+ <point x="596" y="1310" type="curve" smooth="yes"/>
+ <point x="837" y="1310"/>
+ <point x="919" y="1065"/>
+ <point x="919" y="813" type="curve" smooth="yes"/>
+ <point x="919" y="326"/>
+ <point x="748" y="150"/>
+ <point x="511" y="150" type="curve" smooth="yes"/>
+ <point x="415" y="150"/>
+ <point x="323" y="174"/>
+ <point x="237" y="260" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/D_igitO_ne.glif b/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/D_igitO_ne.glif
new file mode 100644
index 0000000..42c7708
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/D_igitO_ne.glif
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitOne" format="2">
+ <advance width="1200"/>
+ <unicode hex="0031"/>
+ <anchor x="600" y="-100" name="L"/>
+ <anchor x="600" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="535" y="170" type="line"/>
+ <point x="220" y="170" type="line"/>
+ <point x="220" y="0" type="line"/>
+ <point x="1040" y="0" type="line"/>
+ <point x="1040" y="170" type="line"/>
+ <point x="725" y="170" type="line"/>
+ <point x="725" y="1480" type="line"/>
+ <point x="555" y="1480" type="line"/>
+ <point x="210" y="1268" type="line"/>
+ <point x="235" y="1088" type="line"/>
+ <point x="535" y="1260" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/D_igitS_even.glif b/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/D_igitS_even.glif
new file mode 100644
index 0000000..c9ca97e
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/D_igitS_even.glif
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitSeven" format="2">
+ <advance width="1200"/>
+ <unicode hex="0037"/>
+ <anchor x="600" y="-100" name="L"/>
+ <anchor x="600" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="460" y="0" type="line"/>
+ <point x="589" y="459"/>
+ <point x="794" y="895"/>
+ <point x="1090" y="1300" type="curve"/>
+ <point x="1090" y="1460" type="line"/>
+ <point x="100" y="1460" type="line"/>
+ <point x="100" y="1275" type="line"/>
+ <point x="176" y="1291"/>
+ <point x="292" y="1295"/>
+ <point x="480" y="1295" type="curve" smooth="yes"/>
+ <point x="870" y="1295" type="line"/>
+ <point x="612" y="912"/>
+ <point x="439" y="566"/>
+ <point x="275" y="0" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/D_igitS_ix.glif b/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/D_igitS_ix.glif
new file mode 100644
index 0000000..ec0acdb
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/D_igitS_ix.glif
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitSix" format="2">
+ <advance width="1200"/>
+ <unicode hex="0036"/>
+ <anchor x="600" y="-100" name="L"/>
+ <anchor x="600" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1033" y="1395" type="line"/>
+ <point x="929" y="1465"/>
+ <point x="843" y="1485"/>
+ <point x="725" y="1485" type="curve" smooth="yes"/>
+ <point x="250" y="1485"/>
+ <point x="110" y="1049"/>
+ <point x="110" y="680" type="curve" smooth="yes"/>
+ <point x="110" y="242"/>
+ <point x="290" y="-25"/>
+ <point x="600" y="-25" type="curve" smooth="yes"/>
+ <point x="907" y="-25"/>
+ <point x="1115" y="166"/>
+ <point x="1115" y="470" type="curve" smooth="yes"/>
+ <point x="1115" y="719"/>
+ <point x="943" y="895"/>
+ <point x="665" y="895" type="curve" smooth="yes"/>
+ <point x="474" y="895"/>
+ <point x="328" y="780"/>
+ <point x="215" y="625" type="curve"/>
+ <point x="280" y="550" type="line"/>
+ <point x="362" y="653"/>
+ <point x="490" y="720"/>
+ <point x="645" y="720" type="curve" smooth="yes"/>
+ <point x="824" y="720"/>
+ <point x="920" y="611"/>
+ <point x="920" y="435" type="curve" smooth="yes"/>
+ <point x="920" y="275"/>
+ <point x="806" y="150"/>
+ <point x="630" y="150" type="curve" smooth="yes"/>
+ <point x="409" y="150"/>
+ <point x="305" y="393"/>
+ <point x="305" y="645" type="curve" smooth="yes"/>
+ <point x="305" y="1132"/>
+ <point x="478" y="1310"/>
+ <point x="715" y="1310" type="curve" smooth="yes"/>
+ <point x="811" y="1310"/>
+ <point x="903" y="1286"/>
+ <point x="989" y="1200" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/D_igitT_hree.glif b/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/D_igitT_hree.glif
new file mode 100644
index 0000000..3242c12
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/D_igitT_hree.glif
@@ -0,0 +1,52 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitThree" format="2">
+ <advance width="1200"/>
+ <unicode hex="0033"/>
+ <anchor x="600" y="-100" name="L"/>
+ <anchor x="600" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="410" y="870" type="line"/>
+ <point x="410" y="700" type="line"/>
+ <point x="480" y="700" type="line"/>
+ <point x="716" y="700"/>
+ <point x="895" y="588"/>
+ <point x="895" y="425" type="curve" smooth="yes"/>
+ <point x="895" y="241"/>
+ <point x="718" y="150"/>
+ <point x="565" y="150" type="curve" smooth="yes"/>
+ <point x="385" y="150"/>
+ <point x="244" y="232"/>
+ <point x="135" y="355" type="curve"/>
+ <point x="110" y="140" type="line"/>
+ <point x="215" y="42"/>
+ <point x="368" y="-25"/>
+ <point x="545" y="-25" type="curve" smooth="yes"/>
+ <point x="834" y="-25"/>
+ <point x="1090" y="170"/>
+ <point x="1090" y="405" type="curve" smooth="yes"/>
+ <point x="1090" y="672"/>
+ <point x="862" y="776"/>
+ <point x="720" y="800" type="curve"/>
+ <point x="862" y="829"/>
+ <point x="1040" y="957"/>
+ <point x="1040" y="1140" type="curve" smooth="yes"/>
+ <point x="1040" y="1354"/>
+ <point x="828" y="1485"/>
+ <point x="580" y="1485" type="curve"/>
+ <point x="413" y="1485"/>
+ <point x="260" y="1416"/>
+ <point x="180" y="1325" type="curve"/>
+ <point x="215" y="1155" type="line"/>
+ <point x="328" y="1271"/>
+ <point x="436" y="1310"/>
+ <point x="590" y="1310" type="curve" smooth="yes"/>
+ <point x="711" y="1310"/>
+ <point x="850" y="1250"/>
+ <point x="850" y="1115" type="curve" smooth="yes"/>
+ <point x="850" y="991"/>
+ <point x="679" y="870"/>
+ <point x="480" y="870" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/D_igitT_wo.glif b/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/D_igitT_wo.glif
new file mode 100644
index 0000000..c179477
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/D_igitT_wo.glif
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitTwo" format="2">
+ <advance width="1200"/>
+ <unicode hex="0032"/>
+ <anchor x="600" y="-100" name="L"/>
+ <anchor x="560" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1080" y="180" type="line"/>
+ <point x="1000" y="166"/>
+ <point x="842" y="165"/>
+ <point x="645" y="165" type="curve" smooth="yes"/>
+ <point x="390" y="165" type="line"/>
+ <point x="609" y="352"/>
+ <point x="1010" y="729"/>
+ <point x="1010" y="1065" type="curve" smooth="yes"/>
+ <point x="1010" y="1323"/>
+ <point x="800" y="1485"/>
+ <point x="560" y="1485" type="curve" smooth="yes"/>
+ <point x="391" y="1485"/>
+ <point x="206" y="1402"/>
+ <point x="125" y="1290" type="curve"/>
+ <point x="170" y="1120" type="line"/>
+ <point x="259" y="1228"/>
+ <point x="402" y="1305"/>
+ <point x="525" y="1305" type="curve" smooth="yes"/>
+ <point x="668" y="1305"/>
+ <point x="810" y="1233"/>
+ <point x="810" y="1045" type="curve" smooth="yes"/>
+ <point x="810" y="768"/>
+ <point x="391" y="365"/>
+ <point x="120" y="170" type="curve"/>
+ <point x="120" y="0" type="line"/>
+ <point x="1080" y="0" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/D_igitZ_ero.glif b/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/D_igitZ_ero.glif
new file mode 100644
index 0000000..d976d0f
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/D_igitZ_ero.glif
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitZero" format="2">
+ <advance width="1200"/>
+ <unicode hex="0030"/>
+ <anchor x="605" y="-100" name="L"/>
+ <anchor x="605" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="910" y="715" type="curve" smooth="yes"/>
+ <point x="910" y="308"/>
+ <point x="792" y="145"/>
+ <point x="600" y="145" type="curve" smooth="yes"/>
+ <point x="402" y="145"/>
+ <point x="290" y="305"/>
+ <point x="290" y="745" type="curve" smooth="yes"/>
+ <point x="290" y="1153"/>
+ <point x="407" y="1315"/>
+ <point x="600" y="1315" type="curve" smooth="yes"/>
+ <point x="802" y="1315"/>
+ <point x="910" y="1156"/>
+ </contour>
+ <contour>
+ <point x="1110" y="740" type="curve" smooth="yes"/>
+ <point x="1110" y="1286"/>
+ <point x="900" y="1485"/>
+ <point x="610" y="1485" type="curve" smooth="yes"/>
+ <point x="321" y="1485"/>
+ <point x="90" y="1283"/>
+ <point x="90" y="720" type="curve" smooth="yes"/>
+ <point x="90" y="155"/>
+ <point x="301" y="-25"/>
+ <point x="590" y="-25" type="curve" smooth="yes"/>
+ <point x="881" y="-25"/>
+ <point x="1110" y="151"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/D_ollarS_gn.glif b/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/D_ollarS_gn.glif
new file mode 100644
index 0000000..52136d8
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/D_ollarS_gn.glif
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DollarSgn" format="2">
+ <advance width="1200"/>
+ <unicode hex="0024"/>
+ <outline>
+ <contour>
+ <point x="553" y="1600" type="line"/>
+ <point x="553" y="-220" type="line"/>
+ <point x="683" y="-220" type="line"/>
+ <point x="683" y="1600" type="line"/>
+ </contour>
+ <contour>
+ <point x="986" y="1306" type="line"/>
+ <point x="866" y="1364"/>
+ <point x="764" y="1389"/>
+ <point x="623" y="1389" type="curve" smooth="yes"/>
+ <point x="317" y="1389"/>
+ <point x="190" y="1173"/>
+ <point x="190" y="1017" type="curve" smooth="yes"/>
+ <point x="190" y="860"/>
+ <point x="253" y="739"/>
+ <point x="540" y="653" type="curve" smooth="yes"/>
+ <point x="827" y="567"/>
+ <point x="871" y="492"/>
+ <point x="871" y="396" type="curve" smooth="yes"/>
+ <point x="871" y="247"/>
+ <point x="734" y="161"/>
+ <point x="586" y="161" type="curve" smooth="yes"/>
+ <point x="450" y="161"/>
+ <point x="316" y="207"/>
+ <point x="195" y="313" type="curve"/>
+ <point x="153" y="124" type="line"/>
+ <point x="247" y="52"/>
+ <point x="408" y="0"/>
+ <point x="586" y="0" type="curve" smooth="yes"/>
+ <point x="837" y="0"/>
+ <point x="1046" y="167"/>
+ <point x="1046" y="414" type="curve" smooth="yes"/>
+ <point x="1046" y="613"/>
+ <point x="912" y="725"/>
+ <point x="669" y="796" type="curve" smooth="yes"/>
+ <point x="406" y="873"/>
+ <point x="365" y="929"/>
+ <point x="365" y="1030" type="curve" smooth="yes"/>
+ <point x="365" y="1132"/>
+ <point x="466" y="1228"/>
+ <point x="613" y="1228" type="curve" smooth="yes"/>
+ <point x="731" y="1228"/>
+ <point x="818" y="1200"/>
+ <point x="949" y="1127" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/D_ottedC_irc.glif b/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/D_ottedC_irc.glif
new file mode 100644
index 0000000..4cf5cb4
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/D_ottedC_irc.glif
@@ -0,0 +1,235 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DottedCirc" format="2">
+ <advance width="1106"/>
+ <unicode hex="25CC"/>
+ <anchor x="553" y="0" name="H"/>
+ <anchor x="553" y="-100" name="L"/>
+ <anchor x="810" y="0" name="O"/>
+ <anchor x="553" y="1000" name="U"/>
+ <outline>
+ <contour>
+ <point x="443" y="837" type="curve" smooth="yes"/>
+ <point x="443" y="864"/>
+ <point x="423" y="885"/>
+ <point x="398" y="885" type="curve" smooth="yes"/>
+ <point x="371" y="885"/>
+ <point x="348" y="861"/>
+ <point x="348" y="837" type="curve" smooth="yes"/>
+ <point x="348" y="809"/>
+ <point x="372" y="789"/>
+ <point x="398" y="789" type="curve" smooth="yes"/>
+ <point x="425" y="789"/>
+ <point x="443" y="812"/>
+ </contour>
+ <contour>
+ <point x="758" y="79" type="curve" smooth="yes"/>
+ <point x="758" y="106"/>
+ <point x="736" y="127"/>
+ <point x="710" y="127" type="curve" smooth="yes"/>
+ <point x="685" y="127"/>
+ <point x="662" y="103"/>
+ <point x="662" y="80" type="curve" smooth="yes"/>
+ <point x="662" y="52"/>
+ <point x="686" y="31"/>
+ <point x="710" y="31" type="curve" smooth="yes"/>
+ <point x="737" y="31"/>
+ <point x="758" y="55"/>
+ </contour>
+ <contour>
+ <point x="310" y="749" type="curve" smooth="yes"/>
+ <point x="310" y="775"/>
+ <point x="288" y="796"/>
+ <point x="263" y="796" type="curve" smooth="yes"/>
+ <point x="238" y="796"/>
+ <point x="215" y="774"/>
+ <point x="215" y="747" type="curve" smooth="yes"/>
+ <point x="215" y="722"/>
+ <point x="236" y="701"/>
+ <point x="263" y="701" type="curve" smooth="yes"/>
+ <point x="291" y="701"/>
+ <point x="310" y="720"/>
+ </contour>
+ <contour>
+ <point x="891" y="168" type="curve" smooth="yes"/>
+ <point x="891" y="197"/>
+ <point x="870" y="215"/>
+ <point x="843" y="215" type="curve" smooth="yes"/>
+ <point x="817" y="215"/>
+ <point x="795" y="194"/>
+ <point x="795" y="168" type="curve" smooth="yes"/>
+ <point x="795" y="143"/>
+ <point x="816" y="121"/>
+ <point x="843" y="121" type="curve" smooth="yes"/>
+ <point x="871" y="121"/>
+ <point x="891" y="143"/>
+ </contour>
+ <contour>
+ <point x="222" y="613" type="curve" smooth="yes"/>
+ <point x="222" y="640"/>
+ <point x="199" y="663"/>
+ <point x="173" y="663" type="curve" smooth="yes"/>
+ <point x="149" y="663"/>
+ <point x="126" y="642"/>
+ <point x="126" y="615" type="curve" smooth="yes"/>
+ <point x="126" y="591"/>
+ <point x="145" y="567"/>
+ <point x="173" y="567" type="curve" smooth="yes"/>
+ <point x="197" y="567"/>
+ <point x="222" y="587"/>
+ </contour>
+ <contour>
+ <point x="980" y="301" type="curve" smooth="yes"/>
+ <point x="980" y="327"/>
+ <point x="957" y="348"/>
+ <point x="932" y="348" type="curve" smooth="yes"/>
+ <point x="908" y="348"/>
+ <point x="884" y="332"/>
+ <point x="884" y="301" type="curve" smooth="yes"/>
+ <point x="884" y="277"/>
+ <point x="902" y="254"/>
+ <point x="932" y="254" type="curve" smooth="yes"/>
+ <point x="957" y="254"/>
+ <point x="980" y="274"/>
+ </contour>
+ <contour>
+ <point x="191" y="459" type="curve" smooth="yes"/>
+ <point x="191" y="484"/>
+ <point x="168" y="505"/>
+ <point x="143" y="505" type="curve" smooth="yes"/>
+ <point x="116" y="505"/>
+ <point x="95" y="484"/>
+ <point x="95" y="458" type="curve" smooth="yes"/>
+ <point x="95" y="433"/>
+ <point x="115" y="410"/>
+ <point x="143" y="410" type="curve" smooth="yes"/>
+ <point x="167" y="410"/>
+ <point x="191" y="432"/>
+ </contour>
+ <contour>
+ <point x="1011" y="458" type="curve" smooth="yes"/>
+ <point x="1011" y="484"/>
+ <point x="990" y="506"/>
+ <point x="964" y="506" type="curve" smooth="yes"/>
+ <point x="940" y="506"/>
+ <point x="915" y="484"/>
+ <point x="915" y="457" type="curve" smooth="yes"/>
+ <point x="915" y="433"/>
+ <point x="936" y="411"/>
+ <point x="964" y="411" type="curve" smooth="yes"/>
+ <point x="990" y="411"/>
+ <point x="1011" y="433"/>
+ </contour>
+ <contour>
+ <point x="222" y="302" type="curve" smooth="yes"/>
+ <point x="222" y="328"/>
+ <point x="200" y="348"/>
+ <point x="174" y="348" type="curve" smooth="yes"/>
+ <point x="147" y="348"/>
+ <point x="126" y="326"/>
+ <point x="126" y="302" type="curve" smooth="yes"/>
+ <point x="126" y="275"/>
+ <point x="149" y="253"/>
+ <point x="174" y="253" type="curve" smooth="yes"/>
+ <point x="201" y="253"/>
+ <point x="222" y="277"/>
+ </contour>
+ <contour>
+ <point x="980" y="615" type="curve" smooth="yes"/>
+ <point x="980" y="642"/>
+ <point x="955" y="663"/>
+ <point x="931" y="663" type="curve" smooth="yes"/>
+ <point x="904" y="663"/>
+ <point x="885" y="638"/>
+ <point x="885" y="614" type="curve" smooth="yes"/>
+ <point x="885" y="588"/>
+ <point x="907" y="567"/>
+ <point x="931" y="567" type="curve" smooth="yes"/>
+ <point x="959" y="567"/>
+ <point x="980" y="591"/>
+ </contour>
+ <contour>
+ <point x="310" y="168" type="curve" smooth="yes"/>
+ <point x="310" y="195"/>
+ <point x="291" y="215"/>
+ <point x="263" y="215" type="curve" smooth="yes"/>
+ <point x="238" y="215"/>
+ <point x="215" y="190"/>
+ <point x="215" y="168" type="curve" smooth="yes"/>
+ <point x="215" y="143"/>
+ <point x="238" y="120"/>
+ <point x="263" y="120" type="curve" smooth="yes"/>
+ <point x="289" y="120"/>
+ <point x="310" y="143"/>
+ </contour>
+ <contour>
+ <point x="890" y="748" type="curve" smooth="yes"/>
+ <point x="890" y="774"/>
+ <point x="870" y="796"/>
+ <point x="843" y="796" type="curve" smooth="yes"/>
+ <point x="815" y="796"/>
+ <point x="796" y="773"/>
+ <point x="796" y="748" type="curve" smooth="yes"/>
+ <point x="796" y="724"/>
+ <point x="817" y="700"/>
+ <point x="843" y="700" type="curve" smooth="yes"/>
+ <point x="869" y="700"/>
+ <point x="890" y="722"/>
+ </contour>
+ <contour>
+ <point x="444" y="78" type="curve" smooth="yes"/>
+ <point x="444" y="102"/>
+ <point x="423" y="126"/>
+ <point x="396" y="126" type="curve" smooth="yes"/>
+ <point x="370" y="126"/>
+ <point x="348" y="102"/>
+ <point x="348" y="78" type="curve" smooth="yes"/>
+ <point x="348" y="55"/>
+ <point x="370" y="31"/>
+ <point x="396" y="31" type="curve" smooth="yes"/>
+ <point x="420" y="31"/>
+ <point x="444" y="51"/>
+ </contour>
+ <contour>
+ <point x="758" y="836" type="curve" smooth="yes"/>
+ <point x="758" y="861"/>
+ <point x="737" y="885"/>
+ <point x="710" y="885" type="curve" smooth="yes"/>
+ <point x="684" y="885"/>
+ <point x="663" y="862"/>
+ <point x="663" y="838" type="curve" smooth="yes"/>
+ <point x="663" y="814"/>
+ <point x="683" y="789"/>
+ <point x="710" y="789" type="curve" smooth="yes"/>
+ <point x="734" y="789"/>
+ <point x="758" y="809"/>
+ </contour>
+ <contour>
+ <point x="601" y="47" type="curve" smooth="yes"/>
+ <point x="601" y="73"/>
+ <point x="579" y="95"/>
+ <point x="553" y="95" type="curve" smooth="yes"/>
+ <point x="527" y="95"/>
+ <point x="506" y="73"/>
+ <point x="506" y="47" type="curve" smooth="yes"/>
+ <point x="506" y="21"/>
+ <point x="527" y="0"/>
+ <point x="553" y="0" type="curve" smooth="yes"/>
+ <point x="579" y="0"/>
+ <point x="601" y="21"/>
+ </contour>
+ <contour>
+ <point x="601" y="868" type="curve" smooth="yes"/>
+ <point x="601" y="894"/>
+ <point x="579" y="916"/>
+ <point x="553" y="916" type="curve" smooth="yes"/>
+ <point x="527" y="916"/>
+ <point x="506" y="894"/>
+ <point x="506" y="868" type="curve" smooth="yes"/>
+ <point x="506" y="842"/>
+ <point x="527" y="821"/>
+ <point x="553" y="821" type="curve" smooth="yes"/>
+ <point x="579" y="821"/>
+ <point x="601" y="842"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/E_qS_gn.glif b/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/E_qS_gn.glif
new file mode 100644
index 0000000..1315ffa
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/E_qS_gn.glif
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="EqSgn" format="2">
+ <advance width="1200"/>
+ <unicode hex="003D"/>
+ <outline>
+ <contour>
+ <point x="120" y="480" type="line"/>
+ <point x="1080" y="480" type="line"/>
+ <point x="1080" y="630" type="line"/>
+ <point x="120" y="630" type="line"/>
+ </contour>
+ <contour>
+ <point x="120" y="830" type="line"/>
+ <point x="1080" y="830" type="line"/>
+ <point x="1080" y="980" type="line"/>
+ <point x="120" y="980" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/E_xclamationM_rk.glif b/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/E_xclamationM_rk.glif
new file mode 100644
index 0000000..e683644
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/E_xclamationM_rk.glif
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="ExclamationMrk" format="2">
+ <advance width="764"/>
+ <unicode hex="0021"/>
+ <outline>
+ <contour>
+ <point x="450" y="440" type="line"/>
+ <point x="456" y="730"/>
+ <point x="451" y="1076"/>
+ <point x="490" y="1510" type="curve"/>
+ <point x="235" y="1510" type="line"/>
+ <point x="273" y="1076"/>
+ <point x="268" y="730"/>
+ <point x="275" y="440" type="curve"/>
+ </contour>
+ <contour>
+ <point x="225" y="110" type="curve" smooth="yes"/>
+ <point x="225" y="36"/>
+ <point x="286" y="-25"/>
+ <point x="360" y="-25" type="curve" smooth="yes"/>
+ <point x="434" y="-25"/>
+ <point x="495" y="36"/>
+ <point x="495" y="110" type="curve" smooth="yes"/>
+ <point x="495" y="184"/>
+ <point x="434" y="245"/>
+ <point x="360" y="245" type="curve" smooth="yes"/>
+ <point x="286" y="245"/>
+ <point x="225" y="184"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/F_ullS_top.glif b/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/F_ullS_top.glif
new file mode 100644
index 0000000..9f3a3f0
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/F_ullS_top.glif
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="FullStop" format="2">
+ <advance width="640"/>
+ <unicode hex="002E"/>
+ <outline>
+ <contour>
+ <point x="185" y="110" type="curve" smooth="yes"/>
+ <point x="185" y="36"/>
+ <point x="246" y="-25"/>
+ <point x="320" y="-25" type="curve" smooth="yes"/>
+ <point x="394" y="-25"/>
+ <point x="455" y="36"/>
+ <point x="455" y="110" type="curve" smooth="yes"/>
+ <point x="455" y="184"/>
+ <point x="394" y="245"/>
+ <point x="320" y="245" type="curve" smooth="yes"/>
+ <point x="246" y="245"/>
+ <point x="185" y="184"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/G_T_S_gn.glif b/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/G_T_S_gn.glif
new file mode 100644
index 0000000..c591997
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/G_T_S_gn.glif
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="GTSgn" format="2">
+ <advance width="1200"/>
+ <unicode hex="003E"/>
+ <outline>
+ <contour>
+ <point x="120" y="1035" type="line"/>
+ <point x="910" y="730" type="line"/>
+ <point x="120" y="425" type="line"/>
+ <point x="120" y="245" type="line"/>
+ <point x="1100" y="645" type="line"/>
+ <point x="1100" y="815" type="line"/>
+ <point x="120" y="1215" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/G_raveA_ccent.glif b/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/G_raveA_ccent.glif
new file mode 100644
index 0000000..a0a0004
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/G_raveA_ccent.glif
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="GraveAccent" format="2">
+ <advance width="580"/>
+ <unicode hex="0060"/>
+ <outline>
+ <component base="CombGrave" xOffset="940"/>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/H_yphen.glif b/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/H_yphen.glif
new file mode 100644
index 0000000..fabf6ce
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/H_yphen.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Hyphen" format="2">
+ <advance width="860"/>
+ <unicode hex="2010"/>
+ <anchor x="430" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="80" y="555" type="line"/>
+ <point x="780" y="555" type="line"/>
+ <point x="780" y="705" type="line"/>
+ <point x="80" y="705" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/H_yphenM_inus.glif b/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/H_yphenM_inus.glif
new file mode 100644
index 0000000..bc3f4eb
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/H_yphenM_inus.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="HyphenMinus" format="2">
+ <advance width="860"/>
+ <unicode hex="002D"/>
+ <anchor x="430" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="80" y="555" type="line"/>
+ <point x="780" y="555" type="line"/>
+ <point x="780" y="705" type="line"/>
+ <point x="80" y="705" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/H_yphen_S_oft.glif b/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/H_yphen_S_oft.glif
new file mode 100644
index 0000000..293b653
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/H_yphen_S_oft.glif
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Hyphen_Soft" format="2">
+ <advance width="860"/>
+ <unicode hex="00AD"/>
+ <anchor x="430" y="1100" name="U"/>
+ <outline>
+ <component base="HyphenMinus"/>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_T_S_gn.glif b/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_T_S_gn.glif
new file mode 100644
index 0000000..db9ae78
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_T_S_gn.glif
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LTSgn" format="2">
+ <advance width="1200"/>
+ <unicode hex="003C"/>
+ <outline>
+ <contour>
+ <point x="1080" y="425" type="line"/>
+ <point x="290" y="730" type="line"/>
+ <point x="1080" y="1035" type="line"/>
+ <point x="1080" y="1215" type="line"/>
+ <point x="100" y="815" type="line"/>
+ <point x="100" y="645" type="line"/>
+ <point x="1080" y="245" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_ftC_urlyB_rac.glif b/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_ftC_urlyB_rac.glif
new file mode 100644
index 0000000..bc7ef03
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_ftC_urlyB_rac.glif
@@ -0,0 +1,47 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LftCurlyBrac" format="2">
+ <advance width="1000"/>
+ <unicode hex="007B"/>
+ <outline>
+ <contour>
+ <point x="210" y="615" type="curve" smooth="yes"/>
+ <point x="210" y="583"/>
+ <point x="383" y="486"/>
+ <point x="410" y="450" type="curve" smooth="yes"/>
+ <point x="434" y="418"/>
+ <point x="424" y="-205"/>
+ <point x="495" y="-285" type="curve" smooth="yes"/>
+ <point x="535" y="-330"/>
+ <point x="696" y="-383"/>
+ <point x="800" y="-410" type="curve"/>
+ <point x="840" y="-270" type="line"/>
+ <point x="773" y="-247"/>
+ <point x="650" y="-198"/>
+ <point x="630" y="-170" type="curve" smooth="yes"/>
+ <point x="597" y="-123"/>
+ <point x="610" y="447"/>
+ <point x="590" y="485" type="curve" smooth="yes"/>
+ <point x="571" y="521"/>
+ <point x="434" y="593"/>
+ <point x="430" y="615" type="curve"/>
+ <point x="434" y="637"/>
+ <point x="571" y="709"/>
+ <point x="590" y="745" type="curve" smooth="yes"/>
+ <point x="610" y="783"/>
+ <point x="597" y="1353"/>
+ <point x="630" y="1400" type="curve" smooth="yes"/>
+ <point x="650" y="1428"/>
+ <point x="773" y="1477"/>
+ <point x="840" y="1500" type="curve"/>
+ <point x="800" y="1640" type="line"/>
+ <point x="696" y="1613"/>
+ <point x="535" y="1560"/>
+ <point x="495" y="1515" type="curve" smooth="yes"/>
+ <point x="424" y="1435"/>
+ <point x="434" y="812"/>
+ <point x="410" y="780" type="curve" smooth="yes"/>
+ <point x="383" y="744"/>
+ <point x="210" y="647"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_ftP_aren.glif b/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_ftP_aren.glif
new file mode 100644
index 0000000..a4b9814
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_ftP_aren.glif
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LftParen" format="2">
+ <advance width="795"/>
+ <unicode hex="0028"/>
+ <outline>
+ <contour>
+ <point x="115" y="625" type="curve" smooth="yes"/>
+ <point x="115" y="218"/>
+ <point x="260" y="-125"/>
+ <point x="535" y="-410" type="curve"/>
+ <point x="630" y="-265" type="line"/>
+ <point x="395" y="-8"/>
+ <point x="305" y="278"/>
+ <point x="305" y="625" type="curve" smooth="yes"/>
+ <point x="305" y="982"/>
+ <point x="395" y="1280"/>
+ <point x="630" y="1485" type="curve"/>
+ <point x="555" y="1640" type="line"/>
+ <point x="290" y="1444"/>
+ <point x="115" y="1062"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_ftS_qrB_rac.glif b/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_ftS_qrB_rac.glif
new file mode 100644
index 0000000..e97ed98
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_ftS_qrB_rac.glif
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LftSqrBrac" format="2">
+ <advance width="790"/>
+ <unicode hex="005B"/>
+ <outline>
+ <contour>
+ <point x="640" y="-410" type="line"/>
+ <point x="640" y="-260" type="line"/>
+ <point x="385" y="-260" type="line"/>
+ <point x="385" y="1450" type="line"/>
+ <point x="640" y="1450" type="line"/>
+ <point x="640" y="1600" type="line"/>
+ <point x="200" y="1600" type="line"/>
+ <point x="200" y="-410" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_owL_ine.glif b/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_owL_ine.glif
new file mode 100644
index 0000000..2fc71eb
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_owL_ine.glif
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LowLine" format="2">
+ <advance width="1274"/>
+ <unicode hex="005F"/>
+ <outline>
+ <contour>
+ <point x="0" y="-320" type="line"/>
+ <point x="1274" y="-320" type="line"/>
+ <point x="1274" y="-170" type="line"/>
+ <point x="0" y="-170" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_tnC_apA_.alt.glif b/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_tnC_apA_.alt.glif
new file mode 100644
index 0000000..fbdfff2
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_tnC_apA_.alt.glif
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapA.alt" format="2">
+ <advance width="1395"/>
+ <anchor x="668" y="1460" name="H"/>
+ <anchor x="688" y="1560" name="L"/>
+ <anchor x="-75" y="1460" name="O"/>
+ <anchor x="688" y="-70" name="U"/>
+ <outline>
+ <contour>
+ <point x="1130" y="1460" type="line"/>
+ <point x="996" y="1075" type="line"/>
+ <point x="381" y="1075" type="line"/>
+ <point x="245" y="1460" type="line"/>
+ <point x="40" y="1460" type="line"/>
+ <point x="75" y="1380"/>
+ <point x="113" y="1291"/>
+ <point x="180" y="1105" type="curve" smooth="yes"/>
+ <point x="580" y="0" type="line"/>
+ <point x="795" y="0" type="line"/>
+ <point x="1195" y="1105" type="line" smooth="yes"/>
+ <point x="1263" y="1292"/>
+ <point x="1299" y="1379"/>
+ <point x="1335" y="1460" type="curve"/>
+ </contour>
+ <contour>
+ <point x="435" y="920" type="line"/>
+ <point x="942" y="920" type="line"/>
+ <point x="690" y="195" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_tnC_apA_.glif b/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_tnC_apA_.glif
new file mode 100644
index 0000000..3c64e18
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_tnC_apA_.glif
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapA" format="2">
+ <advance width="1395"/>
+ <unicode hex="0041"/>
+ <anchor x="707" y="0" name="H"/>
+ <anchor x="687" y="-100" name="L"/>
+ <anchor x="1450" y="0" name="O"/>
+ <anchor x="687" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="245" y="0" type="line"/>
+ <point x="379" y="385" type="line"/>
+ <point x="994" y="385" type="line"/>
+ <point x="1130" y="0" type="line"/>
+ <point x="1335" y="0" type="line"/>
+ <point x="1300" y="80"/>
+ <point x="1262" y="169"/>
+ <point x="1195" y="355" type="curve" smooth="yes"/>
+ <point x="795" y="1460" type="line"/>
+ <point x="580" y="1460" type="line"/>
+ <point x="180" y="355" type="line" smooth="yes"/>
+ <point x="112" y="168"/>
+ <point x="76" y="81"/>
+ <point x="40" y="0" type="curve"/>
+ </contour>
+ <contour>
+ <point x="940" y="540" type="line"/>
+ <point x="433" y="540" type="line"/>
+ <point x="685" y="1265" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_tnC_apA_D_iaer.glif b/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_tnC_apA_D_iaer.glif
new file mode 100644
index 0000000..b74cc60
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_tnC_apA_D_iaer.glif
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapADiaer" format="2">
+ <advance width="1395"/>
+ <unicode hex="00C4"/>
+ <anchor x="707" y="0" name="H"/>
+ <anchor x="687" y="-100" name="L"/>
+ <anchor x="1450" y="0" name="O"/>
+ <anchor x="687" y="1935" name="U"/>
+ <outline>
+ <component base="LtnCapA"/>
+ <component base="CombDiaer" xOffset="1257" yOffset="430"/>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_tnC_apB_.glif b/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_tnC_apB_.glif
new file mode 100644
index 0000000..415122e
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_tnC_apB_.glif
@@ -0,0 +1,62 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapB" format="2">
+ <advance width="1285"/>
+ <unicode hex="0042"/>
+ <anchor x="615" y="-100" name="L"/>
+ <anchor x="615" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="365" y="1310" type="line"/>
+ <point x="407" y="1312"/>
+ <point x="512" y="1315"/>
+ <point x="590" y="1315" type="curve" smooth="yes"/>
+ <point x="791" y="1315"/>
+ <point x="870" y="1239"/>
+ <point x="870" y="1090" type="curve" smooth="yes"/>
+ <point x="870" y="951"/>
+ <point x="774" y="855"/>
+ <point x="560" y="855" type="curve" smooth="yes"/>
+ <point x="365" y="855" type="line"/>
+ </contour>
+ <contour>
+ <point x="175" y="455" type="line"/>
+ <point x="175" y="257"/>
+ <point x="175" y="80"/>
+ <point x="160" y="0" type="curve"/>
+ <point x="213" y="-5"/>
+ <point x="402" y="-10"/>
+ <point x="605" y="-10" type="curve" smooth="yes"/>
+ <point x="988" y="-10"/>
+ <point x="1140" y="177"/>
+ <point x="1140" y="420" type="curve" smooth="yes"/>
+ <point x="1140" y="669"/>
+ <point x="974" y="759"/>
+ <point x="820" y="800" type="curve"/>
+ <point x="956" y="852"/>
+ <point x="1065" y="952"/>
+ <point x="1065" y="1120" type="curve" smooth="yes"/>
+ <point x="1065" y="1381"/>
+ <point x="897" y="1470"/>
+ <point x="600" y="1470" type="curve" smooth="yes"/>
+ <point x="431" y="1470"/>
+ <point x="248" y="1466"/>
+ <point x="160" y="1460" type="curve"/>
+ <point x="175" y="1380"/>
+ <point x="175" y="1196"/>
+ <point x="175" y="1000" type="curve" smooth="yes"/>
+ </contour>
+ <contour>
+ <point x="365" y="700" type="line"/>
+ <point x="600" y="700" type="line" smooth="yes"/>
+ <point x="833" y="700"/>
+ <point x="945" y="604"/>
+ <point x="945" y="420" type="curve" smooth="yes"/>
+ <point x="945" y="212"/>
+ <point x="781" y="150"/>
+ <point x="610" y="150" type="curve" smooth="yes"/>
+ <point x="498" y="150"/>
+ <point x="402" y="153"/>
+ <point x="365" y="155" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_tnC_apC_.glif b/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_tnC_apC_.glif
new file mode 100644
index 0000000..daf4f2d
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_tnC_apC_.glif
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapC" format="2">
+ <advance width="1355"/>
+ <unicode hex="0043"/>
+ <anchor x="750" y="0" name="H"/>
+ <anchor x="750" y="-100" name="L"/>
+ <anchor x="750" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1190" y="335" type="line"/>
+ <point x="1078" y="223"/>
+ <point x="912" y="150"/>
+ <point x="760" y="150" type="curve" smooth="yes"/>
+ <point x="489" y="150"/>
+ <point x="290" y="376"/>
+ <point x="290" y="735" type="curve" smooth="yes"/>
+ <point x="290" y="1119"/>
+ <point x="491" y="1315"/>
+ <point x="770" y="1315" type="curve" smooth="yes"/>
+ <point x="891" y="1315"/>
+ <point x="1030" y="1278"/>
+ <point x="1155" y="1165" type="curve"/>
+ <point x="1215" y="1345" type="line"/>
+ <point x="1072" y="1452"/>
+ <point x="913" y="1485"/>
+ <point x="770" y="1485" type="curve" smooth="yes"/>
+ <point x="418" y="1485"/>
+ <point x="95" y="1225"/>
+ <point x="95" y="710" type="curve" smooth="yes"/>
+ <point x="95" y="260"/>
+ <point x="346" y="-25"/>
+ <point x="750" y="-25" type="curve" smooth="yes"/>
+ <point x="902" y="-25"/>
+ <point x="1114" y="32"/>
+ <point x="1230" y="140" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_tnC_apD_.glif b/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_tnC_apD_.glif
new file mode 100644
index 0000000..9154a06
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_tnC_apD_.glif
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapD" format="2">
+ <advance width="1435"/>
+ <unicode hex="0044"/>
+ <anchor x="715" y="-100" name="L"/>
+ <anchor x="715" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="175" y="455" type="line"/>
+ <point x="174" y="257"/>
+ <point x="175" y="80"/>
+ <point x="160" y="0" type="curve"/>
+ <point x="160" y="0"/>
+ <point x="467" y="-10"/>
+ <point x="595" y="-10" type="curve" smooth="yes"/>
+ <point x="888" y="-10"/>
+ <point x="1315" y="145"/>
+ <point x="1315" y="740" type="curve" smooth="yes"/>
+ <point x="1315" y="1394"/>
+ <point x="829" y="1470"/>
+ <point x="615" y="1470" type="curve" smooth="yes"/>
+ <point x="480" y="1470"/>
+ <point x="245" y="1466"/>
+ <point x="160" y="1460" type="curve"/>
+ <point x="175" y="1380"/>
+ <point x="175" y="1196"/>
+ <point x="175" y="1000" type="curve" smooth="yes"/>
+ </contour>
+ <contour>
+ <point x="365" y="1305" type="line"/>
+ <point x="415" y="1307"/>
+ <point x="524" y="1310"/>
+ <point x="590" y="1310" type="curve" smooth="yes"/>
+ <point x="878" y="1310"/>
+ <point x="1120" y="1167"/>
+ <point x="1120" y="720" type="curve" smooth="yes"/>
+ <point x="1120" y="308"/>
+ <point x="853" y="155"/>
+ <point x="585" y="155" type="curve" smooth="yes"/>
+ <point x="490" y="155"/>
+ <point x="412" y="161"/>
+ <point x="365" y="165" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_tnC_apE_.glif b/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_tnC_apE_.glif
new file mode 100644
index 0000000..e5d0043
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_tnC_apE_.glif
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapE" format="2">
+ <advance width="1160"/>
+ <unicode hex="0045"/>
+ <anchor x="600" y="0" name="H"/>
+ <anchor x="600" y="-100" name="L"/>
+ <anchor x="917" y="0" name="O"/>
+ <anchor x="1160" y="1200" name="R"/>
+ <anchor x="600" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="365" y="845" type="line"/>
+ <point x="365" y="1295" type="line"/>
+ <point x="1010" y="1295" type="line"/>
+ <point x="1010" y="1460" type="line"/>
+ <point x="160" y="1460" type="line"/>
+ <point x="175" y="1380"/>
+ <point x="175" y="1222"/>
+ <point x="175" y="1025" type="curve" smooth="yes"/>
+ <point x="175" y="435" type="line" smooth="yes"/>
+ <point x="175" y="238"/>
+ <point x="175" y="80"/>
+ <point x="160" y="0" type="curve"/>
+ <point x="1040" y="0" type="line"/>
+ <point x="1040" y="180" type="line"/>
+ <point x="960" y="166"/>
+ <point x="826" y="165"/>
+ <point x="629" y="165" type="curve" smooth="yes"/>
+ <point x="365" y="165" type="line"/>
+ <point x="365" y="685" type="line"/>
+ <point x="935" y="685" type="line"/>
+ <point x="935" y="845" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_tnC_apF_.glif b/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_tnC_apF_.glif
new file mode 100644
index 0000000..deb38fb
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_tnC_apF_.glif
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapF" format="2">
+ <advance width="1150"/>
+ <unicode hex="0046"/>
+ <anchor x="595" y="-100" name="L"/>
+ <anchor x="595" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="365" y="835" type="line"/>
+ <point x="365" y="1295" type="line"/>
+ <point x="1030" y="1295" type="line"/>
+ <point x="1030" y="1460" type="line"/>
+ <point x="160" y="1460" type="line"/>
+ <point x="175" y="1380"/>
+ <point x="175" y="1217"/>
+ <point x="175" y="1020" type="curve" smooth="yes"/>
+ <point x="175" y="435" type="line" smooth="yes"/>
+ <point x="175" y="238"/>
+ <point x="175" y="80"/>
+ <point x="160" y="0" type="curve"/>
+ <point x="380" y="0" type="line"/>
+ <point x="365" y="78"/>
+ <point x="365" y="237"/>
+ <point x="365" y="435" type="curve" smooth="yes"/>
+ <point x="365" y="675" type="line"/>
+ <point x="945" y="675" type="line"/>
+ <point x="945" y="835" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_tnC_apG_.glif b/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_tnC_apG_.glif
new file mode 100644
index 0000000..477d223
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_tnC_apG_.glif
@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapG" format="2">
+ <advance width="1420"/>
+ <unicode hex="0047"/>
+ <anchor x="745" y="0" name="H"/>
+ <anchor x="745" y="-100" name="L"/>
+ <anchor x="745" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1275" y="745" type="line"/>
+ <point x="735" y="745" type="line"/>
+ <point x="735" y="580" type="line"/>
+ <point x="1085" y="580" type="line"/>
+ <point x="1085" y="245" type="line"/>
+ <point x="963" y="171"/>
+ <point x="876" y="150"/>
+ <point x="757" y="150" type="curve" smooth="yes"/>
+ <point x="471" y="150"/>
+ <point x="290" y="377"/>
+ <point x="290" y="745" type="curve" smooth="yes"/>
+ <point x="290" y="1094"/>
+ <point x="480" y="1315"/>
+ <point x="785" y="1315" type="curve" smooth="yes"/>
+ <point x="918" y="1315"/>
+ <point x="1046" y="1286"/>
+ <point x="1195" y="1165" type="curve"/>
+ <point x="1260" y="1345" type="line"/>
+ <point x="1085" y="1462"/>
+ <point x="947" y="1485"/>
+ <point x="785" y="1485" type="curve" smooth="yes"/>
+ <point x="402" y="1485"/>
+ <point x="95" y="1199"/>
+ <point x="95" y="720" type="curve" smooth="yes"/>
+ <point x="95" y="241"/>
+ <point x="367" y="-25"/>
+ <point x="745" y="-25" type="curve" smooth="yes"/>
+ <point x="918" y="-25"/>
+ <point x="1070" y="11"/>
+ <point x="1275" y="155" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_tnC_apH_.glif b/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_tnC_apH_.glif
new file mode 100644
index 0000000..5924270
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_tnC_apH_.glif
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapH" format="2">
+ <advance width="1475"/>
+ <unicode hex="0048"/>
+ <anchor x="285" y="0" name="H"/>
+ <anchor x="725" y="-100" name="L"/>
+ <anchor x="725" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1290" y="0" type="line"/>
+ <point x="1275" y="80"/>
+ <point x="1275" y="238"/>
+ <point x="1275" y="435" type="curve" smooth="yes"/>
+ <point x="1275" y="1025" type="line" smooth="yes"/>
+ <point x="1275" y="1222"/>
+ <point x="1275" y="1380"/>
+ <point x="1290" y="1460" type="curve"/>
+ <point x="1085" y="1460" type="line"/>
+ <point x="1085" y="835" type="line"/>
+ <point x="365" y="835" type="line"/>
+ <point x="365" y="1460" type="line"/>
+ <point x="160" y="1460" type="line"/>
+ <point x="175" y="1380"/>
+ <point x="175" y="1222"/>
+ <point x="175" y="1025" type="curve" smooth="yes"/>
+ <point x="175" y="435" type="line" smooth="yes"/>
+ <point x="175" y="238"/>
+ <point x="175" y="80"/>
+ <point x="160" y="0" type="curve"/>
+ <point x="365" y="0" type="line"/>
+ <point x="365" y="675" type="line"/>
+ <point x="1085" y="675" type="line"/>
+ <point x="1085" y="0" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_tnC_apI_.glif b/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_tnC_apI_.glif
new file mode 100644
index 0000000..c6001c3
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_tnC_apI_.glif
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapI" format="2">
+ <advance width="975"/>
+ <unicode hex="0049"/>
+ <anchor x="477" y="0" name="H"/>
+ <anchor x="477" y="-100" name="L"/>
+ <anchor x="673" y="0" name="O"/>
+ <anchor x="975" y="1200" name="R"/>
+ <anchor x="477" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="140" y="1460" type="line"/>
+ <point x="140" y="1315" type="line"/>
+ <point x="380" y="1315" type="line"/>
+ <point x="380" y="145" type="line"/>
+ <point x="140" y="145" type="line"/>
+ <point x="140" y="0" type="line"/>
+ <point x="815" y="0" type="line"/>
+ <point x="815" y="145" type="line"/>
+ <point x="570" y="145" type="line"/>
+ <point x="570" y="1315" type="line"/>
+ <point x="815" y="1315" type="line"/>
+ <point x="815" y="1460" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_tnC_apJ_.glif b/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_tnC_apJ_.glif
new file mode 100644
index 0000000..457e39d
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_tnC_apJ_.glif
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapJ" format="2">
+ <advance width="965"/>
+ <unicode hex="004A"/>
+ <anchor x="410" y="-100" name="L"/>
+ <anchor x="675" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="575" y="1460" type="line"/>
+ <point x="588" y="1354"/>
+ <point x="590" y="1175"/>
+ <point x="590" y="980" type="curve"/>
+ <point x="590" y="485" type="line" smooth="yes"/>
+ <point x="590" y="256"/>
+ <point x="487" y="155"/>
+ <point x="340" y="155" type="curve" smooth="yes"/>
+ <point x="248" y="155"/>
+ <point x="147" y="198"/>
+ <point x="80" y="275" type="curve"/>
+ <point x="35" y="90" type="line"/>
+ <point x="106" y="9"/>
+ <point x="250" y="-25"/>
+ <point x="345" y="-25" type="curve" smooth="yes"/>
+ <point x="602" y="-25"/>
+ <point x="780" y="119"/>
+ <point x="780" y="535" type="curve" smooth="yes"/>
+ <point x="780" y="1460" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_tnC_apK_.glif b/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_tnC_apK_.glif
new file mode 100644
index 0000000..b3f4cdd
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_tnC_apK_.glif
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapK" format="2">
+ <advance width="1310"/>
+ <unicode hex="004B"/>
+ <anchor x="270" y="0" name="H"/>
+ <anchor x="695" y="-100" name="L"/>
+ <anchor x="650" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="925" y="1460" type="line"/>
+ <point x="295" y="703" type="line"/>
+ <point x="425" y="745" type="line"/>
+ <point x="530" y="740" type="line"/>
+ <point x="1165" y="1460" type="line"/>
+ </contour>
+ <contour>
+ <point x="350" y="735" type="line"/>
+ <point x="985" y="0" type="line"/>
+ <point x="1230" y="0" type="line"/>
+ <point x="485" y="860" type="line"/>
+ </contour>
+ <contour>
+ <point x="365" y="1460" type="line"/>
+ <point x="160" y="1460" type="line"/>
+ <point x="175" y="1380"/>
+ <point x="175" y="1222"/>
+ <point x="175" y="1025" type="curve" smooth="yes"/>
+ <point x="175" y="435" type="line" smooth="yes"/>
+ <point x="175" y="238"/>
+ <point x="175" y="80"/>
+ <point x="160" y="0" type="curve"/>
+ <point x="365" y="0" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_tnC_apL_.glif b/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_tnC_apL_.glif
new file mode 100644
index 0000000..3d5883a
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_tnC_apL_.glif
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapL" format="2">
+ <advance width="1080"/>
+ <unicode hex="004C"/>
+ <anchor x="592" y="0" name="H"/>
+ <anchor x="592" y="-100" name="L"/>
+ <anchor x="540" y="1200" name="R"/>
+ <anchor x="592" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="365" y="165" type="line"/>
+ <point x="365" y="1460" type="line"/>
+ <point x="160" y="1460" type="line"/>
+ <point x="175" y="1380"/>
+ <point x="175" y="1222"/>
+ <point x="175" y="1025" type="curve" smooth="yes"/>
+ <point x="175" y="435" type="line" smooth="yes"/>
+ <point x="175" y="238"/>
+ <point x="175" y="80"/>
+ <point x="160" y="0" type="curve"/>
+ <point x="1025" y="0" type="line"/>
+ <point x="1025" y="180" type="line"/>
+ <point x="945" y="166"/>
+ <point x="786" y="165"/>
+ <point x="589" y="165" type="curve" smooth="yes"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_tnC_apM_.glif b/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_tnC_apM_.glif
new file mode 100644
index 0000000..fbdf3b1
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_tnC_apM_.glif
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapM" format="2">
+ <advance width="1795"/>
+ <unicode hex="004D"/>
+ <anchor x="1521" y="0" name="H"/>
+ <anchor x="885" y="-100" name="L"/>
+ <anchor x="885" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="885" y="205" type="line"/>
+ <point x="455" y="1460" type="line"/>
+ <point x="285" y="1460" type="line"/>
+ <point x="790" y="0" type="line"/>
+ <point x="985" y="0" type="line"/>
+ <point x="1487" y="1460" type="line"/>
+ <point x="1320" y="1460" type="line"/>
+ </contour>
+ <contour>
+ <point x="230" y="1460" type="line"/>
+ <point x="230" y="1460"/>
+ <point x="186" y="198"/>
+ <point x="160" y="0" type="curve"/>
+ <point x="345" y="0" type="line"/>
+ <point x="377" y="1205" type="line"/>
+ <point x="405" y="1460" type="line"/>
+ </contour>
+ <contour>
+ <point x="1610" y="0" type="line"/>
+ <point x="1581" y="198"/>
+ <point x="1540" y="1460"/>
+ <point x="1540" y="1460" type="curve"/>
+ <point x="1365" y="1460" type="line"/>
+ <point x="1397" y="1205" type="line"/>
+ <point x="1425" y="0" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_tnC_apN_.glif b/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_tnC_apN_.glif
new file mode 100644
index 0000000..360e6e6
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_tnC_apN_.glif
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapN" format="2">
+ <advance width="1500"/>
+ <unicode hex="004E"/>
+ <anchor x="1230" y="0" name="H"/>
+ <anchor x="737" y="-100" name="L"/>
+ <anchor x="737" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="200" y="1355" type="line"/>
+ <point x="1135" y="0" type="line"/>
+ <point x="1275" y="100" type="line"/>
+ <point x="340" y="1460" type="line"/>
+ </contour>
+ <contour>
+ <point x="1135" y="0" type="line"/>
+ <point x="1300" y="0" type="line"/>
+ <point x="1300" y="1025" type="line" smooth="yes"/>
+ <point x="1300" y="1222"/>
+ <point x="1301" y="1380"/>
+ <point x="1315" y="1460" type="curve"/>
+ <point x="1135" y="1460" type="line"/>
+ </contour>
+ <contour>
+ <point x="340" y="1460" type="line"/>
+ <point x="160" y="1460" type="line"/>
+ <point x="175" y="1380"/>
+ <point x="175" y="1222"/>
+ <point x="175" y="1025" type="curve" smooth="yes"/>
+ <point x="175" y="435" type="line" smooth="yes"/>
+ <point x="175" y="238"/>
+ <point x="175" y="80"/>
+ <point x="160" y="0" type="curve"/>
+ <point x="340" y="0" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_tnC_apO_.glif b/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_tnC_apO_.glif
new file mode 100644
index 0000000..e351c3d
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_tnC_apO_.glif
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapO" format="2">
+ <advance width="1460"/>
+ <unicode hex="004F"/>
+ <anchor x="717" y="0" name="H"/>
+ <anchor x="717" y="-100" name="L"/>
+ <anchor x="994" y="0" name="O"/>
+ <anchor x="1460" y="1200" name="R"/>
+ <anchor x="717" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1145" y="715" type="curve" smooth="yes"/>
+ <point x="1145" y="360"/>
+ <point x="965" y="150"/>
+ <point x="720" y="150" type="curve" smooth="yes"/>
+ <point x="460" y="150"/>
+ <point x="290" y="380"/>
+ <point x="290" y="745" type="curve" smooth="yes"/>
+ <point x="290" y="1091"/>
+ <point x="467" y="1310"/>
+ <point x="720" y="1310" type="curve" smooth="yes"/>
+ <point x="974" y="1310"/>
+ <point x="1145" y="1084"/>
+ </contour>
+ <contour>
+ <point x="1340" y="740" type="curve" smooth="yes"/>
+ <point x="1340" y="1219"/>
+ <point x="1048" y="1485"/>
+ <point x="730" y="1485" type="curve" smooth="yes"/>
+ <point x="407" y="1485"/>
+ <point x="95" y="1199"/>
+ <point x="95" y="720" type="curve" smooth="yes"/>
+ <point x="95" y="241"/>
+ <point x="388" y="-25"/>
+ <point x="710" y="-25" type="curve" smooth="yes"/>
+ <point x="1029" y="-25"/>
+ <point x="1340" y="260"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_tnC_apP_.glif b/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_tnC_apP_.glif
new file mode 100644
index 0000000..9f29954
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_tnC_apP_.glif
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapP" format="2">
+ <advance width="1195"/>
+ <unicode hex="0050"/>
+ <anchor x="637" y="-100" name="L"/>
+ <anchor x="637" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="365" y="565" type="line"/>
+ <point x="430" y="558"/>
+ <point x="512" y="555"/>
+ <point x="585" y="555" type="curve" smooth="yes"/>
+ <point x="914" y="555"/>
+ <point x="1115" y="736"/>
+ <point x="1115" y="1030" type="curve" smooth="yes"/>
+ <point x="1115" y="1322"/>
+ <point x="908" y="1470"/>
+ <point x="585" y="1470" type="curve" smooth="yes"/>
+ <point x="372" y="1470"/>
+ <point x="160" y="1460"/>
+ <point x="160" y="1460" type="curve"/>
+ <point x="175" y="1380"/>
+ <point x="175" y="1196"/>
+ <point x="175" y="1000" type="curve"/>
+ <point x="175" y="435" type="line" smooth="yes"/>
+ <point x="175" y="238"/>
+ <point x="175" y="80"/>
+ <point x="160" y="0" type="curve"/>
+ <point x="380" y="0" type="line"/>
+ <point x="366" y="78"/>
+ <point x="365" y="237"/>
+ <point x="365" y="435" type="curve" smooth="yes"/>
+ </contour>
+ <contour>
+ <point x="365" y="1305" type="line"/>
+ <point x="433" y="1308"/>
+ <point x="481" y="1310"/>
+ <point x="575" y="1310" type="curve" smooth="yes"/>
+ <point x="841" y="1310"/>
+ <point x="925" y="1170"/>
+ <point x="925" y="1010" type="curve" smooth="yes"/>
+ <point x="925" y="849"/>
+ <point x="850" y="710"/>
+ <point x="570" y="710" type="curve" smooth="yes"/>
+ <point x="495" y="710"/>
+ <point x="428" y="712"/>
+ <point x="365" y="720" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_tnC_apQ_.glif b/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_tnC_apQ_.glif
new file mode 100644
index 0000000..ddd0351
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_tnC_apQ_.glif
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapQ" format="2">
+ <advance width="1475"/>
+ <unicode hex="0051"/>
+ <anchor x="717" y="-270" name="L"/>
+ <anchor x="717" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1340" y="740" type="curve" smooth="yes"/>
+ <point x="1340" y="1219"/>
+ <point x="1053" y="1485"/>
+ <point x="730" y="1485" type="curve" smooth="yes"/>
+ <point x="407" y="1485"/>
+ <point x="95" y="1199"/>
+ <point x="95" y="720" type="curve" smooth="yes"/>
+ <point x="95" y="241"/>
+ <point x="383" y="-25"/>
+ <point x="705" y="-25" type="curve" smooth="yes"/>
+ <point x="767" y="-25"/>
+ <point x="818" y="-18"/>
+ <point x="875" y="0" type="curve"/>
+ <point x="944" y="0"/>
+ <point x="1236" y="-190"/>
+ <point x="1320" y="-190" type="curve" smooth="yes"/>
+ <point x="1374" y="-190"/>
+ <point x="1431" y="-81"/>
+ <point x="1455" y="-45" type="curve"/>
+ <point x="1321" y="-28"/>
+ <point x="1205" y="28"/>
+ <point x="1080" y="105" type="curve"/>
+ <point x="1256" y="236"/>
+ <point x="1340" y="479"/>
+ </contour>
+ <contour>
+ <point x="1145" y="715" type="curve" smooth="yes"/>
+ <point x="1145" y="360"/>
+ <point x="965" y="150"/>
+ <point x="720" y="150" type="curve" smooth="yes"/>
+ <point x="460" y="150"/>
+ <point x="290" y="380"/>
+ <point x="290" y="745" type="curve" smooth="yes"/>
+ <point x="290" y="1091"/>
+ <point x="467" y="1310"/>
+ <point x="720" y="1310" type="curve" smooth="yes"/>
+ <point x="974" y="1310"/>
+ <point x="1145" y="1084"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_tnC_apR_.glif b/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_tnC_apR_.glif
new file mode 100644
index 0000000..cd9e037
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_tnC_apR_.glif
@@ -0,0 +1,55 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapR" format="2">
+ <advance width="1305"/>
+ <unicode hex="0052"/>
+ <anchor x="285" y="0" name="H"/>
+ <anchor x="610" y="-100" name="L"/>
+ <anchor x="610" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="365" y="625" type="line"/>
+ <point x="620" y="625" type="line"/>
+ <point x="805" y="625"/>
+ <point x="1090" y="743"/>
+ <point x="1090" y="1060" type="curve" smooth="yes"/>
+ <point x="1090" y="1349"/>
+ <point x="876" y="1470"/>
+ <point x="565" y="1470" type="curve" smooth="yes"/>
+ <point x="331" y="1470"/>
+ <point x="160" y="1460"/>
+ <point x="160" y="1460" type="curve"/>
+ <point x="175" y="1380"/>
+ <point x="175" y="1196"/>
+ <point x="175" y="1000" type="curve" smooth="yes"/>
+ <point x="175" y="435" type="line"/>
+ <point x="175" y="238"/>
+ <point x="175" y="80"/>
+ <point x="160" y="0" type="curve"/>
+ <point x="380" y="0" type="line"/>
+ <point x="366" y="78"/>
+ <point x="365" y="238"/>
+ <point x="365" y="435" type="curve"/>
+ </contour>
+ <contour>
+ <point x="365" y="1305" type="line"/>
+ <point x="418" y="1307"/>
+ <point x="485" y="1310"/>
+ <point x="555" y="1310" type="curve" smooth="yes"/>
+ <point x="800" y="1310"/>
+ <point x="900" y="1216"/>
+ <point x="900" y="1045" type="curve" smooth="yes"/>
+ <point x="900" y="879"/>
+ <point x="780" y="780"/>
+ <point x="555" y="780" type="curve"/>
+ <point x="365" y="780" type="line"/>
+ </contour>
+ <contour>
+ <point x="561" y="635" type="line"/>
+ <point x="990" y="0" type="line"/>
+ <point x="1245" y="0" type="line"/>
+ <point x="1178" y="73"/>
+ <point x="715" y="710"/>
+ <point x="715" y="710" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_tnC_apS_.glif b/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_tnC_apS_.glif
new file mode 100644
index 0000000..92da6b0
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_tnC_apS_.glif
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapS" format="2">
+ <advance width="1175"/>
+ <unicode hex="0053"/>
+ <anchor x="580" y="0" name="H"/>
+ <anchor x="580" y="-100" name="L"/>
+ <anchor x="580" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1000" y="1395" type="line"/>
+ <point x="870" y="1458"/>
+ <point x="759" y="1485"/>
+ <point x="605" y="1485" type="curve" smooth="yes"/>
+ <point x="273" y="1485"/>
+ <point x="135" y="1250"/>
+ <point x="135" y="1080" type="curve" smooth="yes"/>
+ <point x="135" y="910"/>
+ <point x="203" y="778"/>
+ <point x="515" y="685" type="curve" smooth="yes"/>
+ <point x="827" y="591"/>
+ <point x="875" y="510"/>
+ <point x="875" y="405" type="curve" smooth="yes"/>
+ <point x="875" y="243"/>
+ <point x="726" y="150"/>
+ <point x="565" y="150" type="curve" smooth="yes"/>
+ <point x="417" y="150"/>
+ <point x="272" y="200"/>
+ <point x="140" y="315" type="curve"/>
+ <point x="95" y="110" type="line"/>
+ <point x="197" y="31"/>
+ <point x="372" y="-25"/>
+ <point x="565" y="-25" type="curve" smooth="yes"/>
+ <point x="838" y="-25"/>
+ <point x="1065" y="157"/>
+ <point x="1065" y="425" type="curve" smooth="yes"/>
+ <point x="1065" y="641"/>
+ <point x="920" y="762"/>
+ <point x="655" y="840" type="curve" smooth="yes"/>
+ <point x="370" y="923"/>
+ <point x="325" y="985"/>
+ <point x="325" y="1095" type="curve" smooth="yes"/>
+ <point x="325" y="1205"/>
+ <point x="435" y="1310"/>
+ <point x="595" y="1310" type="curve" smooth="yes"/>
+ <point x="723" y="1310"/>
+ <point x="817" y="1279"/>
+ <point x="960" y="1200" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_tnC_apT_.glif b/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_tnC_apT_.glif
new file mode 100644
index 0000000..124138f
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_tnC_apT_.glif
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapT" format="2">
+ <advance width="1265"/>
+ <unicode hex="0054"/>
+ <anchor x="622" y="0" name="H"/>
+ <anchor x="622" y="-100" name="L"/>
+ <anchor x="622" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="45" y="1460" type="line"/>
+ <point x="45" y="1275" type="line"/>
+ <point x="125" y="1292"/>
+ <point x="201" y="1295"/>
+ <point x="290" y="1295" type="curve" smooth="yes"/>
+ <point x="525" y="1295" type="line"/>
+ <point x="525" y="435" type="line" smooth="yes"/>
+ <point x="525" y="238"/>
+ <point x="522" y="80"/>
+ <point x="505" y="0" type="curve"/>
+ <point x="735" y="0" type="line"/>
+ <point x="718" y="80"/>
+ <point x="715" y="238"/>
+ <point x="715" y="435" type="curve" smooth="yes"/>
+ <point x="715" y="1295" type="line"/>
+ <point x="955" y="1295" type="line" smooth="yes"/>
+ <point x="1045" y="1295"/>
+ <point x="1120" y="1292"/>
+ <point x="1200" y="1275" type="curve"/>
+ <point x="1200" y="1460" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_tnC_apU_.glif b/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_tnC_apU_.glif
new file mode 100644
index 0000000..7afa08d
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_tnC_apU_.glif
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapU" format="2">
+ <advance width="1440"/>
+ <unicode hex="0055"/>
+ <anchor x="707" y="0" name="H"/>
+ <anchor x="707" y="-100" name="L"/>
+ <anchor x="1026" y="0" name="O"/>
+ <anchor x="1400" y="1200" name="R"/>
+ <anchor x="707" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1050" y="1460" type="line"/>
+ <point x="1050" y="560" type="line" smooth="yes"/>
+ <point x="1050" y="299"/>
+ <point x="968" y="135"/>
+ <point x="710" y="135" type="curve" smooth="yes"/>
+ <point x="447" y="135"/>
+ <point x="365" y="299"/>
+ <point x="365" y="560" type="curve" smooth="yes"/>
+ <point x="365" y="1460" type="line"/>
+ <point x="160" y="1460" type="line"/>
+ <point x="174" y="1380"/>
+ <point x="175" y="1222"/>
+ <point x="175" y="1025" type="curve" smooth="yes"/>
+ <point x="175" y="515" type="line"/>
+ <point x="175" y="190"/>
+ <point x="345" y="-25"/>
+ <point x="710" y="-25" type="curve" smooth="yes"/>
+ <point x="1071" y="-25"/>
+ <point x="1240" y="190"/>
+ <point x="1240" y="515" type="curve"/>
+ <point x="1240" y="1025" type="line" smooth="yes"/>
+ <point x="1240" y="1232"/>
+ <point x="1242" y="1380"/>
+ <point x="1255" y="1460" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_tnC_apV_.glif b/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_tnC_apV_.glif
new file mode 100644
index 0000000..86c76b5
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_tnC_apV_.glif
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapV" format="2">
+ <advance width="1365"/>
+ <unicode hex="0056"/>
+ <anchor x="680" y="0" name="H"/>
+ <anchor x="672" y="-100" name="L"/>
+ <anchor x="880" y="0" name="O"/>
+ <anchor x="672" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1095" y="1460" type="line"/>
+ <point x="672" y="195" type="line"/>
+ <point x="250" y="1460" type="line"/>
+ <point x="35" y="1460" type="line"/>
+ <point x="68" y="1378"/>
+ <point x="101" y="1288"/>
+ <point x="170" y="1095" type="curve" smooth="yes"/>
+ <point x="560" y="0" type="line"/>
+ <point x="785" y="0" type="line"/>
+ <point x="1170" y="1095" type="line" smooth="yes"/>
+ <point x="1238" y="1289"/>
+ <point x="1274" y="1378"/>
+ <point x="1310" y="1460" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_tnC_apW_.glif b/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_tnC_apW_.glif
new file mode 100644
index 0000000..b1f4961
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_tnC_apW_.glif
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapW" format="2">
+ <advance width="2080"/>
+ <unicode hex="0057"/>
+ <anchor x="1027" y="-100" name="L"/>
+ <anchor x="1027" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1480" y="0" type="line"/>
+ <point x="1595" y="0" type="line"/>
+ <point x="1900" y="1095" type="line" smooth="yes"/>
+ <point x="1954" y="1289"/>
+ <point x="1983" y="1378"/>
+ <point x="2015" y="1460" type="curve"/>
+ <point x="1795" y="1460" type="line"/>
+ <point x="1470" y="130" type="line"/>
+ </contour>
+ <contour>
+ <point x="1120" y="1460" type="line"/>
+ <point x="935" y="1460" type="line"/>
+ <point x="990" y="1305" type="line"/>
+ <point x="1370" y="0" type="line"/>
+ <point x="1480" y="0" type="line"/>
+ <point x="1500" y="130" type="line"/>
+ </contour>
+ <contour>
+ <point x="580" y="0" type="line"/>
+ <point x="685" y="0" type="line"/>
+ <point x="1065" y="1305" type="line"/>
+ <point x="1120" y="1460" type="line"/>
+ <point x="935" y="1460" type="line"/>
+ <point x="560" y="130" type="line"/>
+ </contour>
+ <contour>
+ <point x="260" y="1460" type="line"/>
+ <point x="40" y="1460" type="line"/>
+ <point x="71" y="1381"/>
+ <point x="102" y="1286"/>
+ <point x="155" y="1095" type="curve" smooth="yes"/>
+ <point x="460" y="0" type="line"/>
+ <point x="580" y="0" type="line"/>
+ <point x="590" y="130" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_tnC_apX_.glif b/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_tnC_apX_.glif
new file mode 100644
index 0000000..7472407
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_tnC_apX_.glif
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapX" format="2">
+ <advance width="1325"/>
+ <unicode hex="0058"/>
+ <anchor x="650" y="-100" name="L"/>
+ <anchor x="650" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="537" y="781" type="line"/>
+ <point x="265" y="340" type="line" smooth="yes"/>
+ <point x="136" y="132"/>
+ <point x="103" y="86"/>
+ <point x="40" y="0" type="curve"/>
+ <point x="270" y="0" type="line"/>
+ <point x="642" y="614" type="line"/>
+ <point x="1030" y="0" type="line"/>
+ <point x="1260" y="0" type="line"/>
+ <point x="1199" y="82"/>
+ <point x="1165" y="127"/>
+ <point x="1033" y="336" type="curve" smooth="yes"/>
+ <point x="761" y="767" type="line"/>
+ <point x="972" y="1110" type="line" smooth="yes"/>
+ <point x="1097" y="1313"/>
+ <point x="1148" y="1383"/>
+ <point x="1210" y="1460" type="curve"/>
+ <point x="975" y="1460" type="line"/>
+ <point x="656" y="934" type="line"/>
+ <point x="325" y="1460" type="line"/>
+ <point x="90" y="1460" type="line"/>
+ <point x="154" y="1376"/>
+ <point x="201" y="1315"/>
+ <point x="330" y="1110" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_tnC_apY_.glif b/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_tnC_apY_.glif
new file mode 100644
index 0000000..c2c5f54
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_tnC_apY_.glif
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapY" format="2">
+ <advance width="1320"/>
+ <unicode hex="0059"/>
+ <anchor x="650" y="-100" name="L"/>
+ <anchor x="650" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="35" y="1460" type="line"/>
+ <point x="147" y="1311"/>
+ <point x="213" y="1197"/>
+ <point x="290" y="1065" type="curve" smooth="yes"/>
+ <point x="555" y="611" type="line"/>
+ <point x="555" y="435" type="line" smooth="yes"/>
+ <point x="555" y="238"/>
+ <point x="555" y="80"/>
+ <point x="540" y="0" type="curve"/>
+ <point x="760" y="0" type="line"/>
+ <point x="745" y="80"/>
+ <point x="745" y="238"/>
+ <point x="745" y="435" type="curve" smooth="yes"/>
+ <point x="745" y="603" type="line"/>
+ <point x="1015" y="1065" type="line" smooth="yes"/>
+ <point x="1091" y="1195"/>
+ <point x="1147" y="1291"/>
+ <point x="1265" y="1460" type="curve"/>
+ <point x="1035" y="1460" type="line"/>
+ <point x="660" y="799" type="line"/>
+ <point x="265" y="1460" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_tnS_mA_.glif b/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_tnS_mA_.glif
new file mode 100644
index 0000000..20f7261
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_tnS_mA_.glif
@@ -0,0 +1,76 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmA" format="2">
+ <advance width="1120"/>
+ <unicode hex="0061"/>
+ <note>
+
+
+
+
+ GlyphNote A
+
+
+
+
+ </note>
+ <anchor x="540" y="0" name="H"/>
+ <anchor x="540" y="-100" name="L"/>
+ <anchor x="1125" y="0" name="O"/>
+ <anchor x="1120" y="1000" name="R"/>
+ <anchor x="540" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="950" y="760" type="line"/>
+ <point x="950" y="919"/>
+ <point x="800" y="1040"/>
+ <point x="570" y="1040" type="curve" smooth="yes"/>
+ <point x="418" y="1040"/>
+ <point x="312" y="994"/>
+ <point x="209" y="950" type="curve"/>
+ <point x="203" y="907"/>
+ <point x="200" y="799"/>
+ <point x="199" y="755" type="curve"/>
+ <point x="316" y="837"/>
+ <point x="419" y="880"/>
+ <point x="525" y="880" type="curve" smooth="yes"/>
+ <point x="675" y="880"/>
+ <point x="765" y="831"/>
+ <point x="765" y="710" type="curve" smooth="yes"/>
+ <point x="765" y="635" type="line"/>
+ <point x="724" y="632"/>
+ <point x="564" y="617"/>
+ <point x="495" y="610" type="curve" smooth="yes"/>
+ <point x="186" y="580"/>
+ <point x="95" y="407"/>
+ <point x="95" y="255" type="curve" smooth="yes"/>
+ <point x="95" y="107"/>
+ <point x="232" y="-25"/>
+ <point x="420" y="-25" type="curve" smooth="yes"/>
+ <point x="544" y="-25"/>
+ <point x="677" y="29"/>
+ <point x="795" y="155" type="curve"/>
+ <point x="809" y="91"/>
+ <point x="833" y="32"/>
+ <point x="845" y="0" type="curve"/>
+ <point x="1025" y="0" type="line"/>
+ <point x="981" y="112"/>
+ <point x="950" y="226"/>
+ <point x="950" y="370" type="curve"/>
+ </contour>
+ <contour>
+ <point x="765" y="325" type="line"/>
+ <point x="644" y="164"/>
+ <point x="552" y="140"/>
+ <point x="450" y="140" type="curve" smooth="yes"/>
+ <point x="340" y="140"/>
+ <point x="275" y="191"/>
+ <point x="275" y="280" type="curve" smooth="yes"/>
+ <point x="275" y="372"/>
+ <point x="335" y="450"/>
+ <point x="505" y="470" type="curve" smooth="yes"/>
+ <point x="568" y="478"/>
+ <point x="715" y="493"/>
+ <point x="765" y="495" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_tnS_mA_A_cute.glif b/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_tnS_mA_A_cute.glif
new file mode 100644
index 0000000..2ab1b23
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_tnS_mA_A_cute.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmAAcute" format="2">
+ <advance width="1120"/>
+ <unicode hex="00E1"/>
+ <anchor x="540" y="0" name="H"/>
+ <anchor x="540" y="-100" name="L"/>
+ <anchor x="1125" y="0" name="O"/>
+ <anchor x="1120" y="1000" name="R"/>
+ <anchor x="540" y="1635" name="U"/>
+ <outline>
+ <component base="LtnSmA"/>
+ <component base="CombAcute" xOffset="1110"/>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_tnS_mA_C_ircum.glif b/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_tnS_mA_C_ircum.glif
new file mode 100644
index 0000000..6551c45
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_tnS_mA_C_ircum.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmACircum" format="2">
+ <advance width="1120"/>
+ <unicode hex="00E2"/>
+ <anchor x="540" y="0" name="H"/>
+ <anchor x="540" y="-100" name="L"/>
+ <anchor x="1125" y="0" name="O"/>
+ <anchor x="1120" y="1000" name="R"/>
+ <anchor x="540" y="1635" name="U"/>
+ <outline>
+ <component base="LtnSmA"/>
+ <component base="CombCircum" xOffset="1110"/>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_tnS_mA_D_iaer.glif b/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_tnS_mA_D_iaer.glif
new file mode 100644
index 0000000..61c5d3f
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_tnS_mA_D_iaer.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmADiaer" format="2">
+ <advance width="1120"/>
+ <unicode hex="00E4"/>
+ <anchor x="540" y="0" name="H"/>
+ <anchor x="540" y="-100" name="L"/>
+ <anchor x="1125" y="0" name="O"/>
+ <anchor x="1120" y="1000" name="R"/>
+ <anchor x="540" y="1505" name="U"/>
+ <outline>
+ <component base="LtnSmA"/>
+ <component base="CombDiaer" xOffset="1110"/>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_tnS_mA_G_rave.glif b/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_tnS_mA_G_rave.glif
new file mode 100644
index 0000000..9879252
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_tnS_mA_G_rave.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmAGrave" format="2">
+ <advance width="1120"/>
+ <unicode hex="00E0"/>
+ <anchor x="540" y="0" name="H"/>
+ <anchor x="540" y="-100" name="L"/>
+ <anchor x="1125" y="0" name="O"/>
+ <anchor x="1120" y="1000" name="R"/>
+ <anchor x="540" y="1635" name="U"/>
+ <outline>
+ <component base="LtnSmA"/>
+ <component base="CombGrave" xOffset="1090"/>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_tnS_mA_R_ingA_bv.glif b/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_tnS_mA_R_ingA_bv.glif
new file mode 100644
index 0000000..5a54e7e
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_tnS_mA_R_ingA_bv.glif
@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmARingAbv" format="2">
+ <advance width="1120"/>
+ <unicode hex="00E5"/>
+ <anchor x="540" y="0" name="H"/>
+ <anchor x="540" y="-100" name="L"/>
+ <anchor x="1125" y="0" name="O"/>
+ <anchor x="1120" y="1000" name="R"/>
+ <anchor x="542" y="1635" name="U"/>
+ <outline>
+ <contour>
+ <point x="642" y="1385" type="curve" smooth="yes"/>
+ <point x="642" y="1325"/>
+ <point x="602" y="1285"/>
+ <point x="542" y="1285" type="curve" smooth="yes"/>
+ <point x="482" y="1285"/>
+ <point x="442" y="1325"/>
+ <point x="442" y="1385" type="curve" smooth="yes"/>
+ <point x="442" y="1445"/>
+ <point x="482" y="1485"/>
+ <point x="542" y="1485" type="curve" smooth="yes"/>
+ <point x="602" y="1485"/>
+ <point x="642" y="1445"/>
+ </contour>
+ <contour>
+ <point x="327" y="1385" type="curve" smooth="yes"/>
+ <point x="327" y="1265"/>
+ <point x="422" y="1170"/>
+ <point x="542" y="1170" type="curve" smooth="yes"/>
+ <point x="662" y="1170"/>
+ <point x="757" y="1265"/>
+ <point x="757" y="1385" type="curve" smooth="yes"/>
+ <point x="757" y="1505"/>
+ <point x="662" y="1600"/>
+ <point x="542" y="1600" type="curve" smooth="yes"/>
+ <point x="422" y="1600"/>
+ <point x="327" y="1505"/>
+ </contour>
+ <component base="LtnSmA"/>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_tnS_mA_T_ilde.glif b/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_tnS_mA_T_ilde.glif
new file mode 100644
index 0000000..72957bf
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_tnS_mA_T_ilde.glif
@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmATilde" format="2">
+ <advance width="1120"/>
+ <unicode hex="00E3"/>
+ <anchor x="540" y="0" name="H"/>
+ <anchor x="540" y="-100" name="L"/>
+ <anchor x="1125" y="0" name="O"/>
+ <anchor x="1120" y="1000" name="R"/>
+ <anchor x="540" y="1475" name="U"/>
+ <outline>
+ <contour>
+ <point x="295" y="1205" type="line"/>
+ <point x="300" y="1254"/>
+ <point x="331" y="1290"/>
+ <point x="380" y="1290" type="curve" smooth="yes"/>
+ <point x="417" y="1290"/>
+ <point x="458" y="1274"/>
+ <point x="535" y="1238" type="curve" smooth="yes"/>
+ <point x="596" y="1210"/>
+ <point x="649" y="1190"/>
+ <point x="702" y="1190" type="curve" smooth="yes"/>
+ <point x="825" y="1190"/>
+ <point x="900" y="1312"/>
+ <point x="900" y="1440" type="curve"/>
+ <point x="795" y="1440" type="line"/>
+ <point x="788" y="1394"/>
+ <point x="757" y="1355"/>
+ <point x="710" y="1355" type="curve" smooth="yes"/>
+ <point x="668" y="1355"/>
+ <point x="627" y="1374"/>
+ <point x="555" y="1403" type="curve" smooth="yes"/>
+ <point x="485" y="1431"/>
+ <point x="438" y="1455"/>
+ <point x="382" y="1455" type="curve" smooth="yes"/>
+ <point x="263" y="1455"/>
+ <point x="190" y="1327"/>
+ <point x="190" y="1205" type="curve"/>
+ </contour>
+ <component base="LtnSmA"/>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_tnS_mB_.glif b/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_tnS_mB_.glif
new file mode 100644
index 0000000..67ff8ac
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_tnS_mB_.glif
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmB" format="2">
+ <advance width="1155"/>
+ <unicode hex="0062"/>
+ <anchor x="590" y="0" name="H"/>
+ <anchor x="590" y="-100" name="L"/>
+ <anchor x="1155" y="1000" name="R"/>
+ <anchor x="590" y="1635" name="U"/>
+ <outline>
+ <contour>
+ <point x="130" y="1600" type="line"/>
+ <point x="145" y="1488"/>
+ <point x="145" y="1273"/>
+ <point x="145" y="1130" type="curve" smooth="yes"/>
+ <point x="145" y="936"/>
+ <point x="145" y="228"/>
+ <point x="145" y="65" type="curve"/>
+ <point x="272" y="26"/>
+ <point x="413" y="-25"/>
+ <point x="575" y="-25" type="curve" smooth="yes"/>
+ <point x="870" y="-25"/>
+ <point x="1060" y="197"/>
+ <point x="1060" y="540" type="curve" smooth="yes"/>
+ <point x="1060" y="832"/>
+ <point x="917" y="1040"/>
+ <point x="715" y="1040" type="curve" smooth="yes"/>
+ <point x="547" y="1040"/>
+ <point x="423" y="947"/>
+ <point x="330" y="825" type="curve"/>
+ <point x="330" y="916"/>
+ <point x="330" y="1600"/>
+ <point x="330" y="1600" type="curve"/>
+ </contour>
+ <contour>
+ <point x="330" y="585" type="line"/>
+ <point x="398" y="751"/>
+ <point x="531" y="865"/>
+ <point x="655" y="865" type="curve" smooth="yes"/>
+ <point x="799" y="865"/>
+ <point x="880" y="727"/>
+ <point x="880" y="505" type="curve" smooth="yes"/>
+ <point x="880" y="280"/>
+ <point x="752" y="130"/>
+ <point x="575" y="130" type="curve" smooth="yes"/>
+ <point x="489" y="130"/>
+ <point x="428" y="144"/>
+ <point x="330" y="185" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_tnS_mC_.glif b/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_tnS_mC_.glif
new file mode 100644
index 0000000..7c403fb
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_tnS_mC_.glif
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmC" format="2">
+ <advance width="1020"/>
+ <unicode hex="0063"/>
+ <anchor x="580" y="0" name="H"/>
+ <anchor x="580" y="-100" name="L"/>
+ <anchor x="1020" y="1000" name="R"/>
+ <anchor x="570" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="905" y="260" type="line"/>
+ <point x="818" y="183"/>
+ <point x="720" y="140"/>
+ <point x="600" y="140" type="curve" smooth="yes"/>
+ <point x="406" y="140"/>
+ <point x="285" y="285"/>
+ <point x="285" y="500" type="curve" smooth="yes"/>
+ <point x="285" y="736"/>
+ <point x="422" y="875"/>
+ <point x="600" y="875" type="curve" smooth="yes"/>
+ <point x="703" y="875"/>
+ <point x="790" y="841"/>
+ <point x="880" y="775" type="curve"/>
+ <point x="915" y="955" type="line"/>
+ <point x="842" y="1005"/>
+ <point x="748" y="1040"/>
+ <point x="615" y="1040" type="curve" smooth="yes"/>
+ <point x="297" y="1040"/>
+ <point x="95" y="792"/>
+ <point x="95" y="490" type="curve" smooth="yes"/>
+ <point x="95" y="171"/>
+ <point x="312" y="-25"/>
+ <point x="580" y="-25" type="curve" smooth="yes"/>
+ <point x="730" y="-25"/>
+ <point x="824" y="9"/>
+ <point x="925" y="85" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_tnS_mD_.glif b/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_tnS_mD_.glif
new file mode 100644
index 0000000..13547d4
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_tnS_mD_.glif
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmD" format="2">
+ <advance width="1190"/>
+ <unicode hex="0064"/>
+ <anchor x="605" y="0" name="H"/>
+ <anchor x="605" y="-100" name="L"/>
+ <anchor x="1190" y="1000" name="R"/>
+ <anchor x="605" y="1635" name="U"/>
+ <outline>
+ <contour>
+ <point x="1030" y="1600" type="line"/>
+ <point x="820" y="1600" type="line"/>
+ <point x="839" y="1516"/>
+ <point x="845" y="1395"/>
+ <point x="845" y="1235" type="curve"/>
+ <point x="845" y="955" type="line"/>
+ <point x="767" y="999"/>
+ <point x="665" y="1040"/>
+ <point x="580" y="1040" type="curve" smooth="yes"/>
+ <point x="312" y="1040"/>
+ <point x="105" y="814"/>
+ <point x="105" y="460" type="curve" smooth="yes"/>
+ <point x="105" y="167"/>
+ <point x="261" y="-25"/>
+ <point x="505" y="-25" type="curve" smooth="yes"/>
+ <point x="652" y="-25"/>
+ <point x="775" y="50"/>
+ <point x="870" y="185" type="curve"/>
+ <point x="887" y="111"/>
+ <point x="910" y="34"/>
+ <point x="925" y="0" type="curve"/>
+ <point x="1105" y="0" type="line"/>
+ <point x="1062" y="112"/>
+ <point x="1030" y="278"/>
+ <point x="1030" y="530" type="curve"/>
+ </contour>
+ <contour>
+ <point x="845" y="400" type="line"/>
+ <point x="790" y="268"/>
+ <point x="662" y="135"/>
+ <point x="540" y="135" type="curve" smooth="yes"/>
+ <point x="366" y="135"/>
+ <point x="290" y="258"/>
+ <point x="290" y="490" type="curve" smooth="yes"/>
+ <point x="290" y="727"/>
+ <point x="429" y="870"/>
+ <point x="580" y="870" type="curve" smooth="yes"/>
+ <point x="681" y="870"/>
+ <point x="746" y="848"/>
+ <point x="845" y="795" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_tnS_mE_.glif b/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_tnS_mE_.glif
new file mode 100644
index 0000000..f231440
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_tnS_mE_.glif
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmE" format="2">
+ <advance width="1095"/>
+ <unicode hex="0065"/>
+ <anchor x="545" y="0" name="H"/>
+ <anchor x="569" y="-100" name="L"/>
+ <anchor x="925" y="0" name="O"/>
+ <anchor x="1095" y="1000" name="R"/>
+ <anchor x="569" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="989" y="485" type="line"/>
+ <point x="990" y="503"/>
+ <point x="990" y="545"/>
+ <point x="990" y="563" type="curve" smooth="yes"/>
+ <point x="990" y="788"/>
+ <point x="905" y="1040"/>
+ <point x="575" y="1040" type="curve" smooth="yes"/>
+ <point x="279" y="1040"/>
+ <point x="95" y="826"/>
+ <point x="95" y="495" type="curve" smooth="yes"/>
+ <point x="95" y="155"/>
+ <point x="320" y="-25"/>
+ <point x="575" y="-25" type="curve" smooth="yes"/>
+ <point x="729" y="-25"/>
+ <point x="853" y="2"/>
+ <point x="995" y="75" type="curve"/>
+ <point x="975" y="240" type="line"/>
+ <point x="853" y="166"/>
+ <point x="729" y="140"/>
+ <point x="600" y="140" type="curve" smooth="yes"/>
+ <point x="414" y="140"/>
+ <point x="280" y="258"/>
+ <point x="280" y="505" type="curve" smooth="yes"/>
+ <point x="280" y="770"/>
+ <point x="385" y="890"/>
+ <point x="560" y="890" type="curve" smooth="yes"/>
+ <point x="705" y="890"/>
+ <point x="810" y="797"/>
+ <point x="810" y="625" type="curve"/>
+ <point x="245" y="625" type="line"/>
+ <point x="245" y="485" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_tnS_mF_.glif b/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_tnS_mF_.glif
new file mode 100644
index 0000000..56c0b15
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_tnS_mF_.glif
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmF" format="2">
+ <advance width="750"/>
+ <unicode hex="0066"/>
+ <anchor x="370" y="0" name="H"/>
+ <anchor x="335" y="-100" name="L"/>
+ <anchor x="560" y="1635" name="U"/>
+ <outline>
+ <contour>
+ <point x="40" y="850" type="line"/>
+ <point x="240" y="850" type="line"/>
+ <point x="240" y="0" type="line"/>
+ <point x="455" y="0" type="line"/>
+ <point x="433" y="105"/>
+ <point x="425" y="300"/>
+ <point x="425" y="494" type="curve" smooth="yes"/>
+ <point x="425" y="850" type="line"/>
+ <point x="695" y="850" type="line"/>
+ <point x="695" y="995" type="line"/>
+ <point x="425" y="995" type="line"/>
+ <point x="425" y="1210" type="line" smooth="yes"/>
+ <point x="425" y="1381"/>
+ <point x="481" y="1450"/>
+ <point x="585" y="1450" type="curve" smooth="yes"/>
+ <point x="643" y="1450"/>
+ <point x="710" y="1427"/>
+ <point x="760" y="1390" type="curve"/>
+ <point x="805" y="1550" type="line"/>
+ <point x="743" y="1594"/>
+ <point x="663" y="1620"/>
+ <point x="585" y="1620" type="curve" smooth="yes"/>
+ <point x="369" y="1620"/>
+ <point x="240" y="1470"/>
+ <point x="240" y="1170" type="curve" smooth="yes"/>
+ <point x="240" y="995" type="line"/>
+ <point x="40" y="995" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_tnS_mG_.glif b/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_tnS_mG_.glif
new file mode 100644
index 0000000..236da64
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_tnS_mG_.glif
@@ -0,0 +1,91 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmG" format="2">
+ <advance width="1095"/>
+ <unicode hex="0067"/>
+ <anchor x="545" y="-432" name="H"/>
+ <anchor x="545" y="-535" name="L"/>
+ <anchor x="1095" y="1000" name="R"/>
+ <anchor x="515" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="330" y="395" type="line"/>
+ <point x="234" y="357"/>
+ <point x="180" y="275"/>
+ <point x="180" y="215" type="curve" smooth="yes"/>
+ <point x="180" y="121"/>
+ <point x="263" y="27"/>
+ <point x="545" y="-5" type="curve" smooth="yes"/>
+ <point x="805" y="-35"/>
+ <point x="880" y="-90"/>
+ <point x="880" y="-170" type="curve" smooth="yes"/>
+ <point x="880" y="-255"/>
+ <point x="731" y="-360"/>
+ <point x="550" y="-360" type="curve" smooth="yes"/>
+ <point x="323" y="-360"/>
+ <point x="215" y="-261"/>
+ <point x="215" y="-180" type="curve" smooth="yes"/>
+ <point x="215" y="-121"/>
+ <point x="244" y="-56"/>
+ <point x="465" y="20" type="curve"/>
+ <point x="459" y="49"/>
+ <point x="290" y="75"/>
+ <point x="290" y="75" type="curve"/>
+ <point x="113" y="2"/>
+ <point x="30" y="-89"/>
+ <point x="30" y="-200" type="curve" smooth="yes"/>
+ <point x="30" y="-409"/>
+ <point x="303" y="-505"/>
+ <point x="535" y="-505" type="curve" smooth="yes"/>
+ <point x="777" y="-505"/>
+ <point x="1065" y="-375"/>
+ <point x="1065" y="-160" type="curve" smooth="yes"/>
+ <point x="1065" y="-8"/>
+ <point x="967" y="90"/>
+ <point x="670" y="125" type="curve" smooth="yes"/>
+ <point x="410" y="156"/>
+ <point x="345" y="198"/>
+ <point x="345" y="235" type="curve" smooth="yes"/>
+ <point x="345" y="271"/>
+ <point x="384" y="316"/>
+ <point x="500" y="350" type="curve"/>
+ </contour>
+ <contour>
+ <point x="1050" y="1040" type="line"/>
+ <point x="951" y="1033"/>
+ <point x="819" y="997"/>
+ <point x="730" y="940" type="curve"/>
+ <point x="795" y="825" type="line"/>
+ <point x="887" y="863"/>
+ <point x="967" y="878"/>
+ <point x="1040" y="880" type="curve"/>
+ </contour>
+ <contour>
+ <point x="115" y="680" type="curve" smooth="yes"/>
+ <point x="115" y="476"/>
+ <point x="289" y="325"/>
+ <point x="515" y="325" type="curve" smooth="yes"/>
+ <point x="742" y="325"/>
+ <point x="915" y="476"/>
+ <point x="915" y="680" type="curve" smooth="yes"/>
+ <point x="915" y="884"/>
+ <point x="742" y="1040"/>
+ <point x="515" y="1040" type="curve" smooth="yes"/>
+ <point x="289" y="1040"/>
+ <point x="115" y="884"/>
+ </contour>
+ <contour>
+ <point x="285" y="680" type="curve" smooth="yes"/>
+ <point x="285" y="803"/>
+ <point x="382" y="895"/>
+ <point x="515" y="895" type="curve" smooth="yes"/>
+ <point x="649" y="895"/>
+ <point x="745" y="803"/>
+ <point x="745" y="680" type="curve" smooth="yes"/>
+ <point x="745" y="557"/>
+ <point x="649" y="465"/>
+ <point x="515" y="465" type="curve" smooth="yes"/>
+ <point x="382" y="465"/>
+ <point x="285" y="557"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_tnS_mH_.glif b/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_tnS_mH_.glif
new file mode 100644
index 0000000..bad060c
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_tnS_mH_.glif
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmH" format="2">
+ <advance width="1175"/>
+ <unicode hex="0068"/>
+ <anchor x="250" y="0" name="H"/>
+ <anchor x="585" y="-100" name="L"/>
+ <anchor x="585" y="1635" name="U"/>
+ <outline>
+ <contour>
+ <point x="1040" y="0" type="line"/>
+ <point x="1040" y="0"/>
+ <point x="1040" y="459"/>
+ <point x="1040" y="625" type="curve" smooth="yes"/>
+ <point x="1040" y="900"/>
+ <point x="923" y="1040"/>
+ <point x="710" y="1040" type="curve" smooth="yes"/>
+ <point x="570" y="1040"/>
+ <point x="428" y="969"/>
+ <point x="330" y="830" type="curve"/>
+ <point x="330" y="877"/>
+ <point x="330" y="1600"/>
+ <point x="330" y="1600" type="curve"/>
+ <point x="130" y="1600" type="line"/>
+ <point x="145" y="1514"/>
+ <point x="145" y="1345"/>
+ <point x="145" y="1130" type="curve" smooth="yes"/>
+ <point x="145" y="935"/>
+ <point x="145" y="0"/>
+ <point x="145" y="0" type="curve"/>
+ <point x="330" y="0" type="line"/>
+ <point x="330" y="580" type="line"/>
+ <point x="374" y="716"/>
+ <point x="511" y="865"/>
+ <point x="655" y="865" type="curve" smooth="yes"/>
+ <point x="789" y="865"/>
+ <point x="855" y="800"/>
+ <point x="855" y="550" type="curve" smooth="yes"/>
+ <point x="855" y="413"/>
+ <point x="855" y="0"/>
+ <point x="855" y="0" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_tnS_mI_.glif b/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_tnS_mI_.glif
new file mode 100644
index 0000000..369347b
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_tnS_mI_.glif
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmI" format="2">
+ <advance width="565"/>
+ <unicode hex="0069"/>
+ <anchor x="282" y="0" name="H"/>
+ <anchor x="285" y="-100" name="L"/>
+ <anchor x="500" y="0" name="O"/>
+ <anchor x="555" y="1000" name="R"/>
+ <anchor x="282" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="375" y="1020" type="line"/>
+ <point x="175" y="1020" type="line"/>
+ <point x="188" y="915"/>
+ <point x="190" y="725"/>
+ <point x="190" y="530" type="curve" smooth="yes"/>
+ <point x="190" y="336"/>
+ <point x="190" y="0"/>
+ <point x="190" y="0" type="curve"/>
+ <point x="395" y="0" type="line"/>
+ <point x="382" y="107"/>
+ <point x="375" y="346"/>
+ <point x="375" y="475" type="curve" smooth="yes"/>
+ </contour>
+ <contour>
+ <point x="155" y="1345" type="curve" smooth="yes"/>
+ <point x="155" y="1271"/>
+ <point x="206" y="1210"/>
+ <point x="280" y="1210" type="curve" smooth="yes"/>
+ <point x="355" y="1210"/>
+ <point x="410" y="1271"/>
+ <point x="410" y="1345" type="curve" smooth="yes"/>
+ <point x="410" y="1419"/>
+ <point x="355" y="1480"/>
+ <point x="280" y="1480" type="curve" smooth="yes"/>
+ <point x="206" y="1480"/>
+ <point x="155" y="1419"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_tnS_mJ_.glif b/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_tnS_mJ_.glif
new file mode 100644
index 0000000..87f74c6
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_tnS_mJ_.glif
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmJ" format="2">
+ <advance width="595"/>
+ <unicode hex="006A"/>
+ <anchor x="125" y="-500" name="L"/>
+ <anchor x="313" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="405" y="1020" type="line"/>
+ <point x="205" y="1020" type="line"/>
+ <point x="218" y="915"/>
+ <point x="220" y="725"/>
+ <point x="220" y="530" type="curve"/>
+ <point x="220" y="-25" type="line"/>
+ <point x="220" y="-222"/>
+ <point x="147" y="-300"/>
+ <point x="40" y="-300" type="curve" smooth="yes"/>
+ <point x="-16" y="-300"/>
+ <point x="-111" y="-273"/>
+ <point x="-155" y="-240" type="curve"/>
+ <point x="-190" y="-405" type="line"/>
+ <point x="-130" y="-446"/>
+ <point x="-26" y="-470"/>
+ <point x="30" y="-470" type="curve" smooth="yes"/>
+ <point x="258" y="-470"/>
+ <point x="405" y="-348"/>
+ <point x="405" y="25" type="curve" smooth="yes"/>
+ </contour>
+ <contour>
+ <point x="185" y="1345" type="curve" smooth="yes"/>
+ <point x="185" y="1271"/>
+ <point x="236" y="1210"/>
+ <point x="310" y="1210" type="curve" smooth="yes"/>
+ <point x="385" y="1210"/>
+ <point x="440" y="1271"/>
+ <point x="440" y="1345" type="curve" smooth="yes"/>
+ <point x="440" y="1419"/>
+ <point x="385" y="1480"/>
+ <point x="310" y="1480" type="curve" smooth="yes"/>
+ <point x="236" y="1480"/>
+ <point x="185" y="1419"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_tnS_mK_.glif b/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_tnS_mK_.glif
new file mode 100644
index 0000000..d1b00cb
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_tnS_mK_.glif
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmK" format="2">
+ <advance width="1035"/>
+ <unicode hex="006B"/>
+ <guideline x="500" y="774" angle="314"/>
+ <anchor x="243" y="0" name="H"/>
+ <anchor x="572" y="-100" name="L"/>
+ <anchor x="1035" y="1000" name="R"/>
+ <anchor x="572" y="1635" name="U"/>
+ <outline>
+ <contour>
+ <point x="330" y="0" type="line"/>
+ <point x="330" y="1600" type="line"/>
+ <point x="130" y="1600" type="line"/>
+ <point x="145" y="1514"/>
+ <point x="145" y="1345"/>
+ <point x="145" y="1130" type="curve" smooth="yes"/>
+ <point x="145" y="934"/>
+ <point x="145" y="0"/>
+ <point x="145" y="0" type="curve"/>
+ </contour>
+ <contour>
+ <point x="735" y="1020" type="line"/>
+ <point x="280" y="550" type="line"/>
+ <point x="436" y="524" type="line"/>
+ <point x="985" y="1020" type="line"/>
+ </contour>
+ <contour>
+ <point x="305" y="550" type="line"/>
+ <point x="770" y="0" type="line"/>
+ <point x="1015" y="0" type="line"/>
+ <point x="410" y="660" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_tnS_mL_.glif b/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_tnS_mL_.glif
new file mode 100644
index 0000000..4378793
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_tnS_mL_.glif
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmL" format="2">
+ <advance width="565"/>
+ <unicode hex="006C"/>
+ <guideline x="500" y="874" angle="340"/>
+ <anchor x="290" y="0" name="H"/>
+ <anchor x="290" y="-100" name="L"/>
+ <anchor x="550" y="1000" name="R"/>
+ <anchor x="282" y="1635" name="U"/>
+ <outline>
+ <contour>
+ <point x="375" y="1600" type="line"/>
+ <point x="170" y="1600" type="line"/>
+ <point x="183" y="1485"/>
+ <point x="190" y="1324"/>
+ <point x="190" y="1130" type="curve"/>
+ <point x="190" y="0" type="line"/>
+ <point x="395" y="0" type="line"/>
+ <point x="382" y="109"/>
+ <point x="375" y="346"/>
+ <point x="375" y="475" type="curve" smooth="yes"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_tnS_mM_.glif b/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_tnS_mM_.glif
new file mode 100644
index 0000000..4498bb1
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_tnS_mM_.glif
@@ -0,0 +1,52 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmM" format="2">
+ <advance width="1685"/>
+ <unicode hex="006D"/>
+ <anchor x="1450" y="0" name="H"/>
+ <anchor x="865" y="-100" name="L"/>
+ <anchor x="865" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="945" y="660" type="line"/>
+ <point x="1003" y="785"/>
+ <point x="1102" y="865"/>
+ <point x="1200" y="865" type="curve" smooth="yes"/>
+ <point x="1312" y="865"/>
+ <point x="1345" y="808"/>
+ <point x="1345" y="550" type="curve" smooth="yes"/>
+ <point x="1345" y="0" type="line"/>
+ <point x="1530" y="0" type="line"/>
+ <point x="1530" y="660" type="line" smooth="yes"/>
+ <point x="1530" y="907"/>
+ <point x="1463" y="1040"/>
+ <point x="1260" y="1040" type="curve" smooth="yes"/>
+ <point x="1155" y="1040"/>
+ <point x="1046" y="1007"/>
+ <point x="921" y="872" type="curve"/>
+ <point x="888" y="960"/>
+ <point x="806" y="1040"/>
+ <point x="675" y="1040" type="curve" smooth="yes"/>
+ <point x="560" y="1040"/>
+ <point x="459" y="1006"/>
+ <point x="337" y="865" type="curve"/>
+ <point x="330" y="913"/>
+ <point x="320" y="978"/>
+ <point x="305" y="1020" type="curve"/>
+ <point x="125" y="1020" type="line"/>
+ <point x="146" y="951"/>
+ <point x="175" y="811"/>
+ <point x="175" y="615" type="curve" smooth="yes"/>
+ <point x="175" y="0" type="line"/>
+ <point x="360" y="0" type="line"/>
+ <point x="360" y="660" type="line"/>
+ <point x="413" y="780"/>
+ <point x="517" y="865"/>
+ <point x="615" y="865" type="curve" smooth="yes"/>
+ <point x="727" y="865"/>
+ <point x="760" y="818"/>
+ <point x="760" y="570" type="curve" smooth="yes"/>
+ <point x="760" y="0" type="line"/>
+ <point x="945" y="0" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_tnS_mN_.glif b/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_tnS_mN_.glif
new file mode 100644
index 0000000..5534dd8
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_tnS_mN_.glif
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmN" format="2">
+ <advance width="1185"/>
+ <unicode hex="006E"/>
+ <anchor x="970" y="0" name="H"/>
+ <anchor x="600" y="-100" name="L"/>
+ <anchor x="600" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="1050" y="0" type="line"/>
+ <point x="1050" y="0"/>
+ <point x="1050" y="459"/>
+ <point x="1050" y="625" type="curve" smooth="yes"/>
+ <point x="1050" y="900"/>
+ <point x="933" y="1040"/>
+ <point x="720" y="1040" type="curve" smooth="yes"/>
+ <point x="579" y="1040"/>
+ <point x="452" y="977"/>
+ <point x="325" y="825" type="curve"/>
+ <point x="318" y="873"/>
+ <point x="300" y="978"/>
+ <point x="285" y="1020" type="curve"/>
+ <point x="105" y="1020" type="line"/>
+ <point x="127" y="951"/>
+ <point x="155" y="811"/>
+ <point x="155" y="615" type="curve" smooth="yes"/>
+ <point x="155" y="420"/>
+ <point x="155" y="0"/>
+ <point x="155" y="0" type="curve"/>
+ <point x="340" y="0" type="line"/>
+ <point x="340" y="580" type="line"/>
+ <point x="384" y="716"/>
+ <point x="521" y="865"/>
+ <point x="665" y="865" type="curve" smooth="yes"/>
+ <point x="800" y="865"/>
+ <point x="865" y="800"/>
+ <point x="865" y="550" type="curve" smooth="yes"/>
+ <point x="865" y="413"/>
+ <point x="865" y="0"/>
+ <point x="865" y="0" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_tnS_mO_.glif b/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_tnS_mO_.glif
new file mode 100644
index 0000000..ee9b6c6
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_tnS_mO_.glif
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmO" format="2">
+ <advance width="1140"/>
+ <unicode hex="006F"/>
+ <anchor x="570" y="0" name="H"/>
+ <anchor x="570" y="-100" name="L"/>
+ <anchor x="835" y="0" name="O"/>
+ <anchor x="1140" y="1000" name="R"/>
+ <anchor x="570" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="95" y="505" type="curve" smooth="yes"/>
+ <point x="95" y="161"/>
+ <point x="286" y="-25"/>
+ <point x="560" y="-25" type="curve" smooth="yes"/>
+ <point x="823" y="-25"/>
+ <point x="1045" y="161"/>
+ <point x="1045" y="505" type="curve" smooth="yes"/>
+ <point x="1045" y="849"/>
+ <point x="855" y="1040"/>
+ <point x="580" y="1040" type="curve" smooth="yes"/>
+ <point x="317" y="1040"/>
+ <point x="95" y="849"/>
+ </contour>
+ <contour>
+ <point x="280" y="505" type="curve" smooth="yes"/>
+ <point x="280" y="739"/>
+ <point x="408" y="880"/>
+ <point x="570" y="880" type="curve" smooth="yes"/>
+ <point x="742" y="880"/>
+ <point x="860" y="739"/>
+ <point x="860" y="505" type="curve" smooth="yes"/>
+ <point x="860" y="272"/>
+ <point x="731" y="135"/>
+ <point x="570" y="135" type="curve" smooth="yes"/>
+ <point x="398" y="135"/>
+ <point x="280" y="272"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_tnS_mP_.glif b/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_tnS_mP_.glif
new file mode 100644
index 0000000..e960bc9
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_tnS_mP_.glif
@@ -0,0 +1,56 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmP" format="2">
+ <advance width="1170"/>
+ <unicode hex="0070"/>
+ <guideline x="214" y="-490" angle="0"/>
+ <anchor x="265" y="-435" name="H"/>
+ <anchor x="590" y="-500" name="L"/>
+ <anchor x="1170" y="1000" name="R"/>
+ <anchor x="590" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="105" y="1020" type="line"/>
+ <point x="150" y="907"/>
+ <point x="155" y="734"/>
+ <point x="155" y="485" type="curve" smooth="yes"/>
+ <point x="155" y="291"/>
+ <point x="155" y="-490"/>
+ <point x="155" y="-490" type="curve"/>
+ <point x="365" y="-490" type="line"/>
+ <point x="348" y="-405"/>
+ <point x="340" y="-310"/>
+ <point x="340" y="-150" type="curve"/>
+ <point x="340" y="85" type="line"/>
+ <point x="435" y="18"/>
+ <point x="513" y="-25"/>
+ <point x="620" y="-25" type="curve" smooth="yes"/>
+ <point x="871" y="-25"/>
+ <point x="1075" y="193"/>
+ <point x="1075" y="535" type="curve" smooth="yes"/>
+ <point x="1075" y="828"/>
+ <point x="923" y="1040"/>
+ <point x="695" y="1040" type="curve" smooth="yes"/>
+ <point x="547" y="1040"/>
+ <point x="419" y="954"/>
+ <point x="325" y="830" type="curve"/>
+ <point x="316" y="922"/>
+ <point x="300" y="986"/>
+ <point x="285" y="1020" type="curve"/>
+ </contour>
+ <contour>
+ <point x="340" y="575" type="line"/>
+ <point x="414" y="768"/>
+ <point x="545" y="870"/>
+ <point x="660" y="870" type="curve" smooth="yes"/>
+ <point x="804" y="870"/>
+ <point x="890" y="727"/>
+ <point x="890" y="505" type="curve" smooth="yes"/>
+ <point x="890" y="279"/>
+ <point x="761" y="140"/>
+ <point x="620" y="140" type="curve" smooth="yes"/>
+ <point x="528" y="140"/>
+ <point x="477" y="164"/>
+ <point x="340" y="260" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_tnS_mQ_.glif b/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_tnS_mQ_.glif
new file mode 100644
index 0000000..1da1d6a
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_tnS_mQ_.glif
@@ -0,0 +1,47 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmQ" format="2">
+ <advance width="1130"/>
+ <unicode hex="0071"/>
+ <anchor x="555" y="-500" name="L"/>
+ <anchor x="1130" y="1000" name="R"/>
+ <anchor x="555" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="795" y="-490" type="line"/>
+ <point x="1005" y="-490" type="line"/>
+ <point x="988" y="-405"/>
+ <point x="980" y="-310"/>
+ <point x="980" y="-150" type="curve" smooth="yes"/>
+ <point x="980" y="-26"/>
+ <point x="980" y="965"/>
+ <point x="980" y="965" type="curve"/>
+ <point x="872" y="1001"/>
+ <point x="746" y="1040"/>
+ <point x="625" y="1040" type="curve" smooth="yes"/>
+ <point x="260" y="1040"/>
+ <point x="105" y="742"/>
+ <point x="105" y="435" type="curve" smooth="yes"/>
+ <point x="105" y="117"/>
+ <point x="321" y="-25"/>
+ <point x="505" y="-25" type="curve" smooth="yes"/>
+ <point x="598" y="-25"/>
+ <point x="691" y="19"/>
+ <point x="795" y="140" type="curve"/>
+ </contour>
+ <contour>
+ <point x="795" y="365" type="line"/>
+ <point x="713" y="219"/>
+ <point x="612" y="145"/>
+ <point x="520" y="145" type="curve" smooth="yes"/>
+ <point x="412" y="145"/>
+ <point x="290" y="237"/>
+ <point x="290" y="485" type="curve" smooth="yes"/>
+ <point x="290" y="674"/>
+ <point x="376" y="870"/>
+ <point x="595" y="870" type="curve" smooth="yes"/>
+ <point x="656" y="870"/>
+ <point x="735" y="853"/>
+ <point x="795" y="830" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_tnS_mR_.glif b/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_tnS_mR_.glif
new file mode 100644
index 0000000..0f090a4
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_tnS_mR_.glif
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmR" format="2">
+ <advance width="890"/>
+ <unicode hex="0072"/>
+ <guideline x="214" y="500" angle="0"/>
+ <anchor x="270" y="0" name="H"/>
+ <anchor x="255" y="-100" name="L"/>
+ <anchor x="455" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="340" y="0" type="line"/>
+ <point x="340" y="580" type="line"/>
+ <point x="384" y="716"/>
+ <point x="521" y="860"/>
+ <point x="605" y="860" type="curve" smooth="yes"/>
+ <point x="684" y="860"/>
+ <point x="720" y="770"/>
+ <point x="720" y="670" type="curve"/>
+ <point x="880" y="705" type="line"/>
+ <point x="880" y="880"/>
+ <point x="817" y="1040"/>
+ <point x="650" y="1040" type="curve" smooth="yes"/>
+ <point x="559" y="1040"/>
+ <point x="422" y="964"/>
+ <point x="325" y="825" type="curve"/>
+ <point x="318" y="873"/>
+ <point x="300" y="978"/>
+ <point x="285" y="1020" type="curve"/>
+ <point x="105" y="1020" type="line"/>
+ <point x="127" y="951"/>
+ <point x="155" y="811"/>
+ <point x="155" y="615" type="curve" smooth="yes"/>
+ <point x="155" y="0" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_tnS_mS_.glif b/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_tnS_mS_.glif
new file mode 100644
index 0000000..ea1e7ba
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_tnS_mS_.glif
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmS" format="2">
+ <advance width="965"/>
+ <unicode hex="0073"/>
+ <anchor x="495" y="0" name="H"/>
+ <anchor x="495" y="-100" name="L"/>
+ <anchor x="495" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="835" y="960" type="line"/>
+ <point x="766" y="998"/>
+ <point x="660" y="1040"/>
+ <point x="515" y="1040" type="curve" smooth="yes"/>
+ <point x="211" y="1040"/>
+ <point x="130" y="832"/>
+ <point x="130" y="740" type="curve" smooth="yes"/>
+ <point x="130" y="616"/>
+ <point x="182" y="514"/>
+ <point x="425" y="455" type="curve" smooth="yes"/>
+ <point x="649" y="400"/>
+ <point x="700" y="345"/>
+ <point x="700" y="270" type="curve" smooth="yes"/>
+ <point x="700" y="201"/>
+ <point x="617" y="135"/>
+ <point x="500" y="135" type="curve" smooth="yes"/>
+ <point x="394" y="135"/>
+ <point x="250" y="189"/>
+ <point x="160" y="270" type="curve"/>
+ <point x="110" y="90" type="line"/>
+ <point x="189" y="28"/>
+ <point x="333" y="-25"/>
+ <point x="495" y="-25" type="curve" smooth="yes"/>
+ <point x="710" y="-25"/>
+ <point x="880" y="115"/>
+ <point x="880" y="295" type="curve" smooth="yes"/>
+ <point x="880" y="481"/>
+ <point x="731" y="559"/>
+ <point x="550" y="600" type="curve" smooth="yes"/>
+ <point x="340" y="648"/>
+ <point x="310" y="680"/>
+ <point x="310" y="750" type="curve" smooth="yes"/>
+ <point x="310" y="810"/>
+ <point x="358" y="880"/>
+ <point x="505" y="880" type="curve" smooth="yes"/>
+ <point x="629" y="880"/>
+ <point x="733" y="824"/>
+ <point x="800" y="785" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_tnS_mT_.glif b/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_tnS_mT_.glif
new file mode 100644
index 0000000..45d6b50
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_tnS_mT_.glif
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmT" format="2">
+ <advance width="835"/>
+ <unicode hex="0074"/>
+ <anchor x="475" y="0" name="H"/>
+ <anchor x="475" y="-100" name="L"/>
+ <anchor x="835" y="1000" name="R"/>
+ <anchor x="325" y="1360" name="U"/>
+ <outline>
+ <contour>
+ <point x="760" y="215" type="line"/>
+ <point x="672" y="166"/>
+ <point x="600" y="140"/>
+ <point x="543" y="140" type="curve" smooth="yes"/>
+ <point x="453" y="140"/>
+ <point x="415" y="184"/>
+ <point x="415" y="390" type="curve" smooth="yes"/>
+ <point x="415" y="528"/>
+ <point x="415" y="1320"/>
+ <point x="415" y="1320" type="curve"/>
+ <point x="230" y="1320" type="line"/>
+ <point x="230" y="1320"/>
+ <point x="230" y="435"/>
+ <point x="230" y="270" type="curve" smooth="yes"/>
+ <point x="230" y="39"/>
+ <point x="356" y="-25"/>
+ <point x="512" y="-25" type="curve" smooth="yes"/>
+ <point x="582" y="-25"/>
+ <point x="668" y="-4"/>
+ <point x="760" y="55" type="curve"/>
+ </contour>
+ <contour>
+ <point x="30" y="850" type="line"/>
+ <point x="740" y="850" type="line"/>
+ <point x="740" y="995" type="line"/>
+ <point x="30" y="995" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_tnS_mU_.glif b/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_tnS_mU_.glif
new file mode 100644
index 0000000..39609ad
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_tnS_mU_.glif
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmU" format="2">
+ <advance width="1185"/>
+ <unicode hex="0075"/>
+ <anchor x="589" y="0" name="H"/>
+ <anchor x="589" y="-100" name="L"/>
+ <anchor x="1192" y="0" name="O"/>
+ <anchor x="1185" y="1000" name="R"/>
+ <anchor x="589" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="1090" y="0" type="line"/>
+ <point x="1048" y="112"/>
+ <point x="1025" y="256"/>
+ <point x="1025" y="450" type="curve" smooth="yes"/>
+ <point x="1025" y="646"/>
+ <point x="1025" y="1020"/>
+ <point x="1025" y="1020" type="curve"/>
+ <point x="820" y="1020" type="line"/>
+ <point x="838" y="898"/>
+ <point x="840" y="832"/>
+ <point x="840" y="700" type="curve" smooth="yes"/>
+ <point x="840" y="420" type="line"/>
+ <point x="787" y="298"/>
+ <point x="628" y="140"/>
+ <point x="510" y="140" type="curve" smooth="yes"/>
+ <point x="383" y="140"/>
+ <point x="340" y="238"/>
+ <point x="340" y="465" type="curve" smooth="yes"/>
+ <point x="340" y="603"/>
+ <point x="340" y="1020"/>
+ <point x="340" y="1020" type="curve"/>
+ <point x="135" y="1020" type="line"/>
+ <point x="153" y="900"/>
+ <point x="155" y="827"/>
+ <point x="155" y="700" type="curve" smooth="yes"/>
+ <point x="155" y="681"/>
+ <point x="155" y="424"/>
+ <point x="155" y="405" type="curve" smooth="yes"/>
+ <point x="155" y="120"/>
+ <point x="262" y="-25"/>
+ <point x="475" y="-25" type="curve" smooth="yes"/>
+ <point x="615" y="-25"/>
+ <point x="744" y="53"/>
+ <point x="865" y="200" type="curve"/>
+ <point x="875" y="125"/>
+ <point x="901" y="46"/>
+ <point x="920" y="0" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_tnS_mV_.glif b/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_tnS_mV_.glif
new file mode 100644
index 0000000..3097f4b
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_tnS_mV_.glif
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmV" format="2">
+ <advance width="1070"/>
+ <unicode hex="0076"/>
+ <anchor x="549" y="0" name="H"/>
+ <anchor x="535" y="-100" name="L"/>
+ <anchor x="725" y="0" name="O"/>
+ <anchor x="535" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="840" y="1020" type="line"/>
+ <point x="535" y="200" type="line"/>
+ <point x="230" y="1020" type="line"/>
+ <point x="20" y="1020" type="line"/>
+ <point x="75" y="905"/>
+ <point x="143" y="746"/>
+ <point x="175" y="665" type="curve" smooth="yes"/>
+ <point x="237" y="510"/>
+ <point x="440" y="0"/>
+ <point x="440" y="0" type="curve"/>
+ <point x="630" y="0" type="line"/>
+ <point x="630" y="0"/>
+ <point x="842" y="536"/>
+ <point x="895" y="665" type="curve" smooth="yes"/>
+ <point x="928" y="744"/>
+ <point x="993" y="905"/>
+ <point x="1050" y="1020" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_tnS_mW_.glif b/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_tnS_mW_.glif
new file mode 100644
index 0000000..3557415
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_tnS_mW_.glif
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmW" format="2">
+ <advance width="1550"/>
+ <unicode hex="0077"/>
+ <anchor x="775" y="-100" name="L"/>
+ <anchor x="775" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="700" y="1020" type="line"/>
+ <point x="440" y="215" type="line"/>
+ <point x="230" y="1020" type="line"/>
+ <point x="45" y="1020" type="line"/>
+ <point x="92" y="867"/>
+ <point x="120" y="771"/>
+ <point x="150" y="665" type="curve" smooth="yes"/>
+ <point x="335" y="0" type="line"/>
+ <point x="525" y="0" type="line"/>
+ <point x="775" y="785" type="line"/>
+ <point x="1025" y="0" type="line"/>
+ <point x="1215" y="0" type="line"/>
+ <point x="1400" y="665" type="line" smooth="yes"/>
+ <point x="1434" y="785"/>
+ <point x="1458" y="868"/>
+ <point x="1505" y="1020" type="curve"/>
+ <point x="1320" y="1020" type="line"/>
+ <point x="1110" y="215" type="line"/>
+ <point x="850" y="1020" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_tnS_mX_.glif b/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_tnS_mX_.glif
new file mode 100644
index 0000000..883cba4
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_tnS_mX_.glif
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmX" format="2">
+ <advance width="1085"/>
+ <unicode hex="0078"/>
+ <anchor x="900" y="0" name="H"/>
+ <anchor x="542" y="-100" name="L"/>
+ <anchor x="542" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="805" y="0" type="line"/>
+ <point x="1035" y="0" type="line"/>
+ <point x="927" y="142"/>
+ <point x="902" y="170"/>
+ <point x="830" y="270" type="curve" smooth="yes"/>
+ <point x="290" y="1020" type="line"/>
+ <point x="60" y="1020" type="line"/>
+ <point x="168" y="887"/>
+ <point x="203" y="843"/>
+ <point x="270" y="750" type="curve"/>
+ </contour>
+ <contour>
+ <point x="489" y="616" type="line"/>
+ <point x="250" y="270" type="line" smooth="yes"/>
+ <point x="189" y="182"/>
+ <point x="160" y="143"/>
+ <point x="50" y="0" type="curve"/>
+ <point x="275" y="0" type="line"/>
+ <point x="556" y="404" type="line"/>
+ </contour>
+ <contour>
+ <point x="585" y="405" type="line"/>
+ <point x="820" y="750" type="line" smooth="yes"/>
+ <point x="883" y="842"/>
+ <point x="917" y="886"/>
+ <point x="1020" y="1020" type="curve"/>
+ <point x="795" y="1020" type="line"/>
+ <point x="520" y="615" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_tnS_mY_.glif b/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_tnS_mY_.glif
new file mode 100644
index 0000000..cbe0f68
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/L_tnS_mY_.glif
@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmY" format="2">
+ <advance width="1060"/>
+ <unicode hex="0079"/>
+ <anchor x="795" y="-100" name="L"/>
+ <anchor x="1120" y="1000" name="R"/>
+ <anchor x="535" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="610" y="60" type="line"/>
+ <point x="230" y="1020" type="line"/>
+ <point x="30" y="1020" type="line"/>
+ <point x="107" y="864"/>
+ <point x="153" y="756"/>
+ <point x="190" y="665" type="curve" smooth="yes"/>
+ <point x="525" y="-165" type="line"/>
+ </contour>
+ <contour>
+ <point x="895" y="665" type="line"/>
+ <point x="928" y="758"/>
+ <point x="971" y="865"/>
+ <point x="1040" y="1020" type="curve"/>
+ <point x="840" y="1020" type="line"/>
+ <point x="840" y="1020"/>
+ <point x="564" y="230"/>
+ <point x="500" y="55" type="curve" smooth="yes"/>
+ <point x="391" y="-248"/>
+ <point x="315" y="-300"/>
+ <point x="225" y="-300" type="curve" smooth="yes"/>
+ <point x="159" y="-300"/>
+ <point x="82" y="-260"/>
+ <point x="40" y="-225" type="curve"/>
+ <point x="-20" y="-385" type="line"/>
+ <point x="53" y="-439"/>
+ <point x="134" y="-470"/>
+ <point x="225" y="-470" type="curve" smooth="yes"/>
+ <point x="395" y="-470"/>
+ <point x="516" y="-383"/>
+ <point x="655" y="0" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/N_onB_reakingH_yphen.glif b/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/N_onB_reakingH_yphen.glif
new file mode 100644
index 0000000..14aff81
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/N_onB_reakingH_yphen.glif
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="NonBreakingHyphen" format="2">
+ <advance width="860"/>
+ <unicode hex="2011"/>
+ <anchor x="430" y="1100" name="U"/>
+ <outline>
+ <component base="HyphenMinus"/>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/N_umS_gn.glif b/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/N_umS_gn.glif
new file mode 100644
index 0000000..f4625db
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/N_umS_gn.glif
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="NumSgn" format="2">
+ <advance width="1200"/>
+ <unicode hex="0023"/>
+ <outline>
+ <contour>
+ <point x="487" y="1460" type="line"/>
+ <point x="127" y="200" type="line"/>
+ <point x="277" y="200" type="line"/>
+ <point x="637" y="1460" type="line"/>
+ </contour>
+ <contour>
+ <point x="25" y="575" type="line"/>
+ <point x="1116" y="575" type="line"/>
+ <point x="1116" y="725" type="line"/>
+ <point x="25" y="725" type="line"/>
+ </contour>
+ <contour>
+ <point x="84" y="960" type="line"/>
+ <point x="1175" y="960" type="line"/>
+ <point x="1175" y="1110" type="line"/>
+ <point x="84" y="1110" type="line"/>
+ </contour>
+ <contour>
+ <point x="912" y="1460" type="line"/>
+ <point x="552" y="200" type="line"/>
+ <point x="702" y="200" type="line"/>
+ <point x="1062" y="1460" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/P_ercentS_gn.glif b/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/P_ercentS_gn.glif
new file mode 100644
index 0000000..e81f237
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/P_ercentS_gn.glif
@@ -0,0 +1,69 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="PercentSgn" format="2">
+ <advance width="1526"/>
+ <unicode hex="0025"/>
+ <outline>
+ <contour>
+ <point x="1261" y="366" type="curve" smooth="yes"/>
+ <point x="1261" y="182"/>
+ <point x="1216" y="115"/>
+ <point x="1130" y="115" type="curve" smooth="yes"/>
+ <point x="1041" y="115"/>
+ <point x="1001" y="181"/>
+ <point x="1001" y="381" type="curve" smooth="yes"/>
+ <point x="1001" y="565"/>
+ <point x="1043" y="630"/>
+ <point x="1130" y="630" type="curve" smooth="yes"/>
+ <point x="1221" y="630"/>
+ <point x="1261" y="566"/>
+ </contour>
+ <contour>
+ <point x="1426" y="379" type="curve" smooth="yes"/>
+ <point x="1426" y="652"/>
+ <point x="1310" y="770"/>
+ <point x="1135" y="770" type="curve" smooth="yes"/>
+ <point x="961" y="770"/>
+ <point x="836" y="650"/>
+ <point x="836" y="368" type="curve" smooth="yes"/>
+ <point x="836" y="86"/>
+ <point x="951" y="-25"/>
+ <point x="1126" y="-25" type="curve" smooth="yes"/>
+ <point x="1301" y="-25"/>
+ <point x="1426" y="84"/>
+ </contour>
+ <contour>
+ <point x="1073" y="1480" type="line"/>
+ <point x="291" y="-25" type="line"/>
+ <point x="459" y="-25" type="line"/>
+ <point x="1239" y="1480" type="line"/>
+ </contour>
+ <contour>
+ <point x="525" y="1076" type="curve" smooth="yes"/>
+ <point x="525" y="892"/>
+ <point x="480" y="825"/>
+ <point x="394" y="825" type="curve" smooth="yes"/>
+ <point x="305" y="825"/>
+ <point x="265" y="891"/>
+ <point x="265" y="1091" type="curve" smooth="yes"/>
+ <point x="265" y="1275"/>
+ <point x="307" y="1340"/>
+ <point x="394" y="1340" type="curve" smooth="yes"/>
+ <point x="485" y="1340"/>
+ <point x="525" y="1276"/>
+ </contour>
+ <contour>
+ <point x="690" y="1089" type="curve" smooth="yes"/>
+ <point x="690" y="1362"/>
+ <point x="574" y="1480"/>
+ <point x="399" y="1480" type="curve" smooth="yes"/>
+ <point x="225" y="1480"/>
+ <point x="100" y="1360"/>
+ <point x="100" y="1078" type="curve" smooth="yes"/>
+ <point x="100" y="796"/>
+ <point x="215" y="685"/>
+ <point x="390" y="685" type="curve" smooth="yes"/>
+ <point x="565" y="685"/>
+ <point x="690" y="794"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/P_lusS_gn.glif b/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/P_lusS_gn.glif
new file mode 100644
index 0000000..de1f259
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/P_lusS_gn.glif
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="PlusSgn" format="2">
+ <advance width="1200"/>
+ <unicode hex="002B"/>
+ <outline>
+ <contour>
+ <point x="525" y="1180" type="line"/>
+ <point x="525" y="285" type="line"/>
+ <point x="675" y="285" type="line"/>
+ <point x="675" y="1180" type="line"/>
+ </contour>
+ <contour>
+ <point x="155" y="660" type="line"/>
+ <point x="1045" y="660" type="line"/>
+ <point x="1045" y="810" type="line"/>
+ <point x="155" y="810" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/Q_stnM_rk.glif b/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/Q_stnM_rk.glif
new file mode 100644
index 0000000..5526aec
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/Q_stnM_rk.glif
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="QstnMrk" format="2">
+ <advance width="1050"/>
+ <unicode hex="003F"/>
+ <outline>
+ <contour>
+ <point x="460" y="1540" type="curve" smooth="yes"/>
+ <point x="335" y="1540"/>
+ <point x="206" y="1493"/>
+ <point x="140" y="1430" type="curve"/>
+ <point x="185" y="1251" type="line"/>
+ <point x="261" y="1330"/>
+ <point x="352" y="1365"/>
+ <point x="432" y="1365" type="curve" smooth="yes"/>
+ <point x="579" y="1365"/>
+ <point x="625" y="1289"/>
+ <point x="625" y="1230" type="curve" smooth="yes"/>
+ <point x="625" y="1159"/>
+ <point x="572" y="1092"/>
+ <point x="485" y="980" type="curve" smooth="yes"/>
+ <point x="397" y="867"/>
+ <point x="355" y="730"/>
+ <point x="355" y="440" type="curve"/>
+ <point x="540" y="440" type="line"/>
+ <point x="540" y="721"/>
+ <point x="561" y="806"/>
+ <point x="665" y="927" type="curve" smooth="yes"/>
+ <point x="753" y="1028"/>
+ <point x="830" y="1117"/>
+ <point x="830" y="1240" type="curve" smooth="yes"/>
+ <point x="830" y="1422"/>
+ <point x="697" y="1540"/>
+ </contour>
+ <contour>
+ <point x="315" y="110" type="curve" smooth="yes"/>
+ <point x="315" y="36"/>
+ <point x="376" y="-25"/>
+ <point x="450" y="-25" type="curve" smooth="yes"/>
+ <point x="524" y="-25"/>
+ <point x="585" y="36"/>
+ <point x="585" y="110" type="curve" smooth="yes"/>
+ <point x="585" y="184"/>
+ <point x="524" y="245"/>
+ <point x="450" y="245" type="curve" smooth="yes"/>
+ <point x="376" y="245"/>
+ <point x="315" y="184"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/Q_uotM_rk.glif b/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/Q_uotM_rk.glif
new file mode 100644
index 0000000..c9f06c6
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/Q_uotM_rk.glif
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="QuotMrk" format="2">
+ <advance width="1025"/>
+ <unicode hex="0022"/>
+ <outline>
+ <contour>
+ <point x="405" y="1045" type="line"/>
+ <point x="410" y="1186"/>
+ <point x="416" y="1339"/>
+ <point x="445" y="1585" type="curve"/>
+ <point x="240" y="1585" type="line"/>
+ <point x="271" y="1339"/>
+ <point x="276" y="1186"/>
+ <point x="280" y="1045" type="curve"/>
+ </contour>
+ <contour>
+ <point x="745" y="1045" type="line"/>
+ <point x="750" y="1186"/>
+ <point x="756" y="1339"/>
+ <point x="785" y="1585" type="curve"/>
+ <point x="580" y="1585" type="line"/>
+ <point x="611" y="1339"/>
+ <point x="616" y="1186"/>
+ <point x="620" y="1045" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/R_everseS_olidus.glif b/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/R_everseS_olidus.glif
new file mode 100644
index 0000000..d145f26
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/R_everseS_olidus.glif
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="ReverseSolidus" format="2">
+ <advance width="1000"/>
+ <unicode hex="005C"/>
+ <outline>
+ <contour>
+ <point x="990" y="-245" type="line"/>
+ <point x="160" y="1600" type="line"/>
+ <point x="10" y="1600" type="line"/>
+ <point x="840" y="-245" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/R_tC_urlyB_rac.glif b/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/R_tC_urlyB_rac.glif
new file mode 100644
index 0000000..288a75a
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/R_tC_urlyB_rac.glif
@@ -0,0 +1,47 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="RtCurlyBrac" format="2">
+ <advance width="1000"/>
+ <unicode hex="007D"/>
+ <outline>
+ <contour>
+ <point x="790" y="615" type="curve" smooth="yes"/>
+ <point x="790" y="647"/>
+ <point x="617" y="744"/>
+ <point x="590" y="780" type="curve" smooth="yes"/>
+ <point x="566" y="812"/>
+ <point x="576" y="1435"/>
+ <point x="505" y="1515" type="curve" smooth="yes"/>
+ <point x="465" y="1560"/>
+ <point x="304" y="1613"/>
+ <point x="200" y="1640" type="curve"/>
+ <point x="160" y="1500" type="line"/>
+ <point x="227" y="1477"/>
+ <point x="350" y="1428"/>
+ <point x="370" y="1400" type="curve" smooth="yes"/>
+ <point x="403" y="1353"/>
+ <point x="390" y="783"/>
+ <point x="410" y="745" type="curve" smooth="yes"/>
+ <point x="429" y="709"/>
+ <point x="566" y="637"/>
+ <point x="570" y="615" type="curve"/>
+ <point x="566" y="593"/>
+ <point x="429" y="521"/>
+ <point x="410" y="485" type="curve" smooth="yes"/>
+ <point x="390" y="447"/>
+ <point x="403" y="-123"/>
+ <point x="370" y="-170" type="curve" smooth="yes"/>
+ <point x="350" y="-198"/>
+ <point x="227" y="-247"/>
+ <point x="160" y="-270" type="curve"/>
+ <point x="200" y="-410" type="line"/>
+ <point x="304" y="-383"/>
+ <point x="465" y="-330"/>
+ <point x="505" y="-285" type="curve" smooth="yes"/>
+ <point x="576" y="-205"/>
+ <point x="566" y="418"/>
+ <point x="590" y="450" type="curve" smooth="yes"/>
+ <point x="617" y="486"/>
+ <point x="790" y="583"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/R_tP_aren.glif b/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/R_tP_aren.glif
new file mode 100644
index 0000000..3983f6b
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/R_tP_aren.glif
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="RtParen" format="2">
+ <advance width="795"/>
+ <unicode hex="0029"/>
+ <outline>
+ <contour>
+ <point x="680" y="625" type="curve" smooth="yes"/>
+ <point x="680" y="1062"/>
+ <point x="505" y="1444"/>
+ <point x="240" y="1640" type="curve"/>
+ <point x="165" y="1485" type="line"/>
+ <point x="390" y="1280"/>
+ <point x="490" y="962"/>
+ <point x="490" y="625" type="curve" smooth="yes"/>
+ <point x="490" y="278"/>
+ <point x="390" y="-8"/>
+ <point x="165" y="-265" type="curve"/>
+ <point x="260" y="-410" type="line"/>
+ <point x="535" y="-125"/>
+ <point x="680" y="218"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/R_tS_qrB_rac.glif b/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/R_tS_qrB_rac.glif
new file mode 100644
index 0000000..702689b
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/R_tS_qrB_rac.glif
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="RtSqrBrac" format="2">
+ <advance width="790"/>
+ <unicode hex="005D"/>
+ <outline>
+ <contour>
+ <point x="590" y="-410" type="line"/>
+ <point x="590" y="1600" type="line"/>
+ <point x="150" y="1600" type="line"/>
+ <point x="150" y="1450" type="line"/>
+ <point x="405" y="1450" type="line"/>
+ <point x="405" y="-260" type="line"/>
+ <point x="150" y="-260" type="line"/>
+ <point x="150" y="-410" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/S_emicolon.glif b/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/S_emicolon.glif
new file mode 100644
index 0000000..247bed0
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/S_emicolon.glif
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Semicolon" format="2">
+ <advance width="650"/>
+ <unicode hex="003B"/>
+ <outline>
+ <contour>
+ <point x="185" y="790" type="curve" smooth="yes"/>
+ <point x="185" y="716"/>
+ <point x="246" y="655"/>
+ <point x="320" y="655" type="curve" smooth="yes"/>
+ <point x="394" y="655"/>
+ <point x="455" y="716"/>
+ <point x="455" y="790" type="curve" smooth="yes"/>
+ <point x="455" y="864"/>
+ <point x="394" y="925"/>
+ <point x="320" y="925" type="curve" smooth="yes"/>
+ <point x="246" y="925"/>
+ <point x="185" y="864"/>
+ </contour>
+ <contour>
+ <point x="185" y="50" type="line"/>
+ <point x="325" y="50" type="line"/>
+ <point x="325" y="-51"/>
+ <point x="248" y="-172"/>
+ <point x="190" y="-230" type="curve"/>
+ <point x="290" y="-270" type="line"/>
+ <point x="407" y="-160"/>
+ <point x="465" y="-37"/>
+ <point x="465" y="85" type="curve" smooth="yes"/>
+ <point x="465" y="186"/>
+ <point x="400" y="250"/>
+ <point x="320" y="250" type="curve" smooth="yes"/>
+ <point x="263" y="250"/>
+ <point x="198" y="213"/>
+ <point x="185" y="150" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/S_olidus.glif b/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/S_olidus.glif
new file mode 100644
index 0000000..3edff5d
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/S_olidus.glif
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Solidus" format="2">
+ <advance width="1000"/>
+ <unicode hex="002F"/>
+ <outline>
+ <contour>
+ <point x="840" y="1600" type="line"/>
+ <point x="10" y="-245" type="line"/>
+ <point x="160" y="-245" type="line"/>
+ <point x="990" y="1600" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/S_pace.glif b/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/S_pace.glif
new file mode 100644
index 0000000..ef0bed7
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/S_pace.glif
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Space" format="2">
+ <advance width="550"/>
+ <unicode hex="0020"/>
+ <outline/>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/T_ilde.glif b/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/T_ilde.glif
new file mode 100644
index 0000000..60ddaa7
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/T_ilde.glif
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Tilde" format="2">
+ <advance width="1115"/>
+ <unicode hex="007E"/>
+ <outline>
+ <contour>
+ <point x="125" y="375" type="line"/>
+ <point x="130" y="424"/>
+ <point x="162" y="465"/>
+ <point x="240" y="465" type="curve" smooth="yes"/>
+ <point x="415" y="465"/>
+ <point x="615" y="360"/>
+ <point x="845" y="360" type="curve" smooth="yes"/>
+ <point x="1004" y="360"/>
+ <point x="1080" y="482"/>
+ <point x="1080" y="610" type="curve"/>
+ <point x="975" y="610" type="line"/>
+ <point x="968" y="564"/>
+ <point x="938" y="510"/>
+ <point x="855" y="510" type="curve" smooth="yes"/>
+ <point x="619" y="510"/>
+ <point x="461" y="615"/>
+ <point x="240" y="615" type="curve" smooth="yes"/>
+ <point x="94" y="615"/>
+ <point x="20" y="497"/>
+ <point x="20" y="375" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/V_ertL_ine.glif b/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/V_ertL_ine.glif
new file mode 100644
index 0000000..c73e040
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/V_ertL_ine.glif
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="VertLine" format="2">
+ <advance width="690"/>
+ <unicode hex="007C"/>
+ <outline>
+ <contour>
+ <point x="270" y="1600" type="line"/>
+ <point x="270" y="-390" type="line"/>
+ <point x="420" y="-390" type="line"/>
+ <point x="420" y="1600" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/_notdef.glif b/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/_notdef.glif
new file mode 100644
index 0000000..a3e9354
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/_notdef.glif
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name=".notdef" format="2">
+ <advance width="1400"/>
+ <outline>
+ <contour>
+ <point x="100" y="0" type="line"/>
+ <point x="1300" y="0" type="line"/>
+ <point x="1300" y="1800" type="line"/>
+ <point x="100" y="1800" type="line"/>
+ </contour>
+ <contour>
+ <point x="150" y="1750" type="line"/>
+ <point x="1250" y="1750" type="line"/>
+ <point x="1250" y="50" type="line"/>
+ <point x="150" y="50" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/_null.glif b/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/_null.glif
new file mode 100644
index 0000000..0b9caa6
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/_null.glif
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name=".null" format="2">
+ <outline/>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/contents.plist b/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/contents.plist
new file mode 100644
index 0000000..de3c0b3
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/contents.plist
@@ -0,0 +1,234 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>.notdef</key>
+ <string>_notdef.glif</string>
+ <key>.null</key>
+ <string>_null.glif</string>
+ <key>Ampersand</key>
+ <string>A_mpersand.glif</string>
+ <key>Apos</key>
+ <string>A_pos.glif</string>
+ <key>Asterisk</key>
+ <string>A_sterisk.glif</string>
+ <key>AtSgn</key>
+ <string>A_tS_gn.glif</string>
+ <key>CircumAccent</key>
+ <string>C_ircumA_ccent.glif</string>
+ <key>Colon</key>
+ <string>C_olon.glif</string>
+ <key>CombAcute</key>
+ <string>C_ombA_cute.glif</string>
+ <key>CombCircum</key>
+ <string>C_ombC_ircum.glif</string>
+ <key>CombDiaer</key>
+ <string>C_ombD_iaer.glif</string>
+ <key>CombGrave</key>
+ <string>C_ombG_rave.glif</string>
+ <key>CombRingAbv</key>
+ <string>C_ombR_ingA_bv.glif</string>
+ <key>CombTilde</key>
+ <string>C_ombT_ilde.glif</string>
+ <key>Comma</key>
+ <string>C_omma.glif</string>
+ <key>DigitEight</key>
+ <string>D_igitE_ight.glif</string>
+ <key>DigitFive</key>
+ <string>D_igitF_ive.glif</string>
+ <key>DigitFour</key>
+ <string>D_igitF_our.glif</string>
+ <key>DigitNine</key>
+ <string>D_igitN_ine.glif</string>
+ <key>DigitOne</key>
+ <string>D_igitO_ne.glif</string>
+ <key>DigitSeven</key>
+ <string>D_igitS_even.glif</string>
+ <key>DigitSix</key>
+ <string>D_igitS_ix.glif</string>
+ <key>DigitThree</key>
+ <string>D_igitT_hree.glif</string>
+ <key>DigitTwo</key>
+ <string>D_igitT_wo.glif</string>
+ <key>DigitZero</key>
+ <string>D_igitZ_ero.glif</string>
+ <key>DollarSgn</key>
+ <string>D_ollarS_gn.glif</string>
+ <key>DottedCirc</key>
+ <string>D_ottedC_irc.glif</string>
+ <key>EqSgn</key>
+ <string>E_qS_gn.glif</string>
+ <key>ExclamationMrk</key>
+ <string>E_xclamationM_rk.glif</string>
+ <key>FullStop</key>
+ <string>F_ullS_top.glif</string>
+ <key>GTSgn</key>
+ <string>G_T_S_gn.glif</string>
+ <key>GraveAccent</key>
+ <string>G_raveA_ccent.glif</string>
+ <key>Hyphen</key>
+ <string>H_yphen.glif</string>
+ <key>HyphenMinus</key>
+ <string>H_yphenM_inus.glif</string>
+ <key>Hyphen_Soft</key>
+ <string>H_yphen_S_oft.glif</string>
+ <key>LTSgn</key>
+ <string>L_T_S_gn.glif</string>
+ <key>LftCurlyBrac</key>
+ <string>L_ftC_urlyB_rac.glif</string>
+ <key>LftParen</key>
+ <string>L_ftP_aren.glif</string>
+ <key>LftSqrBrac</key>
+ <string>L_ftS_qrB_rac.glif</string>
+ <key>LowLine</key>
+ <string>L_owL_ine.glif</string>
+ <key>LtnCapA</key>
+ <string>L_tnC_apA_.glif</string>
+ <key>LtnCapA.alt</key>
+ <string>L_tnC_apA_.alt.glif</string>
+ <key>LtnCapADiaer</key>
+ <string>L_tnC_apA_D_iaer.glif</string>
+ <key>LtnCapB</key>
+ <string>L_tnC_apB_.glif</string>
+ <key>LtnCapC</key>
+ <string>L_tnC_apC_.glif</string>
+ <key>LtnCapD</key>
+ <string>L_tnC_apD_.glif</string>
+ <key>LtnCapE</key>
+ <string>L_tnC_apE_.glif</string>
+ <key>LtnCapF</key>
+ <string>L_tnC_apF_.glif</string>
+ <key>LtnCapG</key>
+ <string>L_tnC_apG_.glif</string>
+ <key>LtnCapH</key>
+ <string>L_tnC_apH_.glif</string>
+ <key>LtnCapI</key>
+ <string>L_tnC_apI_.glif</string>
+ <key>LtnCapJ</key>
+ <string>L_tnC_apJ_.glif</string>
+ <key>LtnCapK</key>
+ <string>L_tnC_apK_.glif</string>
+ <key>LtnCapL</key>
+ <string>L_tnC_apL_.glif</string>
+ <key>LtnCapM</key>
+ <string>L_tnC_apM_.glif</string>
+ <key>LtnCapN</key>
+ <string>L_tnC_apN_.glif</string>
+ <key>LtnCapO</key>
+ <string>L_tnC_apO_.glif</string>
+ <key>LtnCapP</key>
+ <string>L_tnC_apP_.glif</string>
+ <key>LtnCapQ</key>
+ <string>L_tnC_apQ_.glif</string>
+ <key>LtnCapR</key>
+ <string>L_tnC_apR_.glif</string>
+ <key>LtnCapS</key>
+ <string>L_tnC_apS_.glif</string>
+ <key>LtnCapT</key>
+ <string>L_tnC_apT_.glif</string>
+ <key>LtnCapU</key>
+ <string>L_tnC_apU_.glif</string>
+ <key>LtnCapV</key>
+ <string>L_tnC_apV_.glif</string>
+ <key>LtnCapW</key>
+ <string>L_tnC_apW_.glif</string>
+ <key>LtnCapX</key>
+ <string>L_tnC_apX_.glif</string>
+ <key>LtnCapY</key>
+ <string>L_tnC_apY_.glif</string>
+ <key>LtnSmA</key>
+ <string>L_tnS_mA_.glif</string>
+ <key>LtnSmAAcute</key>
+ <string>L_tnS_mA_A_cute.glif</string>
+ <key>LtnSmACircum</key>
+ <string>L_tnS_mA_C_ircum.glif</string>
+ <key>LtnSmADiaer</key>
+ <string>L_tnS_mA_D_iaer.glif</string>
+ <key>LtnSmAGrave</key>
+ <string>L_tnS_mA_G_rave.glif</string>
+ <key>LtnSmARingAbv</key>
+ <string>L_tnS_mA_R_ingA_bv.glif</string>
+ <key>LtnSmATilde</key>
+ <string>L_tnS_mA_T_ilde.glif</string>
+ <key>LtnSmB</key>
+ <string>L_tnS_mB_.glif</string>
+ <key>LtnSmC</key>
+ <string>L_tnS_mC_.glif</string>
+ <key>LtnSmD</key>
+ <string>L_tnS_mD_.glif</string>
+ <key>LtnSmE</key>
+ <string>L_tnS_mE_.glif</string>
+ <key>LtnSmF</key>
+ <string>L_tnS_mF_.glif</string>
+ <key>LtnSmG</key>
+ <string>L_tnS_mG_.glif</string>
+ <key>LtnSmH</key>
+ <string>L_tnS_mH_.glif</string>
+ <key>LtnSmI</key>
+ <string>L_tnS_mI_.glif</string>
+ <key>LtnSmJ</key>
+ <string>L_tnS_mJ_.glif</string>
+ <key>LtnSmK</key>
+ <string>L_tnS_mK_.glif</string>
+ <key>LtnSmL</key>
+ <string>L_tnS_mL_.glif</string>
+ <key>LtnSmM</key>
+ <string>L_tnS_mM_.glif</string>
+ <key>LtnSmN</key>
+ <string>L_tnS_mN_.glif</string>
+ <key>LtnSmO</key>
+ <string>L_tnS_mO_.glif</string>
+ <key>LtnSmP</key>
+ <string>L_tnS_mP_.glif</string>
+ <key>LtnSmQ</key>
+ <string>L_tnS_mQ_.glif</string>
+ <key>LtnSmR</key>
+ <string>L_tnS_mR_.glif</string>
+ <key>LtnSmS</key>
+ <string>L_tnS_mS_.glif</string>
+ <key>LtnSmT</key>
+ <string>L_tnS_mT_.glif</string>
+ <key>LtnSmU</key>
+ <string>L_tnS_mU_.glif</string>
+ <key>LtnSmV</key>
+ <string>L_tnS_mV_.glif</string>
+ <key>LtnSmW</key>
+ <string>L_tnS_mW_.glif</string>
+ <key>LtnSmX</key>
+ <string>L_tnS_mX_.glif</string>
+ <key>LtnSmY</key>
+ <string>L_tnS_mY_.glif</string>
+ <key>NonBreakingHyphen</key>
+ <string>N_onB_reakingH_yphen.glif</string>
+ <key>NumSgn</key>
+ <string>N_umS_gn.glif</string>
+ <key>PercentSgn</key>
+ <string>P_ercentS_gn.glif</string>
+ <key>PlusSgn</key>
+ <string>P_lusS_gn.glif</string>
+ <key>QstnMrk</key>
+ <string>Q_stnM_rk.glif</string>
+ <key>QuotMrk</key>
+ <string>Q_uotM_rk.glif</string>
+ <key>ReverseSolidus</key>
+ <string>R_everseS_olidus.glif</string>
+ <key>RtCurlyBrac</key>
+ <string>R_tC_urlyB_rac.glif</string>
+ <key>RtParen</key>
+ <string>R_tP_aren.glif</string>
+ <key>RtSqrBrac</key>
+ <string>R_tS_qrB_rac.glif</string>
+ <key>Semicolon</key>
+ <string>S_emicolon.glif</string>
+ <key>Solidus</key>
+ <string>S_olidus.glif</string>
+ <key>Space</key>
+ <string>S_pace.glif</string>
+ <key>Tilde</key>
+ <string>T_ilde.glif</string>
+ <key>VertLine</key>
+ <string>V_ertL_ine.glif</string>
+ <key>nonmarkingreturn</key>
+ <string>nonmarkingreturn.glif</string>
+</dict>
+</plist>
diff --git a/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/nonmarkingreturn.glif b/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/nonmarkingreturn.glif
new file mode 100644
index 0000000..ee41448
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Regular.ufo/glyphs/nonmarkingreturn.glif
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="nonmarkingreturn" format="2">
+ <advance width="1024"/>
+ <outline/>
+</glyph>
diff --git a/tests/input/font-psf-test/source/PsfTest-Regular.ufo/layercontents.plist b/tests/input/font-psf-test/source/PsfTest-Regular.ufo/layercontents.plist
new file mode 100644
index 0000000..42b7482
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Regular.ufo/layercontents.plist
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<array>
+ <array>
+ <string>public.default</string>
+ <string>glyphs</string>
+ </array>
+</array>
+</plist>
diff --git a/tests/input/font-psf-test/source/PsfTest-Regular.ufo/lib.plist b/tests/input/font-psf-test/source/PsfTest-Regular.ufo/lib.plist
new file mode 100644
index 0000000..8b95204
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Regular.ufo/lib.plist
@@ -0,0 +1,536 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>com.schriftgestaltung.Glyphs.fontUserData</key>
+ <dict/>
+ <key>com.schriftgestaltung.appVersion</key>
+ <string>1161</string>
+ <key>com.schriftgestaltung.customParameter.GSFont.DisplayStrings</key>
+ <string/>
+ <key>com.schriftgestaltung.customParameter.GSFont.disablesAutomaticAlignment</key>
+ <true/>
+ <key>com.schriftgestaltung.customParameter.GSFont.disablesLastChange</key>
+ <true/>
+ <key>com.schriftgestaltung.customParameter.GSFont.useNiceNames</key>
+ <integer>0</integer>
+ <key>com.schriftgestaltung.customParameter.GSFontMaster.customValue</key>
+ <integer>0</integer>
+ <key>com.schriftgestaltung.customParameter.GSFontMaster.customValue1</key>
+ <integer>0</integer>
+ <key>com.schriftgestaltung.customParameter.GSFontMaster.customValue2</key>
+ <integer>0</integer>
+ <key>com.schriftgestaltung.customParameter.GSFontMaster.customValue3</key>
+ <integer>0</integer>
+ <key>com.schriftgestaltung.customParameter.GSFontMaster.iconName</key>
+ <string/>
+ <key>com.schriftgestaltung.customParameter.GSFontMaster.weightValue</key>
+ <integer>400</integer>
+ <key>com.schriftgestaltung.customParameter.GSFontMaster.widthValue</key>
+ <integer>100</integer>
+ <key>com.schriftgestaltung.disablesAutomaticAlignment</key>
+ <true/>
+ <key>com.schriftgestaltung.disablesLastChange</key>
+ <true/>
+ <key>com.schriftgestaltung.fontMasterOrder</key>
+ <integer>0</integer>
+ <key>com.schriftgestaltung.glyphOrder</key>
+ <array>
+ <string>.notdef</string>
+ <string>.null</string>
+ <string>nonmarkingreturn</string>
+ <string>Space</string>
+ <string>ExclamationMrk</string>
+ <string>QuotMrk</string>
+ <string>NumSgn</string>
+ <string>DollarSgn</string>
+ <string>PercentSgn</string>
+ <string>Ampersand</string>
+ <string>Apos</string>
+ <string>LftParen</string>
+ <string>RtParen</string>
+ <string>Asterisk</string>
+ <string>PlusSgn</string>
+ <string>Comma</string>
+ <string>HyphenMinus</string>
+ <string>FullStop</string>
+ <string>Solidus</string>
+ <string>DigitZero</string>
+ <string>DigitOne</string>
+ <string>DigitTwo</string>
+ <string>DigitThree</string>
+ <string>DigitFour</string>
+ <string>DigitFive</string>
+ <string>DigitSix</string>
+ <string>DigitSeven</string>
+ <string>DigitEight</string>
+ <string>DigitNine</string>
+ <string>Colon</string>
+ <string>Semicolon</string>
+ <string>LTSgn</string>
+ <string>EqSgn</string>
+ <string>GTSgn</string>
+ <string>QstnMrk</string>
+ <string>AtSgn</string>
+ <string>LtnCapA</string>
+ <string>LtnCapA.alt</string>
+ <string>LtnCapB</string>
+ <string>LtnCapC</string>
+ <string>LtnCapD</string>
+ <string>LtnCapE</string>
+ <string>LtnCapF</string>
+ <string>LtnCapG</string>
+ <string>LtnCapH</string>
+ <string>LtnCapI</string>
+ <string>LtnCapJ</string>
+ <string>LtnCapK</string>
+ <string>LtnCapL</string>
+ <string>LtnCapM</string>
+ <string>LtnCapN</string>
+ <string>LtnCapO</string>
+ <string>LtnCapP</string>
+ <string>LtnCapQ</string>
+ <string>LtnCapR</string>
+ <string>LtnCapS</string>
+ <string>LtnCapT</string>
+ <string>LtnCapU</string>
+ <string>LtnCapV</string>
+ <string>LtnCapW</string>
+ <string>LtnCapX</string>
+ <string>LtnCapY</string>
+ <string>LftSqrBrac</string>
+ <string>ReverseSolidus</string>
+ <string>RtSqrBrac</string>
+ <string>CircumAccent</string>
+ <string>LowLine</string>
+ <string>GraveAccent</string>
+ <string>LtnSmA</string>
+ <string>LtnSmB</string>
+ <string>LtnSmC</string>
+ <string>LtnSmD</string>
+ <string>LtnSmE</string>
+ <string>LtnSmF</string>
+ <string>LtnSmG</string>
+ <string>LtnSmH</string>
+ <string>LtnSmI</string>
+ <string>LtnSmJ</string>
+ <string>LtnSmK</string>
+ <string>LtnSmL</string>
+ <string>LtnSmM</string>
+ <string>LtnSmN</string>
+ <string>LtnSmO</string>
+ <string>LtnSmP</string>
+ <string>LtnSmQ</string>
+ <string>LtnSmR</string>
+ <string>LtnSmS</string>
+ <string>LtnSmT</string>
+ <string>LtnSmU</string>
+ <string>LtnSmV</string>
+ <string>LtnSmW</string>
+ <string>LtnSmX</string>
+ <string>LtnSmY</string>
+ <string>LftCurlyBrac</string>
+ <string>VertLine</string>
+ <string>RtCurlyBrac</string>
+ <string>Tilde</string>
+ <string>LtnCapADiaer</string>
+ <string>LtnSmAAcute</string>
+ <string>LtnSmAGrave</string>
+ <string>LtnSmACircum</string>
+ <string>LtnSmADiaer</string>
+ <string>LtnSmATilde</string>
+ <string>LtnSmARingAbv</string>
+ <string>DottedCirc</string>
+ <string>Hyphen</string>
+ <string>NonBreakingHyphen</string>
+ <string>Hyphen_Soft</string>
+ <string>CombAcute</string>
+ <string>CombGrave</string>
+ <string>CombCircum</string>
+ <string>CombTilde</string>
+ <string>CombDiaer</string>
+ <string>CombRingAbv</string>
+ </array>
+ <key>com.schriftgestaltung.keyboardIncrement</key>
+ <integer>1</integer>
+ <key>com.schriftgestaltung.weight</key>
+ <string>Regular</string>
+ <key>com.schriftgestaltung.weightValue</key>
+ <integer>400</integer>
+ <key>com.schriftgestaltung.width</key>
+ <string>Regular</string>
+ <key>com.schriftgestaltung.widthValue</key>
+ <integer>100</integer>
+ <key>org.sil.lcg.toneLetters</key>
+ <dict>
+ <key>contourWidth</key>
+ <integer>480</integer>
+ <key>dotSize</key>
+ <integer>180</integer>
+ <key>dotSpacing</key>
+ <integer>200</integer>
+ <key>glyphDepth</key>
+ <integer>-25</integer>
+ <key>glyphHeight</key>
+ <integer>1600</integer>
+ <key>italicAngle</key>
+ <integer>0</integer>
+ <key>marginDotLeft</key>
+ <integer>120</integer>
+ <key>marginDotRight</key>
+ <integer>160</integer>
+ <key>marginFlatLeft</key>
+ <integer>120</integer>
+ <key>marginFlatRight</key>
+ <integer>160</integer>
+ <key>marginPointLeft</key>
+ <integer>100</integer>
+ <key>marginPointRight</key>
+ <integer>140</integer>
+ <key>strokeThickness</key>
+ <integer>120</integer>
+ </dict>
+ <key>public.glyphOrder</key>
+ <array>
+ <string>.notdef</string>
+ <string>.null</string>
+ <string>nonmarkingreturn</string>
+ <string>Space</string>
+ <string>ExclamationMrk</string>
+ <string>QuotMrk</string>
+ <string>NumSgn</string>
+ <string>DollarSgn</string>
+ <string>PercentSgn</string>
+ <string>Ampersand</string>
+ <string>Apos</string>
+ <string>LftParen</string>
+ <string>RtParen</string>
+ <string>Asterisk</string>
+ <string>PlusSgn</string>
+ <string>Comma</string>
+ <string>HyphenMinus</string>
+ <string>FullStop</string>
+ <string>Solidus</string>
+ <string>DigitZero</string>
+ <string>DigitOne</string>
+ <string>DigitTwo</string>
+ <string>DigitThree</string>
+ <string>DigitFour</string>
+ <string>DigitFive</string>
+ <string>DigitSix</string>
+ <string>DigitSeven</string>
+ <string>DigitEight</string>
+ <string>DigitNine</string>
+ <string>Colon</string>
+ <string>Semicolon</string>
+ <string>LTSgn</string>
+ <string>EqSgn</string>
+ <string>GTSgn</string>
+ <string>QstnMrk</string>
+ <string>AtSgn</string>
+ <string>LtnCapA</string>
+ <string>LtnCapA.alt</string>
+ <string>LtnCapB</string>
+ <string>LtnCapC</string>
+ <string>LtnCapD</string>
+ <string>LtnCapE</string>
+ <string>LtnCapF</string>
+ <string>LtnCapG</string>
+ <string>LtnCapH</string>
+ <string>LtnCapI</string>
+ <string>LtnCapJ</string>
+ <string>LtnCapK</string>
+ <string>LtnCapL</string>
+ <string>LtnCapM</string>
+ <string>LtnCapN</string>
+ <string>LtnCapO</string>
+ <string>LtnCapP</string>
+ <string>LtnCapQ</string>
+ <string>LtnCapR</string>
+ <string>LtnCapS</string>
+ <string>LtnCapT</string>
+ <string>LtnCapU</string>
+ <string>LtnCapV</string>
+ <string>LtnCapW</string>
+ <string>LtnCapX</string>
+ <string>LtnCapY</string>
+ <string>LftSqrBrac</string>
+ <string>ReverseSolidus</string>
+ <string>RtSqrBrac</string>
+ <string>CircumAccent</string>
+ <string>LowLine</string>
+ <string>GraveAccent</string>
+ <string>LtnSmA</string>
+ <string>LtnSmB</string>
+ <string>LtnSmC</string>
+ <string>LtnSmD</string>
+ <string>LtnSmE</string>
+ <string>LtnSmF</string>
+ <string>LtnSmG</string>
+ <string>LtnSmH</string>
+ <string>LtnSmI</string>
+ <string>LtnSmJ</string>
+ <string>LtnSmK</string>
+ <string>LtnSmL</string>
+ <string>LtnSmM</string>
+ <string>LtnSmN</string>
+ <string>LtnSmO</string>
+ <string>LtnSmP</string>
+ <string>LtnSmQ</string>
+ <string>LtnSmR</string>
+ <string>LtnSmS</string>
+ <string>LtnSmT</string>
+ <string>LtnSmU</string>
+ <string>LtnSmV</string>
+ <string>LtnSmW</string>
+ <string>LtnSmX</string>
+ <string>LtnSmY</string>
+ <string>LftCurlyBrac</string>
+ <string>VertLine</string>
+ <string>RtCurlyBrac</string>
+ <string>Tilde</string>
+ <string>LtnCapADiaer</string>
+ <string>LtnSmAAcute</string>
+ <string>LtnSmAGrave</string>
+ <string>LtnSmACircum</string>
+ <string>LtnSmADiaer</string>
+ <string>LtnSmATilde</string>
+ <string>LtnSmARingAbv</string>
+ <string>DottedCirc</string>
+ <string>Hyphen</string>
+ <string>NonBreakingHyphen</string>
+ <string>Hyphen_Soft</string>
+ <string>CombAcute</string>
+ <string>CombGrave</string>
+ <string>CombCircum</string>
+ <string>CombTilde</string>
+ <string>CombDiaer</string>
+ <string>CombRingAbv</string>
+ </array>
+ <key>public.postscriptNames</key>
+ <dict>
+ <key>Ampersand</key>
+ <string>ampersand</string>
+ <key>Apos</key>
+ <string>quotesingle</string>
+ <key>Asterisk</key>
+ <string>asterisk</string>
+ <key>AtSgn</key>
+ <string>at</string>
+ <key>CircumAccent</key>
+ <string>asciicircum</string>
+ <key>Colon</key>
+ <string>colon</string>
+ <key>CombAcute</key>
+ <string>acutecomb</string>
+ <key>CombCircum</key>
+ <string>uni0302</string>
+ <key>CombDiaer</key>
+ <string>uni0308</string>
+ <key>CombGrave</key>
+ <string>gravecomb</string>
+ <key>CombRingAbv</key>
+ <string>uni030A</string>
+ <key>CombTilde</key>
+ <string>tildecomb</string>
+ <key>Comma</key>
+ <string>comma</string>
+ <key>DigitEight</key>
+ <string>eight</string>
+ <key>DigitFive</key>
+ <string>five</string>
+ <key>DigitFour</key>
+ <string>four</string>
+ <key>DigitNine</key>
+ <string>nine</string>
+ <key>DigitOne</key>
+ <string>one</string>
+ <key>DigitSeven</key>
+ <string>seven</string>
+ <key>DigitSix</key>
+ <string>six</string>
+ <key>DigitThree</key>
+ <string>three</string>
+ <key>DigitTwo</key>
+ <string>two</string>
+ <key>DigitZero</key>
+ <string>zero</string>
+ <key>DollarSgn</key>
+ <string>dollar</string>
+ <key>DottedCirc</key>
+ <string>uni25CC</string>
+ <key>EqSgn</key>
+ <string>equal</string>
+ <key>ExclamationMrk</key>
+ <string>exclam</string>
+ <key>FullStop</key>
+ <string>period</string>
+ <key>GTSgn</key>
+ <string>greater</string>
+ <key>GraveAccent</key>
+ <string>grave</string>
+ <key>Hyphen</key>
+ <string>uni2010</string>
+ <key>HyphenMinus</key>
+ <string>hyphen</string>
+ <key>Hyphen_Soft</key>
+ <string>uni00AD</string>
+ <key>LTSgn</key>
+ <string>less</string>
+ <key>LftCurlyBrac</key>
+ <string>braceleft</string>
+ <key>LftParen</key>
+ <string>parenleft</string>
+ <key>LftSqrBrac</key>
+ <string>bracketleft</string>
+ <key>LowLine</key>
+ <string>underscore</string>
+ <key>LtnCapA</key>
+ <string>A</string>
+ <key>LtnCapA.alt</key>
+ <string>A</string>
+ <key>LtnCapADiaer</key>
+ <string>Adieresis</string>
+ <key>LtnCapB</key>
+ <string>B</string>
+ <key>LtnCapC</key>
+ <string>C</string>
+ <key>LtnCapD</key>
+ <string>D</string>
+ <key>LtnCapE</key>
+ <string>E</string>
+ <key>LtnCapF</key>
+ <string>F</string>
+ <key>LtnCapG</key>
+ <string>G</string>
+ <key>LtnCapH</key>
+ <string>H</string>
+ <key>LtnCapI</key>
+ <string>I</string>
+ <key>LtnCapJ</key>
+ <string>J</string>
+ <key>LtnCapK</key>
+ <string>K</string>
+ <key>LtnCapL</key>
+ <string>L</string>
+ <key>LtnCapM</key>
+ <string>M</string>
+ <key>LtnCapN</key>
+ <string>N</string>
+ <key>LtnCapO</key>
+ <string>O</string>
+ <key>LtnCapP</key>
+ <string>P</string>
+ <key>LtnCapQ</key>
+ <string>Q</string>
+ <key>LtnCapR</key>
+ <string>R</string>
+ <key>LtnCapS</key>
+ <string>S</string>
+ <key>LtnCapT</key>
+ <string>T</string>
+ <key>LtnCapU</key>
+ <string>U</string>
+ <key>LtnCapV</key>
+ <string>V</string>
+ <key>LtnCapW</key>
+ <string>W</string>
+ <key>LtnCapX</key>
+ <string>X</string>
+ <key>LtnCapY</key>
+ <string>Y</string>
+ <key>LtnSmA</key>
+ <string>a</string>
+ <key>LtnSmAAcute</key>
+ <string>aacute</string>
+ <key>LtnSmACircum</key>
+ <string>acircumflex</string>
+ <key>LtnSmADiaer</key>
+ <string>adieresis</string>
+ <key>LtnSmAGrave</key>
+ <string>agrave</string>
+ <key>LtnSmARingAbv</key>
+ <string>aring</string>
+ <key>LtnSmATilde</key>
+ <string>atilde</string>
+ <key>LtnSmB</key>
+ <string>b</string>
+ <key>LtnSmC</key>
+ <string>c</string>
+ <key>LtnSmD</key>
+ <string>d</string>
+ <key>LtnSmE</key>
+ <string>e</string>
+ <key>LtnSmF</key>
+ <string>f</string>
+ <key>LtnSmG</key>
+ <string>g</string>
+ <key>LtnSmH</key>
+ <string>h</string>
+ <key>LtnSmI</key>
+ <string>i</string>
+ <key>LtnSmJ</key>
+ <string>j</string>
+ <key>LtnSmK</key>
+ <string>k</string>
+ <key>LtnSmL</key>
+ <string>l</string>
+ <key>LtnSmM</key>
+ <string>m</string>
+ <key>LtnSmN</key>
+ <string>n</string>
+ <key>LtnSmO</key>
+ <string>o</string>
+ <key>LtnSmP</key>
+ <string>p</string>
+ <key>LtnSmQ</key>
+ <string>q</string>
+ <key>LtnSmR</key>
+ <string>r</string>
+ <key>LtnSmS</key>
+ <string>s</string>
+ <key>LtnSmT</key>
+ <string>t</string>
+ <key>LtnSmU</key>
+ <string>u</string>
+ <key>LtnSmV</key>
+ <string>v</string>
+ <key>LtnSmW</key>
+ <string>w</string>
+ <key>LtnSmX</key>
+ <string>x</string>
+ <key>LtnSmY</key>
+ <string>y</string>
+ <key>NonBreakingHyphen</key>
+ <string>uni2011</string>
+ <key>NumSgn</key>
+ <string>numbersign</string>
+ <key>PercentSgn</key>
+ <string>percent</string>
+ <key>PlusSgn</key>
+ <string>plus</string>
+ <key>QstnMrk</key>
+ <string>question</string>
+ <key>QuotMrk</key>
+ <string>quotedbl</string>
+ <key>ReverseSolidus</key>
+ <string>backslash</string>
+ <key>RtCurlyBrac</key>
+ <string>braceright</string>
+ <key>RtParen</key>
+ <string>parenright</string>
+ <key>RtSqrBrac</key>
+ <string>bracketright</string>
+ <key>Semicolon</key>
+ <string>semicolon</string>
+ <key>Solidus</key>
+ <string>slash</string>
+ <key>Space</key>
+ <string>space</string>
+ <key>Tilde</key>
+ <string>asciitilde</string>
+ <key>VertLine</key>
+ <string>bar</string>
+ </dict>
+</dict>
+</plist>
diff --git a/tests/input/font-psf-test/source/PsfTest-Regular.ufo/metainfo.plist b/tests/input/font-psf-test/source/PsfTest-Regular.ufo/metainfo.plist
new file mode 100644
index 0000000..aa10c5c
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTest-Regular.ufo/metainfo.plist
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>creator</key>
+ <string>org.sil.scripts.pysilfont</string>
+ <key>formatVersion</key>
+ <integer>3</integer>
+</dict>
+</plist>
diff --git a/tests/input/font-psf-test/source/PsfTestItalic.designspace b/tests/input/font-psf-test/source/PsfTestItalic.designspace
new file mode 100644
index 0000000..701cfea
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTestItalic.designspace
@@ -0,0 +1,58 @@
+<?xml version='1.0' encoding='utf-8'?>
+<designspace format="3">
+ <axes>
+ <axis default="400.0" maximum="700.0" minimum="400.0" name="weight" tag="wght">
+ <map input="400.0" output="400.0" />
+ <map input="700.0" output="700.0" />
+ <labelname xml:lang="en">Weight</labelname>
+ </axis>
+ <axis default="100.0" maximum="100.0" minimum="100.0" name="width" tag="wdth">
+ <map input="100.0" output="100.0" />
+ <labelname xml:lang="en">Width</labelname>
+ </axis>
+ <axis default="0.0" maximum="0.0" minimum="0.0" name="custom" tag="XXXX">
+ <map input="0.0" output="0.0" />
+ <labelname xml:lang="en">Custom</labelname>
+ </axis>
+ </axes>
+ <sources>
+ <source familyname="Psf Test" filename="PsfTest-Italic.ufo" name="Psf Test Italic" stylename="Italic">
+ <lib copy="1" />
+ <groups copy="1" />
+ <features copy="1" />
+ <info copy="1" />
+ <location>
+ <dimension name="weight" xvalue="400.000000" />
+ <dimension name="width" xvalue="100.000000" />
+ <dimension name="custom" xvalue="0.000000" />
+ </location>
+ </source>
+ <source familyname="Psf Test" filename="PsfTest-BoldItalic.ufo" name="Psf Test Bold Italic" stylename="Bold Italic">
+ <location>
+ <dimension name="weight" xvalue="700.000000" />
+ <dimension name="width" xvalue="100.000000" />
+ <dimension name="custom" xvalue="0.000000" />
+ </location>
+ </source>
+ </sources>
+ <instances>
+ <instance familyname="Psf Test" filename="PsfTest-Italic.ufo" name="Psf Test Italic" stylemapfamilyname="Psf Test" stylemapstylename="italic" stylename="Italic">
+ <location>
+ <dimension name="weight" xvalue="400.000000" />
+ <dimension name="width" xvalue="100.000000" />
+ <dimension name="custom" xvalue="0.000000" />
+ </location>
+ <info />
+ <kerning />
+ </instance>
+ <instance familyname="Psf Test" filename="PsfTest-BoldItalic.ufo" name="Psf Test Bold Italic" stylemapfamilyname="Psf Test" stylemapstylename="bold italic" stylename="Bold Italic">
+ <location>
+ <dimension name="weight" xvalue="700.000000" />
+ <dimension name="width" xvalue="100.000000" />
+ <dimension name="custom" xvalue="0.000000" />
+ </location>
+ <info />
+ <kerning />
+ </instance>
+ </instances>
+</designspace>
diff --git a/tests/input/font-psf-test/source/PsfTestItalic.glyphs b/tests/input/font-psf-test/source/PsfTestItalic.glyphs
new file mode 100644
index 0000000..d3c631c
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTestItalic.glyphs
@@ -0,0 +1,12469 @@
+{
+.appVersion = "1165";
+copyright = "Copyright (c) 2004-2021 SIL International";
+customParameters = (
+{
+name = glyphOrder;
+value = (
+.notdef,
+.null,
+nonmarkingreturn,
+Space,
+ExclamationMrk,
+QuotMrk,
+NumSgn,
+DollarSgn,
+PercentSgn,
+Ampersand,
+Apos,
+LftParen,
+RtParen,
+Asterisk,
+PlusSgn,
+Comma,
+HyphenMinus,
+FullStop,
+Solidus,
+DigitZero,
+DigitOne,
+DigitTwo,
+DigitThree,
+DigitFour,
+DigitFive,
+DigitSix,
+DigitSeven,
+DigitEight,
+DigitNine,
+Colon,
+Semicolon,
+LTSgn,
+EqSgn,
+GTSgn,
+QstnMrk,
+AtSgn,
+LtnCapA,
+LtnCapA.alt,
+LtnCapB,
+LtnCapC,
+LtnCapD,
+LtnCapE,
+LtnCapF,
+LtnCapG,
+LtnCapH,
+LtnCapI,
+LtnCapJ,
+LtnCapK,
+LtnCapL,
+LtnCapM,
+LtnCapN,
+LtnCapO,
+LtnCapP,
+LtnCapQ,
+LtnCapR,
+LtnCapS,
+LtnCapT,
+LtnCapU,
+LtnCapV,
+LtnCapW,
+LtnCapX,
+LtnCapY,
+LftSqrBrac,
+ReverseSolidus,
+RtSqrBrac,
+CircumAccent,
+LowLine,
+GraveAccent,
+LtnSmA,
+LtnSmB,
+LtnSmC,
+LtnSmD,
+LtnSmE,
+LtnSmF,
+LtnSmG,
+LtnSmH,
+LtnSmI,
+LtnSmJ,
+LtnSmK,
+LtnSmL,
+LtnSmM,
+LtnSmN,
+LtnSmO,
+LtnSmP,
+LtnSmQ,
+LtnSmR,
+LtnSmS,
+LtnSmT,
+LtnSmU,
+LtnSmV,
+LtnSmW,
+LtnSmX,
+LtnSmY,
+LftCurlyBrac,
+VertLine,
+RtCurlyBrac,
+Tilde,
+LtnCapADiaer,
+LtnSmAAcute,
+LtnSmAGrave,
+LtnSmACircum,
+LtnSmADiaer,
+LtnSmATilde,
+LtnSmARingAbv,
+DottedCirc,
+Hyphen,
+NonBreakingHyphen,
+Hyphen_Soft,
+CombAcute,
+CombGrave,
+CombCircum,
+CombTilde,
+CombDiaer,
+CombRingAbv
+);
+},
+{
+name = "Disable Last Change";
+value = 1;
+},
+{
+name = description;
+value = "Copyright (c) 2004-2021 SIL International";
+},
+{
+name = openTypeNameLicense;
+value = "Copyright (c) 2004-2021 SIL International (http://www.sil.org/) with Reserved Font Names \"Andika\" and \"SIL\".\012\012This Font Software is licensed under the SIL Open Font License, Version 1.1. This license is copied below, and is also available with a FAQ at: http://scripts.sil.org/OFL\012\012\012-----------------------------------------------------------\012SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007\012-----------------------------------------------------------\012\012PREAMBLE\012The goals of the Open Font License (OFL) are to stimulate worldwide development of collaborative font projects, to support the font creation efforts of academic and linguistic communities, and to provide a free and open framework in which fonts may be shared and improved in partnership with others.\012\012The OFL allows the licensed fonts to be used, studied, modified and redistributed freely as long as they are not sold by themselves. The fonts, including any derivative works, can be bundled, embedded, redistributed and/or sold with any software provided that any reserved names are not used by derivative works. The fonts and derivatives, however, cannot be released under any other type of license. The requirement for fonts to remain under this license does not apply to any document created using the fonts or their derivatives.\012\012DEFINITIONS\012\"Font Software\" refers to the set of files released by the Copyright Holder(s) under this license and clearly marked as such. This may include source files, build scripts and documentation.\012\012\"Reserved Font Name\" refers to any names specified as such after the copyright statement(s).\012\012\"Original Version\" refers to the collection of Font Software components as distributed by the Copyright Holder(s).\012\012\"Modified Version\" refers to any derivative made by adding to, deleting, or substituting -- in part or in whole -- any of the components of the Original Version, by changing formats or by porting the Font Software to a new environment.\012\012\"Author\" refers to any designer, engineer, programmer, technical writer or other person who contributed to the Font Software.\012\012PERMISSION & CONDITIONS\012Permission is hereby granted, free of charge, to any person obtaining a copy of the Font Software, to use, study, copy, merge, embed, modify, redistribute, and sell modified and unmodified copies of the Font Software, subject to the following conditions:\012\0121) Neither the Font Software nor any of its individual components, in Original or Modified Versions, may be sold by itself.\012\0122) Original or Modified Versions of the Font Software may be bundled, redistributed and/or sold with any software, provided that each copy contains the above copyright notice and this license. These can be included either as stand-alone text files, human-readable headers or in the appropriate machine-readable metadata fields within text or binary files as long as those fields can be easily viewed by the user.\012\0123) No Modified Version of the Font Software may use the Reserved Font Name(s) unless explicit written permission is granted by the corresponding Copyright Holder. This restriction only applies to the primary font name as presented to the users.\012\0124) The name(s) of the Copyright Holder(s) or the Author(s) of the Font Software shall not be used to promote, endorse or advertise any Modified Version, except to acknowledge the contribution(s) of the Copyright Holder(s) and the Author(s) or with their explicit written permission.\012\0125) The Font Software, modified or unmodified, in part or in whole, must be distributed entirely under this license, and must not be distributed under any other license. The requirement for fonts to remain under this license does not apply to any document created using the Font Software.\012\012TERMINATION\012This license becomes null and void if any of the above conditions are not met.\012\012DISCLAIMER\012THE FONT SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM OTHER DEALINGS IN THE FONT SOFTWARE.";
+},
+{
+name = openTypeNameLicenseURL;
+value = "http://scripts.sil.org/OFL";
+},
+{
+name = openTypeNameUniqueID;
+value = "SIL International: Psf Test Italic: 2021";
+},
+{
+name = openTypeNameVersion;
+value = "Version 5.550";
+},
+{
+name = codePageRanges;
+value = (
+1252,
+1250,
+1251,
+1254,
+1257,
+1258
+);
+},
+{
+name = openTypeOS2FamilyClass;
+value = (
+0,
+0
+);
+},
+{
+name = openTypeOS2Panose;
+value = (
+2,
+0,
+0,
+0,
+0,
+0,
+0,
+0,
+0,
+0
+);
+},
+{
+name = openTypeOS2StrikeoutPosition;
+value = 700;
+},
+{
+name = openTypeOS2StrikeoutSize;
+value = 100;
+},
+{
+name = openTypeOS2SubscriptXOffset;
+value = 0;
+},
+{
+name = openTypeOS2SubscriptXSize;
+value = 1433;
+},
+{
+name = openTypeOS2SubscriptYOffset;
+value = 286;
+},
+{
+name = openTypeOS2SubscriptYSize;
+value = 1331;
+},
+{
+name = openTypeOS2SuperscriptXOffset;
+value = 0;
+},
+{
+name = openTypeOS2SuperscriptXSize;
+value = 1433;
+},
+{
+name = openTypeOS2SuperscriptYOffset;
+value = 976;
+},
+{
+name = openTypeOS2SuperscriptYSize;
+value = 1331;
+},
+{
+name = fsType;
+value = (
+);
+},
+{
+name = unicodeRanges;
+value = (
+0,
+1,
+6,
+7,
+31,
+33,
+35,
+36,
+37,
+38,
+39,
+40,
+45,
+46,
+47,
+57,
+60,
+62,
+64,
+67,
+69,
+89
+);
+},
+{
+name = vendorID;
+value = SIL;
+},
+{
+name = trademark;
+value = "Andika is a trademark of SIL International.";
+}
+);
+date = "2021-01-01 11:00:00 +0000";
+designer = "Victor Gaultney, Annie Olsen, Julie Remington, Don Collingsworth, Eric Hays, Becca Hirsbrunner";
+designerURL = "http://scripts.sil.org/";
+disablesAutomaticAlignment = 1;
+disablesNiceNames = 1;
+familyName = "Psf Test";
+fontMaster = (
+{
+alignmentZones = (
+"{1600, 20}",
+"{1455, 30}",
+"{1020, 20}",
+"{0, -25}",
+"{-490, 0}"
+);
+ascender = 2100;
+capHeight = 1485;
+custom = Italic;
+customParameters = (
+{
+name = typoAscender;
+value = 2100;
+},
+{
+name = typoDescender;
+value = -550;
+},
+{
+name = typoLineGap;
+value = 0;
+},
+{
+name = hheaAscender;
+value = 2100;
+},
+{
+name = hheaDescender;
+value = -550;
+},
+{
+name = hheaLineGap;
+value = 0;
+},
+{
+name = winAscent;
+value = 2100;
+},
+{
+name = winDescent;
+value = 550;
+},
+{
+name = underlineThickness;
+value = 80;
+},
+{
+name = underlinePosition;
+value = -110;
+}
+);
+descender = -550;
+horizontalStems = (
+140,
+145,
+150,
+155,
+160,
+165,
+170,
+175,
+185,
+270
+);
+id = master01;
+italicAngle = 14;
+verticalStems = (
+165,
+180,
+185,
+190,
+195,
+200,
+205,
+270
+);
+weightValue = 400;
+xHeight = 1040;
+},
+{
+alignmentZones = (
+"{1600, 20}",
+"{1455, 30}",
+"{1020, 20}",
+"{0, -25}",
+"{-490, 0}"
+);
+ascender = 2100;
+capHeight = 1485;
+custom = Italic;
+customParameters = (
+{
+name = typoAscender;
+value = 2100;
+},
+{
+name = typoDescender;
+value = -550;
+},
+{
+name = typoLineGap;
+value = 0;
+},
+{
+name = hheaAscender;
+value = 2100;
+},
+{
+name = hheaDescender;
+value = -550;
+},
+{
+name = hheaLineGap;
+value = 0;
+},
+{
+name = winAscent;
+value = 2100;
+},
+{
+name = winDescent;
+value = 550;
+},
+{
+name = underlineThickness;
+value = 80;
+},
+{
+name = underlinePosition;
+value = -110;
+}
+);
+descender = -550;
+horizontalStems = (
+140,
+145,
+150,
+155,
+160,
+165,
+170,
+175,
+185,
+270
+);
+id = master02;
+italicAngle = 14;
+verticalStems = (
+165,
+180,
+185,
+190,
+195,
+200,
+205,
+270
+);
+weight = Bold;
+weightValue = 700;
+xHeight = 1040;
+}
+);
+glyphs = (
+{
+glyphname = .notdef;
+layers = (
+{
+layerId = master01;
+paths = (
+{
+closed = 1;
+nodes = (
+"1300 0 LINE",
+"1300 1800 LINE",
+"100 1800 LINE",
+"100 0 LINE"
+);
+},
+{
+closed = 1;
+nodes = (
+"1250 1750 LINE",
+"1250 50 LINE",
+"150 50 LINE",
+"150 1750 LINE"
+);
+}
+);
+width = 1400;
+},
+{
+layerId = master02;
+paths = (
+{
+closed = 1;
+nodes = (
+"1300 0 LINE",
+"1300 1800 LINE",
+"100 1800 LINE",
+"100 0 LINE"
+);
+},
+{
+closed = 1;
+nodes = (
+"1250 1750 LINE",
+"1250 50 LINE",
+"150 50 LINE",
+"150 1750 LINE"
+);
+}
+);
+width = 1400;
+}
+);
+},
+{
+glyphname = .null;
+layers = (
+{
+layerId = master01;
+width = 0;
+},
+{
+layerId = master02;
+width = 0;
+}
+);
+},
+{
+glyphname = nonmarkingreturn;
+layers = (
+{
+layerId = master01;
+width = 1004;
+},
+{
+layerId = master02;
+width = 1004;
+}
+);
+},
+{
+glyphname = Space;
+layers = (
+{
+layerId = master01;
+width = 530;
+},
+{
+layerId = master02;
+width = 530;
+}
+);
+unicode = 0020;
+},
+{
+glyphname = ExclamationMrk;
+layers = (
+{
+layerId = master01;
+paths = (
+{
+closed = 1;
+nodes = (
+"574 715 OFFCURVE",
+"653 1054 OFFCURVE",
+"799 1480 CURVE",
+"544 1480 LINE",
+"475 1054 OFFCURVE",
+"386 715 OFFCURVE",
+"322 431 CURVE",
+"497 431 LINE"
+);
+},
+{
+closed = 1;
+nodes = (
+"188 28 OFFCURVE",
+"238 -25 OFFCURVE",
+"303 -25 CURVE SMOOTH",
+"387 -25 OFFCURVE",
+"464 45 OFFCURVE",
+"464 125 CURVE SMOOTH",
+"464 186 OFFCURVE",
+"414 240 OFFCURVE",
+"349 240 CURVE SMOOTH",
+"265 240 OFFCURVE",
+"188 170 OFFCURVE",
+"188 90 CURVE SMOOTH"
+);
+}
+);
+width = 744;
+},
+{
+layerId = master02;
+paths = (
+{
+closed = 1;
+nodes = (
+"670 782 OFFCURVE",
+"736 1065 OFFCURVE",
+"882 1495 CURVE",
+"547 1495 LINE",
+"478 1065 OFFCURVE",
+"402 782 OFFCURVE",
+"338 495 CURVE",
+"593 495 LINE"
+);
+},
+{
+closed = 1;
+nodes = (
+"201 35 OFFCURVE",
+"262 -25 OFFCURVE",
+"348 -25 CURVE SMOOTH",
+"466 -25 OFFCURVE",
+"561 71 OFFCURVE",
+"561 181 CURVE SMOOTH",
+"561 261 OFFCURVE",
+"502 322 OFFCURVE",
+"415 322 CURVE SMOOTH",
+"298 322 OFFCURVE",
+"201 226 OFFCURVE",
+"201 116 CURVE SMOOTH"
+);
+}
+);
+width = 760;
+}
+);
+unicode = 0021;
+},
+{
+glyphname = QuotMrk;
+layers = (
+{
+layerId = master01;
+paths = (
+{
+closed = 1;
+nodes = (
+"639 1162 OFFCURVE",
+"683 1312 OFFCURVE",
+"772 1553 CURVE",
+"567 1553 LINE",
+"538 1312 OFFCURVE",
+"505 1162 OFFCURVE",
+"475 1024 CURVE",
+"600 1024 LINE"
+);
+},
+{
+closed = 1;
+nodes = (
+"979 1162 OFFCURVE",
+"1023 1312 OFFCURVE",
+"1112 1553 CURVE",
+"907 1553 LINE",
+"878 1312 OFFCURVE",
+"845 1162 OFFCURVE",
+"815 1024 CURVE",
+"940 1024 LINE"
+);
+}
+);
+width = 1005;
+},
+{
+layerId = master02;
+paths = (
+{
+closed = 1;
+nodes = (
+"687 1174 OFFCURVE",
+"726 1326 OFFCURVE",
+"816 1569 CURVE",
+"571 1569 LINE",
+"541 1326 OFFCURVE",
+"503 1174 OFFCURVE",
+"473 1035 CURVE",
+"648 1035 LINE"
+);
+},
+{
+closed = 1;
+nodes = (
+"1047 1174 OFFCURVE",
+"1086 1326 OFFCURVE",
+"1176 1569 CURVE",
+"931 1569 LINE",
+"901 1326 OFFCURVE",
+"863 1174 OFFCURVE",
+"833 1035 CURVE",
+"1008 1035 LINE"
+);
+}
+);
+width = 1065;
+}
+);
+unicode = 0022;
+},
+{
+glyphname = NumSgn;
+layers = (
+{
+layerId = master01;
+paths = (
+{
+closed = 1;
+nodes = (
+"91 98 LINE",
+"261 98 LINE",
+"909 1333 LINE",
+"739 1333 LINE"
+);
+},
+{
+closed = 1;
+nodes = (
+"1171 465 LINE",
+"1208 612 LINE",
+"117 612 LINE",
+"80 465 LINE"
+);
+},
+{
+closed = 1;
+nodes = (
+"1325 843 LINE",
+"1361 990 LINE",
+"270 990 LINE",
+"234 843 LINE"
+);
+},
+{
+closed = 1;
+nodes = (
+"516 98 LINE",
+"686 98 LINE",
+"1334 1333 LINE",
+"1164 1333 LINE"
+);
+}
+);
+width = 1180;
+},
+{
+layerId = master02;
+paths = (
+{
+closed = 1;
+nodes = (
+"16 99 LINE",
+"256 99 LINE",
+"907 1346 LINE",
+"667 1346 LINE"
+);
+},
+{
+closed = 1;
+nodes = (
+"1145 421 LINE",
+"1197 629 LINE",
+"106 629 LINE",
+"54 421 LINE"
+);
+},
+{
+closed = 1;
+nodes = (
+"1309 841 LINE",
+"1361 1049 LINE",
+"270 1049 LINE",
+"218 841 LINE"
+);
+},
+{
+closed = 1;
+nodes = (
+"491 99 LINE",
+"731 99 LINE",
+"1382 1346 LINE",
+"1142 1346 LINE"
+);
+}
+);
+width = 1180;
+}
+);
+unicode = 0023;
+},
+{
+glyphname = DollarSgn;
+layers = (
+{
+layerId = master01;
+paths = (
+{
+closed = 1;
+nodes = (
+"1119 1337 OFFCURVE",
+"1023 1361 OFFCURVE",
+"882 1361 CURVE SMOOTH",
+"513 1361 OFFCURVE",
+"354 1182 OFFCURVE",
+"354 992 CURVE SMOOTH",
+"354 837 OFFCURVE",
+"446 771 OFFCURVE",
+"639 650 CURVE SMOOTH",
+"844 521 OFFCURVE",
+"919 439 OFFCURVE",
+"919 357 CURVE SMOOTH",
+"919 244 OFFCURVE",
+"826 158 OFFCURVE",
+"635 158 CURVE SMOOTH",
+"469 158 OFFCURVE",
+"314 266 OFFCURVE",
+"251 347 CURVE",
+"163 162 LINE",
+"304 58 OFFCURVE",
+"453 0 OFFCURVE",
+"606 0 CURVE SMOOTH",
+"872 0 OFFCURVE",
+"1102 119 OFFCURVE",
+"1102 381 CURVE SMOOTH",
+"1102 528 OFFCURVE",
+"981 657 OFFCURVE",
+"801 771 CURVE SMOOTH",
+"610 892 OFFCURVE",
+"535 943 OFFCURVE",
+"535 1024 CURVE SMOOTH",
+"535 1116 OFFCURVE",
+"657 1203 OFFCURVE",
+"832 1203 CURVE SMOOTH",
+"950 1203 OFFCURVE",
+"1031 1176 OFFCURVE",
+"1144 1104 CURVE",
+"1225 1280 LINE"
+);
+},
+{
+closed = 1;
+nodes = (
+"434 -216 LINE",
+"574 -216 LINE",
+"1018 1568 LINE",
+"878 1568 LINE"
+);
+}
+);
+width = 1180;
+},
+{
+layerId = master02;
+paths = (
+{
+closed = 1;
+nodes = (
+"679 780 LINE",
+"634 719 LINE",
+"400 -218 LINE",
+"576 -218 LINE",
+"795 661 LINE",
+"842 727 LINE",
+"1055 1584 LINE",
+"879 1584 LINE"
+);
+},
+{
+closed = 1;
+nodes = (
+"1145 1355 OFFCURVE",
+"1026 1375 OFFCURVE",
+"885 1375 CURVE SMOOTH",
+"537 1375 OFFCURVE",
+"345 1216 OFFCURVE",
+"345 984 CURVE SMOOTH",
+"345 841 OFFCURVE",
+"441 726 OFFCURVE",
+"638 622 CURVE SMOOTH",
+"832 519 OFFCURVE",
+"881 451 OFFCURVE",
+"881 381 CURVE SMOOTH",
+"881 274 OFFCURVE",
+"817 209 OFFCURVE",
+"613 209 CURVE SMOOTH",
+"462 209 OFFCURVE",
+"336 298 OFFCURVE",
+"259 389 CURVE",
+"133 143 LINE",
+"243 56 OFFCURVE",
+"378 0 OFFCURVE",
+"566 0 CURVE SMOOTH",
+"879 0 OFFCURVE",
+"1120 142 OFFCURVE",
+"1120 396 CURVE SMOOTH",
+"1120 562 OFFCURVE",
+"1028 682 OFFCURVE",
+"817 803 CURVE SMOOTH",
+"635 908 OFFCURVE",
+"592 958 OFFCURVE",
+"592 1016 CURVE SMOOTH",
+"592 1113 OFFCURVE",
+"649 1176 OFFCURVE",
+"826 1176 CURVE SMOOTH",
+"954 1176 OFFCURVE",
+"1048 1135 OFFCURVE",
+"1134 1066 CURVE",
+"1250 1303 LINE"
+);
+}
+);
+width = 1180;
+}
+);
+unicode = 0024;
+},
+{
+glyphname = PercentSgn;
+layers = (
+{
+layerId = master01;
+paths = (
+{
+closed = 1;
+nodes = (
+"1255 168 OFFCURVE",
+"1204 113 OFFCURVE",
+"1118 113 CURVE SMOOTH",
+"1056 113 OFFCURVE",
+"1021 148 OFFCURVE",
+"1021 235 CURVE SMOOTH",
+"1021 274 OFFCURVE",
+"1028 322 OFFCURVE",
+"1043 383 CURVE SMOOTH",
+"1088 564 OFFCURVE",
+"1136 617 OFFCURVE",
+"1223 617 CURVE SMOOTH",
+"1286 617 OFFCURVE",
+"1322 582 OFFCURVE",
+"1322 496 CURVE SMOOTH",
+"1322 458 OFFCURVE",
+"1315 409 OFFCURVE",
+"1300 349 CURVE SMOOTH"
+);
+},
+{
+closed = 1;
+nodes = (
+"1483 419 OFFCURVE",
+"1489 470 OFFCURVE",
+"1489 515 CURVE SMOOTH",
+"1489 677 OFFCURVE",
+"1400 755 OFFCURVE",
+"1263 755 CURVE SMOOTH",
+"1089 755 OFFCURVE",
+"945 647 OFFCURVE",
+"876 371 CURVE SMOOTH",
+"861 310 OFFCURVE",
+"854 256 OFFCURVE",
+"854 210 CURVE SMOOTH",
+"854 47 OFFCURVE",
+"943 -25 OFFCURVE",
+"1079 -25 CURVE SMOOTH",
+"1254 -25 OFFCURVE",
+"1396 72 OFFCURVE",
+"1468 361 CURVE SMOOTH"
+);
+},
+{
+closed = 1;
+nodes = (
+"219 -25 LINE",
+"397 -25 LINE",
+"1545 1450 LINE",
+"1369 1450 LINE"
+);
+},
+{
+closed = 1;
+nodes = (
+"672 864 OFFCURVE",
+"621 809 OFFCURVE",
+"535 809 CURVE SMOOTH",
+"474 809 OFFCURVE",
+"439 844 OFFCURVE",
+"439 930 CURVE SMOOTH",
+"439 969 OFFCURVE",
+"446 1018 OFFCURVE",
+"461 1079 CURVE SMOOTH",
+"506 1260 OFFCURVE",
+"554 1313 OFFCURVE",
+"641 1313 CURVE SMOOTH",
+"704 1313 OFFCURVE",
+"739 1278 OFFCURVE",
+"739 1192 CURVE SMOOTH",
+"739 1153 OFFCURVE",
+"732 1105 OFFCURVE",
+"717 1044 CURVE SMOOTH"
+);
+},
+{
+closed = 1;
+nodes = (
+"900 1114 OFFCURVE",
+"907 1166 OFFCURVE",
+"907 1210 CURVE SMOOTH",
+"907 1373 OFFCURVE",
+"817 1450 OFFCURVE",
+"680 1450 CURVE SMOOTH",
+"506 1450 OFFCURVE",
+"362 1343 OFFCURVE",
+"293 1066 CURVE SMOOTH",
+"278 1005 OFFCURVE",
+"271 952 OFFCURVE",
+"271 906 CURVE SMOOTH",
+"271 743 OFFCURVE",
+"360 671 OFFCURVE",
+"497 671 CURVE SMOOTH",
+"672 671 OFFCURVE",
+"813 768 OFFCURVE",
+"886 1057 CURVE SMOOTH"
+);
+}
+);
+width = 1506;
+},
+{
+layerId = master02;
+paths = (
+{
+closed = 1;
+nodes = (
+"221 -25 LINE",
+"435 -25 LINE",
+"1587 1465 LINE",
+"1375 1465 LINE"
+);
+},
+{
+closed = 1;
+nodes = (
+"669 861 OFFCURVE",
+"611 807 OFFCURVE",
+"535 807 CURVE SMOOTH",
+"486 807 OFFCURVE",
+"461 843 OFFCURVE",
+"461 917 CURVE SMOOTH",
+"461 963 OFFCURVE",
+"471 1023 OFFCURVE",
+"490 1099 CURVE SMOOTH",
+"535 1281 OFFCURVE",
+"580 1336 OFFCURVE",
+"657 1336 CURVE SMOOTH",
+"710 1336 OFFCURVE",
+"739 1296 OFFCURVE",
+"739 1212 CURVE SMOOTH",
+"739 1168 OFFCURVE",
+"731 1111 OFFCURVE",
+"714 1043 CURVE SMOOTH"
+);
+},
+{
+closed = 1;
+nodes = (
+"939 1107 OFFCURVE",
+"946 1156 OFFCURVE",
+"946 1199 CURVE SMOOTH",
+"946 1374 OFFCURVE",
+"842 1465 OFFCURVE",
+"694 1465 CURVE SMOOTH",
+"510 1465 OFFCURVE",
+"346 1369 OFFCURVE",
+"277 1090 CURVE SMOOTH",
+"262 1031 OFFCURVE",
+"255 979 OFFCURVE",
+"255 933 CURVE SMOOTH",
+"255 761 OFFCURVE",
+"353 678 OFFCURVE",
+"499 678 CURVE SMOOTH",
+"684 678 OFFCURVE",
+"853 762 OFFCURVE",
+"926 1054 CURVE SMOOTH"
+);
+},
+{
+closed = 1;
+nodes = (
+"1268 155 OFFCURVE",
+"1220 104 OFFCURVE",
+"1144 104 CURVE SMOOTH",
+"1093 104 OFFCURVE",
+"1065 144 OFFCURVE",
+"1065 227 CURVE SMOOTH",
+"1065 272 OFFCURVE",
+"1073 329 OFFCURVE",
+"1090 398 CURVE SMOOTH",
+"1136 580 OFFCURVE",
+"1190 634 OFFCURVE",
+"1267 634 CURVE SMOOTH",
+"1317 634 OFFCURVE",
+"1342 596 OFFCURVE",
+"1342 520 CURVE SMOOTH",
+"1342 473 OFFCURVE",
+"1333 412 OFFCURVE",
+"1314 337 CURVE SMOOTH"
+);
+},
+{
+closed = 1;
+nodes = (
+"1540 406 OFFCURVE",
+"1546 456 OFFCURVE",
+"1546 501 CURVE SMOOTH",
+"1546 673 OFFCURVE",
+"1450 762 OFFCURVE",
+"1303 762 CURVE SMOOTH",
+"1119 762 OFFCURVE",
+"946 665 OFFCURVE",
+"876 386 CURVE SMOOTH",
+"862 331 OFFCURVE",
+"856 281 OFFCURVE",
+"856 237 CURVE SMOOTH",
+"856 60 OFFCURVE",
+"960 -25 OFFCURVE",
+"1108 -25 CURVE SMOOTH",
+"1293 -25 OFFCURVE",
+"1453 58 OFFCURVE",
+"1526 350 CURVE SMOOTH"
+);
+}
+);
+width = 1545;
+}
+);
+unicode = 0025;
+},
+{
+glyphname = Ampersand;
+layers = (
+{
+layerId = master01;
+paths = (
+{
+closed = 1;
+nodes = (
+"949 395 OFFCURVE",
+"616 147 OFFCURVE",
+"441 147 CURVE SMOOTH",
+"318 147 OFFCURVE",
+"256 224 OFFCURVE",
+"256 314 CURVE SMOOTH",
+"256 453 OFFCURVE",
+"369 575 OFFCURVE",
+"590 725 CURVE SMOOTH",
+"836 892 OFFCURVE",
+"1022 1067 OFFCURVE",
+"1022 1223 CURVE SMOOTH",
+"1022 1363 OFFCURVE",
+"894 1455 OFFCURVE",
+"762 1455 CURVE SMOOTH",
+"504 1455 OFFCURVE",
+"378 1328 OFFCURVE",
+"378 1114 CURVE SMOOTH",
+"378 953 OFFCURVE",
+"514 771 OFFCURVE",
+"614 559 CURVE SMOOTH",
+"783 198 OFFCURVE",
+"906 -25 OFFCURVE",
+"958 -25 CURVE SMOOTH",
+"993 -25 OFFCURVE",
+"1087 37 OFFCURVE",
+"1132 69 CURVE",
+"1046 108 OFFCURVE",
+"926 291 OFFCURVE",
+"756 666 CURVE SMOOTH",
+"665 866 OFFCURVE",
+"544 1029 OFFCURVE",
+"544 1149 CURVE SMOOTH",
+"544 1252 OFFCURVE",
+"632 1323 OFFCURVE",
+"724 1323 CURVE SMOOTH",
+"794 1323 OFFCURVE",
+"858 1266 OFFCURVE",
+"858 1193 CURVE SMOOTH",
+"858 1107 OFFCURVE",
+"743 1004 OFFCURVE",
+"492 826 CURVE SMOOTH",
+"182 606 OFFCURVE",
+"73 439 OFFCURVE",
+"73 288 CURVE SMOOTH",
+"73 113 OFFCURVE",
+"195 -25 OFFCURVE",
+"383 -25 CURVE SMOOTH",
+"656 -25 OFFCURVE",
+"1009 269 OFFCURVE",
+"1126 426 CURVE",
+"1054 559 LINE"
+);
+}
+);
+width = 1202;
+},
+{
+layerId = master02;
+paths = (
+{
+closed = 1;
+nodes = (
+"1040 429 OFFCURVE",
+"712 198 OFFCURVE",
+"537 198 CURVE SMOOTH",
+"437 198 OFFCURVE",
+"363 257 OFFCURVE",
+"363 345 CURVE SMOOTH",
+"363 490 OFFCURVE",
+"474 535 OFFCURVE",
+"695 693 CURVE SMOOTH",
+"940 868 OFFCURVE",
+"1160 1032 OFFCURVE",
+"1160 1213 CURVE SMOOTH",
+"1160 1361 OFFCURVE",
+"1026 1470 OFFCURVE",
+"849 1470 CURVE SMOOTH",
+"637 1470 OFFCURVE",
+"414 1364 OFFCURVE",
+"414 1124 CURVE SMOOTH",
+"414 968 OFFCURVE",
+"552 751 OFFCURVE",
+"661 535 CURVE SMOOTH",
+"842 177 OFFCURVE",
+"969 -25 OFFCURVE",
+"1021 -25 CURVE SMOOTH",
+"1056 -25 OFFCURVE",
+"1205 57 OFFCURVE",
+"1250 89 CURVE",
+"1165 129 OFFCURVE",
+"1073 302 OFFCURVE",
+"890 673 CURVE SMOOTH",
+"788 881 OFFCURVE",
+"651 1063 OFFCURVE",
+"651 1163 CURVE SMOOTH",
+"651 1245 OFFCURVE",
+"729 1307 OFFCURVE",
+"803 1307 CURVE SMOOTH",
+"873 1307 OFFCURVE",
+"926 1250 OFFCURVE",
+"926 1184 CURVE SMOOTH",
+"926 1081 OFFCURVE",
+"821 997 OFFCURVE",
+"600 832 CURVE SMOOTH",
+"392 677 OFFCURVE",
+"108 540 OFFCURVE",
+"108 268 CURVE SMOOTH",
+"108 98 OFFCURVE",
+"229 -25 OFFCURVE",
+"466 -25 CURVE SMOOTH",
+"749 -25 OFFCURVE",
+"1120 261 OFFCURVE",
+"1237 421 CURVE",
+"1146 594 LINE"
+);
+}
+);
+width = 1333;
+}
+);
+unicode = 0026;
+},
+{
+glyphname = Apos;
+layers = (
+{
+layerId = master01;
+paths = (
+{
+closed = 1;
+nodes = (
+"599 1162 OFFCURVE",
+"643 1312 OFFCURVE",
+"732 1553 CURVE",
+"527 1553 LINE",
+"498 1312 OFFCURVE",
+"465 1162 OFFCURVE",
+"435 1024 CURVE",
+"560 1024 LINE"
+);
+}
+);
+width = 585;
+},
+{
+layerId = master02;
+paths = (
+{
+closed = 1;
+nodes = (
+"637 1174 OFFCURVE",
+"676 1326 OFFCURVE",
+"766 1569 CURVE",
+"521 1569 LINE",
+"491 1326 OFFCURVE",
+"453 1174 OFFCURVE",
+"423 1035 CURVE",
+"598 1035 LINE"
+);
+}
+);
+width = 605;
+}
+);
+unicode = 0027;
+},
+{
+glyphname = LftParen;
+layers = (
+{
+layerId = master01;
+paths = (
+{
+closed = 1;
+nodes = (
+"582 1415 OFFCURVE",
+"314 1061 OFFCURVE",
+"207 633 CURVE SMOOTH",
+"176 508 OFFCURVE",
+"161 386 OFFCURVE",
+"161 270 CURVE SMOOTH",
+"161 17 OFFCURVE",
+"233 -211 OFFCURVE",
+"374 -402 CURVE",
+"505 -260 LINE",
+"397 -102 OFFCURVE",
+"348 75 OFFCURVE",
+"348 270 CURVE SMOOTH",
+"348 385 OFFCURVE",
+"365 506 OFFCURVE",
+"397 633 CURVE SMOOTH",
+"484 982 OFFCURVE",
+"647 1254 OFFCURVE",
+"932 1455 CURVE",
+"895 1607 LINE"
+);
+}
+);
+width = 775;
+},
+{
+layerId = master02;
+paths = (
+{
+closed = 1;
+nodes = (
+"586 1430 OFFCURVE",
+"317 1081 OFFCURVE",
+"209 649 CURVE SMOOTH",
+"177 521 OFFCURVE",
+"161 397 OFFCURVE",
+"161 277 CURVE SMOOTH",
+"161 20 OFFCURVE",
+"234 -214 OFFCURVE",
+"373 -406 CURVE",
+"565 -198 LINE",
+"479 -42 OFFCURVE",
+"436 130 OFFCURVE",
+"436 315 CURVE SMOOTH",
+"436 422 OFFCURVE",
+"450 534 OFFCURVE",
+"479 649 CURVE SMOOTH",
+"559 972 OFFCURVE",
+"715 1216 OFFCURVE",
+"966 1411 CURVE",
+"899 1624 LINE"
+);
+}
+);
+width = 840;
+}
+);
+unicode = 0028;
+},
+{
+glyphname = RtParen;
+layers = (
+{
+layerId = master01;
+paths = (
+{
+closed = 1;
+nodes = (
+"578 1327 OFFCURVE",
+"628 1146 OFFCURVE",
+"628 946 CURVE SMOOTH",
+"628 832 OFFCURVE",
+"612 713 OFFCURVE",
+"582 593 CURVE SMOOTH",
+"497 252 OFFCURVE",
+"328 -8 OFFCURVE",
+"40 -260 CURVE",
+"99 -402 LINE",
+"444 -123 OFFCURVE",
+"673 194 OFFCURVE",
+"772 593 CURVE SMOOTH",
+"804 719 OFFCURVE",
+"819 843 OFFCURVE",
+"819 959 CURVE SMOOTH",
+"819 1236 OFFCURVE",
+"733 1472 OFFCURVE",
+"580 1607 CURVE",
+"467 1455 LINE"
+);
+}
+);
+width = 775;
+},
+{
+layerId = master02;
+paths = (
+{
+closed = 1;
+nodes = (
+"572 1290 OFFCURVE",
+"616 1127 OFFCURVE",
+"616 944 CURVE SMOOTH",
+"616 832 OFFCURVE",
+"599 712 OFFCURVE",
+"569 589 CURVE SMOOTH",
+"491 275 OFFCURVE",
+"333 48 OFFCURVE",
+"75 -198 CURVE",
+"163 -406 LINE",
+"509 -124 OFFCURVE",
+"743 206 OFFCURVE",
+"844 609 CURVE SMOOTH",
+"876 735 OFFCURVE",
+"891 858 OFFCURVE",
+"891 973 CURVE SMOOTH",
+"891 1252 OFFCURVE",
+"803 1487 OFFCURVE",
+"649 1624 CURVE",
+"476 1411 LINE"
+);
+}
+);
+width = 840;
+}
+);
+unicode = 0029;
+},
+{
+glyphname = Asterisk;
+layers = (
+{
+layerId = master01;
+paths = (
+{
+closed = 1;
+nodes = (
+"733 1438 OFFCURVE",
+"725 1359 OFFCURVE",
+"707 1274 CURVE",
+"644 1317 OFFCURVE",
+"587 1359 OFFCURVE",
+"498 1436 CURVE",
+"392 1313 LINE",
+"505 1264 OFFCURVE",
+"575 1236 OFFCURVE",
+"643 1196 CURVE",
+"556 1153 OFFCURVE",
+"474 1117 OFFCURVE",
+"340 1063 CURVE",
+"379 941 LINE",
+"504 1021 OFFCURVE",
+"584 1072 OFFCURVE",
+"668 1117 CURVE",
+"645 1034 OFFCURVE",
+"619 954 OFFCURVE",
+"575 823 CURVE",
+"715 823 LINE",
+"727 954 OFFCURVE",
+"741 1031 OFFCURVE",
+"758 1117 CURVE",
+"821 1073 OFFCURVE",
+"878 1032 OFFCURVE",
+"968 956 CURVE",
+"1073 1078 LINE",
+"959 1126 OFFCURVE",
+"890 1155 OFFCURVE",
+"823 1196 CURVE",
+"909 1236 OFFCURVE",
+"990 1273 OFFCURVE",
+"1126 1328 CURVE",
+"1086 1450 LINE",
+"961 1368 OFFCURVE",
+"883 1321 OFFCURVE",
+"797 1274 CURVE",
+"819 1359 OFFCURVE",
+"845 1438 OFFCURVE",
+"890 1568 CURVE",
+"745 1568 LINE"
+);
+}
+);
+width = 1008;
+},
+{
+layerId = master02;
+paths = (
+{
+closed = 1;
+nodes = (
+"1039 1412 OFFCURVE",
+"956 1353 OFFCURVE",
+"856 1295 CURVE",
+"885 1391 OFFCURVE",
+"915 1471 OFFCURVE",
+"958 1584 CURVE",
+"759 1584 LINE",
+"753 1482 OFFCURVE",
+"748 1398 OFFCURVE",
+"730 1295 CURVE",
+"658 1346 OFFCURVE",
+"599 1394 OFFCURVE",
+"532 1461 CURVE",
+"388 1293 LINE",
+"484 1258 OFFCURVE",
+"575 1222 OFFCURVE",
+"647 1184 CURVE",
+"552 1141 OFFCURVE",
+"459 1109 OFFCURVE",
+"341 1066 CURVE",
+"398 888 LINE",
+"494 958 OFFCURVE",
+"575 1016 OFFCURVE",
+"674 1076 CURVE",
+"641 973 OFFCURVE",
+"610 887 OFFCURVE",
+"566 785 CURVE",
+"767 785 LINE",
+"773 897 OFFCURVE",
+"785 977 OFFCURVE",
+"800 1073 CURVE",
+"875 1017 OFFCURVE",
+"929 971 OFFCURVE",
+"995 905 CURVE",
+"1144 1078 LINE",
+"1045 1116 OFFCURVE",
+"967 1143 OFFCURVE",
+"886 1184 CURVE",
+"984 1229 OFFCURVE",
+"1075 1264 OFFCURVE",
+"1190 1308 CURVE",
+"1135 1478 LINE"
+);
+}
+);
+width = 1020;
+}
+);
+unicode = 002A;
+},
+{
+glyphname = PlusSgn;
+layers = (
+{
+layerId = master01;
+paths = (
+{
+closed = 1;
+nodes = (
+"529 279 LINE",
+"684 279 LINE",
+"903 1156 LINE",
+"748 1156 LINE"
+);
+},
+{
+closed = 1;
+nodes = (
+"1146 647 LINE",
+"1182 794 LINE",
+"292 794 LINE",
+"256 647 LINE"
+);
+}
+);
+width = 1180;
+},
+{
+layerId = master02;
+paths = (
+{
+closed = 1;
+nodes = (
+"500 282 LINE",
+"715 282 LINE",
+"936 1168 LINE",
+"722 1168 LINE"
+);
+},
+{
+closed = 1;
+nodes = (
+"1140 624 LINE",
+"1192 832 LINE",
+"302 832 LINE",
+"250 624 LINE"
+);
+}
+);
+width = 1180;
+}
+);
+unicode = 002B;
+},
+{
+glyphname = Comma;
+layers = (
+{
+layerId = master01;
+paths = (
+{
+closed = 1;
+nodes = (
+"277 49 LINE",
+"252 -50 OFFCURVE",
+"145 -169 OFFCURVE",
+"73 -225 CURVE",
+"163 -265 LINE",
+"280 -175 OFFCURVE",
+"431 -28 OFFCURVE",
+"431 118 CURVE SMOOTH",
+"431 193 OFFCURVE",
+"378 245 OFFCURVE",
+"311 245 CURVE SMOOTH",
+"254 245 OFFCURVE",
+"190 209 OFFCURVE",
+"161 147 CURVE",
+"137 49 LINE"
+);
+}
+);
+width = 630;
+},
+{
+layerId = master02;
+paths = (
+{
+closed = 1;
+nodes = (
+"297 49 LINE",
+"276 -34 OFFCURVE",
+"192 -151 OFFCURVE",
+"59 -262 CURVE",
+"187 -332 LINE",
+"337 -222 OFFCURVE",
+"539 -11 OFFCURVE",
+"539 165 CURVE SMOOTH",
+"539 262 OFFCURVE",
+"495 337 OFFCURVE",
+"379 337 CURVE SMOOTH",
+"266 337 OFFCURVE",
+"187 252 OFFCURVE",
+"169 178 CURVE SMOOTH",
+"137 49 LINE"
+);
+}
+);
+width = 645;
+}
+);
+unicode = 002C;
+},
+{
+glyphname = HyphenMinus;
+layers = (
+{
+anchors = (
+{
+name = U;
+position = "{645, 1100}";
+}
+);
+layerId = master01;
+paths = (
+{
+closed = 1;
+nodes = (
+"855 544 LINE",
+"892 691 LINE",
+"192 691 LINE",
+"155 544 LINE"
+);
+}
+);
+width = 840;
+},
+{
+anchors = (
+{
+name = U;
+position = "{665, 1100}";
+}
+);
+layerId = master02;
+paths = (
+{
+closed = 1;
+nodes = (
+"884 520 LINE",
+"936 728 LINE",
+"201 728 LINE",
+"149 520 LINE"
+);
+}
+);
+width = 875;
+}
+);
+unicode = 002D;
+},
+{
+glyphname = FullStop;
+layers = (
+{
+layerId = master01;
+paths = (
+{
+closed = 1;
+nodes = (
+"148 28 OFFCURVE",
+"198 -25 OFFCURVE",
+"263 -25 CURVE SMOOTH",
+"347 -25 OFFCURVE",
+"424 45 OFFCURVE",
+"424 125 CURVE SMOOTH",
+"424 186 OFFCURVE",
+"374 240 OFFCURVE",
+"309 240 CURVE SMOOTH",
+"225 240 OFFCURVE",
+"148 170 OFFCURVE",
+"148 90 CURVE SMOOTH"
+);
+}
+);
+width = 620;
+},
+{
+layerId = master02;
+paths = (
+{
+closed = 1;
+nodes = (
+"171 35 OFFCURVE",
+"232 -25 OFFCURVE",
+"318 -25 CURVE SMOOTH",
+"436 -25 OFFCURVE",
+"531 71 OFFCURVE",
+"531 181 CURVE SMOOTH",
+"531 261 OFFCURVE",
+"472 322 OFFCURVE",
+"385 322 CURVE SMOOTH",
+"268 322 OFFCURVE",
+"171 226 OFFCURVE",
+"171 116 CURVE SMOOTH"
+);
+}
+);
+width = 690;
+}
+);
+unicode = 002E;
+},
+{
+glyphname = Solidus;
+layers = (
+{
+layerId = master01;
+paths = (
+{
+closed = 1;
+nodes = (
+"-119 -240 LINE",
+"50 -240 LINE",
+"1330 1568 LINE",
+"1160 1568 LINE"
+);
+}
+);
+width = 980;
+},
+{
+layerId = master02;
+paths = (
+{
+closed = 1;
+nodes = (
+"-120 -243 LINE",
+"129 -243 LINE",
+"1414 1584 LINE",
+"1164 1584 LINE"
+);
+}
+);
+width = 1060;
+}
+);
+unicode = 002F;
+},
+{
+glyphname = DigitZero;
+layers = (
+{
+anchors = (
+{
+name = L;
+position = "{520, -100}";
+},
+{
+name = U;
+position = "{927, 1530}";
+}
+);
+layerId = master01;
+paths = (
+{
+closed = 1;
+nodes = (
+"925 312 OFFCURVE",
+"747 142 OFFCURVE",
+"565 142 CURVE SMOOTH",
+"432 142 OFFCURVE",
+"360 218 OFFCURVE",
+"360 383 CURVE SMOOTH",
+"360 468 OFFCURVE",
+"377 579 OFFCURVE",
+"412 720 CURVE SMOOTH",
+"512 1120 OFFCURVE",
+"678 1289 OFFCURVE",
+"871 1289 CURVE SMOOTH",
+"1006 1289 OFFCURVE",
+"1077 1223 OFFCURVE",
+"1077 1051 CURVE SMOOTH",
+"1077 966 OFFCURVE",
+"1060 854 OFFCURVE",
+"1024 711 CURVE SMOOTH"
+);
+},
+{
+closed = 1;
+nodes = (
+"1262 841 OFFCURVE",
+"1276 949 OFFCURVE",
+"1276 1040 CURVE SMOOTH",
+"1276 1335 OFFCURVE",
+"1124 1455 OFFCURVE",
+"902 1455 CURVE SMOOTH",
+"613 1455 OFFCURVE",
+"344 1267 OFFCURVE",
+"206 716 CURVE SMOOTH",
+"173 584 OFFCURVE",
+"158 474 OFFCURVE",
+"158 381 CURVE SMOOTH",
+"158 104 OFFCURVE",
+"313 -25 OFFCURVE",
+"533 -25 CURVE SMOOTH",
+"804 -25 OFFCURVE",
+"1086 138 OFFCURVE",
+"1230 715 CURVE SMOOTH"
+);
+}
+);
+width = 1180;
+},
+{
+anchors = (
+{
+name = L;
+position = "{520, -100}";
+},
+{
+name = U;
+position = "{927, 1530}";
+}
+);
+layerId = master02;
+paths = (
+{
+closed = 1;
+nodes = (
+"873 339 OFFCURVE",
+"762 203 OFFCURVE",
+"600 203 CURVE SMOOTH",
+"469 203 OFFCURVE",
+"432 294 OFFCURVE",
+"432 454 CURVE SMOOTH",
+"432 537 OFFCURVE",
+"447 630 OFFCURVE",
+"478 755 CURVE SMOOTH",
+"564 1099 OFFCURVE",
+"676 1242 OFFCURVE",
+"839 1242 CURVE SMOOTH",
+"971 1242 OFFCURVE",
+"1010 1140 OFFCURVE",
+"1010 992 CURVE SMOOTH",
+"1010 907 OFFCURVE",
+"991 811 OFFCURVE",
+"959 683 CURVE SMOOTH"
+);
+},
+{
+closed = 1;
+nodes = (
+"1281 828 OFFCURVE",
+"1298 927 OFFCURVE",
+"1298 1028 CURVE SMOOTH",
+"1298 1317 OFFCURVE",
+"1158 1470 OFFCURVE",
+"906 1470 CURVE SMOOTH",
+"587 1470 OFFCURVE",
+"329 1302 OFFCURVE",
+"190 745 CURVE SMOOTH",
+"157 611 OFFCURVE",
+"141 516 OFFCURVE",
+"141 420 CURVE SMOOTH",
+"141 131 OFFCURVE",
+"292 -25 OFFCURVE",
+"533 -25 CURVE SMOOTH",
+"854 -25 OFFCURVE",
+"1103 115 OFFCURVE",
+"1246 689 CURVE SMOOTH"
+);
+}
+);
+width = 1180;
+}
+);
+unicode = 0030;
+},
+{
+glyphname = DigitOne;
+layers = (
+{
+anchors = (
+{
+name = L;
+position = "{515, -100}";
+},
+{
+name = U;
+position = "{922, 1530}";
+}
+);
+layerId = master01;
+paths = (
+{
+closed = 1;
+nodes = (
+"706 167 LINE",
+"1026 1450 LINE",
+"856 1450 LINE",
+"459 1243 LINE",
+"440 1066 LINE",
+"782 1235 LINE",
+"516 167 LINE",
+"201 167 LINE",
+"160 0 LINE",
+"980 0 LINE",
+"1021 167 LINE"
+);
+}
+);
+width = 1180;
+},
+{
+anchors = (
+{
+name = L;
+position = "{515, -100}";
+},
+{
+name = U;
+position = "{922, 1530}";
+}
+);
+layerId = master02;
+paths = (
+{
+closed = 1;
+nodes = (
+"183 233 LINE",
+"125 0 LINE",
+"1015 0 LINE",
+"1073 233 LINE",
+"765 233 LINE",
+"1067 1445 LINE",
+"792 1445 LINE",
+"432 1265 LINE",
+"403 1008 LINE",
+"720 1158 LINE",
+"490 233 LINE"
+);
+}
+);
+width = 1180;
+}
+);
+unicode = 0031;
+},
+{
+glyphname = DigitTwo;
+layers = (
+{
+anchors = (
+{
+name = L;
+position = "{515, -100}";
+},
+{
+name = U;
+position = "{882, 1530}";
+}
+);
+layerId = master01;
+paths = (
+{
+closed = 1;
+nodes = (
+"980 163 OFFCURVE",
+"822 162 OFFCURVE",
+"625 162 CURVE SMOOTH",
+"370 162 LINE",
+"783 393 OFFCURVE",
+"1210 830 OFFCURVE",
+"1210 1098 CURVE SMOOTH",
+"1210 1296 OFFCURVE",
+"1075 1455 OFFCURVE",
+"842 1455 CURVE SMOOTH",
+"673 1455 OFFCURVE",
+"488 1374 OFFCURVE",
+"380 1264 CURVE",
+"388 1098 LINE",
+"503 1203 OFFCURVE",
+"660 1279 OFFCURVE",
+"783 1279 CURVE SMOOTH",
+"915 1279 OFFCURVE",
+"1003 1199 OFFCURVE",
+"1003 1063 CURVE SMOOTH",
+"1003 848 OFFCURVE",
+"506 386 OFFCURVE",
+"101 167 CURVE",
+"60 0 LINE",
+"1020 0 LINE",
+"1063 176 LINE"
+);
+}
+);
+width = 1180;
+},
+{
+anchors = (
+{
+name = L;
+position = "{515, -100}";
+},
+{
+name = U;
+position = "{882, 1530}";
+}
+);
+layerId = master02;
+paths = (
+{
+closed = 1;
+nodes = (
+"1010 244 OFFCURVE",
+"942 243 OFFCURVE",
+"745 243 CURVE SMOOTH",
+"480 243 LINE",
+"875 492 OFFCURVE",
+"1255 786 OFFCURVE",
+"1255 1125 CURVE SMOOTH",
+"1255 1324 OFFCURVE",
+"1106 1470 OFFCURVE",
+"846 1470 CURVE SMOOTH",
+"667 1470 OFFCURVE",
+"472 1388 OFFCURVE",
+"363 1277 CURVE",
+"374 1039 LINE",
+"489 1146 OFFCURVE",
+"646 1223 OFFCURVE",
+"762 1223 CURVE SMOOTH",
+"890 1223 OFFCURVE",
+"949 1138 OFFCURVE",
+"949 1040 CURVE SMOOTH",
+"949 805 OFFCURVE",
+"500 440 OFFCURVE",
+"104 218 CURVE",
+"50 0 LINE",
+"1030 0 LINE",
+"1094 257 LINE"
+);
+}
+);
+width = 1180;
+}
+);
+unicode = 0032;
+},
+{
+glyphname = DigitThree;
+layers = (
+{
+anchors = (
+{
+name = L;
+position = "{515, -100}";
+},
+{
+name = U;
+position = "{922, 1530}";
+}
+);
+layerId = master01;
+paths = (
+{
+closed = 1;
+nodes = (
+"521 686 LINE",
+"591 686 LINE SMOOTH",
+"802 686 OFFCURVE",
+"944 606 OFFCURVE",
+"944 476 CURVE SMOOTH",
+"944 268 OFFCURVE",
+"738 147 OFFCURVE",
+"551 147 CURVE SMOOTH",
+"371 147 OFFCURVE",
+"260 227 OFFCURVE",
+"181 348 CURVE",
+"104 137 LINE",
+"185 41 OFFCURVE",
+"341 -25 OFFCURVE",
+"518 -25 CURVE SMOOTH",
+"815 -25 OFFCURVE",
+"1141 168 OFFCURVE",
+"1141 475 CURVE SMOOTH",
+"1141 670 OFFCURVE",
+"973 763 OFFCURVE",
+"855 784 CURVE",
+"1046 827 OFFCURVE",
+"1266 955 OFFCURVE",
+"1266 1163 CURVE SMOOTH",
+"1266 1338 OFFCURVE",
+"1073 1455 OFFCURVE",
+"852 1455 CURVE SMOOTH",
+"685 1455 OFFCURVE",
+"536 1388 OFFCURVE",
+"433 1299 CURVE",
+"427 1132 LINE",
+"568 1246 OFFCURVE",
+"696 1284 OFFCURVE",
+"850 1284 CURVE SMOOTH",
+"957 1284 OFFCURVE",
+"1068 1236 OFFCURVE",
+"1068 1137 CURVE SMOOTH",
+"1068 949 OFFCURVE",
+"781 853 OFFCURVE",
+"632 853 CURVE SMOOTH",
+"562 853 LINE"
+);
+}
+);
+width = 1180;
+},
+{
+anchors = (
+{
+name = L;
+position = "{515, -100}";
+},
+{
+name = U;
+position = "{922, 1530}";
+}
+);
+layerId = master02;
+paths = (
+{
+closed = 1;
+nodes = (
+"489 639 LINE",
+"579 639 LINE SMOOTH",
+"778 639 OFFCURVE",
+"880 555 OFFCURVE",
+"880 452 CURVE SMOOTH",
+"880 295 OFFCURVE",
+"726 208 OFFCURVE",
+"576 208 CURVE SMOOTH",
+"386 208 OFFCURVE",
+"253 279 OFFCURVE",
+"174 401 CURVE",
+"72 129 LINE",
+"162 32 OFFCURVE",
+"321 -25 OFFCURVE",
+"518 -25 CURVE SMOOTH",
+"867 -25 OFFCURVE",
+"1163 169 OFFCURVE",
+"1163 471 CURVE SMOOTH",
+"1163 644 OFFCURVE",
+"999 751 OFFCURVE",
+"882 772 CURVE",
+"1076 817 OFFCURVE",
+"1296 963 OFFCURVE",
+"1296 1172 CURVE SMOOTH",
+"1296 1348 OFFCURVE",
+"1112 1470 OFFCURVE",
+"856 1470 CURVE SMOOTH",
+"689 1470 OFFCURVE",
+"529 1402 OFFCURVE",
+"427 1312 CURVE",
+"405 1084 LINE",
+"546 1199 OFFCURVE",
+"664 1237 OFFCURVE",
+"818 1237 CURVE SMOOTH",
+"928 1237 OFFCURVE",
+"1001 1178 OFFCURVE",
+"1001 1100 CURVE SMOOTH",
+"1001 975 OFFCURVE",
+"819 876 OFFCURVE",
+"638 876 CURVE SMOOTH",
+"548 876 LINE"
+);
+}
+);
+width = 1180;
+}
+);
+unicode = 0033;
+},
+{
+glyphname = DigitFour;
+layers = (
+{
+anchors = (
+{
+name = L;
+position = "{522, -100}";
+},
+{
+name = U;
+position = "{929, 1530}";
+}
+);
+layerId = master01;
+paths = (
+{
+closed = 1;
+nodes = (
+"1199 539 LINE",
+"1009 539 LINE",
+"1236 1450 LINE",
+"1026 1450 LINE",
+"144 539 LINE",
+"106 387 LINE",
+"781 387 LINE",
+"685 0 LINE",
+"875 0 LINE",
+"971 387 LINE",
+"1161 387 LINE"
+);
+},
+{
+closed = 1;
+nodes = (
+"819 539 LINE",
+"337 539 LINE",
+"985 1205 LINE"
+);
+}
+);
+width = 1180;
+},
+{
+anchors = (
+{
+name = L;
+position = "{522, -100}";
+},
+{
+name = U;
+position = "{929, 1530}";
+}
+);
+layerId = master02;
+paths = (
+{
+closed = 1;
+nodes = (
+"1235 564 LINE",
+"1075 564 LINE",
+"1295 1445 LINE",
+"945 1445 LINE",
+"120 564 LINE",
+"65 342 LINE",
+"755 342 LINE",
+"670 0 LINE",
+"935 0 LINE",
+"1020 342 LINE",
+"1180 342 LINE"
+);
+},
+{
+closed = 1;
+nodes = (
+"810 564 LINE",
+"385 564 LINE",
+"954 1143 LINE"
+);
+}
+);
+width = 1180;
+}
+);
+unicode = 0034;
+},
+{
+glyphname = DigitFive;
+layers = (
+{
+anchors = (
+{
+name = L;
+position = "{515, -100}";
+},
+{
+name = U;
+position = "{922, 1530}";
+}
+);
+layerId = master01;
+paths = (
+{
+closed = 1;
+nodes = (
+"491 1431 LINE",
+"302 671 LINE",
+"438 718 OFFCURVE",
+"537 735 OFFCURVE",
+"643 735 CURVE SMOOTH",
+"784 735 OFFCURVE",
+"933 660 OFFCURVE",
+"933 508 CURVE SMOOTH",
+"933 273 OFFCURVE",
+"710 152 OFFCURVE",
+"497 152 CURVE SMOOTH",
+"357 152 OFFCURVE",
+"263 195 OFFCURVE",
+"170 284 CURVE",
+"89 78 LINE",
+"195 2 OFFCURVE",
+"326 -25 OFFCURVE",
+"481 -25 CURVE SMOOTH",
+"807 -25 OFFCURVE",
+"1129 190 OFFCURVE",
+"1129 546 CURVE SMOOTH",
+"1129 757 OFFCURVE",
+"951 911 OFFCURVE",
+"702 911 CURVE SMOOTH",
+"629 911 OFFCURVE",
+"576 906 OFFCURVE",
+"544 902 CURVE",
+"635 1264 LINE",
+"1020 1264 LINE SMOOTH",
+"1104 1264 OFFCURVE",
+"1179 1260 OFFCURVE",
+"1250 1245 CURVE",
+"1296 1431 LINE"
+);
+}
+);
+width = 1180;
+},
+{
+anchors = (
+{
+name = L;
+position = "{515, -100}";
+},
+{
+name = U;
+position = "{922, 1530}";
+}
+);
+layerId = master02;
+paths = (
+{
+closed = 1;
+nodes = (
+"475 1445 LINE",
+"274 639 LINE",
+"410 686 OFFCURVE",
+"519 703 OFFCURVE",
+"625 703 CURVE SMOOTH",
+"763 703 OFFCURVE",
+"867 630 OFFCURVE",
+"867 507 CURVE SMOOTH",
+"867 318 OFFCURVE",
+"680 213 OFFCURVE",
+"503 213 CURVE SMOOTH",
+"363 213 OFFCURVE",
+"255 260 OFFCURVE",
+"168 356 CURVE",
+"59 79 LINE",
+"165 2 OFFCURVE",
+"308 -25 OFFCURVE",
+"483 -25 CURVE SMOOTH",
+"841 -25 OFFCURVE",
+"1155 204 OFFCURVE",
+"1155 564 CURVE SMOOTH",
+"1155 774 OFFCURVE",
+"1007 921 OFFCURVE",
+"774 921 CURVE SMOOTH",
+"712 921 OFFCURVE",
+"632 902 OFFCURVE",
+"595 886 CURVE",
+"674 1203 LINE",
+"1004 1203 LINE SMOOTH",
+"1088 1203 OFFCURVE",
+"1193 1199 OFFCURVE",
+"1264 1183 CURVE",
+"1330 1445 LINE"
+);
+}
+);
+width = 1180;
+}
+);
+unicode = 0035;
+},
+{
+glyphname = DigitSix;
+layers = (
+{
+anchors = (
+{
+name = L;
+position = "{515, -100}";
+},
+{
+name = U;
+position = "{922, 1530}";
+}
+);
+layerId = master01;
+paths = (
+{
+closed = 1;
+nodes = (
+"1248 1418 OFFCURVE",
+"1135 1455 OFFCURVE",
+"1017 1455 CURVE SMOOTH",
+"481 1454 OFFCURVE",
+"208 915 OFFCURVE",
+"208 475 CURVE SMOOTH",
+"208 167 OFFCURVE",
+"392 -25 OFFCURVE",
+"623 -25 CURVE SMOOTH",
+"947 -25 OFFCURVE",
+"1183 169 OFFCURVE",
+"1183 517 CURVE SMOOTH",
+"1183 709 OFFCURVE",
+"1029 887 OFFCURVE",
+"793 887 CURVE SMOOTH",
+"636 887 OFFCURVE",
+"432 784 OFFCURVE",
+"317 633 CURVE",
+"364 559 LINE",
+"471 660 OFFCURVE",
+"596 716 OFFCURVE",
+"751 716 CURVE SMOOTH",
+"898 716 OFFCURVE",
+"987 614 OFFCURVE",
+"987 454 CURVE SMOOTH",
+"987 263 OFFCURVE",
+"816 147 OFFCURVE",
+"656 147 CURVE SMOOTH",
+"491 147 OFFCURVE",
+"403 284 OFFCURVE",
+"403 472 CURVE SMOOTH",
+"403 962 OFFCURVE",
+"664 1284 OFFCURVE",
+"985 1284 CURVE SMOOTH",
+"1081 1284 OFFCURVE",
+"1174 1235 OFFCURVE",
+"1222 1156 CURVE",
+"1313 1347 LINE"
+);
+}
+);
+width = 1180;
+},
+{
+anchors = (
+{
+name = L;
+position = "{525, -100}";
+},
+{
+name = U;
+position = "{932, 1530}";
+}
+);
+layerId = master02;
+paths = (
+{
+closed = 1;
+nodes = (
+"1260 1440 OFFCURVE",
+"1149 1470 OFFCURVE",
+"1011 1470 CURVE SMOOTH",
+"493 1470 OFFCURVE",
+"181 971 OFFCURVE",
+"181 500 CURVE SMOOTH",
+"181 188 OFFCURVE",
+"368 -25 OFFCURVE",
+"635 -25 CURVE SMOOTH",
+"954 -25 OFFCURVE",
+"1207 192 OFFCURVE",
+"1207 498 CURVE SMOOTH",
+"1207 714 OFFCURVE",
+"1058 916 OFFCURVE",
+"813 916 CURVE SMOOTH",
+"622 916 OFFCURVE",
+"477 802 OFFCURVE",
+"326 648 CURVE",
+"363 525 LINE",
+"470 637 OFFCURVE",
+"595 703 OFFCURVE",
+"750 703 CURVE SMOOTH",
+"882 703 OFFCURVE",
+"954 586 OFFCURVE",
+"954 466 CURVE SMOOTH",
+"954 325 OFFCURVE",
+"828 208 OFFCURVE",
+"677 208 CURVE SMOOTH",
+"526 208 OFFCURVE",
+"447 350 OFFCURVE",
+"447 533 CURVE SMOOTH",
+"447 978 OFFCURVE",
+"738 1237 OFFCURVE",
+"953 1237 CURVE SMOOTH",
+"1049 1237 OFFCURVE",
+"1155 1204 OFFCURVE",
+"1220 1119 CURVE",
+"1347 1371 LINE"
+);
+}
+);
+width = 1180;
+}
+);
+unicode = 0036;
+},
+{
+glyphname = DigitSeven;
+layers = (
+{
+anchors = (
+{
+name = L;
+position = "{515, -100}";
+},
+{
+name = U;
+position = "{922, 1530}";
+}
+);
+layerId = master01;
+paths = (
+{
+closed = 1;
+nodes = (
+"661 450 OFFCURVE",
+"972 877 OFFCURVE",
+"1367 1274 CURVE",
+"1406 1431 LINE",
+"386 1431 LINE",
+"341 1245 LINE",
+"421 1260 OFFCURVE",
+"538 1264 OFFCURVE",
+"726 1264 CURVE SMOOTH",
+"1126 1264 LINE",
+"774 889 OFFCURVE",
+"517 555 OFFCURVE",
+"215 0 CURVE",
+"420 0 LINE"
+);
+}
+);
+width = 1180;
+},
+{
+anchors = (
+{
+name = L;
+position = "{515, -100}";
+},
+{
+name = U;
+position = "{922, 1530}";
+}
+);
+layerId = master02;
+paths = (
+{
+closed = 1;
+nodes = (
+"722 454 OFFCURVE",
+"1004 846 OFFCURVE",
+"1400 1247 CURVE",
+"1450 1445 LINE",
+"390 1445 LINE",
+"324 1178 LINE",
+"404 1194 OFFCURVE",
+"521 1198 OFFCURVE",
+"709 1198 CURVE SMOOTH",
+"1039 1198 LINE",
+"689 829 OFFCURVE",
+"488 560 OFFCURVE",
+"175 0 CURVE",
+"480 0 LINE"
+);
+}
+);
+width = 1180;
+}
+);
+unicode = 0037;
+},
+{
+glyphname = DigitEight;
+layers = (
+{
+anchors = (
+{
+name = L;
+position = "{515, -100}";
+},
+{
+name = U;
+position = "{922, 1530}";
+}
+);
+layerId = master01;
+paths = (
+{
+closed = 1;
+nodes = (
+"839 -25 OFFCURVE",
+"1160 170 OFFCURVE",
+"1160 475 CURVE SMOOTH",
+"1160 626 OFFCURVE",
+"1068 733 OFFCURVE",
+"988 779 CURVE",
+"1155 860 OFFCURVE",
+"1270 970 OFFCURVE",
+"1270 1151 CURVE SMOOTH",
+"1270 1340 OFFCURVE",
+"1102 1455 OFFCURVE",
+"901 1455 CURVE SMOOTH",
+"620 1455 OFFCURVE",
+"348 1292 OFFCURVE",
+"348 1018 CURVE SMOOTH",
+"348 891 OFFCURVE",
+"427 814 OFFCURVE",
+"483 779 CURVE",
+"297 706 OFFCURVE",
+"115 549 OFFCURVE",
+"115 325 CURVE SMOOTH",
+"115 111 OFFCURVE",
+"317 -25 OFFCURVE",
+"542 -25 CURVE SMOOTH"
+);
+},
+{
+closed = 1;
+nodes = (
+"628 848 OFFCURVE",
+"541 917 OFFCURVE",
+"541 1029 CURVE SMOOTH",
+"541 1205 OFFCURVE",
+"704 1299 OFFCURVE",
+"862 1299 CURVE SMOOTH",
+"985 1299 OFFCURVE",
+"1076 1235 OFFCURVE",
+"1076 1128 CURVE SMOOTH",
+"1076 955 OFFCURVE",
+"907 848 OFFCURVE",
+"750 848 CURVE SMOOTH"
+);
+},
+{
+closed = 1;
+nodes = (
+"413 142 OFFCURVE",
+"322 225 OFFCURVE",
+"322 350 CURVE SMOOTH",
+"322 557 OFFCURVE",
+"520 696 OFFCURVE",
+"712 696 CURVE SMOOTH",
+"864 696 OFFCURVE",
+"961 602 OFFCURVE",
+"961 476 CURVE SMOOTH",
+"961 266 OFFCURVE",
+"753 142 OFFCURVE",
+"564 142 CURVE SMOOTH"
+);
+}
+);
+width = 1180;
+},
+{
+anchors = (
+{
+name = L;
+position = "{515, -100}";
+},
+{
+name = U;
+position = "{922, 1530}";
+}
+);
+layerId = master02;
+paths = (
+{
+closed = 1;
+nodes = (
+"860 -25 OFFCURVE",
+"1182 176 OFFCURVE",
+"1182 498 CURVE SMOOTH",
+"1182 642 OFFCURVE",
+"1090 742 OFFCURVE",
+"1011 787 CURVE",
+"1159 866 OFFCURVE",
+"1279 994 OFFCURVE",
+"1279 1163 CURVE SMOOTH",
+"1279 1342 OFFCURVE",
+"1123 1470 OFFCURVE",
+"906 1470 CURVE SMOOTH",
+"632 1470 OFFCURVE",
+"349 1310 OFFCURVE",
+"349 1028 CURVE SMOOTH",
+"349 904 OFFCURVE",
+"412 821 OFFCURVE",
+"466 787 CURVE",
+"270 703 OFFCURVE",
+"108 563 OFFCURVE",
+"108 341 CURVE SMOOTH",
+"108 123 OFFCURVE",
+"301 -25 OFFCURVE",
+"543 -25 CURVE SMOOTH"
+);
+},
+{
+closed = 1;
+nodes = (
+"651 886 OFFCURVE",
+"593 939 OFFCURVE",
+"593 1038 CURVE SMOOTH",
+"593 1175 OFFCURVE",
+"721 1277 OFFCURVE",
+"858 1277 CURVE SMOOTH",
+"976 1277 OFFCURVE",
+"1028 1221 OFFCURVE",
+"1028 1127 CURVE SMOOTH",
+"1028 993 OFFCURVE",
+"898 886 OFFCURVE",
+"760 886 CURVE SMOOTH"
+);
+},
+{
+closed = 1;
+nodes = (
+"458 183 OFFCURVE",
+"375 267 OFFCURVE",
+"375 384 CURVE SMOOTH",
+"375 549 OFFCURVE",
+"549 673 OFFCURVE",
+"707 673 CURVE SMOOTH",
+"833 673 OFFCURVE",
+"920 602 OFFCURVE",
+"920 477 CURVE SMOOTH",
+"920 317 OFFCURVE",
+"759 183 OFFCURVE",
+"595 183 CURVE SMOOTH"
+);
+}
+);
+width = 1180;
+}
+);
+unicode = 0038;
+},
+{
+glyphname = DigitNine;
+layers = (
+{
+anchors = (
+{
+name = L;
+position = "{515, -100}";
+},
+{
+name = U;
+position = "{922, 1530}";
+}
+);
+layerId = master01;
+paths = (
+{
+closed = 1;
+nodes = (
+"208 29 OFFCURVE",
+"355 -25 OFFCURVE",
+"473 -25 CURVE SMOOTH",
+"999 -25 OFFCURVE",
+"1267 520 OFFCURVE",
+"1267 982 CURVE SMOOTH",
+"1267 1248 OFFCURVE",
+"1127 1455 OFFCURVE",
+"866 1455 CURVE SMOOTH",
+"596 1455 OFFCURVE",
+"303 1269 OFFCURVE",
+"303 932 CURVE SMOOTH",
+"303 761 OFFCURVE",
+"425 574 OFFCURVE",
+"661 574 CURVE SMOOTH",
+"852 574 OFFCURVE",
+"1036 683 OFFCURVE",
+"1172 840 CURVE",
+"1121 922 LINE",
+"1019 810 OFFCURVE",
+"872 745 OFFCURVE",
+"717 745 CURVE SMOOTH",
+"584 745 OFFCURVE",
+"498 833 OFFCURVE",
+"498 956 CURVE SMOOTH",
+"498 1146 OFFCURVE",
+"638 1284 OFFCURVE",
+"821 1284 CURVE SMOOTH",
+"998 1284 OFFCURVE",
+"1073 1119 OFFCURVE",
+"1073 956 CURVE SMOOTH",
+"1073 455 OFFCURVE",
+"760 147 OFFCURVE",
+"496 147 CURVE SMOOTH",
+"410 147 OFFCURVE",
+"298 209 OFFCURVE",
+"249 285 CURVE",
+"157 94 LINE"
+);
+}
+);
+width = 1180;
+},
+{
+anchors = (
+{
+name = L;
+position = "{515, -100}";
+},
+{
+name = U;
+position = "{922, 1530}";
+}
+);
+layerId = master02;
+paths = (
+{
+closed = 1;
+nodes = (
+"199 25 OFFCURVE",
+"327 -25 OFFCURVE",
+"455 -25 CURVE SMOOTH",
+"979 -25 OFFCURVE",
+"1289 533 OFFCURVE",
+"1289 979 CURVE SMOOTH",
+"1289 1248 OFFCURVE",
+"1164 1470 OFFCURVE",
+"833 1470 CURVE SMOOTH",
+"554 1470 OFFCURVE",
+"255 1239 OFFCURVE",
+"255 932 CURVE SMOOTH",
+"255 736 OFFCURVE",
+"399 570 OFFCURVE",
+"644 570 CURVE SMOOTH",
+"833 570 OFFCURVE",
+"1027 700 OFFCURVE",
+"1164 859 CURVE",
+"1123 981 LINE",
+"1021 868 OFFCURVE",
+"863 782 OFFCURVE",
+"728 782 CURVE SMOOTH",
+"589 782 OFFCURVE",
+"519 845 OFFCURVE",
+"519 955 CURVE SMOOTH",
+"519 1133 OFFCURVE",
+"653 1237 OFFCURVE",
+"801 1237 CURVE SMOOTH",
+"951 1237 OFFCURVE",
+"1029 1136 OFFCURVE",
+"1029 965 CURVE SMOOTH",
+"1029 476 OFFCURVE",
+"710 208 OFFCURVE",
+"513 208 CURVE SMOOTH",
+"417 208 OFFCURVE",
+"301 252 OFFCURVE",
+"237 337 CURVE",
+"119 84 LINE"
+);
+}
+);
+width = 1180;
+}
+);
+unicode = 0039;
+},
+{
+glyphname = Colon;
+layers = (
+{
+layerId = master01;
+paths = (
+{
+closed = 1;
+nodes = (
+"314 696 OFFCURVE",
+"365 642 OFFCURVE",
+"430 642 CURVE SMOOTH",
+"514 642 OFFCURVE",
+"590 712 OFFCURVE",
+"590 792 CURVE SMOOTH",
+"590 854 OFFCURVE",
+"540 907 OFFCURVE",
+"476 907 CURVE SMOOTH",
+"393 907 OFFCURVE",
+"314 837 OFFCURVE",
+"314 758 CURVE SMOOTH"
+);
+},
+{
+closed = 1;
+nodes = (
+"148 28 OFFCURVE",
+"198 -25 OFFCURVE",
+"263 -25 CURVE SMOOTH",
+"347 -25 OFFCURVE",
+"424 45 OFFCURVE",
+"424 125 CURVE SMOOTH",
+"424 186 OFFCURVE",
+"374 240 OFFCURVE",
+"309 240 CURVE SMOOTH",
+"225 240 OFFCURVE",
+"148 170 OFFCURVE",
+"148 90 CURVE SMOOTH"
+);
+}
+);
+width = 620;
+},
+{
+layerId = master02;
+paths = (
+{
+closed = 1;
+nodes = (
+"171 35 OFFCURVE",
+"232 -25 OFFCURVE",
+"318 -25 CURVE SMOOTH",
+"436 -25 OFFCURVE",
+"531 71 OFFCURVE",
+"531 181 CURVE SMOOTH",
+"531 261 OFFCURVE",
+"472 322 OFFCURVE",
+"385 322 CURVE SMOOTH",
+"268 322 OFFCURVE",
+"171 226 OFFCURVE",
+"171 116 CURVE SMOOTH"
+);
+},
+{
+closed = 1;
+nodes = (
+"319 629 OFFCURVE",
+"380 569 OFFCURVE",
+"466 569 CURVE SMOOTH",
+"584 569 OFFCURVE",
+"679 665 OFFCURVE",
+"679 775 CURVE SMOOTH",
+"679 855 OFFCURVE",
+"620 916 OFFCURVE",
+"533 916 CURVE SMOOTH",
+"416 916 OFFCURVE",
+"319 820 OFFCURVE",
+"319 710 CURVE SMOOTH"
+);
+}
+);
+width = 690;
+}
+);
+unicode = 003A;
+},
+{
+glyphname = Semicolon;
+layers = (
+{
+layerId = master01;
+paths = (
+{
+closed = 1;
+nodes = (
+"314 696 OFFCURVE",
+"365 642 OFFCURVE",
+"430 642 CURVE SMOOTH",
+"514 642 OFFCURVE",
+"590 712 OFFCURVE",
+"590 792 CURVE SMOOTH",
+"590 854 OFFCURVE",
+"540 907 OFFCURVE",
+"476 907 CURVE SMOOTH",
+"393 907 OFFCURVE",
+"314 837 OFFCURVE",
+"314 758 CURVE SMOOTH"
+);
+},
+{
+closed = 1;
+nodes = (
+"277 49 LINE",
+"252 -50 OFFCURVE",
+"145 -169 OFFCURVE",
+"73 -225 CURVE",
+"163 -265 LINE",
+"280 -175 OFFCURVE",
+"431 -28 OFFCURVE",
+"431 118 CURVE SMOOTH",
+"431 193 OFFCURVE",
+"378 245 OFFCURVE",
+"311 245 CURVE SMOOTH",
+"254 245 OFFCURVE",
+"190 209 OFFCURVE",
+"161 147 CURVE",
+"137 49 LINE"
+);
+}
+);
+width = 630;
+},
+{
+layerId = master02;
+paths = (
+{
+closed = 1;
+nodes = (
+"297 49 LINE",
+"276 -34 OFFCURVE",
+"192 -151 OFFCURVE",
+"59 -262 CURVE",
+"187 -332 LINE",
+"337 -222 OFFCURVE",
+"539 -11 OFFCURVE",
+"539 165 CURVE SMOOTH",
+"539 262 OFFCURVE",
+"495 337 OFFCURVE",
+"379 337 CURVE SMOOTH",
+"266 337 OFFCURVE",
+"187 252 OFFCURVE",
+"169 178 CURVE SMOOTH",
+"137 49 LINE"
+);
+},
+{
+closed = 1;
+nodes = (
+"319 629 OFFCURVE",
+"380 569 OFFCURVE",
+"466 569 CURVE SMOOTH",
+"584 569 OFFCURVE",
+"679 665 OFFCURVE",
+"679 775 CURVE SMOOTH",
+"679 855 OFFCURVE",
+"620 916 OFFCURVE",
+"533 916 CURVE SMOOTH",
+"416 916 OFFCURVE",
+"319 820 OFFCURVE",
+"319 710 CURVE SMOOTH"
+);
+}
+);
+width = 690;
+}
+);
+unicode = 003B;
+},
+{
+glyphname = LTSgn;
+layers = (
+{
+layerId = master01;
+paths = (
+{
+closed = 1;
+nodes = (
+"408 705 LINE",
+"1272 1014 LINE",
+"1316 1191 LINE",
+"239 799 LINE",
+"197 632 LINE",
+"1079 240 LINE",
+"1123 417 LINE"
+);
+}
+);
+width = 1180;
+},
+{
+layerId = master02;
+paths = (
+{
+closed = 1;
+nodes = (
+"510 713 LINE",
+"1253 975 LINE",
+"1309 1203 LINE",
+"253 817 LINE",
+"206 629 LINE",
+"1070 243 LINE",
+"1127 470 LINE"
+);
+}
+);
+width = 1180;
+}
+);
+unicode = 003C;
+},
+{
+glyphname = EqSgn;
+layers = (
+{
+layerId = master01;
+paths = (
+{
+closed = 1;
+nodes = (
+"1137 470 LINE",
+"1173 617 LINE",
+"213 617 LINE",
+"177 470 LINE"
+);
+},
+{
+closed = 1;
+nodes = (
+"1222 813 LINE",
+"1259 960 LINE",
+"299 960 LINE",
+"262 813 LINE"
+);
+}
+);
+width = 1180;
+},
+{
+layerId = master02;
+paths = (
+{
+closed = 1;
+nodes = (
+"1128 436 LINE",
+"1180 643 LINE",
+"220 643 LINE",
+"168 436 LINE"
+);
+},
+{
+closed = 1;
+nodes = (
+"1219 802 LINE",
+"1271 1010 LINE",
+"311 1010 LINE",
+"259 802 LINE"
+);
+}
+);
+width = 1180;
+}
+);
+unicode = 003D;
+},
+{
+glyphname = GTSgn;
+layers = (
+{
+layerId = master01;
+paths = (
+{
+closed = 1;
+nodes = (
+"1028 725 LINE",
+"163 417 LINE",
+"119 240 LINE",
+"1197 632 LINE",
+"1239 799 LINE",
+"356 1191 LINE",
+"312 1014 LINE"
+);
+}
+);
+width = 1180;
+},
+{
+layerId = master02;
+paths = (
+{
+closed = 1;
+nodes = (
+"1186 629 LINE",
+"1233 817 LINE",
+"369 1203 LINE",
+"313 975 LINE",
+"930 733 LINE",
+"187 470 LINE",
+"130 243 LINE"
+);
+}
+);
+width = 1180;
+}
+);
+unicode = 003E;
+},
+{
+glyphname = QstnMrk;
+layers = (
+{
+layerId = master01;
+paths = (
+{
+closed = 1;
+nodes = (
+"514 1303 OFFCURVE",
+"615 1338 OFFCURVE",
+"685 1338 CURVE SMOOTH",
+"800 1338 OFFCURVE",
+"858 1294 OFFCURVE",
+"858 1222 CURVE SMOOTH",
+"858 1122 OFFCURVE",
+"713 1017 OFFCURVE",
+"654 960 CURVE SMOOTH",
+"538 850 OFFCURVE",
+"473 715 OFFCURVE",
+"402 431 CURVE",
+"587 431 LINE",
+"656 707 OFFCURVE",
+"697 778 OFFCURVE",
+"831 901 CURVE SMOOTH",
+"949 1010 OFFCURVE",
+"1072 1146 OFFCURVE",
+"1072 1272 CURVE SMOOTH",
+"1072 1409 OFFCURVE",
+"947 1509 OFFCURVE",
+"746 1509 CURVE SMOOTH",
+"631 1509 OFFCURVE",
+"500 1463 OFFCURVE",
+"419 1401 CURVE",
+"419 1226 LINE"
+);
+},
+{
+closed = 1;
+nodes = (
+"278 28 OFFCURVE",
+"328 -25 OFFCURVE",
+"393 -25 CURVE SMOOTH",
+"477 -25 OFFCURVE",
+"554 45 OFFCURVE",
+"554 125 CURVE SMOOTH",
+"554 186 OFFCURVE",
+"504 240 OFFCURVE",
+"439 240 CURVE SMOOTH",
+"355 240 OFFCURVE",
+"278 170 OFFCURVE",
+"278 90 CURVE SMOOTH"
+);
+}
+);
+width = 1030;
+},
+{
+layerId = master02;
+paths = (
+{
+closed = 1;
+nodes = (
+"745 664 OFFCURVE",
+"787 792 OFFCURVE",
+"931 933 CURVE SMOOTH",
+"1034 1033 OFFCURVE",
+"1143 1118 OFFCURVE",
+"1143 1256 CURVE SMOOTH",
+"1143 1404 OFFCURVE",
+"1022 1525 OFFCURVE",
+"800 1525 CURVE SMOOTH",
+"675 1525 OFFCURVE",
+"508 1455 OFFCURVE",
+"427 1393 CURVE",
+"413 1156 LINE",
+"508 1235 OFFCURVE",
+"621 1282 OFFCURVE",
+"721 1282 CURVE SMOOTH",
+"811 1282 OFFCURVE",
+"846 1238 OFFCURVE",
+"846 1189 CURVE SMOOTH",
+"846 1109 OFFCURVE",
+"760 1086 OFFCURVE",
+"650 956 CURVE SMOOTH",
+"564 855 OFFCURVE",
+"490 703 OFFCURVE",
+"438 495 CURVE",
+"703 495 LINE"
+);
+},
+{
+closed = 1;
+nodes = (
+"306 35 OFFCURVE",
+"367 -25 OFFCURVE",
+"453 -25 CURVE SMOOTH",
+"571 -25 OFFCURVE",
+"666 71 OFFCURVE",
+"666 181 CURVE SMOOTH",
+"666 261 OFFCURVE",
+"607 322 OFFCURVE",
+"520 322 CURVE SMOOTH",
+"403 322 OFFCURVE",
+"306 226 OFFCURVE",
+"306 116 CURVE SMOOTH"
+);
+}
+);
+width = 1070;
+}
+);
+unicode = 003F;
+},
+{
+glyphname = AtSgn;
+layers = (
+{
+layerId = master01;
+paths = (
+{
+closed = 1;
+nodes = (
+"980 -69 OFFCURVE",
+"889 -93 OFFCURVE",
+"796 -93 CURVE SMOOTH",
+"507 -93 OFFCURVE",
+"301 104 OFFCURVE",
+"301 414 CURVE SMOOTH",
+"301 476 OFFCURVE",
+"309 543 OFFCURVE",
+"327 613 CURVE SMOOTH",
+"425 1003 OFFCURVE",
+"782 1245 OFFCURVE",
+"1110 1245 CURVE SMOOTH",
+"1433 1245 OFFCURVE",
+"1590 1060 OFFCURVE",
+"1590 813 CURVE SMOOTH",
+"1590 760 OFFCURVE",
+"1582 705 OFFCURVE",
+"1568 647 CURVE SMOOTH",
+"1510 413 OFFCURVE",
+"1365 309 OFFCURVE",
+"1297 309 CURVE SMOOTH",
+"1261 309 OFFCURVE",
+"1238 344 OFFCURVE",
+"1238 420 CURVE SMOOTH",
+"1238 468 OFFCURVE",
+"1247 533 OFFCURVE",
+"1268 617 CURVE SMOOTH",
+"1354 960 LINE",
+"1276 995 OFFCURVE",
+"1155 1019 OFFCURVE",
+"1074 1019 CURVE SMOOTH",
+"910 1019 OFFCURVE",
+"790 962 OFFCURVE",
+"673 828 CURVE SMOOTH",
+"607 751 OFFCURVE",
+"554 650 OFFCURVE",
+"524 529 CURVE SMOOTH",
+"514 488 OFFCURVE",
+"509 450 OFFCURVE",
+"509 416 CURVE SMOOTH",
+"509 259 OFFCURVE",
+"609 179 OFFCURVE",
+"719 179 CURVE SMOOTH",
+"836 179 OFFCURVE",
+"1017 359 OFFCURVE",
+"1099 480 CURVE",
+"1093 446 OFFCURVE",
+"1089 413 OFFCURVE",
+"1089 382 CURVE SMOOTH",
+"1089 264 OFFCURVE",
+"1136 176 OFFCURVE",
+"1233 176 CURVE SMOOTH",
+"1408 176 OFFCURVE",
+"1635 331 OFFCURVE",
+"1716 656 CURVE SMOOTH",
+"1732 722 OFFCURVE",
+"1740 784 OFFCURVE",
+"1740 843 CURVE SMOOTH",
+"1740 1161 OFFCURVE",
+"1513 1377 OFFCURVE",
+"1153 1377 CURVE SMOOTH",
+"738 1377 OFFCURVE",
+"310 1143 OFFCURVE",
+"175 603 CURVE SMOOTH",
+"155 522 OFFCURVE",
+"145 446 OFFCURVE",
+"145 375 CURVE SMOOTH",
+"145 -5 OFFCURVE",
+"417 -230 OFFCURVE",
+"747 -230 CURVE SMOOTH",
+"882 -230 OFFCURVE",
+"1044 -184 OFFCURVE",
+"1161 -116 CURVE",
+"1082 -10 LINE"
+);
+},
+{
+closed = 1;
+nodes = (
+"1075 570 OFFCURVE",
+"856 314 OFFCURVE",
+"766 314 CURVE SMOOTH",
+"712 314 OFFCURVE",
+"669 362 OFFCURVE",
+"669 459 CURVE SMOOTH",
+"669 491 OFFCURVE",
+"674 530 OFFCURVE",
+"685 573 CURVE SMOOTH",
+"704 649 OFFCURVE",
+"739 726 OFFCURVE",
+"780 774 CURVE SMOOTH",
+"859 868 OFFCURVE",
+"943 887 OFFCURVE",
+"1011 887 CURVE SMOOTH",
+"1085 887 OFFCURVE",
+"1148 868 OFFCURVE",
+"1177 853 CURVE",
+"1141 706 LINE"
+);
+}
+);
+width = 1682;
+},
+{
+layerId = master02;
+paths = (
+{
+closed = 1;
+nodes = (
+"1008 -34 OFFCURVE",
+"933 -59 OFFCURVE",
+"840 -59 CURVE SMOOTH",
+"540 -59 OFFCURVE",
+"362 143 OFFCURVE",
+"362 434 CURVE SMOOTH",
+"362 498 OFFCURVE",
+"371 567 OFFCURVE",
+"389 639 CURVE SMOOTH",
+"480 1003 OFFCURVE",
+"783 1228 OFFCURVE",
+"1121 1228 CURVE SMOOTH",
+"1424 1228 OFFCURVE",
+"1581 1069 OFFCURVE",
+"1581 813 CURVE SMOOTH",
+"1581 753 OFFCURVE",
+"1572 688 OFFCURVE",
+"1555 619 CURVE SMOOTH",
+"1506 418 OFFCURVE",
+"1400 331 OFFCURVE",
+"1340 331 CURVE SMOOTH",
+"1307 331 OFFCURVE",
+"1287 362 OFFCURVE",
+"1287 432 CURVE SMOOTH",
+"1287 482 OFFCURVE",
+"1297 551 OFFCURVE",
+"1320 643 CURVE SMOOTH",
+"1401 970 LINE",
+"1323 1005 OFFCURVE",
+"1182 1030 OFFCURVE",
+"1101 1030 CURVE SMOOTH",
+"937 1030 OFFCURVE",
+"822 974 OFFCURVE",
+"710 862 CURVE SMOOTH",
+"637 789 OFFCURVE",
+"569 677 OFFCURVE",
+"539 556 CURVE SMOOTH",
+"529 518 OFFCURVE",
+"525 481 OFFCURVE",
+"525 447 CURVE SMOOTH",
+"525 279 OFFCURVE",
+"629 161 OFFCURVE",
+"740 161 CURVE SMOOTH",
+"867 161 OFFCURVE",
+"1034 328 OFFCURVE",
+"1117 450 CURVE",
+"1112 422 OFFCURVE",
+"1110 394 OFFCURVE",
+"1110 367 CURVE SMOOTH",
+"1110 252 OFFCURVE",
+"1157 155 OFFCURVE",
+"1291 155 CURVE SMOOTH",
+"1454 155 OFFCURVE",
+"1674 332 OFFCURVE",
+"1752 646 CURVE SMOOTH",
+"1768 710 OFFCURVE",
+"1775 771 OFFCURVE",
+"1775 829 CURVE SMOOTH",
+"1775 1169 OFFCURVE",
+"1520 1411 OFFCURVE",
+"1156 1411 CURVE SMOOTH",
+"731 1411 OFFCURVE",
+"322 1180 OFFCURVE",
+"183 624 CURVE SMOOTH",
+"163 544 OFFCURVE",
+"154 469 OFFCURVE",
+"154 398 CURVE SMOOTH",
+"154 -1 OFFCURVE",
+"448 -243 OFFCURVE",
+"789 -243 CURVE SMOOTH",
+"924 -243 OFFCURVE",
+"1076 -206 OFFCURVE",
+"1193 -137 CURVE",
+"1082 10 LINE"
+);
+},
+{
+closed = 1;
+nodes = (
+"1069 566 OFFCURVE",
+"899 346 OFFCURVE",
+"809 346 CURVE SMOOTH",
+"757 346 OFFCURVE",
+"726 386 OFFCURVE",
+"726 463 CURVE SMOOTH",
+"726 493 OFFCURVE",
+"731 528 OFFCURVE",
+"741 569 CURVE SMOOTH",
+"760 645 OFFCURVE",
+"803 731 OFFCURVE",
+"853 778 CURVE SMOOTH",
+"901 824 OFFCURVE",
+"957 846 OFFCURVE",
+"1025 846 CURVE SMOOTH",
+"1099 846 OFFCURVE",
+"1133 828 OFFCURVE",
+"1162 812 CURVE",
+"1135 703 LINE"
+);
+}
+);
+width = 1693;
+}
+);
+unicode = 0040;
+},
+{
+glyphname = LtnCapA;
+layers = (
+{
+anchors = (
+{
+name = H;
+position = "{1170, 0}";
+},
+{
+name = L;
+position = "{602, -100}";
+},
+{
+name = O;
+position = "{1390, 0}";
+},
+{
+name = U;
+position = "{1009, 1530}";
+}
+);
+layerId = master01;
+paths = (
+{
+closed = 1;
+nodes = (
+"1275 0 LINE",
+"1259 78 OFFCURVE",
+"1243 166 OFFCURVE",
+"1221 348 CURVE SMOOTH",
+"1091 1431 LINE",
+"876 1431 LINE",
+"206 348 LINE SMOOTH",
+"93 165 OFFCURVE",
+"35 79 OFFCURVE",
+"-20 0 CURVE",
+"195 0 LINE",
+"422 377 LINE",
+"1038 377 LINE",
+"1080 0 LINE"
+);
+},
+{
+closed = 1;
+nodes = (
+"1022 529 LINE",
+"514 529 LINE",
+"944 1240 LINE"
+);
+}
+);
+width = 1395;
+},
+{
+anchors = (
+{
+name = H;
+position = "{1215, 0}";
+},
+{
+name = L;
+position = "{647, -100}";
+},
+{
+name = O;
+position = "{1435, 0}";
+},
+{
+name = U;
+position = "{1054, 1530}";
+}
+);
+layerId = master02;
+paths = (
+{
+closed = 1;
+nodes = (
+"1338 0 LINE",
+"1322 79 OFFCURVE",
+"1312 166 OFFCURVE",
+"1295 351 CURVE SMOOTH",
+"1198 1445 LINE",
+"842 1445 LINE",
+"199 351 LINE SMOOTH",
+"89 164 OFFCURVE",
+"37 80 OFFCURVE",
+"-18 0 CURVE",
+"290 0 LINE",
+"487 351 LINE",
+"1031 351 LINE",
+"1055 0 LINE"
+);
+},
+{
+closed = 1;
+nodes = (
+"1016 564 LINE",
+"606 564 LINE",
+"973 1216 LINE"
+);
+}
+);
+width = 1465;
+}
+);
+unicode = 0041;
+},
+{
+glyphname = LtnCapB;
+layers = (
+{
+anchors = (
+{
+name = L;
+position = "{530, -100}";
+},
+{
+name = U;
+position = "{937, 1530}";
+}
+);
+layerId = master01;
+paths = (
+{
+closed = 1;
+nodes = (
+"667 1286 OFFCURVE",
+"733 1289 OFFCURVE",
+"811 1289 CURVE SMOOTH",
+"993 1289 OFFCURVE",
+"1080 1230 OFFCURVE",
+"1080 1105 CURVE SMOOTH",
+"1080 932 OFFCURVE",
+"931 838 OFFCURVE",
+"698 838 CURVE SMOOTH",
+"513 838 LINE",
+"625 1284 LINE"
+);
+},
+{
+closed = 1;
+nodes = (
+"178 252 OFFCURVE",
+"134 78 OFFCURVE",
+"100 0 CURVE",
+"151 -5 OFFCURVE",
+"359 -10 OFFCURVE",
+"562 -10 CURVE SMOOTH",
+"960 -10 OFFCURVE",
+"1201 149 OFFCURVE",
+"1201 453 CURVE SMOOTH",
+"1201 644 OFFCURVE",
+"1067 736 OFFCURVE",
+"955 764 CURVE",
+"1155 819 OFFCURVE",
+"1283 941 OFFCURVE",
+"1283 1140 CURVE SMOOTH",
+"1283 1310 OFFCURVE",
+"1136 1441 OFFCURVE",
+"869 1441 CURVE SMOOTH",
+"700 1441 OFFCURVE",
+"546 1437 OFFCURVE",
+"456 1431 CURVE",
+"452 1352 OFFCURVE",
+"407 1172 OFFCURVE",
+"359 980 CURVE SMOOTH",
+"226 446 LINE"
+);
+},
+{
+closed = 1;
+nodes = (
+"721 686 LINE SMOOTH",
+"892 686 OFFCURVE",
+"1011 598 OFFCURVE",
+"1011 450 CURVE SMOOTH",
+"1011 218 OFFCURVE",
+"806 147 OFFCURVE",
+"586 147 CURVE SMOOTH",
+"474 147 OFFCURVE",
+"379 150 OFFCURVE",
+"342 152 CURVE",
+"476 686 LINE"
+);
+}
+);
+width = 1271;
+},
+{
+anchors = (
+{
+name = L;
+position = "{585, -100}";
+},
+{
+name = U;
+position = "{992, 1530}";
+}
+);
+layerId = master02;
+paths = (
+{
+closed = 1;
+nodes = (
+"735 1237 OFFCURVE",
+"791 1240 OFFCURVE",
+"860 1240 CURVE SMOOTH",
+"1021 1240 OFFCURVE",
+"1101 1179 OFFCURVE",
+"1101 1087 CURVE SMOOTH",
+"1101 932 OFFCURVE",
+"962 866 OFFCURVE",
+"770 866 CURVE SMOOTH",
+"605 866 LINE",
+"698 1236 LINE"
+);
+},
+{
+closed = 1;
+nodes = (
+"168 254 OFFCURVE",
+"124 79 OFFCURVE",
+"90 0 CURVE",
+"161 -3 OFFCURVE",
+"368 -10 OFFCURVE",
+"598 -10 CURVE SMOOTH",
+"1055 -10 OFFCURVE",
+"1298 206 OFFCURVE",
+"1298 508 CURVE SMOOTH",
+"1298 673 OFFCURVE",
+"1188 759 OFFCURVE",
+"1072 792 CURVE",
+"1254 848 OFFCURVE",
+"1388 956 OFFCURVE",
+"1388 1155 CURVE SMOOTH",
+"1388 1359 OFFCURVE",
+"1181 1455 OFFCURVE",
+"897 1455 CURVE SMOOTH",
+"704 1455 OFFCURVE",
+"549 1451 OFFCURVE",
+"450 1445 CURVE",
+"445 1366 OFFCURVE",
+"399 1182 OFFCURVE",
+"351 990 CURVE SMOOTH",
+"217 450 LINE"
+);
+},
+{
+closed = 1;
+nodes = (
+"745 651 LINE SMOOTH",
+"927 651 OFFCURVE",
+"1019 577 OFFCURVE",
+"1019 468 CURVE SMOOTH",
+"1019 295 OFFCURVE",
+"879 213 OFFCURVE",
+"675 213 CURVE SMOOTH",
+"575 213 OFFCURVE",
+"476 216 OFFCURVE",
+"444 218 CURVE",
+"552 651 LINE"
+);
+}
+);
+width = 1367;
+}
+);
+unicode = 0042;
+},
+{
+glyphname = LtnCapC;
+layers = (
+{
+anchors = (
+{
+name = H;
+position = "{690, 0}";
+},
+{
+name = L;
+position = "{665, -100}";
+},
+{
+name = U;
+position = "{1072, 1530}";
+}
+);
+layerId = master01;
+paths = (
+{
+closed = 1;
+nodes = (
+"1115 222 OFFCURVE",
+"934 147 OFFCURVE",
+"752 147 CURVE SMOOTH",
+"537 147 OFFCURVE",
+"385 304 OFFCURVE",
+"385 532 CURVE SMOOTH",
+"385 964 OFFCURVE",
+"704 1289 OFFCURVE",
+"1037 1289 CURVE SMOOTH",
+"1168 1289 OFFCURVE",
+"1310 1235 OFFCURVE",
+"1385 1132 CURVE",
+"1489 1308 LINE",
+"1388 1408 OFFCURVE",
+"1201 1455 OFFCURVE",
+"1058 1455 CURVE SMOOTH",
+"645 1455 OFFCURVE",
+"185 1093 OFFCURVE",
+"185 513 CURVE SMOOTH",
+"185 202 OFFCURVE",
+"381 -25 OFFCURVE",
+"709 -25 CURVE SMOOTH",
+"896 -25 OFFCURVE",
+"1087 21 OFFCURVE",
+"1230 127 CURVE",
+"1237 318 LINE"
+);
+}
+);
+width = 1341;
+},
+{
+anchors = (
+{
+name = H;
+position = "{685, 0}";
+},
+{
+name = L;
+position = "{660, -100}";
+},
+{
+name = U;
+position = "{1067, 1530}";
+}
+);
+layerId = master02;
+paths = (
+{
+closed = 1;
+nodes = (
+"1149 280 OFFCURVE",
+"966 218 OFFCURVE",
+"816 218 CURVE SMOOTH",
+"594 218 OFFCURVE",
+"472 349 OFFCURVE",
+"472 588 CURVE SMOOTH",
+"472 922 OFFCURVE",
+"690 1230 OFFCURVE",
+"1039 1230 CURVE SMOOTH",
+"1170 1230 OFFCURVE",
+"1298 1188 OFFCURVE",
+"1385 1093 CURVE",
+"1515 1331 LINE",
+"1408 1418 OFFCURVE",
+"1247 1470 OFFCURVE",
+"1073 1470 CURVE SMOOTH",
+"545 1470 OFFCURVE",
+"191 1032 OFFCURVE",
+"191 544 CURVE SMOOTH",
+"191 210 OFFCURVE",
+"404 -25 OFFCURVE",
+"750 -25 CURVE SMOOTH",
+"921 -25 OFFCURVE",
+"1124 27 OFFCURVE",
+"1271 124 CURVE",
+"1286 391 LINE"
+);
+}
+);
+width = 1357;
+}
+);
+unicode = 0043;
+},
+{
+glyphname = LtnCapD;
+layers = (
+{
+anchors = (
+{
+name = L;
+position = "{630, -100}";
+},
+{
+name = U;
+position = "{1037, 1530}";
+}
+);
+layerId = master01;
+paths = (
+{
+closed = 1;
+nodes = (
+"176 252 OFFCURVE",
+"134 78 OFFCURVE",
+"100 0 CURVE",
+"100 0 OFFCURVE",
+"414 -10 OFFCURVE",
+"542 -10 CURVE SMOOTH",
+"985 -10 OFFCURVE",
+"1299 181 OFFCURVE",
+"1415 648 CURVE SMOOTH",
+"1437 738 OFFCURVE",
+"1447 819 OFFCURVE",
+"1447 891 CURVE SMOOTH",
+"1447 1279 OFFCURVE",
+"1188 1441 OFFCURVE",
+"894 1441 CURVE SMOOTH",
+"759 1441 OFFCURVE",
+"543 1437 OFFCURVE",
+"456 1431 CURVE",
+"452 1352 OFFCURVE",
+"407 1172 OFFCURVE",
+"359 980 CURVE SMOOTH",
+"226 446 LINE"
+);
+},
+{
+closed = 1;
+nodes = (
+"674 1281 OFFCURVE",
+"764 1284 OFFCURVE",
+"830 1284 CURVE SMOOTH",
+"1105 1284 OFFCURVE",
+"1246 1140 OFFCURVE",
+"1246 850 CURVE SMOOTH",
+"1246 784 OFFCURVE",
+"1236 710 OFFCURVE",
+"1216 629 CURVE SMOOTH",
+"1134 300 OFFCURVE",
+"925 152 OFFCURVE",
+"572 152 CURVE SMOOTH",
+"477 152 OFFCURVE",
+"391 158 OFFCURVE",
+"345 162 CURVE",
+"623 1279 LINE"
+);
+}
+);
+width = 1421;
+},
+{
+anchors = (
+{
+name = L;
+position = "{690, -100}";
+},
+{
+name = U;
+position = "{1122, 1530}";
+}
+);
+layerId = master02;
+paths = (
+{
+closed = 1;
+nodes = (
+"167 251 OFFCURVE",
+"124 79 OFFCURVE",
+"90 0 CURVE",
+"90 0 OFFCURVE",
+"431 -10 OFFCURVE",
+"566 -10 CURVE SMOOTH",
+"1036 -10 OFFCURVE",
+"1361 195 OFFCURVE",
+"1471 648 CURVE SMOOTH",
+"1494 742 OFFCURVE",
+"1505 827 OFFCURVE",
+"1505 902 CURVE SMOOTH",
+"1505 1325 OFFCURVE",
+"1172 1455 OFFCURVE",
+"912 1455 CURVE SMOOTH",
+"769 1455 OFFCURVE",
+"540 1451 OFFCURVE",
+"450 1445 CURVE",
+"445 1371 OFFCURVE",
+"404 1205 OFFCURVE",
+"359 1024 CURVE SMOOTH",
+"217 450 LINE SMOOTH"
+);
+},
+{
+closed = 1;
+nodes = (
+"738 1231 OFFCURVE",
+"809 1234 OFFCURVE",
+"864 1234 CURVE SMOOTH",
+"1077 1234 OFFCURVE",
+"1212 1104 OFFCURVE",
+"1212 871 CURVE SMOOTH",
+"1212 805 OFFCURVE",
+"1201 731 OFFCURVE",
+"1181 647 CURVE SMOOTH",
+"1108 346 OFFCURVE",
+"930 219 OFFCURVE",
+"647 219 CURVE SMOOTH",
+"568 219 OFFCURVE",
+"485 225 OFFCURVE",
+"447 229 CURVE",
+"696 1229 LINE"
+);
+}
+);
+width = 1465;
+}
+);
+unicode = 0044;
+},
+{
+glyphname = LtnCapE;
+layers = (
+{
+anchors = (
+{
+name = H;
+position = "{540, 0}";
+},
+{
+name = L;
+position = "{515, -100}";
+},
+{
+name = O;
+position = "{857, 0}";
+},
+{
+name = R;
+position = "{1400, 1200}";
+},
+{
+name = U;
+position = "{922, 1530}";
+}
+);
+layerId = master01;
+paths = (
+{
+closed = 1;
+nodes = (
+"621 1269 LINE",
+"1266 1269 LINE",
+"1306 1431 LINE",
+"456 1431 LINE",
+"452 1352 OFFCURVE",
+"413 1197 OFFCURVE",
+"365 1005 CURVE SMOOTH",
+"221 426 LINE SMOOTH",
+"173 233 OFFCURVE",
+"134 78 OFFCURVE",
+"100 0 CURVE",
+"980 0 LINE",
+"1023 176 LINE",
+"940 163 OFFCURVE",
+"806 162 OFFCURVE",
+"609 162 CURVE SMOOTH",
+"345 162 LINE",
+"472 671 LINE",
+"1042 671 LINE",
+"1081 828 LINE",
+"511 828 LINE"
+);
+}
+);
+width = 1140;
+},
+{
+anchors = (
+{
+name = H;
+position = "{550, 0}";
+},
+{
+name = L;
+position = "{525, -100}";
+},
+{
+name = O;
+position = "{944, 0}";
+},
+{
+name = R;
+position = "{1487, 1200}";
+},
+{
+name = U;
+position = "{932, 1530}";
+}
+);
+layerId = master02;
+paths = (
+{
+closed = 1;
+nodes = (
+"693 1217 LINE",
+"1315 1217 LINE",
+"1372 1445 LINE",
+"450 1445 LINE",
+"444 1366 OFFCURVE",
+"406 1210 OFFCURVE",
+"358 1015 CURVE SMOOTH",
+"212 431 LINE SMOOTH",
+"163 236 OFFCURVE",
+"123 79 OFFCURVE",
+"90 0 CURVE",
+"1042 0 LINE",
+"1102 243 LINE",
+"1021 229 OFFCURVE",
+"895 228 OFFCURVE",
+"704 228 CURVE SMOOTH",
+"446 228 LINE",
+"550 644 LINE",
+"1097 644 LINE",
+"1152 866 LINE",
+"605 866 LINE"
+);
+}
+);
+width = 1192;
+}
+);
+unicode = 0045;
+},
+{
+glyphname = LtnCapF;
+layers = (
+{
+anchors = (
+{
+name = L;
+position = "{510, -100}";
+},
+{
+name = U;
+position = "{917, 1530}";
+}
+);
+layerId = master01;
+paths = (
+{
+closed = 1;
+nodes = (
+"621 1269 LINE",
+"1286 1269 LINE",
+"1326 1431 LINE",
+"456 1431 LINE",
+"452 1352 OFFCURVE",
+"412 1193 OFFCURVE",
+"364 1000 CURVE SMOOTH",
+"221 426 LINE SMOOTH",
+"173 233 OFFCURVE",
+"134 78 OFFCURVE",
+"100 0 CURVE",
+"320 0 LINE",
+"323 76 OFFCURVE",
+"362 232 OFFCURVE",
+"411 426 CURVE SMOOTH",
+"470 662 LINE",
+"1050 662 LINE",
+"1088 818 LINE",
+"508 818 LINE"
+);
+}
+);
+width = 1130;
+},
+{
+anchors = (
+{
+name = L;
+position = "{545, -100}";
+},
+{
+name = U;
+position = "{952, 1530}";
+}
+);
+layerId = master02;
+paths = (
+{
+closed = 1;
+nodes = (
+"693 1217 LINE",
+"1333 1217 LINE",
+"1390 1445 LINE",
+"450 1445 LINE",
+"445 1366 OFFCURVE",
+"405 1205 OFFCURVE",
+"356 1010 CURVE SMOOTH",
+"212 431 LINE SMOOTH",
+"163 236 OFFCURVE",
+"123 79 OFFCURVE",
+"90 0 CURVE",
+"405 0 LINE",
+"407 72 OFFCURVE",
+"444 220 OFFCURVE",
+"490 404 CURVE SMOOTH",
+"546 629 LINE",
+"1101 629 LINE",
+"1157 851 LINE",
+"602 851 LINE"
+);
+}
+);
+width = 1180;
+}
+);
+unicode = 0046;
+},
+{
+glyphname = LtnCapG;
+layers = (
+{
+anchors = (
+{
+name = H;
+position = "{685, 0}";
+},
+{
+name = L;
+position = "{660, -100}";
+},
+{
+name = U;
+position = "{1067, 1530}";
+}
+);
+layerId = master01;
+paths = (
+{
+closed = 1;
+nodes = (
+"863 710 LINE",
+"822 548 LINE",
+"1172 548 LINE",
+"1090 220 LINE",
+"1012 176 OFFCURVE",
+"858 147 OFFCURVE",
+"739 147 CURVE SMOOTH",
+"520 147 OFFCURVE",
+"384 272 OFFCURVE",
+"384 493 CURVE SMOOTH",
+"384 560 OFFCURVE",
+"394 636 OFFCURVE",
+"415 720 CURVE SMOOTH",
+"500 1062 OFFCURVE",
+"747 1289 OFFCURVE",
+"1052 1289 CURVE SMOOTH",
+"1195 1289 OFFCURVE",
+"1335 1233 OFFCURVE",
+"1425 1122 CURVE",
+"1534 1298 LINE",
+"1409 1405 OFFCURVE",
+"1235 1455 OFFCURVE",
+"1063 1455 CURVE SMOOTH",
+"680 1455 OFFCURVE",
+"334 1195 OFFCURVE",
+"217 726 CURVE SMOOTH",
+"195 639 OFFCURVE",
+"185 559 OFFCURVE",
+"185 486 CURVE SMOOTH",
+"185 162 OFFCURVE",
+"406 -25 OFFCURVE",
+"714 -25 CURVE SMOOTH",
+"907 -25 OFFCURVE",
+"1149 50 OFFCURVE",
+"1258 132 CURVE",
+"1403 710 LINE"
+);
+}
+);
+width = 1406;
+},
+{
+anchors = (
+{
+name = H;
+position = "{747, 0}";
+},
+{
+name = L;
+position = "{722, -100}";
+},
+{
+name = U;
+position = "{1129, 1530}";
+}
+);
+layerId = master02;
+paths = (
+{
+closed = 1;
+nodes = (
+"910 767 LINE",
+"855 544 LINE",
+"1170 544 LINE",
+"1104 271 LINE",
+"1015 231 OFFCURVE",
+"916 218 OFFCURVE",
+"805 218 CURVE SMOOTH",
+"593 218 OFFCURVE",
+"475 352 OFFCURVE",
+"475 567 CURVE SMOOTH",
+"475 633 OFFCURVE",
+"484 708 OFFCURVE",
+"505 789 CURVE SMOOTH",
+"581 1079 OFFCURVE",
+"802 1230 OFFCURVE",
+"1067 1230 CURVE SMOOTH",
+"1220 1230 OFFCURVE",
+"1334 1193 OFFCURVE",
+"1449 1096 CURVE",
+"1594 1332 LINE",
+"1447 1437 OFFCURVE",
+"1275 1470 OFFCURVE",
+"1094 1470 CURVE SMOOTH",
+"709 1470 OFFCURVE",
+"345 1257 OFFCURVE",
+"227 783 CURVE SMOOTH",
+"205 694 OFFCURVE",
+"194 611 OFFCURVE",
+"194 534 CURVE SMOOTH",
+"194 176 OFFCURVE",
+"419 -25 OFFCURVE",
+"768 -25 CURVE SMOOTH",
+"940 -25 OFFCURVE",
+"1105 10 OFFCURVE",
+"1325 133 CURVE",
+"1480 767 LINE"
+);
+}
+);
+width = 1452;
+}
+);
+unicode = 0047;
+},
+{
+glyphname = LtnCapH;
+layers = (
+{
+anchors = (
+{
+name = H;
+position = "{225, 0}";
+},
+{
+name = L;
+position = "{640, -100}";
+},
+{
+name = U;
+position = "{1047, 1530}";
+}
+);
+layerId = master01;
+paths = (
+{
+closed = 1;
+nodes = (
+"1234 78 OFFCURVE",
+"1273 233 OFFCURVE",
+"1321 426 CURVE SMOOTH",
+"1465 1005 LINE SMOOTH",
+"1513 1198 OFFCURVE",
+"1552 1352 OFFCURVE",
+"1586 1431 CURVE",
+"1381 1431 LINE",
+"1228 818 LINE",
+"508 818 LINE",
+"661 1431 LINE",
+"456 1431 LINE",
+"452 1352 OFFCURVE",
+"413 1197 OFFCURVE",
+"365 1005 CURVE SMOOTH",
+"221 426 LINE SMOOTH",
+"173 233 OFFCURVE",
+"134 78 OFFCURVE",
+"100 0 CURVE",
+"305 0 LINE",
+"470 662 LINE",
+"1190 662 LINE",
+"1025 0 LINE",
+"1230 0 LINE"
+);
+}
+);
+width = 1455;
+},
+{
+anchors = (
+{
+name = H;
+position = "{245, 0}";
+},
+{
+name = L;
+position = "{660, -100}";
+},
+{
+name = U;
+position = "{1067, 1530}";
+}
+);
+layerId = master02;
+paths = (
+{
+closed = 1;
+nodes = (
+"1192 851 LINE",
+"602 851 LINE",
+"750 1445 LINE",
+"450 1445 LINE",
+"445 1366 OFFCURVE",
+"408 1215 OFFCURVE",
+"359 1020 CURVE SMOOTH",
+"211 426 LINE SMOOTH",
+"162 231 OFFCURVE",
+"124 79 OFFCURVE",
+"90 0 CURVE",
+"90 0 OFFCURVE",
+"390 0 OFFCURVE",
+"390 0 CURVE",
+"546 629 LINE",
+"1136 629 LINE",
+"980 0 LINE",
+"980 0 OFFCURVE",
+"1280 0 OFFCURVE",
+"1280 0 CURVE",
+"1284 79 OFFCURVE",
+"1322 231 OFFCURVE",
+"1371 426 CURVE SMOOTH",
+"1519 1020 LINE SMOOTH",
+"1567 1215 OFFCURVE",
+"1605 1366 OFFCURVE",
+"1640 1445 CURVE",
+"1340 1445 LINE"
+);
+}
+);
+width = 1495;
+}
+);
+unicode = 0048;
+},
+{
+glyphname = LtnCapI;
+layers = (
+{
+anchors = (
+{
+name = H;
+position = "{417, 0}";
+},
+{
+name = L;
+position = "{392, -100}";
+},
+{
+name = O;
+position = "{613, 0}";
+},
+{
+name = R;
+position = "{1215, 1200}";
+},
+{
+name = U;
+position = "{799, 1530}";
+}
+);
+layerId = master01;
+paths = (
+{
+closed = 1;
+nodes = (
+"401 1289 LINE",
+"641 1289 LINE",
+"355 142 LINE",
+"115 142 LINE",
+"80 0 LINE",
+"755 0 LINE",
+"790 142 LINE",
+"545 142 LINE",
+"831 1289 LINE",
+"1076 1289 LINE",
+"1111 1431 LINE",
+"436 1431 LINE"
+);
+}
+);
+width = 955;
+},
+{
+anchors = (
+{
+name = H;
+position = "{460, 0}";
+},
+{
+name = L;
+position = "{431, -100}";
+},
+{
+name = O;
+position = "{652, 0}";
+},
+{
+name = R;
+position = "{1254, 1200}";
+},
+{
+name = U;
+position = "{842, 1530}";
+}
+);
+layerId = master02;
+paths = (
+{
+closed = 1;
+nodes = (
+"379 1242 LINE",
+"619 1242 LINE",
+"360 203 LINE",
+"120 203 LINE",
+"70 0 LINE",
+"835 0 LINE",
+"885 203 LINE",
+"645 203 LINE",
+"904 1242 LINE",
+"1144 1242 LINE",
+"1195 1445 LINE",
+"430 1445 LINE"
+);
+}
+);
+width = 1025;
+}
+);
+unicode = 0049;
+},
+{
+glyphname = LtnCapJ;
+layers = (
+{
+anchors = (
+{
+name = L;
+position = "{325, -100}";
+},
+{
+name = U;
+position = "{997, 1530}";
+}
+);
+layerId = master01;
+paths = (
+{
+closed = 1;
+nodes = (
+"858 1327 OFFCURVE",
+"817 1151 OFFCURVE",
+"769 960 CURVE SMOOTH",
+"648 475 LINE SMOOTH",
+"592 251 OFFCURVE",
+"484 152 OFFCURVE",
+"337 152 CURVE SMOOTH",
+"245 152 OFFCURVE",
+"145 224 OFFCURVE",
+"97 299 CURVE",
+"6 118 LINE",
+"58 39 OFFCURVE",
+"193 -25 OFFCURVE",
+"298 -25 CURVE SMOOTH",
+"555 -25 OFFCURVE",
+"749 117 OFFCURVE",
+"850 524 CURVE SMOOTH",
+"1076 1431 LINE",
+"871 1431 LINE"
+);
+}
+);
+width = 996;
+},
+{
+anchors = (
+{
+name = L;
+position = "{330, -100}";
+},
+{
+name = U;
+position = "{1027, 1530}";
+}
+);
+layerId = master02;
+paths = (
+{
+closed = 1;
+nodes = (
+"842 1340 OFFCURVE",
+"799 1163 OFFCURVE",
+"751 970 CURVE SMOOTH",
+"647 552 LINE SMOOTH",
+"602 370 OFFCURVE",
+"516 225 OFFCURVE",
+"341 225 CURVE SMOOTH",
+"260 225 OFFCURVE",
+"159 267 OFFCURVE",
+"104 344 CURVE",
+"-8 89 LINE",
+"51 19 OFFCURVE",
+"191 -25 OFFCURVE",
+"326 -25 CURVE SMOOTH",
+"611 -25 OFFCURVE",
+"826 128 OFFCURVE",
+"927 530 CURVE SMOOTH",
+"947 612 OFFCURVE",
+"1155 1445 OFFCURVE",
+"1155 1445 CURVE",
+"855 1445 LINE"
+);
+}
+);
+width = 1010;
+}
+);
+unicode = 004A;
+},
+{
+glyphname = LtnCapK;
+layers = (
+{
+anchors = (
+{
+name = H;
+position = "{210, 0}";
+},
+{
+name = L;
+position = "{610, -100}";
+},
+{
+name = U;
+position = "{972, 1530}";
+}
+);
+layerId = master01;
+paths = (
+{
+closed = 1;
+nodes = (
+"406 689 LINE",
+"547 730 LINE",
+"660 725 LINE",
+"1461 1431 LINE",
+"1221 1431 LINE"
+);
+},
+{
+closed = 1;
+nodes = (
+"615 823 LINE",
+"469 720 LINE",
+"925 0 LINE",
+"1170 0 LINE"
+);
+},
+{
+closed = 1;
+nodes = (
+"456 1431 LINE",
+"452 1352 OFFCURVE",
+"413 1197 OFFCURVE",
+"365 1005 CURVE SMOOTH",
+"221 426 LINE SMOOTH",
+"173 233 OFFCURVE",
+"134 78 OFFCURVE",
+"100 0 CURVE",
+"305 0 LINE",
+"661 1431 LINE"
+);
+}
+);
+width = 1261;
+},
+{
+anchors = (
+{
+name = H;
+position = "{260, 0}";
+},
+{
+name = L;
+position = "{655, -100}";
+},
+{
+name = U;
+position = "{1047, 1530}";
+}
+);
+layerId = master02;
+paths = (
+{
+closed = 1;
+nodes = (
+"450 1445 LINE",
+"444 1366 OFFCURVE",
+"406 1210 OFFCURVE",
+"358 1015 CURVE SMOOTH",
+"212 431 LINE SMOOTH",
+"163 236 OFFCURVE",
+"123 79 OFFCURVE",
+"90 0 CURVE",
+"390 0 LINE",
+"750 1445 LINE"
+);
+},
+{
+closed = 1;
+nodes = (
+"461 697 LINE",
+"634 738 LINE",
+"758 724 LINE",
+"1580 1445 LINE",
+"1244 1445 LINE"
+);
+},
+{
+closed = 1;
+nodes = (
+"950 0 LINE",
+"1300 0 LINE",
+"738 801 LINE",
+"509 724 LINE"
+);
+}
+);
+width = 1410;
+}
+);
+unicode = 004B;
+},
+{
+glyphname = LtnCapL;
+layers = (
+{
+anchors = (
+{
+name = H;
+position = "{532, 0}";
+},
+{
+name = L;
+position = "{507, -100}";
+},
+{
+name = R;
+position = "{780, 1200}";
+},
+{
+name = U;
+position = "{914, 1530}";
+}
+);
+layerId = master01;
+paths = (
+{
+closed = 1;
+nodes = (
+"661 1431 LINE",
+"456 1431 LINE",
+"452 1352 OFFCURVE",
+"413 1197 OFFCURVE",
+"365 1005 CURVE SMOOTH",
+"221 426 LINE SMOOTH",
+"173 233 OFFCURVE",
+"134 78 OFFCURVE",
+"100 0 CURVE",
+"965 0 LINE",
+"1008 176 LINE",
+"925 163 OFFCURVE",
+"766 162 OFFCURVE",
+"569 162 CURVE SMOOTH",
+"345 162 LINE"
+);
+}
+);
+width = 1060;
+},
+{
+anchors = (
+{
+name = H;
+position = "{560, 0}";
+},
+{
+name = L;
+position = "{535, -100}";
+},
+{
+name = R;
+position = "{890, 1200}";
+},
+{
+name = U;
+position = "{942, 1530}";
+}
+);
+layerId = master02;
+paths = (
+{
+closed = 1;
+nodes = (
+"750 1445 LINE",
+"450 1445 LINE",
+"444 1366 OFFCURVE",
+"406 1210 OFFCURVE",
+"358 1015 CURVE SMOOTH",
+"212 431 LINE SMOOTH",
+"163 236 OFFCURVE",
+"123 79 OFFCURVE",
+"90 0 CURVE",
+"1025 0 LINE",
+"1085 243 LINE",
+"1005 229 OFFCURVE",
+"851 228 OFFCURVE",
+"662 228 CURVE SMOOTH",
+"446 228 LINE"
+);
+}
+);
+width = 1110;
+}
+);
+unicode = 004C;
+},
+{
+glyphname = LtnCapM;
+layers = (
+{
+anchors = (
+{
+name = L;
+position = "{800, -100}";
+},
+{
+name = U;
+position = "{1207, 1530}";
+}
+);
+layerId = master01;
+paths = (
+{
+closed = 1;
+nodes = (
+"751 1431 LINE",
+"591 1431 LINE",
+"740 0 LINE",
+"935 0 LINE",
+"1793 1431 LINE",
+"1616 1431 LINE",
+"880 201 LINE"
+);
+},
+{
+closed = 1;
+nodes = (
+"536 1431 OFFCURVE",
+"184 194 OFFCURVE",
+"110 0 CURVE",
+"295 0 LINE",
+"621 1181 LINE",
+"711 1431 LINE",
+"536 1431 LINE"
+);
+},
+{
+closed = 1;
+nodes = (
+"1579 194 OFFCURVE",
+"1846 1431 OFFCURVE",
+"1846 1431 CURVE",
+"1671 1431 LINE",
+"1641 1181 LINE",
+"1375 0 LINE",
+"1560 0 LINE"
+);
+}
+);
+width = 1785;
+},
+{
+anchors = (
+{
+name = L;
+position = "{830, -100}";
+},
+{
+name = U;
+position = "{1237, 1530}";
+}
+);
+layerId = master02;
+paths = (
+{
+closed = 1;
+nodes = (
+"865 1445 LINE",
+"615 1445 LINE",
+"664 1158 LINE",
+"710 0 LINE",
+"1005 0 LINE",
+"1625 1158 LINE",
+"1817 1445 LINE",
+"1550 1445 LINE",
+"919 272 LINE"
+);
+},
+{
+closed = 1;
+nodes = (
+"520 1445 OFFCURVE",
+"164 196 OFFCURVE",
+"90 0 CURVE",
+"360 0 LINE",
+"686 1193 LINE",
+"785 1445 LINE",
+"520 1445 LINE"
+);
+},
+{
+closed = 1;
+nodes = (
+"1649 196 OFFCURVE",
+"1910 1445 OFFCURVE",
+"1910 1445 CURVE",
+"1640 1445 LINE",
+"1622 1193 LINE",
+"1360 0 LINE",
+"1630 0 LINE"
+);
+}
+);
+width = 1835;
+}
+);
+unicode = 004D;
+},
+{
+glyphname = LtnCapN;
+layers = (
+{
+anchors = (
+{
+name = H;
+position = "{1170, 0}";
+},
+{
+name = L;
+position = "{652, -100}";
+},
+{
+name = U;
+position = "{1059, 1530}";
+}
+);
+layerId = master01;
+paths = (
+{
+closed = 1;
+nodes = (
+"1075 0 LINE",
+"1219 98 LINE",
+"636 1431 LINE",
+"491 1328 LINE"
+);
+},
+{
+closed = 1;
+nodes = (
+"1250 0 LINE",
+"1500 1005 LINE SMOOTH",
+"1548 1198 OFFCURVE",
+"1588 1352 OFFCURVE",
+"1621 1431 CURVE",
+"1431 1431 LINE",
+"1075 0 LINE"
+);
+},
+{
+closed = 1;
+nodes = (
+"446 1431 LINE",
+"442 1352 OFFCURVE",
+"403 1197 OFFCURVE",
+"355 1005 CURVE SMOOTH",
+"211 426 LINE SMOOTH",
+"163 233 OFFCURVE",
+"124 78 OFFCURVE",
+"90 0 CURVE",
+"280 0 LINE",
+"636 1431 LINE"
+);
+}
+);
+width = 1480;
+},
+{
+anchors = (
+{
+name = H;
+position = "{1180, 0}";
+},
+{
+name = L;
+position = "{680, -100}";
+},
+{
+name = U;
+position = "{1087, 1530}";
+}
+);
+layerId = master02;
+paths = (
+{
+closed = 1;
+nodes = (
+"1035 0 LINE",
+"1253 148 LINE",
+"725 1445 LINE",
+"506 1297 LINE"
+);
+},
+{
+closed = 1;
+nodes = (
+"1305 0 LINE",
+"1558 1015 LINE SMOOTH",
+"1606 1210 OFFCURVE",
+"1646 1366 OFFCURVE",
+"1680 1445 CURVE",
+"1395 1445 LINE",
+"1035 0 LINE"
+);
+},
+{
+closed = 1;
+nodes = (
+"440 1445 LINE",
+"434 1366 OFFCURVE",
+"396 1210 OFFCURVE",
+"348 1015 CURVE SMOOTH",
+"202 431 LINE SMOOTH",
+"153 236 OFFCURVE",
+"113 79 OFFCURVE",
+"80 0 CURVE",
+"365 0 LINE",
+"725 1445 LINE"
+);
+}
+);
+width = 1525;
+}
+);
+unicode = 004E;
+},
+{
+glyphname = LtnCapO;
+layers = (
+{
+anchors = (
+{
+name = H;
+position = "{657, 0}";
+},
+{
+name = L;
+position = "{632, -100}";
+},
+{
+name = O;
+position = "{896, 0}";
+},
+{
+name = R;
+position = "{1700, 1200}";
+},
+{
+name = U;
+position = "{1039, 1530}";
+}
+);
+layerId = master01;
+paths = (
+{
+closed = 1;
+nodes = (
+"514 147 OFFCURVE",
+"386 300 OFFCURVE",
+"386 541 CURVE SMOOTH",
+"386 871 OFFCURVE",
+"606 1284 OFFCURVE",
+"963 1284 CURVE SMOOTH",
+"1164 1284 OFFCURVE",
+"1291 1133 OFFCURVE",
+"1291 892 CURVE SMOOTH",
+"1291 563 OFFCURVE",
+"1077 147 OFFCURVE",
+"719 147 CURVE SMOOTH"
+);
+},
+{
+closed = 1;
+nodes = (
+"1492 1263 OFFCURVE",
+"1278 1455 OFFCURVE",
+"1015 1455 CURVE SMOOTH",
+"599 1455 OFFCURVE",
+"185 1036 OFFCURVE",
+"185 500 CURVE SMOOTH",
+"185 167 OFFCURVE",
+"400 -25 OFFCURVE",
+"666 -25 CURVE SMOOTH",
+"1078 -25 OFFCURVE",
+"1492 395 OFFCURVE",
+"1492 931 CURVE SMOOTH"
+);
+}
+);
+width = 1447;
+},
+{
+anchors = (
+{
+name = H;
+position = "{680, 0}";
+},
+{
+name = L;
+position = "{655, -100}";
+},
+{
+name = O;
+position = "{916, 0}";
+},
+{
+name = R;
+position = "{1720, 1200}";
+},
+{
+name = U;
+position = "{1062, 1530}";
+}
+);
+layerId = master02;
+paths = (
+{
+closed = 1;
+nodes = (
+"580 218 OFFCURVE",
+"471 345 OFFCURVE",
+"471 568 CURVE SMOOTH",
+"471 922 OFFCURVE",
+"664 1228 OFFCURVE",
+"966 1228 CURVE SMOOTH",
+"1134 1228 OFFCURVE",
+"1237 1106 OFFCURVE",
+"1237 891 CURVE SMOOTH",
+"1237 540 OFFCURVE",
+"1060 218 OFFCURVE",
+"754 218 CURVE SMOOTH"
+);
+},
+{
+closed = 1;
+nodes = (
+"1519 1249 OFFCURVE",
+"1350 1470 OFFCURVE",
+"1026 1470 CURVE SMOOTH",
+"510 1470 OFFCURVE",
+"191 1010 OFFCURVE",
+"191 539 CURVE SMOOTH",
+"191 199 OFFCURVE",
+"401 -25 OFFCURVE",
+"693 -25 CURVE SMOOTH",
+"1121 -25 OFFCURVE",
+"1519 337 OFFCURVE",
+"1519 911 CURVE SMOOTH"
+);
+}
+);
+width = 1480;
+}
+);
+unicode = 004F;
+},
+{
+glyphname = LtnCapP;
+layers = (
+{
+anchors = (
+{
+name = L;
+position = "{552, -100}";
+},
+{
+name = U;
+position = "{959, 1530}";
+}
+);
+layerId = master01;
+paths = (
+{
+closed = 1;
+nodes = (
+"506 547 OFFCURVE",
+"597 544 OFFCURVE",
+"670 544 CURVE SMOOTH",
+"1058 544 OFFCURVE",
+"1321 733 OFFCURVE",
+"1321 1084 CURVE SMOOTH",
+"1321 1302 OFFCURVE",
+"1141 1441 OFFCURVE",
+"864 1441 CURVE SMOOTH",
+"651 1441 OFFCURVE",
+"456 1431 OFFCURVE",
+"456 1431 CURVE",
+"452 1352 OFFCURVE",
+"407 1172 OFFCURVE",
+"359 980 CURVE",
+"221 426 LINE SMOOTH",
+"173 233 OFFCURVE",
+"134 78 OFFCURVE",
+"100 0 CURVE",
+"320 0 LINE",
+"324 76 OFFCURVE",
+"362 232 OFFCURVE",
+"411 426 CURVE SMOOTH",
+"443 554 LINE"
+);
+},
+{
+closed = 1;
+nodes = (
+"692 1282 OFFCURVE",
+"721 1284 OFFCURVE",
+"815 1284 CURVE SMOOTH",
+"1036 1284 OFFCURVE",
+"1121 1172 OFFCURVE",
+"1121 1048 CURVE SMOOTH",
+"1121 845 OFFCURVE",
+"968 696 OFFCURVE",
+"693 696 CURVE SMOOTH",
+"618 696 OFFCURVE",
+"542 698 OFFCURVE",
+"481 706 CURVE",
+"623 1279 LINE"
+);
+}
+);
+width = 1190;
+},
+{
+anchors = (
+{
+name = L;
+position = "{600, -100}";
+},
+{
+name = U;
+position = "{970, 1530}";
+}
+);
+layerId = master02;
+paths = (
+{
+closed = 1;
+nodes = (
+"582 511 OFFCURVE",
+"661 508 OFFCURVE",
+"734 508 CURVE SMOOTH",
+"1118 508 OFFCURVE",
+"1393 718 OFFCURVE",
+"1393 1076 CURVE SMOOTH",
+"1393 1306 OFFCURVE",
+"1215 1455 OFFCURVE",
+"940 1455 CURVE SMOOTH",
+"727 1455 OFFCURVE",
+"450 1445 OFFCURVE",
+"450 1445 CURVE",
+"445 1366 OFFCURVE",
+"400 1184 OFFCURVE",
+"351 990 CURVE SMOOTH",
+"212 431 LINE SMOOTH",
+"164 237 OFFCURVE",
+"124 79 OFFCURVE",
+"90 0 CURVE",
+"405 0 LINE",
+"410 77 OFFCURVE",
+"448 235 OFFCURVE",
+"497 431 CURVE SMOOTH",
+"519 518 LINE"
+);
+},
+{
+closed = 1;
+nodes = (
+"752 1231 OFFCURVE",
+"781 1233 OFFCURVE",
+"849 1233 CURVE SMOOTH",
+"1020 1233 OFFCURVE",
+"1103 1135 OFFCURVE",
+"1103 1020 CURVE SMOOTH",
+"1103 827 OFFCURVE",
+"965 723 OFFCURVE",
+"758 723 CURVE SMOOTH",
+"696 723 OFFCURVE",
+"614 726 OFFCURVE",
+"572 733 CURVE",
+"696 1228 LINE"
+);
+}
+);
+width = 1255;
+}
+);
+unicode = 0050;
+},
+{
+glyphname = LtnCapQ;
+layers = (
+{
+anchors = (
+{
+name = L;
+position = "{589, -270}";
+},
+{
+name = U;
+position = "{1039, 1530}";
+}
+);
+layerId = master01;
+paths = (
+{
+closed = 1;
+nodes = (
+"1495 1266 OFFCURVE",
+"1306 1455 OFFCURVE",
+"1026 1455 CURVE SMOOTH",
+"703 1455 OFFCURVE",
+"332 1195 OFFCURVE",
+"215 726 CURVE SMOOTH",
+"194 642 OFFCURVE",
+"185 564 OFFCURVE",
+"185 492 CURVE SMOOTH",
+"185 165 OFFCURVE",
+"388 -25 OFFCURVE",
+"652 -25 CURVE SMOOTH",
+"714 -25 OFFCURVE",
+"781 -17 OFFCURVE",
+"829 0 CURVE",
+"898 0 OFFCURVE",
+"1133 -186 OFFCURVE",
+"1217 -186 CURVE SMOOTH",
+"1271 -186 OFFCURVE",
+"1355 -79 OFFCURVE",
+"1388 -44 CURVE",
+"1258 -27 OFFCURVE",
+"1155 27 OFFCURVE",
+"1049 103 CURVE",
+"1253 217 OFFCURVE",
+"1495 528 OFFCURVE",
+"1495 939 CURVE SMOOTH"
+);
+},
+{
+closed = 1;
+nodes = (
+"492 147 OFFCURVE",
+"384 284 OFFCURVE",
+"384 508 CURVE SMOOTH",
+"384 856 OFFCURVE",
+"609 1284 OFFCURVE",
+"994 1284 CURVE SMOOTH",
+"1188 1284 OFFCURVE",
+"1295 1149 OFFCURVE",
+"1295 925 CURVE SMOOTH",
+"1295 490 OFFCURVE",
+"985 147 OFFCURVE",
+"690 147 CURVE SMOOTH"
+);
+}
+);
+width = 1459;
+},
+{
+anchors = (
+{
+name = L;
+position = "{619, -270}";
+},
+{
+name = U;
+position = "{1069, 1530}";
+}
+);
+layerId = master02;
+paths = (
+{
+closed = 1;
+nodes = (
+"1527 1259 OFFCURVE",
+"1324 1470 OFFCURVE",
+"1029 1470 CURVE SMOOTH",
+"663 1470 OFFCURVE",
+"339 1229 OFFCURVE",
+"221 755 CURVE SMOOTH",
+"201 673 OFFCURVE",
+"191 597 OFFCURVE",
+"191 526 CURVE SMOOTH",
+"191 185 OFFCURVE",
+"410 -25 OFFCURVE",
+"696 -25 CURVE SMOOTH",
+"743 -25 OFFCURVE",
+"787 -23 OFFCURVE",
+"838 -15 CURVE",
+"907 -15 OFFCURVE",
+"1162 -221 OFFCURVE",
+"1246 -221 CURVE SMOOTH",
+"1310 -221 OFFCURVE",
+"1422 -74 OFFCURVE",
+"1468 -22 CURVE",
+"1331 -6 OFFCURVE",
+"1227 60 OFFCURVE",
+"1115 134 CURVE",
+"1312 242 OFFCURVE",
+"1527 566 OFFCURVE",
+"1527 922 CURVE SMOOTH"
+);
+},
+{
+closed = 1;
+nodes = (
+"563 218 OFFCURVE",
+"471 355 OFFCURVE",
+"471 558 CURVE SMOOTH",
+"471 912 OFFCURVE",
+"677 1228 OFFCURVE",
+"969 1228 CURVE SMOOTH",
+"1147 1228 OFFCURVE",
+"1246 1106 OFFCURVE",
+"1246 891 CURVE SMOOTH",
+"1246 560 OFFCURVE",
+"1053 218 OFFCURVE",
+"757 218 CURVE SMOOTH"
+);
+}
+);
+width = 1488;
+}
+);
+unicode = 0051;
+},
+{
+glyphname = LtnCapR;
+layers = (
+{
+anchors = (
+{
+name = H;
+position = "{590, 0}";
+},
+{
+name = L;
+position = "{525, -100}";
+},
+{
+name = U;
+position = "{932, 1530}";
+}
+);
+layerId = master01;
+paths = (
+{
+closed = 1;
+nodes = (
+"712 613 LINE SMOOTH",
+"1010 613 OFFCURVE",
+"1303 784 OFFCURVE",
+"1303 1114 CURVE SMOOTH",
+"1303 1326 OFFCURVE",
+"1114 1441 OFFCURVE",
+"844 1441 CURVE SMOOTH",
+"610 1441 OFFCURVE",
+"456 1431 OFFCURVE",
+"456 1431 CURVE",
+"452 1352 OFFCURVE",
+"407 1172 OFFCURVE",
+"359 980 CURVE SMOOTH",
+"221 426 LINE",
+"173 233 OFFCURVE",
+"134 78 OFFCURVE",
+"100 0 CURVE",
+"320 0 LINE",
+"324 76 OFFCURVE",
+"363 233 OFFCURVE",
+"411 426 CURVE",
+"457 613 LINE"
+);
+},
+{
+closed = 1;
+nodes = (
+"677 1281 OFFCURVE",
+"725 1284 OFFCURVE",
+"795 1284 CURVE SMOOTH",
+"1003 1284 OFFCURVE",
+"1104 1203 OFFCURVE",
+"1104 1076 CURVE SMOOTH",
+"1104 856 OFFCURVE",
+"921 764 OFFCURVE",
+"685 764 CURVE SMOOTH",
+"495 764 LINE",
+"623 1279 LINE"
+);
+},
+{
+closed = 1;
+nodes = (
+"930 0 LINE",
+"1185 0 LINE",
+"1122 89 OFFCURVE",
+"864 602 OFFCURVE",
+"828 676 CURVE",
+"656 622 LINE"
+);
+}
+);
+width = 1295;
+},
+{
+anchors = (
+{
+name = H;
+position = "{630, 0}";
+},
+{
+name = L;
+position = "{605, -100}";
+},
+{
+name = U;
+position = "{982, 1530}";
+}
+);
+layerId = master02;
+paths = (
+{
+closed = 1;
+nodes = (
+"749 579 LINE SMOOTH",
+"1071 579 OFFCURVE",
+"1378 761 OFFCURVE",
+"1378 1117 CURVE SMOOTH",
+"1378 1332 OFFCURVE",
+"1199 1455 OFFCURVE",
+"932 1455 CURVE SMOOTH",
+"698 1455 OFFCURVE",
+"450 1445 OFFCURVE",
+"450 1445 CURVE",
+"445 1366 OFFCURVE",
+"400 1184 OFFCURVE",
+"351 990 CURVE SMOOTH",
+"212 431 LINE",
+"164 236 OFFCURVE",
+"124 79 OFFCURVE",
+"90 0 CURVE",
+"405 0 LINE",
+"410 77 OFFCURVE",
+"448 236 OFFCURVE",
+"497 431 CURVE",
+"534 579 LINE"
+);
+},
+{
+closed = 1;
+nodes = (
+"749 1231 OFFCURVE",
+"764 1233 OFFCURVE",
+"842 1233 CURVE SMOOTH",
+"995 1233 OFFCURVE",
+"1089 1167 OFFCURVE",
+"1089 1060 CURVE SMOOTH",
+"1089 899 OFFCURVE",
+"956 792 OFFCURVE",
+"782 792 CURVE SMOOTH",
+"587 792 LINE",
+"696 1228 LINE"
+);
+},
+{
+closed = 1;
+nodes = (
+"915 0 LINE",
+"1270 0 LINE",
+"1220 72 OFFCURVE",
+"962 623 OFFCURVE",
+"936 680 CURVE",
+"652 629 LINE"
+);
+}
+);
+width = 1360;
+}
+);
+unicode = 0052;
+},
+{
+glyphname = LtnCapS;
+layers = (
+{
+anchors = (
+{
+name = H;
+position = "{520, 0}";
+},
+{
+name = L;
+position = "{495, -100}";
+},
+{
+name = U;
+position = "{902, 1530}";
+}
+);
+layerId = master01;
+paths = (
+{
+closed = 1;
+nodes = (
+"1146 1419 OFFCURVE",
+"1021 1455 OFFCURVE",
+"867 1455 CURVE SMOOTH",
+"549 1455 OFFCURVE",
+"320 1303 OFFCURVE",
+"320 1040 CURVE SMOOTH",
+"320 901 OFFCURVE",
+"438 794 OFFCURVE",
+"622 691 CURVE SMOOTH",
+"877 549 OFFCURVE",
+"914 461 OFFCURVE",
+"914 378 CURVE SMOOTH",
+"914 256 OFFCURVE",
+"792 147 OFFCURVE",
+"621 147 CURVE SMOOTH",
+"473 147 OFFCURVE",
+"278 235 OFFCURVE",
+"161 378 CURVE",
+"65 187 LINE",
+"178 73 OFFCURVE",
+"365 -25 OFFCURVE",
+"558 -25 CURVE SMOOTH",
+"852 -25 OFFCURVE",
+"1114 115 OFFCURVE",
+"1114 414 CURVE SMOOTH",
+"1114 526 OFFCURVE",
+"1057 679 OFFCURVE",
+"800 828 CURVE SMOOTH",
+"597 946 OFFCURVE",
+"510 1005 OFFCURVE",
+"510 1079 CURVE SMOOTH",
+"510 1210 OFFCURVE",
+"659 1284 OFFCURVE",
+"845 1284 CURVE SMOOTH",
+"959 1284 OFFCURVE",
+"1075 1240 OFFCURVE",
+"1173 1156 CURVE",
+"1260 1347 LINE"
+);
+}
+);
+width = 1155;
+},
+{
+anchors = (
+{
+name = H;
+position = "{556, 0}";
+},
+{
+name = L;
+position = "{531, -100}";
+},
+{
+name = U;
+position = "{938, 1530}";
+}
+);
+layerId = master02;
+paths = (
+{
+closed = 1;
+nodes = (
+"1232 1430 OFFCURVE",
+"1086 1470 OFFCURVE",
+"916 1470 CURVE SMOOTH",
+"600 1470 OFFCURVE",
+"332 1333 OFFCURVE",
+"332 1053 CURVE SMOOTH",
+"332 889 OFFCURVE",
+"413 800 OFFCURVE",
+"621 658 CURVE SMOOTH",
+"829 516 OFFCURVE",
+"885 448 OFFCURVE",
+"885 374 CURVE SMOOTH",
+"885 276 OFFCURVE",
+"772 218 OFFCURVE",
+"624 218 CURVE SMOOTH",
+"463 218 OFFCURVE",
+"270 340 OFFCURVE",
+"184 461 CURVE",
+"67 189 LINE",
+"147 91 OFFCURVE",
+"394 -25 OFFCURVE",
+"573 -25 CURVE SMOOTH",
+"923 -25 OFFCURVE",
+"1182 124 OFFCURVE",
+"1182 419 CURVE SMOOTH",
+"1182 584 OFFCURVE",
+"1077 682 OFFCURVE",
+"881 831 CURVE SMOOTH",
+"728 947 OFFCURVE",
+"628 1010 OFFCURVE",
+"628 1082 CURVE SMOOTH",
+"628 1198 OFFCURVE",
+"790 1230 OFFCURVE",
+"877 1230 CURVE SMOOTH",
+"1018 1230 OFFCURVE",
+"1119 1189 OFFCURVE",
+"1228 1099 CURVE",
+"1339 1361 LINE"
+);
+}
+);
+width = 1223;
+}
+);
+unicode = 0053;
+},
+{
+glyphname = LtnCapT;
+layers = (
+{
+anchors = (
+{
+name = H;
+position = "{562, 0}";
+},
+{
+name = L;
+position = "{562, -100}";
+},
+{
+name = U;
+position = "{944, 1530}";
+}
+);
+layerId = master01;
+paths = (
+{
+closed = 1;
+nodes = (
+"296 1250 LINE",
+"380 1266 OFFCURVE",
+"457 1269 OFFCURVE",
+"546 1269 CURVE SMOOTH",
+"781 1269 LINE",
+"571 426 LINE SMOOTH",
+"523 233 OFFCURVE",
+"481 78 OFFCURVE",
+"445 0 CURVE",
+"675 0 LINE",
+"677 78 OFFCURVE",
+"713 233 OFFCURVE",
+"761 426 CURVE SMOOTH",
+"971 1269 LINE",
+"1211 1269 LINE SMOOTH",
+"1301 1269 OFFCURVE",
+"1375 1266 OFFCURVE",
+"1451 1250 CURVE",
+"1496 1431 LINE",
+"341 1431 LINE"
+);
+}
+);
+width = 1245;
+},
+{
+anchors = (
+{
+name = H;
+position = "{572, 0}";
+},
+{
+name = L;
+position = "{547, -100}";
+},
+{
+name = U;
+position = "{954, 1530}";
+}
+);
+layerId = master02;
+paths = (
+{
+closed = 1;
+nodes = (
+"283 1198 LINE",
+"359 1215 OFFCURVE",
+"439 1218 OFFCURVE",
+"519 1218 CURVE SMOOTH",
+"731 1218 LINE",
+"529 409 LINE SMOOTH",
+"483 224 OFFCURVE",
+"443 75 OFFCURVE",
+"408 0 CURVE",
+"733 0 LINE",
+"734 75 OFFCURVE",
+"768 224 OFFCURVE",
+"814 409 CURVE SMOOTH",
+"1016 1218 LINE",
+"1232 1218 LINE SMOOTH",
+"1313 1218 OFFCURVE",
+"1390 1215 OFFCURVE",
+"1458 1198 CURVE",
+"1520 1445 LINE",
+"345 1445 LINE"
+);
+}
+);
+width = 1255;
+}
+);
+unicode = 0054;
+},
+{
+glyphname = LtnCapU;
+layers = (
+{
+anchors = (
+{
+name = H;
+position = "{647, 0}";
+},
+{
+name = L;
+position = "{622, -100}";
+},
+{
+name = O;
+position = "{865, 0}";
+},
+{
+name = R;
+position = "{1640, 1200}";
+},
+{
+name = U;
+position = "{1029, 1530}";
+}
+);
+layerId = master01;
+paths = (
+{
+closed = 1;
+nodes = (
+"1126 549 LINE SMOOTH",
+"1055 264 OFFCURVE",
+"916 132 OFFCURVE",
+"682 132 CURVE SMOOTH",
+"485 132 OFFCURVE",
+"421 244 OFFCURVE",
+"421 391 CURVE SMOOTH",
+"421 451 OFFCURVE",
+"431 516 OFFCURVE",
+"448 582 CURVE SMOOTH",
+"661 1431 LINE",
+"456 1431 LINE",
+"451 1352 OFFCURVE",
+"414 1198 OFFCURVE",
+"365 1005 CURVE SMOOTH",
+"251 552 LINE SMOOTH",
+"236 493 OFFCURVE",
+"228 435 OFFCURVE",
+"228 379 CURVE SMOOTH",
+"228 157 OFFCURVE",
+"351 -25 OFFCURVE",
+"643 -25 CURVE SMOOTH",
+"1020 -25 OFFCURVE",
+"1223 177 OFFCURVE",
+"1299 480 CURVE SMOOTH",
+"1430 1005 LINE SMOOTH",
+"1480 1207 OFFCURVE",
+"1519 1352 OFFCURVE",
+"1551 1431 CURVE",
+"1346 1431 LINE"
+);
+}
+);
+width = 1420;
+},
+{
+anchors = (
+{
+name = H;
+position = "{672, 0}";
+},
+{
+name = L;
+position = "{647, -100}";
+},
+{
+name = O;
+position = "{890, 0}";
+},
+{
+name = R;
+position = "{1720, 1200}";
+},
+{
+name = U;
+position = "{1054, 1530}";
+}
+);
+layerId = master02;
+paths = (
+{
+closed = 1;
+nodes = (
+"1093 554 LINE SMOOTH",
+"1040 341 OFFCURVE",
+"952 202 OFFCURVE",
+"735 202 CURVE SMOOTH",
+"572 202 OFFCURVE",
+"515 305 OFFCURVE",
+"515 435 CURVE SMOOTH",
+"515 482 OFFCURVE",
+"523 533 OFFCURVE",
+"535 583 CURVE SMOOTH",
+"750 1445 LINE",
+"450 1445 LINE",
+"444 1366 OFFCURVE",
+"406 1210 OFFCURVE",
+"358 1015 CURVE SMOOTH",
+"249 570 LINE SMOOTH",
+"235 512 OFFCURVE",
+"228 457 OFFCURVE",
+"228 404 CURVE SMOOTH",
+"228 155 OFFCURVE",
+"385 -25 OFFCURVE",
+"698 -25 CURVE SMOOTH",
+"1063 -25 OFFCURVE",
+"1275 148 OFFCURVE",
+"1356 470 CURVE SMOOTH",
+"1493 1015 LINE SMOOTH",
+"1544 1220 OFFCURVE",
+"1582 1366 OFFCURVE",
+"1615 1445 CURVE",
+"1315 1445 LINE"
+);
+}
+);
+width = 1470;
+}
+);
+unicode = 0055;
+},
+{
+glyphname = LtnCapV;
+layers = (
+{
+anchors = (
+{
+name = H;
+position = "{620, 0}";
+},
+{
+name = L;
+position = "{587, -100}";
+},
+{
+name = O;
+position = "{820, 0}";
+},
+{
+name = U;
+position = "{994, 1530}";
+}
+);
+layerId = master01;
+paths = (
+{
+closed = 1;
+nodes = (
+"654 191 LINE",
+"536 1431 LINE",
+"331 1431 LINE",
+"344 1350 OFFCURVE",
+"355 1262 OFFCURVE",
+"377 1073 CURVE SMOOTH",
+"500 0 LINE",
+"725 0 LINE",
+"1377 1073 LINE SMOOTH",
+"1492 1263 OFFCURVE",
+"1550 1350 OFFCURVE",
+"1606 1431 CURVE",
+"1381 1431 LINE"
+);
+}
+);
+width = 1345;
+},
+{
+anchors = (
+{
+name = H;
+position = "{670, 0}";
+},
+{
+name = L;
+position = "{637, -100}";
+},
+{
+name = O;
+position = "{870, 0}";
+},
+{
+name = U;
+position = "{1044, 1530}";
+}
+);
+layerId = master02;
+paths = (
+{
+closed = 1;
+nodes = (
+"721 257 LINE",
+"620 1445 LINE",
+"325 1445 LINE",
+"339 1364 OFFCURVE",
+"354 1275 OFFCURVE",
+"375 1084 CURVE SMOOTH",
+"495 0 LINE",
+"830 0 LINE",
+"1490 1084 LINE SMOOTH",
+"1606 1276 OFFCURVE",
+"1664 1364 OFFCURVE",
+"1720 1445 CURVE",
+"1405 1445 LINE"
+);
+}
+);
+width = 1445;
+}
+);
+unicode = 0056;
+},
+{
+glyphname = LtnCapW;
+layers = (
+{
+anchors = (
+{
+name = L;
+position = "{942, -100}";
+},
+{
+name = U;
+position = "{1349, 1530}";
+}
+);
+layerId = master01;
+paths = (
+{
+closed = 1;
+nodes = (
+"2107 1073 LINE SMOOTH",
+"2208 1263 OFFCURVE",
+"2259 1350 OFFCURVE",
+"2311 1431 CURVE",
+"2081 1431 LINE",
+"1431 127 LINE",
+"1420 0 LINE",
+"1535 0 LINE"
+);
+},
+{
+closed = 1;
+nodes = (
+"1420 0 LINE",
+"1461 127 LINE",
+"1406 1431 LINE",
+"1231 1431 LINE",
+"1248 1279 LINE",
+"1310 0 LINE"
+);
+},
+{
+closed = 1;
+nodes = (
+"1406 1431 LINE",
+"1221 1431 LINE",
+"521 127 LINE",
+"521 0 LINE",
+"625 0 LINE"
+);
+},
+{
+closed = 1;
+nodes = (
+"336 1431 LINE",
+"348 1353 OFFCURVE",
+"355 1260 OFFCURVE",
+"362 1073 CURVE SMOOTH",
+"400 0 LINE",
+"521 0 LINE",
+"551 127 LINE",
+"546 1431 LINE"
+);
+}
+);
+width = 2060;
+},
+{
+anchors = (
+{
+name = L;
+position = "{967, -100}";
+},
+{
+name = U;
+position = "{1374, 1530}";
+}
+);
+layerId = master02;
+paths = (
+{
+closed = 1;
+nodes = (
+"1595 0 LINE",
+"2165 1084 LINE SMOOTH",
+"2266 1277 OFFCURVE",
+"2318 1364 OFFCURVE",
+"2370 1445 CURVE",
+"2050 1445 LINE",
+"1432 129 LINE",
+"1430 0 LINE"
+);
+},
+{
+closed = 1;
+nodes = (
+"1220 1445 LINE",
+"1257 1292 LINE",
+"1280 0 LINE",
+"1450 0 LINE",
+"1492 129 LINE",
+"1470 1445 LINE"
+);
+},
+{
+closed = 1;
+nodes = (
+"705 0 LINE",
+"1367 1292 LINE",
+"1470 1445 LINE",
+"1210 1445 LINE",
+"542 129 LINE",
+"540 0 LINE"
+);
+},
+{
+closed = 1;
+nodes = (
+"330 1445 LINE",
+"341 1367 OFFCURVE",
+"349 1273 OFFCURVE",
+"355 1084 CURVE SMOOTH",
+"390 0 LINE",
+"560 0 LINE",
+"602 129 LINE",
+"630 1445 LINE"
+);
+}
+);
+width = 2115;
+}
+);
+unicode = 0057;
+},
+{
+glyphname = LtnCapX;
+layers = (
+{
+anchors = (
+{
+name = L;
+position = "{565, -100}";
+},
+{
+name = U;
+position = "{972, 1530}";
+}
+);
+layerId = master01;
+paths = (
+{
+closed = 1;
+nodes = (
+"1190 0 LINE",
+"1148 80 OFFCURVE",
+"1125 124 OFFCURVE",
+"1045 329 CURVE SMOOTH",
+"611 1431 LINE",
+"386 1431 LINE",
+"430 1348 OFFCURVE",
+"462 1289 OFFCURVE",
+"541 1088 CURVE SMOOTH",
+"970 0 LINE"
+);
+},
+{
+closed = 1;
+nodes = (
+"278 333 LINE SMOOTH",
+"98 129 OFFCURVE",
+"53 84 OFFCURVE",
+"-30 0 CURVE",
+"210 0 LINE",
+"750 622 LINE",
+"752 872 LINE"
+);
+},
+{
+closed = 1;
+nodes = (
+"1183 1088 LINE SMOOTH",
+"1360 1285 OFFCURVE",
+"1425 1355 OFFCURVE",
+"1506 1431 CURVE",
+"1261 1431 LINE",
+"767 872 LINE",
+"765 622 LINE"
+);
+}
+);
+width = 1305;
+},
+{
+anchors = (
+{
+name = L;
+position = "{585, -100}";
+},
+{
+name = U;
+position = "{992, 1530}";
+}
+);
+layerId = master02;
+paths = (
+{
+closed = 1;
+nodes = (
+"1240 0 LINE",
+"1199 81 OFFCURVE",
+"1172 125 OFFCURVE",
+"1096 333 CURVE SMOOTH",
+"690 1445 LINE",
+"375 1445 LINE",
+"418 1362 OFFCURVE",
+"454 1304 OFFCURVE",
+"529 1099 CURVE SMOOTH",
+"930 0 LINE"
+);
+},
+{
+closed = 1;
+nodes = (
+"269 337 LINE SMOOTH",
+"94 126 OFFCURVE",
+"44 85 OFFCURVE",
+"-40 0 CURVE",
+"290 0 LINE",
+"790 603 LINE",
+"768 938 LINE"
+);
+},
+{
+closed = 1;
+nodes = (
+"1251 1099 LINE SMOOTH",
+"1423 1302 OFFCURVE",
+"1492 1369 OFFCURVE",
+"1575 1445 CURVE",
+"1240 1445 LINE",
+"808 938 LINE",
+"830 603 LINE"
+);
+}
+);
+width = 1345;
+}
+);
+unicode = 0058;
+},
+{
+glyphname = LtnCapY;
+layers = (
+{
+anchors = (
+{
+name = L;
+position = "{565, -100}";
+},
+{
+name = U;
+position = "{972, 1530}";
+}
+);
+layerId = master01;
+paths = (
+{
+closed = 1;
+nodes = (
+"407 1285 OFFCURVE",
+"446 1173 OFFCURVE",
+"490 1044 CURVE",
+"661 549 LINE",
+"829 661 LINE",
+"551 1431 LINE",
+"331 1431 LINE"
+);
+},
+{
+closed = 1;
+nodes = (
+"684 661 LINE",
+"796 549 LINE",
+"1215 1044 LINE SMOOTH",
+"1322 1171 OFFCURVE",
+"1402 1265 OFFCURVE",
+"1561 1431 CURVE",
+"1321 1431 LINE"
+);
+},
+{
+closed = 1;
+nodes = (
+"704 78 OFFCURVE",
+"743 233 OFFCURVE",
+"791 426 CURVE SMOOTH",
+"854 681 LINE",
+"664 681 LINE",
+"601 426 LINE SMOOTH",
+"553 233 OFFCURVE",
+"514 78 OFFCURVE",
+"480 0 CURVE",
+"700 0 LINE"
+);
+}
+);
+width = 1300;
+},
+{
+anchors = (
+{
+name = L;
+position = "{587, -100}";
+},
+{
+name = U;
+position = "{994, 1530}";
+}
+);
+layerId = master02;
+paths = (
+{
+closed = 1;
+nodes = (
+"400 1298 OFFCURVE",
+"438 1185 OFFCURVE",
+"482 1054 CURVE SMOOTH",
+"653 554 LINE",
+"868 668 LINE",
+"637 1445 LINE",
+"325 1445 LINE"
+);
+},
+{
+closed = 1;
+nodes = (
+"668 668 LINE",
+"848 554 LINE",
+"1271 1054 LINE SMOOTH",
+"1379 1183 OFFCURVE",
+"1459 1278 OFFCURVE",
+"1619 1445 CURVE",
+"1282 1445 LINE"
+);
+},
+{
+closed = 1;
+nodes = (
+"774 79 OFFCURVE",
+"813 236 OFFCURVE",
+"862 431 CURVE SMOOTH",
+"926 688 LINE",
+"641 688 LINE",
+"577 431 LINE SMOOTH",
+"528 236 OFFCURVE",
+"488 79 OFFCURVE",
+"455 0 CURVE",
+"770 0 LINE"
+);
+}
+);
+width = 1344;
+}
+);
+unicode = 0059;
+},
+{
+glyphname = LftSqrBrac;
+layers = (
+{
+layerId = master01;
+paths = (
+{
+closed = 1;
+nodes = (
+"521 -255 LINE",
+"266 -255 LINE",
+"679 1421 LINE",
+"934 1421 LINE",
+"970 1568 LINE",
+"530 1568 LINE",
+"44 -402 LINE",
+"484 -402 LINE"
+);
+}
+);
+width = 770;
+},
+{
+layerId = master02;
+paths = (
+{
+closed = 1;
+nodes = (
+"605 -198 LINE",
+"365 -198 LINE",
+"753 1376 LINE",
+"993 1376 LINE",
+"1044 1584 LINE",
+"524 1584 LINE",
+"33 -406 LINE",
+"553 -406 LINE"
+);
+}
+);
+width = 830;
+}
+);
+unicode = 005B;
+},
+{
+glyphname = ReverseSolidus;
+layers = (
+{
+layerId = master01;
+paths = (
+{
+closed = 1;
+nodes = (
+"656 -123 LINE",
+"799 -93 LINE",
+"620 1568 LINE",
+"473 1538 LINE"
+);
+}
+);
+width = 1005;
+},
+{
+layerId = master02;
+paths = (
+{
+closed = 1;
+nodes = (
+"719 -243 LINE",
+"949 -243 LINE",
+"574 1584 LINE",
+"344 1584 LINE"
+);
+}
+);
+width = 1060;
+}
+);
+unicode = 005C;
+},
+{
+glyphname = RtSqrBrac;
+layers = (
+{
+layerId = master01;
+paths = (
+{
+closed = 1;
+nodes = (
+"920 1568 LINE",
+"480 1568 LINE",
+"444 1421 LINE",
+"699 1421 LINE",
+"286 -255 LINE",
+"31 -255 LINE",
+"-6 -402 LINE",
+"434 -402 LINE"
+);
+}
+);
+width = 770;
+},
+{
+layerId = master02;
+paths = (
+{
+closed = 1;
+nodes = (
+"994 1584 LINE",
+"474 1584 LINE",
+"423 1376 LINE",
+"663 1376 LINE",
+"275 -198 LINE",
+"35 -198 LINE",
+"-17 -406 LINE",
+"503 -406 LINE"
+);
+}
+);
+width = 830;
+}
+);
+unicode = 005D;
+},
+{
+glyphname = CircumAccent;
+layers = (
+{
+anchors = (
+{
+name = U;
+position = "{705, 1635}";
+}
+);
+layerId = master01;
+paths = (
+{
+closed = 1;
+nodes = (
+"660 1421 LINE",
+"866 1147 LINE",
+"1015 1147 LINE",
+"761 1568 LINE",
+"591 1568 LINE",
+"166 1147 LINE",
+"316 1147 LINE"
+);
+}
+);
+width = 830;
+},
+{
+anchors = (
+{
+name = U;
+position = "{788, 1635}";
+}
+);
+layerId = master02;
+paths = (
+{
+closed = 1;
+nodes = (
+"845 1584 LINE",
+"545 1584 LINE",
+"177 1188 LINE",
+"417 1188 LINE",
+"674 1416 LINE",
+"817 1188 LINE",
+"1056 1188 LINE"
+);
+}
+);
+width = 860;
+}
+);
+unicode = 005E;
+},
+{
+glyphname = LowLine;
+layers = (
+{
+layerId = master01;
+paths = (
+{
+closed = 1;
+nodes = (
+"1135 -314 LINE",
+"1172 -167 LINE",
+"-101 -167 LINE",
+"-138 -314 LINE"
+);
+}
+);
+width = 1254;
+},
+{
+layerId = master02;
+paths = (
+{
+closed = 1;
+nodes = (
+"1127 -347 LINE",
+"1179 -139 LINE",
+"-94 -139 LINE",
+"-146 -347 LINE"
+);
+}
+);
+width = 1254;
+}
+);
+unicode = 005F;
+},
+{
+glyphname = GraveAccent;
+layers = (
+{
+anchors = (
+{
+name = U;
+position = "{738, 1635}";
+}
+);
+layerId = master01;
+paths = (
+{
+closed = 1;
+nodes = (
+"596 1147 LINE",
+"746 1147 LINE",
+"471 1568 LINE",
+"261 1568 LINE"
+);
+}
+);
+width = 560;
+},
+{
+anchors = (
+{
+name = U;
+position = "{848, 1635}";
+}
+);
+layerId = master02;
+paths = (
+{
+closed = 1;
+nodes = (
+"587 1188 LINE",
+"817 1188 LINE",
+"595 1584 LINE",
+"265 1584 LINE"
+);
+}
+);
+width = 620;
+}
+);
+unicode = 0060;
+},
+{
+glyphname = LtnSmA;
+layers = (
+{
+anchors = (
+{
+name = H;
+position = "{860, 0}";
+},
+{
+name = L;
+position = "{455, -100}";
+},
+{
+name = O;
+position = "{1065, 0}";
+},
+{
+name = R;
+position = "{1310, 1000}";
+},
+{
+name = U;
+position = "{755, 1100}";
+}
+);
+layerId = master01;
+paths = (
+{
+closed = 1;
+nodes = (
+"965 48 OFFCURVE",
+"960 98 OFFCURVE",
+"960 149 CURVE SMOOTH",
+"960 214 OFFCURVE",
+"967 284 OFFCURVE",
+"987 363 CURVE",
+"1077 726 LINE",
+"1081 744 OFFCURVE",
+"1084 762 OFFCURVE",
+"1084 779 CURVE SMOOTH",
+"1084 912 OFFCURVE",
+"955 1019 OFFCURVE",
+"751 1019 CURVE SMOOTH",
+"599 1019 OFFCURVE",
+"502 974 OFFCURVE",
+"389 931 CURVE",
+"373 889 OFFCURVE",
+"343 783 OFFCURVE",
+"331 740 CURVE",
+"468 820 OFFCURVE",
+"560 862 OFFCURVE",
+"666 862 CURVE SMOOTH",
+"798 862 OFFCURVE",
+"885 810 OFFCURVE",
+"885 718 CURVE SMOOTH",
+"885 705 OFFCURVE",
+"884 691 OFFCURVE",
+"880 677 CURVE SMOOTH",
+"867 622 LINE",
+"825 619 OFFCURVE",
+"661 605 OFFCURVE",
+"591 598 CURVE SMOOTH",
+"282 568 OFFCURVE",
+"102 415 OFFCURVE",
+"102 233 CURVE SMOOTH",
+"102 103 OFFCURVE",
+"223 -25 OFFCURVE",
+"390 -25 CURVE SMOOTH",
+"514 -25 OFFCURVE",
+"674 47 OFFCURVE",
+"779 152 CURVE",
+"779 89 OFFCURVE",
+"787 31 OFFCURVE",
+"792 0 CURVE",
+"972 0 LINE"
+);
+},
+{
+closed = 1;
+nodes = (
+"674 191 OFFCURVE",
+"553 137 OFFCURVE",
+"451 137 CURVE SMOOTH",
+"355 137 OFFCURVE",
+"290 192 OFFCURVE",
+"290 264 CURVE SMOOTH",
+"290 274 OFFCURVE",
+"291 285 OFFCURVE",
+"294 296 CURVE SMOOTH",
+"315 380 OFFCURVE",
+"432 450 OFFCURVE",
+"566 461 CURVE SMOOTH",
+"631 466 OFFCURVE",
+"782 483 OFFCURVE",
+"832 485 CURVE",
+"791 319 LINE"
+);
+}
+);
+width = 1107;
+},
+{
+anchors = (
+{
+name = H;
+position = "{925, 0}";
+},
+{
+name = L;
+position = "{525, -100}";
+},
+{
+name = O;
+position = "{1125, 0}";
+},
+{
+name = R;
+position = "{1335, 1000}";
+},
+{
+name = U;
+position = "{825, 1100}";
+}
+);
+layerId = master02;
+paths = (
+{
+closed = 1;
+nodes = (
+"1054 44 OFFCURVE",
+"1051 87 OFFCURVE",
+"1051 133 CURVE SMOOTH",
+"1051 204 OFFCURVE",
+"1059 280 OFFCURVE",
+"1081 366 CURVE",
+"1128 557 OFFCURVE",
+"1156 665 OFFCURVE",
+"1170 722 CURVE",
+"1174 738 OFFCURVE",
+"1176 754 OFFCURVE",
+"1176 770 CURVE SMOOTH",
+"1176 909 OFFCURVE",
+"1026 1030 OFFCURVE",
+"791 1030 CURVE SMOOTH",
+"632 1030 OFFCURVE",
+"514 994 OFFCURVE",
+"389 940 CURVE",
+"363 859 OFFCURVE",
+"327 728 OFFCURVE",
+"315 684 CURVE",
+"452 765 OFFCURVE",
+"565 808 OFFCURVE",
+"673 808 CURVE SMOOTH",
+"809 808 OFFCURVE",
+"885 760 OFFCURVE",
+"885 709 CURVE SMOOTH",
+"885 705 OFFCURVE",
+"884 700 OFFCURVE",
+"883 696 CURVE SMOOTH",
+"872 653 LINE",
+"831 652 OFFCURVE",
+"669 643 OFFCURVE",
+"598 636 CURVE SMOOTH",
+"367 614 OFFCURVE",
+"109 474 OFFCURVE",
+"109 236 CURVE SMOOTH",
+"109 97 OFFCURVE",
+"215 -25 OFFCURVE",
+"388 -25 CURVE SMOOTH",
+"505 -25 OFFCURVE",
+"633 23 OFFCURVE",
+"773 134 CURVE",
+"773 78 OFFCURVE",
+"784 28 OFFCURVE",
+"790 0 CURVE",
+"1060 0 LINE"
+);
+},
+{
+closed = 1;
+nodes = (
+"669 223 OFFCURVE",
+"590 203 OFFCURVE",
+"508 203 CURVE SMOOTH",
+"438 203 OFFCURVE",
+"398 246 OFFCURVE",
+"398 299 CURVE SMOOTH",
+"398 308 OFFCURVE",
+"399 317 OFFCURVE",
+"401 326 CURVE SMOOTH",
+"417 391 OFFCURVE",
+"471 438 OFFCURVE",
+"612 452 CURVE SMOOTH",
+"665 458 OFFCURVE",
+"786 469 OFFCURVE",
+"827 470 CURVE",
+"797 351 LINE"
+);
+}
+);
+width = 1185;
+}
+);
+unicode = 0061;
+},
+{
+glyphname = LtnSmB;
+layers = (
+{
+anchors = (
+{
+name = H;
+position = "{530, 0}";
+},
+{
+name = L;
+position = "{505, -100}";
+},
+{
+name = R;
+position = "{1345, 1000}";
+},
+{
+name = U;
+position = "{938, 1635}";
+}
+);
+layerId = master01;
+paths = (
+{
+closed = 1;
+nodes = (
+"437 1456 OFFCURVE",
+"402 1246 OFFCURVE",
+"367 1105 CURVE SMOOTH",
+"110 85 LINE",
+"198 44 OFFCURVE",
+"355 -25 OFFCURVE",
+"517 -25 CURVE SMOOTH",
+"675 -25 OFFCURVE",
+"795 24 OFFCURVE",
+"907 125 CURVE SMOOTH",
+"1050 255 OFFCURVE",
+"1162 466 OFFCURVE",
+"1162 695 CURVE SMOOTH",
+"1162 930 OFFCURVE",
+"1046 1020 OFFCURVE",
+"907 1020 CURVE SMOOTH",
+"754 1020 OFFCURVE",
+"584 878 OFFCURVE",
+"456 719 CURVE",
+"552 1105 LINE SMOOTH",
+"600 1296 OFFCURVE",
+"627 1508 OFFCURVE",
+"627 1570 CURVE",
+"437 1570 LINE"
+);
+},
+{
+closed = 1;
+nodes = (
+"485 617 OFFCURVE",
+"708 850 OFFCURVE",
+"822 850 CURVE SMOOTH",
+"913 850 OFFCURVE",
+"972 784 OFFCURVE",
+"972 635 CURVE SMOOTH",
+"972 469 OFFCURVE",
+"909 336 OFFCURVE",
+"822 250 CURVE SMOOTH",
+"741 169 OFFCURVE",
+"638 125 OFFCURVE",
+"552 125 CURVE SMOOTH",
+"466 125 OFFCURVE",
+"376 167 OFFCURVE",
+"325 200 CURVE",
+"382 429 LINE"
+);
+}
+);
+width = 1144;
+},
+{
+anchors = (
+{
+name = H;
+position = "{550, 0}";
+},
+{
+name = L;
+position = "{525, -100}";
+},
+{
+name = R;
+position = "{1405, 1000}";
+},
+{
+name = U;
+position = "{958, 1635}";
+}
+);
+layerId = master02;
+paths = (
+{
+closed = 1;
+nodes = (
+"576 610 OFFCURVE",
+"726 787 OFFCURVE",
+"829 787 CURVE SMOOTH",
+"911 787 OFFCURVE",
+"946 705 OFFCURVE",
+"946 590 CURVE SMOOTH",
+"946 465 OFFCURVE",
+"897 350 OFFCURVE",
+"823 275 CURVE SMOOTH",
+"769 221 OFFCURVE",
+"703 188 OFFCURVE",
+"631 188 CURVE SMOOTH",
+"564 188 OFFCURVE",
+"502 202 OFFCURVE",
+"434 238 CURVE",
+"482 432 LINE"
+);
+},
+{
+closed = 1;
+nodes = (
+"445 1439 OFFCURVE",
+"404 1242 OFFCURVE",
+"367 1095 CURVE SMOOTH",
+"110 64 LINE",
+"252 16 OFFCURVE",
+"400 -25 OFFCURVE",
+"593 -25 CURVE SMOOTH",
+"727 -25 OFFCURVE",
+"845 19 OFFCURVE",
+"942 91 CURVE SMOOTH",
+"1122 224 OFFCURVE",
+"1229 453 OFFCURVE",
+"1229 672 CURVE SMOOTH",
+"1229 906 OFFCURVE",
+"1138 1030 OFFCURVE",
+"985 1030 CURVE SMOOTH",
+"822 1030 OFFCURVE",
+"684 906 OFFCURVE",
+"562 756 CURVE",
+"646 1095 LINE SMOOTH",
+"686 1255 OFFCURVE",
+"725 1474 OFFCURVE",
+"725 1585 CURVE",
+"445 1585 LINE"
+);
+}
+);
+width = 1229;
+}
+);
+unicode = 0062;
+},
+{
+glyphname = LtnSmC;
+layers = (
+{
+anchors = (
+{
+name = H;
+position = "{520, 0}";
+},
+{
+name = L;
+position = "{495, -100}";
+},
+{
+name = R;
+position = "{1210, 1000}";
+},
+{
+name = U;
+position = "{785, 1100}";
+}
+);
+layerId = master01;
+paths = (
+{
+closed = 1;
+nodes = (
+"811 179 OFFCURVE",
+"703 137 OFFCURVE",
+"583 137 CURVE SMOOTH",
+"427 137 OFFCURVE",
+"331 239 OFFCURVE",
+"331 406 CURVE SMOOTH",
+"331 619 OFFCURVE",
+"499 858 OFFCURVE",
+"742 858 CURVE SMOOTH",
+"845 858 OFFCURVE",
+"924 824 OFFCURVE",
+"998 760 CURVE",
+"1077 936 LINE",
+"1016 985 OFFCURVE",
+"902 1020 OFFCURVE",
+"789 1020 CURVE SMOOTH",
+"420 1020 OFFCURVE",
+"139 737 OFFCURVE",
+"139 381 CURVE SMOOTH",
+"139 130 OFFCURVE",
+"309 -25 OFFCURVE",
+"532 -25 CURVE SMOOTH",
+"682 -25 OFFCURVE",
+"785 9 OFFCURVE",
+"904 83 CURVE",
+"917 255 LINE"
+);
+}
+);
+width = 989;
+},
+{
+anchors = (
+{
+name = H;
+position = "{495, 0}";
+},
+{
+name = L;
+position = "{490, -100}";
+},
+{
+name = R;
+position = "{1210, 1000}";
+},
+{
+name = U;
+position = "{790, 1100}";
+}
+);
+layerId = master02;
+paths = (
+{
+closed = 1;
+nodes = (
+"1035 997 OFFCURVE",
+"928 1030 OFFCURVE",
+"796 1030 CURVE SMOOTH",
+"446 1030 OFFCURVE",
+"150 774 OFFCURVE",
+"150 386 CURVE SMOOTH",
+"150 137 OFFCURVE",
+"341 -25 OFFCURVE",
+"569 -25 CURVE SMOOTH",
+"718 -25 OFFCURVE",
+"835 11 OFFCURVE",
+"927 69 CURVE",
+"937 311 LINE",
+"840 238 OFFCURVE",
+"755 203 OFFCURVE",
+"625 203 CURVE SMOOTH",
+"494 203 OFFCURVE",
+"417 302 OFFCURVE",
+"417 416 CURVE SMOOTH",
+"417 661 OFFCURVE",
+"588 802 OFFCURVE",
+"754 802 CURVE SMOOTH",
+"857 802 OFFCURVE",
+"918 781 OFFCURVE",
+"993 720 CURVE",
+"1099 959 LINE"
+);
+}
+);
+width = 1019;
+}
+);
+unicode = 0063;
+},
+{
+glyphname = LtnSmD;
+layers = (
+{
+anchors = (
+{
+name = H;
+position = "{545, 0}";
+},
+{
+name = L;
+position = "{520, -100}";
+},
+{
+name = R;
+position = "{1380, 1000}";
+},
+{
+name = U;
+position = "{953, 1635}";
+}
+);
+layerId = master01;
+paths = (
+{
+closed = 1;
+nodes = (
+"1144 1456 OFFCURVE",
+"1114 1327 OFFCURVE",
+"1079 1175 CURVE SMOOTH",
+"1024 935 LINE",
+"957 978 OFFCURVE",
+"854 1020 OFFCURVE",
+"759 1020 CURVE SMOOTH",
+"650 1020 OFFCURVE",
+"534 979 OFFCURVE",
+"429 895 CURVE SMOOTH",
+"262 761 OFFCURVE",
+"139 532 OFFCURVE",
+"139 288 CURVE SMOOTH",
+"139 94 OFFCURVE",
+"250 -25 OFFCURVE",
+"424 -25 CURVE SMOOTH",
+"563 -25 OFFCURVE",
+"791 141 OFFCURVE",
+"899 305 CURVE",
+"875 196 OFFCURVE",
+"869 93 OFFCURVE",
+"869 0 CURVE",
+"1052 0 LINE",
+"1048 23 OFFCURVE",
+"1047 53 OFFCURVE",
+"1047 90 CURVE SMOOTH",
+"1047 190 OFFCURVE",
+"1063 340 OFFCURVE",
+"1107 520 CURVE SMOOTH",
+"1267 1175 LINE SMOOTH",
+"1310 1351 OFFCURVE",
+"1337 1475 OFFCURVE",
+"1337 1570 CURVE",
+"1144 1570 LINE"
+);
+},
+{
+closed = 1;
+nodes = (
+"846 370 OFFCURVE",
+"592 130 OFFCURVE",
+"479 130 CURVE SMOOTH",
+"374 130 OFFCURVE",
+"330 195 OFFCURVE",
+"330 316 CURVE SMOOTH",
+"330 460 OFFCURVE",
+"397 649 OFFCURVE",
+"509 760 CURVE SMOOTH",
+"572 822 OFFCURVE",
+"643 855 OFFCURVE",
+"734 855 CURVE SMOOTH",
+"835 855 OFFCURVE",
+"898 832 OFFCURVE",
+"984 780 CURVE",
+"930 545 LINE"
+);
+}
+);
+width = 1197;
+},
+{
+anchors = (
+{
+name = H;
+position = "{535, 0}";
+},
+{
+name = L;
+position = "{540, -100}";
+},
+{
+name = R;
+position = "{1475, 1000}";
+},
+{
+name = U;
+position = "{958, 1635}";
+}
+);
+layerId = master02;
+paths = (
+{
+closed = 1;
+nodes = (
+"861 438 OFFCURVE",
+"666 200 OFFCURVE",
+"560 200 CURVE SMOOTH",
+"470 200 OFFCURVE",
+"427 263 OFFCURVE",
+"427 367 CURVE SMOOTH",
+"427 480 OFFCURVE",
+"469 626 OFFCURVE",
+"554 714 CURVE SMOOTH",
+"599 761 OFFCURVE",
+"657 792 OFFCURVE",
+"727 792 CURVE SMOOTH",
+"820 792 OFFCURVE",
+"876 775 OFFCURVE",
+"957 731 CURVE",
+"913 558 LINE"
+);
+},
+{
+closed = 1;
+nodes = (
+"1144 1471 OFFCURVE",
+"1116 1327 OFFCURVE",
+"1079 1175 CURVE SMOOTH",
+"1020 935 LINE",
+"949 989 OFFCURVE",
+"845 1030 OFFCURVE",
+"756 1030 CURVE SMOOTH",
+"630 1030 OFFCURVE",
+"518 987 OFFCURVE",
+"426 917 CURVE SMOOTH",
+"250 784 OFFCURVE",
+"145 553 OFFCURVE",
+"145 341 CURVE SMOOTH",
+"145 130 OFFCURVE",
+"258 -25 OFFCURVE",
+"448 -25 CURVE SMOOTH",
+"597 -25 OFFCURVE",
+"785 145 OFFCURVE",
+"867 267 CURVE",
+"855 181 OFFCURVE",
+"855 72 OFFCURVE",
+"855 0 CURVE",
+"1130 0 LINE",
+"1126 23 OFFCURVE",
+"1125 63 OFFCURVE",
+"1125 100 CURVE SMOOTH",
+"1125 200 OFFCURVE",
+"1142 340 OFFCURVE",
+"1185 520 CURVE SMOOTH",
+"1345 1190 LINE SMOOTH",
+"1387 1366 OFFCURVE",
+"1415 1490 OFFCURVE",
+"1415 1585 CURVE",
+"1144 1585 LINE"
+);
+}
+);
+width = 1265;
+}
+);
+unicode = 0064;
+},
+{
+glyphname = LtnSmE;
+layers = (
+{
+anchors = (
+{
+name = H;
+position = "{485, 0}";
+},
+{
+name = L;
+position = "{484, -100}";
+},
+{
+name = O;
+position = "{840, 0}";
+},
+{
+name = R;
+position = "{1285, 1000}";
+},
+{
+name = U;
+position = "{784, 1100}";
+}
+);
+layerId = master01;
+paths = (
+{
+closed = 1;
+nodes = (
+"854 189 OFFCURVE",
+"700 135 OFFCURVE",
+"567 135 CURVE SMOOTH",
+"386 135 OFFCURVE",
+"317 263 OFFCURVE",
+"317 420 CURVE SMOOTH",
+"317 686 OFFCURVE",
+"522 872 OFFCURVE",
+"720 872 CURVE SMOOTH",
+"813 872 OFFCURVE",
+"883 823 OFFCURVE",
+"883 753 CURVE SMOOTH",
+"883 660 OFFCURVE",
+"766 590 OFFCURVE",
+"539 590 CURVE SMOOTH",
+"468 590 OFFCURVE",
+"382 596 OFFCURVE",
+"279 610 CURVE",
+"279 477 LINE",
+"391 461 OFFCURVE",
+"487 453 OFFCURVE",
+"569 453 CURVE SMOOTH",
+"931 453 OFFCURVE",
+"1077 609 OFFCURVE",
+"1077 791 CURVE SMOOTH",
+"1077 899 OFFCURVE",
+"986 1020 OFFCURVE",
+"772 1020 CURVE SMOOTH",
+"399 1020 OFFCURVE",
+"137 710 OFFCURVE",
+"137 380 CURVE SMOOTH",
+"137 147 OFFCURVE",
+"258 -25 OFFCURVE",
+"523 -25 CURVE SMOOTH",
+"689 -25 OFFCURVE",
+"849 26 OFFCURVE",
+"955 83 CURVE",
+"967 270 LINE"
+);
+}
+);
+width = 1042;
+},
+{
+anchors = (
+{
+name = H;
+position = "{509, 0}";
+},
+{
+name = L;
+position = "{555, -100}";
+},
+{
+name = O;
+position = "{840, 0}";
+},
+{
+name = R;
+position = "{1320, 1000}";
+},
+{
+name = U;
+position = "{752, 1100}";
+}
+);
+layerId = master02;
+paths = (
+{
+closed = 1;
+nodes = (
+"871 230 OFFCURVE",
+"739 198 OFFCURVE",
+"608 198 CURVE SMOOTH",
+"459 198 OFFCURVE",
+"401 297 OFFCURVE",
+"401 428 CURVE SMOOTH",
+"401 683 OFFCURVE",
+"552 822 OFFCURVE",
+"713 822 CURVE SMOOTH",
+"811 822 OFFCURVE",
+"869 782 OFFCURVE",
+"869 720 CURVE SMOOTH",
+"869 635 OFFCURVE",
+"777 580 OFFCURVE",
+"533 580 CURVE SMOOTH",
+"461 580 OFFCURVE",
+"385 589 OFFCURVE",
+"283 610 CURVE",
+"283 437 LINE",
+"353 422 OFFCURVE",
+"487 413 OFFCURVE",
+"569 413 CURVE SMOOTH",
+"935 413 OFFCURVE",
+"1125 583 OFFCURVE",
+"1125 774 CURVE SMOOTH",
+"1125 922 OFFCURVE",
+"993 1030 OFFCURVE",
+"769 1030 CURVE SMOOTH",
+"435 1030 OFFCURVE",
+"148 775 OFFCURVE",
+"148 388 CURVE SMOOTH",
+"148 135 OFFCURVE",
+"332 -25 OFFCURVE",
+"556 -25 CURVE SMOOTH",
+"712 -25 OFFCURVE",
+"835 2 OFFCURVE",
+"997 74 CURVE",
+"1013 303 LINE"
+);
+}
+);
+width = 1087;
+}
+);
+unicode = 0065;
+},
+{
+glyphname = LtnSmF;
+layers = (
+{
+anchors = (
+{
+name = H;
+position = "{290, 0}";
+},
+{
+name = L;
+position = "{315, -100}";
+},
+{
+name = U;
+position = "{908, 1635}";
+}
+);
+layerId = master01;
+paths = (
+{
+closed = 1;
+nodes = (
+"835 833 LINE",
+"871 975 LINE",
+"216 975 LINE",
+"180 833 LINE"
+);
+},
+{
+closed = 1;
+nodes = (
+"1062 1555 OFFCURVE",
+"981 1588 OFFCURVE",
+"903 1588 CURVE SMOOTH",
+"687 1588 OFFCURVE",
+"533 1478 OFFCURVE",
+"448 1147 CURVE SMOOTH",
+"403 972 OFFCURVE",
+"244 334 OFFCURVE",
+"223 0 CURVE",
+"436 0 LINE",
+"430 28 OFFCURVE",
+"427 66 OFFCURVE",
+"427 110 CURVE SMOOTH",
+"427 213 OFFCURVE",
+"447 351 OFFCURVE",
+"476 484 CURVE SMOOTH",
+"510 641 OFFCURVE",
+"558 846 OFFCURVE",
+"641 1186 CURVE SMOOTH",
+"682 1353 OFFCURVE",
+"758 1421 OFFCURVE",
+"862 1421 CURVE SMOOTH",
+"920 1421 OFFCURVE",
+"988 1392 OFFCURVE",
+"1022 1362 CURVE",
+"1106 1519 LINE"
+);
+}
+);
+width = 756;
+},
+{
+anchors = (
+{
+name = H;
+position = "{320, 0}";
+},
+{
+name = L;
+position = "{400, -100}";
+},
+{
+name = U;
+position = "{948, 1635}";
+}
+);
+layerId = master02;
+paths = (
+{
+closed = 1;
+nodes = (
+"915 797 LINE",
+"965 995 LINE",
+"230 995 LINE",
+"180 797 LINE"
+);
+},
+{
+closed = 1;
+nodes = (
+"1139 1572 OFFCURVE",
+"1040 1604 OFFCURVE",
+"966 1604 CURVE SMOOTH",
+"719 1604 OFFCURVE",
+"535 1455 OFFCURVE",
+"460 1158 CURVE SMOOTH",
+"416 983 OFFCURVE",
+"253 334 OFFCURVE",
+"232 0 CURVE",
+"542 0 LINE",
+"536 28 OFFCURVE",
+"533 66 OFFCURVE",
+"533 110 CURVE SMOOTH",
+"533 213 OFFCURVE",
+"550 356 OFFCURVE",
+"581 489 CURVE SMOOTH",
+"649 784 OFFCURVE",
+"682 926 OFFCURVE",
+"735 1147 CURVE SMOOTH",
+"774 1309 OFFCURVE",
+"836 1373 OFFCURVE",
+"932 1373 CURVE SMOOTH",
+"981 1373 OFFCURVE",
+"1043 1348 OFFCURVE",
+"1076 1309 CURVE",
+"1189 1534 LINE"
+);
+}
+);
+width = 859;
+}
+);
+unicode = 0066;
+},
+{
+glyphname = LtnSmG;
+layers = (
+{
+anchors = (
+{
+name = H;
+position = "{368, -465}";
+},
+{
+name = L;
+position = "{351, -535}";
+},
+{
+name = R;
+position = "{1285, 1000}";
+},
+{
+name = U;
+position = "{730, 1100}";
+}
+);
+layerId = master01;
+paths = (
+{
+closed = 1;
+nodes = (
+"277 352 OFFCURVE",
+"168 266 OFFCURVE",
+"168 176 CURVE SMOOTH",
+"168 96 OFFCURVE",
+"246 33 OFFCURVE",
+"483 -5 CURVE SMOOTH",
+"707 -41 OFFCURVE",
+"781 -94 OFFCURVE",
+"781 -151 CURVE SMOOTH",
+"781 -256 OFFCURVE",
+"580 -353 OFFCURVE",
+"411 -353 CURVE SMOOTH",
+"202 -353 OFFCURVE",
+"104 -271 OFFCURVE",
+"104 -196 CURVE SMOOTH",
+"104 -189 OFFCURVE",
+"104 -183 OFFCURVE",
+"106 -176 CURVE SMOOTH",
+"120 -119 OFFCURVE",
+"170 -55 OFFCURVE",
+"409 20 CURVE",
+"410 48 OFFCURVE",
+"248 73 OFFCURVE",
+"248 73 CURVE",
+"53 12 OFFCURVE",
+"-51 -77 OFFCURVE",
+"-78 -186 CURVE SMOOTH",
+"-82 -201 OFFCURVE",
+"-84 -217 OFFCURVE",
+"-84 -231 CURVE SMOOTH",
+"-84 -396 OFFCURVE",
+"158 -495 OFFCURVE",
+"371 -495 CURVE SMOOTH",
+"632 -495 OFFCURVE",
+"972 -360 OFFCURVE",
+"972 -125 CURVE SMOOTH",
+"972 0 OFFCURVE",
+"849 90 OFFCURVE",
+"619 127 CURVE SMOOTH",
+"403 162 OFFCURVE",
+"341 184 OFFCURVE",
+"341 218 CURVE SMOOTH",
+"341 263 OFFCURVE",
+"447 325 OFFCURVE",
+"522 342 CURVE",
+"360 389 LINE"
+);
+},
+{
+closed = 1;
+nodes = (
+"1143 1012 OFFCURVE",
+"1002 977 OFFCURVE",
+"899 921 CURVE",
+"936 809 LINE",
+"1037 846 OFFCURVE",
+"1121 860 OFFCURVE",
+"1194 862 CURVE",
+"1244 1019 LINE"
+);
+},
+{
+closed = 1;
+nodes = (
+"212 449 OFFCURVE",
+"356 319 OFFCURVE",
+"554 319 CURVE SMOOTH",
+"791 319 OFFCURVE",
+"1030 495 OFFCURVE",
+"1030 729 CURVE SMOOTH",
+"1030 894 OFFCURVE",
+"887 1019 OFFCURVE",
+"689 1019 CURVE SMOOTH",
+"441 1019 OFFCURVE",
+"212 847 OFFCURVE",
+"212 613 CURVE SMOOTH"
+);
+},
+{
+closed = 1;
+nodes = (
+"857 555 OFFCURVE",
+"712 456 OFFCURVE",
+"578 456 CURVE SMOOTH",
+"463 456 OFFCURVE",
+"385 530 OFFCURVE",
+"385 628 CURVE SMOOTH",
+"385 643 OFFCURVE",
+"387 660 OFFCURVE",
+"391 676 CURVE SMOOTH",
+"421 797 OFFCURVE",
+"530 877 OFFCURVE",
+"663 877 CURVE SMOOTH",
+"779 877 OFFCURVE",
+"857 802 OFFCURVE",
+"857 704 CURVE SMOOTH"
+);
+}
+);
+width = 1075;
+},
+{
+anchors = (
+{
+name = H;
+position = "{420, -465}";
+},
+{
+name = L;
+position = "{403, -535}";
+},
+{
+name = R;
+position = "{1360, 1000}";
+},
+{
+name = U;
+position = "{782, 1100}";
+}
+);
+layerId = master02;
+paths = (
+{
+closed = 1;
+nodes = (
+"1027 8 OFFCURVE",
+"938 114 OFFCURVE",
+"702 163 CURVE SMOOTH",
+"473 210 OFFCURVE",
+"402 217 OFFCURVE",
+"402 249 CURVE SMOOTH",
+"402 279 OFFCURVE",
+"493 321 OFFCURVE",
+"584 346 CURVE",
+"359 391 LINE",
+"263 354 OFFCURVE",
+"161 283 OFFCURVE",
+"161 188 CURVE SMOOTH",
+"161 101 OFFCURVE",
+"230 4 OFFCURVE",
+"451 -23 CURVE SMOOTH",
+"669 -50 OFFCURVE",
+"740 -97 OFFCURVE",
+"740 -157 CURVE SMOOTH",
+"740 -245 OFFCURVE",
+"591 -299 OFFCURVE",
+"457 -299 CURVE SMOOTH",
+"286 -299 OFFCURVE",
+"197 -233 OFFCURVE",
+"197 -180 CURVE SMOOTH",
+"197 -74 OFFCURVE",
+"405 -4 OFFCURVE",
+"476 20 CURVE",
+"476 49 OFFCURVE",
+"250 74 OFFCURVE",
+"250 74 CURVE",
+"103 20 OFFCURVE",
+"-91 -65 OFFCURVE",
+"-91 -233 CURVE SMOOTH",
+"-91 -409 OFFCURVE",
+"166 -500 OFFCURVE",
+"392 -500 CURVE SMOOTH",
+"690 -500 OFFCURVE",
+"1027 -380 OFFCURVE",
+"1027 -117 CURVE SMOOTH"
+);
+},
+{
+closed = 1;
+nodes = (
+"1168 1023 OFFCURVE",
+"1027 987 OFFCURVE",
+"924 931 CURVE",
+"946 762 LINE",
+"1048 800 OFFCURVE",
+"1132 815 OFFCURVE",
+"1205 817 CURVE",
+"1268 1030 LINE"
+);
+},
+{
+closed = 1;
+nodes = (
+"198 450 OFFCURVE",
+"353 302 OFFCURVE",
+"572 302 CURVE SMOOTH",
+"824 302 OFFCURVE",
+"1087 444 OFFCURVE",
+"1087 702 CURVE SMOOTH",
+"1087 874 OFFCURVE",
+"955 1030 OFFCURVE",
+"703 1030 CURVE SMOOTH",
+"454 1030 OFFCURVE",
+"198 881 OFFCURVE",
+"198 627 CURVE SMOOTH"
+);
+},
+{
+closed = 1;
+nodes = (
+"761 829 OFFCURVE",
+"842 762 OFFCURVE",
+"842 675 CURVE SMOOTH",
+"842 559 OFFCURVE",
+"733 496 OFFCURVE",
+"620 496 CURVE SMOOTH",
+"524 496 OFFCURVE",
+"450 569 OFFCURVE",
+"450 653 CURVE SMOOTH",
+"450 769 OFFCURVE",
+"560 829 OFFCURVE",
+"663 829 CURVE SMOOTH"
+);
+}
+);
+width = 1120;
+}
+);
+unicode = 0067;
+},
+{
+glyphname = LtnSmH;
+layers = (
+{
+anchors = (
+{
+name = H;
+position = "{190, 0}";
+},
+{
+name = L;
+position = "{550, -100}";
+},
+{
+name = U;
+position = "{933, 1635}";
+}
+);
+layerId = master01;
+paths = (
+{
+closed = 1;
+nodes = (
+"1047 30 OFFCURVE",
+"1043 65 OFFCURVE",
+"1043 102 CURVE SMOOTH",
+"1043 143 OFFCURVE",
+"1048 188 OFFCURVE",
+"1055 238 CURVE SMOOTH",
+"1069 327 OFFCURVE",
+"1170 636 OFFCURVE",
+"1170 745 CURVE SMOOTH",
+"1170 917 OFFCURVE",
+"1095 1020 OFFCURVE",
+"930 1020 CURVE SMOOTH",
+"760 1020 OFFCURVE",
+"591 877 OFFCURVE",
+"475 723 CURVE",
+"571 1105 LINE SMOOTH",
+"609 1259 OFFCURVE",
+"645 1482 OFFCURVE",
+"645 1570 CURVE",
+"455 1570 LINE",
+"455 1456 OFFCURVE",
+"423 1257 OFFCURVE",
+"385 1105 CURVE SMOOTH",
+"110 0 LINE",
+"295 0 LINE",
+"397 408 LINE",
+"492 612 OFFCURVE",
+"717 850 OFFCURVE",
+"840 850 CURVE SMOOTH",
+"937 850 OFFCURVE",
+"970 798 OFFCURVE",
+"970 680 CURVE SMOOTH",
+"970 592 OFFCURVE",
+"886 319 OFFCURVE",
+"872 203 CURVE SMOOTH",
+"867 158 OFFCURVE",
+"864 115 OFFCURVE",
+"864 77 CURVE SMOOTH",
+"864 48 OFFCURVE",
+"866 21 OFFCURVE",
+"870 0 CURVE",
+"1055 0 LINE"
+);
+}
+);
+width = 1185;
+},
+{
+anchors = (
+{
+name = H;
+position = "{220, 0}";
+},
+{
+name = L;
+position = "{635, -100}";
+},
+{
+name = U;
+position = "{968, 1635}";
+}
+);
+layerId = master02;
+paths = (
+{
+closed = 1;
+nodes = (
+"1135 29 OFFCURVE",
+"1129 60 OFFCURVE",
+"1129 90 CURVE SMOOTH",
+"1129 135 OFFCURVE",
+"1134 170 OFFCURVE",
+"1141 215 CURVE SMOOTH",
+"1171 400 OFFCURVE",
+"1253 590 OFFCURVE",
+"1253 725 CURVE SMOOTH",
+"1253 900 OFFCURVE",
+"1183 1030 OFFCURVE",
+"990 1030 CURVE SMOOTH",
+"849 1030 OFFCURVE",
+"694 902 OFFCURVE",
+"566 740 CURVE",
+"656 1095 LINE SMOOTH",
+"696 1255 OFFCURVE",
+"735 1474 OFFCURVE",
+"735 1585 CURVE",
+"455 1585 LINE",
+"455 1439 OFFCURVE",
+"413 1242 OFFCURVE",
+"377 1095 CURVE SMOOTH",
+"105 0 LINE",
+"385 0 LINE",
+"485 400 LINE",
+"580 596 OFFCURVE",
+"745 787 OFFCURVE",
+"850 787 CURVE SMOOTH",
+"937 787 OFFCURVE",
+"953 722 OFFCURVE",
+"953 625 CURVE SMOOTH",
+"953 529 OFFCURVE",
+"889 374 OFFCURVE",
+"863 213 CURVE SMOOTH",
+"857 174 OFFCURVE",
+"853 134 OFFCURVE",
+"853 95 CURVE SMOOTH",
+"853 63 OFFCURVE",
+"854 31 OFFCURVE",
+"860 0 CURVE",
+"1140 0 LINE"
+);
+}
+);
+width = 1273;
+}
+);
+unicode = 0068;
+},
+{
+glyphname = LtnSmI;
+layers = (
+{
+anchors = (
+{
+name = H;
+position = "{235, 0}";
+},
+{
+name = L;
+position = "{250, -100}";
+},
+{
+name = O;
+position = "{455, 0}";
+},
+{
+name = R;
+position = "{745, 1000}";
+},
+{
+name = U;
+position = "{472, 1100}";
+}
+);
+layerId = master01;
+paths = (
+{
+closed = 1;
+nodes = (
+"361 1237 OFFCURVE",
+"404 1186 OFFCURVE",
+"467 1186 CURVE SMOOTH",
+"552 1186 OFFCURVE",
+"624 1259 OFFCURVE",
+"624 1338 CURVE SMOOTH",
+"624 1399 OFFCURVE",
+"578 1450 OFFCURVE",
+"513 1450 CURVE SMOOTH",
+"428 1450 OFFCURVE",
+"361 1375 OFFCURVE",
+"361 1297 CURVE SMOOTH"
+);
+},
+{
+closed = 1;
+nodes = (
+"335 886 OFFCURVE",
+"286 688 OFFCURVE",
+"246 537 CURVE SMOOTH",
+"207 388 LINE SMOOTH",
+"180 284 OFFCURVE",
+"165 172 OFFCURVE",
+"165 87 CURVE SMOOTH",
+"165 53 OFFCURVE",
+"167 24 OFFCURVE",
+"172 0 CURVE",
+"372 0 LINE",
+"365 37 OFFCURVE",
+"360 85 OFFCURVE",
+"360 136 CURVE SMOOTH",
+"360 208 OFFCURVE",
+"368 287 OFFCURVE",
+"386 357 CURVE SMOOTH",
+"431 536 LINE SMOOTH",
+"476 712 OFFCURVE",
+"525 912 OFFCURVE",
+"525 1000 CURVE",
+"335 1000 LINE"
+);
+}
+);
+width = 554;
+},
+{
+anchors = (
+{
+name = H;
+position = "{260, 0}";
+},
+{
+name = L;
+position = "{335, -100}";
+},
+{
+name = O;
+position = "{520, 0}";
+},
+{
+name = R;
+position = "{830, 1000}";
+},
+{
+name = U;
+position = "{535, 1100}";
+}
+);
+layerId = master02;
+paths = (
+{
+closed = 1;
+nodes = (
+"341 877 OFFCURVE",
+"290 698 OFFCURVE",
+"252 547 CURVE SMOOTH",
+"213 390 LINE SMOOTH",
+"193 309 OFFCURVE",
+"170 191 OFFCURVE",
+"170 88 CURVE SMOOTH",
+"170 57 OFFCURVE",
+"172 27 OFFCURVE",
+"177 0 CURVE",
+"472 0 LINE",
+"463 39 OFFCURVE",
+"459 82 OFFCURVE",
+"459 126 CURVE SMOOTH",
+"459 217 OFFCURVE",
+"475 310 OFFCURVE",
+"486 358 CURVE SMOOTH",
+"531 546 LINE SMOOTH",
+"572 719 OFFCURVE",
+"621 875 OFFCURVE",
+"625 1010 CURVE",
+"341 1010 LINE"
+);
+},
+{
+closed = 1;
+nodes = (
+"404 1259 OFFCURVE",
+"462 1197 OFFCURVE",
+"548 1197 CURVE SMOOTH",
+"668 1197 OFFCURVE",
+"759 1292 OFFCURVE",
+"759 1403 CURVE SMOOTH",
+"759 1483 OFFCURVE",
+"701 1544 OFFCURVE",
+"614 1544 CURVE SMOOTH",
+"496 1544 OFFCURVE",
+"404 1451 OFFCURVE",
+"404 1341 CURVE SMOOTH"
+);
+}
+);
+width = 625;
+}
+);
+unicode = 0069;
+},
+{
+glyphname = LtnSmJ;
+layers = (
+{
+anchors = (
+{
+name = L;
+position = "{-60, -500}";
+},
+{
+name = U;
+position = "{510, 1100}";
+}
+);
+layerId = master01;
+paths = (
+{
+closed = 1;
+nodes = (
+"370 856 OFFCURVE",
+"288 374 OFFCURVE",
+"214 77 CURVE SMOOTH",
+"152 -173 OFFCURVE",
+"29 -295 OFFCURVE",
+"-77 -295 CURVE SMOOTH",
+"-133 -295 OFFCURVE",
+"-217 -264 OFFCURVE",
+"-253 -229 CURVE",
+"-328 -397 LINE",
+"-278 -437 OFFCURVE",
+"-170 -465 OFFCURVE",
+"-114 -465 CURVE SMOOTH",
+"103 -465 OFFCURVE",
+"303 -314 OFFCURVE",
+"396 66 CURVE SMOOTH",
+"455 307 OFFCURVE",
+"560 872 OFFCURVE",
+"560 1000 CURVE",
+"370 1000 LINE"
+);
+},
+{
+closed = 1;
+nodes = (
+"397 1237 OFFCURVE",
+"440 1186 OFFCURVE",
+"503 1186 CURVE SMOOTH",
+"588 1186 OFFCURVE",
+"660 1259 OFFCURVE",
+"660 1338 CURVE SMOOTH",
+"660 1399 OFFCURVE",
+"614 1450 OFFCURVE",
+"549 1450 CURVE SMOOTH",
+"464 1450 OFFCURVE",
+"397 1375 OFFCURVE",
+"397 1297 CURVE SMOOTH"
+);
+}
+);
+width = 602;
+},
+{
+anchors = (
+{
+name = L;
+position = "{-45, -500}";
+},
+{
+name = U;
+position = "{565, 1100}";
+}
+);
+layerId = master02;
+paths = (
+{
+closed = 1;
+nodes = (
+"361 866 OFFCURVE",
+"284 395 OFFCURVE",
+"205 87 CURVE SMOOTH",
+"148 -136 OFFCURVE",
+"54 -221 OFFCURVE",
+"-56 -221 CURVE SMOOTH",
+"-137 -221 OFFCURVE",
+"-217 -187 OFFCURVE",
+"-252 -150 CURVE",
+"-355 -385 LINE",
+"-321 -417 OFFCURVE",
+"-172 -465 OFFCURVE",
+"-79 -465 CURVE SMOOTH",
+"170 -465 OFFCURVE",
+"388 -295 OFFCURVE",
+"481 75 CURVE SMOOTH",
+"501 157 OFFCURVE",
+"646 882 OFFCURVE",
+"646 1010 CURVE",
+"361 1010 LINE"
+);
+},
+{
+closed = 1;
+nodes = (
+"395 1259 OFFCURVE",
+"453 1197 OFFCURVE",
+"539 1197 CURVE SMOOTH",
+"659 1197 OFFCURVE",
+"750 1292 OFFCURVE",
+"750 1403 CURVE SMOOTH",
+"750 1483 OFFCURVE",
+"692 1544 OFFCURVE",
+"605 1544 CURVE SMOOTH",
+"487 1544 OFFCURVE",
+"395 1451 OFFCURVE",
+"395 1341 CURVE SMOOTH"
+);
+}
+);
+width = 695;
+}
+);
+unicode = 006A;
+},
+{
+glyphname = LtnSmK;
+layers = (
+{
+anchors = (
+{
+name = H;
+position = "{840, 0}";
+},
+{
+name = L;
+position = "{537, -100}";
+},
+{
+name = R;
+position = "{1225, 1000}";
+},
+{
+name = U;
+position = "{920, 1635}";
+}
+);
+layerId = master01;
+paths = (
+{
+closed = 1;
+nodes = (
+"570 1105 LINE SMOOTH",
+"614 1280 OFFCURVE",
+"645 1482 OFFCURVE",
+"645 1570 CURVE",
+"455 1570 LINE",
+"455 1456 OFFCURVE",
+"424 1259 OFFCURVE",
+"386 1107 CURVE SMOOTH",
+"338 915 OFFCURVE",
+"110 0 OFFCURVE",
+"110 0 CURVE",
+"295 0 LINE"
+);
+},
+{
+closed = 1;
+nodes = (
+"885 863 OFFCURVE",
+"654 700 OFFCURVE",
+"379 539 CURVE",
+"386 540 OFFCURVE",
+"393 540 OFFCURVE",
+"400 540 CURVE SMOOTH",
+"467 540 OFFCURVE",
+"559 514 OFFCURVE",
+"559 514 CURVE",
+"902 702 OFFCURVE",
+"1134 884 OFFCURVE",
+"1134 1000 CURVE",
+"909 1000 LINE"
+);
+},
+{
+closed = 1;
+nodes = (
+"863 238 OFFCURVE",
+"718 600 OFFCURVE",
+"527 600 CURVE",
+"385 529 LINE",
+"540 529 OFFCURVE",
+"667 246 OFFCURVE",
+"775 0 CURVE",
+"1010 0 LINE"
+);
+}
+);
+width = 1059;
+},
+{
+anchors = (
+{
+name = H;
+position = "{880, 0}";
+},
+{
+name = L;
+position = "{600, -100}";
+},
+{
+name = R;
+position = "{1330, 1000}";
+},
+{
+name = U;
+position = "{943, 1635}";
+}
+);
+layerId = master02;
+paths = (
+{
+closed = 1;
+nodes = (
+"920 864 OFFCURVE",
+"682 702 OFFCURVE",
+"483 576 CURVE",
+"676 518 LINE",
+"915 662 OFFCURVE",
+"1289 867 OFFCURVE",
+"1289 1010 CURVE",
+"964 1010 LINE"
+);
+},
+{
+closed = 1;
+nodes = (
+"992 302 OFFCURVE",
+"856 620 OFFCURVE",
+"633 620 CURVE",
+"442 529 LINE",
+"606 529 OFFCURVE",
+"722 252 OFFCURVE",
+"831 0 CURVE",
+"1168 0 LINE"
+);
+},
+{
+closed = 1;
+nodes = (
+"669 1105 LINE SMOOTH",
+"713 1280 OFFCURVE",
+"744 1497 OFFCURVE",
+"744 1585 CURVE",
+"462 1585 LINE",
+"462 1471 OFFCURVE",
+"431 1274 OFFCURVE",
+"393 1122 CURVE SMOOTH",
+"345 928 OFFCURVE",
+"115 0 OFFCURVE",
+"115 0 CURVE",
+"394 0 LINE"
+);
+}
+);
+width = 1209;
+}
+);
+unicode = 006B;
+},
+{
+glyphname = LtnSmL;
+layers = (
+{
+anchors = (
+{
+name = H;
+position = "{230, 0}";
+},
+{
+name = L;
+position = "{255, -100}";
+},
+{
+name = R;
+position = "{740, 1000}";
+},
+{
+name = U;
+position = "{630, 1635}";
+}
+);
+layerId = master01;
+paths = (
+{
+closed = 1;
+nodes = (
+"465 1456 OFFCURVE",
+"434 1259 OFFCURVE",
+"396 1107 CURVE SMOOTH",
+"241 489 LINE SMOOTH",
+"204 343 OFFCURVE",
+"186 220 OFFCURVE",
+"186 104 CURVE SMOOTH",
+"186 69 OFFCURVE",
+"188 34 OFFCURVE",
+"191 0 CURVE",
+"391 0 LINE",
+"386 32 OFFCURVE",
+"384 70 OFFCURVE",
+"384 112 CURVE SMOOTH",
+"384 230 OFFCURVE",
+"402 380 OFFCURVE",
+"436 517 CURVE SMOOTH",
+"580 1105 LINE SMOOTH",
+"623 1280 OFFCURVE",
+"655 1482 OFFCURVE",
+"655 1570 CURVE",
+"465 1570 LINE"
+);
+}
+);
+width = 575;
+},
+{
+anchors = (
+{
+name = H;
+position = "{275, 0}";
+},
+{
+name = L;
+position = "{350, -100}";
+},
+{
+name = R;
+position = "{850, 1000}";
+},
+{
+name = U;
+position = "{630, 1635}";
+}
+);
+layerId = master02;
+paths = (
+{
+closed = 1;
+nodes = (
+"461 1439 OFFCURVE",
+"420 1242 OFFCURVE",
+"383 1095 CURVE SMOOTH",
+"232 488 LINE SMOOTH",
+"208 394 OFFCURVE",
+"175 269 OFFCURVE",
+"175 116 CURVE SMOOTH",
+"175 89 OFFCURVE",
+"178 30 OFFCURVE",
+"180 0 CURVE",
+"470 0 LINE",
+"464 39 OFFCURVE",
+"461 80 OFFCURVE",
+"461 121 CURVE SMOOTH",
+"461 277 OFFCURVE",
+"498 434 OFFCURVE",
+"518 515 CURVE SMOOTH",
+"662 1095 LINE SMOOTH",
+"702 1255 OFFCURVE",
+"741 1474 OFFCURVE",
+"741 1585 CURVE",
+"461 1585 LINE"
+);
+}
+);
+width = 641;
+}
+);
+unicode = 006C;
+},
+{
+glyphname = LtnSmM;
+layers = (
+{
+anchors = (
+{
+name = H;
+position = "{805, 0}";
+},
+{
+name = L;
+position = "{780, -100}";
+},
+{
+name = U;
+position = "{1080, 1100}";
+}
+);
+layerId = master01;
+paths = (
+{
+closed = 1;
+nodes = (
+"1512 30 OFFCURVE",
+"1510 65 OFFCURVE",
+"1510 102 CURVE SMOOTH",
+"1510 143 OFFCURVE",
+"1515 188 OFFCURVE",
+"1522 238 CURVE SMOOTH",
+"1536 327 OFFCURVE",
+"1655 691 OFFCURVE",
+"1655 800 CURVE SMOOTH",
+"1655 930 OFFCURVE",
+"1594 1020 OFFCURVE",
+"1445 1020 CURVE SMOOTH",
+"1292 1020 OFFCURVE",
+"1124 867 OFFCURVE",
+"1026 680 CURVE",
+"1030 704 OFFCURVE",
+"1045 778 OFFCURVE",
+"1045 800 CURVE SMOOTH",
+"1045 932 OFFCURVE",
+"982 1020 OFFCURVE",
+"860 1020 CURVE SMOOTH",
+"717 1020 OFFCURVE",
+"563 879 OFFCURVE",
+"446 680 CURVE",
+"466 753 OFFCURVE",
+"476 880 OFFCURVE",
+"476 961 CURVE SMOOTH",
+"476 976 OFFCURVE",
+"476 989 OFFCURVE",
+"475 1000 CURVE",
+"295 1000 LINE",
+"296 983 OFFCURVE",
+"296 964 OFFCURVE",
+"296 945 CURVE SMOOTH",
+"296 825 OFFCURVE",
+"283 680 OFFCURVE",
+"262 595 CURVE SMOOTH",
+"115 0 LINE",
+"300 0 LINE",
+"389 359 LINE",
+"475 573 OFFCURVE",
+"685 850 OFFCURVE",
+"775 850 CURVE SMOOTH",
+"833 850 OFFCURVE",
+"865 813 OFFCURVE",
+"865 720 CURVE SMOOTH",
+"865 679 OFFCURVE",
+"846 583 OFFCURVE",
+"822 486 CURVE SMOOTH",
+"700 0 LINE",
+"885 0 LINE",
+"974 359 LINE",
+"1032 531 OFFCURVE",
+"1242 850 OFFCURVE",
+"1357 850 CURVE SMOOTH",
+"1425 850 OFFCURVE",
+"1457 813 OFFCURVE",
+"1457 720 CURVE SMOOTH",
+"1457 632 OFFCURVE",
+"1349 319 OFFCURVE",
+"1335 203 CURVE SMOOTH",
+"1330 158 OFFCURVE",
+"1327 115 OFFCURVE",
+"1327 77 CURVE SMOOTH",
+"1327 48 OFFCURVE",
+"1331 21 OFFCURVE",
+"1335 0 CURVE",
+"1520 0 LINE"
+);
+}
+);
+width = 1680;
+},
+{
+anchors = (
+{
+name = H;
+position = "{830, 0}";
+},
+{
+name = L;
+position = "{805, -100}";
+},
+{
+name = U;
+position = "{1105, 1100}";
+}
+);
+layerId = master02;
+paths = (
+{
+closed = 1;
+nodes = (
+"1604 29 OFFCURVE",
+"1602 60 OFFCURVE",
+"1602 90 CURVE SMOOTH",
+"1602 136 OFFCURVE",
+"1606 181 OFFCURVE",
+"1613 228 CURVE SMOOTH",
+"1628 333 OFFCURVE",
+"1747 670 OFFCURVE",
+"1747 822 CURVE SMOOTH",
+"1747 958 OFFCURVE",
+"1681 1030 OFFCURVE",
+"1547 1030 CURVE SMOOTH",
+"1391 1030 OFFCURVE",
+"1227 876 OFFCURVE",
+"1120 705 CURVE",
+"1125 738 OFFCURVE",
+"1127 769 OFFCURVE",
+"1127 798 CURVE SMOOTH",
+"1127 944 OFFCURVE",
+"1067 1030 OFFCURVE",
+"941 1030 CURVE SMOOTH",
+"815 1030 OFFCURVE",
+"664 911 OFFCURVE",
+"537 715 CURVE",
+"553 840 OFFCURVE",
+"556 911 OFFCURVE",
+"556 955 CURVE SMOOTH",
+"556 981 OFFCURVE",
+"554 998 OFFCURVE",
+"551 1010 CURVE",
+"291 1010 LINE",
+"293 999 OFFCURVE",
+"294 975 OFFCURVE",
+"294 942 CURVE SMOOTH",
+"294 855 OFFCURVE",
+"286 710 OFFCURVE",
+"261 609 CURVE SMOOTH",
+"110 0 LINE",
+"390 0 LINE",
+"479 370 LINE",
+"541 552 OFFCURVE",
+"711 787 OFFCURVE",
+"791 787 CURVE SMOOTH",
+"843 787 OFFCURVE",
+"857 741 OFFCURVE",
+"857 688 CURVE SMOOTH",
+"857 625 OFFCURVE",
+"832 535 OFFCURVE",
+"819 483 CURVE SMOOTH",
+"695 0 LINE",
+"975 0 LINE",
+"1067 370 LINE",
+"1139 556 OFFCURVE",
+"1300 787 OFFCURVE",
+"1381 787 CURVE SMOOTH",
+"1434 787 OFFCURVE",
+"1450 762 OFFCURVE",
+"1450 706 CURVE SMOOTH",
+"1450 592 OFFCURVE",
+"1350 331 OFFCURVE",
+"1330 205 CURVE SMOOTH",
+"1324 168 OFFCURVE",
+"1321 132 OFFCURVE",
+"1321 95 CURVE SMOOTH",
+"1321 63 OFFCURVE",
+"1323 31 OFFCURVE",
+"1329 0 CURVE",
+"1609 0 LINE"
+);
+}
+);
+width = 1770;
+}
+);
+unicode = 006D;
+},
+{
+glyphname = LtnSmN;
+layers = (
+{
+anchors = (
+{
+name = H;
+position = "{540, 0}";
+},
+{
+name = L;
+position = "{565, -100}";
+},
+{
+name = U;
+position = "{815, 1100}";
+}
+);
+layerId = master01;
+paths = (
+{
+closed = 1;
+nodes = (
+"1052 30 OFFCURVE",
+"1050 65 OFFCURVE",
+"1050 102 CURVE SMOOTH",
+"1050 143 OFFCURVE",
+"1055 188 OFFCURVE",
+"1062 238 CURVE SMOOTH",
+"1075 327 OFFCURVE",
+"1175 636 OFFCURVE",
+"1175 745 CURVE SMOOTH",
+"1175 917 OFFCURVE",
+"1100 1020 OFFCURVE",
+"935 1020 CURVE SMOOTH",
+"755 1020 OFFCURVE",
+"581 870 OFFCURVE",
+"445 672 CURVE",
+"463 740 OFFCURVE",
+"477 873 OFFCURVE",
+"477 957 CURVE SMOOTH",
+"477 973 OFFCURVE",
+"476 988 OFFCURVE",
+"475 1000 CURVE",
+"295 1000 LINE",
+"295 961 LINE SMOOTH",
+"295 833 OFFCURVE",
+"283 679 OFFCURVE",
+"262 595 CURVE SMOOTH",
+"115 0 LINE",
+"300 0 LINE",
+"392 370 LINE",
+"478 573 OFFCURVE",
+"708 850 OFFCURVE",
+"835 850 CURVE SMOOTH",
+"927 850 OFFCURVE",
+"975 798 OFFCURVE",
+"975 680 CURVE SMOOTH",
+"975 592 OFFCURVE",
+"888 319 OFFCURVE",
+"875 203 CURVE SMOOTH",
+"870 158 OFFCURVE",
+"867 115 OFFCURVE",
+"867 77 CURVE SMOOTH",
+"867 48 OFFCURVE",
+"871 21 OFFCURVE",
+"875 0 CURVE",
+"1060 0 LINE"
+);
+}
+);
+width = 1195;
+},
+{
+anchors = (
+{
+name = H;
+position = "{560, 0}";
+},
+{
+name = L;
+position = "{635, -100}";
+},
+{
+name = U;
+position = "{835, 1100}";
+}
+);
+layerId = master02;
+paths = (
+{
+closed = 1;
+nodes = (
+"1140 29 OFFCURVE",
+"1138 60 OFFCURVE",
+"1138 90 CURVE SMOOTH",
+"1138 136 OFFCURVE",
+"1141 182 OFFCURVE",
+"1149 228 CURVE SMOOTH",
+"1173 366 OFFCURVE",
+"1258 591 OFFCURVE",
+"1258 725 CURVE SMOOTH",
+"1258 890 OFFCURVE",
+"1188 1030 OFFCURVE",
+"995 1030 CURVE SMOOTH",
+"844 1030 OFFCURVE",
+"685 903 OFFCURVE",
+"546 715 CURVE",
+"555 771 OFFCURVE",
+"569 875 OFFCURVE",
+"569 933 CURVE SMOOTH",
+"569 962 OFFCURVE",
+"568 988 OFFCURVE",
+"565 1010 CURVE",
+"290 1010 LINE",
+"290 962 LINE SMOOTH",
+"290 859 OFFCURVE",
+"280 685 OFFCURVE",
+"261 609 CURVE SMOOTH",
+"110 0 LINE",
+"388 0 LINE",
+"490 405 LINE",
+"569 569 OFFCURVE",
+"740 787 OFFCURVE",
+"835 787 CURVE SMOOTH",
+"922 787 OFFCURVE",
+"958 732 OFFCURVE",
+"958 625 CURVE SMOOTH",
+"958 527 OFFCURVE",
+"891 369 OFFCURVE",
+"866 205 CURVE SMOOTH",
+"860 168 OFFCURVE",
+"857 132 OFFCURVE",
+"857 95 CURVE SMOOTH",
+"857 63 OFFCURVE",
+"859 31 OFFCURVE",
+"865 0 CURVE",
+"1145 0 LINE"
+);
+}
+);
+width = 1281;
+}
+);
+unicode = 006E;
+},
+{
+glyphname = LtnSmO;
+layers = (
+{
+anchors = (
+{
+name = H;
+position = "{510, 0}";
+},
+{
+name = L;
+position = "{505, -100}";
+},
+{
+name = O;
+position = "{800, 0}";
+},
+{
+name = R;
+position = "{1330, 1000}";
+},
+{
+name = U;
+position = "{785, 1100}";
+}
+);
+layerId = master01;
+paths = (
+{
+closed = 1;
+nodes = (
+"142 114 OFFCURVE",
+"306 -25 OFFCURVE",
+"530 -25 CURVE SMOOTH",
+"896 -25 OFFCURVE",
+"1138 314 OFFCURVE",
+"1138 648 CURVE SMOOTH",
+"1138 879 OFFCURVE",
+"985 1020 OFFCURVE",
+"761 1020 CURVE SMOOTH",
+"387 1020 OFFCURVE",
+"142 677 OFFCURVE",
+"142 344 CURVE SMOOTH"
+);
+},
+{
+closed = 1;
+nodes = (
+"859 862 OFFCURVE",
+"947 767 OFFCURVE",
+"947 611 CURVE SMOOTH",
+"947 391 OFFCURVE",
+"795 132 OFFCURVE",
+"559 132 CURVE SMOOTH",
+"421 132 OFFCURVE",
+"333 226 OFFCURVE",
+"333 380 CURVE SMOOTH",
+"333 599 OFFCURVE",
+"486 862 OFFCURVE",
+"721 862 CURVE SMOOTH"
+);
+}
+);
+width = 1133;
+},
+{
+anchors = (
+{
+name = H;
+position = "{518, 0}";
+},
+{
+name = L;
+position = "{530, -100}";
+},
+{
+name = O;
+position = "{730, 0}";
+},
+{
+name = R;
+position = "{1350, 1000}";
+},
+{
+name = U;
+position = "{795, 1100}";
+}
+);
+layerId = master02;
+paths = (
+{
+closed = 1;
+nodes = (
+"140 128 OFFCURVE",
+"289 -25 OFFCURVE",
+"520 -25 CURVE SMOOTH",
+"906 -25 OFFCURVE",
+"1144 295 OFFCURVE",
+"1144 641 CURVE SMOOTH",
+"1144 880 OFFCURVE",
+"1003 1030 OFFCURVE",
+"773 1030 CURVE SMOOTH",
+"390 1030 OFFCURVE",
+"140 718 OFFCURVE",
+"140 370 CURVE SMOOTH"
+);
+},
+{
+closed = 1;
+nodes = (
+"826 807 OFFCURVE",
+"879 737 OFFCURVE",
+"879 612 CURVE SMOOTH",
+"879 413 OFFCURVE",
+"764 198 OFFCURVE",
+"566 198 CURVE SMOOTH",
+"464 198 OFFCURVE",
+"404 264 OFFCURVE",
+"404 385 CURVE SMOOTH",
+"404 570 OFFCURVE",
+"512 807 OFFCURVE",
+"718 807 CURVE SMOOTH"
+);
+}
+);
+width = 1139;
+}
+);
+unicode = 006F;
+},
+{
+glyphname = LtnSmP;
+layers = (
+{
+anchors = (
+{
+name = H;
+position = "{105, -435}";
+},
+{
+name = L;
+position = "{405, -500}";
+},
+{
+name = R;
+position = "{1360, 1000}";
+},
+{
+name = U;
+position = "{805, 1100}";
+}
+);
+layerId = master01;
+paths = (
+{
+closed = 1;
+nodes = (
+"215 -388 OFFCURVE",
+"229 -282 OFFCURVE",
+"255 -175 CURVE SMOOTH",
+"320 85 LINE",
+"399 20 OFFCURVE",
+"468 -25 OFFCURVE",
+"575 -25 CURVE SMOOTH",
+"685 -25 OFFCURVE",
+"797 9 OFFCURVE",
+"895 85 CURVE SMOOTH",
+"1063 215 OFFCURVE",
+"1185 438 OFFCURVE",
+"1185 680 CURVE SMOOTH",
+"1185 878 OFFCURVE",
+"1101 1020 OFFCURVE",
+"920 1020 CURVE SMOOTH",
+"757 1020 OFFCURVE",
+"559 842 OFFCURVE",
+"452 680 CURVE",
+"468 760 OFFCURVE",
+"477 860 OFFCURVE",
+"477 940 CURVE SMOOTH",
+"477 962 OFFCURVE",
+"477 982 OFFCURVE",
+"475 1000 CURVE",
+"295 1000 LINE",
+"295 971 LINE SMOOTH",
+"295 819 OFFCURVE",
+"273 625 OFFCURVE",
+"235 475 CURVE SMOOTH",
+"70 -175 LINE SMOOTH",
+"43 -281 OFFCURVE",
+"20 -398 OFFCURVE",
+"20 -480 CURVE",
+"215 -480 LINE"
+);
+},
+{
+closed = 1;
+nodes = (
+"544 656 OFFCURVE",
+"732 850 OFFCURVE",
+"840 850 CURVE SMOOTH",
+"939 850 OFFCURVE",
+"990 763 OFFCURVE",
+"990 630 CURVE SMOOTH",
+"990 491 OFFCURVE",
+"926 322 OFFCURVE",
+"815 220 CURVE SMOOTH",
+"759 168 OFFCURVE",
+"693 135 OFFCURVE",
+"615 135 CURVE SMOOTH",
+"523 135 OFFCURVE",
+"479 161 OFFCURVE",
+"365 255 CURVE",
+"407 432 LINE"
+);
+}
+);
+width = 1185;
+},
+{
+anchors = (
+{
+name = H;
+position = "{121, -435}";
+},
+{
+name = L;
+position = "{555, -500}";
+},
+{
+name = R;
+position = "{1425, 1000}";
+},
+{
+name = U;
+position = "{855, 1100}";
+}
+);
+layerId = master02;
+paths = (
+{
+closed = 1;
+nodes = (
+"605 650 OFFCURVE",
+"765 794 OFFCURVE",
+"854 794 CURVE SMOOTH",
+"932 794 OFFCURVE",
+"975 719 OFFCURVE",
+"975 609 CURVE SMOOTH",
+"975 478 OFFCURVE",
+"924 334 OFFCURVE",
+"823 258 CURVE SMOOTH",
+"778 224 OFFCURVE",
+"723 204 OFFCURVE",
+"658 204 CURVE SMOOTH",
+"589 204 OFFCURVE",
+"517 243 OFFCURVE",
+"473 297 CURVE",
+"523 500 LINE"
+);
+},
+{
+closed = 1;
+nodes = (
+"300 962 LINE SMOOTH",
+"300 859 OFFCURVE",
+"290 685 OFFCURVE",
+"271 609 CURVE SMOOTH",
+"75 -180 LINE SMOOTH",
+"49 -286 OFFCURVE",
+"25 -403 OFFCURVE",
+"25 -485 CURVE",
+"314 -485 LINE",
+"314 -393 OFFCURVE",
+"328 -287 OFFCURVE",
+"362 -149 CURVE SMOOTH",
+"415 64 LINE",
+"495 10 OFFCURVE",
+"562 -25 OFFCURVE",
+"667 -25 CURVE SMOOTH",
+"750 -25 OFFCURVE",
+"833 -2 OFFCURVE",
+"909 40 CURVE SMOOTH",
+"1112 152 OFFCURVE",
+"1267 398 OFFCURVE",
+"1267 685 CURVE SMOOTH",
+"1267 884 OFFCURVE",
+"1176 1030 OFFCURVE",
+"1004 1030 CURVE SMOOTH",
+"849 1030 OFFCURVE",
+"677 901 OFFCURVE",
+"565 752 CURVE",
+"574 808 OFFCURVE",
+"579 875 OFFCURVE",
+"579 933 CURVE SMOOTH",
+"579 962 OFFCURVE",
+"578 988 OFFCURVE",
+"575 1010 CURVE",
+"300 1010 LINE"
+);
+}
+);
+width = 1272;
+}
+);
+unicode = 0070;
+},
+{
+glyphname = LtnSmQ;
+layers = (
+{
+anchors = (
+{
+name = L;
+position = "{370, -500}";
+},
+{
+name = R;
+position = "{1320, 1000}";
+},
+{
+name = U;
+position = "{770, 1100}";
+}
+);
+layerId = master01;
+paths = (
+{
+closed = 1;
+nodes = (
+"843 -391 OFFCURVE",
+"858 -294 OFFCURVE",
+"885 -185 CURVE SMOOTH",
+"1165 945 LINE",
+"1066 980 OFFCURVE",
+"946 1020 OFFCURVE",
+"825 1020 CURVE SMOOTH",
+"675 1020 OFFCURVE",
+"550 977 OFFCURVE",
+"440 890 CURVE SMOOTH",
+"260 747 OFFCURVE",
+"135 505 OFFCURVE",
+"135 285 CURVE SMOOTH",
+"135 73 OFFCURVE",
+"261 -25 OFFCURVE",
+"380 -25 CURVE SMOOTH",
+"524 -25 OFFCURVE",
+"751 172 OFFCURVE",
+"825 300 CURVE",
+"693 -180 LINE SMOOTH",
+"662 -294 OFFCURVE",
+"648 -414 OFFCURVE",
+"648 -480 CURVE",
+"843 -480 LINE"
+);
+},
+{
+closed = 1;
+nodes = (
+"807 413 OFFCURVE",
+"550 140 OFFCURVE",
+"455 140 CURVE SMOOTH",
+"376 140 OFFCURVE",
+"330 199 OFFCURVE",
+"330 330 CURVE SMOOTH",
+"330 481 OFFCURVE",
+"400 658 OFFCURVE",
+"515 760 CURVE SMOOTH",
+"580 817 OFFCURVE",
+"658 855 OFFCURVE",
+"750 855 CURVE SMOOTH",
+"811 855 OFFCURVE",
+"893 840 OFFCURVE",
+"947 817 CURVE",
+"885 565 LINE"
+);
+}
+);
+width = 1115;
+},
+{
+anchors = (
+{
+name = L;
+position = "{415, -500}";
+},
+{
+name = R;
+position = "{1400, 1000}";
+},
+{
+name = U;
+position = "{815, 1100}";
+}
+);
+layerId = master02;
+paths = (
+{
+closed = 1;
+nodes = (
+"832 467 OFFCURVE",
+"615 211 OFFCURVE",
+"520 211 CURVE SMOOTH",
+"457 211 OFFCURVE",
+"429 263 OFFCURVE",
+"429 362 CURVE SMOOTH",
+"429 484 OFFCURVE",
+"469 616 OFFCURVE",
+"551 702 CURVE SMOOTH",
+"605 758 OFFCURVE",
+"676 794 OFFCURVE",
+"765 794 CURVE SMOOTH",
+"806 794 OFFCURVE",
+"897 781 OFFCURVE",
+"933 762 CURVE",
+"889 583 LINE"
+);
+},
+{
+closed = 1;
+nodes = (
+"936 -396 OFFCURVE",
+"951 -299 OFFCURVE",
+"978 -190 CURVE SMOOTH",
+"1261 955 LINE",
+"1134 991 OFFCURVE",
+"972 1030 OFFCURVE",
+"819 1030 CURVE SMOOTH",
+"678 1030 OFFCURVE",
+"516 969 OFFCURVE",
+"403 874 CURVE SMOOTH",
+"244 739 OFFCURVE",
+"145 535 OFFCURVE",
+"145 331 CURVE SMOOTH",
+"145 105 OFFCURVE",
+"275 -25 OFFCURVE",
+"391 -25 CURVE SMOOTH",
+"529 -25 OFFCURVE",
+"729 134 OFFCURVE",
+"838 300 CURVE",
+"706 -185 LINE SMOOTH",
+"675 -299 OFFCURVE",
+"661 -419 OFFCURVE",
+"661 -485 CURVE",
+"936 -485 LINE"
+);
+}
+);
+width = 1206;
+}
+);
+unicode = 0071;
+},
+{
+glyphname = LtnSmR;
+layers = (
+{
+anchors = (
+{
+name = H;
+position = "{210, 0}";
+},
+{
+name = L;
+position = "{220, -100}";
+},
+{
+name = U;
+position = "{670, 1100}";
+}
+);
+layerId = master01;
+paths = (
+{
+closed = 1;
+nodes = (
+"402 415 LINE",
+"502 602 OFFCURVE",
+"703 850 OFFCURVE",
+"785 850 CURVE SMOOTH",
+"831 850 OFFCURVE",
+"855 801 OFFCURVE",
+"855 740 CURVE SMOOTH",
+"855 715 OFFCURVE",
+"852 689 OFFCURVE",
+"845 660 CURVE",
+"1010 690 LINE",
+"1022 737 OFFCURVE",
+"1030 783 OFFCURVE",
+"1030 825 CURVE SMOOTH",
+"1030 935 OFFCURVE",
+"986 1020 OFFCURVE",
+"865 1020 CURVE SMOOTH",
+"735 1020 OFFCURVE",
+"575 867 OFFCURVE",
+"445 675 CURVE",
+"467 773 OFFCURVE",
+"475 929 OFFCURVE",
+"475 1000 CURVE",
+"295 1000 LINE",
+"295 961 LINE SMOOTH",
+"295 833 OFFCURVE",
+"283 679 OFFCURVE",
+"262 595 CURVE SMOOTH",
+"115 0 LINE",
+"300 0 LINE"
+);
+}
+);
+width = 910;
+},
+{
+anchors = (
+{
+name = H;
+position = "{225, 0}";
+},
+{
+name = L;
+position = "{255, -100}";
+},
+{
+name = U;
+position = "{765, 1100}";
+}
+);
+layerId = master02;
+paths = (
+{
+closed = 1;
+nodes = (
+"494 420 LINE",
+"555 557 OFFCURVE",
+"727 773 OFFCURVE",
+"810 773 CURVE SMOOTH",
+"864 773 OFFCURVE",
+"887 737 OFFCURVE",
+"887 678 CURVE SMOOTH",
+"887 662 OFFCURVE",
+"885 644 OFFCURVE",
+"882 624 CURVE",
+"1114 658 LINE",
+"1123 706 OFFCURVE",
+"1136 752 OFFCURVE",
+"1136 794 CURVE SMOOTH",
+"1136 931 OFFCURVE",
+"1084 1030 OFFCURVE",
+"963 1030 CURVE SMOOTH",
+"828 1030 OFFCURVE",
+"670 883 OFFCURVE",
+"544 716 CURVE",
+"555 787 OFFCURVE",
+"570 960 OFFCURVE",
+"570 1010 CURVE",
+"295 1010 LINE",
+"295 962 LINE SMOOTH",
+"295 894 OFFCURVE",
+"281 689 OFFCURVE",
+"261 609 CURVE SMOOTH",
+"110 0 LINE",
+"390 0 LINE"
+);
+}
+);
+width = 1021;
+}
+);
+unicode = 0072;
+},
+{
+glyphname = LtnSmS;
+layers = (
+{
+anchors = (
+{
+name = H;
+position = "{435, 0}";
+},
+{
+name = L;
+position = "{440, -100}";
+},
+{
+name = U;
+position = "{710, 1100}";
+}
+);
+layerId = master01;
+paths = (
+{
+closed = 1;
+nodes = (
+"930 978 OFFCURVE",
+"815 1020 OFFCURVE",
+"640 1020 CURVE SMOOTH",
+"384 1020 OFFCURVE",
+"230 881 OFFCURVE",
+"230 716 CURVE SMOOTH",
+"230 614 OFFCURVE",
+"320 533 OFFCURVE",
+"466 461 CURVE SMOOTH",
+"638 376 OFFCURVE",
+"700 333 OFFCURVE",
+"700 265 CURVE SMOOTH",
+"700 188 OFFCURVE",
+"621 132 OFFCURVE",
+"532 132 CURVE SMOOTH",
+"376 132 OFFCURVE",
+"244 216 OFFCURVE",
+"159 325 CURVE",
+"71 158 LINE",
+"160 60 OFFCURVE",
+"296 -25 OFFCURVE",
+"488 -25 CURVE SMOOTH",
+"713 -25 OFFCURVE",
+"891 106 OFFCURVE",
+"891 306 CURVE SMOOTH",
+"891 432 OFFCURVE",
+"774 515 OFFCURVE",
+"626 593 CURVE SMOOTH",
+"476 672 OFFCURVE",
+"418 695 OFFCURVE",
+"418 753 CURVE SMOOTH",
+"418 822 OFFCURVE",
+"494 862 OFFCURVE",
+"619 862 CURVE SMOOTH",
+"743 862 OFFCURVE",
+"854 808 OFFCURVE",
+"911 769 CURVE",
+"990 941 LINE"
+);
+}
+);
+width = 945;
+},
+{
+anchors = (
+{
+name = H;
+position = "{455, 0}";
+},
+{
+name = L;
+position = "{530, -100}";
+},
+{
+name = U;
+position = "{745, 1100}";
+}
+);
+layerId = master02;
+paths = (
+{
+closed = 1;
+nodes = (
+"990 990 OFFCURVE",
+"854 1030 OFFCURVE",
+"691 1030 CURVE SMOOTH",
+"457 1030 OFFCURVE",
+"217 936 OFFCURVE",
+"217 722 CURVE SMOOTH",
+"217 593 OFFCURVE",
+"306 517 OFFCURVE",
+"501 430 CURVE SMOOTH",
+"648 364 OFFCURVE",
+"710 345 OFFCURVE",
+"710 288 CURVE SMOOTH",
+"710 224 OFFCURVE",
+"649 197 OFFCURVE",
+"549 197 CURVE SMOOTH",
+"392 197 OFFCURVE",
+"276 280 OFFCURVE",
+"197 371 CURVE",
+"72 129 LINE",
+"143 68 OFFCURVE",
+"319 -25 OFFCURVE",
+"498 -25 CURVE SMOOTH",
+"767 -25 OFFCURVE",
+"979 104 OFFCURVE",
+"979 315 CURVE SMOOTH",
+"979 440 OFFCURVE",
+"884 513 OFFCURVE",
+"695 600 CURVE SMOOTH",
+"581 652 OFFCURVE",
+"477 688 OFFCURVE",
+"477 743 CURVE SMOOTH",
+"477 785 OFFCURVE",
+"548 808 OFFCURVE",
+"646 808 CURVE SMOOTH",
+"785 808 OFFCURVE",
+"895 764 OFFCURVE",
+"961 716 CURVE",
+"1058 952 LINE"
+);
+}
+);
+width = 1015;
+}
+);
+unicode = 0073;
+},
+{
+glyphname = LtnSmT;
+layers = (
+{
+anchors = (
+{
+name = H;
+position = "{455, 0}";
+},
+{
+name = L;
+position = "{390, -100}";
+},
+{
+name = R;
+position = "{1025, 1000}";
+},
+{
+name = U;
+position = "{605, 1360}";
+}
+);
+layerId = master01;
+paths = (
+{
+closed = 1;
+nodes = (
+"665 169 OFFCURVE",
+"593 134 OFFCURVE",
+"527 134 CURVE SMOOTH",
+"448 134 OFFCURVE",
+"425 188 OFFCURVE",
+"425 247 CURVE SMOOTH",
+"425 274 OFFCURVE",
+"429 301 OFFCURVE",
+"434 326 CURVE SMOOTH",
+"470 519 OFFCURVE",
+"564 843 OFFCURVE",
+"677 1294 CURVE",
+"492 1294 LINE",
+"377 841 OFFCURVE",
+"263 429 OFFCURVE",
+"243 301 CURVE SMOOTH",
+"238 269 OFFCURVE",
+"236 240 OFFCURVE",
+"236 213 CURVE SMOOTH",
+"236 41 OFFCURVE",
+"330 -25 OFFCURVE",
+"465 -25 CURVE SMOOTH",
+"535 -25 OFFCURVE",
+"634 -6 OFFCURVE",
+"740 52 CURVE",
+"752 211 LINE"
+);
+},
+{
+closed = 1;
+nodes = (
+"887 833 LINE",
+"923 975 LINE",
+"213 975 LINE",
+"177 833 LINE"
+);
+}
+);
+width = 815;
+},
+{
+anchors = (
+{
+name = H;
+position = "{470, 0}";
+},
+{
+name = L;
+position = "{520, -100}";
+},
+{
+name = R;
+position = "{1075, 1000}";
+},
+{
+name = U;
+position = "{640, 1360}";
+}
+);
+layerId = master02;
+paths = (
+{
+closed = 1;
+nodes = (
+"740 230 OFFCURVE",
+"670 204 OFFCURVE",
+"619 204 CURVE SMOOTH",
+"556 204 OFFCURVE",
+"536 250 OFFCURVE",
+"536 318 CURVE SMOOTH",
+"536 347 OFFCURVE",
+"539 380 OFFCURVE",
+"545 415 CURVE SMOOTH",
+"567 549 OFFCURVE",
+"700 1039 OFFCURVE",
+"767 1307 CURVE",
+"487 1307 LINE",
+"419 1038 OFFCURVE",
+"265 471 OFFCURVE",
+"243 328 CURVE SMOOTH",
+"239 302 OFFCURVE",
+"237 277 OFFCURVE",
+"237 253 CURVE SMOOTH",
+"237 73 OFFCURVE",
+"351 -25 OFFCURVE",
+"518 -25 CURVE SMOOTH",
+"590 -25 OFFCURVE",
+"703 -4 OFFCURVE",
+"812 55 CURVE",
+"831 278 LINE"
+);
+},
+{
+closed = 1;
+nodes = (
+"995 995 LINE",
+"220 995 LINE",
+"170 797 LINE",
+"945 797 LINE"
+);
+}
+);
+width = 900;
+}
+);
+unicode = 0074;
+},
+{
+glyphname = LtnSmU;
+layers = (
+{
+anchors = (
+{
+name = H;
+position = "{465, 0}";
+},
+{
+name = L;
+position = "{504, -100}";
+},
+{
+name = O;
+position = "{640, 0}";
+},
+{
+name = R;
+position = "{1375, 1000}";
+},
+{
+name = U;
+position = "{804, 1100}";
+}
+);
+layerId = master01;
+paths = (
+{
+closed = 1;
+nodes = (
+"1036 29 OFFCURVE",
+"1035 62 OFFCURVE",
+"1035 100 CURVE SMOOTH",
+"1035 206 OFFCURVE",
+"1054 341 OFFCURVE",
+"1080 455 CURVE SMOOTH",
+"1135 689 OFFCURVE",
+"1197 895 OFFCURVE",
+"1205 1000 CURVE",
+"1010 1000 LINE",
+"1003 882 OFFCURVE",
+"971 769 OFFCURVE",
+"920 565 CURVE",
+"827 376 OFFCURVE",
+"573 135 OFFCURVE",
+"475 135 CURVE SMOOTH",
+"409 135 OFFCURVE",
+"365 181 OFFCURVE",
+"365 280 CURVE SMOOTH",
+"365 347 OFFCURVE",
+"407 500 OFFCURVE",
+"459 702 CURVE SMOOTH",
+"494 837 OFFCURVE",
+"515 925 OFFCURVE",
+"520 1000 CURVE",
+"325 1000 LINE",
+"313 882 OFFCURVE",
+"295 809 OFFCURVE",
+"265 685 CURVE SMOOTH",
+"195 395 LINE SMOOTH",
+"179 330 OFFCURVE",
+"170 275 OFFCURVE",
+"170 225 CURVE SMOOTH",
+"170 60 OFFCURVE",
+"257 -25 OFFCURVE",
+"410 -25 CURVE SMOOTH",
+"551 -25 OFFCURVE",
+"745 118 OFFCURVE",
+"880 305 CURVE",
+"861 196 OFFCURVE",
+"860 98 OFFCURVE",
+"860 0 CURVE",
+"1040 0 LINE"
+);
+}
+);
+width = 1175;
+},
+{
+anchors = (
+{
+name = H;
+position = "{455, 0}";
+},
+{
+name = L;
+position = "{530, -100}";
+},
+{
+name = O;
+position = "{630, 0}";
+},
+{
+name = R;
+position = "{1448, 1000}";
+},
+{
+name = U;
+position = "{830, 1100}";
+}
+);
+layerId = master02;
+paths = (
+{
+closed = 1;
+nodes = (
+"1113 29 OFFCURVE",
+"1112 62 OFFCURVE",
+"1112 100 CURVE SMOOTH",
+"1112 206 OFFCURVE",
+"1131 341 OFFCURVE",
+"1157 455 CURVE SMOOTH",
+"1212 689 OFFCURVE",
+"1274 905 OFFCURVE",
+"1282 1010 CURVE",
+"993 1010 LINE",
+"981 889 OFFCURVE",
+"992 918 OFFCURVE",
+"910 595 CURVE",
+"835 427 OFFCURVE",
+"618 205 OFFCURVE",
+"537 205 CURVE SMOOTH",
+"491 205 OFFCURVE",
+"462 236 OFFCURVE",
+"462 308 CURVE SMOOTH",
+"462 405 OFFCURVE",
+"536 663 OFFCURVE",
+"549 712 CURVE SMOOTH",
+"583 847 OFFCURVE",
+"605 935 OFFCURVE",
+"610 1010 CURVE",
+"323 1010 LINE",
+"312 891 OFFCURVE",
+"296 819 OFFCURVE",
+"264 693 CURVE SMOOTH",
+"191 401 LINE SMOOTH",
+"173 330 OFFCURVE",
+"165 267 OFFCURVE",
+"165 214 CURVE SMOOTH",
+"165 55 OFFCURVE",
+"252 -25 OFFCURVE",
+"381 -25 CURVE SMOOTH",
+"545 -25 OFFCURVE",
+"769 160 OFFCURVE",
+"860 295 CURVE",
+"850 227 OFFCURVE",
+"842 53 OFFCURVE",
+"842 0 CURVE",
+"1117 0 LINE"
+);
+}
+);
+width = 1257;
+}
+);
+unicode = 0075;
+},
+{
+glyphname = LtnSmV;
+layers = (
+{
+anchors = (
+{
+name = H;
+position = "{359, 0}";
+},
+{
+name = L;
+position = "{350, -100}";
+},
+{
+name = O;
+position = "{565, 0}";
+},
+{
+name = U;
+position = "{650, 1100}";
+}
+);
+layerId = master01;
+paths = (
+{
+closed = 1;
+nodes = (
+"232 825 OFFCURVE",
+"256 602 OFFCURVE",
+"256 354 CURVE SMOOTH",
+"256 241 OFFCURVE",
+"251 122 OFFCURVE",
+"241 0 CURVE",
+"441 0 LINE",
+"744 336 OFFCURVE",
+"1056 765 OFFCURVE",
+"1056 1000 CURVE",
+"856 1000 LINE",
+"856 769 OFFCURVE",
+"606 394 OFFCURVE",
+"404 176 CURVE",
+"421 277 OFFCURVE",
+"429 402 OFFCURVE",
+"429 526 CURVE SMOOTH",
+"429 707 OFFCURVE",
+"412 887 OFFCURVE",
+"380 1000 CURVE",
+"180 1000 LINE"
+);
+}
+);
+width = 941;
+},
+{
+anchors = (
+{
+name = H;
+position = "{505, 0}";
+},
+{
+name = L;
+position = "{410, -100}";
+},
+{
+name = O;
+position = "{690, 0}";
+},
+{
+name = U;
+position = "{695, 1100}";
+}
+);
+layerId = master02;
+paths = (
+{
+closed = 1;
+nodes = (
+"881 788 OFFCURVE",
+"719 534 OFFCURVE",
+"507 270 CURVE",
+"516 353 OFFCURVE",
+"521 457 OFFCURVE",
+"521 564 CURVE SMOOTH",
+"521 730 OFFCURVE",
+"507 903 OFFCURVE",
+"472 1010 CURVE",
+"195 1010 LINE",
+"259 758 OFFCURVE",
+"282 509 OFFCURVE",
+"282 262 CURVE SMOOTH",
+"282 174 OFFCURVE",
+"279 87 OFFCURVE",
+"274 0 CURVE",
+"535 0 LINE",
+"823 314 OFFCURVE",
+"1159 766 OFFCURVE",
+"1159 1010 CURVE",
+"881 1010 LINE"
+);
+}
+);
+width = 1049;
+}
+);
+unicode = 0076;
+},
+{
+glyphname = LtnSmW;
+layers = (
+{
+anchors = (
+{
+name = L;
+position = "{690, -100}";
+},
+{
+name = U;
+position = "{990, 1100}";
+}
+);
+layerId = master01;
+paths = (
+{
+closed = 1;
+nodes = (
+"743 739 OFFCURVE",
+"588 466 OFFCURVE",
+"388 181 CURVE",
+"417 339 OFFCURVE",
+"430 500 OFFCURVE",
+"430 644 CURVE SMOOTH",
+"430 784 OFFCURVE",
+"418 908 OFFCURVE",
+"395 1000 CURVE",
+"195 1000 LINE",
+"234 873 OFFCURVE",
+"256 688 OFFCURVE",
+"256 472 CURVE SMOOTH",
+"256 326 OFFCURVE",
+"246 166 OFFCURVE",
+"225 0 CURVE",
+"425 0 LINE",
+"632 298 OFFCURVE",
+"825 583 OFFCURVE",
+"896 765 CURVE",
+"920 478 OFFCURVE",
+"912 233 OFFCURVE",
+"915 0 CURVE",
+"1115 0 LINE",
+"1362 330 OFFCURVE",
+"1642 777 OFFCURVE",
+"1645 1000 CURVE",
+"1445 1000 LINE",
+"1445 990 LINE",
+"1445 797 OFFCURVE",
+"1242 417 OFFCURVE",
+"1063 181 CURVE",
+"1064 221 OFFCURVE",
+"1064 260 OFFCURVE",
+"1064 298 CURVE SMOOTH",
+"1064 577 OFFCURVE",
+"1046 811 OFFCURVE",
+"1020 1000 CURVE",
+"858 1000 LINE"
+);
+}
+);
+width = 1555;
+},
+{
+anchors = (
+{
+name = L;
+position = "{700, -100}";
+},
+{
+name = U;
+position = "{1000, 1100}";
+}
+);
+layerId = master02;
+paths = (
+{
+closed = 1;
+nodes = (
+"758 793 OFFCURVE",
+"592 496 OFFCURVE",
+"438 242 CURVE",
+"459 351 OFFCURVE",
+"476 509 OFFCURVE",
+"476 669 CURVE SMOOTH",
+"476 788 OFFCURVE",
+"468 908 OFFCURVE",
+"448 1010 CURVE",
+"190 1010 LINE",
+"230 831 OFFCURVE",
+"236 678 OFFCURVE",
+"236 494 CURVE SMOOTH",
+"236 364 OFFCURVE",
+"228 211 OFFCURVE",
+"209 0 CURVE",
+"499 0 LINE",
+"624 181 OFFCURVE",
+"838 560 OFFCURVE",
+"901 690 CURVE",
+"919 477 OFFCURVE",
+"919 212 OFFCURVE",
+"919 0 CURVE",
+"1179 0 LINE",
+"1430 328 OFFCURVE",
+"1710 775 OFFCURVE",
+"1710 1010 CURVE",
+"1432 1010 LINE",
+"1432 995 LINE SMOOTH",
+"1432 797 OFFCURVE",
+"1245 435 OFFCURVE",
+"1106 242 CURVE",
+"1108 298 OFFCURVE",
+"1108 355 OFFCURVE",
+"1108 411 CURVE SMOOTH",
+"1108 637 OFFCURVE",
+"1096 860 OFFCURVE",
+"1070 1010 CURVE",
+"850 1010 LINE"
+);
+}
+);
+width = 1620;
+}
+);
+unicode = 0077;
+},
+{
+glyphname = LtnSmX;
+layers = (
+{
+anchors = (
+{
+name = H;
+position = "{840, 0}";
+},
+{
+name = L;
+position = "{457, -100}";
+},
+{
+name = U;
+position = "{657, 1100}";
+}
+);
+layerId = master01;
+paths = (
+{
+closed = 1;
+nodes = (
+"765 133 OFFCURVE",
+"558 867 OFFCURVE",
+"439 1000 CURVE",
+"181 1000 LINE",
+"410 832 OFFCURVE",
+"578 141 OFFCURVE",
+"698 0 CURVE",
+"945 0 LINE"
+);
+},
+{
+closed = 1;
+nodes = (
+"286 463 OFFCURVE",
+"57 230 OFFCURVE",
+"30 0 CURVE",
+"230 0 LINE",
+"231 156 OFFCURVE",
+"375 380 OFFCURVE",
+"563 467 CURVE",
+"504 572 LINE"
+);
+},
+{
+closed = 1;
+nodes = (
+"838 591 OFFCURVE",
+"1092 798 OFFCURVE",
+"1099 1000 CURVE",
+"889 1000 LINE",
+"883 842 OFFCURVE",
+"758 675 OFFCURVE",
+"601 581 CURVE",
+"659 471 LINE"
+);
+}
+);
+width = 1009;
+},
+{
+anchors = (
+{
+name = H;
+position = "{900, 0}";
+},
+{
+name = L;
+position = "{505, -100}";
+},
+{
+name = U;
+position = "{730, 1100}";
+}
+);
+layerId = master02;
+paths = (
+{
+closed = 1;
+nodes = (
+"860 133 OFFCURVE",
+"655 882 OFFCURVE",
+"524 1010 CURVE",
+"186 1010 LINE",
+"425 832 OFFCURVE",
+"593 141 OFFCURVE",
+"713 0 CURVE",
+"1040 0 LINE"
+);
+},
+{
+closed = 1;
+nodes = (
+"291 463 OFFCURVE",
+"62 230 OFFCURVE",
+"35 0 CURVE",
+"335 0 LINE",
+"336 156 OFFCURVE",
+"470 390 OFFCURVE",
+"658 477 CURVE",
+"509 572 LINE"
+);
+},
+{
+closed = 1;
+nodes = (
+"943 591 OFFCURVE",
+"1197 808 OFFCURVE",
+"1204 1010 CURVE",
+"894 1010 LINE",
+"894 852 OFFCURVE",
+"773 665 OFFCURVE",
+"616 571 CURVE",
+"764 471 LINE"
+);
+}
+);
+width = 1104;
+}
+);
+unicode = 0078;
+},
+{
+glyphname = LtnSmY;
+layers = (
+{
+anchors = (
+{
+name = L;
+position = "{710, -100}";
+},
+{
+name = R;
+position = "{1270, 1000}";
+},
+{
+name = U;
+position = "{630, 1100}";
+}
+);
+layerId = master01;
+paths = (
+{
+closed = 1;
+nodes = (
+"270 825 OFFCURVE",
+"398 406 OFFCURVE",
+"403 -16 CURVE",
+"263 -232 OFFCURVE",
+"145 -295 OFFCURVE",
+"64 -295 CURVE SMOOTH",
+"-2 -295 OFFCURVE",
+"-69 -254 OFFCURVE",
+"-102 -220 CURVE",
+"-200 -377 LINE",
+"-141 -430 OFFCURVE",
+"-68 -465 OFFCURVE",
+"23 -465 CURVE SMOOTH",
+"193 -465 OFFCURVE",
+"369 -371 OFFCURVE",
+"609 0 CURVE SMOOTH",
+"877 414 OFFCURVE",
+"1056 808 OFFCURVE",
+"1056 964 CURVE SMOOTH",
+"1056 978 OFFCURVE",
+"1055 990 OFFCURVE",
+"1052 1000 CURVE",
+"852 1000 LINE",
+"856 984 OFFCURVE",
+"858 967 OFFCURVE",
+"858 946 CURVE SMOOTH",
+"858 783 OFFCURVE",
+"722 472 OFFCURVE",
+"548 189 CURVE",
+"548 484 OFFCURVE",
+"447 866 OFFCURVE",
+"347 1000 CURVE",
+"132 1000 LINE"
+);
+}
+);
+width = 976;
+},
+{
+anchors = (
+{
+name = L;
+position = "{810, -100}";
+},
+{
+name = R;
+position = "{1325, 1000}";
+},
+{
+name = U;
+position = "{640, 1100}";
+}
+);
+layerId = master02;
+paths = (
+{
+closed = 1;
+nodes = (
+"851 994 OFFCURVE",
+"852 977 OFFCURVE",
+"852 958 CURVE SMOOTH",
+"852 786 OFFCURVE",
+"713 473 OFFCURVE",
+"596 260 CURVE",
+"596 478 OFFCURVE",
+"503 877 OFFCURVE",
+"403 1010 CURVE",
+"120 1010 LINE",
+"259 811 OFFCURVE",
+"401 401 OFFCURVE",
+"409 -18 CURVE",
+"283 -207 OFFCURVE",
+"183 -250 OFFCURVE",
+"114 -250 CURVE SMOOTH",
+"48 -250 OFFCURVE",
+"-33 -201 OFFCURVE",
+"-63 -165 CURVE",
+"-195 -381 LINE",
+"-136 -435 OFFCURVE",
+"-13 -465 OFFCURVE",
+"78 -465 CURVE SMOOTH",
+"260 -465 OFFCURVE",
+"447 -385 OFFCURVE",
+"684 0 CURVE SMOOTH",
+"919 381 OFFCURVE",
+"1116 766 OFFCURVE",
+"1116 960 CURVE SMOOTH",
+"1116 978 OFFCURVE",
+"1114 995 OFFCURVE",
+"1110 1010 CURVE",
+"847 1010 LINE"
+);
+}
+);
+width = 1041;
+}
+);
+unicode = 0079;
+},
+{
+glyphname = LftCurlyBrac;
+layers = (
+{
+layerId = master01;
+paths = (
+{
+closed = 1;
+nodes = (
+"660 -250 OFFCURVE",
+"526 -188 OFFCURVE",
+"526 -158 CURVE SMOOTH",
+"526 -59 OFFCURVE",
+"649 404 OFFCURVE",
+"649 469 CURVE SMOOTH",
+"649 509 OFFCURVE",
+"520 577 OFFCURVE",
+"520 602 CURVE SMOOTH",
+"520 620 OFFCURVE",
+"688 700 OFFCURVE",
+"712 730 CURVE SMOOTH",
+"741 767 OFFCURVE",
+"867 1326 OFFCURVE",
+"912 1372 CURVE SMOOTH",
+"938 1399 OFFCURVE",
+"1073 1447 OFFCURVE",
+"1146 1470 CURVE",
+"1140 1607 LINE",
+"1030 1581 OFFCURVE",
+"856 1529 OFFCURVE",
+"805 1485 CURVE SMOOTH",
+"714 1406 OFFCURVE",
+"572 796 OFFCURVE",
+"540 764 CURVE SMOOTH",
+"504 729 OFFCURVE",
+"300 633 OFFCURVE",
+"300 601 CURVE SMOOTH",
+"300 560 OFFCURVE",
+"460 468 OFFCURVE",
+"460 432 CURVE SMOOTH",
+"460 362 OFFCURVE",
+"355 -53 OFFCURVE",
+"355 -219 CURVE SMOOTH",
+"355 -247 OFFCURVE",
+"358 -268 OFFCURVE",
+"365 -279 CURVE SMOOTH",
+"394 -323 OFFCURVE",
+"542 -375 OFFCURVE",
+"639 -402 CURVE",
+"713 -265 LINE"
+);
+}
+);
+width = 980;
+},
+{
+layerId = master02;
+paths = (
+{
+closed = 1;
+nodes = (
+"717 -149 OFFCURVE",
+"597 -129 OFFCURVE",
+"597 -79 CURVE SMOOTH",
+"597 16 OFFCURVE",
+"695 378 OFFCURVE",
+"695 435 CURVE SMOOTH",
+"695 476 OFFCURVE",
+"574 568 OFFCURVE",
+"574 605 CURVE SMOOTH",
+"574 644 OFFCURVE",
+"742 733 OFFCURVE",
+"776 777 CURVE SMOOTH",
+"803 812 OFFCURVE",
+"908 1276 OFFCURVE",
+"953 1317 CURVE SMOOTH",
+"975 1337 OFFCURVE",
+"1090 1376 OFFCURVE",
+"1157 1395 CURVE",
+"1165 1624 LINE",
+"1031 1597 OFFCURVE",
+"827 1546 OFFCURVE",
+"768 1500 CURVE SMOOTH",
+"677 1428 OFFCURVE",
+"542 843 OFFCURVE",
+"512 812 CURVE SMOOTH",
+"472 770 OFFCURVE",
+"260 659 OFFCURVE",
+"260 601 CURVE SMOOTH",
+"260 540 OFFCURVE",
+"412 434 OFFCURVE",
+"412 399 CURVE SMOOTH",
+"412 337 OFFCURVE",
+"311 -52 OFFCURVE",
+"311 -216 CURVE SMOOTH",
+"311 -248 OFFCURVE",
+"315 -271 OFFCURVE",
+"324 -282 CURVE SMOOTH",
+"362 -330 OFFCURVE",
+"554 -379 OFFCURVE",
+"683 -406 CURVE",
+"790 -177 LINE"
+);
+}
+);
+width = 1020;
+}
+);
+unicode = 007B;
+},
+{
+glyphname = VertLine;
+layers = (
+{
+layerId = master01;
+paths = (
+{
+closed = 1;
+nodes = (
+"112 -392 LINE",
+"262 -392 LINE",
+"752 1578 LINE",
+"602 1578 LINE"
+);
+}
+);
+width = 670;
+},
+{
+layerId = master02;
+paths = (
+{
+closed = 1;
+nodes = (
+"83 -396 LINE",
+"293 -396 LINE",
+"784 1594 LINE",
+"574 1594 LINE"
+);
+}
+);
+width = 670;
+}
+);
+unicode = 007C;
+},
+{
+glyphname = RtCurlyBrac;
+layers = (
+{
+layerId = master01;
+paths = (
+{
+closed = 1;
+nodes = (
+"513 1452 OFFCURVE",
+"653 1397 OFFCURVE",
+"653 1366 CURVE SMOOTH",
+"653 1238 OFFCURVE",
+"531 801 OFFCURVE",
+"531 737 CURVE SMOOTH",
+"531 701 OFFCURVE",
+"660 627 OFFCURVE",
+"660 603 CURVE SMOOTH",
+"660 585 OFFCURVE",
+"496 511 OFFCURVE",
+"468 475 CURVE SMOOTH",
+"439 438 OFFCURVE",
+"312 -121 OFFCURVE",
+"268 -167 CURVE SMOOTH",
+"241 -194 OFFCURVE",
+"106 -242 OFFCURVE",
+"33 -265 CURVE",
+"39 -402 LINE",
+"150 -375 OFFCURVE",
+"324 -323 OFFCURVE",
+"375 -279 CURVE SMOOTH",
+"465 -201 OFFCURVE",
+"608 410 OFFCURVE",
+"639 441 CURVE SMOOTH",
+"675 476 OFFCURVE",
+"880 571 OFFCURVE",
+"880 607 CURVE SMOOTH",
+"880 639 OFFCURVE",
+"719 740 OFFCURVE",
+"719 771 CURVE SMOOTH",
+"719 839 OFFCURVE",
+"825 1259 OFFCURVE",
+"825 1425 CURVE SMOOTH",
+"825 1453 OFFCURVE",
+"822 1474 OFFCURVE",
+"815 1485 CURVE SMOOTH",
+"786 1529 OFFCURVE",
+"638 1581 OFFCURVE",
+"540 1607 CURVE",
+"466 1470 LINE"
+);
+}
+);
+width = 980;
+},
+{
+layerId = master02;
+paths = (
+{
+closed = 1;
+nodes = (
+"513 1366 OFFCURVE",
+"611 1344 OFFCURVE",
+"611 1296 CURVE SMOOTH",
+"611 1200 OFFCURVE",
+"515 837 OFFCURVE",
+"515 782 CURVE SMOOTH",
+"515 743 OFFCURVE",
+"633 649 OFFCURVE",
+"633 613 CURVE SMOOTH",
+"633 573 OFFCURVE",
+"465 486 OFFCURVE",
+"429 441 CURVE SMOOTH",
+"403 407 OFFCURVE",
+"300 -59 OFFCURVE",
+"255 -99 CURVE SMOOTH",
+"230 -121 OFFCURVE",
+"97 -158 OFFCURVE",
+"25 -177 CURVE",
+"17 -406 LINE",
+"160 -379 OFFCURVE",
+"377 -330 OFFCURVE",
+"439 -282 CURVE SMOOTH",
+"532 -211 OFFCURVE",
+"666 374 OFFCURVE",
+"696 406 CURVE SMOOTH",
+"734 446 OFFCURVE",
+"947 559 OFFCURVE",
+"947 616 CURVE SMOOTH",
+"947 676 OFFCURVE",
+"796 783 OFFCURVE",
+"796 819 CURVE SMOOTH",
+"796 880 OFFCURVE",
+"896 1288 OFFCURVE",
+"896 1453 CURVE SMOOTH",
+"896 1529 OFFCURVE",
+"709 1591 OFFCURVE",
+"549 1624 CURVE",
+"442 1395 LINE"
+);
+}
+);
+width = 1020;
+}
+);
+unicode = 007D;
+},
+{
+glyphname = Tilde;
+layers = (
+{
+layerId = master01;
+paths = (
+{
+closed = 1;
+nodes = (
+"173 416 OFFCURVE",
+"215 456 OFFCURVE",
+"293 456 CURVE SMOOTH",
+"468 456 OFFCURVE",
+"643 353 OFFCURVE",
+"873 353 CURVE SMOOTH",
+"1032 353 OFFCURVE",
+"1137 472 OFFCURVE",
+"1169 598 CURVE",
+"1064 598 LINE",
+"1045 553 OFFCURVE",
+"1002 500 OFFCURVE",
+"919 500 CURVE SMOOTH",
+"683 500 OFFCURVE",
+"551 603 OFFCURVE",
+"330 603 CURVE SMOOTH",
+"184 603 OFFCURVE",
+"81 487 OFFCURVE",
+"51 368 CURVE",
+"156 368 LINE"
+);
+}
+);
+width = 1095;
+},
+{
+layerId = master02;
+paths = (
+{
+closed = 1;
+nodes = (
+"207 390 OFFCURVE",
+"249 431 OFFCURVE",
+"327 431 CURVE SMOOTH",
+"502 431 OFFCURVE",
+"676 327 OFFCURVE",
+"906 327 CURVE SMOOTH",
+"1065 327 OFFCURVE",
+"1206 507 OFFCURVE",
+"1238 634 CURVE",
+"1093 634 LINE",
+"1074 588 OFFCURVE",
+"1031 535 OFFCURVE",
+"948 535 CURVE SMOOTH",
+"712 535 OFFCURVE",
+"580 639 OFFCURVE",
+"359 639 CURVE SMOOTH",
+"203 639 OFFCURVE",
+"75 462 OFFCURVE",
+"45 342 CURVE",
+"190 342 LINE"
+);
+}
+);
+width = 1155;
+}
+);
+unicode = 007E;
+},
+{
+glyphname = LtnCapADiaer;
+layers = (
+{
+anchors = (
+{
+name = H;
+position = "{1170, 0}";
+},
+{
+name = L;
+position = "{602, -100}";
+},
+{
+name = O;
+position = "{1390, 0}";
+},
+{
+name = U;
+position = "{1106, 1935}";
+}
+);
+components = (
+{
+name = LtnCapA;
+},
+{
+name = CombDiaer;
+transform = "{1, 0, 0, 1, 1359, 430}";
+}
+);
+layerId = master01;
+width = 1395;
+},
+{
+anchors = (
+{
+name = H;
+position = "{1215, 0}";
+},
+{
+name = L;
+position = "{647, -100}";
+},
+{
+name = O;
+position = "{1435, 0}";
+},
+{
+name = U;
+position = "{1176, 2015}";
+}
+);
+components = (
+{
+name = LtnCapA;
+},
+{
+name = CombDiaer;
+transform = "{1, 0, 0, 1, 1419, 430}";
+}
+);
+layerId = master02;
+width = 1465;
+}
+);
+unicode = 00C4;
+},
+{
+glyphname = LtnSmAAcute;
+layers = (
+{
+anchors = (
+{
+name = H;
+position = "{860, 0}";
+},
+{
+name = L;
+position = "{455, -100}";
+},
+{
+name = O;
+position = "{1065, 0}";
+},
+{
+name = R;
+position = "{1310, 1000}";
+},
+{
+name = U;
+position = "{889, 1635}";
+}
+);
+components = (
+{
+name = LtnSmA;
+},
+{
+name = CombAcute;
+transform = "{1, 0, 0, 1, 1110, 0}";
+}
+);
+layerId = master01;
+width = 1107;
+},
+{
+anchors = (
+{
+name = H;
+position = "{925, 0}";
+},
+{
+name = L;
+position = "{525, -100}";
+},
+{
+name = O;
+position = "{1125, 0}";
+},
+{
+name = R;
+position = "{1335, 1000}";
+},
+{
+name = U;
+position = "{899, 1635}";
+}
+);
+components = (
+{
+name = LtnSmA;
+},
+{
+name = CombAcute;
+transform = "{1, 0, 0, 1, 1150, 0}";
+}
+);
+layerId = master02;
+width = 1185;
+}
+);
+unicode = 00E1;
+},
+{
+glyphname = LtnSmAGrave;
+layers = (
+{
+anchors = (
+{
+name = H;
+position = "{860, 0}";
+},
+{
+name = L;
+position = "{455, -100}";
+},
+{
+name = O;
+position = "{1065, 0}";
+},
+{
+name = R;
+position = "{1310, 1000}";
+},
+{
+name = U;
+position = "{889, 1635}";
+}
+);
+components = (
+{
+name = LtnSmA;
+},
+{
+name = CombGrave;
+transform = "{1, 0, 0, 1, 1090, 0}";
+}
+);
+layerId = master01;
+width = 1107;
+},
+{
+anchors = (
+{
+name = H;
+position = "{925, 0}";
+},
+{
+name = L;
+position = "{525, -100}";
+},
+{
+name = O;
+position = "{1125, 0}";
+},
+{
+name = R;
+position = "{1335, 1000}";
+},
+{
+name = U;
+position = "{999, 1635}";
+}
+);
+components = (
+{
+name = LtnSmA;
+},
+{
+name = CombGrave;
+transform = "{1, 0, 0, 1, 1240, 0}";
+}
+);
+layerId = master02;
+width = 1185;
+}
+);
+unicode = 00E0;
+},
+{
+glyphname = LtnSmACircum;
+layers = (
+{
+anchors = (
+{
+name = H;
+position = "{860, 0}";
+},
+{
+name = L;
+position = "{455, -100}";
+},
+{
+name = O;
+position = "{1065, 0}";
+},
+{
+name = R;
+position = "{1310, 1000}";
+},
+{
+name = U;
+position = "{854, 1635}";
+}
+);
+components = (
+{
+name = LtnSmA;
+},
+{
+name = CombCircum;
+transform = "{1, 0, 0, 1, 1075, 0}";
+}
+);
+layerId = master01;
+width = 1107;
+},
+{
+anchors = (
+{
+name = H;
+position = "{925, 0}";
+},
+{
+name = L;
+position = "{525, -100}";
+},
+{
+name = O;
+position = "{1125, 0}";
+},
+{
+name = R;
+position = "{1335, 1000}";
+},
+{
+name = U;
+position = "{916, 1635}";
+}
+);
+components = (
+{
+name = LtnSmA;
+},
+{
+name = CombCircum;
+transform = "{1, 0, 0, 1, 1155, 0}";
+}
+);
+layerId = master02;
+width = 1185;
+}
+);
+unicode = 00E2;
+},
+{
+glyphname = LtnSmADiaer;
+layers = (
+{
+anchors = (
+{
+name = H;
+position = "{860, 0}";
+},
+{
+name = L;
+position = "{455, -100}";
+},
+{
+name = O;
+position = "{1065, 0}";
+},
+{
+name = R;
+position = "{1310, 1000}";
+},
+{
+name = U;
+position = "{852, 1505}";
+}
+);
+components = (
+{
+name = LtnSmA;
+},
+{
+name = CombDiaer;
+transform = "{1, 0, 0, 1, 1105, 0}";
+}
+);
+layerId = master01;
+width = 1107;
+},
+{
+anchors = (
+{
+name = H;
+position = "{925, 0}";
+},
+{
+name = L;
+position = "{525, -100}";
+},
+{
+name = O;
+position = "{1125, 0}";
+},
+{
+name = R;
+position = "{1335, 1000}";
+},
+{
+name = U;
+position = "{947, 1585}";
+}
+);
+components = (
+{
+name = LtnSmA;
+},
+{
+name = CombDiaer;
+transform = "{1, 0, 0, 1, 1190, 0}";
+}
+);
+layerId = master02;
+width = 1185;
+}
+);
+unicode = 00E4;
+},
+{
+glyphname = LtnSmATilde;
+layers = (
+{
+anchors = (
+{
+name = H;
+position = "{860, 0}";
+},
+{
+name = L;
+position = "{455, -100}";
+},
+{
+name = O;
+position = "{1065, 0}";
+},
+{
+name = R;
+position = "{1310, 1000}";
+},
+{
+name = U;
+position = "{850, 1475}";
+}
+);
+components = (
+{
+name = LtnSmA;
+},
+{
+name = CombTilde;
+transform = "{1, 0, 0, 1, 1140, 0}";
+}
+);
+layerId = master01;
+width = 1107;
+},
+{
+anchors = (
+{
+name = H;
+position = "{925, 0}";
+},
+{
+name = L;
+position = "{525, -100}";
+},
+{
+name = O;
+position = "{1125, 0}";
+},
+{
+name = R;
+position = "{1335, 1000}";
+},
+{
+name = U;
+position = "{860, 1490}";
+}
+);
+components = (
+{
+name = LtnSmA;
+},
+{
+name = CombTilde;
+transform = "{1, 0, 0, 1, 1215, 0}";
+}
+);
+layerId = master02;
+width = 1185;
+}
+);
+unicode = 00E3;
+},
+{
+glyphname = LtnSmARingAbv;
+layers = (
+{
+anchors = (
+{
+name = H;
+position = "{860, 0}";
+},
+{
+name = L;
+position = "{455, -100}";
+},
+{
+name = O;
+position = "{1065, 0}";
+},
+{
+name = R;
+position = "{1310, 1000}";
+},
+{
+name = U;
+position = "{919, 1635}";
+}
+);
+components = (
+{
+name = LtnSmA;
+},
+{
+name = CombRingAbv;
+transform = "{1, 0, 0, 1, 1140, 0}";
+}
+);
+layerId = master01;
+width = 1107;
+},
+{
+anchors = (
+{
+name = H;
+position = "{925, 0}";
+},
+{
+name = L;
+position = "{525, -100}";
+},
+{
+name = O;
+position = "{1125, 0}";
+},
+{
+name = R;
+position = "{1335, 1000}";
+},
+{
+name = U;
+position = "{961, 1635}";
+}
+);
+components = (
+{
+name = LtnSmA;
+},
+{
+name = CombRingAbv;
+transform = "{1, 0, 0, 1, 1182, 0}";
+}
+);
+layerId = master02;
+width = 1185;
+}
+);
+unicode = 00E5;
+},
+{
+glyphname = DottedCirc;
+layers = (
+{
+anchors = (
+{
+name = H;
+position = "{493, 0}";
+},
+{
+name = L;
+position = "{468, -100}";
+},
+{
+name = O;
+position = "{750, 0}";
+},
+{
+name = U;
+position = "{743, 1000}";
+}
+);
+layerId = master01;
+paths = (
+{
+closed = 1;
+nodes = (
+"588 858 OFFCURVE",
+"571 867 OFFCURVE",
+"553 867 CURVE SMOOTH",
+"521 867 OFFCURVE",
+"491 837 OFFCURVE",
+"491 809 CURVE SMOOTH",
+"491 788 OFFCURVE",
+"508 773 OFFCURVE",
+"530 773 CURVE SMOOTH",
+"564 773 OFFCURVE",
+"588 805 OFFCURVE",
+"588 834 CURVE SMOOTH"
+);
+},
+{
+closed = 1;
+nodes = (
+"647 124 OFFCURVE",
+"620 93 OFFCURVE",
+"620 67 CURVE SMOOTH",
+"620 46 OFFCURVE",
+"636 30 OFFCURVE",
+"657 30 CURVE SMOOTH",
+"687 30 OFFCURVE",
+"718 60 OFFCURVE",
+"718 86 CURVE SMOOTH",
+"718 109 OFFCURVE",
+"700 124 OFFCURVE",
+"677 124 CURVE SMOOTH"
+);
+},
+{
+closed = 1;
+nodes = (
+"369 780 OFFCURVE",
+"336 753 OFFCURVE",
+"336 722 CURVE SMOOTH",
+"336 702 OFFCURVE",
+"351 687 OFFCURVE",
+"374 687 CURVE SMOOTH",
+"403 687 OFFCURVE",
+"434 711 OFFCURVE",
+"434 744 CURVE SMOOTH",
+"434 764 OFFCURVE",
+"414 780 OFFCURVE",
+"396 780 CURVE SMOOTH"
+);
+},
+{
+closed = 1;
+nodes = (
+"872 199 OFFCURVE",
+"854 211 OFFCURVE",
+"833 211 CURVE SMOOTH",
+"803 211 OFFCURVE",
+"774 183 OFFCURVE",
+"774 153 CURVE SMOOTH",
+"774 133 OFFCURVE",
+"789 119 OFFCURVE",
+"812 119 CURVE SMOOTH",
+"843 119 OFFCURVE",
+"873 146 OFFCURVE",
+"873 175 CURVE SMOOTH"
+);
+},
+{
+closed = 1;
+nodes = (
+"312 633 OFFCURVE",
+"296 650 OFFCURVE",
+"275 650 CURVE SMOOTH",
+"247 650 OFFCURVE",
+"215 623 OFFCURVE",
+"215 592 CURVE SMOOTH",
+"215 573 OFFCURVE",
+"227 556 OFFCURVE",
+"251 556 CURVE SMOOTH",
+"278 556 OFFCURVE",
+"313 581 OFFCURVE",
+"313 612 CURVE SMOOTH"
+);
+},
+{
+closed = 1;
+nodes = (
+"993 327 OFFCURVE",
+"978 341 OFFCURVE",
+"958 341 CURVE SMOOTH",
+"933 341 OFFCURVE",
+"896 321 OFFCURVE",
+"896 284 CURVE SMOOTH",
+"896 265 OFFCURVE",
+"909 249 OFFCURVE",
+"934 249 CURVE SMOOTH",
+"963 249 OFFCURVE",
+"994 275 OFFCURVE",
+"994 306 CURVE SMOOTH"
+);
+},
+{
+closed = 1;
+nodes = (
+"175 495 OFFCURVE",
+"145 468 OFFCURVE",
+"145 438 CURVE SMOOTH",
+"145 418 OFFCURVE",
+"159 402 OFFCURVE",
+"183 402 CURVE SMOOTH",
+"208 402 OFFCURVE",
+"244 428 OFFCURVE",
+"244 459 CURVE SMOOTH",
+"244 479 OFFCURVE",
+"227 495 OFFCURVE",
+"205 495 CURVE SMOOTH"
+);
+},
+{
+closed = 1;
+nodes = (
+"999 496 OFFCURVE",
+"965 469 OFFCURVE",
+"965 438 CURVE SMOOTH",
+"965 418 OFFCURVE",
+"979 403 OFFCURVE",
+"1004 403 CURVE SMOOTH",
+"1033 403 OFFCURVE",
+"1064 431 OFFCURVE",
+"1064 460 CURVE SMOOTH",
+"1064 480 OFFCURVE",
+"1048 496 OFFCURVE",
+"1026 496 CURVE SMOOTH"
+);
+},
+{
+closed = 1;
+nodes = (
+"237 327 OFFCURVE",
+"221 341 OFFCURVE",
+"199 341 CURVE SMOOTH",
+"169 341 OFFCURVE",
+"138 314 OFFCURVE",
+"138 285 CURVE SMOOTH",
+"138 263 OFFCURVE",
+"153 248 OFFCURVE",
+"175 248 CURVE SMOOTH",
+"206 248 OFFCURVE",
+"237 278 OFFCURVE",
+"237 307 CURVE SMOOTH"
+);
+},
+{
+closed = 1;
+nodes = (
+"1071 634 OFFCURVE",
+"1055 650 OFFCURVE",
+"1034 650 CURVE SMOOTH",
+"1003 650 OFFCURVE",
+"973 619 OFFCURVE",
+"973 590 CURVE SMOOTH",
+"973 570 OFFCURVE",
+"989 556 OFFCURVE",
+"1009 556 CURVE SMOOTH",
+"1041 556 OFFCURVE",
+"1071 585 OFFCURVE",
+"1071 613 CURVE SMOOTH"
+);
+},
+{
+closed = 1;
+nodes = (
+"292 197 OFFCURVE",
+"277 211 OFFCURVE",
+"253 211 CURVE SMOOTH",
+"224 211 OFFCURVE",
+"194 181 OFFCURVE",
+"194 154 CURVE SMOOTH",
+"194 134 OFFCURVE",
+"211 118 OFFCURVE",
+"232 118 CURVE SMOOTH",
+"262 118 OFFCURVE",
+"292 148 OFFCURVE",
+"292 177 CURVE SMOOTH"
+);
+},
+{
+closed = 1;
+nodes = (
+"917 704 OFFCURVE",
+"931 686 OFFCURVE",
+"954 686 CURVE SMOOTH",
+"984 686 OFFCURVE",
+"1014 716 OFFCURVE",
+"1014 745 CURVE SMOOTH",
+"1014 765 OFFCURVE",
+"1000 780 OFFCURVE",
+"977 780 CURVE SMOOTH",
+"947 780 OFFCURVE",
+"917 753 OFFCURVE",
+"917 724 CURVE SMOOTH"
+);
+},
+{
+closed = 1;
+nodes = (
+"403 107 OFFCURVE",
+"390 123 OFFCURVE",
+"367 123 CURVE SMOOTH",
+"339 123 OFFCURVE",
+"305 96 OFFCURVE",
+"305 68 CURVE SMOOTH",
+"305 49 OFFCURVE",
+"320 30 OFFCURVE",
+"343 30 CURVE SMOOTH",
+"371 30 OFFCURVE",
+"403 56 OFFCURVE",
+"403 87 CURVE SMOOTH"
+);
+},
+{
+closed = 1;
+nodes = (
+"806 791 OFFCURVE",
+"819 773 OFFCURVE",
+"842 773 CURVE SMOOTH",
+"869 773 OFFCURVE",
+"903 799 OFFCURVE",
+"903 830 CURVE SMOOTH",
+"903 850 OFFCURVE",
+"889 867 OFFCURVE",
+"866 867 CURVE SMOOTH",
+"836 867 OFFCURVE",
+"806 839 OFFCURVE",
+"806 810 CURVE SMOOTH"
+);
+},
+{
+closed = 1;
+nodes = (
+"553 78 OFFCURVE",
+"538 93 OFFCURVE",
+"516 93 CURVE SMOOTH",
+"485 93 OFFCURVE",
+"456 65 OFFCURVE",
+"456 36 CURVE SMOOTH",
+"456 16 OFFCURVE",
+"471 0 OFFCURVE",
+"493 0 CURVE SMOOTH",
+"523 0 OFFCURVE",
+"553 27 OFFCURVE",
+"553 57 CURVE SMOOTH"
+);
+},
+{
+closed = 1;
+nodes = (
+"656 819 OFFCURVE",
+"671 805 OFFCURVE",
+"693 805 CURVE SMOOTH",
+"721 805 OFFCURVE",
+"754 830 OFFCURVE",
+"754 861 CURVE SMOOTH",
+"754 882 OFFCURVE",
+"738 898 OFFCURVE",
+"716 898 CURVE SMOOTH",
+"685 898 OFFCURVE",
+"656 868 OFFCURVE",
+"656 839 CURVE SMOOTH"
+);
+}
+);
+width = 1086;
+},
+{
+anchors = (
+{
+name = H;
+position = "{493, 0}";
+},
+{
+name = L;
+position = "{545, -100}";
+},
+{
+name = O;
+position = "{750, 0}";
+},
+{
+name = U;
+position = "{645, 1000}";
+}
+);
+layerId = master02;
+paths = (
+{
+closed = 1;
+nodes = (
+"443 864 OFFCURVE",
+"423 885 OFFCURVE",
+"398 885 CURVE SMOOTH",
+"371 885 OFFCURVE",
+"348 861 OFFCURVE",
+"348 837 CURVE SMOOTH",
+"348 809 OFFCURVE",
+"372 789 OFFCURVE",
+"398 789 CURVE SMOOTH",
+"425 789 OFFCURVE",
+"443 812 OFFCURVE",
+"443 837 CURVE SMOOTH"
+);
+},
+{
+closed = 1;
+nodes = (
+"758 106 OFFCURVE",
+"736 127 OFFCURVE",
+"710 127 CURVE SMOOTH",
+"685 127 OFFCURVE",
+"662 103 OFFCURVE",
+"662 80 CURVE SMOOTH",
+"662 52 OFFCURVE",
+"686 31 OFFCURVE",
+"710 31 CURVE SMOOTH",
+"737 31 OFFCURVE",
+"758 55 OFFCURVE",
+"758 79 CURVE SMOOTH"
+);
+},
+{
+closed = 1;
+nodes = (
+"310 775 OFFCURVE",
+"288 796 OFFCURVE",
+"263 796 CURVE SMOOTH",
+"238 796 OFFCURVE",
+"215 774 OFFCURVE",
+"215 747 CURVE SMOOTH",
+"215 722 OFFCURVE",
+"236 701 OFFCURVE",
+"263 701 CURVE SMOOTH",
+"291 701 OFFCURVE",
+"310 720 OFFCURVE",
+"310 749 CURVE SMOOTH"
+);
+},
+{
+closed = 1;
+nodes = (
+"891 197 OFFCURVE",
+"870 215 OFFCURVE",
+"843 215 CURVE SMOOTH",
+"817 215 OFFCURVE",
+"795 194 OFFCURVE",
+"795 168 CURVE SMOOTH",
+"795 143 OFFCURVE",
+"816 121 OFFCURVE",
+"843 121 CURVE SMOOTH",
+"871 121 OFFCURVE",
+"891 143 OFFCURVE",
+"891 168 CURVE SMOOTH"
+);
+},
+{
+closed = 1;
+nodes = (
+"222 640 OFFCURVE",
+"199 663 OFFCURVE",
+"173 663 CURVE SMOOTH",
+"149 663 OFFCURVE",
+"126 642 OFFCURVE",
+"126 615 CURVE SMOOTH",
+"126 591 OFFCURVE",
+"145 567 OFFCURVE",
+"173 567 CURVE SMOOTH",
+"197 567 OFFCURVE",
+"222 587 OFFCURVE",
+"222 613 CURVE SMOOTH"
+);
+},
+{
+closed = 1;
+nodes = (
+"980 327 OFFCURVE",
+"957 348 OFFCURVE",
+"932 348 CURVE SMOOTH",
+"908 348 OFFCURVE",
+"884 332 OFFCURVE",
+"884 301 CURVE SMOOTH",
+"884 277 OFFCURVE",
+"902 254 OFFCURVE",
+"932 254 CURVE SMOOTH",
+"957 254 OFFCURVE",
+"980 274 OFFCURVE",
+"980 301 CURVE SMOOTH"
+);
+},
+{
+closed = 1;
+nodes = (
+"191 484 OFFCURVE",
+"168 505 OFFCURVE",
+"143 505 CURVE SMOOTH",
+"116 505 OFFCURVE",
+"95 484 OFFCURVE",
+"95 458 CURVE SMOOTH",
+"95 433 OFFCURVE",
+"115 410 OFFCURVE",
+"143 410 CURVE SMOOTH",
+"167 410 OFFCURVE",
+"191 432 OFFCURVE",
+"191 459 CURVE SMOOTH"
+);
+},
+{
+closed = 1;
+nodes = (
+"1011 484 OFFCURVE",
+"990 506 OFFCURVE",
+"964 506 CURVE SMOOTH",
+"940 506 OFFCURVE",
+"915 484 OFFCURVE",
+"915 457 CURVE SMOOTH",
+"915 433 OFFCURVE",
+"936 411 OFFCURVE",
+"964 411 CURVE SMOOTH",
+"990 411 OFFCURVE",
+"1011 433 OFFCURVE",
+"1011 458 CURVE SMOOTH"
+);
+},
+{
+closed = 1;
+nodes = (
+"222 328 OFFCURVE",
+"200 348 OFFCURVE",
+"174 348 CURVE SMOOTH",
+"147 348 OFFCURVE",
+"126 326 OFFCURVE",
+"126 302 CURVE SMOOTH",
+"126 275 OFFCURVE",
+"149 253 OFFCURVE",
+"174 253 CURVE SMOOTH",
+"201 253 OFFCURVE",
+"222 277 OFFCURVE",
+"222 302 CURVE SMOOTH"
+);
+},
+{
+closed = 1;
+nodes = (
+"980 642 OFFCURVE",
+"955 663 OFFCURVE",
+"931 663 CURVE SMOOTH",
+"904 663 OFFCURVE",
+"885 638 OFFCURVE",
+"885 614 CURVE SMOOTH",
+"885 588 OFFCURVE",
+"907 567 OFFCURVE",
+"931 567 CURVE SMOOTH",
+"959 567 OFFCURVE",
+"980 591 OFFCURVE",
+"980 615 CURVE SMOOTH"
+);
+},
+{
+closed = 1;
+nodes = (
+"310 195 OFFCURVE",
+"291 215 OFFCURVE",
+"263 215 CURVE SMOOTH",
+"238 215 OFFCURVE",
+"215 190 OFFCURVE",
+"215 168 CURVE SMOOTH",
+"215 143 OFFCURVE",
+"238 120 OFFCURVE",
+"263 120 CURVE SMOOTH",
+"289 120 OFFCURVE",
+"310 143 OFFCURVE",
+"310 168 CURVE SMOOTH"
+);
+},
+{
+closed = 1;
+nodes = (
+"890 774 OFFCURVE",
+"870 796 OFFCURVE",
+"843 796 CURVE SMOOTH",
+"815 796 OFFCURVE",
+"796 773 OFFCURVE",
+"796 748 CURVE SMOOTH",
+"796 724 OFFCURVE",
+"817 700 OFFCURVE",
+"843 700 CURVE SMOOTH",
+"869 700 OFFCURVE",
+"890 722 OFFCURVE",
+"890 748 CURVE SMOOTH"
+);
+},
+{
+closed = 1;
+nodes = (
+"444 102 OFFCURVE",
+"423 126 OFFCURVE",
+"396 126 CURVE SMOOTH",
+"370 126 OFFCURVE",
+"348 102 OFFCURVE",
+"348 78 CURVE SMOOTH",
+"348 55 OFFCURVE",
+"370 31 OFFCURVE",
+"396 31 CURVE SMOOTH",
+"420 31 OFFCURVE",
+"444 51 OFFCURVE",
+"444 78 CURVE SMOOTH"
+);
+},
+{
+closed = 1;
+nodes = (
+"758 861 OFFCURVE",
+"737 885 OFFCURVE",
+"710 885 CURVE SMOOTH",
+"684 885 OFFCURVE",
+"663 862 OFFCURVE",
+"663 838 CURVE SMOOTH",
+"663 814 OFFCURVE",
+"683 789 OFFCURVE",
+"710 789 CURVE SMOOTH",
+"734 789 OFFCURVE",
+"758 809 OFFCURVE",
+"758 836 CURVE SMOOTH"
+);
+},
+{
+closed = 1;
+nodes = (
+"601 73 OFFCURVE",
+"579 95 OFFCURVE",
+"553 95 CURVE SMOOTH",
+"527 95 OFFCURVE",
+"506 73 OFFCURVE",
+"506 47 CURVE SMOOTH",
+"506 21 OFFCURVE",
+"527 0 OFFCURVE",
+"553 0 CURVE SMOOTH",
+"579 0 OFFCURVE",
+"601 21 OFFCURVE",
+"601 47 CURVE SMOOTH"
+);
+},
+{
+closed = 1;
+nodes = (
+"601 894 OFFCURVE",
+"579 916 OFFCURVE",
+"553 916 CURVE SMOOTH",
+"527 916 OFFCURVE",
+"506 894 OFFCURVE",
+"506 868 CURVE SMOOTH",
+"506 842 OFFCURVE",
+"527 821 OFFCURVE",
+"553 821 CURVE SMOOTH",
+"579 821 OFFCURVE",
+"601 842 OFFCURVE",
+"601 868 CURVE SMOOTH"
+);
+}
+);
+width = 1086;
+}
+);
+unicode = 25CC;
+},
+{
+glyphname = Hyphen;
+layers = (
+{
+anchors = (
+{
+name = U;
+position = "{645, 1100}";
+}
+);
+layerId = master01;
+paths = (
+{
+closed = 1;
+nodes = (
+"855 544 LINE",
+"892 691 LINE",
+"192 691 LINE",
+"155 544 LINE"
+);
+}
+);
+width = 840;
+},
+{
+anchors = (
+{
+name = U;
+position = "{655, 1100}";
+}
+);
+layerId = master02;
+paths = (
+{
+closed = 1;
+nodes = (
+"879 520 LINE",
+"931 728 LINE",
+"191 728 LINE",
+"139 520 LINE"
+);
+}
+);
+width = 860;
+}
+);
+unicode = 2010;
+},
+{
+glyphname = NonBreakingHyphen;
+layers = (
+{
+anchors = (
+{
+name = U;
+position = "{645, 1100}";
+}
+);
+components = (
+{
+name = HyphenMinus;
+}
+);
+layerId = master01;
+width = 840;
+},
+{
+anchors = (
+{
+name = U;
+position = "{665, 1100}";
+}
+);
+components = (
+{
+name = HyphenMinus;
+}
+);
+layerId = master02;
+width = 875;
+}
+);
+unicode = 2011;
+},
+{
+glyphname = Hyphen_Soft;
+layers = (
+{
+anchors = (
+{
+name = U;
+position = "{645, 1100}";
+}
+);
+components = (
+{
+name = HyphenMinus;
+}
+);
+layerId = master01;
+width = 840;
+},
+{
+anchors = (
+{
+name = U;
+position = "{665, 1100}";
+}
+);
+components = (
+{
+name = HyphenMinus;
+}
+);
+layerId = master02;
+width = 875;
+}
+);
+unicode = 00AD;
+},
+{
+glyphname = CombAcute;
+layers = (
+{
+anchors = (
+{
+name = U;
+position = "{-221, 1635}";
+},
+{
+name = _U;
+position = "{-355, 1100}";
+}
+);
+layerId = master01;
+paths = (
+{
+closed = 1;
+nodes = (
+"-524 1147 LINE",
+"-354 1147 LINE",
+"150 1568 LINE",
+"-99 1568 LINE"
+);
+}
+);
+width = 0;
+},
+{
+anchors = (
+{
+name = U;
+position = "{-251, 1635}";
+},
+{
+name = _U;
+position = "{-325, 1100}";
+}
+);
+layerId = master02;
+paths = (
+{
+closed = 1;
+nodes = (
+"-523 1188 LINE",
+"-283 1188 LINE",
+"204 1584 LINE",
+"-165 1584 LINE"
+);
+}
+);
+width = 0;
+}
+);
+unicode = 0301;
+},
+{
+glyphname = CombGrave;
+layers = (
+{
+anchors = (
+{
+name = U;
+position = "{-201, 1635}";
+},
+{
+name = _U;
+position = "{-335, 1100}";
+}
+);
+layerId = master01;
+paths = (
+{
+closed = 1;
+nodes = (
+"-284 1147 LINE",
+"-134 1147 LINE",
+"-409 1568 LINE",
+"-619 1568 LINE"
+);
+}
+);
+width = 0;
+},
+{
+anchors = (
+{
+name = U;
+position = "{-241, 1635}";
+},
+{
+name = _U;
+position = "{-415, 1100}";
+}
+);
+layerId = master02;
+paths = (
+{
+closed = 1;
+nodes = (
+"-403 1188 LINE",
+"-173 1188 LINE",
+"-395 1584 LINE",
+"-725 1584 LINE"
+);
+}
+);
+width = 0;
+}
+);
+unicode = 0300;
+},
+{
+glyphname = CombCircum;
+layers = (
+{
+anchors = (
+{
+name = U;
+position = "{-221, 1635}";
+},
+{
+name = _U;
+position = "{-320, 1100}";
+}
+);
+layerId = master01;
+paths = (
+{
+closed = 1;
+nodes = (
+"-275 1421 LINE",
+"-69 1147 LINE",
+"80 1147 LINE",
+"-174 1568 LINE",
+"-344 1568 LINE",
+"-769 1147 LINE",
+"-619 1147 LINE"
+);
+}
+);
+width = 0;
+},
+{
+anchors = (
+{
+name = U;
+position = "{-239, 1635}";
+},
+{
+name = _U;
+position = "{-330, 1100}";
+}
+);
+layerId = master02;
+paths = (
+{
+closed = 1;
+nodes = (
+"-123 1584 LINE",
+"-423 1584 LINE",
+"-791 1188 LINE",
+"-551 1188 LINE",
+"-294 1416 LINE",
+"-151 1188 LINE",
+"88 1188 LINE"
+);
+}
+);
+width = 0;
+}
+);
+unicode = 0302;
+},
+{
+glyphname = CombTilde;
+layers = (
+{
+anchors = (
+{
+name = U;
+position = "{-290, 1475}";
+},
+{
+name = _U;
+position = "{-385, 1100}";
+}
+);
+layerId = master01;
+paths = (
+{
+closed = 1;
+nodes = (
+"-629 1229 OFFCURVE",
+"-589 1269 OFFCURVE",
+"-540 1269 CURVE SMOOTH",
+"-503 1269 OFFCURVE",
+"-466 1253 OFFCURVE",
+"-398 1218 CURVE SMOOTH",
+"-344 1190 OFFCURVE",
+"-296 1171 OFFCURVE",
+"-243 1171 CURVE SMOOTH",
+"-120 1171 OFFCURVE",
+"-15 1286 OFFCURVE",
+"16 1411 CURVE",
+"-89 1411 LINE",
+"-107 1366 OFFCURVE",
+"-147 1323 OFFCURVE",
+"-194 1323 CURVE SMOOTH",
+"-236 1323 OFFCURVE",
+"-273 1342 OFFCURVE",
+"-338 1370 CURVE SMOOTH",
+"-401 1397 OFFCURVE",
+"-442 1421 OFFCURVE",
+"-498 1421 CURVE SMOOTH",
+"-617 1421 OFFCURVE",
+"-721 1300 OFFCURVE",
+"-751 1181 CURVE",
+"-646 1181 LINE"
+);
+}
+);
+width = 0;
+},
+{
+anchors = (
+{
+name = U;
+position = "{-355, 1490}";
+},
+{
+name = _U;
+position = "{-390, 1100}";
+}
+);
+layerId = master02;
+paths = (
+{
+closed = 1;
+nodes = (
+"-673 1232 OFFCURVE",
+"-628 1271 OFFCURVE",
+"-584 1271 CURVE SMOOTH",
+"-546 1271 OFFCURVE",
+"-498 1247 OFFCURVE",
+"-437 1217 CURVE SMOOTH",
+"-375 1187 OFFCURVE",
+"-327 1168 OFFCURVE",
+"-265 1168 CURVE SMOOTH",
+"-129 1168 OFFCURVE",
+"-13 1294 OFFCURVE",
+"30 1465 CURVE",
+"-125 1465 LINE",
+"-138 1415 OFFCURVE",
+"-190 1373 OFFCURVE",
+"-235 1373 CURVE SMOOTH",
+"-272 1373 OFFCURVE",
+"-306 1399 OFFCURVE",
+"-366 1423 CURVE SMOOTH",
+"-438 1452 OFFCURVE",
+"-498 1475 OFFCURVE",
+"-563 1475 CURVE SMOOTH",
+"-695 1475 OFFCURVE",
+"-802 1336 OFFCURVE",
+"-842 1178 CURVE",
+"-687 1178 LINE"
+);
+}
+);
+width = 0;
+}
+);
+unicode = 0303;
+},
+{
+glyphname = CombDiaer;
+layers = (
+{
+anchors = (
+{
+name = U;
+position = "{-253, 1505}";
+},
+{
+name = _U;
+position = "{-350, 1100}";
+}
+);
+layerId = master01;
+paths = (
+{
+closed = 1;
+nodes = (
+"39 1399 OFFCURVE",
+"-7 1450 OFFCURVE",
+"-72 1450 CURVE SMOOTH",
+"-167 1450 OFFCURVE",
+"-229 1372 OFFCURVE",
+"-229 1299 CURVE SMOOTH",
+"-229 1238 OFFCURVE",
+"-182 1186 OFFCURVE",
+"-118 1186 CURVE SMOOTH",
+"-33 1186 OFFCURVE",
+"39 1259 OFFCURVE",
+"39 1338 CURVE SMOOTH"
+);
+},
+{
+closed = 1;
+nodes = (
+"-381 1399 OFFCURVE",
+"-427 1450 OFFCURVE",
+"-492 1450 CURVE SMOOTH",
+"-587 1450 OFFCURVE",
+"-649 1372 OFFCURVE",
+"-649 1299 CURVE SMOOTH",
+"-649 1238 OFFCURVE",
+"-602 1186 OFFCURVE",
+"-538 1186 CURVE SMOOTH",
+"-453 1186 OFFCURVE",
+"-381 1259 OFFCURVE",
+"-381 1338 CURVE SMOOTH"
+);
+}
+);
+width = 0;
+},
+{
+anchors = (
+{
+name = U;
+position = "{-243, 1585}";
+},
+{
+name = _U;
+position = "{-365, 1100}";
+}
+);
+layerId = master02;
+paths = (
+{
+closed = 1;
+nodes = (
+"-233 1256 OFFCURVE",
+"-172 1198 OFFCURVE",
+"-86 1198 CURVE SMOOTH",
+"32 1198 OFFCURVE",
+"126 1294 OFFCURVE",
+"126 1404 CURVE SMOOTH",
+"126 1484 OFFCURVE",
+"66 1544 OFFCURVE",
+"-21 1544 CURVE SMOOTH",
+"-139 1544 OFFCURVE",
+"-233 1447 OFFCURVE",
+"-233 1338 CURVE SMOOTH"
+);
+},
+{
+closed = 1;
+nodes = (
+"-723 1256 OFFCURVE",
+"-662 1198 OFFCURVE",
+"-576 1198 CURVE SMOOTH",
+"-457 1198 OFFCURVE",
+"-363 1293 OFFCURVE",
+"-363 1404 CURVE SMOOTH",
+"-363 1484 OFFCURVE",
+"-423 1544 OFFCURVE",
+"-510 1544 CURVE SMOOTH",
+"-628 1544 OFFCURVE",
+"-723 1448 OFFCURVE",
+"-723 1338 CURVE SMOOTH"
+);
+}
+);
+width = 0;
+}
+);
+unicode = 0308;
+},
+{
+glyphname = CombRingAbv;
+layers = (
+{
+anchors = (
+{
+name = U;
+position = "{-221, 1635}";
+},
+{
+name = _U;
+position = "{-385, 1100}";
+}
+);
+layerId = master01;
+paths = (
+{
+closed = 1;
+nodes = (
+"-427 1259 OFFCURVE",
+"-456 1287 OFFCURVE",
+"-456 1329 CURVE SMOOTH",
+"-456 1400 OFFCURVE",
+"-393 1455 OFFCURVE",
+"-328 1455 CURVE SMOOTH",
+"-278 1455 OFFCURVE",
+"-248 1428 OFFCURVE",
+"-248 1385 CURVE SMOOTH",
+"-248 1314 OFFCURVE",
+"-312 1259 OFFCURVE",
+"-377 1259 CURVE SMOOTH"
+);
+},
+{
+closed = 1;
+nodes = (
+"-573 1224 OFFCURVE",
+"-498 1147 OFFCURVE",
+"-395 1147 CURVE SMOOTH",
+"-257 1147 OFFCURVE",
+"-131 1263 OFFCURVE",
+"-131 1394 CURVE SMOOTH",
+"-131 1491 OFFCURVE",
+"-206 1568 OFFCURVE",
+"-310 1568 CURVE SMOOTH",
+"-448 1568 OFFCURVE",
+"-573 1451 OFFCURVE",
+"-573 1320 CURVE SMOOTH"
+);
+}
+);
+width = 0;
+},
+{
+anchors = (
+{
+name = U;
+position = "{-221, 1635}";
+},
+{
+name = _U;
+position = "{-357, 1100}";
+}
+);
+layerId = master02;
+paths = (
+{
+closed = 1;
+nodes = (
+"-406 1292 OFFCURVE",
+"-442 1330 OFFCURVE",
+"-442 1375 CURVE SMOOTH",
+"-442 1440 OFFCURVE",
+"-385 1480 OFFCURVE",
+"-331 1480 CURVE SMOOTH",
+"-283 1480 OFFCURVE",
+"-247 1443 OFFCURVE",
+"-247 1398 CURVE SMOOTH",
+"-247 1335 OFFCURVE",
+"-301 1292 OFFCURVE",
+"-358 1292 CURVE SMOOTH"
+);
+},
+{
+closed = 1;
+nodes = (
+"-598 1238 OFFCURVE",
+"-504 1148 OFFCURVE",
+"-384 1148 CURVE SMOOTH",
+"-223 1148 OFFCURVE",
+"-92 1271 OFFCURVE",
+"-92 1424 CURVE SMOOTH",
+"-92 1534 OFFCURVE",
+"-186 1624 OFFCURVE",
+"-306 1624 CURVE SMOOTH",
+"-467 1624 OFFCURVE",
+"-598 1501 OFFCURVE",
+"-598 1348 CURVE SMOOTH"
+);
+}
+);
+width = 0;
+}
+);
+unicode = 030A;
+}
+);
+instances = (
+{
+interpolationWeight = 400;
+instanceInterpolations = {
+master01 = 1;
+};
+name = Italic;
+},
+{
+interpolationWeight = 700;
+instanceInterpolations = {
+master02 = 1;
+};
+name = "Bold Italic";
+}
+);
+manufacturer = "SIL International";
+manufacturerURL = "http://scripts.sil.org";
+unitsPerEm = 2048;
+versionMajor = 5;
+versionMinor = 550;
+}
diff --git a/tests/input/font-psf-test/source/PsfTestRoman.designspace b/tests/input/font-psf-test/source/PsfTestRoman.designspace
new file mode 100644
index 0000000..a93e3bd
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTestRoman.designspace
@@ -0,0 +1,58 @@
+<?xml version='1.0' encoding='utf-8'?>
+<designspace format="3">
+ <axes>
+ <axis default="400.0" maximum="700.0" minimum="400.0" name="weight" tag="wght">
+ <map input="400.0" output="400.0" />
+ <map input="700.0" output="700.0" />
+ <labelname xml:lang="en">Weight</labelname>
+ </axis>
+ <axis default="100.0" maximum="100.0" minimum="100.0" name="width" tag="wdth">
+ <map input="100.0" output="100.0" />
+ <labelname xml:lang="en">Width</labelname>
+ </axis>
+ <axis default="0.0" maximum="0.0" minimum="0.0" name="custom" tag="XXXX">
+ <map input="0.0" output="0.0" />
+ <labelname xml:lang="en">Custom</labelname>
+ </axis>
+ </axes>
+ <sources>
+ <source familyname="Psf Test" filename="PsfTest-Regular.ufo" name="Psf Test Regular" stylename="Regular">
+ <lib copy="1" />
+ <groups copy="1" />
+ <features copy="1" />
+ <info copy="1" />
+ <location>
+ <dimension name="weight" xvalue="400.000000" />
+ <dimension name="width" xvalue="100.000000" />
+ <dimension name="custom" xvalue="0.000000" />
+ </location>
+ </source>
+ <source familyname="Psf Test" filename="PsfTest-Bold.ufo" name="Psf Test Bold" stylename="Bold">
+ <location>
+ <dimension name="weight" xvalue="700.000000" />
+ <dimension name="width" xvalue="100.000000" />
+ <dimension name="custom" xvalue="0.000000" />
+ </location>
+ </source>
+ </sources>
+ <instances>
+ <instance familyname="Psf Test" filename="PsfTest-Regular.ufo" name="Psf Test Regular" stylemapfamilyname="Psf Test" stylemapstylename="regular" stylename="Regular">
+ <location>
+ <dimension name="weight" xvalue="400.000000" />
+ <dimension name="width" xvalue="100.000000" />
+ <dimension name="custom" xvalue="0.000000" />
+ </location>
+ <info />
+ <kerning />
+ </instance>
+ <instance familyname="Psf Test" filename="PsfTest-Bold.ufo" name="Psf Test Bold" stylemapfamilyname="Psf Test" stylemapstylename="bold" stylename="Bold">
+ <location>
+ <dimension name="weight" xvalue="700.000000" />
+ <dimension name="width" xvalue="100.000000" />
+ <dimension name="custom" xvalue="0.000000" />
+ </location>
+ <info />
+ <kerning />
+ </instance>
+ </instances>
+</designspace>
diff --git a/tests/input/font-psf-test/source/PsfTestRoman.glyphs b/tests/input/font-psf-test/source/PsfTestRoman.glyphs
new file mode 100644
index 0000000..3767f74
--- /dev/null
+++ b/tests/input/font-psf-test/source/PsfTestRoman.glyphs
@@ -0,0 +1,12025 @@
+{
+.appVersion = "1165";
+copyright = "Copyright (c) 2004-2021 SIL International";
+customParameters = (
+{
+name = glyphOrder;
+value = (
+.notdef,
+.null,
+nonmarkingreturn,
+Space,
+ExclamationMrk,
+QuotMrk,
+NumSgn,
+DollarSgn,
+PercentSgn,
+Ampersand,
+Apos,
+LftParen,
+RtParen,
+Asterisk,
+PlusSgn,
+Comma,
+HyphenMinus,
+FullStop,
+Solidus,
+DigitZero,
+DigitOne,
+DigitTwo,
+DigitThree,
+DigitFour,
+DigitFive,
+DigitSix,
+DigitSeven,
+DigitEight,
+DigitNine,
+Colon,
+Semicolon,
+LTSgn,
+EqSgn,
+GTSgn,
+QstnMrk,
+AtSgn,
+LtnCapA,
+LtnCapA.alt,
+LtnCapB,
+LtnCapC,
+LtnCapD,
+LtnCapE,
+LtnCapF,
+LtnCapG,
+LtnCapH,
+LtnCapI,
+LtnCapJ,
+LtnCapK,
+LtnCapL,
+LtnCapM,
+LtnCapN,
+LtnCapO,
+LtnCapP,
+LtnCapQ,
+LtnCapR,
+LtnCapS,
+LtnCapT,
+LtnCapU,
+LtnCapV,
+LtnCapW,
+LtnCapX,
+LtnCapY,
+LftSqrBrac,
+ReverseSolidus,
+RtSqrBrac,
+CircumAccent,
+LowLine,
+GraveAccent,
+LtnSmA,
+LtnSmB,
+LtnSmC,
+LtnSmD,
+LtnSmE,
+LtnSmF,
+LtnSmG,
+LtnSmH,
+LtnSmI,
+LtnSmJ,
+LtnSmK,
+LtnSmL,
+LtnSmM,
+LtnSmN,
+LtnSmO,
+LtnSmP,
+LtnSmQ,
+LtnSmR,
+LtnSmS,
+LtnSmT,
+LtnSmU,
+LtnSmV,
+LtnSmW,
+LtnSmX,
+LtnSmY,
+LftCurlyBrac,
+VertLine,
+RtCurlyBrac,
+Tilde,
+LtnCapADiaer,
+LtnSmAAcute,
+LtnSmAGrave,
+LtnSmACircum,
+LtnSmADiaer,
+LtnSmATilde,
+LtnSmARingAbv,
+DottedCirc,
+Hyphen,
+NonBreakingHyphen,
+Hyphen_Soft,
+CombAcute,
+CombGrave,
+CombCircum,
+CombTilde,
+CombDiaer,
+CombRingAbv
+);
+},
+{
+name = "Disable Last Change";
+value = 1;
+},
+{
+name = note;
+value = "Test note\012Second line\012\012Third line\012";
+},
+{
+name = description;
+value = "Copyright (c) 2004-2021 SIL International";
+},
+{
+name = openTypeNameLicense;
+value = "Copyright (c) 2004-2021 SIL International (http://www.sil.org/) with Reserved Font Names \"Andika\" and \"SIL\".\012\012This Font Software is licensed under the SIL Open Font License, Version 1.1. This license is copied below, and is also available with a FAQ at: http://scripts.sil.org/OFL\012\012\012-----------------------------------------------------------\012SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007\012-----------------------------------------------------------\012\012PREAMBLE\012The goals of the Open Font License (OFL) are to stimulate worldwide development of collaborative font projects, to support the font creation efforts of academic and linguistic communities, and to provide a free and open framework in which fonts may be shared and improved in partnership with others.\012\012The OFL allows the licensed fonts to be used, studied, modified and redistributed freely as long as they are not sold by themselves. The fonts, including any derivative works, can be bundled, embedded, redistributed and/or sold with any software provided that any reserved names are not used by derivative works. The fonts and derivatives, however, cannot be released under any other type of license. The requirement for fonts to remain under this license does not apply to any document created using the fonts or their derivatives.\012\012DEFINITIONS\012\"Font Software\" refers to the set of files released by the Copyright Holder(s) under this license and clearly marked as such. This may include source files, build scripts and documentation.\012\012\"Reserved Font Name\" refers to any names specified as such after the copyright statement(s).\012\012\"Original Version\" refers to the collection of Font Software components as distributed by the Copyright Holder(s).\012\012\"Modified Version\" refers to any derivative made by adding to, deleting, or substituting -- in part or in whole -- any of the components of the Original Version, by changing formats or by porting the Font Software to a new environment.\012\012\"Author\" refers to any designer, engineer, programmer, technical writer or other person who contributed to the Font Software.\012\012PERMISSION & CONDITIONS\012Permission is hereby granted, free of charge, to any person obtaining a copy of the Font Software, to use, study, copy, merge, embed, modify, redistribute, and sell modified and unmodified copies of the Font Software, subject to the following conditions:\012\0121) Neither the Font Software nor any of its individual components, in Original or Modified Versions, may be sold by itself.\012\0122) Original or Modified Versions of the Font Software may be bundled, redistributed and/or sold with any software, provided that each copy contains the above copyright notice and this license. These can be included either as stand-alone text files, human-readable headers or in the appropriate machine-readable metadata fields within text or binary files as long as those fields can be easily viewed by the user.\012\0123) No Modified Version of the Font Software may use the Reserved Font Name(s) unless explicit written permission is granted by the corresponding Copyright Holder. This restriction only applies to the primary font name as presented to the users.\012\0124) The name(s) of the Copyright Holder(s) or the Author(s) of the Font Software shall not be used to promote, endorse or advertise any Modified Version, except to acknowledge the contribution(s) of the Copyright Holder(s) and the Author(s) or with their explicit written permission.\012\0125) The Font Software, modified or unmodified, in part or in whole, must be distributed entirely under this license, and must not be distributed under any other license. The requirement for fonts to remain under this license does not apply to any document created using the Font Software.\012\012TERMINATION\012This license becomes null and void if any of the above conditions are not met.\012\012DISCLAIMER\012THE FONT SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM OTHER DEALINGS IN THE FONT SOFTWARE.";
+},
+{
+name = openTypeNameLicenseURL;
+value = "http://scripts.sil.org/OFL";
+},
+{
+name = openTypeNameUniqueID;
+value = "SIL International: Psf Test Regular: 2021";
+},
+{
+name = openTypeNameVersion;
+value = "Version 5.550";
+},
+{
+name = codePageRanges;
+value = (
+1252,
+1250,
+1251,
+1254,
+1257,
+1258
+);
+},
+{
+name = openTypeOS2FamilyClass;
+value = (
+0,
+0
+);
+},
+{
+name = openTypeOS2Panose;
+value = (
+2,
+0,
+0,
+0,
+0,
+0,
+0,
+0,
+0,
+0
+);
+},
+{
+name = openTypeOS2StrikeoutPosition;
+value = 700;
+},
+{
+name = openTypeOS2StrikeoutSize;
+value = 100;
+},
+{
+name = openTypeOS2SubscriptXOffset;
+value = 0;
+},
+{
+name = openTypeOS2SubscriptXSize;
+value = 1433;
+},
+{
+name = openTypeOS2SubscriptYOffset;
+value = 286;
+},
+{
+name = openTypeOS2SubscriptYSize;
+value = 1331;
+},
+{
+name = openTypeOS2SuperscriptXOffset;
+value = 0;
+},
+{
+name = openTypeOS2SuperscriptXSize;
+value = 1433;
+},
+{
+name = openTypeOS2SuperscriptYOffset;
+value = 976;
+},
+{
+name = openTypeOS2SuperscriptYSize;
+value = 1331;
+},
+{
+name = fsType;
+value = (
+);
+},
+{
+name = unicodeRanges;
+value = (
+0,
+1,
+6,
+7,
+31,
+33,
+35,
+36,
+37,
+38,
+39,
+40,
+45,
+46,
+47,
+57,
+60,
+62,
+64,
+67,
+69,
+89
+);
+},
+{
+name = vendorID;
+value = SIL;
+},
+{
+name = trademark;
+value = "Andika is a trademark of SIL International.";
+}
+);
+date = "2021-01-01 11:00:00 +0000";
+designer = "Victor Gaultney, Annie Olsen, Julie Remington, Don Collingsworth, Eric Hays, Becca Hirsbrunner";
+designerURL = "http://scripts.sil.org/";
+disablesAutomaticAlignment = 1;
+disablesNiceNames = 1;
+familyName = "Psf Test";
+fontMaster = (
+{
+alignmentZones = (
+"{1600, 20}",
+"{1455, 30}",
+"{1020, 20}",
+"{0, -25}",
+"{-490, 0}"
+);
+ascender = 2100;
+capHeight = 1485;
+customParameters = (
+{
+name = typoAscender;
+value = 2100;
+},
+{
+name = typoDescender;
+value = -550;
+},
+{
+name = typoLineGap;
+value = 0;
+},
+{
+name = hheaAscender;
+value = 2100;
+},
+{
+name = hheaDescender;
+value = -550;
+},
+{
+name = hheaLineGap;
+value = 0;
+},
+{
+name = winAscent;
+value = 2100;
+},
+{
+name = winDescent;
+value = 550;
+},
+{
+name = underlineThickness;
+value = 80;
+},
+{
+name = underlinePosition;
+value = -110;
+}
+);
+descender = -550;
+guideLines = (
+{
+position = "{1084, 1040}";
+},
+{
+position = "{0, 1250}";
+}
+);
+horizontalStems = (
+140,
+145,
+150,
+155,
+160,
+165,
+170,
+175,
+185,
+270
+);
+id = master01;
+verticalStems = (
+165,
+180,
+185,
+190,
+195,
+200,
+205,
+270
+);
+weightValue = 400;
+xHeight = 1040;
+},
+{
+alignmentZones = (
+"{1600, 20}",
+"{1455, 30}",
+"{1020, 20}",
+"{0, -25}",
+"{-490, 0}"
+);
+ascender = 2100;
+capHeight = 1485;
+customParameters = (
+{
+name = typoAscender;
+value = 2100;
+},
+{
+name = typoDescender;
+value = -550;
+},
+{
+name = typoLineGap;
+value = 0;
+},
+{
+name = hheaAscender;
+value = 2100;
+},
+{
+name = hheaDescender;
+value = -550;
+},
+{
+name = hheaLineGap;
+value = 0;
+},
+{
+name = winAscent;
+value = 2100;
+},
+{
+name = winDescent;
+value = 550;
+},
+{
+name = underlineThickness;
+value = 80;
+},
+{
+name = underlinePosition;
+value = -110;
+}
+);
+descender = -550;
+horizontalStems = (
+140,
+145,
+150,
+155,
+160,
+165,
+170,
+175,
+185,
+270
+);
+id = master02;
+verticalStems = (
+165,
+180,
+185,
+190,
+195,
+200,
+205,
+270
+);
+weight = Bold;
+weightValue = 700;
+xHeight = 1040;
+}
+);
+glyphs = (
+{
+glyphname = .notdef;
+layers = (
+{
+layerId = master01;
+paths = (
+{
+closed = 1;
+nodes = (
+"1300 0 LINE",
+"1300 1800 LINE",
+"100 1800 LINE",
+"100 0 LINE"
+);
+},
+{
+closed = 1;
+nodes = (
+"1250 1750 LINE",
+"1250 50 LINE",
+"150 50 LINE",
+"150 1750 LINE"
+);
+}
+);
+width = 1400;
+},
+{
+layerId = master02;
+paths = (
+{
+closed = 1;
+nodes = (
+"1300 0 LINE",
+"1300 1800 LINE",
+"100 1800 LINE",
+"100 0 LINE"
+);
+},
+{
+closed = 1;
+nodes = (
+"1250 1750 LINE",
+"1250 50 LINE",
+"150 50 LINE",
+"150 1750 LINE"
+);
+}
+);
+width = 1400;
+}
+);
+},
+{
+glyphname = .null;
+layers = (
+{
+layerId = master01;
+width = 0;
+},
+{
+layerId = master02;
+width = 0;
+}
+);
+},
+{
+glyphname = nonmarkingreturn;
+layers = (
+{
+layerId = master01;
+width = 1024;
+},
+{
+layerId = master02;
+width = 1024;
+}
+);
+},
+{
+glyphname = Space;
+layers = (
+{
+layerId = master01;
+width = 550;
+},
+{
+layerId = master02;
+width = 550;
+}
+);
+unicode = 0020;
+},
+{
+glyphname = ExclamationMrk;
+layers = (
+{
+layerId = master01;
+paths = (
+{
+closed = 1;
+nodes = (
+"456 730 OFFCURVE",
+"451 1076 OFFCURVE",
+"490 1510 CURVE",
+"235 1510 LINE",
+"273 1076 OFFCURVE",
+"268 730 OFFCURVE",
+"275 440 CURVE",
+"450 440 LINE"
+);
+},
+{
+closed = 1;
+nodes = (
+"225 36 OFFCURVE",
+"286 -25 OFFCURVE",
+"360 -25 CURVE SMOOTH",
+"434 -25 OFFCURVE",
+"495 36 OFFCURVE",
+"495 110 CURVE SMOOTH",
+"495 184 OFFCURVE",
+"434 245 OFFCURVE",
+"360 245 CURVE SMOOTH",
+"286 245 OFFCURVE",
+"225 184 OFFCURVE",
+"225 110 CURVE SMOOTH"
+);
+}
+);
+width = 764;
+},
+{
+layerId = master02;
+paths = (
+{
+closed = 1;
+nodes = (
+"536 790 OFFCURVE",
+"531 1076 OFFCURVE",
+"570 1510 CURVE",
+"235 1510 LINE",
+"273 1076 OFFCURVE",
+"268 790 OFFCURVE",
+"275 500 CURVE",
+"530 500 LINE"
+);
+},
+{
+closed = 1;
+nodes = (
+"230 46 OFFCURVE",
+"304 -25 OFFCURVE",
+"405 -25 CURVE SMOOTH",
+"507 -25 OFFCURVE",
+"580 46 OFFCURVE",
+"580 150 CURVE SMOOTH",
+"580 252 OFFCURVE",
+"507 325 OFFCURVE",
+"405 325 CURVE SMOOTH",
+"304 325 OFFCURVE",
+"230 252 OFFCURVE",
+"230 150 CURVE SMOOTH"
+);
+}
+);
+width = 780;
+}
+);
+unicode = 0021;
+},
+{
+glyphname = QuotMrk;
+layers = (
+{
+layerId = master01;
+paths = (
+{
+closed = 1;
+nodes = (
+"410 1186 OFFCURVE",
+"416 1339 OFFCURVE",
+"445 1585 CURVE",
+"240 1585 LINE",
+"271 1339 OFFCURVE",
+"276 1186 OFFCURVE",
+"280 1045 CURVE",
+"405 1045 LINE"
+);
+},
+{
+closed = 1;
+nodes = (
+"750 1186 OFFCURVE",
+"756 1339 OFFCURVE",
+"785 1585 CURVE",
+"580 1585 LINE",
+"611 1339 OFFCURVE",
+"616 1186 OFFCURVE",
+"620 1045 CURVE",
+"745 1045 LINE"
+);
+}
+);
+width = 1025;
+},
+{
+layerId = master02;
+paths = (
+{
+closed = 1;
+nodes = (
+"455 1186 OFFCURVE",
+"456 1339 OFFCURVE",
+"485 1585 CURVE",
+"240 1585 LINE",
+"271 1339 OFFCURVE",
+"271 1186 OFFCURVE",
+"275 1045 CURVE",
+"450 1045 LINE"
+);
+},
+{
+closed = 1;
+nodes = (
+"815 1186 OFFCURVE",
+"816 1339 OFFCURVE",
+"845 1585 CURVE",
+"600 1585 LINE",
+"631 1339 OFFCURVE",
+"631 1186 OFFCURVE",
+"635 1045 CURVE",
+"810 1045 LINE"
+);
+}
+);
+width = 1085;
+}
+);
+unicode = 0022;
+},
+{
+glyphname = NumSgn;
+layers = (
+{
+layerId = master01;
+paths = (
+{
+closed = 1;
+nodes = (
+"127 200 LINE",
+"277 200 LINE",
+"637 1460 LINE",
+"487 1460 LINE"
+);
+},
+{
+closed = 1;
+nodes = (
+"1116 575 LINE",
+"1116 725 LINE",
+"25 725 LINE",
+"25 575 LINE"
+);
+},
+{
+closed = 1;
+nodes = (
+"1175 960 LINE",
+"1175 1110 LINE",
+"84 1110 LINE",
+"84 960 LINE"
+);
+},
+{
+closed = 1;
+nodes = (
+"552 200 LINE",
+"702 200 LINE",
+"1062 1460 LINE",
+"912 1460 LINE"
+);
+}
+);
+width = 1200;
+},
+{
+layerId = master02;
+paths = (
+{
+closed = 1;
+nodes = (
+"52 100 LINE",
+"272 100 LINE",
+"632 1360 LINE",
+"412 1360 LINE"
+);
+},
+{
+closed = 1;
+nodes = (
+"1101 425 LINE",
+"1101 635 LINE",
+"10 635 LINE",
+"10 425 LINE"
+);
+},
+{
+closed = 1;
+nodes = (
+"1160 850 LINE",
+"1160 1060 LINE",
+"69 1060 LINE",
+"69 850 LINE"
+);
+},
+{
+closed = 1;
+nodes = (
+"527 100 LINE",
+"747 100 LINE",
+"1107 1360 LINE",
+"887 1360 LINE"
+);
+}
+);
+width = 1200;
+}
+);
+unicode = 0023;
+},
+{
+glyphname = DollarSgn;
+layers = (
+{
+layerId = master01;
+paths = (
+{
+closed = 1;
+nodes = (
+"553 -220 LINE",
+"683 -220 LINE",
+"683 1600 LINE",
+"553 1600 LINE"
+);
+},
+{
+closed = 1;
+nodes = (
+"866 1364 OFFCURVE",
+"764 1389 OFFCURVE",
+"623 1389 CURVE SMOOTH",
+"317 1389 OFFCURVE",
+"190 1173 OFFCURVE",
+"190 1017 CURVE SMOOTH",
+"190 860 OFFCURVE",
+"253 739 OFFCURVE",
+"540 653 CURVE SMOOTH",
+"827 567 OFFCURVE",
+"871 492 OFFCURVE",
+"871 396 CURVE SMOOTH",
+"871 247 OFFCURVE",
+"734 161 OFFCURVE",
+"586 161 CURVE SMOOTH",
+"450 161 OFFCURVE",
+"316 207 OFFCURVE",
+"195 313 CURVE",
+"153 124 LINE",
+"247 52 OFFCURVE",
+"408 0 OFFCURVE",
+"586 0 CURVE SMOOTH",
+"837 0 OFFCURVE",
+"1046 167 OFFCURVE",
+"1046 414 CURVE SMOOTH",
+"1046 613 OFFCURVE",
+"912 725 OFFCURVE",
+"669 796 CURVE SMOOTH",
+"406 873 OFFCURVE",
+"365 929 OFFCURVE",
+"365 1030 CURVE SMOOTH",
+"365 1132 OFFCURVE",
+"466 1228 OFFCURVE",
+"613 1228 CURVE SMOOTH",
+"731 1228 OFFCURVE",
+"818 1200 OFFCURVE",
+"949 1127 CURVE",
+"986 1306 LINE"
+);
+}
+);
+width = 1200;
+},
+{
+layerId = master02;
+paths = (
+{
+closed = 1;
+nodes = (
+"886 1374 OFFCURVE",
+"764 1389 OFFCURVE",
+"623 1389 CURVE SMOOTH",
+"317 1389 OFFCURVE",
+"150 1203 OFFCURVE",
+"150 1017 CURVE SMOOTH",
+"150 830 OFFCURVE",
+"275 730 OFFCURVE",
+"540 623 CURVE SMOOTH",
+"802 517 OFFCURVE",
+"851 472 OFFCURVE",
+"851 386 CURVE SMOOTH",
+"851 267 OFFCURVE",
+"744 211 OFFCURVE",
+"586 211 CURVE SMOOTH",
+"440 211 OFFCURVE",
+"297 281 OFFCURVE",
+"195 383 CURVE",
+"123 124 LINE",
+"216 49 OFFCURVE",
+"388 0 OFFCURVE",
+"586 0 CURVE SMOOTH",
+"847 0 OFFCURVE",
+"1086 147 OFFCURVE",
+"1086 414 CURVE SMOOTH",
+"1086 633 OFFCURVE",
+"927 723 OFFCURVE",
+"679 826 CURVE SMOOTH",
+"431 929 OFFCURVE",
+"385 969 OFFCURVE",
+"385 1040 CURVE SMOOTH",
+"385 1132 OFFCURVE",
+"466 1188 OFFCURVE",
+"613 1188 CURVE SMOOTH",
+"741 1188 OFFCURVE",
+"876 1154 OFFCURVE",
+"949 1077 CURVE",
+"1006 1316 LINE"
+);
+},
+{
+closed = 1;
+nodes = (
+"548 788 LINE",
+"518 726 LINE",
+"518 -220 LINE",
+"688 -220 LINE",
+"688 668 LINE",
+"718 734 LINE",
+"718 1600 LINE",
+"548 1600 LINE"
+);
+}
+);
+width = 1200;
+}
+);
+unicode = 0024;
+},
+{
+glyphname = PercentSgn;
+layers = (
+{
+layerId = master01;
+paths = (
+{
+closed = 1;
+nodes = (
+"1261 182 OFFCURVE",
+"1216 115 OFFCURVE",
+"1130 115 CURVE SMOOTH",
+"1041 115 OFFCURVE",
+"1001 181 OFFCURVE",
+"1001 381 CURVE SMOOTH",
+"1001 565 OFFCURVE",
+"1043 630 OFFCURVE",
+"1130 630 CURVE SMOOTH",
+"1221 630 OFFCURVE",
+"1261 566 OFFCURVE",
+"1261 366 CURVE SMOOTH"
+);
+},
+{
+closed = 1;
+nodes = (
+"1426 652 OFFCURVE",
+"1310 770 OFFCURVE",
+"1135 770 CURVE SMOOTH",
+"961 770 OFFCURVE",
+"836 650 OFFCURVE",
+"836 368 CURVE SMOOTH",
+"836 86 OFFCURVE",
+"951 -25 OFFCURVE",
+"1126 -25 CURVE SMOOTH",
+"1301 -25 OFFCURVE",
+"1426 84 OFFCURVE",
+"1426 379 CURVE SMOOTH"
+);
+},
+{
+closed = 1;
+nodes = (
+"291 -25 LINE",
+"459 -25 LINE",
+"1239 1480 LINE",
+"1073 1480 LINE"
+);
+},
+{
+closed = 1;
+nodes = (
+"525 892 OFFCURVE",
+"480 825 OFFCURVE",
+"394 825 CURVE SMOOTH",
+"305 825 OFFCURVE",
+"265 891 OFFCURVE",
+"265 1091 CURVE SMOOTH",
+"265 1275 OFFCURVE",
+"307 1340 OFFCURVE",
+"394 1340 CURVE SMOOTH",
+"485 1340 OFFCURVE",
+"525 1276 OFFCURVE",
+"525 1076 CURVE SMOOTH"
+);
+},
+{
+closed = 1;
+nodes = (
+"690 1362 OFFCURVE",
+"574 1480 OFFCURVE",
+"399 1480 CURVE SMOOTH",
+"225 1480 OFFCURVE",
+"100 1360 OFFCURVE",
+"100 1078 CURVE SMOOTH",
+"100 796 OFFCURVE",
+"215 685 OFFCURVE",
+"390 685 CURVE SMOOTH",
+"565 685 OFFCURVE",
+"690 794 OFFCURVE",
+"690 1089 CURVE SMOOTH"
+);
+}
+);
+width = 1526;
+},
+{
+layerId = master02;
+paths = (
+{
+closed = 1;
+nodes = (
+"291 -25 LINE",
+"499 -25 LINE",
+"1279 1480 LINE",
+"1073 1480 LINE"
+);
+},
+{
+closed = 1;
+nodes = (
+"511 892 OFFCURVE",
+"470 815 OFFCURVE",
+"394 815 CURVE SMOOTH",
+"315 815 OFFCURVE",
+"279 891 OFFCURVE",
+"279 1091 CURVE SMOOTH",
+"279 1275 OFFCURVE",
+"317 1350 OFFCURVE",
+"394 1350 CURVE SMOOTH",
+"475 1350 OFFCURVE",
+"511 1276 OFFCURVE",
+"511 1076 CURVE SMOOTH"
+);
+},
+{
+closed = 1;
+nodes = (
+"721 1362 OFFCURVE",
+"584 1480 OFFCURVE",
+"399 1480 CURVE SMOOTH",
+"215 1480 OFFCURVE",
+"69 1360 OFFCURVE",
+"69 1078 CURVE SMOOTH",
+"69 796 OFFCURVE",
+"205 685 OFFCURVE",
+"390 685 CURVE SMOOTH",
+"575 685 OFFCURVE",
+"721 794 OFFCURVE",
+"721 1089 CURVE SMOOTH"
+);
+},
+{
+closed = 1;
+nodes = (
+"1286 182 OFFCURVE",
+"1245 105 OFFCURVE",
+"1169 105 CURVE SMOOTH",
+"1090 105 OFFCURVE",
+"1054 181 OFFCURVE",
+"1054 381 CURVE SMOOTH",
+"1054 565 OFFCURVE",
+"1092 640 OFFCURVE",
+"1169 640 CURVE SMOOTH",
+"1250 640 OFFCURVE",
+"1286 566 OFFCURVE",
+"1286 366 CURVE SMOOTH"
+);
+},
+{
+closed = 1;
+nodes = (
+"1496 652 OFFCURVE",
+"1359 770 OFFCURVE",
+"1174 770 CURVE SMOOTH",
+"990 770 OFFCURVE",
+"844 650 OFFCURVE",
+"844 368 CURVE SMOOTH",
+"844 86 OFFCURVE",
+"980 -25 OFFCURVE",
+"1165 -25 CURVE SMOOTH",
+"1350 -25 OFFCURVE",
+"1496 84 OFFCURVE",
+"1496 379 CURVE SMOOTH"
+);
+}
+);
+width = 1565;
+}
+);
+unicode = 0025;
+},
+{
+glyphname = Ampersand;
+layers = (
+{
+layerId = master01;
+paths = (
+{
+closed = 1;
+nodes = (
+"331 1485 OFFCURVE",
+"155 1412 OFFCURVE",
+"155 1190 CURVE SMOOTH",
+"155 1010 OFFCURVE",
+"362 815 OFFCURVE",
+"535 570 CURVE SMOOTH",
+"794 202 OFFCURVE",
+"973 -25 OFFCURVE",
+"1025 -25 CURVE SMOOTH",
+"1060 -25 OFFCURVE",
+"1138 38 OFFCURVE",
+"1175 70 CURVE",
+"1080 110 OFFCURVE",
+"914 297 OFFCURVE",
+"650 680 CURVE SMOOTH",
+"494 906 OFFCURVE",
+"315 1075 OFFCURVE",
+"315 1200 CURVE SMOOTH",
+"315 1291 OFFCURVE",
+"398 1350 OFFCURVE",
+"475 1350 CURVE SMOOTH",
+"555 1350 OFFCURVE",
+"630 1294 OFFCURVE",
+"630 1205 CURVE SMOOTH",
+"630 1116 OFFCURVE",
+"523 1001 OFFCURVE",
+"350 840 CURVE SMOOTH",
+"146 651 OFFCURVE",
+"55 527 OFFCURVE",
+"55 375 CURVE SMOOTH",
+"55 151 OFFCURVE",
+"217 -25 OFFCURVE",
+"440 -25 CURVE SMOOTH",
+"713 -25 OFFCURVE",
+"1002 274 OFFCURVE",
+"1080 435 CURVE",
+"975 570 LINE",
+"911 403 OFFCURVE",
+"630 150 OFFCURVE",
+"455 150 CURVE SMOOTH",
+"310 150 OFFCURVE",
+"230 267 OFFCURVE",
+"230 380 CURVE SMOOTH",
+"230 490 OFFCURVE",
+"296 587 OFFCURVE",
+"470 740 CURVE SMOOTH",
+"651 899 OFFCURVE",
+"790 1068 OFFCURVE",
+"790 1200 CURVE SMOOTH",
+"790 1382 OFFCURVE",
+"642 1485 OFFCURVE",
+"490 1485 CURVE SMOOTH"
+);
+}
+);
+width = 1222;
+},
+{
+layerId = master02;
+paths = (
+{
+closed = 1;
+nodes = (
+"996 433 OFFCURVE",
+"715 190 OFFCURVE",
+"540 190 CURVE SMOOTH",
+"425 190 OFFCURVE",
+"335 257 OFFCURVE",
+"335 370 CURVE SMOOTH",
+"335 480 OFFCURVE",
+"411 547 OFFCURVE",
+"585 700 CURVE SMOOTH",
+"766 859 OFFCURVE",
+"925 1048 OFFCURVE",
+"925 1190 CURVE SMOOTH",
+"925 1372 OFFCURVE",
+"777 1485 OFFCURVE",
+"575 1485 CURVE SMOOTH",
+"366 1485 OFFCURVE",
+"190 1372 OFFCURVE",
+"190 1160 CURVE SMOOTH",
+"190 1000 OFFCURVE",
+"407 785 OFFCURVE",
+"590 540 CURVE SMOOTH",
+"859 179 OFFCURVE",
+"1038 -25 OFFCURVE",
+"1090 -25 CURVE SMOOTH",
+"1125 -25 OFFCURVE",
+"1253 58 OFFCURVE",
+"1290 90 CURVE",
+"1195 130 OFFCURVE",
+"1060 305 OFFCURVE",
+"785 680 CURVE SMOOTH",
+"619 906 OFFCURVE",
+"420 1085 OFFCURVE",
+"420 1170 CURVE SMOOTH",
+"420 1241 OFFCURVE",
+"483 1310 OFFCURVE",
+"560 1310 CURVE SMOOTH",
+"640 1310 OFFCURVE",
+"695 1254 OFFCURVE",
+"695 1175 CURVE SMOOTH",
+"695 1106 OFFCURVE",
+"628 1001 OFFCURVE",
+"455 840 CURVE SMOOTH",
+"251 651 OFFCURVE",
+"90 527 OFFCURVE",
+"90 344 CURVE SMOOTH",
+"90 121 OFFCURVE",
+"242 -25 OFFCURVE",
+"525 -25 CURVE SMOOTH",
+"808 -25 OFFCURVE",
+"1117 264 OFFCURVE",
+"1195 425 CURVE",
+"1060 600 LINE"
+);
+}
+);
+width = 1355;
+}
+);
+unicode = 0026;
+},
+{
+glyphname = Apos;
+layers = (
+{
+layerId = master01;
+paths = (
+{
+closed = 1;
+nodes = (
+"370 1186 OFFCURVE",
+"376 1339 OFFCURVE",
+"405 1585 CURVE",
+"200 1585 LINE",
+"231 1339 OFFCURVE",
+"236 1186 OFFCURVE",
+"240 1045 CURVE",
+"365 1045 LINE"
+);
+}
+);
+width = 605;
+},
+{
+layerId = master02;
+paths = (
+{
+closed = 1;
+nodes = (
+"405 1186 OFFCURVE",
+"406 1339 OFFCURVE",
+"435 1585 CURVE",
+"190 1585 LINE",
+"221 1339 OFFCURVE",
+"221 1186 OFFCURVE",
+"225 1045 CURVE",
+"400 1045 LINE"
+);
+}
+);
+width = 625;
+}
+);
+unicode = 0027;
+},
+{
+glyphname = LftParen;
+layers = (
+{
+layerId = master01;
+paths = (
+{
+closed = 1;
+nodes = (
+"115 218 OFFCURVE",
+"260 -125 OFFCURVE",
+"535 -410 CURVE",
+"630 -265 LINE",
+"395 -8 OFFCURVE",
+"305 278 OFFCURVE",
+"305 625 CURVE SMOOTH",
+"305 982 OFFCURVE",
+"395 1280 OFFCURVE",
+"630 1485 CURVE",
+"555 1640 LINE",
+"290 1444 OFFCURVE",
+"115 1062 OFFCURVE",
+"115 625 CURVE SMOOTH"
+);
+}
+);
+width = 795;
+},
+{
+layerId = master02;
+paths = (
+{
+closed = 1;
+nodes = (
+"290 1444 OFFCURVE",
+"115 1062 OFFCURVE",
+"115 625 CURVE SMOOTH",
+"115 218 OFFCURVE",
+"260 -125 OFFCURVE",
+"535 -410 CURVE",
+"686 -240 LINE",
+"462 11 OFFCURVE",
+"376 335 OFFCURVE",
+"376 635 CURVE SMOOTH",
+"376 938 OFFCURVE",
+"466 1261 OFFCURVE",
+"676 1455 CURVE",
+"555 1640 LINE"
+);
+}
+);
+width = 860;
+}
+);
+unicode = 0028;
+},
+{
+glyphname = RtParen;
+layers = (
+{
+layerId = master01;
+paths = (
+{
+closed = 1;
+nodes = (
+"680 1062 OFFCURVE",
+"505 1444 OFFCURVE",
+"240 1640 CURVE",
+"165 1485 LINE",
+"390 1280 OFFCURVE",
+"490 962 OFFCURVE",
+"490 625 CURVE SMOOTH",
+"490 278 OFFCURVE",
+"390 -8 OFFCURVE",
+"165 -265 CURVE",
+"260 -410 LINE",
+"535 -125 OFFCURVE",
+"680 218 OFFCURVE",
+"680 625 CURVE SMOOTH"
+);
+}
+);
+width = 795;
+},
+{
+layerId = master02;
+paths = (
+{
+closed = 1;
+nodes = (
+"395 1261 OFFCURVE",
+"485 938 OFFCURVE",
+"485 635 CURVE SMOOTH",
+"485 335 OFFCURVE",
+"399 11 OFFCURVE",
+"175 -240 CURVE",
+"326 -410 LINE",
+"601 -125 OFFCURVE",
+"746 218 OFFCURVE",
+"746 625 CURVE SMOOTH",
+"746 1062 OFFCURVE",
+"571 1444 OFFCURVE",
+"306 1640 CURVE",
+"185 1455 LINE"
+);
+}
+);
+width = 860;
+}
+);
+unicode = 0029;
+},
+{
+glyphname = Asterisk;
+layers = (
+{
+layerId = master01;
+paths = (
+{
+closed = 1;
+nodes = (
+"415 1600 LINE",
+"434 1467 OFFCURVE",
+"447 1387 OFFCURVE",
+"450 1300 CURVE",
+"376 1344 OFFCURVE",
+"309 1387 OFFCURVE",
+"200 1465 CURVE",
+"125 1340 LINE",
+"250 1290 OFFCURVE",
+"327 1261 OFFCURVE",
+"405 1220 CURVE",
+"329 1177 OFFCURVE",
+"256 1140 OFFCURVE",
+"135 1085 CURVE",
+"205 960 LINE",
+"310 1042 OFFCURVE",
+"377 1094 OFFCURVE",
+"450 1140 CURVE",
+"448 1055 OFFCURVE",
+"442 973 OFFCURVE",
+"430 840 CURVE",
+"570 840 LINE",
+"550 973 OFFCURVE",
+"544 1052 OFFCURVE",
+"540 1140 CURVE",
+"614 1095 OFFCURVE",
+"681 1053 OFFCURVE",
+"790 975 CURVE",
+"865 1100 LINE",
+"739 1149 OFFCURVE",
+"663 1179 OFFCURVE",
+"585 1220 CURVE",
+"661 1261 OFFCURVE",
+"733 1299 OFFCURVE",
+"855 1355 CURVE",
+"785 1480 LINE",
+"680 1396 OFFCURVE",
+"614 1348 OFFCURVE",
+"540 1300 CURVE",
+"541 1387 OFFCURVE",
+"547 1467 OFFCURVE",
+"560 1600 CURVE"
+);
+}
+);
+width = 1028;
+},
+{
+layerId = master02;
+paths = (
+{
+closed = 1;
+nodes = (
+"747 1426 OFFCURVE",
+"679 1367 OFFCURVE",
+"594 1308 CURVE",
+"599 1405 OFFCURVE",
+"609 1486 OFFCURVE",
+"624 1600 CURVE",
+"425 1600 LINE",
+"444 1497 OFFCURVE",
+"460 1412 OFFCURVE",
+"468 1308 CURVE",
+"383 1360 OFFCURVE",
+"312 1408 OFFCURVE",
+"228 1476 CURVE",
+"126 1306 LINE",
+"231 1271 OFFCURVE",
+"331 1234 OFFCURVE",
+"412 1196 CURVE",
+"328 1153 OFFCURVE",
+"243 1120 OFFCURVE",
+"136 1077 CURVE",
+"237 897 LINE",
+"316 968 OFFCURVE",
+"382 1026 OFFCURVE",
+"466 1087 CURVE",
+"459 983 OFFCURVE",
+"449 896 OFFCURVE",
+"431 793 CURVE",
+"632 793 LINE",
+"610 906 OFFCURVE",
+"602 987 OFFCURVE",
+"593 1084 CURVE",
+"682 1027 OFFCURVE",
+"747 981 OFFCURVE",
+"830 914 CURVE",
+"936 1089 LINE",
+"827 1127 OFFCURVE",
+"743 1155 OFFCURVE",
+"651 1196 CURVE",
+"738 1241 OFFCURVE",
+"820 1277 OFFCURVE",
+"924 1321 CURVE",
+"827 1493 LINE"
+);
+}
+);
+width = 1040;
+}
+);
+unicode = 002A;
+},
+{
+glyphname = PlusSgn;
+layers = (
+{
+layerId = master01;
+paths = (
+{
+closed = 1;
+nodes = (
+"525 285 LINE",
+"675 285 LINE",
+"675 1180 LINE",
+"525 1180 LINE"
+);
+},
+{
+closed = 1;
+nodes = (
+"1045 660 LINE",
+"1045 810 LINE",
+"155 810 LINE",
+"155 660 LINE"
+);
+}
+);
+width = 1200;
+},
+{
+layerId = master02;
+paths = (
+{
+closed = 1;
+nodes = (
+"495 285 LINE",
+"705 285 LINE",
+"705 1180 LINE",
+"495 1180 LINE"
+);
+},
+{
+closed = 1;
+nodes = (
+"1045 630 LINE",
+"1045 840 LINE",
+"155 840 LINE",
+"155 630 LINE"
+);
+}
+);
+width = 1200;
+}
+);
+unicode = 002B;
+},
+{
+glyphname = Comma;
+layers = (
+{
+layerId = master01;
+paths = (
+{
+closed = 1;
+nodes = (
+"325 50 LINE",
+"325 -51 OFFCURVE",
+"248 -172 OFFCURVE",
+"190 -230 CURVE",
+"290 -270 LINE",
+"407 -160 OFFCURVE",
+"465 -37 OFFCURVE",
+"465 85 CURVE SMOOTH",
+"465 186 OFFCURVE",
+"400 250 OFFCURVE",
+"320 250 CURVE SMOOTH",
+"263 250 OFFCURVE",
+"198 213 OFFCURVE",
+"185 150 CURVE",
+"185 50 LINE"
+);
+}
+);
+width = 650;
+},
+{
+layerId = master02;
+paths = (
+{
+closed = 1;
+nodes = (
+"345 50 LINE",
+"345 -34 OFFCURVE",
+"290 -153 OFFCURVE",
+"185 -265 CURVE",
+"330 -335 LINE",
+"454 -228 OFFCURVE",
+"560 -49 OFFCURVE",
+"560 130 CURVE SMOOTH",
+"560 254 OFFCURVE",
+"489 340 OFFCURVE",
+"375 340 CURVE SMOOTH",
+"262 340 OFFCURVE",
+"185 255 OFFCURVE",
+"185 180 CURVE SMOOTH",
+"185 50 LINE"
+);
+}
+);
+width = 665;
+}
+);
+unicode = 002C;
+},
+{
+glyphname = HyphenMinus;
+layers = (
+{
+anchors = (
+{
+name = U;
+position = "{430, 1100}";
+}
+);
+layerId = master01;
+paths = (
+{
+closed = 1;
+nodes = (
+"780 555 LINE",
+"780 705 LINE",
+"80 705 LINE",
+"80 555 LINE"
+);
+}
+);
+width = 860;
+},
+{
+anchors = (
+{
+name = U;
+position = "{450, 1100}";
+}
+);
+layerId = master02;
+paths = (
+{
+closed = 1;
+nodes = (
+"815 525 LINE",
+"815 735 LINE",
+"80 735 LINE",
+"80 525 LINE"
+);
+}
+);
+width = 895;
+}
+);
+unicode = 002D;
+},
+{
+glyphname = FullStop;
+layers = (
+{
+layerId = master01;
+paths = (
+{
+closed = 1;
+nodes = (
+"185 36 OFFCURVE",
+"246 -25 OFFCURVE",
+"320 -25 CURVE SMOOTH",
+"394 -25 OFFCURVE",
+"455 36 OFFCURVE",
+"455 110 CURVE SMOOTH",
+"455 184 OFFCURVE",
+"394 245 OFFCURVE",
+"320 245 CURVE SMOOTH",
+"246 245 OFFCURVE",
+"185 184 OFFCURVE",
+"185 110 CURVE SMOOTH"
+);
+}
+);
+width = 640;
+},
+{
+layerId = master02;
+paths = (
+{
+closed = 1;
+nodes = (
+"200 46 OFFCURVE",
+"274 -25 OFFCURVE",
+"375 -25 CURVE SMOOTH",
+"477 -25 OFFCURVE",
+"550 46 OFFCURVE",
+"550 150 CURVE SMOOTH",
+"550 252 OFFCURVE",
+"477 325 OFFCURVE",
+"375 325 CURVE SMOOTH",
+"274 325 OFFCURVE",
+"200 252 OFFCURVE",
+"200 150 CURVE SMOOTH"
+);
+}
+);
+width = 710;
+}
+);
+unicode = 002E;
+},
+{
+glyphname = Solidus;
+layers = (
+{
+layerId = master01;
+paths = (
+{
+closed = 1;
+nodes = (
+"10 -245 LINE",
+"160 -245 LINE",
+"990 1600 LINE",
+"840 1600 LINE"
+);
+}
+);
+width = 1000;
+},
+{
+layerId = master02;
+paths = (
+{
+closed = 1;
+nodes = (
+"10 -245 LINE",
+"240 -245 LINE",
+"1070 1600 LINE",
+"840 1600 LINE"
+);
+}
+);
+width = 1080;
+}
+);
+unicode = 002F;
+},
+{
+glyphname = DigitZero;
+layers = (
+{
+anchors = (
+{
+name = L;
+position = "{605, -100}";
+},
+{
+name = U;
+position = "{605, 1530}";
+}
+);
+layerId = master01;
+paths = (
+{
+closed = 1;
+nodes = (
+"910 308 OFFCURVE",
+"792 145 OFFCURVE",
+"600 145 CURVE SMOOTH",
+"402 145 OFFCURVE",
+"290 305 OFFCURVE",
+"290 745 CURVE SMOOTH",
+"290 1153 OFFCURVE",
+"407 1315 OFFCURVE",
+"600 1315 CURVE SMOOTH",
+"802 1315 OFFCURVE",
+"910 1156 OFFCURVE",
+"910 715 CURVE SMOOTH"
+);
+},
+{
+closed = 1;
+nodes = (
+"1110 1286 OFFCURVE",
+"900 1485 OFFCURVE",
+"610 1485 CURVE SMOOTH",
+"321 1485 OFFCURVE",
+"90 1283 OFFCURVE",
+"90 720 CURVE SMOOTH",
+"90 155 OFFCURVE",
+"301 -25 OFFCURVE",
+"590 -25 CURVE SMOOTH",
+"881 -25 OFFCURVE",
+"1110 151 OFFCURVE",
+"1110 740 CURVE SMOOTH"
+);
+}
+);
+width = 1200;
+},
+{
+anchors = (
+{
+name = L;
+position = "{605, -100}";
+},
+{
+name = U;
+position = "{605, 1530}";
+}
+);
+layerId = master02;
+paths = (
+{
+closed = 1;
+nodes = (
+"850 368 OFFCURVE",
+"762 205 OFFCURVE",
+"600 205 CURVE SMOOTH",
+"432 205 OFFCURVE",
+"350 375 OFFCURVE",
+"350 745 CURVE SMOOTH",
+"350 1093 OFFCURVE",
+"437 1255 OFFCURVE",
+"600 1255 CURVE SMOOTH",
+"772 1255 OFFCURVE",
+"850 1086 OFFCURVE",
+"850 715 CURVE SMOOTH"
+);
+},
+{
+closed = 1;
+nodes = (
+"1135 1286 OFFCURVE",
+"950 1485 OFFCURVE",
+"610 1485 CURVE SMOOTH",
+"291 1485 OFFCURVE",
+"65 1283 OFFCURVE",
+"65 720 CURVE SMOOTH",
+"65 165 OFFCURVE",
+"271 -25 OFFCURVE",
+"590 -25 CURVE SMOOTH",
+"911 -25 OFFCURVE",
+"1135 161 OFFCURVE",
+"1135 740 CURVE SMOOTH"
+);
+}
+);
+width = 1200;
+}
+);
+unicode = 0030;
+},
+{
+glyphname = DigitOne;
+layers = (
+{
+anchors = (
+{
+name = L;
+position = "{600, -100}";
+},
+{
+name = U;
+position = "{600, 1530}";
+}
+);
+layerId = master01;
+paths = (
+{
+closed = 1;
+nodes = (
+"220 170 LINE",
+"220 0 LINE",
+"1040 0 LINE",
+"1040 170 LINE",
+"725 170 LINE",
+"725 1480 LINE",
+"555 1480 LINE",
+"210 1268 LINE",
+"235 1088 LINE",
+"535 1260 LINE",
+"535 170 LINE"
+);
+}
+);
+width = 1200;
+},
+{
+anchors = (
+{
+name = L;
+position = "{600, -100}";
+},
+{
+name = U;
+position = "{600, 1530}";
+}
+);
+layerId = master02;
+paths = (
+{
+closed = 1;
+nodes = (
+"1075 235 LINE",
+"767 235 LINE",
+"767 1460 LINE",
+"492 1460 LINE",
+"177 1278 LINE",
+"212 1018 LINE",
+"492 1170 LINE",
+"492 235 LINE",
+"185 235 LINE",
+"185 0 LINE",
+"1075 0 LINE"
+);
+}
+);
+width = 1200;
+}
+);
+unicode = 0031;
+},
+{
+glyphname = DigitTwo;
+layers = (
+{
+anchors = (
+{
+name = L;
+position = "{600, -100}";
+},
+{
+name = U;
+position = "{560, 1530}";
+}
+);
+layerId = master01;
+paths = (
+{
+closed = 1;
+nodes = (
+"1000 166 OFFCURVE",
+"842 165 OFFCURVE",
+"645 165 CURVE SMOOTH",
+"390 165 LINE",
+"609 352 OFFCURVE",
+"1010 729 OFFCURVE",
+"1010 1065 CURVE SMOOTH",
+"1010 1323 OFFCURVE",
+"800 1485 OFFCURVE",
+"560 1485 CURVE SMOOTH",
+"391 1485 OFFCURVE",
+"206 1402 OFFCURVE",
+"125 1290 CURVE",
+"170 1120 LINE",
+"259 1228 OFFCURVE",
+"402 1305 OFFCURVE",
+"525 1305 CURVE SMOOTH",
+"668 1305 OFFCURVE",
+"810 1233 OFFCURVE",
+"810 1045 CURVE SMOOTH",
+"810 768 OFFCURVE",
+"391 365 OFFCURVE",
+"120 170 CURVE",
+"120 0 LINE",
+"1080 0 LINE",
+"1080 180 LINE"
+);
+}
+);
+width = 1200;
+},
+{
+anchors = (
+{
+name = L;
+position = "{600, -100}";
+},
+{
+name = U;
+position = "{560, 1530}";
+}
+);
+layerId = master02;
+paths = (
+{
+closed = 1;
+nodes = (
+"1010 246 OFFCURVE",
+"942 245 OFFCURVE",
+"745 245 CURVE SMOOTH",
+"480 245 LINE",
+"699 422 OFFCURVE",
+"1046 739 OFFCURVE",
+"1046 1065 CURVE SMOOTH",
+"1046 1323 OFFCURVE",
+"850 1485 OFFCURVE",
+"560 1485 CURVE SMOOTH",
+"391 1485 OFFCURVE",
+"196 1402 OFFCURVE",
+"105 1290 CURVE",
+"170 1050 LINE",
+"259 1158 OFFCURVE",
+"412 1235 OFFCURVE",
+"535 1235 CURVE SMOOTH",
+"688 1235 OFFCURVE",
+"758 1133 OFFCURVE",
+"758 1015 CURVE SMOOTH",
+"758 758 OFFCURVE",
+"381 415 OFFCURVE",
+"110 220 CURVE",
+"110 0 LINE",
+"1090 0 LINE",
+"1090 260 LINE"
+);
+}
+);
+width = 1200;
+}
+);
+unicode = 0032;
+},
+{
+glyphname = DigitThree;
+layers = (
+{
+anchors = (
+{
+name = L;
+position = "{600, -100}";
+},
+{
+name = U;
+position = "{600, 1530}";
+}
+);
+layerId = master01;
+paths = (
+{
+closed = 1;
+nodes = (
+"410 700 LINE",
+"480 700 LINE",
+"716 700 OFFCURVE",
+"895 588 OFFCURVE",
+"895 425 CURVE SMOOTH",
+"895 241 OFFCURVE",
+"718 150 OFFCURVE",
+"565 150 CURVE SMOOTH",
+"385 150 OFFCURVE",
+"244 232 OFFCURVE",
+"135 355 CURVE",
+"110 140 LINE",
+"215 42 OFFCURVE",
+"368 -25 OFFCURVE",
+"545 -25 CURVE SMOOTH",
+"834 -25 OFFCURVE",
+"1090 170 OFFCURVE",
+"1090 405 CURVE SMOOTH",
+"1090 672 OFFCURVE",
+"862 776 OFFCURVE",
+"720 800 CURVE",
+"862 829 OFFCURVE",
+"1040 957 OFFCURVE",
+"1040 1140 CURVE SMOOTH",
+"1040 1354 OFFCURVE",
+"828 1485 OFFCURVE",
+"580 1485 CURVE",
+"413 1485 OFFCURVE",
+"260 1416 OFFCURVE",
+"180 1325 CURVE",
+"215 1155 LINE",
+"328 1271 OFFCURVE",
+"436 1310 OFFCURVE",
+"590 1310 CURVE SMOOTH",
+"711 1310 OFFCURVE",
+"850 1250 OFFCURVE",
+"850 1115 CURVE SMOOTH",
+"850 991 OFFCURVE",
+"679 870 OFFCURVE",
+"480 870 CURVE",
+"410 870 LINE"
+);
+}
+);
+width = 1200;
+},
+{
+anchors = (
+{
+name = L;
+position = "{600, -100}";
+},
+{
+name = U;
+position = "{600, 1530}";
+}
+);
+layerId = master02;
+paths = (
+{
+closed = 1;
+nodes = (
+"390 645 LINE",
+"480 645 LINE SMOOTH",
+"706 645 OFFCURVE",
+"835 548 OFFCURVE",
+"835 425 CURVE SMOOTH",
+"835 291 OFFCURVE",
+"708 210 OFFCURVE",
+"565 210 CURVE SMOOTH",
+"405 210 OFFCURVE",
+"244 282 OFFCURVE",
+"135 405 CURVE",
+"100 130 LINE",
+"205 32 OFFCURVE",
+"368 -25 OFFCURVE",
+"545 -25 CURVE SMOOTH",
+"874 -25 OFFCURVE",
+"1120 170 OFFCURVE",
+"1120 405 CURVE SMOOTH",
+"1120 672 OFFCURVE",
+"892 756 OFFCURVE",
+"750 780 CURVE",
+"892 809 OFFCURVE",
+"1070 957 OFFCURVE",
+"1070 1140 CURVE SMOOTH",
+"1070 1354 OFFCURVE",
+"868 1485 OFFCURVE",
+"580 1485 CURVE SMOOTH",
+"413 1485 OFFCURVE",
+"240 1416 OFFCURVE",
+"160 1325 CURVE",
+"195 1095 LINE",
+"308 1211 OFFCURVE",
+"436 1250 OFFCURVE",
+"590 1250 CURVE SMOOTH",
+"689 1250 OFFCURVE",
+"791 1193 OFFCURVE",
+"791 1102 CURVE SMOOTH",
+"791 994 OFFCURVE",
+"662 885 OFFCURVE",
+"480 885 CURVE SMOOTH",
+"390 885 LINE"
+);
+}
+);
+width = 1200;
+}
+);
+unicode = 0033;
+},
+{
+glyphname = DigitFour;
+layers = (
+{
+anchors = (
+{
+name = L;
+position = "{607, -100}";
+},
+{
+name = U;
+position = "{607, 1530}";
+}
+);
+layerId = master01;
+paths = (
+{
+closed = 1;
+nodes = (
+"1125 550 LINE",
+"935 550 LINE",
+"935 1480 LINE",
+"745 1480 LINE",
+"90 550 LINE",
+"90 395 LINE",
+"745 395 LINE",
+"745 0 LINE",
+"935 0 LINE",
+"935 395 LINE",
+"1125 395 LINE"
+);
+},
+{
+closed = 1;
+nodes = (
+"745 550 LINE",
+"263 550 LINE",
+"745 1230 LINE"
+);
+}
+);
+width = 1200;
+},
+{
+anchors = (
+{
+name = L;
+position = "{607, -100}";
+},
+{
+name = U;
+position = "{607, 1530}";
+}
+);
+layerId = master02;
+paths = (
+{
+closed = 1;
+nodes = (
+"1155 570 LINE",
+"995 570 LINE",
+"995 1460 LINE",
+"695 1460 LINE",
+"60 570 LINE",
+"60 345 LINE",
+"730 345 LINE",
+"730 0 LINE",
+"995 0 LINE",
+"995 345 LINE",
+"1155 345 LINE"
+);
+},
+{
+closed = 1;
+nodes = (
+"730 570 LINE",
+"305 570 LINE",
+"730 1145 LINE"
+);
+}
+);
+width = 1200;
+}
+);
+unicode = 0034;
+},
+{
+glyphname = DigitFive;
+layers = (
+{
+anchors = (
+{
+name = L;
+position = "{600, -100}";
+},
+{
+name = U;
+position = "{600, 1530}";
+}
+);
+layerId = master01;
+paths = (
+{
+closed = 1;
+nodes = (
+"319 733 OFFCURVE",
+"404 750 OFFCURVE",
+"510 750 CURVE SMOOTH",
+"670 750 OFFCURVE",
+"870 672 OFFCURVE",
+"870 470 CURVE SMOOTH",
+"870 268 OFFCURVE",
+"730 155 OFFCURVE",
+"530 155 CURVE SMOOTH",
+"390 155 OFFCURVE",
+"294 182 OFFCURVE",
+"160 290 CURVE",
+"130 80 LINE",
+"255 2 OFFCURVE",
+"363 -25 OFFCURVE",
+"518 -25 CURVE SMOOTH",
+"831 -25 OFFCURVE",
+"1060 163 OFFCURVE",
+"1060 475 CURVE SMOOTH",
+"1060 742 OFFCURVE",
+"832 930 OFFCURVE",
+"545 930 CURVE SMOOTH",
+"472 930 OFFCURVE",
+"411 924 OFFCURVE",
+"380 920 CURVE",
+"380 1290 LINE",
+"765 1290 LINE",
+"849 1290 OFFCURVE",
+"925 1286 OFFCURVE",
+"1000 1270 CURVE",
+"1000 1460 LINE",
+"195 1460 LINE",
+"195 685 LINE"
+);
+}
+);
+width = 1200;
+},
+{
+anchors = (
+{
+name = L;
+position = "{600, -100}";
+},
+{
+name = U;
+position = "{600, 1530}";
+}
+);
+layerId = master02;
+paths = (
+{
+closed = 1;
+nodes = (
+"299 693 OFFCURVE",
+"404 710 OFFCURVE",
+"510 710 CURVE SMOOTH",
+"670 710 OFFCURVE",
+"810 632 OFFCURVE",
+"810 470 CURVE SMOOTH",
+"810 318 OFFCURVE",
+"690 215 OFFCURVE",
+"530 215 CURVE SMOOTH",
+"390 215 OFFCURVE",
+"274 252 OFFCURVE",
+"140 360 CURVE",
+"100 80 LINE",
+"225 2 OFFCURVE",
+"365 -25 OFFCURVE",
+"520 -25 CURVE SMOOTH",
+"833 -25 OFFCURVE",
+"1090 163 OFFCURVE",
+"1090 475 CURVE SMOOTH",
+"1090 752 OFFCURVE",
+"882 930 OFFCURVE",
+"605 930 CURVE SMOOTH",
+"543 930 OFFCURVE",
+"468 911 OFFCURVE",
+"435 895 CURVE",
+"435 1215 LINE",
+"765 1215 LINE SMOOTH",
+"849 1215 OFFCURVE",
+"955 1211 OFFCURVE",
+"1030 1195 CURVE",
+"1030 1460 LINE",
+"175 1460 LINE",
+"175 645 LINE"
+);
+}
+);
+width = 1200;
+}
+);
+unicode = 0035;
+},
+{
+glyphname = DigitSix;
+layers = (
+{
+anchors = (
+{
+name = L;
+position = "{600, -100}";
+},
+{
+name = U;
+position = "{600, 1530}";
+}
+);
+layerId = master01;
+paths = (
+{
+closed = 1;
+nodes = (
+"929 1465 OFFCURVE",
+"843 1485 OFFCURVE",
+"725 1485 CURVE SMOOTH",
+"250 1485 OFFCURVE",
+"110 1049 OFFCURVE",
+"110 680 CURVE SMOOTH",
+"110 242 OFFCURVE",
+"290 -25 OFFCURVE",
+"600 -25 CURVE SMOOTH",
+"907 -25 OFFCURVE",
+"1115 166 OFFCURVE",
+"1115 470 CURVE SMOOTH",
+"1115 719 OFFCURVE",
+"943 895 OFFCURVE",
+"665 895 CURVE SMOOTH",
+"474 895 OFFCURVE",
+"328 780 OFFCURVE",
+"215 625 CURVE",
+"280 550 LINE",
+"362 653 OFFCURVE",
+"490 720 OFFCURVE",
+"645 720 CURVE SMOOTH",
+"824 720 OFFCURVE",
+"920 611 OFFCURVE",
+"920 435 CURVE SMOOTH",
+"920 275 OFFCURVE",
+"806 150 OFFCURVE",
+"630 150 CURVE SMOOTH",
+"409 150 OFFCURVE",
+"305 393 OFFCURVE",
+"305 645 CURVE SMOOTH",
+"305 1132 OFFCURVE",
+"478 1310 OFFCURVE",
+"715 1310 CURVE SMOOTH",
+"811 1310 OFFCURVE",
+"903 1286 OFFCURVE",
+"989 1200 CURVE",
+"1033 1395 LINE"
+);
+}
+);
+width = 1200;
+},
+{
+anchors = (
+{
+name = L;
+position = "{610, -100}";
+},
+{
+name = U;
+position = "{610, 1530}";
+}
+);
+layerId = master02;
+paths = (
+{
+closed = 1;
+nodes = (
+"969 1465 OFFCURVE",
+"873 1485 OFFCURVE",
+"735 1485 CURVE SMOOTH",
+"260 1485 OFFCURVE",
+"90 1069 OFFCURVE",
+"90 680 CURVE SMOOTH",
+"90 223 OFFCURVE",
+"297 -25 OFFCURVE",
+"652 -25 CURVE SMOOTH",
+"955 -25 OFFCURVE",
+"1155 179 OFFCURVE",
+"1155 470 CURVE SMOOTH",
+"1155 729 OFFCURVE",
+"963 925 OFFCURVE",
+"675 925 CURVE SMOOTH",
+"484 925 OFFCURVE",
+"338 810 OFFCURVE",
+"225 655 CURVE",
+"290 540 LINE",
+"372 643 OFFCURVE",
+"500 710 OFFCURVE",
+"655 710 CURVE SMOOTH",
+"814 710 OFFCURVE",
+"900 601 OFFCURVE",
+"900 455 CURVE SMOOTH",
+"900 329 OFFCURVE",
+"803 210 OFFCURVE",
+"656 210 CURVE SMOOTH",
+"474 210 OFFCURVE",
+"355 386 OFFCURVE",
+"355 645 CURVE SMOOTH",
+"355 1132 OFFCURVE",
+"528 1250 OFFCURVE",
+"725 1250 CURVE SMOOTH",
+"821 1250 OFFCURVE",
+"923 1226 OFFCURVE",
+"1009 1140 CURVE",
+"1073 1395 LINE"
+);
+}
+);
+width = 1200;
+}
+);
+unicode = 0036;
+},
+{
+glyphname = DigitSeven;
+layers = (
+{
+anchors = (
+{
+name = L;
+position = "{600, -100}";
+},
+{
+name = U;
+position = "{600, 1530}";
+}
+);
+layerId = master01;
+paths = (
+{
+closed = 1;
+nodes = (
+"589 459 OFFCURVE",
+"794 895 OFFCURVE",
+"1090 1300 CURVE",
+"1090 1460 LINE",
+"100 1460 LINE",
+"100 1275 LINE",
+"176 1291 OFFCURVE",
+"292 1295 OFFCURVE",
+"480 1295 CURVE SMOOTH",
+"870 1295 LINE",
+"612 912 OFFCURVE",
+"439 566 OFFCURVE",
+"275 0 CURVE",
+"460 0 LINE"
+);
+}
+);
+width = 1200;
+},
+{
+anchors = (
+{
+name = L;
+position = "{600, -100}";
+},
+{
+name = U;
+position = "{600, 1530}";
+}
+);
+layerId = master02;
+paths = (
+{
+closed = 1;
+nodes = (
+"649 459 OFFCURVE",
+"834 855 OFFCURVE",
+"1130 1260 CURVE",
+"1130 1460 LINE",
+"100 1460 LINE",
+"100 1195 LINE",
+"176 1211 OFFCURVE",
+"292 1215 OFFCURVE",
+"480 1215 CURVE SMOOTH",
+"800 1215 LINE",
+"542 842 OFFCURVE",
+"409 566 OFFCURVE",
+"235 0 CURVE",
+"520 0 LINE"
+);
+}
+);
+width = 1200;
+}
+);
+unicode = 0037;
+},
+{
+glyphname = DigitEight;
+layers = (
+{
+anchors = (
+{
+name = L;
+position = "{600, -100}";
+},
+{
+name = U;
+position = "{600, 1530}";
+}
+);
+layerId = master01;
+paths = (
+{
+closed = 1;
+nodes = (
+"857 -25 OFFCURVE",
+"1110 134 OFFCURVE",
+"1110 405 CURVE SMOOTH",
+"1110 611 OFFCURVE",
+"965 739 OFFCURVE",
+"855 795 CURVE",
+"933 844 OFFCURVE",
+"1050 923 OFFCURVE",
+"1050 1105 CURVE SMOOTH",
+"1050 1350 OFFCURVE",
+"840 1485 OFFCURVE",
+"610 1485 CURVE SMOOTH",
+"381 1485 OFFCURVE",
+"150 1350 OFFCURVE",
+"150 1105 CURVE SMOOTH",
+"150 923 OFFCURVE",
+"272 838 OFFCURVE",
+"350 795 CURVE",
+"221 725 OFFCURVE",
+"90 611 OFFCURVE",
+"90 405 CURVE SMOOTH",
+"90 134 OFFCURVE",
+"344 -25 OFFCURVE",
+"600 -25 CURVE SMOOTH"
+);
+},
+{
+closed = 1;
+nodes = (
+"860 949 OFFCURVE",
+"743 865 OFFCURVE",
+"600 865 CURVE SMOOTH",
+"457 865 OFFCURVE",
+"340 949 OFFCURVE",
+"340 1105 CURVE SMOOTH",
+"340 1252 OFFCURVE",
+"457 1325 OFFCURVE",
+"600 1325 CURVE SMOOTH",
+"743 1325 OFFCURVE",
+"860 1252 OFFCURVE",
+"860 1105 CURVE SMOOTH"
+);
+},
+{
+closed = 1;
+nodes = (
+"910 250 OFFCURVE",
+"778 145 OFFCURVE",
+"600 145 CURVE SMOOTH",
+"420 145 OFFCURVE",
+"290 250 OFFCURVE",
+"290 425 CURVE SMOOTH",
+"290 592 OFFCURVE",
+"420 710 OFFCURVE",
+"600 710 CURVE SMOOTH",
+"778 710 OFFCURVE",
+"910 592 OFFCURVE",
+"910 425 CURVE SMOOTH"
+);
+}
+);
+width = 1200;
+},
+{
+anchors = (
+{
+name = L;
+position = "{600, -100}";
+},
+{
+name = U;
+position = "{600, 1530}";
+}
+);
+layerId = master02;
+paths = (
+{
+closed = 1;
+nodes = (
+"877 -25 OFFCURVE",
+"1130 144 OFFCURVE",
+"1130 415 CURVE SMOOTH",
+"1130 641 OFFCURVE",
+"985 739 OFFCURVE",
+"875 795 CURVE",
+"953 841 OFFCURVE",
+"1060 923 OFFCURVE",
+"1060 1105 CURVE SMOOTH",
+"1060 1350 OFFCURVE",
+"860 1485 OFFCURVE",
+"610 1485 CURVE SMOOTH",
+"361 1485 OFFCURVE",
+"140 1350 OFFCURVE",
+"140 1105 CURVE SMOOTH",
+"140 923 OFFCURVE",
+"252 838 OFFCURVE",
+"330 795 CURVE",
+"201 725 OFFCURVE",
+"70 631 OFFCURVE",
+"70 405 CURVE SMOOTH",
+"70 134 OFFCURVE",
+"324 -25 OFFCURVE",
+"600 -25 CURVE SMOOTH"
+);
+},
+{
+closed = 1;
+nodes = (
+"810 974 OFFCURVE",
+"733 895 OFFCURVE",
+"600 895 CURVE SMOOTH",
+"467 895 OFFCURVE",
+"390 974 OFFCURVE",
+"390 1100 CURVE SMOOTH",
+"390 1217 OFFCURVE",
+"477 1290 OFFCURVE",
+"600 1290 CURVE SMOOTH",
+"743 1290 OFFCURVE",
+"810 1207 OFFCURVE",
+"810 1100 CURVE SMOOTH"
+);
+},
+{
+closed = 1;
+nodes = (
+"865 300 OFFCURVE",
+"768 185 OFFCURVE",
+"600 185 CURVE SMOOTH",
+"440 185 OFFCURVE",
+"335 300 OFFCURVE",
+"335 435 CURVE SMOOTH",
+"335 582 OFFCURVE",
+"450 680 OFFCURVE",
+"600 680 CURVE SMOOTH",
+"748 680 OFFCURVE",
+"865 582 OFFCURVE",
+"865 435 CURVE SMOOTH"
+);
+}
+);
+width = 1200;
+}
+);
+unicode = 0038;
+},
+{
+glyphname = DigitNine;
+layers = (
+{
+anchors = (
+{
+name = L;
+position = "{600, -100}";
+},
+{
+name = U;
+position = "{600, 1530}";
+}
+);
+layerId = master01;
+paths = (
+{
+closed = 1;
+nodes = (
+"297 -5 OFFCURVE",
+"383 -25 OFFCURVE",
+"501 -25 CURVE SMOOTH",
+"976 -25 OFFCURVE",
+"1114 411 OFFCURVE",
+"1114 780 CURVE SMOOTH",
+"1114 1198 OFFCURVE",
+"926 1485 OFFCURVE",
+"616 1485 CURVE SMOOTH",
+"349 1485 OFFCURVE",
+"112 1306 OFFCURVE",
+"112 1002 CURVE SMOOTH",
+"112 773 OFFCURVE",
+"281 586 OFFCURVE",
+"559 586 CURVE SMOOTH",
+"750 586 OFFCURVE",
+"922 717 OFFCURVE",
+"1019 878 CURVE",
+"948 961 LINE",
+"874 847 OFFCURVE",
+"738 760 OFFCURVE",
+"583 760 CURVE SMOOTH",
+"424 760 OFFCURVE",
+"306 860 OFFCURVE",
+"306 1036 CURVE SMOOTH",
+"306 1196 OFFCURVE",
+"420 1310 OFFCURVE",
+"596 1310 CURVE SMOOTH",
+"837 1310 OFFCURVE",
+"919 1065 OFFCURVE",
+"919 813 CURVE SMOOTH",
+"919 326 OFFCURVE",
+"748 150 OFFCURVE",
+"511 150 CURVE SMOOTH",
+"415 150 OFFCURVE",
+"323 174 OFFCURVE",
+"237 260 CURVE",
+"193 65 LINE"
+);
+}
+);
+width = 1200;
+},
+{
+anchors = (
+{
+name = L;
+position = "{600, -100}";
+},
+{
+name = U;
+position = "{600, 1530}";
+}
+);
+layerId = master02;
+paths = (
+{
+closed = 1;
+nodes = (
+"248 5 OFFCURVE",
+"364 -25 OFFCURVE",
+"492 -25 CURVE SMOOTH",
+"967 -25 OFFCURVE",
+"1135 411 OFFCURVE",
+"1135 780 CURVE SMOOTH",
+"1135 1150 OFFCURVE",
+"977 1485 OFFCURVE",
+"589 1485 CURVE SMOOTH",
+"310 1485 OFFCURVE",
+"70 1300 OFFCURVE",
+"70 1002 CURVE SMOOTH",
+"70 763 OFFCURVE",
+"272 576 OFFCURVE",
+"550 576 CURVE SMOOTH",
+"741 576 OFFCURVE",
+"913 707 OFFCURVE",
+"1010 868 CURVE",
+"939 991 LINE",
+"865 877 OFFCURVE",
+"729 790 OFFCURVE",
+"574 790 CURVE SMOOTH",
+"425 790 OFFCURVE",
+"326 890 OFFCURVE",
+"326 1036 CURVE SMOOTH",
+"326 1153 OFFCURVE",
+"425 1250 OFFCURVE",
+"573 1250 CURVE SMOOTH",
+"773 1250 OFFCURVE",
+"870 1102 OFFCURVE",
+"870 813 CURVE SMOOTH",
+"870 326 OFFCURVE",
+"699 210 OFFCURVE",
+"502 210 CURVE SMOOTH",
+"406 210 OFFCURVE",
+"294 234 OFFCURVE",
+"208 320 CURVE",
+"154 65 LINE"
+);
+}
+);
+width = 1200;
+}
+);
+unicode = 0039;
+},
+{
+glyphname = Colon;
+layers = (
+{
+layerId = master01;
+paths = (
+{
+closed = 1;
+nodes = (
+"185 716 OFFCURVE",
+"246 655 OFFCURVE",
+"320 655 CURVE SMOOTH",
+"394 655 OFFCURVE",
+"455 716 OFFCURVE",
+"455 790 CURVE SMOOTH",
+"455 864 OFFCURVE",
+"394 925 OFFCURVE",
+"320 925 CURVE SMOOTH",
+"246 925 OFFCURVE",
+"185 864 OFFCURVE",
+"185 790 CURVE SMOOTH"
+);
+},
+{
+closed = 1;
+nodes = (
+"185 36 OFFCURVE",
+"246 -25 OFFCURVE",
+"320 -25 CURVE SMOOTH",
+"394 -25 OFFCURVE",
+"455 36 OFFCURVE",
+"455 110 CURVE SMOOTH",
+"455 184 OFFCURVE",
+"394 245 OFFCURVE",
+"320 245 CURVE SMOOTH",
+"246 245 OFFCURVE",
+"185 184 OFFCURVE",
+"185 110 CURVE SMOOTH"
+);
+}
+);
+width = 640;
+},
+{
+layerId = master02;
+paths = (
+{
+closed = 1;
+nodes = (
+"200 46 OFFCURVE",
+"274 -25 OFFCURVE",
+"375 -25 CURVE SMOOTH",
+"477 -25 OFFCURVE",
+"550 46 OFFCURVE",
+"550 150 CURVE SMOOTH",
+"550 252 OFFCURVE",
+"477 325 OFFCURVE",
+"375 325 CURVE SMOOTH",
+"274 325 OFFCURVE",
+"200 252 OFFCURVE",
+"200 150 CURVE SMOOTH"
+);
+},
+{
+closed = 1;
+nodes = (
+"200 646 OFFCURVE",
+"274 575 OFFCURVE",
+"375 575 CURVE SMOOTH",
+"477 575 OFFCURVE",
+"550 646 OFFCURVE",
+"550 750 CURVE SMOOTH",
+"550 852 OFFCURVE",
+"477 925 OFFCURVE",
+"375 925 CURVE SMOOTH",
+"274 925 OFFCURVE",
+"200 852 OFFCURVE",
+"200 750 CURVE SMOOTH"
+);
+}
+);
+width = 710;
+}
+);
+unicode = 003A;
+},
+{
+glyphname = Semicolon;
+layers = (
+{
+layerId = master01;
+paths = (
+{
+closed = 1;
+nodes = (
+"185 716 OFFCURVE",
+"246 655 OFFCURVE",
+"320 655 CURVE SMOOTH",
+"394 655 OFFCURVE",
+"455 716 OFFCURVE",
+"455 790 CURVE SMOOTH",
+"455 864 OFFCURVE",
+"394 925 OFFCURVE",
+"320 925 CURVE SMOOTH",
+"246 925 OFFCURVE",
+"185 864 OFFCURVE",
+"185 790 CURVE SMOOTH"
+);
+},
+{
+closed = 1;
+nodes = (
+"325 50 LINE",
+"325 -51 OFFCURVE",
+"248 -172 OFFCURVE",
+"190 -230 CURVE",
+"290 -270 LINE",
+"407 -160 OFFCURVE",
+"465 -37 OFFCURVE",
+"465 85 CURVE SMOOTH",
+"465 186 OFFCURVE",
+"400 250 OFFCURVE",
+"320 250 CURVE SMOOTH",
+"263 250 OFFCURVE",
+"198 213 OFFCURVE",
+"185 150 CURVE",
+"185 50 LINE"
+);
+}
+);
+width = 650;
+},
+{
+layerId = master02;
+paths = (
+{
+closed = 1;
+nodes = (
+"200 646 OFFCURVE",
+"274 575 OFFCURVE",
+"375 575 CURVE SMOOTH",
+"477 575 OFFCURVE",
+"550 646 OFFCURVE",
+"550 750 CURVE SMOOTH",
+"550 852 OFFCURVE",
+"477 925 OFFCURVE",
+"375 925 CURVE SMOOTH",
+"274 925 OFFCURVE",
+"200 852 OFFCURVE",
+"200 750 CURVE SMOOTH"
+);
+},
+{
+closed = 1;
+nodes = (
+"345 50 LINE",
+"345 -34 OFFCURVE",
+"290 -153 OFFCURVE",
+"185 -265 CURVE",
+"330 -335 LINE",
+"454 -228 OFFCURVE",
+"560 -49 OFFCURVE",
+"560 130 CURVE SMOOTH",
+"560 254 OFFCURVE",
+"489 340 OFFCURVE",
+"375 340 CURVE SMOOTH",
+"262 340 OFFCURVE",
+"185 255 OFFCURVE",
+"185 180 CURVE SMOOTH",
+"185 50 LINE"
+);
+}
+);
+width = 710;
+}
+);
+unicode = 003B;
+},
+{
+glyphname = LTSgn;
+layers = (
+{
+layerId = master01;
+paths = (
+{
+closed = 1;
+nodes = (
+"290 730 LINE",
+"1080 1035 LINE",
+"1080 1215 LINE",
+"100 815 LINE",
+"100 645 LINE",
+"1080 245 LINE",
+"1080 425 LINE"
+);
+}
+);
+width = 1200;
+},
+{
+layerId = master02;
+paths = (
+{
+closed = 1;
+nodes = (
+"390 730 LINE",
+"1070 985 LINE",
+"1070 1215 LINE",
+"110 825 LINE",
+"110 635 LINE",
+"1070 245 LINE",
+"1070 475 LINE"
+);
+}
+);
+width = 1200;
+}
+);
+unicode = 003C;
+},
+{
+glyphname = EqSgn;
+layers = (
+{
+layerId = master01;
+paths = (
+{
+closed = 1;
+nodes = (
+"1080 480 LINE",
+"1080 630 LINE",
+"120 630 LINE",
+"120 480 LINE"
+);
+},
+{
+closed = 1;
+nodes = (
+"1080 830 LINE",
+"1080 980 LINE",
+"120 980 LINE",
+"120 830 LINE"
+);
+}
+);
+width = 1200;
+},
+{
+layerId = master02;
+paths = (
+{
+closed = 1;
+nodes = (
+"1080 440 LINE",
+"1080 650 LINE",
+"120 650 LINE",
+"120 440 LINE"
+);
+},
+{
+closed = 1;
+nodes = (
+"1080 810 LINE",
+"1080 1020 LINE",
+"120 1020 LINE",
+"120 810 LINE"
+);
+}
+);
+width = 1200;
+}
+);
+unicode = 003D;
+},
+{
+glyphname = GTSgn;
+layers = (
+{
+layerId = master01;
+paths = (
+{
+closed = 1;
+nodes = (
+"910 730 LINE",
+"120 425 LINE",
+"120 245 LINE",
+"1100 645 LINE",
+"1100 815 LINE",
+"120 1215 LINE",
+"120 1035 LINE"
+);
+}
+);
+width = 1200;
+},
+{
+layerId = master02;
+paths = (
+{
+closed = 1;
+nodes = (
+"1090 635 LINE",
+"1090 825 LINE",
+"130 1215 LINE",
+"130 985 LINE",
+"810 730 LINE",
+"130 475 LINE",
+"130 245 LINE"
+);
+}
+);
+width = 1200;
+}
+);
+unicode = 003E;
+},
+{
+glyphname = QstnMrk;
+layers = (
+{
+layerId = master01;
+paths = (
+{
+closed = 1;
+nodes = (
+"335 1540 OFFCURVE",
+"206 1493 OFFCURVE",
+"140 1430 CURVE",
+"185 1251 LINE",
+"261 1330 OFFCURVE",
+"352 1365 OFFCURVE",
+"432 1365 CURVE SMOOTH",
+"579 1365 OFFCURVE",
+"625 1289 OFFCURVE",
+"625 1230 CURVE SMOOTH",
+"625 1159 OFFCURVE",
+"572 1092 OFFCURVE",
+"485 980 CURVE SMOOTH",
+"397 867 OFFCURVE",
+"355 730 OFFCURVE",
+"355 440 CURVE",
+"540 440 LINE",
+"540 721 OFFCURVE",
+"561 806 OFFCURVE",
+"665 927 CURVE SMOOTH",
+"753 1028 OFFCURVE",
+"830 1117 OFFCURVE",
+"830 1240 CURVE SMOOTH",
+"830 1422 OFFCURVE",
+"697 1540 OFFCURVE",
+"460 1540 CURVE SMOOTH"
+);
+},
+{
+closed = 1;
+nodes = (
+"315 36 OFFCURVE",
+"376 -25 OFFCURVE",
+"450 -25 CURVE SMOOTH",
+"524 -25 OFFCURVE",
+"585 36 OFFCURVE",
+"585 110 CURVE SMOOTH",
+"585 184 OFFCURVE",
+"524 245 OFFCURVE",
+"450 245 CURVE SMOOTH",
+"376 245 OFFCURVE",
+"315 184 OFFCURVE",
+"315 110 CURVE SMOOTH"
+);
+}
+);
+width = 1050;
+},
+{
+layerId = master02;
+paths = (
+{
+closed = 1;
+nodes = (
+"640 671 OFFCURVE",
+"668 805 OFFCURVE",
+"767 956 CURVE SMOOTH",
+"837 1063 OFFCURVE",
+"900 1117 OFFCURVE",
+"900 1220 CURVE SMOOTH",
+"900 1402 OFFCURVE",
+"757 1540 OFFCURVE",
+"500 1540 CURVE SMOOTH",
+"355 1540 OFFCURVE",
+"206 1470 OFFCURVE",
+"140 1407 CURVE",
+"185 1168 LINE",
+"261 1247 OFFCURVE",
+"372 1295 OFFCURVE",
+"472 1295 CURVE SMOOTH",
+"569 1295 OFFCURVE",
+"615 1249 OFFCURVE",
+"615 1190 CURVE SMOOTH",
+"615 1139 OFFCURVE",
+"565 1096 OFFCURVE",
+"495 980 CURVE SMOOTH",
+"434 879 OFFCURVE",
+"375 710 OFFCURVE",
+"375 500 CURVE",
+"640 500 LINE"
+);
+},
+{
+closed = 1;
+nodes = (
+"335 46 OFFCURVE",
+"409 -25 OFFCURVE",
+"510 -25 CURVE SMOOTH",
+"612 -25 OFFCURVE",
+"685 46 OFFCURVE",
+"685 150 CURVE SMOOTH",
+"685 252 OFFCURVE",
+"612 325 OFFCURVE",
+"510 325 CURVE SMOOTH",
+"409 325 OFFCURVE",
+"335 252 OFFCURVE",
+"335 150 CURVE SMOOTH"
+);
+}
+);
+width = 1090;
+}
+);
+unicode = 003F;
+},
+{
+glyphname = AtSgn;
+layers = (
+{
+layerId = master01;
+paths = (
+{
+closed = 1;
+nodes = (
+"1605 1127 OFFCURVE",
+"1307 1405 OFFCURVE",
+"880 1405 CURVE SMOOTH",
+"465 1405 OFFCURVE",
+"95 1126 OFFCURVE",
+"95 575 CURVE SMOOTH",
+"95 48 OFFCURVE",
+"464 -235 OFFCURVE",
+"855 -235 CURVE SMOOTH",
+"990 -235 OFFCURVE",
+"1150 -188 OFFCURVE",
+"1250 -118 CURVE",
+"1145 -10 LINE",
+"1058 -70 OFFCURVE",
+"963 -95 OFFCURVE",
+"870 -95 CURVE SMOOTH",
+"523 -95 OFFCURVE",
+"240 174 OFFCURVE",
+"240 605 CURVE SMOOTH",
+"240 1003 OFFCURVE",
+"542 1270 OFFCURVE",
+"870 1270 CURVE SMOOTH",
+"1263 1270 OFFCURVE",
+"1465 1002 OFFCURVE",
+"1465 670 CURVE SMOOTH",
+"1465 432 OFFCURVE",
+"1348 315 OFFCURVE",
+"1280 315 CURVE SMOOTH",
+"1221 315 OFFCURVE",
+"1175 410 OFFCURVE",
+"1175 630 CURVE SMOOTH",
+"1175 980 LINE",
+"1088 1015 OFFCURVE",
+"961 1040 OFFCURVE",
+"880 1040 CURVE SMOOTH",
+"716 1040 OFFCURVE",
+"613 971 OFFCURVE",
+"530 835 CURVE SMOOTH",
+"483 756 OFFCURVE",
+"455 653 OFFCURVE",
+"455 530 CURVE SMOOTH",
+"455 294 OFFCURVE",
+"601 183 OFFCURVE",
+"735 183 CURVE SMOOTH",
+"852 183 OFFCURVE",
+"988 366 OFFCURVE",
+"1040 490 CURVE",
+"1050 322 OFFCURVE",
+"1128 180 OFFCURVE",
+"1250 180 CURVE SMOOTH",
+"1425 180 OFFCURVE",
+"1605 368 OFFCURVE",
+"1605 700 CURVE SMOOTH"
+);
+},
+{
+closed = 1;
+nodes = (
+"924 905 OFFCURVE",
+"992 886 OFFCURVE",
+"1025 870 CURVE",
+"1025 720 LINE",
+"993 582 OFFCURVE",
+"838 320 OFFCURVE",
+"748 320 CURVE SMOOTH",
+"676 320 OFFCURVE",
+"605 398 OFFCURVE",
+"605 575 CURVE SMOOTH",
+"605 652 OFFCURVE",
+"621 731 OFFCURVE",
+"650 780 CURVE SMOOTH",
+"706 876 OFFCURVE",
+"782 905 OFFCURVE",
+"850 905 CURVE SMOOTH"
+);
+}
+);
+width = 1702;
+},
+{
+layerId = master02;
+paths = (
+{
+closed = 1;
+nodes = (
+"1077 -34 OFFCURVE",
+"988 -60 OFFCURVE",
+"895 -60 CURVE SMOOTH",
+"558 -60 OFFCURVE",
+"290 204 OFFCURVE",
+"290 605 CURVE SMOOTH",
+"290 973 OFFCURVE",
+"557 1240 OFFCURVE",
+"895 1240 CURVE SMOOTH",
+"1278 1240 OFFCURVE",
+"1460 992 OFFCURVE",
+"1460 670 CURVE SMOOTH",
+"1460 452 OFFCURVE",
+"1363 335 OFFCURVE",
+"1305 335 CURVE SMOOTH",
+"1256 335 OFFCURVE",
+"1220 430 OFFCURVE",
+"1220 650 CURVE SMOOTH",
+"1220 980 LINE",
+"1133 1015 OFFCURVE",
+"986 1040 OFFCURVE",
+"905 1040 CURVE SMOOTH",
+"741 1040 OFFCURVE",
+"618 961 OFFCURVE",
+"535 825 CURVE SMOOTH",
+"488 746 OFFCURVE",
+"460 653 OFFCURVE",
+"460 530 CURVE SMOOTH",
+"460 304 OFFCURVE",
+"606 163 OFFCURVE",
+"740 163 CURVE SMOOTH",
+"867 163 OFFCURVE",
+"1013 331 OFFCURVE",
+"1065 455 CURVE",
+"1075 287 OFFCURVE",
+"1153 160 OFFCURVE",
+"1275 160 CURVE SMOOTH",
+"1450 160 OFFCURVE",
+"1650 358 OFFCURVE",
+"1650 700 CURVE SMOOTH",
+"1650 1137 OFFCURVE",
+"1342 1425 OFFCURVE",
+"905 1425 CURVE SMOOTH",
+"480 1425 OFFCURVE",
+"90 1136 OFFCURVE",
+"90 575 CURVE SMOOTH",
+"90 38 OFFCURVE",
+"479 -245 OFFCURVE",
+"880 -245 CURVE SMOOTH",
+"1015 -245 OFFCURVE",
+"1175 -198 OFFCURVE",
+"1275 -128 CURVE",
+"1140 10 LINE"
+);
+},
+{
+closed = 1;
+nodes = (
+"988 572 OFFCURVE",
+"863 350 OFFCURVE",
+"773 350 CURVE SMOOTH",
+"701 350 OFFCURVE",
+"660 428 OFFCURVE",
+"660 575 CURVE SMOOTH",
+"660 652 OFFCURVE",
+"682 737 OFFCURVE",
+"720 786 CURVE SMOOTH",
+"756 831 OFFCURVE",
+"807 855 OFFCURVE",
+"875 855 CURVE SMOOTH",
+"949 855 OFFCURVE",
+"987 836 OFFCURVE",
+"1020 820 CURVE",
+"1020 710 LINE"
+);
+}
+);
+width = 1742;
+}
+);
+unicode = 0040;
+},
+{
+glyphname = LtnCapA;
+layers = (
+{
+anchors = (
+{
+name = H;
+position = "{707, 0}";
+},
+{
+name = L;
+position = "{687, -100}";
+},
+{
+name = O;
+position = "{1450, 0}";
+},
+{
+name = U;
+position = "{687, 1530}";
+}
+);
+layerId = master01;
+paths = (
+{
+closed = 1;
+nodes = (
+"379 385 LINE",
+"994 385 LINE",
+"1130 0 LINE",
+"1335 0 LINE",
+"1300 80 OFFCURVE",
+"1262 169 OFFCURVE",
+"1195 355 CURVE SMOOTH",
+"795 1460 LINE",
+"580 1460 LINE",
+"180 355 LINE SMOOTH",
+"112 168 OFFCURVE",
+"76 81 OFFCURVE",
+"40 0 CURVE",
+"245 0 LINE"
+);
+},
+{
+closed = 1;
+nodes = (
+"433 540 LINE",
+"685 1265 LINE",
+"940 540 LINE"
+);
+}
+);
+width = 1395;
+},
+{
+anchors = (
+{
+name = H;
+position = "{1275, 0}";
+},
+{
+name = L;
+position = "{732, -100}";
+},
+{
+name = O;
+position = "{1495, 0}";
+},
+{
+name = U;
+position = "{732, 1530}";
+}
+);
+layerId = master02;
+paths = (
+{
+closed = 1;
+nodes = (
+"1408 0 LINE",
+"1373 80 OFFCURVE",
+"1341 168 OFFCURVE",
+"1278 355 CURVE SMOOTH",
+"908 1460 LINE",
+"552 1460 LINE",
+"182 355 LINE SMOOTH",
+"119 166 OFFCURVE",
+"88 81 OFFCURVE",
+"52 0 CURVE",
+"350 0 LINE",
+"460 355 LINE",
+"1004 355 LINE",
+"1115 0 LINE"
+);
+},
+{
+closed = 1;
+nodes = (
+"936 570 LINE",
+"526 570 LINE",
+"730 1228 LINE"
+);
+}
+);
+width = 1485;
+}
+);
+unicode = 0041;
+},
+{
+glyphname = LtnCapA.alt;
+layers = (
+{
+anchors = (
+{
+name = H;
+position = "{668, 1460}";
+},
+{
+name = L;
+position = "{688, 1560}";
+},
+{
+name = O;
+position = "{-75, 1460}";
+},
+{
+name = U;
+position = "{688, -70}";
+}
+);
+layerId = master01;
+paths = (
+{
+closed = 1;
+nodes = (
+"996 1075 LINE",
+"381 1075 LINE",
+"245 1460 LINE",
+"40 1460 LINE",
+"75 1380 OFFCURVE",
+"113 1291 OFFCURVE",
+"180 1105 CURVE SMOOTH",
+"580 0 LINE",
+"795 0 LINE",
+"1195 1105 LINE SMOOTH",
+"1263 1292 OFFCURVE",
+"1299 1379 OFFCURVE",
+"1335 1460 CURVE",
+"1130 1460 LINE"
+);
+},
+{
+closed = 1;
+nodes = (
+"942 920 LINE",
+"690 195 LINE",
+"435 920 LINE"
+);
+}
+);
+width = 1395;
+},
+{
+anchors = (
+{
+name = H;
+position = "{1275, 0}";
+},
+{
+name = L;
+position = "{732, -100}";
+},
+{
+name = O;
+position = "{1495, 0}";
+},
+{
+name = U;
+position = "{732, 1530}";
+}
+);
+layerId = master02;
+paths = (
+{
+closed = 1;
+nodes = (
+"1408 0 LINE",
+"1373 80 OFFCURVE",
+"1341 168 OFFCURVE",
+"1278 355 CURVE SMOOTH",
+"908 1460 LINE",
+"552 1460 LINE",
+"182 355 LINE SMOOTH",
+"119 166 OFFCURVE",
+"88 81 OFFCURVE",
+"52 0 CURVE",
+"350 0 LINE",
+"460 355 LINE",
+"1004 355 LINE",
+"1115 0 LINE"
+);
+},
+{
+closed = 1;
+nodes = (
+"936 570 LINE",
+"526 570 LINE",
+"730 1228 LINE"
+);
+}
+);
+width = 1485;
+}
+);
+},
+{
+glyphname = LtnCapB;
+layers = (
+{
+anchors = (
+{
+name = L;
+position = "{615, -100}";
+},
+{
+name = U;
+position = "{615, 1530}";
+}
+);
+layerId = master01;
+paths = (
+{
+closed = 1;
+nodes = (
+"407 1312 OFFCURVE",
+"512 1315 OFFCURVE",
+"590 1315 CURVE SMOOTH",
+"791 1315 OFFCURVE",
+"870 1239 OFFCURVE",
+"870 1090 CURVE SMOOTH",
+"870 951 OFFCURVE",
+"774 855 OFFCURVE",
+"560 855 CURVE SMOOTH",
+"365 855 LINE",
+"365 1310 LINE"
+);
+},
+{
+closed = 1;
+nodes = (
+"175 257 OFFCURVE",
+"175 80 OFFCURVE",
+"160 0 CURVE",
+"213 -5 OFFCURVE",
+"402 -10 OFFCURVE",
+"605 -10 CURVE SMOOTH",
+"988 -10 OFFCURVE",
+"1140 177 OFFCURVE",
+"1140 420 CURVE SMOOTH",
+"1140 669 OFFCURVE",
+"974 759 OFFCURVE",
+"820 800 CURVE",
+"956 852 OFFCURVE",
+"1065 952 OFFCURVE",
+"1065 1120 CURVE SMOOTH",
+"1065 1381 OFFCURVE",
+"897 1470 OFFCURVE",
+"600 1470 CURVE SMOOTH",
+"431 1470 OFFCURVE",
+"248 1466 OFFCURVE",
+"160 1460 CURVE",
+"175 1380 OFFCURVE",
+"175 1196 OFFCURVE",
+"175 1000 CURVE SMOOTH",
+"175 455 LINE"
+);
+},
+{
+closed = 1;
+nodes = (
+"600 700 LINE SMOOTH",
+"833 700 OFFCURVE",
+"945 604 OFFCURVE",
+"945 420 CURVE SMOOTH",
+"945 212 OFFCURVE",
+"781 150 OFFCURVE",
+"610 150 CURVE SMOOTH",
+"498 150 OFFCURVE",
+"402 153 OFFCURVE",
+"365 155 CURVE",
+"365 700 LINE"
+);
+}
+);
+width = 1285;
+},
+{
+anchors = (
+{
+name = L;
+position = "{670, -100}";
+},
+{
+name = U;
+position = "{670, 1530}";
+}
+);
+layerId = master02;
+paths = (
+{
+closed = 1;
+nodes = (
+"487 1250 OFFCURVE",
+"562 1253 OFFCURVE",
+"631 1253 CURVE SMOOTH",
+"818 1253 OFFCURVE",
+"897 1196 OFFCURVE",
+"897 1077 CURVE SMOOTH",
+"897 951 OFFCURVE",
+"794 875 OFFCURVE",
+"605 875 CURVE SMOOTH",
+"450 875 LINE",
+"450 1248 LINE"
+);
+},
+{
+closed = 1;
+nodes = (
+"1245 672 OFFCURVE",
+"1084 760 OFFCURVE",
+"935 800 CURVE",
+"1065 850 OFFCURVE",
+"1170 947 OFFCURVE",
+"1170 1110 CURVE SMOOTH",
+"1170 1378 OFFCURVE",
+"937 1470 OFFCURVE",
+"615 1470 CURVE SMOOTH",
+"422 1470 OFFCURVE",
+"248 1466 OFFCURVE",
+"150 1460 CURVE",
+"165 1380 OFFCURVE",
+"165 1196 OFFCURVE",
+"165 1000 CURVE SMOOTH",
+"165 455 LINE SMOOTH",
+"165 257 OFFCURVE",
+"165 80 OFFCURVE",
+"150 0 CURVE",
+"150 0 OFFCURVE",
+"401 -10 OFFCURVE",
+"631 -10 CURVE SMOOTH",
+"1055 -10 OFFCURVE",
+"1245 181 OFFCURVE",
+"1245 430 CURVE SMOOTH"
+);
+},
+{
+closed = 1;
+nodes = (
+"643 658 LINE SMOOTH",
+"853 658 OFFCURVE",
+"972 587 OFFCURVE",
+"972 450 CURVE SMOOTH",
+"972 269 OFFCURVE",
+"826 215 OFFCURVE",
+"652 215 CURVE SMOOTH",
+"552 215 OFFCURVE",
+"483 218 OFFCURVE",
+"450 220 CURVE",
+"450 658 LINE"
+);
+}
+);
+width = 1385;
+}
+);
+unicode = 0042;
+},
+{
+glyphname = LtnCapC;
+layers = (
+{
+anchors = (
+{
+name = H;
+position = "{750, 0}";
+},
+{
+name = L;
+position = "{750, -100}";
+},
+{
+name = U;
+position = "{750, 1530}";
+}
+);
+layerId = master01;
+paths = (
+{
+closed = 1;
+nodes = (
+"1078 223 OFFCURVE",
+"912 150 OFFCURVE",
+"760 150 CURVE SMOOTH",
+"489 150 OFFCURVE",
+"290 376 OFFCURVE",
+"290 735 CURVE SMOOTH",
+"290 1119 OFFCURVE",
+"491 1315 OFFCURVE",
+"770 1315 CURVE SMOOTH",
+"891 1315 OFFCURVE",
+"1030 1278 OFFCURVE",
+"1155 1165 CURVE",
+"1215 1345 LINE",
+"1072 1452 OFFCURVE",
+"913 1485 OFFCURVE",
+"770 1485 CURVE SMOOTH",
+"418 1485 OFFCURVE",
+"95 1225 OFFCURVE",
+"95 710 CURVE SMOOTH",
+"95 260 OFFCURVE",
+"346 -25 OFFCURVE",
+"750 -25 CURVE SMOOTH",
+"902 -25 OFFCURVE",
+"1114 32 OFFCURVE",
+"1230 140 CURVE",
+"1190 335 LINE"
+);
+}
+);
+width = 1355;
+},
+{
+anchors = (
+{
+name = H;
+position = "{745, 0}";
+},
+{
+name = L;
+position = "{745, -100}";
+},
+{
+name = U;
+position = "{745, 1530}";
+}
+);
+layerId = master02;
+paths = (
+{
+closed = 1;
+nodes = (
+"1105 293 OFFCURVE",
+"940 220 OFFCURVE",
+"790 220 CURVE SMOOTH",
+"531 220 OFFCURVE",
+"375 413 OFFCURVE",
+"375 735 CURVE SMOOTH",
+"375 1074 OFFCURVE",
+"557 1245 OFFCURVE",
+"800 1245 CURVE SMOOTH",
+"931 1245 OFFCURVE",
+"1053 1205 OFFCURVE",
+"1180 1105 CURVE",
+"1250 1345 LINE",
+"1106 1449 OFFCURVE",
+"969 1485 OFFCURVE",
+"785 1485 CURVE SMOOTH",
+"413 1485 OFFCURVE",
+"90 1225 OFFCURVE",
+"90 710 CURVE SMOOTH",
+"90 260 OFFCURVE",
+"341 -25 OFFCURVE",
+"755 -25 CURVE SMOOTH",
+"926 -25 OFFCURVE",
+"1142 42 OFFCURVE",
+"1265 140 CURVE",
+"1215 405 LINE"
+);
+}
+);
+width = 1385;
+}
+);
+unicode = 0043;
+},
+{
+glyphname = LtnCapD;
+layers = (
+{
+anchors = (
+{
+name = L;
+position = "{715, -100}";
+},
+{
+name = U;
+position = "{715, 1530}";
+}
+);
+layerId = master01;
+paths = (
+{
+closed = 1;
+nodes = (
+"174 257 OFFCURVE",
+"175 80 OFFCURVE",
+"160 0 CURVE",
+"160 0 OFFCURVE",
+"467 -10 OFFCURVE",
+"595 -10 CURVE SMOOTH",
+"888 -10 OFFCURVE",
+"1315 145 OFFCURVE",
+"1315 740 CURVE SMOOTH",
+"1315 1394 OFFCURVE",
+"829 1470 OFFCURVE",
+"615 1470 CURVE SMOOTH",
+"480 1470 OFFCURVE",
+"245 1466 OFFCURVE",
+"160 1460 CURVE",
+"175 1380 OFFCURVE",
+"175 1196 OFFCURVE",
+"175 1000 CURVE SMOOTH",
+"175 455 LINE"
+);
+},
+{
+closed = 1;
+nodes = (
+"415 1307 OFFCURVE",
+"524 1310 OFFCURVE",
+"590 1310 CURVE SMOOTH",
+"878 1310 OFFCURVE",
+"1120 1167 OFFCURVE",
+"1120 720 CURVE SMOOTH",
+"1120 308 OFFCURVE",
+"853 155 OFFCURVE",
+"585 155 CURVE SMOOTH",
+"490 155 OFFCURVE",
+"412 161 OFFCURVE",
+"365 165 CURVE",
+"365 1305 LINE"
+);
+}
+);
+width = 1435;
+},
+{
+anchors = (
+{
+name = L;
+position = "{800, -100}";
+},
+{
+name = U;
+position = "{800, 1530}";
+}
+);
+layerId = master02;
+paths = (
+{
+closed = 1;
+nodes = (
+"164 257 OFFCURVE",
+"165 80 OFFCURVE",
+"150 0 CURVE",
+"150 0 OFFCURVE",
+"474 -10 OFFCURVE",
+"609 -10 CURVE SMOOTH",
+"919 -10 OFFCURVE",
+"1370 145 OFFCURVE",
+"1370 740 CURVE SMOOTH",
+"1370 1374 OFFCURVE",
+"906 1470 OFFCURVE",
+"630 1470 CURVE SMOOTH",
+"487 1470 OFFCURVE",
+"239 1466 OFFCURVE",
+"150 1460 CURVE",
+"165 1380 OFFCURVE",
+"165 1196 OFFCURVE",
+"165 1000 CURVE SMOOTH",
+"165 455 LINE"
+);
+},
+{
+closed = 1;
+nodes = (
+"492 1243 OFFCURVE",
+"582 1246 OFFCURVE",
+"637 1246 CURVE SMOOTH",
+"897 1246 OFFCURVE",
+"1078 1118 OFFCURVE",
+"1078 720 CURVE SMOOTH",
+"1078 357 OFFCURVE",
+"856 221 OFFCURVE",
+"633 221 CURVE SMOOTH",
+"554 221 OFFCURVE",
+"489 227 OFFCURVE",
+"450 231 CURVE",
+"450 1241 LINE"
+);
+}
+);
+width = 1485;
+}
+);
+unicode = 0044;
+},
+{
+glyphname = LtnCapE;
+layers = (
+{
+anchors = (
+{
+name = H;
+position = "{600, 0}";
+},
+{
+name = L;
+position = "{600, -100}";
+},
+{
+name = O;
+position = "{917, 0}";
+},
+{
+name = R;
+position = "{1160, 1200}";
+},
+{
+name = U;
+position = "{600, 1530}";
+}
+);
+layerId = master01;
+paths = (
+{
+closed = 1;
+nodes = (
+"365 1295 LINE",
+"1010 1295 LINE",
+"1010 1460 LINE",
+"160 1460 LINE",
+"175 1380 OFFCURVE",
+"175 1222 OFFCURVE",
+"175 1025 CURVE SMOOTH",
+"175 435 LINE SMOOTH",
+"175 238 OFFCURVE",
+"175 80 OFFCURVE",
+"160 0 CURVE",
+"1040 0 LINE",
+"1040 180 LINE",
+"960 166 OFFCURVE",
+"826 165 OFFCURVE",
+"629 165 CURVE SMOOTH",
+"365 165 LINE",
+"365 685 LINE",
+"935 685 LINE",
+"935 845 LINE",
+"365 845 LINE"
+);
+}
+);
+width = 1160;
+},
+{
+anchors = (
+{
+name = H;
+position = "{610, 0}";
+},
+{
+name = L;
+position = "{610, -100}";
+},
+{
+name = O;
+position = "{1004, 0}";
+},
+{
+name = R;
+position = "{1247, 1200}";
+},
+{
+name = U;
+position = "{610, 1530}";
+}
+);
+layerId = master02;
+paths = (
+{
+closed = 1;
+nodes = (
+"450 1230 LINE",
+"1072 1230 LINE",
+"1072 1460 LINE",
+"150 1460 LINE",
+"165 1380 OFFCURVE",
+"165 1222 OFFCURVE",
+"165 1025 CURVE SMOOTH",
+"165 435 LINE SMOOTH",
+"165 238 OFFCURVE",
+"165 80 OFFCURVE",
+"150 0 CURVE",
+"1102 0 LINE",
+"1102 245 LINE",
+"1024 231 OFFCURVE",
+"899 230 OFFCURVE",
+"708 230 CURVE SMOOTH",
+"450 230 LINE",
+"450 650 LINE",
+"997 650 LINE",
+"997 875 LINE",
+"450 875 LINE"
+);
+}
+);
+width = 1212;
+}
+);
+unicode = 0045;
+},
+{
+glyphname = LtnCapF;
+layers = (
+{
+anchors = (
+{
+name = L;
+position = "{595, -100}";
+},
+{
+name = U;
+position = "{595, 1530}";
+}
+);
+layerId = master01;
+paths = (
+{
+closed = 1;
+nodes = (
+"365 1295 LINE",
+"1030 1295 LINE",
+"1030 1460 LINE",
+"160 1460 LINE",
+"175 1380 OFFCURVE",
+"175 1217 OFFCURVE",
+"175 1020 CURVE SMOOTH",
+"175 435 LINE SMOOTH",
+"175 238 OFFCURVE",
+"175 80 OFFCURVE",
+"160 0 CURVE",
+"380 0 LINE",
+"365 78 OFFCURVE",
+"365 237 OFFCURVE",
+"365 435 CURVE SMOOTH",
+"365 675 LINE",
+"945 675 LINE",
+"945 835 LINE",
+"365 835 LINE"
+);
+}
+);
+width = 1150;
+},
+{
+anchors = (
+{
+name = L;
+position = "{630, -100}";
+},
+{
+name = U;
+position = "{630, 1530}";
+}
+);
+layerId = master02;
+paths = (
+{
+closed = 1;
+nodes = (
+"450 1230 LINE",
+"1090 1230 LINE",
+"1090 1460 LINE",
+"150 1460 LINE",
+"165 1380 OFFCURVE",
+"165 1217 OFFCURVE",
+"165 1020 CURVE SMOOTH",
+"165 435 LINE SMOOTH",
+"165 238 OFFCURVE",
+"165 80 OFFCURVE",
+"150 0 CURVE",
+"465 0 LINE",
+"450 73 OFFCURVE",
+"450 222 OFFCURVE",
+"450 408 CURVE SMOOTH",
+"450 635 LINE",
+"1005 635 LINE",
+"1005 860 LINE",
+"450 860 LINE"
+);
+}
+);
+width = 1200;
+}
+);
+unicode = 0046;
+},
+{
+glyphname = LtnCapG;
+layers = (
+{
+anchors = (
+{
+name = H;
+position = "{745, 0}";
+},
+{
+name = L;
+position = "{745, -100}";
+},
+{
+name = U;
+position = "{745, 1530}";
+}
+);
+layerId = master01;
+paths = (
+{
+closed = 1;
+nodes = (
+"735 745 LINE",
+"735 580 LINE",
+"1085 580 LINE",
+"1085 245 LINE",
+"963 171 OFFCURVE",
+"876 150 OFFCURVE",
+"757 150 CURVE SMOOTH",
+"471 150 OFFCURVE",
+"290 377 OFFCURVE",
+"290 745 CURVE SMOOTH",
+"290 1094 OFFCURVE",
+"480 1315 OFFCURVE",
+"785 1315 CURVE SMOOTH",
+"918 1315 OFFCURVE",
+"1046 1286 OFFCURVE",
+"1195 1165 CURVE",
+"1260 1345 LINE",
+"1085 1462 OFFCURVE",
+"947 1485 OFFCURVE",
+"785 1485 CURVE SMOOTH",
+"402 1485 OFFCURVE",
+"95 1199 OFFCURVE",
+"95 720 CURVE SMOOTH",
+"95 241 OFFCURVE",
+"367 -25 OFFCURVE",
+"745 -25 CURVE SMOOTH",
+"918 -25 OFFCURVE",
+"1070 11 OFFCURVE",
+"1275 155 CURVE",
+"1275 745 LINE"
+);
+}
+);
+width = 1420;
+},
+{
+anchors = (
+{
+name = H;
+position = "{807, 0}";
+},
+{
+name = L;
+position = "{807, -100}";
+},
+{
+name = U;
+position = "{807, 1530}";
+}
+);
+layerId = master02;
+paths = (
+{
+closed = 1;
+nodes = (
+"767 785 LINE",
+"767 560 LINE",
+"1082 560 LINE",
+"1082 294 LINE",
+"966 236 OFFCURVE",
+"883 220 OFFCURVE",
+"769 220 CURVE SMOOTH",
+"532 220 OFFCURVE",
+"375 420 OFFCURVE",
+"375 745 CURVE SMOOTH",
+"375 1048 OFFCURVE",
+"545 1245 OFFCURVE",
+"810 1245 CURVE SMOOTH",
+"953 1245 OFFCURVE",
+"1097 1205 OFFCURVE",
+"1236 1107 CURVE",
+"1322 1345 LINE",
+"1137 1462 OFFCURVE",
+"989 1485 OFFCURVE",
+"818 1485 CURVE SMOOTH",
+"403 1485 OFFCURVE",
+"90 1199 OFFCURVE",
+"90 720 CURVE SMOOTH",
+"90 241 OFFCURVE",
+"377 -25 OFFCURVE",
+"777 -25 CURVE SMOOTH",
+"960 -25 OFFCURVE",
+"1120 11 OFFCURVE",
+"1337 155 CURVE",
+"1337 785 LINE"
+);
+}
+);
+width = 1472;
+}
+);
+unicode = 0047;
+},
+{
+glyphname = LtnCapH;
+layers = (
+{
+anchors = (
+{
+name = H;
+position = "{285, 0}";
+},
+{
+name = L;
+position = "{725, -100}";
+},
+{
+name = U;
+position = "{725, 1530}";
+}
+);
+layerId = master01;
+paths = (
+{
+closed = 1;
+nodes = (
+"1275 80 OFFCURVE",
+"1275 238 OFFCURVE",
+"1275 435 CURVE SMOOTH",
+"1275 1025 LINE SMOOTH",
+"1275 1222 OFFCURVE",
+"1275 1380 OFFCURVE",
+"1290 1460 CURVE",
+"1085 1460 LINE",
+"1085 835 LINE",
+"365 835 LINE",
+"365 1460 LINE",
+"160 1460 LINE",
+"175 1380 OFFCURVE",
+"175 1222 OFFCURVE",
+"175 1025 CURVE SMOOTH",
+"175 435 LINE SMOOTH",
+"175 238 OFFCURVE",
+"175 80 OFFCURVE",
+"160 0 CURVE",
+"365 0 LINE",
+"365 675 LINE",
+"1085 675 LINE",
+"1085 0 LINE",
+"1290 0 LINE"
+);
+}
+);
+width = 1475;
+},
+{
+anchors = (
+{
+name = H;
+position = "{305, 0}";
+},
+{
+name = L;
+position = "{745, -100}";
+},
+{
+name = U;
+position = "{745, 1530}";
+}
+);
+layerId = master02;
+paths = (
+{
+closed = 1;
+nodes = (
+"1040 860 LINE",
+"450 860 LINE",
+"450 1460 LINE",
+"150 1460 LINE",
+"165 1380 OFFCURVE",
+"165 1227 OFFCURVE",
+"165 1030 CURVE SMOOTH",
+"165 430 LINE SMOOTH",
+"165 233 OFFCURVE",
+"165 80 OFFCURVE",
+"150 0 CURVE",
+"150 0 OFFCURVE",
+"450 0 OFFCURVE",
+"450 0 CURVE",
+"450 635 LINE",
+"1040 635 LINE",
+"1040 0 LINE",
+"1040 0 OFFCURVE",
+"1340 0 OFFCURVE",
+"1340 0 CURVE",
+"1325 80 OFFCURVE",
+"1325 233 OFFCURVE",
+"1325 430 CURVE SMOOTH",
+"1325 1030 LINE SMOOTH",
+"1325 1227 OFFCURVE",
+"1325 1380 OFFCURVE",
+"1340 1460 CURVE",
+"1040 1460 LINE"
+);
+}
+);
+width = 1515;
+}
+);
+unicode = 0048;
+},
+{
+glyphname = LtnCapI;
+layers = (
+{
+anchors = (
+{
+name = H;
+position = "{477, 0}";
+},
+{
+name = L;
+position = "{477, -100}";
+},
+{
+name = O;
+position = "{673, 0}";
+},
+{
+name = R;
+position = "{975, 1200}";
+},
+{
+name = U;
+position = "{477, 1530}";
+}
+);
+layerId = master01;
+paths = (
+{
+closed = 1;
+nodes = (
+"140 1315 LINE",
+"380 1315 LINE",
+"380 145 LINE",
+"140 145 LINE",
+"140 0 LINE",
+"815 0 LINE",
+"815 145 LINE",
+"570 145 LINE",
+"570 1315 LINE",
+"815 1315 LINE",
+"815 1460 LINE",
+"140 1460 LINE"
+);
+}
+);
+width = 975;
+},
+{
+anchors = (
+{
+name = H;
+position = "{520, 0}";
+},
+{
+name = L;
+position = "{516, -100}";
+},
+{
+name = O;
+position = "{712, 0}";
+},
+{
+name = R;
+position = "{1014, 1200}";
+},
+{
+name = U;
+position = "{520, 1530}";
+}
+);
+layerId = master02;
+paths = (
+{
+closed = 1;
+nodes = (
+"130 1255 LINE",
+"370 1255 LINE",
+"370 205 LINE",
+"130 205 LINE",
+"130 0 LINE",
+"895 0 LINE",
+"895 205 LINE",
+"655 205 LINE",
+"655 1255 LINE",
+"895 1255 LINE",
+"895 1460 LINE",
+"130 1460 LINE"
+);
+}
+);
+width = 1045;
+}
+);
+unicode = 0049;
+},
+{
+glyphname = LtnCapJ;
+layers = (
+{
+anchors = (
+{
+name = L;
+position = "{410, -100}";
+},
+{
+name = U;
+position = "{675, 1530}";
+}
+);
+layerId = master01;
+paths = (
+{
+closed = 1;
+nodes = (
+"588 1354 OFFCURVE",
+"590 1175 OFFCURVE",
+"590 980 CURVE",
+"590 485 LINE SMOOTH",
+"590 256 OFFCURVE",
+"487 155 OFFCURVE",
+"340 155 CURVE SMOOTH",
+"248 155 OFFCURVE",
+"147 198 OFFCURVE",
+"80 275 CURVE",
+"35 90 LINE",
+"106 9 OFFCURVE",
+"250 -25 OFFCURVE",
+"345 -25 CURVE SMOOTH",
+"602 -25 OFFCURVE",
+"780 119 OFFCURVE",
+"780 535 CURVE SMOOTH",
+"780 1460 LINE",
+"575 1460 LINE"
+);
+}
+);
+width = 965;
+},
+{
+anchors = (
+{
+name = L;
+position = "{415, -100}";
+},
+{
+name = U;
+position = "{705, 1530}";
+}
+);
+layerId = master02;
+paths = (
+{
+closed = 1;
+nodes = (
+"568 1354 OFFCURVE",
+"570 1175 OFFCURVE",
+"570 980 CURVE SMOOTH",
+"570 558 LINE SMOOTH",
+"570 383 OFFCURVE",
+"540 227 OFFCURVE",
+"365 227 CURVE SMOOTH",
+"264 227 OFFCURVE",
+"153 270 OFFCURVE",
+"79 347 CURVE",
+"30 90 LINE",
+"109 9 OFFCURVE",
+"258 -25 OFFCURVE",
+"363 -25 CURVE SMOOTH",
+"658 -25 OFFCURVE",
+"855 129 OFFCURVE",
+"855 535 CURVE SMOOTH",
+"855 618 OFFCURVE",
+"855 1460 OFFCURVE",
+"855 1460 CURVE",
+"555 1460 LINE"
+);
+}
+);
+width = 1030;
+}
+);
+unicode = 004A;
+},
+{
+glyphname = LtnCapK;
+layers = (
+{
+anchors = (
+{
+name = H;
+position = "{270, 0}";
+},
+{
+name = L;
+position = "{695, -100}";
+},
+{
+name = U;
+position = "{650, 1530}";
+}
+);
+layerId = master01;
+paths = (
+{
+closed = 1;
+nodes = (
+"295 703 LINE",
+"425 745 LINE",
+"530 740 LINE",
+"1165 1460 LINE",
+"925 1460 LINE"
+);
+},
+{
+closed = 1;
+nodes = (
+"985 0 LINE",
+"1230 0 LINE",
+"485 860 LINE",
+"350 735 LINE"
+);
+},
+{
+closed = 1;
+nodes = (
+"160 1460 LINE",
+"175 1380 OFFCURVE",
+"175 1222 OFFCURVE",
+"175 1025 CURVE SMOOTH",
+"175 435 LINE SMOOTH",
+"175 238 OFFCURVE",
+"175 80 OFFCURVE",
+"160 0 CURVE",
+"365 0 LINE",
+"365 1460 LINE"
+);
+}
+);
+width = 1310;
+},
+{
+anchors = (
+{
+name = H;
+position = "{320, 0}";
+},
+{
+name = L;
+position = "{740, -100}";
+},
+{
+name = U;
+position = "{725, 1530}";
+}
+);
+layerId = master02;
+paths = (
+{
+closed = 1;
+nodes = (
+"371 732 LINE",
+"579 676 LINE",
+"1280 1460 LINE",
+"944 1460 LINE"
+);
+},
+{
+closed = 1;
+nodes = (
+"990 0 LINE",
+"1360 0 LINE",
+"614 829 LINE",
+"389 731 LINE"
+);
+},
+{
+closed = 1;
+nodes = (
+"150 1460 LINE",
+"165 1380 OFFCURVE",
+"165 1222 OFFCURVE",
+"165 1025 CURVE SMOOTH",
+"165 435 LINE SMOOTH",
+"165 238 OFFCURVE",
+"165 80 OFFCURVE",
+"150 0 CURVE",
+"450 0 LINE",
+"450 1460 LINE"
+);
+}
+);
+width = 1430;
+}
+);
+unicode = 004B;
+},
+{
+glyphname = LtnCapL;
+layers = (
+{
+anchors = (
+{
+name = H;
+position = "{592, 0}";
+},
+{
+name = L;
+position = "{592, -100}";
+},
+{
+name = R;
+position = "{540, 1200}";
+},
+{
+name = U;
+position = "{592, 1530}";
+}
+);
+layerId = master01;
+paths = (
+{
+closed = 1;
+nodes = (
+"365 1460 LINE",
+"160 1460 LINE",
+"175 1380 OFFCURVE",
+"175 1222 OFFCURVE",
+"175 1025 CURVE SMOOTH",
+"175 435 LINE SMOOTH",
+"175 238 OFFCURVE",
+"175 80 OFFCURVE",
+"160 0 CURVE",
+"1025 0 LINE",
+"1025 180 LINE",
+"945 166 OFFCURVE",
+"786 165 OFFCURVE",
+"589 165 CURVE SMOOTH",
+"365 165 LINE"
+);
+}
+);
+width = 1080;
+},
+{
+anchors = (
+{
+name = H;
+position = "{620, 0}";
+},
+{
+name = L;
+position = "{620, -100}";
+},
+{
+name = R;
+position = "{650, 1200}";
+},
+{
+name = U;
+position = "{620, 1530}";
+}
+);
+layerId = master02;
+paths = (
+{
+closed = 1;
+nodes = (
+"450 1460 LINE",
+"150 1460 LINE",
+"165 1380 OFFCURVE",
+"165 1222 OFFCURVE",
+"165 1025 CURVE SMOOTH",
+"165 435 LINE SMOOTH",
+"165 238 OFFCURVE",
+"165 80 OFFCURVE",
+"150 0 CURVE",
+"1085 0 LINE",
+"1085 245 LINE",
+"1008 231 OFFCURVE",
+"855 230 OFFCURVE",
+"666 230 CURVE SMOOTH",
+"450 230 LINE"
+);
+}
+);
+width = 1130;
+}
+);
+unicode = 004C;
+},
+{
+glyphname = LtnCapM;
+layers = (
+{
+anchors = (
+{
+name = H;
+position = "{1521, 0}";
+},
+{
+name = L;
+position = "{885, -100}";
+},
+{
+name = U;
+position = "{885, 1530}";
+}
+);
+layerId = master01;
+paths = (
+{
+closed = 1;
+nodes = (
+"455 1460 LINE",
+"285 1460 LINE",
+"790 0 LINE",
+"985 0 LINE",
+"1487 1460 LINE",
+"1320 1460 LINE",
+"885 205 LINE"
+);
+},
+{
+closed = 1;
+nodes = (
+"230 1460 OFFCURVE",
+"186 198 OFFCURVE",
+"160 0 CURVE",
+"345 0 LINE",
+"377 1205 LINE",
+"405 1460 LINE",
+"230 1460 LINE"
+);
+},
+{
+closed = 1;
+nodes = (
+"1581 198 OFFCURVE",
+"1540 1460 OFFCURVE",
+"1540 1460 CURVE",
+"1365 1460 LINE",
+"1397 1205 LINE",
+"1425 0 LINE",
+"1610 0 LINE"
+);
+}
+);
+width = 1795;
+},
+{
+anchors = (
+{
+name = L;
+position = "{915, -100}";
+},
+{
+name = U;
+position = "{915, 1530}";
+}
+);
+layerId = master02;
+paths = (
+{
+closed = 1;
+nodes = (
+"575 1460 LINE",
+"315 1460 LINE",
+"436 1170 LINE",
+"770 0 LINE",
+"1065 0 LINE",
+"1397 1170 LINE",
+"1517 1460 LINE",
+"1260 1460 LINE",
+"917 275 LINE"
+);
+},
+{
+closed = 1;
+nodes = (
+"220 1460 OFFCURVE",
+"176 198 OFFCURVE",
+"150 0 CURVE",
+"420 0 LINE",
+"449 1205 LINE",
+"485 1460 LINE",
+"220 1460 LINE"
+);
+},
+{
+closed = 1;
+nodes = (
+"1651 198 OFFCURVE",
+"1610 1460 OFFCURVE",
+"1610 1460 CURVE",
+"1340 1460 LINE",
+"1385 1205 LINE",
+"1410 0 LINE",
+"1680 0 LINE"
+);
+}
+);
+width = 1855;
+}
+);
+unicode = 004D;
+},
+{
+glyphname = LtnCapN;
+layers = (
+{
+anchors = (
+{
+name = H;
+position = "{1230, 0}";
+},
+{
+name = L;
+position = "{737, -100}";
+},
+{
+name = U;
+position = "{737, 1530}";
+}
+);
+layerId = master01;
+paths = (
+{
+closed = 1;
+nodes = (
+"1135 0 LINE",
+"1275 100 LINE",
+"340 1460 LINE",
+"200 1355 LINE"
+);
+},
+{
+closed = 1;
+nodes = (
+"1300 0 LINE",
+"1300 1025 LINE SMOOTH",
+"1300 1222 OFFCURVE",
+"1301 1380 OFFCURVE",
+"1315 1460 CURVE",
+"1135 1460 LINE",
+"1135 0 LINE"
+);
+},
+{
+closed = 1;
+nodes = (
+"160 1460 LINE",
+"175 1380 OFFCURVE",
+"175 1222 OFFCURVE",
+"175 1025 CURVE SMOOTH",
+"175 435 LINE SMOOTH",
+"175 238 OFFCURVE",
+"175 80 OFFCURVE",
+"160 0 CURVE",
+"340 0 LINE",
+"340 1460 LINE"
+);
+}
+);
+width = 1500;
+},
+{
+anchors = (
+{
+name = H;
+position = "{1240, 0}";
+},
+{
+name = L;
+position = "{765, -100}";
+},
+{
+name = U;
+position = "{765, 1530}";
+}
+);
+layerId = master02;
+paths = (
+{
+closed = 1;
+nodes = (
+"1095 0 LINE",
+"1297 150 LINE",
+"425 1460 LINE",
+"223 1310 LINE"
+);
+},
+{
+closed = 1;
+nodes = (
+"1355 0 LINE",
+"1355 1025 LINE SMOOTH",
+"1355 1222 OFFCURVE",
+"1356 1380 OFFCURVE",
+"1370 1460 CURVE",
+"1095 1460 LINE",
+"1095 0 LINE"
+);
+},
+{
+closed = 1;
+nodes = (
+"150 1460 LINE",
+"165 1380 OFFCURVE",
+"165 1222 OFFCURVE",
+"165 1025 CURVE SMOOTH",
+"165 435 LINE SMOOTH",
+"165 238 OFFCURVE",
+"165 80 OFFCURVE",
+"150 0 CURVE",
+"425 0 LINE",
+"425 1460 LINE"
+);
+}
+);
+width = 1545;
+}
+);
+unicode = 004E;
+},
+{
+glyphname = LtnCapO;
+layers = (
+{
+anchors = (
+{
+name = H;
+position = "{717, 0}";
+},
+{
+name = L;
+position = "{717, -100}";
+},
+{
+name = O;
+position = "{994, 0}";
+},
+{
+name = R;
+position = "{1460, 1200}";
+},
+{
+name = U;
+position = "{717, 1530}";
+}
+);
+layerId = master01;
+paths = (
+{
+closed = 1;
+nodes = (
+"1145 360 OFFCURVE",
+"965 150 OFFCURVE",
+"720 150 CURVE SMOOTH",
+"460 150 OFFCURVE",
+"290 380 OFFCURVE",
+"290 745 CURVE SMOOTH",
+"290 1091 OFFCURVE",
+"467 1310 OFFCURVE",
+"720 1310 CURVE SMOOTH",
+"974 1310 OFFCURVE",
+"1145 1084 OFFCURVE",
+"1145 715 CURVE SMOOTH"
+);
+},
+{
+closed = 1;
+nodes = (
+"1340 1219 OFFCURVE",
+"1048 1485 OFFCURVE",
+"730 1485 CURVE SMOOTH",
+"407 1485 OFFCURVE",
+"95 1199 OFFCURVE",
+"95 720 CURVE SMOOTH",
+"95 241 OFFCURVE",
+"388 -25 OFFCURVE",
+"710 -25 CURVE SMOOTH",
+"1029 -25 OFFCURVE",
+"1340 260 OFFCURVE",
+"1340 740 CURVE SMOOTH"
+);
+}
+);
+width = 1460;
+},
+{
+anchors = (
+{
+name = H;
+position = "{740, 0}";
+},
+{
+name = L;
+position = "{740, -100}";
+},
+{
+name = O;
+position = "{976, 0}";
+},
+{
+name = R;
+position = "{1480, 1200}";
+},
+{
+name = U;
+position = "{740, 1530}";
+}
+);
+layerId = master02;
+paths = (
+{
+closed = 1;
+nodes = (
+"1100 404 OFFCURVE",
+"940 220 OFFCURVE",
+"740 220 CURVE SMOOTH",
+"524 220 OFFCURVE",
+"375 423 OFFCURVE",
+"375 745 CURVE SMOOTH",
+"375 1048 OFFCURVE",
+"529 1240 OFFCURVE",
+"740 1240 CURVE SMOOTH",
+"951 1240 OFFCURVE",
+"1100 1041 OFFCURVE",
+"1100 715 CURVE SMOOTH"
+);
+},
+{
+closed = 1;
+nodes = (
+"1385 1219 OFFCURVE",
+"1091 1485 OFFCURVE",
+"750 1485 CURVE SMOOTH",
+"404 1485 OFFCURVE",
+"90 1199 OFFCURVE",
+"90 720 CURVE SMOOTH",
+"90 241 OFFCURVE",
+"385 -25 OFFCURVE",
+"730 -25 CURVE SMOOTH",
+"1072 -25 OFFCURVE",
+"1385 260 OFFCURVE",
+"1385 740 CURVE SMOOTH"
+);
+}
+);
+width = 1500;
+}
+);
+unicode = 004F;
+},
+{
+glyphname = LtnCapP;
+layers = (
+{
+anchors = (
+{
+name = L;
+position = "{637, -100}";
+},
+{
+name = U;
+position = "{637, 1530}";
+}
+);
+layerId = master01;
+paths = (
+{
+closed = 1;
+nodes = (
+"430 558 OFFCURVE",
+"512 555 OFFCURVE",
+"585 555 CURVE SMOOTH",
+"914 555 OFFCURVE",
+"1115 736 OFFCURVE",
+"1115 1030 CURVE SMOOTH",
+"1115 1322 OFFCURVE",
+"908 1470 OFFCURVE",
+"585 1470 CURVE SMOOTH",
+"372 1470 OFFCURVE",
+"160 1460 OFFCURVE",
+"160 1460 CURVE",
+"175 1380 OFFCURVE",
+"175 1196 OFFCURVE",
+"175 1000 CURVE",
+"175 435 LINE SMOOTH",
+"175 238 OFFCURVE",
+"175 80 OFFCURVE",
+"160 0 CURVE",
+"380 0 LINE",
+"366 78 OFFCURVE",
+"365 237 OFFCURVE",
+"365 435 CURVE SMOOTH",
+"365 565 LINE"
+);
+},
+{
+closed = 1;
+nodes = (
+"433 1308 OFFCURVE",
+"481 1310 OFFCURVE",
+"575 1310 CURVE SMOOTH",
+"841 1310 OFFCURVE",
+"925 1170 OFFCURVE",
+"925 1010 CURVE SMOOTH",
+"925 849 OFFCURVE",
+"850 710 OFFCURVE",
+"570 710 CURVE SMOOTH",
+"495 710 OFFCURVE",
+"428 712 OFFCURVE",
+"365 720 CURVE",
+"365 1305 LINE"
+);
+}
+);
+width = 1195;
+},
+{
+anchors = (
+{
+name = L;
+position = "{685, -100}";
+},
+{
+name = U;
+position = "{685, 1530}";
+}
+);
+layerId = master02;
+paths = (
+{
+closed = 1;
+nodes = (
+"515 516 OFFCURVE",
+"575 513 OFFCURVE",
+"648 513 CURVE SMOOTH",
+"977 513 OFFCURVE",
+"1200 702 OFFCURVE",
+"1200 1010 CURVE SMOOTH",
+"1200 1316 OFFCURVE",
+"981 1470 OFFCURVE",
+"658 1470 CURVE SMOOTH",
+"445 1470 OFFCURVE",
+"150 1460 OFFCURVE",
+"150 1460 CURVE",
+"165 1380 OFFCURVE",
+"165 1196 OFFCURVE",
+"165 1000 CURVE SMOOTH",
+"165 435 LINE SMOOTH",
+"165 238 OFFCURVE",
+"165 80 OFFCURVE",
+"150 0 CURVE",
+"465 0 LINE",
+"451 78 OFFCURVE",
+"450 237 OFFCURVE",
+"450 435 CURVE SMOOTH",
+"450 523 LINE"
+);
+},
+{
+closed = 1;
+nodes = (
+"506 1243 OFFCURVE",
+"544 1245 OFFCURVE",
+"622 1245 CURVE SMOOTH",
+"833 1245 OFFCURVE",
+"915 1145 OFFCURVE",
+"915 1000 CURVE SMOOTH",
+"915 820 OFFCURVE",
+"811 730 OFFCURVE",
+"618 730 CURVE SMOOTH",
+"556 730 OFFCURVE",
+"493 733 OFFCURVE",
+"450 740 CURVE",
+"450 1240 LINE"
+);
+}
+);
+width = 1275;
+}
+);
+unicode = 0050;
+},
+{
+glyphname = LtnCapQ;
+layers = (
+{
+anchors = (
+{
+name = L;
+position = "{717, -270}";
+},
+{
+name = U;
+position = "{717, 1530}";
+}
+);
+layerId = master01;
+paths = (
+{
+closed = 1;
+nodes = (
+"1340 1219 OFFCURVE",
+"1053 1485 OFFCURVE",
+"730 1485 CURVE SMOOTH",
+"407 1485 OFFCURVE",
+"95 1199 OFFCURVE",
+"95 720 CURVE SMOOTH",
+"95 241 OFFCURVE",
+"383 -25 OFFCURVE",
+"705 -25 CURVE SMOOTH",
+"767 -25 OFFCURVE",
+"818 -18 OFFCURVE",
+"875 0 CURVE",
+"944 0 OFFCURVE",
+"1236 -190 OFFCURVE",
+"1320 -190 CURVE SMOOTH",
+"1374 -190 OFFCURVE",
+"1431 -81 OFFCURVE",
+"1455 -45 CURVE",
+"1321 -28 OFFCURVE",
+"1205 28 OFFCURVE",
+"1080 105 CURVE",
+"1256 236 OFFCURVE",
+"1340 479 OFFCURVE",
+"1340 740 CURVE SMOOTH"
+);
+},
+{
+closed = 1;
+nodes = (
+"1145 360 OFFCURVE",
+"965 150 OFFCURVE",
+"720 150 CURVE SMOOTH",
+"460 150 OFFCURVE",
+"290 380 OFFCURVE",
+"290 745 CURVE SMOOTH",
+"290 1091 OFFCURVE",
+"467 1310 OFFCURVE",
+"720 1310 CURVE SMOOTH",
+"974 1310 OFFCURVE",
+"1145 1084 OFFCURVE",
+"1145 715 CURVE SMOOTH"
+);
+}
+);
+width = 1475;
+},
+{
+anchors = (
+{
+name = L;
+position = "{747, -270}";
+},
+{
+name = U;
+position = "{747, 1530}";
+}
+);
+layerId = master02;
+paths = (
+{
+closed = 1;
+nodes = (
+"1385 1219 OFFCURVE",
+"1091 1485 OFFCURVE",
+"750 1485 CURVE SMOOTH",
+"404 1485 OFFCURVE",
+"90 1199 OFFCURVE",
+"90 720 CURVE SMOOTH",
+"90 241 OFFCURVE",
+"385 -25 OFFCURVE",
+"730 -25 CURVE SMOOTH",
+"807 -25 OFFCURVE",
+"840 -23 OFFCURVE",
+"889 -15 CURVE",
+"958 -15 OFFCURVE",
+"1266 -228 OFFCURVE",
+"1350 -228 CURVE SMOOTH",
+"1424 -228 OFFCURVE",
+"1502 -68 OFFCURVE",
+"1535 -15 CURVE",
+"1394 1 OFFCURVE",
+"1277 68 OFFCURVE",
+"1146 142 CURVE",
+"1294 283 OFFCURVE",
+"1385 471 OFFCURVE",
+"1385 740 CURVE SMOOTH"
+);
+},
+{
+closed = 1;
+nodes = (
+"1100 404 OFFCURVE",
+"943 220 OFFCURVE",
+"740 220 CURVE SMOOTH",
+"524 220 OFFCURVE",
+"375 423 OFFCURVE",
+"375 745 CURVE SMOOTH",
+"375 1048 OFFCURVE",
+"529 1240 OFFCURVE",
+"740 1240 CURVE SMOOTH",
+"951 1240 OFFCURVE",
+"1100 1041 OFFCURVE",
+"1100 715 CURVE SMOOTH"
+);
+}
+);
+width = 1545;
+}
+);
+unicode = 0051;
+},
+{
+glyphname = LtnCapR;
+layers = (
+{
+anchors = (
+{
+name = H;
+position = "{285, 0}";
+},
+{
+name = L;
+position = "{610, -100}";
+},
+{
+name = U;
+position = "{610, 1530}";
+}
+);
+layerId = master01;
+paths = (
+{
+closed = 1;
+nodes = (
+"620 625 LINE",
+"805 625 OFFCURVE",
+"1090 743 OFFCURVE",
+"1090 1060 CURVE SMOOTH",
+"1090 1349 OFFCURVE",
+"876 1470 OFFCURVE",
+"565 1470 CURVE SMOOTH",
+"331 1470 OFFCURVE",
+"160 1460 OFFCURVE",
+"160 1460 CURVE",
+"175 1380 OFFCURVE",
+"175 1196 OFFCURVE",
+"175 1000 CURVE SMOOTH",
+"175 435 LINE",
+"175 238 OFFCURVE",
+"175 80 OFFCURVE",
+"160 0 CURVE",
+"380 0 LINE",
+"366 78 OFFCURVE",
+"365 238 OFFCURVE",
+"365 435 CURVE",
+"365 625 LINE"
+);
+},
+{
+closed = 1;
+nodes = (
+"418 1307 OFFCURVE",
+"485 1310 OFFCURVE",
+"555 1310 CURVE SMOOTH",
+"800 1310 OFFCURVE",
+"900 1216 OFFCURVE",
+"900 1045 CURVE SMOOTH",
+"900 879 OFFCURVE",
+"780 780 OFFCURVE",
+"555 780 CURVE",
+"365 780 LINE",
+"365 1305 LINE"
+);
+},
+{
+closed = 1;
+nodes = (
+"990 0 LINE",
+"1245 0 LINE",
+"1178 73 OFFCURVE",
+"715 710 OFFCURVE",
+"715 710 CURVE",
+"561 635 LINE"
+);
+}
+);
+width = 1305;
+},
+{
+anchors = (
+{
+name = H;
+position = "{690, 0}";
+},
+{
+name = L;
+position = "{690, -100}";
+},
+{
+name = U;
+position = "{660, 1530}";
+}
+);
+layerId = master02;
+paths = (
+{
+closed = 1;
+nodes = (
+"625 585 LINE SMOOTH",
+"910 585 OFFCURVE",
+"1175 723 OFFCURVE",
+"1175 1040 CURVE SMOOTH",
+"1175 1329 OFFCURVE",
+"961 1470 OFFCURVE",
+"650 1470 CURVE SMOOTH",
+"416 1470 OFFCURVE",
+"150 1460 OFFCURVE",
+"150 1460 CURVE",
+"165 1380 OFFCURVE",
+"165 1196 OFFCURVE",
+"165 1000 CURVE SMOOTH",
+"165 435 LINE SMOOTH",
+"165 238 OFFCURVE",
+"165 80 OFFCURVE",
+"150 0 CURVE",
+"465 0 LINE",
+"451 78 OFFCURVE",
+"450 238 OFFCURVE",
+"450 435 CURVE SMOOTH",
+"450 585 LINE"
+);
+},
+{
+closed = 1;
+nodes = (
+"503 1243 OFFCURVE",
+"537 1245 OFFCURVE",
+"615 1245 CURVE SMOOTH",
+"792 1245 OFFCURVE",
+"890 1186 OFFCURVE",
+"890 1035 CURVE SMOOTH",
+"890 859 OFFCURVE",
+"780 800 OFFCURVE",
+"605 800 CURVE SMOOTH",
+"450 800 LINE",
+"450 1240 LINE"
+);
+},
+{
+closed = 1;
+nodes = (
+"975 0 LINE",
+"1330 0 LINE",
+"1263 73 OFFCURVE",
+"827 687 OFFCURVE",
+"827 687 CURVE",
+"556 635 LINE"
+);
+}
+);
+width = 1380;
+}
+);
+unicode = 0052;
+},
+{
+glyphname = LtnCapS;
+layers = (
+{
+anchors = (
+{
+name = H;
+position = "{580, 0}";
+},
+{
+name = L;
+position = "{580, -100}";
+},
+{
+name = U;
+position = "{580, 1530}";
+}
+);
+layerId = master01;
+paths = (
+{
+closed = 1;
+nodes = (
+"870 1458 OFFCURVE",
+"759 1485 OFFCURVE",
+"605 1485 CURVE SMOOTH",
+"273 1485 OFFCURVE",
+"135 1250 OFFCURVE",
+"135 1080 CURVE SMOOTH",
+"135 910 OFFCURVE",
+"203 778 OFFCURVE",
+"515 685 CURVE SMOOTH",
+"827 591 OFFCURVE",
+"875 510 OFFCURVE",
+"875 405 CURVE SMOOTH",
+"875 243 OFFCURVE",
+"726 150 OFFCURVE",
+"565 150 CURVE SMOOTH",
+"417 150 OFFCURVE",
+"272 200 OFFCURVE",
+"140 315 CURVE",
+"95 110 LINE",
+"197 31 OFFCURVE",
+"372 -25 OFFCURVE",
+"565 -25 CURVE SMOOTH",
+"838 -25 OFFCURVE",
+"1065 157 OFFCURVE",
+"1065 425 CURVE SMOOTH",
+"1065 641 OFFCURVE",
+"920 762 OFFCURVE",
+"655 840 CURVE SMOOTH",
+"370 923 OFFCURVE",
+"325 985 OFFCURVE",
+"325 1095 CURVE SMOOTH",
+"325 1205 OFFCURVE",
+"435 1310 OFFCURVE",
+"595 1310 CURVE SMOOTH",
+"723 1310 OFFCURVE",
+"817 1279 OFFCURVE",
+"960 1200 CURVE",
+"1000 1395 LINE"
+);
+}
+);
+width = 1175;
+},
+{
+anchors = (
+{
+name = H;
+position = "{616, 0}";
+},
+{
+name = L;
+position = "{616, -100}";
+},
+{
+name = U;
+position = "{616, 1530}";
+}
+);
+layerId = master02;
+paths = (
+{
+closed = 1;
+nodes = (
+"932 1458 OFFCURVE",
+"810 1485 OFFCURVE",
+"640 1485 CURVE SMOOTH",
+"280 1485 OFFCURVE",
+"130 1239 OFFCURVE",
+"130 1060 CURVE SMOOTH",
+"130 882 OFFCURVE",
+"196 754 OFFCURVE",
+"510 655 CURVE SMOOTH",
+"800 563 OFFCURVE",
+"851 504 OFFCURVE",
+"851 420 CURVE SMOOTH",
+"851 293 OFFCURVE",
+"730 220 OFFCURVE",
+"600 220 CURVE SMOOTH",
+"439 220 OFFCURVE",
+"283 270 OFFCURVE",
+"140 385 CURVE",
+"90 110 LINE",
+"201 31 OFFCURVE",
+"391 -25 OFFCURVE",
+"600 -25 CURVE SMOOTH",
+"895 -25 OFFCURVE",
+"1138 169 OFFCURVE",
+"1138 455 CURVE SMOOTH",
+"1138 666 OFFCURVE",
+"994 787 OFFCURVE",
+"727 870 CURVE SMOOTH",
+"464 952 OFFCURVE",
+"416 994 OFFCURVE",
+"416 1080 CURVE SMOOTH",
+"416 1162 OFFCURVE",
+"506 1245 OFFCURVE",
+"630 1245 CURVE SMOOTH",
+"771 1245 OFFCURVE",
+"873 1209 OFFCURVE",
+"1030 1130 CURVE",
+"1075 1395 LINE"
+);
+}
+);
+width = 1243;
+}
+);
+unicode = 0053;
+},
+{
+glyphname = LtnCapT;
+layers = (
+{
+anchors = (
+{
+name = H;
+position = "{622, 0}";
+},
+{
+name = L;
+position = "{622, -100}";
+},
+{
+name = U;
+position = "{622, 1530}";
+}
+);
+layerId = master01;
+paths = (
+{
+closed = 1;
+nodes = (
+"45 1275 LINE",
+"125 1292 OFFCURVE",
+"201 1295 OFFCURVE",
+"290 1295 CURVE SMOOTH",
+"525 1295 LINE",
+"525 435 LINE SMOOTH",
+"525 238 OFFCURVE",
+"522 80 OFFCURVE",
+"505 0 CURVE",
+"735 0 LINE",
+"718 80 OFFCURVE",
+"715 238 OFFCURVE",
+"715 435 CURVE SMOOTH",
+"715 1295 LINE",
+"955 1295 LINE SMOOTH",
+"1045 1295 OFFCURVE",
+"1120 1292 OFFCURVE",
+"1200 1275 CURVE",
+"1200 1460 LINE",
+"45 1460 LINE"
+);
+}
+);
+width = 1265;
+},
+{
+anchors = (
+{
+name = H;
+position = "{632, 0}";
+},
+{
+name = L;
+position = "{632, -100}";
+},
+{
+name = U;
+position = "{632, 1530}";
+}
+);
+layerId = master02;
+paths = (
+{
+closed = 1;
+nodes = (
+"45 1210 LINE",
+"117 1227 OFFCURVE",
+"196 1230 OFFCURVE",
+"276 1230 CURVE SMOOTH",
+"488 1230 LINE",
+"488 413 LINE SMOOTH",
+"488 226 OFFCURVE",
+"485 76 OFFCURVE",
+"468 0 CURVE",
+"793 0 LINE",
+"776 76 OFFCURVE",
+"773 226 OFFCURVE",
+"773 413 CURVE SMOOTH",
+"773 1230 LINE",
+"989 1230 LINE SMOOTH",
+"1070 1230 OFFCURVE",
+"1148 1227 OFFCURVE",
+"1220 1210 CURVE",
+"1220 1460 LINE",
+"45 1460 LINE"
+);
+}
+);
+width = 1275;
+}
+);
+unicode = 0054;
+},
+{
+glyphname = LtnCapU;
+layers = (
+{
+anchors = (
+{
+name = H;
+position = "{707, 0}";
+},
+{
+name = L;
+position = "{707, -100}";
+},
+{
+name = O;
+position = "{1026, 0}";
+},
+{
+name = R;
+position = "{1400, 1200}";
+},
+{
+name = U;
+position = "{707, 1530}";
+}
+);
+layerId = master01;
+paths = (
+{
+closed = 1;
+nodes = (
+"1050 560 LINE SMOOTH",
+"1050 299 OFFCURVE",
+"968 135 OFFCURVE",
+"710 135 CURVE SMOOTH",
+"447 135 OFFCURVE",
+"365 299 OFFCURVE",
+"365 560 CURVE SMOOTH",
+"365 1460 LINE",
+"160 1460 LINE",
+"174 1380 OFFCURVE",
+"175 1222 OFFCURVE",
+"175 1025 CURVE SMOOTH",
+"175 515 LINE",
+"175 190 OFFCURVE",
+"345 -25 OFFCURVE",
+"710 -25 CURVE SMOOTH",
+"1071 -25 OFFCURVE",
+"1240 190 OFFCURVE",
+"1240 515 CURVE",
+"1240 1025 LINE SMOOTH",
+"1240 1232 OFFCURVE",
+"1242 1380 OFFCURVE",
+"1255 1460 CURVE",
+"1050 1460 LINE"
+);
+}
+);
+width = 1440;
+},
+{
+anchors = (
+{
+name = H;
+position = "{732, 0}";
+},
+{
+name = L;
+position = "{732, -100}";
+},
+{
+name = O;
+position = "{950, 0}";
+},
+{
+name = R;
+position = "{1480, 1200}";
+},
+{
+name = U;
+position = "{732, 1530}";
+}
+);
+layerId = master02;
+paths = (
+{
+closed = 1;
+nodes = (
+"1015 560 LINE SMOOTH",
+"1015 344 OFFCURVE",
+"952 204 OFFCURVE",
+"735 204 CURVE SMOOTH",
+"513 204 OFFCURVE",
+"450 344 OFFCURVE",
+"450 560 CURVE SMOOTH",
+"450 1460 LINE",
+"150 1460 LINE",
+"164 1380 OFFCURVE",
+"165 1222 OFFCURVE",
+"165 1025 CURVE SMOOTH",
+"165 515 LINE SMOOTH",
+"165 190 OFFCURVE",
+"356 -25 OFFCURVE",
+"735 -25 CURVE SMOOTH",
+"1110 -25 OFFCURVE",
+"1300 190 OFFCURVE",
+"1300 515 CURVE SMOOTH",
+"1300 1025 LINE SMOOTH",
+"1300 1232 OFFCURVE",
+"1302 1380 OFFCURVE",
+"1315 1460 CURVE",
+"1015 1460 LINE"
+);
+}
+);
+width = 1490;
+}
+);
+unicode = 0055;
+},
+{
+glyphname = LtnCapV;
+layers = (
+{
+anchors = (
+{
+name = H;
+position = "{680, 0}";
+},
+{
+name = L;
+position = "{672, -100}";
+},
+{
+name = O;
+position = "{880, 0}";
+},
+{
+name = U;
+position = "{672, 1530}";
+}
+);
+layerId = master01;
+paths = (
+{
+closed = 1;
+nodes = (
+"672 195 LINE",
+"250 1460 LINE",
+"35 1460 LINE",
+"68 1378 OFFCURVE",
+"101 1288 OFFCURVE",
+"170 1095 CURVE SMOOTH",
+"560 0 LINE",
+"785 0 LINE",
+"1170 1095 LINE SMOOTH",
+"1238 1289 OFFCURVE",
+"1274 1378 OFFCURVE",
+"1310 1460 CURVE",
+"1095 1460 LINE"
+);
+}
+);
+width = 1365;
+},
+{
+anchors = (
+{
+name = H;
+position = "{730, 0}";
+},
+{
+name = L;
+position = "{722, -100}";
+},
+{
+name = O;
+position = "{930, 0}";
+},
+{
+name = U;
+position = "{722, 1530}";
+}
+);
+layerId = master02;
+paths = (
+{
+closed = 1;
+nodes = (
+"722 260 LINE",
+"330 1460 LINE",
+"25 1460 LINE",
+"58 1378 OFFCURVE",
+"96 1288 OFFCURVE",
+"165 1095 CURVE SMOOTH",
+"555 0 LINE",
+"890 0 LINE",
+"1280 1095 LINE SMOOTH",
+"1348 1289 OFFCURVE",
+"1384 1378 OFFCURVE",
+"1420 1460 CURVE",
+"1115 1460 LINE"
+);
+}
+);
+width = 1465;
+}
+);
+unicode = 0056;
+},
+{
+glyphname = LtnCapW;
+layers = (
+{
+anchors = (
+{
+name = L;
+position = "{1027, -100}";
+},
+{
+name = U;
+position = "{1027, 1530}";
+}
+);
+layerId = master01;
+paths = (
+{
+closed = 1;
+nodes = (
+"1595 0 LINE",
+"1900 1095 LINE SMOOTH",
+"1954 1289 OFFCURVE",
+"1983 1378 OFFCURVE",
+"2015 1460 CURVE",
+"1795 1460 LINE",
+"1470 130 LINE",
+"1480 0 LINE"
+);
+},
+{
+closed = 1;
+nodes = (
+"935 1460 LINE",
+"990 1305 LINE",
+"1370 0 LINE",
+"1480 0 LINE",
+"1500 130 LINE",
+"1120 1460 LINE"
+);
+},
+{
+closed = 1;
+nodes = (
+"685 0 LINE",
+"1065 1305 LINE",
+"1120 1460 LINE",
+"935 1460 LINE",
+"560 130 LINE",
+"580 0 LINE"
+);
+},
+{
+closed = 1;
+nodes = (
+"40 1460 LINE",
+"71 1381 OFFCURVE",
+"102 1286 OFFCURVE",
+"155 1095 CURVE SMOOTH",
+"460 0 LINE",
+"580 0 LINE",
+"590 130 LINE",
+"260 1460 LINE"
+);
+}
+);
+width = 2080;
+},
+{
+anchors = (
+{
+name = L;
+position = "{1052, -100}";
+},
+{
+name = U;
+position = "{1052, 1530}";
+}
+);
+layerId = master02;
+paths = (
+{
+closed = 1;
+nodes = (
+"1655 0 LINE",
+"1965 1095 LINE SMOOTH",
+"2020 1289 OFFCURVE",
+"2048 1378 OFFCURVE",
+"2080 1460 CURVE",
+"1770 1460 LINE",
+"1470 130 LINE",
+"1490 0 LINE"
+);
+},
+{
+closed = 1;
+nodes = (
+"920 1460 LINE",
+"995 1305 LINE",
+"1340 0 LINE",
+"1510 0 LINE",
+"1530 130 LINE",
+"1180 1460 LINE"
+);
+},
+{
+closed = 1;
+nodes = (
+"765 0 LINE",
+"1105 1305 LINE",
+"1180 1460 LINE",
+"920 1460 LINE",
+"580 130 LINE",
+"600 0 LINE"
+);
+},
+{
+closed = 1;
+nodes = (
+"30 1460 LINE",
+"61 1381 OFFCURVE",
+"92 1286 OFFCURVE",
+"145 1095 CURVE SMOOTH",
+"450 0 LINE",
+"620 0 LINE",
+"640 130 LINE",
+"340 1460 LINE"
+);
+}
+);
+width = 2135;
+}
+);
+unicode = 0057;
+},
+{
+glyphname = LtnCapX;
+layers = (
+{
+anchors = (
+{
+name = L;
+position = "{650, -100}";
+},
+{
+name = U;
+position = "{650, 1530}";
+}
+);
+layerId = master01;
+paths = (
+{
+closed = 1;
+nodes = (
+"265 340 LINE SMOOTH",
+"136 132 OFFCURVE",
+"103 86 OFFCURVE",
+"40 0 CURVE",
+"270 0 LINE",
+"642 614 LINE",
+"1030 0 LINE",
+"1260 0 LINE",
+"1199 82 OFFCURVE",
+"1165 127 OFFCURVE",
+"1033 336 CURVE SMOOTH",
+"761 767 LINE",
+"972 1110 LINE SMOOTH",
+"1097 1313 OFFCURVE",
+"1148 1383 OFFCURVE",
+"1210 1460 CURVE",
+"975 1460 LINE",
+"656 934 LINE",
+"325 1460 LINE",
+"90 1460 LINE",
+"154 1376 OFFCURVE",
+"201 1315 OFFCURVE",
+"330 1110 CURVE",
+"537 781 LINE"
+);
+}
+);
+width = 1325;
+},
+{
+anchors = (
+{
+name = L;
+position = "{670, -100}";
+},
+{
+name = U;
+position = "{670, 1530}";
+}
+);
+layerId = master02;
+paths = (
+{
+closed = 1;
+nodes = (
+"1310 0 LINE",
+"1249 82 OFFCURVE",
+"1211 125 OFFCURVE",
+"1083 336 CURVE SMOOTH",
+"400 1460 LINE",
+"75 1460 LINE",
+"139 1376 OFFCURVE",
+"189 1317 OFFCURVE",
+"315 1110 CURVE",
+"990 0 LINE"
+);
+},
+{
+closed = 1;
+nodes = (
+"255 340 LINE SMOOTH",
+"133 128 OFFCURVE",
+"93 86 OFFCURVE",
+"30 0 CURVE",
+"350 0 LINE",
+"700 609 LINE",
+"605 947 LINE"
+);
+},
+{
+closed = 1;
+nodes = (
+"1040 1110 LINE SMOOTH",
+"1153 1306 OFFCURVE",
+"1211 1383 OFFCURVE",
+"1275 1460 CURVE",
+"950 1460 LINE",
+"655 947 LINE",
+"750 609 LINE"
+);
+}
+);
+width = 1365;
+}
+);
+unicode = 0058;
+},
+{
+glyphname = LtnCapY;
+layers = (
+{
+anchors = (
+{
+name = L;
+position = "{650, -100}";
+},
+{
+name = U;
+position = "{650, 1530}";
+}
+);
+layerId = master01;
+paths = (
+{
+closed = 1;
+nodes = (
+"147 1311 OFFCURVE",
+"213 1197 OFFCURVE",
+"290 1065 CURVE SMOOTH",
+"555 611 LINE",
+"555 435 LINE SMOOTH",
+"555 238 OFFCURVE",
+"555 80 OFFCURVE",
+"540 0 CURVE",
+"760 0 LINE",
+"745 80 OFFCURVE",
+"745 238 OFFCURVE",
+"745 435 CURVE SMOOTH",
+"745 603 LINE",
+"1015 1065 LINE SMOOTH",
+"1091 1195 OFFCURVE",
+"1147 1291 OFFCURVE",
+"1265 1460 CURVE",
+"1035 1460 LINE",
+"660 799 LINE",
+"265 1460 LINE",
+"35 1460 LINE"
+);
+}
+);
+width = 1320;
+},
+{
+anchors = (
+{
+name = L;
+position = "{672, -100}";
+},
+{
+name = U;
+position = "{672, 1530}";
+}
+);
+layerId = master02;
+paths = (
+{
+closed = 1;
+nodes = (
+"782 675 LINE",
+"357 1460 LINE",
+"25 1460 LINE",
+"137 1311 OFFCURVE",
+"203 1197 OFFCURVE",
+"280 1065 CURVE SMOOTH",
+"575 560 LINE"
+);
+},
+{
+closed = 1;
+nodes = (
+"1069 1065 LINE SMOOTH",
+"1145 1195 OFFCURVE",
+"1201 1291 OFFCURVE",
+"1319 1460 CURVE",
+"997 1460 LINE",
+"577 675 LINE",
+"770 560 LINE"
+);
+},
+{
+closed = 1;
+nodes = (
+"530 435 LINE SMOOTH",
+"530 238 OFFCURVE",
+"530 80 OFFCURVE",
+"515 0 CURVE",
+"830 0 LINE",
+"815 80 OFFCURVE",
+"815 238 OFFCURVE",
+"815 435 CURVE SMOOTH",
+"815 695 LINE",
+"530 695 LINE"
+);
+}
+);
+width = 1364;
+}
+);
+unicode = 0059;
+},
+{
+glyphname = LftSqrBrac;
+layers = (
+{
+layerId = master01;
+paths = (
+{
+closed = 1;
+nodes = (
+"640 -260 LINE",
+"385 -260 LINE",
+"385 1450 LINE",
+"640 1450 LINE",
+"640 1600 LINE",
+"200 1600 LINE",
+"200 -410 LINE",
+"640 -410 LINE"
+);
+}
+);
+width = 790;
+},
+{
+layerId = master02;
+paths = (
+{
+closed = 1;
+nodes = (
+"710 -200 LINE",
+"470 -200 LINE",
+"470 1390 LINE",
+"710 1390 LINE",
+"710 1600 LINE",
+"190 1600 LINE",
+"190 -410 LINE",
+"710 -410 LINE"
+);
+}
+);
+width = 850;
+}
+);
+unicode = 005B;
+},
+{
+glyphname = ReverseSolidus;
+layers = (
+{
+layerId = master01;
+paths = (
+{
+closed = 1;
+nodes = (
+"160 1600 LINE",
+"10 1600 LINE",
+"840 -245 LINE",
+"990 -245 LINE"
+);
+}
+);
+width = 1000;
+},
+{
+layerId = master02;
+paths = (
+{
+closed = 1;
+nodes = (
+"840 -245 LINE",
+"1070 -245 LINE",
+"240 1600 LINE",
+"10 1600 LINE"
+);
+}
+);
+width = 1080;
+}
+);
+unicode = 005C;
+},
+{
+glyphname = RtSqrBrac;
+layers = (
+{
+layerId = master01;
+paths = (
+{
+closed = 1;
+nodes = (
+"590 1600 LINE",
+"150 1600 LINE",
+"150 1450 LINE",
+"405 1450 LINE",
+"405 -260 LINE",
+"150 -260 LINE",
+"150 -410 LINE",
+"590 -410 LINE"
+);
+}
+);
+width = 790;
+},
+{
+layerId = master02;
+paths = (
+{
+closed = 1;
+nodes = (
+"660 1600 LINE",
+"140 1600 LINE",
+"140 1390 LINE",
+"380 1390 LINE",
+"380 -200 LINE",
+"140 -200 LINE",
+"140 -410 LINE",
+"660 -410 LINE"
+);
+}
+);
+width = 850;
+}
+);
+unicode = 005D;
+},
+{
+glyphname = CircumAccent;
+layers = (
+{
+components = (
+{
+name = CombCircum;
+transform = "{1, 0, 0, 1, 995, 0}";
+}
+);
+layerId = master01;
+width = 850;
+},
+{
+anchors = (
+{
+name = U;
+position = "{440, 1635}";
+}
+);
+layerId = master02;
+paths = (
+{
+closed = 1;
+nodes = (
+"598 1600 LINE",
+"298 1600 LINE",
+"8 1200 LINE",
+"248 1200 LINE",
+"448 1430 LINE",
+"648 1200 LINE",
+"888 1200 LINE"
+);
+}
+);
+width = 880;
+}
+);
+unicode = 005E;
+},
+{
+glyphname = LowLine;
+layers = (
+{
+layerId = master01;
+paths = (
+{
+closed = 1;
+nodes = (
+"1274 -320 LINE",
+"1274 -170 LINE",
+"0 -170 LINE",
+"0 -320 LINE"
+);
+}
+);
+width = 1274;
+},
+{
+layerId = master02;
+paths = (
+{
+closed = 1;
+nodes = (
+"1274 -350 LINE",
+"1274 -140 LINE",
+"0 -140 LINE",
+"0 -350 LINE"
+);
+}
+);
+width = 1274;
+}
+);
+unicode = 005F;
+},
+{
+glyphname = GraveAccent;
+layers = (
+{
+components = (
+{
+name = CombGrave;
+transform = "{1, 0, 0, 1, 940, 0}";
+}
+);
+layerId = master01;
+width = 580;
+},
+{
+anchors = (
+{
+name = U;
+position = "{500, 1635}";
+}
+);
+layerId = master02;
+paths = (
+{
+closed = 1;
+nodes = (
+"400 1200 LINE",
+"640 1200 LINE",
+"350 1600 LINE",
+"0 1600 LINE"
+);
+}
+);
+width = 640;
+}
+);
+unicode = 0060;
+},
+{
+glyphname = LtnSmA;
+layers = (
+{
+anchors = (
+{
+name = H;
+position = "{540, 0}";
+},
+{
+name = L;
+position = "{540, -100}";
+},
+{
+name = O;
+position = "{1125, 0}";
+},
+{
+name = R;
+position = "{1120, 1000}";
+},
+{
+name = U;
+position = "{540, 1100}";
+}
+);
+layerId = master01;
+paths = (
+{
+closed = 1;
+nodes = (
+"950 919 OFFCURVE",
+"800 1040 OFFCURVE",
+"570 1040 CURVE SMOOTH",
+"418 1040 OFFCURVE",
+"312 994 OFFCURVE",
+"209 950 CURVE",
+"203 907 OFFCURVE",
+"200 799 OFFCURVE",
+"199 755 CURVE",
+"316 837 OFFCURVE",
+"419 880 OFFCURVE",
+"525 880 CURVE SMOOTH",
+"675 880 OFFCURVE",
+"765 831 OFFCURVE",
+"765 710 CURVE SMOOTH",
+"765 635 LINE",
+"724 632 OFFCURVE",
+"564 617 OFFCURVE",
+"495 610 CURVE SMOOTH",
+"186 580 OFFCURVE",
+"95 407 OFFCURVE",
+"95 255 CURVE SMOOTH",
+"95 107 OFFCURVE",
+"232 -25 OFFCURVE",
+"420 -25 CURVE SMOOTH",
+"544 -25 OFFCURVE",
+"677 29 OFFCURVE",
+"795 155 CURVE",
+"809 91 OFFCURVE",
+"833 32 OFFCURVE",
+"845 0 CURVE",
+"1025 0 LINE",
+"981 112 OFFCURVE",
+"950 226 OFFCURVE",
+"950 370 CURVE",
+"950 760 LINE"
+);
+},
+{
+closed = 1;
+nodes = (
+"644 164 OFFCURVE",
+"552 140 OFFCURVE",
+"450 140 CURVE SMOOTH",
+"340 140 OFFCURVE",
+"275 191 OFFCURVE",
+"275 280 CURVE SMOOTH",
+"275 372 OFFCURVE",
+"335 450 OFFCURVE",
+"505 470 CURVE SMOOTH",
+"568 478 OFFCURVE",
+"715 493 OFFCURVE",
+"765 495 CURVE",
+"765 325 LINE"
+);
+}
+);
+width = 1120;
+},
+{
+anchors = (
+{
+name = H;
+position = "{985, 0}";
+},
+{
+name = L;
+position = "{610, -100}";
+},
+{
+name = O;
+position = "{1185, 0}";
+},
+{
+name = R;
+position = "{1145, 1000}";
+},
+{
+name = U;
+position = "{610, 1100}";
+}
+);
+layerId = master02;
+paths = (
+{
+closed = 1;
+nodes = (
+"1078 112 OFFCURVE",
+"1050 226 OFFCURVE",
+"1050 370 CURVE",
+"1050 760 LINE",
+"1050 919 OFFCURVE",
+"877 1040 OFFCURVE",
+"615 1040 CURVE SMOOTH",
+"446 1040 OFFCURVE",
+"330 994 OFFCURVE",
+"216 950 CURVE",
+"210 868 OFFCURVE",
+"207 735 OFFCURVE",
+"206 691 CURVE",
+"323 773 OFFCURVE",
+"424 816 OFFCURVE",
+"530 816 CURVE SMOOTH",
+"680 816 OFFCURVE",
+"770 785 OFFCURVE",
+"770 710 CURVE SMOOTH",
+"770 660 LINE",
+"729 659 OFFCURVE",
+"569 649 OFFCURVE",
+"500 642 CURVE SMOOTH",
+"191 612 OFFCURVE",
+"100 438 OFFCURVE",
+"100 285 CURVE SMOOTH",
+"100 121 OFFCURVE",
+"245 -25 OFFCURVE",
+"445 -25 CURVE SMOOTH",
+"562 -25 OFFCURVE",
+"688 23 OFFCURVE",
+"800 135 CURVE",
+"814 79 OFFCURVE",
+"838 28 OFFCURVE",
+"850 0 CURVE",
+"1120 0 LINE"
+);
+},
+{
+closed = 1;
+nodes = (
+"674 225 OFFCURVE",
+"600 205 OFFCURVE",
+"518 205 CURVE SMOOTH",
+"436 205 OFFCURVE",
+"380 256 OFFCURVE",
+"380 320 CURVE SMOOTH",
+"380 386 OFFCURVE",
+"422 442 OFFCURVE",
+"560 457 CURVE SMOOTH",
+"611 463 OFFCURVE",
+"730 474 OFFCURVE",
+"770 475 CURVE",
+"770 355 LINE"
+);
+}
+);
+width = 1205;
+}
+);
+note = "\012 \012 \012 \012 \012 GlyphNote A\012 \012 \012 \012 \012 ";
+unicode = 0061;
+},
+{
+glyphname = LtnSmB;
+layers = (
+{
+anchors = (
+{
+name = H;
+position = "{590, 0}";
+},
+{
+name = L;
+position = "{590, -100}";
+},
+{
+name = R;
+position = "{1155, 1000}";
+},
+{
+name = U;
+position = "{590, 1635}";
+}
+);
+layerId = master01;
+paths = (
+{
+closed = 1;
+nodes = (
+"145 1488 OFFCURVE",
+"145 1273 OFFCURVE",
+"145 1130 CURVE SMOOTH",
+"145 936 OFFCURVE",
+"145 228 OFFCURVE",
+"145 65 CURVE",
+"272 26 OFFCURVE",
+"413 -25 OFFCURVE",
+"575 -25 CURVE SMOOTH",
+"870 -25 OFFCURVE",
+"1060 197 OFFCURVE",
+"1060 540 CURVE SMOOTH",
+"1060 832 OFFCURVE",
+"917 1040 OFFCURVE",
+"715 1040 CURVE SMOOTH",
+"547 1040 OFFCURVE",
+"423 947 OFFCURVE",
+"330 825 CURVE",
+"330 916 OFFCURVE",
+"330 1600 OFFCURVE",
+"330 1600 CURVE",
+"130 1600 LINE"
+);
+},
+{
+closed = 1;
+nodes = (
+"398 751 OFFCURVE",
+"531 865 OFFCURVE",
+"655 865 CURVE SMOOTH",
+"799 865 OFFCURVE",
+"880 727 OFFCURVE",
+"880 505 CURVE SMOOTH",
+"880 280 OFFCURVE",
+"752 130 OFFCURVE",
+"575 130 CURVE SMOOTH",
+"489 130 OFFCURVE",
+"428 144 OFFCURVE",
+"330 185 CURVE",
+"330 585 LINE"
+);
+}
+);
+width = 1155;
+},
+{
+anchors = (
+{
+name = H;
+position = "{610, 0}";
+},
+{
+name = L;
+position = "{610, -100}";
+},
+{
+name = R;
+position = "{1215, 1000}";
+},
+{
+name = U;
+position = "{610, 1635}";
+}
+);
+layerId = master02;
+paths = (
+{
+closed = 1;
+nodes = (
+"135 1488 OFFCURVE",
+"135 1273 OFFCURVE",
+"135 1130 CURVE SMOOTH",
+"135 936 OFFCURVE",
+"135 228 OFFCURVE",
+"135 65 CURVE",
+"286 26 OFFCURVE",
+"457 -25 OFFCURVE",
+"650 -25 CURVE SMOOTH",
+"939 -25 OFFCURVE",
+"1125 197 OFFCURVE",
+"1125 540 CURVE SMOOTH",
+"1125 832 OFFCURVE",
+"986 1040 OFFCURVE",
+"789 1040 CURVE SMOOTH",
+"626 1040 OFFCURVE",
+"505 956 OFFCURVE",
+"415 845 CURVE",
+"415 934 OFFCURVE",
+"415 1600 OFFCURVE",
+"415 1600 CURVE",
+"120 1600 LINE"
+);
+},
+{
+closed = 1;
+nodes = (
+"471 709 OFFCURVE",
+"580 795 OFFCURVE",
+"683 795 CURVE SMOOTH",
+"793 795 OFFCURVE",
+"855 684 OFFCURVE",
+"855 505 CURVE SMOOTH",
+"855 317 OFFCURVE",
+"750 190 OFFCURVE",
+"605 190 CURVE SMOOTH",
+"538 190 OFFCURVE",
+"492 204 OFFCURVE",
+"415 240 CURVE",
+"415 585 LINE"
+);
+}
+);
+width = 1215;
+}
+);
+unicode = 0062;
+},
+{
+glyphname = LtnSmC;
+layers = (
+{
+anchors = (
+{
+name = H;
+position = "{580, 0}";
+},
+{
+name = L;
+position = "{580, -100}";
+},
+{
+name = R;
+position = "{1020, 1000}";
+},
+{
+name = U;
+position = "{570, 1100}";
+}
+);
+layerId = master01;
+paths = (
+{
+closed = 1;
+nodes = (
+"818 183 OFFCURVE",
+"720 140 OFFCURVE",
+"600 140 CURVE SMOOTH",
+"406 140 OFFCURVE",
+"285 285 OFFCURVE",
+"285 500 CURVE SMOOTH",
+"285 736 OFFCURVE",
+"422 875 OFFCURVE",
+"600 875 CURVE SMOOTH",
+"703 875 OFFCURVE",
+"790 841 OFFCURVE",
+"880 775 CURVE",
+"915 955 LINE",
+"842 1005 OFFCURVE",
+"748 1040 OFFCURVE",
+"615 1040 CURVE SMOOTH",
+"297 1040 OFFCURVE",
+"95 792 OFFCURVE",
+"95 490 CURVE SMOOTH",
+"95 171 OFFCURVE",
+"312 -25 OFFCURVE",
+"580 -25 CURVE SMOOTH",
+"730 -25 OFFCURVE",
+"824 9 OFFCURVE",
+"925 85 CURVE",
+"905 260 LINE"
+);
+}
+);
+width = 1020;
+},
+{
+anchors = (
+{
+name = H;
+position = "{555, 0}";
+},
+{
+name = L;
+position = "{575, -100}";
+},
+{
+name = R;
+position = "{1020, 1000}";
+},
+{
+name = U;
+position = "{575, 1100}";
+}
+);
+layerId = master02;
+paths = (
+{
+closed = 1;
+nodes = (
+"849 1007 OFFCURVE",
+"744 1040 OFFCURVE",
+"612 1040 CURVE SMOOTH",
+"295 1040 OFFCURVE",
+"90 802 OFFCURVE",
+"90 490 CURVE SMOOTH",
+"90 161 OFFCURVE",
+"309 -25 OFFCURVE",
+"578 -25 CURVE SMOOTH",
+"727 -25 OFFCURVE",
+"831 8 OFFCURVE",
+"932 70 CURVE",
+"902 314 LINE",
+"815 245 OFFCURVE",
+"737 205 OFFCURVE",
+"617 205 CURVE SMOOTH",
+"467 205 OFFCURVE",
+"370 324 OFFCURVE",
+"370 500 CURVE SMOOTH",
+"370 694 OFFCURVE",
+"478 810 OFFCURVE",
+"617 810 CURVE SMOOTH",
+"720 810 OFFCURVE",
+"788 779 OFFCURVE",
+"878 717 CURVE",
+"922 969 LINE"
+);
+}
+);
+width = 1022;
+}
+);
+unicode = 0063;
+},
+{
+glyphname = LtnSmD;
+layers = (
+{
+anchors = (
+{
+name = H;
+position = "{605, 0}";
+},
+{
+name = L;
+position = "{605, -100}";
+},
+{
+name = R;
+position = "{1190, 1000}";
+},
+{
+name = U;
+position = "{605, 1635}";
+}
+);
+layerId = master01;
+paths = (
+{
+closed = 1;
+nodes = (
+"820 1600 LINE",
+"839 1516 OFFCURVE",
+"845 1395 OFFCURVE",
+"845 1235 CURVE",
+"845 955 LINE",
+"767 999 OFFCURVE",
+"665 1040 OFFCURVE",
+"580 1040 CURVE SMOOTH",
+"312 1040 OFFCURVE",
+"105 814 OFFCURVE",
+"105 460 CURVE SMOOTH",
+"105 167 OFFCURVE",
+"261 -25 OFFCURVE",
+"505 -25 CURVE SMOOTH",
+"652 -25 OFFCURVE",
+"775 50 OFFCURVE",
+"870 185 CURVE",
+"887 111 OFFCURVE",
+"910 34 OFFCURVE",
+"925 0 CURVE",
+"1105 0 LINE",
+"1062 112 OFFCURVE",
+"1030 278 OFFCURVE",
+"1030 530 CURVE",
+"1030 1600 LINE"
+);
+},
+{
+closed = 1;
+nodes = (
+"790 268 OFFCURVE",
+"662 135 OFFCURVE",
+"540 135 CURVE SMOOTH",
+"366 135 OFFCURVE",
+"290 258 OFFCURVE",
+"290 490 CURVE SMOOTH",
+"290 727 OFFCURVE",
+"429 870 OFFCURVE",
+"580 870 CURVE SMOOTH",
+"681 870 OFFCURVE",
+"746 848 OFFCURVE",
+"845 795 CURVE",
+"845 400 LINE"
+);
+}
+);
+width = 1190;
+},
+{
+anchors = (
+{
+name = H;
+position = "{595, 0}";
+},
+{
+name = L;
+position = "{595, -100}";
+},
+{
+name = R;
+position = "{1285, 1000}";
+},
+{
+name = U;
+position = "{610, 1635}";
+}
+);
+layerId = master02;
+paths = (
+{
+closed = 1;
+nodes = (
+"810 1600 LINE",
+"829 1516 OFFCURVE",
+"835 1395 OFFCURVE",
+"835 1235 CURVE SMOOTH",
+"835 955 LINE",
+"763 999 OFFCURVE",
+"669 1040 OFFCURVE",
+"590 1040 CURVE SMOOTH",
+"319 1040 OFFCURVE",
+"100 814 OFFCURVE",
+"100 460 CURVE SMOOTH",
+"100 167 OFFCURVE",
+"268 -25 OFFCURVE",
+"515 -25 CURVE SMOOTH",
+"654 -25 OFFCURVE",
+"770 47 OFFCURVE",
+"860 175 CURVE",
+"877 105 OFFCURVE",
+"900 32 OFFCURVE",
+"915 0 CURVE",
+"1190 0 LINE",
+"1147 112 OFFCURVE",
+"1115 278 OFFCURVE",
+"1115 530 CURVE SMOOTH",
+"1115 1600 LINE"
+);
+},
+{
+closed = 1;
+nodes = (
+"787 300 OFFCURVE",
+"676 200 OFFCURVE",
+"570 200 CURVE SMOOTH",
+"443 200 OFFCURVE",
+"380 300 OFFCURVE",
+"380 490 CURVE SMOOTH",
+"380 685 OFFCURVE",
+"485 800 OFFCURVE",
+"590 800 CURVE SMOOTH",
+"683 800 OFFCURVE",
+"743 783 OFFCURVE",
+"835 738 CURVE",
+"835 400 LINE"
+);
+}
+);
+width = 1265;
+}
+);
+unicode = 0064;
+},
+{
+glyphname = LtnSmE;
+layers = (
+{
+anchors = (
+{
+name = H;
+position = "{545, 0}";
+},
+{
+name = L;
+position = "{569, -100}";
+},
+{
+name = O;
+position = "{925, 0}";
+},
+{
+name = R;
+position = "{1095, 1000}";
+},
+{
+name = U;
+position = "{569, 1100}";
+}
+);
+layerId = master01;
+paths = (
+{
+closed = 1;
+nodes = (
+"990 503 OFFCURVE",
+"990 545 OFFCURVE",
+"990 563 CURVE SMOOTH",
+"990 788 OFFCURVE",
+"905 1040 OFFCURVE",
+"575 1040 CURVE SMOOTH",
+"279 1040 OFFCURVE",
+"95 826 OFFCURVE",
+"95 495 CURVE SMOOTH",
+"95 155 OFFCURVE",
+"320 -25 OFFCURVE",
+"575 -25 CURVE SMOOTH",
+"729 -25 OFFCURVE",
+"853 2 OFFCURVE",
+"995 75 CURVE",
+"975 240 LINE",
+"853 166 OFFCURVE",
+"729 140 OFFCURVE",
+"600 140 CURVE SMOOTH",
+"414 140 OFFCURVE",
+"280 258 OFFCURVE",
+"280 505 CURVE SMOOTH",
+"280 770 OFFCURVE",
+"385 890 OFFCURVE",
+"560 890 CURVE SMOOTH",
+"705 890 OFFCURVE",
+"810 797 OFFCURVE",
+"810 625 CURVE",
+"245 625 LINE",
+"245 485 LINE",
+"989 485 LINE"
+);
+}
+);
+width = 1095;
+},
+{
+anchors = (
+{
+name = H;
+position = "{569, 0}";
+},
+{
+name = L;
+position = "{589, -100}";
+},
+{
+name = O;
+position = "{900, 0}";
+},
+{
+name = R;
+position = "{1130, 1000}";
+},
+{
+name = U;
+position = "{537, 1100}";
+}
+);
+layerId = master02;
+paths = (
+{
+closed = 1;
+nodes = (
+"1010 469 OFFCURVE",
+"1009 513 OFFCURVE",
+"1009 532 CURVE SMOOTH",
+"1009 782 OFFCURVE",
+"924 1040 OFFCURVE",
+"589 1040 CURVE SMOOTH",
+"281 1040 OFFCURVE",
+"90 826 OFFCURVE",
+"90 495 CURVE SMOOTH",
+"90 155 OFFCURVE",
+"324 -25 OFFCURVE",
+"589 -25 CURVE SMOOTH",
+"745 -25 OFFCURVE",
+"871 2 OFFCURVE",
+"1015 75 CURVE",
+"994 306 LINE",
+"870 232 OFFCURVE",
+"745 205 OFFCURVE",
+"614 205 CURVE SMOOTH",
+"448 205 OFFCURVE",
+"362 293 OFFCURVE",
+"362 505 CURVE SMOOTH",
+"362 739 OFFCURVE",
+"431 830 OFFCURVE",
+"575 830 CURVE SMOOTH",
+"693 830 OFFCURVE",
+"755 770 OFFCURVE",
+"755 630 CURVE",
+"242 630 LINE",
+"242 450 LINE",
+"1010 450 LINE"
+);
+}
+);
+width = 1110;
+}
+);
+unicode = 0065;
+},
+{
+glyphname = LtnSmF;
+layers = (
+{
+anchors = (
+{
+name = H;
+position = "{370, 0}";
+},
+{
+name = L;
+position = "{335, -100}";
+},
+{
+name = U;
+position = "{560, 1635}";
+}
+);
+layerId = master01;
+paths = (
+{
+closed = 1;
+nodes = (
+"240 850 LINE",
+"240 0 LINE",
+"455 0 LINE",
+"433 105 OFFCURVE",
+"425 300 OFFCURVE",
+"425 494 CURVE SMOOTH",
+"425 850 LINE",
+"695 850 LINE",
+"695 995 LINE",
+"425 995 LINE",
+"425 1210 LINE SMOOTH",
+"425 1381 OFFCURVE",
+"481 1450 OFFCURVE",
+"585 1450 CURVE SMOOTH",
+"643 1450 OFFCURVE",
+"710 1427 OFFCURVE",
+"760 1390 CURVE",
+"805 1550 LINE",
+"743 1594 OFFCURVE",
+"663 1620 OFFCURVE",
+"585 1620 CURVE SMOOTH",
+"369 1620 OFFCURVE",
+"240 1470 OFFCURVE",
+"240 1170 CURVE SMOOTH",
+"240 995 LINE",
+"40 995 LINE",
+"40 850 LINE"
+);
+}
+);
+width = 750;
+},
+{
+anchors = (
+{
+name = H;
+position = "{380, 0}";
+},
+{
+name = L;
+position = "{400, -100}";
+},
+{
+name = U;
+position = "{600, 1635}";
+}
+);
+layerId = master02;
+paths = (
+{
+closed = 1;
+nodes = (
+"230 805 LINE",
+"230 0 LINE",
+"540 0 LINE",
+"518 105 OFFCURVE",
+"510 300 OFFCURVE",
+"510 494 CURVE SMOOTH",
+"510 805 LINE",
+"765 805 LINE",
+"765 1005 LINE",
+"510 1005 LINE",
+"510 1159 LINE SMOOTH",
+"510 1322 OFFCURVE",
+"552 1387 OFFCURVE",
+"648 1387 CURVE SMOOTH",
+"697 1387 OFFCURVE",
+"765 1362 OFFCURVE",
+"808 1322 CURVE",
+"865 1550 LINE",
+"806 1588 OFFCURVE",
+"699 1620 OFFCURVE",
+"625 1620 CURVE SMOOTH",
+"378 1620 OFFCURVE",
+"230 1470 OFFCURVE",
+"230 1170 CURVE SMOOTH",
+"230 1005 LINE",
+"30 1005 LINE",
+"30 805 LINE"
+);
+}
+);
+width = 800;
+}
+);
+unicode = 0066;
+},
+{
+glyphname = LtnSmG;
+layers = (
+{
+anchors = (
+{
+name = H;
+position = "{545, -432}";
+},
+{
+name = L;
+position = "{545, -535}";
+},
+{
+name = R;
+position = "{1095, 1000}";
+},
+{
+name = U;
+position = "{515, 1100}";
+}
+);
+layerId = master01;
+paths = (
+{
+closed = 1;
+nodes = (
+"234 357 OFFCURVE",
+"180 275 OFFCURVE",
+"180 215 CURVE SMOOTH",
+"180 121 OFFCURVE",
+"263 27 OFFCURVE",
+"545 -5 CURVE SMOOTH",
+"805 -35 OFFCURVE",
+"880 -90 OFFCURVE",
+"880 -170 CURVE SMOOTH",
+"880 -255 OFFCURVE",
+"731 -360 OFFCURVE",
+"550 -360 CURVE SMOOTH",
+"323 -360 OFFCURVE",
+"215 -261 OFFCURVE",
+"215 -180 CURVE SMOOTH",
+"215 -121 OFFCURVE",
+"244 -56 OFFCURVE",
+"465 20 CURVE",
+"459 49 OFFCURVE",
+"290 75 OFFCURVE",
+"290 75 CURVE",
+"113 2 OFFCURVE",
+"30 -89 OFFCURVE",
+"30 -200 CURVE SMOOTH",
+"30 -409 OFFCURVE",
+"303 -505 OFFCURVE",
+"535 -505 CURVE SMOOTH",
+"777 -505 OFFCURVE",
+"1065 -375 OFFCURVE",
+"1065 -160 CURVE SMOOTH",
+"1065 -8 OFFCURVE",
+"967 90 OFFCURVE",
+"670 125 CURVE SMOOTH",
+"410 156 OFFCURVE",
+"345 198 OFFCURVE",
+"345 235 CURVE SMOOTH",
+"345 271 OFFCURVE",
+"384 316 OFFCURVE",
+"500 350 CURVE",
+"330 395 LINE"
+);
+},
+{
+closed = 1;
+nodes = (
+"951 1033 OFFCURVE",
+"819 997 OFFCURVE",
+"730 940 CURVE",
+"795 825 LINE",
+"887 863 OFFCURVE",
+"967 878 OFFCURVE",
+"1040 880 CURVE",
+"1050 1040 LINE"
+);
+},
+{
+closed = 1;
+nodes = (
+"115 476 OFFCURVE",
+"289 325 OFFCURVE",
+"515 325 CURVE SMOOTH",
+"742 325 OFFCURVE",
+"915 476 OFFCURVE",
+"915 680 CURVE SMOOTH",
+"915 884 OFFCURVE",
+"742 1040 OFFCURVE",
+"515 1040 CURVE SMOOTH",
+"289 1040 OFFCURVE",
+"115 884 OFFCURVE",
+"115 680 CURVE SMOOTH"
+);
+},
+{
+closed = 1;
+nodes = (
+"285 803 OFFCURVE",
+"382 895 OFFCURVE",
+"515 895 CURVE SMOOTH",
+"649 895 OFFCURVE",
+"745 803 OFFCURVE",
+"745 680 CURVE SMOOTH",
+"745 557 OFFCURVE",
+"649 465 OFFCURVE",
+"515 465 CURVE SMOOTH",
+"382 465 OFFCURVE",
+"285 557 OFFCURVE",
+"285 680 CURVE SMOOTH"
+);
+}
+);
+width = 1095;
+},
+{
+anchors = (
+{
+name = H;
+position = "{597, -465}";
+},
+{
+name = L;
+position = "{597, -535}";
+},
+{
+name = R;
+position = "{1187, 1000}";
+},
+{
+name = U;
+position = "{567, 1100}";
+}
+);
+layerId = master02;
+paths = (
+{
+closed = 1;
+nodes = (
+"256 357 OFFCURVE",
+"202 275 OFFCURVE",
+"202 215 CURVE SMOOTH",
+"202 113 OFFCURVE",
+"280 12 OFFCURVE",
+"547 -23 CURVE SMOOTH",
+"797 -50 OFFCURVE",
+"870 -99 OFFCURVE",
+"870 -170 CURVE SMOOTH",
+"870 -229 OFFCURVE",
+"748 -302 OFFCURVE",
+"602 -302 CURVE SMOOTH",
+"418 -302 OFFCURVE",
+"330 -235 OFFCURVE",
+"330 -180 CURVE SMOOTH",
+"330 -121 OFFCURVE",
+"357 -56 OFFCURVE",
+"562 20 CURVE",
+"554 49 OFFCURVE",
+"322 75 OFFCURVE",
+"322 75 CURVE",
+"138 2 OFFCURVE",
+"50 -89 OFFCURVE",
+"50 -200 CURVE SMOOTH",
+"50 -409 OFFCURVE",
+"341 -505 OFFCURVE",
+"587 -505 CURVE SMOOTH",
+"843 -505 OFFCURVE",
+"1150 -375 OFFCURVE",
+"1150 -160 CURVE SMOOTH",
+"1150 13 OFFCURVE",
+"1049 125 OFFCURVE",
+"752 165 CURVE SMOOTH",
+"497 191 OFFCURVE",
+"433 216 OFFCURVE",
+"433 255 CURVE SMOOTH",
+"433 285 OFFCURVE",
+"472 322 OFFCURVE",
+"588 350 CURVE",
+"352 395 LINE"
+);
+},
+{
+closed = 1;
+nodes = (
+"1003 1033 OFFCURVE",
+"871 997 OFFCURVE",
+"782 940 CURVE",
+"847 770 LINE",
+"939 808 OFFCURVE",
+"1019 823 OFFCURVE",
+"1092 825 CURVE",
+"1102 1040 LINE"
+);
+},
+{
+closed = 1;
+nodes = (
+"122 455 OFFCURVE",
+"316 305 OFFCURVE",
+"567 305 CURVE SMOOTH",
+"820 305 OFFCURVE",
+"1012 465 OFFCURVE",
+"1012 680 CURVE SMOOTH",
+"1012 884 OFFCURVE",
+"820 1040 OFFCURVE",
+"567 1040 CURVE SMOOTH",
+"316 1040 OFFCURVE",
+"122 874 OFFCURVE",
+"122 670 CURVE SMOOTH"
+);
+},
+{
+closed = 1;
+nodes = (
+"377 770 OFFCURVE",
+"457 847 OFFCURVE",
+"567 847 CURVE SMOOTH",
+"678 847 OFFCURVE",
+"757 770 OFFCURVE",
+"757 680 CURVE SMOOTH",
+"757 578 OFFCURVE",
+"678 501 OFFCURVE",
+"567 501 CURVE SMOOTH",
+"457 501 OFFCURVE",
+"377 578 OFFCURVE",
+"377 680 CURVE SMOOTH"
+);
+}
+);
+width = 1170;
+}
+);
+unicode = 0067;
+},
+{
+glyphname = LtnSmH;
+layers = (
+{
+anchors = (
+{
+name = H;
+position = "{250, 0}";
+},
+{
+name = L;
+position = "{585, -100}";
+},
+{
+name = U;
+position = "{585, 1635}";
+}
+);
+layerId = master01;
+paths = (
+{
+closed = 1;
+nodes = (
+"1040 0 OFFCURVE",
+"1040 459 OFFCURVE",
+"1040 625 CURVE SMOOTH",
+"1040 900 OFFCURVE",
+"923 1040 OFFCURVE",
+"710 1040 CURVE SMOOTH",
+"570 1040 OFFCURVE",
+"428 969 OFFCURVE",
+"330 830 CURVE",
+"330 877 OFFCURVE",
+"330 1600 OFFCURVE",
+"330 1600 CURVE",
+"130 1600 LINE",
+"145 1514 OFFCURVE",
+"145 1345 OFFCURVE",
+"145 1130 CURVE SMOOTH",
+"145 935 OFFCURVE",
+"145 0 OFFCURVE",
+"145 0 CURVE",
+"330 0 LINE",
+"330 580 LINE",
+"374 716 OFFCURVE",
+"511 865 OFFCURVE",
+"655 865 CURVE SMOOTH",
+"789 865 OFFCURVE",
+"855 800 OFFCURVE",
+"855 550 CURVE SMOOTH",
+"855 413 OFFCURVE",
+"855 0 OFFCURVE",
+"855 0 CURVE",
+"1040 0 LINE"
+);
+}
+);
+width = 1175;
+},
+{
+anchors = (
+{
+name = H;
+position = "{280, 0}";
+},
+{
+name = L;
+position = "{620, -100}";
+},
+{
+name = U;
+position = "{620, 1635}";
+}
+);
+layerId = master02;
+paths = (
+{
+closed = 1;
+nodes = (
+"450 683 OFFCURVE",
+"560 795 OFFCURVE",
+"675 795 CURVE SMOOTH",
+"782 795 OFFCURVE",
+"830 744 OFFCURVE",
+"830 550 CURVE SMOOTH",
+"830 413 OFFCURVE",
+"830 0 OFFCURVE",
+"830 0 CURVE",
+"1110 0 LINE",
+"1110 0 OFFCURVE",
+"1110 459 OFFCURVE",
+"1110 625 CURVE SMOOTH",
+"1110 900 OFFCURVE",
+"1008 1040 OFFCURVE",
+"805 1040 CURVE SMOOTH",
+"662 1040 OFFCURVE",
+"513 976 OFFCURVE",
+"415 850 CURVE",
+"415 894 OFFCURVE",
+"415 1600 OFFCURVE",
+"415 1600 CURVE",
+"120 1600 LINE",
+"135 1514 OFFCURVE",
+"135 1345 OFFCURVE",
+"135 1130 CURVE SMOOTH",
+"135 935 OFFCURVE",
+"135 0 OFFCURVE",
+"135 0 CURVE",
+"415 0 LINE",
+"415 580 LINE"
+);
+}
+);
+width = 1235;
+}
+);
+unicode = 0068;
+},
+{
+glyphname = LtnSmI;
+layers = (
+{
+anchors = (
+{
+name = H;
+position = "{282, 0}";
+},
+{
+name = L;
+position = "{285, -100}";
+},
+{
+name = O;
+position = "{500, 0}";
+},
+{
+name = R;
+position = "{555, 1000}";
+},
+{
+name = U;
+position = "{282, 1100}";
+}
+);
+layerId = master01;
+paths = (
+{
+closed = 1;
+nodes = (
+"175 1020 LINE",
+"188 915 OFFCURVE",
+"190 725 OFFCURVE",
+"190 530 CURVE SMOOTH",
+"190 336 OFFCURVE",
+"190 0 OFFCURVE",
+"190 0 CURVE",
+"395 0 LINE",
+"382 107 OFFCURVE",
+"375 346 OFFCURVE",
+"375 475 CURVE SMOOTH",
+"375 1020 LINE"
+);
+},
+{
+closed = 1;
+nodes = (
+"155 1271 OFFCURVE",
+"206 1210 OFFCURVE",
+"280 1210 CURVE SMOOTH",
+"355 1210 OFFCURVE",
+"410 1271 OFFCURVE",
+"410 1345 CURVE SMOOTH",
+"410 1419 OFFCURVE",
+"355 1480 OFFCURVE",
+"280 1480 CURVE SMOOTH",
+"206 1480 OFFCURVE",
+"155 1419 OFFCURVE",
+"155 1345 CURVE SMOOTH"
+);
+}
+);
+width = 565;
+},
+{
+anchors = (
+{
+name = H;
+position = "{320, 0}";
+},
+{
+name = L;
+position = "{320, -100}";
+},
+{
+name = O;
+position = "{580, 0}";
+},
+{
+name = R;
+position = "{640, 1000}";
+},
+{
+name = U;
+position = "{320, 1100}";
+}
+);
+layerId = master02;
+paths = (
+{
+closed = 1;
+nodes = (
+"178 915 OFFCURVE",
+"180 725 OFFCURVE",
+"180 530 CURVE SMOOTH",
+"180 336 OFFCURVE",
+"180 0 OFFCURVE",
+"180 0 CURVE",
+"480 0 LINE",
+"467 107 OFFCURVE",
+"460 346 OFFCURVE",
+"460 475 CURVE SMOOTH",
+"460 558 OFFCURVE",
+"460 1020 OFFCURVE",
+"460 1020 CURVE",
+"165 1020 LINE"
+);
+},
+{
+closed = 1;
+nodes = (
+"145 1281 OFFCURVE",
+"219 1210 OFFCURVE",
+"320 1210 CURVE SMOOTH",
+"422 1210 OFFCURVE",
+"495 1281 OFFCURVE",
+"495 1385 CURVE SMOOTH",
+"495 1487 OFFCURVE",
+"422 1560 OFFCURVE",
+"320 1560 CURVE SMOOTH",
+"219 1560 OFFCURVE",
+"145 1487 OFFCURVE",
+"145 1385 CURVE SMOOTH"
+);
+}
+);
+width = 640;
+}
+);
+unicode = 0069;
+},
+{
+glyphname = LtnSmJ;
+layers = (
+{
+anchors = (
+{
+name = L;
+position = "{125, -500}";
+},
+{
+name = U;
+position = "{313, 1100}";
+}
+);
+layerId = master01;
+paths = (
+{
+closed = 1;
+nodes = (
+"205 1020 LINE",
+"218 915 OFFCURVE",
+"220 725 OFFCURVE",
+"220 530 CURVE",
+"220 -25 LINE",
+"220 -222 OFFCURVE",
+"147 -300 OFFCURVE",
+"40 -300 CURVE SMOOTH",
+"-16 -300 OFFCURVE",
+"-111 -273 OFFCURVE",
+"-155 -240 CURVE",
+"-190 -405 LINE",
+"-130 -446 OFFCURVE",
+"-26 -470 OFFCURVE",
+"30 -470 CURVE SMOOTH",
+"258 -470 OFFCURVE",
+"405 -348 OFFCURVE",
+"405 25 CURVE SMOOTH",
+"405 1020 LINE"
+);
+},
+{
+closed = 1;
+nodes = (
+"185 1271 OFFCURVE",
+"236 1210 OFFCURVE",
+"310 1210 CURVE SMOOTH",
+"385 1210 OFFCURVE",
+"440 1271 OFFCURVE",
+"440 1345 CURVE SMOOTH",
+"440 1419 OFFCURVE",
+"385 1480 OFFCURVE",
+"310 1480 CURVE SMOOTH",
+"236 1480 OFFCURVE",
+"185 1419 OFFCURVE",
+"185 1345 CURVE SMOOTH"
+);
+}
+);
+width = 595;
+},
+{
+anchors = (
+{
+name = L;
+position = "{140, -500}";
+},
+{
+name = U;
+position = "{355, 1100}";
+}
+);
+layerId = master02;
+paths = (
+{
+closed = 1;
+nodes = (
+"185 1281 OFFCURVE",
+"259 1210 OFFCURVE",
+"360 1210 CURVE SMOOTH",
+"462 1210 OFFCURVE",
+"535 1281 OFFCURVE",
+"535 1385 CURVE SMOOTH",
+"535 1487 OFFCURVE",
+"462 1560 OFFCURVE",
+"360 1560 CURVE SMOOTH",
+"259 1560 OFFCURVE",
+"185 1487 OFFCURVE",
+"185 1385 CURVE SMOOTH"
+);
+},
+{
+closed = 1;
+nodes = (
+"205 1020 LINE",
+"218 915 OFFCURVE",
+"220 725 OFFCURVE",
+"220 530 CURVE",
+"220 20 LINE",
+"220 -150 OFFCURVE",
+"165 -232 OFFCURVE",
+"48 -232 CURVE SMOOTH",
+"-20 -232 OFFCURVE",
+"-101 -195 OFFCURVE",
+"-145 -152 CURVE",
+"-190 -389 LINE",
+"-148 -421 OFFCURVE",
+"-37 -470 OFFCURVE",
+"56 -470 CURVE SMOOTH",
+"306 -470 OFFCURVE",
+"500 -348 OFFCURVE",
+"500 25 CURVE SMOOTH",
+"500 1020 LINE"
+);
+}
+);
+width = 670;
+}
+);
+unicode = 006A;
+},
+{
+glyphname = LtnSmK;
+layers = (
+{
+anchors = (
+{
+name = H;
+position = "{243, 0}";
+},
+{
+name = L;
+position = "{572, -100}";
+},
+{
+name = R;
+position = "{1035, 1000}";
+},
+{
+name = U;
+position = "{572, 1635}";
+}
+);
+guideLines = (
+{
+angle = 314;
+position = "{500, 774}";
+}
+);
+layerId = master01;
+paths = (
+{
+closed = 1;
+nodes = (
+"330 1600 LINE",
+"130 1600 LINE",
+"145 1514 OFFCURVE",
+"145 1345 OFFCURVE",
+"145 1130 CURVE SMOOTH",
+"145 934 OFFCURVE",
+"145 0 OFFCURVE",
+"145 0 CURVE",
+"330 0 LINE"
+);
+},
+{
+closed = 1;
+nodes = (
+"280 550 LINE",
+"436 524 LINE",
+"985 1020 LINE",
+"735 1020 LINE"
+);
+},
+{
+closed = 1;
+nodes = (
+"770 0 LINE",
+"1015 0 LINE",
+"410 660 LINE",
+"305 550 LINE"
+);
+}
+);
+width = 1035;
+},
+{
+anchors = (
+{
+name = H;
+position = "{940, 0}";
+},
+{
+name = L;
+position = "{585, -100}";
+},
+{
+name = R;
+position = "{1140, 1000}";
+},
+{
+name = U;
+position = "{595, 1635}";
+}
+);
+layerId = master02;
+paths = (
+{
+closed = 1;
+nodes = (
+"415 1600 LINE",
+"120 1600 LINE",
+"135 1514 OFFCURVE",
+"135 1345 OFFCURVE",
+"135 1130 CURVE SMOOTH",
+"135 934 OFFCURVE",
+"135 0 OFFCURVE",
+"135 0 CURVE",
+"415 0 LINE"
+);
+},
+{
+closed = 1;
+nodes = (
+"353 570 LINE",
+"572 528 LINE",
+"1098 1020 LINE",
+"723 1020 LINE"
+);
+},
+{
+closed = 1;
+nodes = (
+"761 0 LINE",
+"1128 0 LINE",
+"540 664 LINE",
+"350 570 LINE"
+);
+}
+);
+width = 1138;
+}
+);
+unicode = 006B;
+},
+{
+glyphname = LtnSmL;
+layers = (
+{
+anchors = (
+{
+name = H;
+position = "{290, 0}";
+},
+{
+name = L;
+position = "{290, -100}";
+},
+{
+name = R;
+position = "{550, 1000}";
+},
+{
+name = U;
+position = "{282, 1635}";
+}
+);
+guideLines = (
+{
+angle = 340;
+position = "{500, 874}";
+}
+);
+layerId = master01;
+paths = (
+{
+closed = 1;
+nodes = (
+"170 1600 LINE",
+"183 1485 OFFCURVE",
+"190 1324 OFFCURVE",
+"190 1130 CURVE",
+"190 0 LINE",
+"395 0 LINE",
+"382 109 OFFCURVE",
+"375 346 OFFCURVE",
+"375 475 CURVE SMOOTH",
+"375 1600 LINE"
+);
+}
+);
+width = 565;
+},
+{
+anchors = (
+{
+name = H;
+position = "{335, 0}";
+},
+{
+name = L;
+position = "{335, -100}";
+},
+{
+name = R;
+position = "{660, 1000}";
+},
+{
+name = U;
+position = "{320, 1635}";
+}
+);
+layerId = master02;
+paths = (
+{
+closed = 1;
+nodes = (
+"160 1600 LINE",
+"173 1485 OFFCURVE",
+"180 1324 OFFCURVE",
+"180 1130 CURVE SMOOTH",
+"180 0 LINE",
+"480 0 LINE",
+"467 109 OFFCURVE",
+"460 346 OFFCURVE",
+"460 475 CURVE SMOOTH",
+"460 1600 LINE"
+);
+}
+);
+width = 640;
+}
+);
+unicode = 006C;
+},
+{
+glyphname = LtnSmM;
+layers = (
+{
+anchors = (
+{
+name = H;
+position = "{1450, 0}";
+},
+{
+name = L;
+position = "{865, -100}";
+},
+{
+name = U;
+position = "{865, 1100}";
+}
+);
+layerId = master01;
+paths = (
+{
+closed = 1;
+nodes = (
+"1003 785 OFFCURVE",
+"1102 865 OFFCURVE",
+"1200 865 CURVE SMOOTH",
+"1312 865 OFFCURVE",
+"1345 808 OFFCURVE",
+"1345 550 CURVE SMOOTH",
+"1345 0 LINE",
+"1530 0 LINE",
+"1530 660 LINE SMOOTH",
+"1530 907 OFFCURVE",
+"1463 1040 OFFCURVE",
+"1260 1040 CURVE SMOOTH",
+"1155 1040 OFFCURVE",
+"1046 1007 OFFCURVE",
+"921 872 CURVE",
+"888 960 OFFCURVE",
+"806 1040 OFFCURVE",
+"675 1040 CURVE SMOOTH",
+"560 1040 OFFCURVE",
+"459 1006 OFFCURVE",
+"337 865 CURVE",
+"330 913 OFFCURVE",
+"320 978 OFFCURVE",
+"305 1020 CURVE",
+"125 1020 LINE",
+"146 951 OFFCURVE",
+"175 811 OFFCURVE",
+"175 615 CURVE SMOOTH",
+"175 0 LINE",
+"360 0 LINE",
+"360 660 LINE",
+"413 780 OFFCURVE",
+"517 865 OFFCURVE",
+"615 865 CURVE SMOOTH",
+"727 865 OFFCURVE",
+"760 818 OFFCURVE",
+"760 570 CURVE SMOOTH",
+"760 0 LINE",
+"945 0 LINE",
+"945 660 LINE"
+);
+}
+);
+width = 1685;
+},
+{
+anchors = (
+{
+name = H;
+position = "{890, 0}";
+},
+{
+name = L;
+position = "{890, -100}";
+},
+{
+name = U;
+position = "{890, 1100}";
+}
+);
+layerId = master02;
+paths = (
+{
+closed = 1;
+nodes = (
+"136 951 OFFCURVE",
+"165 811 OFFCURVE",
+"165 615 CURVE SMOOTH",
+"165 0 LINE",
+"445 0 LINE",
+"445 640 LINE",
+"484 731 OFFCURVE",
+"560 795 OFFCURVE",
+"635 795 CURVE SMOOTH",
+"723 795 OFFCURVE",
+"750 759 OFFCURVE",
+"750 570 CURVE SMOOTH",
+"750 0 LINE",
+"1030 0 LINE",
+"1030 660 LINE",
+"1073 742 OFFCURVE",
+"1147 795 OFFCURVE",
+"1220 795 CURVE SMOOTH",
+"1310 795 OFFCURVE",
+"1335 751 OFFCURVE",
+"1335 550 CURVE SMOOTH",
+"1335 0 LINE",
+"1615 0 LINE",
+"1615 660 LINE SMOOTH",
+"1615 907 OFFCURVE",
+"1548 1040 OFFCURVE",
+"1345 1040 CURVE SMOOTH",
+"1240 1040 OFFCURVE",
+"1131 1007 OFFCURVE",
+"1006 872 CURVE",
+"973 960 OFFCURVE",
+"891 1040 OFFCURVE",
+"760 1040 CURVE SMOOTH",
+"644 1040 OFFCURVE",
+"544 1008 OFFCURVE",
+"422 875 CURVE",
+"412 920 OFFCURVE",
+"397 981 OFFCURVE",
+"375 1020 CURVE",
+"115 1020 LINE"
+);
+}
+);
+width = 1760;
+}
+);
+unicode = 006D;
+},
+{
+glyphname = LtnSmN;
+layers = (
+{
+anchors = (
+{
+name = H;
+position = "{970, 0}";
+},
+{
+name = L;
+position = "{600, -100}";
+},
+{
+name = U;
+position = "{600, 1100}";
+}
+);
+layerId = master01;
+paths = (
+{
+closed = 1;
+nodes = (
+"1050 0 OFFCURVE",
+"1050 459 OFFCURVE",
+"1050 625 CURVE SMOOTH",
+"1050 900 OFFCURVE",
+"933 1040 OFFCURVE",
+"720 1040 CURVE SMOOTH",
+"579 1040 OFFCURVE",
+"452 977 OFFCURVE",
+"325 825 CURVE",
+"318 873 OFFCURVE",
+"300 978 OFFCURVE",
+"285 1020 CURVE",
+"105 1020 LINE",
+"127 951 OFFCURVE",
+"155 811 OFFCURVE",
+"155 615 CURVE SMOOTH",
+"155 420 OFFCURVE",
+"155 0 OFFCURVE",
+"155 0 CURVE",
+"340 0 LINE",
+"340 580 LINE",
+"384 716 OFFCURVE",
+"521 865 OFFCURVE",
+"665 865 CURVE SMOOTH",
+"800 865 OFFCURVE",
+"865 800 OFFCURVE",
+"865 550 CURVE SMOOTH",
+"865 413 OFFCURVE",
+"865 0 OFFCURVE",
+"865 0 CURVE",
+"1050 0 LINE"
+);
+}
+);
+width = 1185;
+},
+{
+anchors = (
+{
+name = H;
+position = "{620, 0}";
+},
+{
+name = L;
+position = "{620, -100}";
+},
+{
+name = U;
+position = "{620, 1100}";
+}
+);
+layerId = master02;
+paths = (
+{
+closed = 1;
+nodes = (
+"1120 0 OFFCURVE",
+"1120 459 OFFCURVE",
+"1120 625 CURVE SMOOTH",
+"1120 900 OFFCURVE",
+"998 1040 OFFCURVE",
+"795 1040 CURVE SMOOTH",
+"654 1040 OFFCURVE",
+"537 980 OFFCURVE",
+"410 835 CURVE",
+"403 881 OFFCURVE",
+"385 980 OFFCURVE",
+"370 1020 CURVE",
+"95 1020 LINE",
+"117 951 OFFCURVE",
+"145 811 OFFCURVE",
+"145 615 CURVE SMOOTH",
+"145 420 OFFCURVE",
+"145 0 OFFCURVE",
+"145 0 CURVE",
+"425 0 LINE",
+"425 580 LINE",
+"460 683 OFFCURVE",
+"570 795 OFFCURVE",
+"685 795 CURVE SMOOTH",
+"792 795 OFFCURVE",
+"840 734 OFFCURVE",
+"840 550 CURVE SMOOTH",
+"840 413 OFFCURVE",
+"840 0 OFFCURVE",
+"840 0 CURVE",
+"1120 0 LINE"
+);
+}
+);
+width = 1245;
+}
+);
+unicode = 006E;
+},
+{
+glyphname = LtnSmO;
+layers = (
+{
+anchors = (
+{
+name = H;
+position = "{570, 0}";
+},
+{
+name = L;
+position = "{570, -100}";
+},
+{
+name = O;
+position = "{835, 0}";
+},
+{
+name = R;
+position = "{1140, 1000}";
+},
+{
+name = U;
+position = "{570, 1100}";
+}
+);
+layerId = master01;
+paths = (
+{
+closed = 1;
+nodes = (
+"95 161 OFFCURVE",
+"286 -25 OFFCURVE",
+"560 -25 CURVE SMOOTH",
+"823 -25 OFFCURVE",
+"1045 161 OFFCURVE",
+"1045 505 CURVE SMOOTH",
+"1045 849 OFFCURVE",
+"855 1040 OFFCURVE",
+"580 1040 CURVE SMOOTH",
+"317 1040 OFFCURVE",
+"95 849 OFFCURVE",
+"95 505 CURVE SMOOTH"
+);
+},
+{
+closed = 1;
+nodes = (
+"280 739 OFFCURVE",
+"408 880 OFFCURVE",
+"570 880 CURVE SMOOTH",
+"742 880 OFFCURVE",
+"860 739 OFFCURVE",
+"860 505 CURVE SMOOTH",
+"860 272 OFFCURVE",
+"731 135 OFFCURVE",
+"570 135 CURVE SMOOTH",
+"398 135 OFFCURVE",
+"280 272 OFFCURVE",
+"280 505 CURVE SMOOTH"
+);
+}
+);
+width = 1140;
+},
+{
+anchors = (
+{
+name = H;
+position = "{578, 0}";
+},
+{
+name = L;
+position = "{580, -100}";
+},
+{
+name = O;
+position = "{790, 0}";
+},
+{
+name = R;
+position = "{1160, 1000}";
+},
+{
+name = U;
+position = "{580, 1100}";
+}
+);
+layerId = master02;
+paths = (
+{
+closed = 1;
+nodes = (
+"90 163 OFFCURVE",
+"288 -25 OFFCURVE",
+"570 -25 CURVE SMOOTH",
+"840 -25 OFFCURVE",
+"1070 163 OFFCURVE",
+"1070 507 CURVE SMOOTH",
+"1070 851 OFFCURVE",
+"873 1040 OFFCURVE",
+"590 1040 CURVE SMOOTH",
+"320 1040 OFFCURVE",
+"90 851 OFFCURVE",
+"90 507 CURVE SMOOTH"
+);
+},
+{
+closed = 1;
+nodes = (
+"370 699 OFFCURVE",
+"451 815 OFFCURVE",
+"580 815 CURVE SMOOTH",
+"717 815 OFFCURVE",
+"790 699 OFFCURVE",
+"790 507 CURVE SMOOTH",
+"790 316 OFFCURVE",
+"709 200 OFFCURVE",
+"580 200 CURVE SMOOTH",
+"443 200 OFFCURVE",
+"370 316 OFFCURVE",
+"370 507 CURVE SMOOTH"
+);
+}
+);
+width = 1160;
+}
+);
+unicode = 006F;
+},
+{
+glyphname = LtnSmP;
+layers = (
+{
+anchors = (
+{
+name = H;
+position = "{265, -435}";
+},
+{
+name = L;
+position = "{590, -500}";
+},
+{
+name = R;
+position = "{1170, 1000}";
+},
+{
+name = U;
+position = "{590, 1100}";
+}
+);
+guideLines = (
+{
+position = "{214, -490}";
+}
+);
+layerId = master01;
+paths = (
+{
+closed = 1;
+nodes = (
+"150 907 OFFCURVE",
+"155 734 OFFCURVE",
+"155 485 CURVE SMOOTH",
+"155 291 OFFCURVE",
+"155 -490 OFFCURVE",
+"155 -490 CURVE",
+"365 -490 LINE",
+"348 -405 OFFCURVE",
+"340 -310 OFFCURVE",
+"340 -150 CURVE",
+"340 85 LINE",
+"435 18 OFFCURVE",
+"513 -25 OFFCURVE",
+"620 -25 CURVE SMOOTH",
+"871 -25 OFFCURVE",
+"1075 193 OFFCURVE",
+"1075 535 CURVE SMOOTH",
+"1075 828 OFFCURVE",
+"923 1040 OFFCURVE",
+"695 1040 CURVE SMOOTH",
+"547 1040 OFFCURVE",
+"419 954 OFFCURVE",
+"325 830 CURVE",
+"316 922 OFFCURVE",
+"300 986 OFFCURVE",
+"285 1020 CURVE",
+"105 1020 LINE"
+);
+},
+{
+closed = 1;
+nodes = (
+"414 768 OFFCURVE",
+"545 870 OFFCURVE",
+"660 870 CURVE SMOOTH",
+"804 870 OFFCURVE",
+"890 727 OFFCURVE",
+"890 505 CURVE SMOOTH",
+"890 279 OFFCURVE",
+"761 140 OFFCURVE",
+"620 140 CURVE SMOOTH",
+"528 140 OFFCURVE",
+"477 164 OFFCURVE",
+"340 260 CURVE",
+"340 575 LINE"
+);
+}
+);
+width = 1170;
+},
+{
+anchors = (
+{
+name = H;
+position = "{290, -435}";
+},
+{
+name = L;
+position = "{640, -500}";
+},
+{
+name = R;
+position = "{1235, 1000}";
+},
+{
+name = U;
+position = "{640, 1100}";
+}
+);
+layerId = master02;
+paths = (
+{
+closed = 1;
+nodes = (
+"433 -405 OFFCURVE",
+"425 -310 OFFCURVE",
+"425 -150 CURVE SMOOTH",
+"425 -71 OFFCURVE",
+"425 -41 OFFCURVE",
+"425 65 CURVE",
+"518 10 OFFCURVE",
+"594 -25 OFFCURVE",
+"699 -25 CURVE SMOOTH",
+"945 -25 OFFCURVE",
+"1145 193 OFFCURVE",
+"1145 535 CURVE SMOOTH",
+"1145 828 OFFCURVE",
+"996 1040 OFFCURVE",
+"773 1040 CURVE SMOOTH",
+"628 1040 OFFCURVE",
+"502 962 OFFCURVE",
+"410 850 CURVE",
+"401 932 OFFCURVE",
+"385 990 OFFCURVE",
+"370 1020 CURVE",
+"95 1020 LINE",
+"140 907 OFFCURVE",
+"145 734 OFFCURVE",
+"145 485 CURVE SMOOTH",
+"145 291 OFFCURVE",
+"145 -345 OFFCURVE",
+"145 -490 CURVE",
+"450 -490 LINE"
+);
+},
+{
+closed = 1;
+nodes = (
+"564 206 OFFCURVE",
+"527 225 OFFCURVE",
+"425 300 CURVE",
+"425 390 OFFCURVE",
+"425 507 OFFCURVE",
+"425 585 CURVE",
+"482 726 OFFCURVE",
+"583 802 OFFCURVE",
+"672 802 CURVE SMOOTH",
+"793 802 OFFCURVE",
+"865 686 OFFCURVE",
+"865 505 CURVE SMOOTH",
+"865 320 OFFCURVE",
+"755 206 OFFCURVE",
+"633 206 CURVE SMOOTH"
+);
+}
+);
+width = 1235;
+}
+);
+unicode = 0070;
+},
+{
+glyphname = LtnSmQ;
+layers = (
+{
+anchors = (
+{
+name = L;
+position = "{555, -500}";
+},
+{
+name = R;
+position = "{1130, 1000}";
+},
+{
+name = U;
+position = "{555, 1100}";
+}
+);
+layerId = master01;
+paths = (
+{
+closed = 1;
+nodes = (
+"1005 -490 LINE",
+"988 -405 OFFCURVE",
+"980 -310 OFFCURVE",
+"980 -150 CURVE SMOOTH",
+"980 -26 OFFCURVE",
+"980 965 OFFCURVE",
+"980 965 CURVE",
+"872 1001 OFFCURVE",
+"746 1040 OFFCURVE",
+"625 1040 CURVE SMOOTH",
+"260 1040 OFFCURVE",
+"105 742 OFFCURVE",
+"105 435 CURVE SMOOTH",
+"105 117 OFFCURVE",
+"321 -25 OFFCURVE",
+"505 -25 CURVE SMOOTH",
+"598 -25 OFFCURVE",
+"691 19 OFFCURVE",
+"795 140 CURVE",
+"795 -490 LINE"
+);
+},
+{
+closed = 1;
+nodes = (
+"713 219 OFFCURVE",
+"612 145 OFFCURVE",
+"520 145 CURVE SMOOTH",
+"412 145 OFFCURVE",
+"290 237 OFFCURVE",
+"290 485 CURVE SMOOTH",
+"290 674 OFFCURVE",
+"376 870 OFFCURVE",
+"595 870 CURVE SMOOTH",
+"656 870 OFFCURVE",
+"735 853 OFFCURVE",
+"795 830 CURVE",
+"795 365 LINE"
+);
+}
+);
+width = 1130;
+},
+{
+anchors = (
+{
+name = L;
+position = "{600, -500}";
+},
+{
+name = R;
+position = "{1210, 1000}";
+},
+{
+name = U;
+position = "{600, 1100}";
+}
+);
+layerId = master02;
+paths = (
+{
+closed = 1;
+nodes = (
+"1095 -490 LINE",
+"1078 -405 OFFCURVE",
+"1070 -310 OFFCURVE",
+"1070 -150 CURVE SMOOTH",
+"1070 -26 OFFCURVE",
+"1070 965 OFFCURVE",
+"1070 965 CURVE",
+"934 1001 OFFCURVE",
+"773 1040 OFFCURVE",
+"620 1040 CURVE SMOOTH",
+"255 1040 OFFCURVE",
+"100 742 OFFCURVE",
+"100 435 CURVE SMOOTH",
+"100 117 OFFCURVE",
+"316 -25 OFFCURVE",
+"500 -25 CURVE SMOOTH",
+"593 -25 OFFCURVE",
+"686 14 OFFCURVE",
+"790 120 CURVE",
+"790 -490 LINE"
+);
+},
+{
+closed = 1;
+nodes = (
+"727 258 OFFCURVE",
+"650 203 OFFCURVE",
+"580 203 CURVE SMOOTH",
+"475 203 OFFCURVE",
+"380 287 OFFCURVE",
+"380 485 CURVE SMOOTH",
+"380 641 OFFCURVE",
+"456 802 OFFCURVE",
+"655 802 CURVE SMOOTH",
+"696 802 OFFCURVE",
+"749 789 OFFCURVE",
+"790 770 CURVE",
+"790 368 LINE"
+);
+}
+);
+width = 1210;
+}
+);
+unicode = 0071;
+},
+{
+glyphname = LtnSmR;
+layers = (
+{
+anchors = (
+{
+name = H;
+position = "{270, 0}";
+},
+{
+name = L;
+position = "{255, -100}";
+},
+{
+name = U;
+position = "{455, 1100}";
+}
+);
+guideLines = (
+{
+position = "{214, 500}";
+}
+);
+layerId = master01;
+paths = (
+{
+closed = 1;
+nodes = (
+"340 580 LINE",
+"384 716 OFFCURVE",
+"521 860 OFFCURVE",
+"605 860 CURVE SMOOTH",
+"684 860 OFFCURVE",
+"720 770 OFFCURVE",
+"720 670 CURVE",
+"880 705 LINE",
+"880 880 OFFCURVE",
+"817 1040 OFFCURVE",
+"650 1040 CURVE SMOOTH",
+"559 1040 OFFCURVE",
+"422 964 OFFCURVE",
+"325 825 CURVE",
+"318 873 OFFCURVE",
+"300 978 OFFCURVE",
+"285 1020 CURVE",
+"105 1020 LINE",
+"127 951 OFFCURVE",
+"155 811 OFFCURVE",
+"155 615 CURVE SMOOTH",
+"155 0 LINE",
+"340 0 LINE"
+);
+}
+);
+width = 890;
+},
+{
+anchors = (
+{
+name = H;
+position = "{285, 0}";
+},
+{
+name = L;
+position = "{275, -100}";
+},
+{
+name = U;
+position = "{550, 1100}";
+}
+);
+layerId = master02;
+paths = (
+{
+closed = 1;
+nodes = (
+"425 530 LINE",
+"460 654 OFFCURVE",
+"570 781 OFFCURVE",
+"637 781 CURVE SMOOTH",
+"722 781 OFFCURVE",
+"755 721 OFFCURVE",
+"762 630 CURVE",
+"985 665 LINE",
+"985 868 OFFCURVE",
+"913 1040 OFFCURVE",
+"725 1040 CURVE SMOOTH",
+"634 1040 OFFCURVE",
+"507 964 OFFCURVE",
+"410 825 CURVE",
+"403 873 OFFCURVE",
+"385 978 OFFCURVE",
+"370 1020 CURVE",
+"95 1020 LINE",
+"117 951 OFFCURVE",
+"145 811 OFFCURVE",
+"145 615 CURVE SMOOTH",
+"145 0 LINE",
+"425 0 LINE"
+);
+}
+);
+width = 995;
+}
+);
+unicode = 0072;
+},
+{
+glyphname = LtnSmS;
+layers = (
+{
+anchors = (
+{
+name = H;
+position = "{495, 0}";
+},
+{
+name = L;
+position = "{495, -100}";
+},
+{
+name = U;
+position = "{495, 1100}";
+}
+);
+layerId = master01;
+paths = (
+{
+closed = 1;
+nodes = (
+"766 998 OFFCURVE",
+"660 1040 OFFCURVE",
+"515 1040 CURVE SMOOTH",
+"211 1040 OFFCURVE",
+"130 832 OFFCURVE",
+"130 740 CURVE SMOOTH",
+"130 616 OFFCURVE",
+"182 514 OFFCURVE",
+"425 455 CURVE SMOOTH",
+"649 400 OFFCURVE",
+"700 345 OFFCURVE",
+"700 270 CURVE SMOOTH",
+"700 201 OFFCURVE",
+"617 135 OFFCURVE",
+"500 135 CURVE SMOOTH",
+"394 135 OFFCURVE",
+"250 189 OFFCURVE",
+"160 270 CURVE",
+"110 90 LINE",
+"189 28 OFFCURVE",
+"333 -25 OFFCURVE",
+"495 -25 CURVE SMOOTH",
+"710 -25 OFFCURVE",
+"880 115 OFFCURVE",
+"880 295 CURVE SMOOTH",
+"880 481 OFFCURVE",
+"731 559 OFFCURVE",
+"550 600 CURVE SMOOTH",
+"340 648 OFFCURVE",
+"310 680 OFFCURVE",
+"310 750 CURVE SMOOTH",
+"310 810 OFFCURVE",
+"358 880 OFFCURVE",
+"505 880 CURVE SMOOTH",
+"629 880 OFFCURVE",
+"733 824 OFFCURVE",
+"800 785 CURVE",
+"835 960 LINE"
+);
+}
+);
+width = 965;
+},
+{
+anchors = (
+{
+name = H;
+position = "{515, 0}";
+},
+{
+name = L;
+position = "{515, -100}";
+},
+{
+name = U;
+position = "{530, 1100}";
+}
+);
+layerId = master02;
+paths = (
+{
+closed = 1;
+nodes = (
+"827 998 OFFCURVE",
+"708 1040 OFFCURVE",
+"545 1040 CURVE SMOOTH",
+"202 1040 OFFCURVE",
+"110 818 OFFCURVE",
+"110 720 CURVE SMOOTH",
+"110 594 OFFCURVE",
+"171 491 OFFCURVE",
+"455 432 CURVE SMOOTH",
+"646 390 OFFCURVE",
+"690 348 OFFCURVE",
+"690 290 CURVE SMOOTH",
+"690 243 OFFCURVE",
+"624 199 OFFCURVE",
+"530 199 CURVE SMOOTH",
+"413 199 OFFCURVE",
+"254 253 OFFCURVE",
+"155 334 CURVE",
+"100 90 LINE",
+"187 28 OFFCURVE",
+"346 -25 OFFCURVE",
+"525 -25 CURVE SMOOTH",
+"768 -25 OFFCURVE",
+"960 123 OFFCURVE",
+"960 315 CURVE SMOOTH",
+"960 504 OFFCURVE",
+"788 583 OFFCURVE",
+"580 625 CURVE SMOOTH",
+"405 659 OFFCURVE",
+"380 681 OFFCURVE",
+"380 730 CURVE SMOOTH",
+"380 770 OFFCURVE",
+"418 816 OFFCURVE",
+"535 816 CURVE SMOOTH",
+"674 816 OFFCURVE",
+"791 760 OFFCURVE",
+"866 721 CURVE",
+"905 960 LINE"
+);
+}
+);
+width = 1035;
+}
+);
+unicode = 0073;
+},
+{
+glyphname = LtnSmT;
+layers = (
+{
+anchors = (
+{
+name = H;
+position = "{475, 0}";
+},
+{
+name = L;
+position = "{475, -100}";
+},
+{
+name = R;
+position = "{835, 1000}";
+},
+{
+name = U;
+position = "{325, 1360}";
+}
+);
+layerId = master01;
+paths = (
+{
+closed = 1;
+nodes = (
+"672 166 OFFCURVE",
+"600 140 OFFCURVE",
+"543 140 CURVE SMOOTH",
+"453 140 OFFCURVE",
+"415 184 OFFCURVE",
+"415 390 CURVE SMOOTH",
+"415 528 OFFCURVE",
+"415 1320 OFFCURVE",
+"415 1320 CURVE",
+"230 1320 LINE",
+"230 1320 OFFCURVE",
+"230 435 OFFCURVE",
+"230 270 CURVE SMOOTH",
+"230 39 OFFCURVE",
+"356 -25 OFFCURVE",
+"512 -25 CURVE SMOOTH",
+"582 -25 OFFCURVE",
+"668 -4 OFFCURVE",
+"760 55 CURVE",
+"760 215 LINE"
+);
+},
+{
+closed = 1;
+nodes = (
+"740 850 LINE",
+"740 995 LINE",
+"30 995 LINE",
+"30 850 LINE"
+);
+}
+);
+width = 835;
+},
+{
+anchors = (
+{
+name = H;
+position = "{530, 0}";
+},
+{
+name = L;
+position = "{530, -100}";
+},
+{
+name = R;
+position = "{885, 1000}";
+},
+{
+name = U;
+position = "{360, 1360}";
+}
+);
+layerId = master02;
+paths = (
+{
+closed = 1;
+nodes = (
+"220 39 OFFCURVE",
+"374 -25 OFFCURVE",
+"563 -25 CURVE SMOOTH",
+"635 -25 OFFCURVE",
+"725 -3 OFFCURVE",
+"820 57 CURVE",
+"820 281 LINE",
+"741 232 OFFCURVE",
+"678 206 OFFCURVE",
+"627 206 CURVE SMOOTH",
+"537 206 OFFCURVE",
+"500 235 OFFCURVE",
+"500 462 CURVE SMOOTH",
+"500 1320 LINE",
+"220 1320 LINE",
+"220 270 LINE"
+);
+},
+{
+closed = 1;
+nodes = (
+"805 1005 LINE",
+"30 1005 LINE",
+"30 805 LINE",
+"805 805 LINE"
+);
+}
+);
+width = 885;
+}
+);
+unicode = 0074;
+},
+{
+glyphname = LtnSmU;
+layers = (
+{
+anchors = (
+{
+name = H;
+position = "{589, 0}";
+},
+{
+name = L;
+position = "{589, -100}";
+},
+{
+name = O;
+position = "{1192, 0}";
+},
+{
+name = R;
+position = "{1185, 1000}";
+},
+{
+name = U;
+position = "{589, 1100}";
+}
+);
+layerId = master01;
+paths = (
+{
+closed = 1;
+nodes = (
+"1048 112 OFFCURVE",
+"1025 256 OFFCURVE",
+"1025 450 CURVE SMOOTH",
+"1025 646 OFFCURVE",
+"1025 1020 OFFCURVE",
+"1025 1020 CURVE",
+"820 1020 LINE",
+"838 898 OFFCURVE",
+"840 832 OFFCURVE",
+"840 700 CURVE SMOOTH",
+"840 420 LINE",
+"787 298 OFFCURVE",
+"628 140 OFFCURVE",
+"510 140 CURVE SMOOTH",
+"383 140 OFFCURVE",
+"340 238 OFFCURVE",
+"340 465 CURVE SMOOTH",
+"340 603 OFFCURVE",
+"340 1020 OFFCURVE",
+"340 1020 CURVE",
+"135 1020 LINE",
+"153 900 OFFCURVE",
+"155 827 OFFCURVE",
+"155 700 CURVE SMOOTH",
+"155 681 OFFCURVE",
+"155 424 OFFCURVE",
+"155 405 CURVE SMOOTH",
+"155 120 OFFCURVE",
+"262 -25 OFFCURVE",
+"475 -25 CURVE SMOOTH",
+"615 -25 OFFCURVE",
+"744 53 OFFCURVE",
+"865 200 CURVE",
+"875 125 OFFCURVE",
+"901 46 OFFCURVE",
+"920 0 CURVE",
+"1090 0 LINE"
+);
+}
+);
+width = 1185;
+},
+{
+anchors = (
+{
+name = H;
+position = "{515, 0}";
+},
+{
+name = L;
+position = "{615, -100}";
+},
+{
+name = O;
+position = "{690, 0}";
+},
+{
+name = R;
+position = "{1258, 1000}";
+},
+{
+name = U;
+position = "{615, 1100}";
+}
+);
+layerId = master02;
+paths = (
+{
+closed = 1;
+nodes = (
+"1118 112 OFFCURVE",
+"1095 256 OFFCURVE",
+"1095 450 CURVE SMOOTH",
+"1095 646 OFFCURVE",
+"1095 1020 OFFCURVE",
+"1095 1020 CURVE",
+"795 1020 LINE",
+"813 898 OFFCURVE",
+"815 832 OFFCURVE",
+"815 700 CURVE SMOOTH",
+"815 418 LINE",
+"774 326 OFFCURVE",
+"651 206 OFFCURVE",
+"560 206 CURVE SMOOTH",
+"458 206 OFFCURVE",
+"425 284 OFFCURVE",
+"425 465 CURVE SMOOTH",
+"425 603 OFFCURVE",
+"425 1020 OFFCURVE",
+"425 1020 CURVE",
+"125 1020 LINE",
+"143 900 OFFCURVE",
+"145 827 OFFCURVE",
+"145 700 CURVE SMOOTH",
+"145 681 OFFCURVE",
+"145 424 OFFCURVE",
+"145 405 CURVE SMOOTH",
+"145 120 OFFCURVE",
+"250 -25 OFFCURVE",
+"458 -25 CURVE SMOOTH",
+"595 -25 OFFCURVE",
+"722 48 OFFCURVE",
+"840 185 CURVE",
+"850 116 OFFCURVE",
+"876 43 OFFCURVE",
+"895 0 CURVE",
+"1160 0 LINE"
+);
+}
+);
+width = 1245;
+}
+);
+unicode = 0075;
+},
+{
+glyphname = LtnSmV;
+layers = (
+{
+anchors = (
+{
+name = H;
+position = "{549, 0}";
+},
+{
+name = L;
+position = "{535, -100}";
+},
+{
+name = O;
+position = "{725, 0}";
+},
+{
+name = U;
+position = "{535, 1100}";
+}
+);
+layerId = master01;
+paths = (
+{
+closed = 1;
+nodes = (
+"535 200 LINE",
+"230 1020 LINE",
+"20 1020 LINE",
+"75 905 OFFCURVE",
+"143 746 OFFCURVE",
+"175 665 CURVE SMOOTH",
+"237 510 OFFCURVE",
+"440 0 OFFCURVE",
+"440 0 CURVE",
+"630 0 LINE",
+"630 0 OFFCURVE",
+"842 536 OFFCURVE",
+"895 665 CURVE SMOOTH",
+"928 744 OFFCURVE",
+"993 905 OFFCURVE",
+"1050 1020 CURVE",
+"840 1020 LINE"
+);
+}
+);
+width = 1070;
+},
+{
+anchors = (
+{
+name = H;
+position = "{565, 0}";
+},
+{
+name = L;
+position = "{565, -100}";
+},
+{
+name = O;
+position = "{750, 0}";
+},
+{
+name = U;
+position = "{565, 1100}";
+}
+);
+layerId = master02;
+paths = (
+{
+closed = 1;
+nodes = (
+"556 290 LINE",
+"322 1020 LINE",
+"10 1020 LINE",
+"65 905 OFFCURVE",
+"133 746 OFFCURVE",
+"165 665 CURVE SMOOTH",
+"227 510 OFFCURVE",
+"430 0 OFFCURVE",
+"430 0 CURVE",
+"674 0 LINE",
+"674 0 OFFCURVE",
+"886 536 OFFCURVE",
+"939 665 CURVE SMOOTH",
+"972 744 OFFCURVE",
+"1037 905 OFFCURVE",
+"1094 1020 CURVE",
+"786 1020 LINE"
+);
+}
+);
+width = 1104;
+}
+);
+unicode = 0076;
+},
+{
+glyphname = LtnSmW;
+layers = (
+{
+anchors = (
+{
+name = L;
+position = "{775, -100}";
+},
+{
+name = U;
+position = "{775, 1100}";
+}
+);
+layerId = master01;
+paths = (
+{
+closed = 1;
+nodes = (
+"440 215 LINE",
+"230 1020 LINE",
+"45 1020 LINE",
+"92 867 OFFCURVE",
+"120 771 OFFCURVE",
+"150 665 CURVE SMOOTH",
+"335 0 LINE",
+"525 0 LINE",
+"775 785 LINE",
+"1025 0 LINE",
+"1215 0 LINE",
+"1400 665 LINE SMOOTH",
+"1434 785 OFFCURVE",
+"1458 868 OFFCURVE",
+"1505 1020 CURVE",
+"1320 1020 LINE",
+"1110 215 LINE",
+"850 1020 LINE",
+"700 1020 LINE"
+);
+}
+);
+width = 1550;
+},
+{
+anchors = (
+{
+name = L;
+position = "{785, -100}";
+},
+{
+name = U;
+position = "{785, 1100}";
+}
+);
+layerId = master02;
+paths = (
+{
+closed = 1;
+nodes = (
+"480 285 LINE",
+"323 1020 LINE",
+"35 1020 LINE",
+"82 867 OFFCURVE",
+"110 771 OFFCURVE",
+"140 665 CURVE SMOOTH",
+"325 0 LINE",
+"615 0 LINE",
+"785 695 LINE",
+"955 0 LINE",
+"1245 0 LINE",
+"1430 665 LINE SMOOTH",
+"1464 785 OFFCURVE",
+"1488 868 OFFCURVE",
+"1535 1020 CURVE",
+"1247 1020 LINE",
+"1090 285 LINE",
+"905 1020 LINE",
+"665 1020 LINE"
+);
+}
+);
+width = 1570;
+}
+);
+unicode = 0077;
+},
+{
+glyphname = LtnSmX;
+layers = (
+{
+anchors = (
+{
+name = H;
+position = "{900, 0}";
+},
+{
+name = L;
+position = "{542, -100}";
+},
+{
+name = U;
+position = "{542, 1100}";
+}
+);
+layerId = master01;
+paths = (
+{
+closed = 1;
+nodes = (
+"1035 0 LINE",
+"927 142 OFFCURVE",
+"902 170 OFFCURVE",
+"830 270 CURVE SMOOTH",
+"290 1020 LINE",
+"60 1020 LINE",
+"168 887 OFFCURVE",
+"203 843 OFFCURVE",
+"270 750 CURVE",
+"805 0 LINE"
+);
+},
+{
+closed = 1;
+nodes = (
+"250 270 LINE SMOOTH",
+"189 182 OFFCURVE",
+"160 143 OFFCURVE",
+"50 0 CURVE",
+"275 0 LINE",
+"556 404 LINE",
+"489 616 LINE"
+);
+},
+{
+closed = 1;
+nodes = (
+"820 750 LINE SMOOTH",
+"883 842 OFFCURVE",
+"917 886 OFFCURVE",
+"1020 1020 CURVE",
+"795 1020 LINE",
+"520 615 LINE",
+"585 405 LINE"
+);
+}
+);
+width = 1085;
+},
+{
+anchors = (
+{
+name = H;
+position = "{960, 0}";
+},
+{
+name = L;
+position = "{590, -100}";
+},
+{
+name = U;
+position = "{615, 1100}";
+}
+);
+layerId = master02;
+paths = (
+{
+closed = 1;
+nodes = (
+"1145 0 LINE",
+"1037 129 OFFCURVE",
+"989 190 OFFCURVE",
+"930 270 CURVE SMOOTH",
+"380 1020 LINE",
+"50 1020 LINE",
+"158 887 OFFCURVE",
+"192 842 OFFCURVE",
+"260 750 CURVE SMOOTH",
+"815 0 LINE"
+);
+},
+{
+closed = 1;
+nodes = (
+"245 270 LINE SMOOTH",
+"195 201 OFFCURVE",
+"150 143 OFFCURVE",
+"40 0 CURVE",
+"345 0 LINE",
+"584 359 LINE",
+"499 616 LINE"
+);
+},
+{
+closed = 1;
+nodes = (
+"925 750 LINE SMOOTH",
+"980 826 OFFCURVE",
+"1027 886 OFFCURVE",
+"1130 1020 CURVE",
+"825 1020 LINE",
+"595 668 LINE",
+"675 405 LINE"
+);
+}
+);
+width = 1185;
+}
+);
+unicode = 0078;
+},
+{
+glyphname = LtnSmY;
+layers = (
+{
+anchors = (
+{
+name = L;
+position = "{795, -100}";
+},
+{
+name = R;
+position = "{1120, 1000}";
+},
+{
+name = U;
+position = "{535, 1100}";
+}
+);
+layerId = master01;
+paths = (
+{
+closed = 1;
+nodes = (
+"230 1020 LINE",
+"30 1020 LINE",
+"107 864 OFFCURVE",
+"153 756 OFFCURVE",
+"190 665 CURVE SMOOTH",
+"525 -165 LINE",
+"610 60 LINE"
+);
+},
+{
+closed = 1;
+nodes = (
+"928 758 OFFCURVE",
+"971 865 OFFCURVE",
+"1040 1020 CURVE",
+"840 1020 LINE",
+"840 1020 OFFCURVE",
+"564 230 OFFCURVE",
+"500 55 CURVE SMOOTH",
+"391 -248 OFFCURVE",
+"315 -300 OFFCURVE",
+"225 -300 CURVE SMOOTH",
+"159 -300 OFFCURVE",
+"82 -260 OFFCURVE",
+"40 -225 CURVE",
+"-20 -385 LINE",
+"53 -439 OFFCURVE",
+"134 -470 OFFCURVE",
+"225 -470 CURVE SMOOTH",
+"395 -470 OFFCURVE",
+"516 -383 OFFCURVE",
+"655 0 CURVE",
+"895 665 LINE"
+);
+}
+);
+width = 1060;
+},
+{
+anchors = (
+{
+name = L;
+position = "{845, -100}";
+},
+{
+name = R;
+position = "{1155, 1000}";
+},
+{
+name = U;
+position = "{565, 1100}";
+}
+);
+layerId = master02;
+paths = (
+{
+closed = 1;
+nodes = (
+"978 758 OFFCURVE",
+"1021 865 OFFCURVE",
+"1090 1020 CURVE",
+"777 1020 LINE",
+"777 1020 OFFCURVE",
+"646 549 OFFCURVE",
+"573 293 CURVE",
+"333 1020 LINE",
+"20 1020 LINE",
+"97 864 OFFCURVE",
+"144 757 OFFCURVE",
+"180 665 CURVE SMOOTH",
+"445 -18 LINE",
+"366 -209 OFFCURVE",
+"304 -242 OFFCURVE",
+"245 -242 CURVE SMOOTH",
+"179 -242 OFFCURVE",
+"102 -202 OFFCURVE",
+"60 -167 CURVE",
+"-10 -385 LINE",
+"63 -439 OFFCURVE",
+"154 -470 OFFCURVE",
+"245 -470 CURVE SMOOTH",
+"427 -470 OFFCURVE",
+"565 -387 OFFCURVE",
+"705 0 CURVE SMOOTH",
+"945 665 LINE SMOOTH"
+);
+}
+);
+width = 1100;
+}
+);
+unicode = 0079;
+},
+{
+glyphname = LftCurlyBrac;
+layers = (
+{
+layerId = master01;
+paths = (
+{
+closed = 1;
+nodes = (
+"210 583 OFFCURVE",
+"383 486 OFFCURVE",
+"410 450 CURVE SMOOTH",
+"434 418 OFFCURVE",
+"424 -205 OFFCURVE",
+"495 -285 CURVE SMOOTH",
+"535 -330 OFFCURVE",
+"696 -383 OFFCURVE",
+"800 -410 CURVE",
+"840 -270 LINE",
+"773 -247 OFFCURVE",
+"650 -198 OFFCURVE",
+"630 -170 CURVE SMOOTH",
+"597 -123 OFFCURVE",
+"610 447 OFFCURVE",
+"590 485 CURVE SMOOTH",
+"571 521 OFFCURVE",
+"434 593 OFFCURVE",
+"430 615 CURVE",
+"434 637 OFFCURVE",
+"571 709 OFFCURVE",
+"590 745 CURVE SMOOTH",
+"610 783 OFFCURVE",
+"597 1353 OFFCURVE",
+"630 1400 CURVE SMOOTH",
+"650 1428 OFFCURVE",
+"773 1477 OFFCURVE",
+"840 1500 CURVE",
+"800 1640 LINE",
+"696 1613 OFFCURVE",
+"535 1560 OFFCURVE",
+"495 1515 CURVE SMOOTH",
+"424 1435 OFFCURVE",
+"434 812 OFFCURVE",
+"410 780 CURVE SMOOTH",
+"383 744 OFFCURVE",
+"210 647 OFFCURVE",
+"210 615 CURVE SMOOTH"
+);
+}
+);
+width = 1000;
+},
+{
+layerId = master02;
+paths = (
+{
+closed = 1;
+nodes = (
+"828 -160 OFFCURVE",
+"704 -122 OFFCURVE",
+"685 -100 CURVE SMOOTH",
+"650 -60 OFFCURVE",
+"663 411 OFFCURVE",
+"645 445 CURVE SMOOTH",
+"621 491 OFFCURVE",
+"483 580 OFFCURVE",
+"483 615 CURVE SMOOTH",
+"483 650 OFFCURVE",
+"620 740 OFFCURVE",
+"643 785 CURVE SMOOTH",
+"661 820 OFFCURVE",
+"650 1289 OFFCURVE",
+"685 1330 CURVE SMOOTH",
+"702 1351 OFFCURVE",
+"807 1390 OFFCURVE",
+"870 1409 CURVE",
+"820 1640 LINE",
+"692 1613 OFFCURVE",
+"502 1562 OFFCURVE",
+"455 1515 CURVE SMOOTH",
+"381 1442 OFFCURVE",
+"392 852 OFFCURVE",
+"370 820 CURVE SMOOTH",
+"340 777 OFFCURVE",
+"170 670 OFFCURVE",
+"170 615 CURVE SMOOTH",
+"170 560 OFFCURVE",
+"340 453 OFFCURVE",
+"370 410 CURVE SMOOTH",
+"392 378 OFFCURVE",
+"380 -213 OFFCURVE",
+"455 -285 CURVE SMOOTH",
+"505 -333 OFFCURVE",
+"709 -383 OFFCURVE",
+"845 -410 CURVE",
+"895 -179 LINE"
+);
+}
+);
+width = 1040;
+}
+);
+unicode = 007B;
+},
+{
+glyphname = VertLine;
+layers = (
+{
+layerId = master01;
+paths = (
+{
+closed = 1;
+nodes = (
+"270 -390 LINE",
+"420 -390 LINE",
+"420 1600 LINE",
+"270 1600 LINE"
+);
+}
+);
+width = 690;
+},
+{
+layerId = master02;
+paths = (
+{
+closed = 1;
+nodes = (
+"240 -390 LINE",
+"450 -390 LINE",
+"450 1600 LINE",
+"240 1600 LINE"
+);
+}
+);
+width = 690;
+}
+);
+unicode = 007C;
+},
+{
+glyphname = RtCurlyBrac;
+layers = (
+{
+layerId = master01;
+paths = (
+{
+closed = 1;
+nodes = (
+"790 647 OFFCURVE",
+"617 744 OFFCURVE",
+"590 780 CURVE SMOOTH",
+"566 812 OFFCURVE",
+"576 1435 OFFCURVE",
+"505 1515 CURVE SMOOTH",
+"465 1560 OFFCURVE",
+"304 1613 OFFCURVE",
+"200 1640 CURVE",
+"160 1500 LINE",
+"227 1477 OFFCURVE",
+"350 1428 OFFCURVE",
+"370 1400 CURVE SMOOTH",
+"403 1353 OFFCURVE",
+"390 783 OFFCURVE",
+"410 745 CURVE SMOOTH",
+"429 709 OFFCURVE",
+"566 637 OFFCURVE",
+"570 615 CURVE",
+"566 593 OFFCURVE",
+"429 521 OFFCURVE",
+"410 485 CURVE SMOOTH",
+"390 447 OFFCURVE",
+"403 -123 OFFCURVE",
+"370 -170 CURVE SMOOTH",
+"350 -198 OFFCURVE",
+"227 -247 OFFCURVE",
+"160 -270 CURVE",
+"200 -410 LINE",
+"304 -383 OFFCURVE",
+"465 -330 OFFCURVE",
+"505 -285 CURVE SMOOTH",
+"576 -205 OFFCURVE",
+"566 418 OFFCURVE",
+"590 450 CURVE SMOOTH",
+"617 486 OFFCURVE",
+"790 583 OFFCURVE",
+"790 615 CURVE SMOOTH"
+);
+}
+);
+width = 1000;
+},
+{
+layerId = master02;
+paths = (
+{
+closed = 1;
+nodes = (
+"316 -383 OFFCURVE",
+"520 -333 OFFCURVE",
+"570 -285 CURVE SMOOTH",
+"645 -213 OFFCURVE",
+"633 378 OFFCURVE",
+"655 410 CURVE SMOOTH",
+"685 453 OFFCURVE",
+"855 560 OFFCURVE",
+"855 615 CURVE SMOOTH",
+"855 670 OFFCURVE",
+"685 777 OFFCURVE",
+"655 820 CURVE SMOOTH",
+"633 852 OFFCURVE",
+"644 1442 OFFCURVE",
+"570 1515 CURVE SMOOTH",
+"523 1562 OFFCURVE",
+"333 1613 OFFCURVE",
+"205 1640 CURVE",
+"155 1409 LINE",
+"218 1390 OFFCURVE",
+"323 1351 OFFCURVE",
+"340 1330 CURVE SMOOTH",
+"375 1289 OFFCURVE",
+"364 820 OFFCURVE",
+"382 785 CURVE SMOOTH",
+"405 740 OFFCURVE",
+"542 650 OFFCURVE",
+"542 615 CURVE SMOOTH",
+"542 580 OFFCURVE",
+"404 491 OFFCURVE",
+"380 445 CURVE SMOOTH",
+"362 411 OFFCURVE",
+"375 -60 OFFCURVE",
+"340 -100 CURVE SMOOTH",
+"321 -122 OFFCURVE",
+"197 -160 OFFCURVE",
+"130 -179 CURVE",
+"180 -410 LINE"
+);
+}
+);
+width = 1040;
+}
+);
+unicode = 007D;
+},
+{
+glyphname = Tilde;
+layers = (
+{
+layerId = master01;
+paths = (
+{
+closed = 1;
+nodes = (
+"130 424 OFFCURVE",
+"162 465 OFFCURVE",
+"240 465 CURVE SMOOTH",
+"415 465 OFFCURVE",
+"615 360 OFFCURVE",
+"845 360 CURVE SMOOTH",
+"1004 360 OFFCURVE",
+"1080 482 OFFCURVE",
+"1080 610 CURVE",
+"975 610 LINE",
+"968 564 OFFCURVE",
+"938 510 OFFCURVE",
+"855 510 CURVE SMOOTH",
+"619 510 OFFCURVE",
+"461 615 OFFCURVE",
+"240 615 CURVE SMOOTH",
+"94 615 OFFCURVE",
+"20 497 OFFCURVE",
+"20 375 CURVE",
+"125 375 LINE"
+);
+}
+);
+width = 1115;
+},
+{
+layerId = master02;
+paths = (
+{
+closed = 1;
+nodes = (
+"170 394 OFFCURVE",
+"202 435 OFFCURVE",
+"280 435 CURVE SMOOTH",
+"435 435 OFFCURVE",
+"615 330 OFFCURVE",
+"825 330 CURVE SMOOTH",
+"984 330 OFFCURVE",
+"1080 512 OFFCURVE",
+"1080 640 CURVE",
+"935 640 LINE",
+"928 594 OFFCURVE",
+"898 540 OFFCURVE",
+"815 540 CURVE SMOOTH",
+"599 540 OFFCURVE",
+"461 645 OFFCURVE",
+"260 645 CURVE SMOOTH",
+"104 645 OFFCURVE",
+"20 467 OFFCURVE",
+"20 345 CURVE",
+"165 345 LINE"
+);
+}
+);
+width = 1115;
+}
+);
+unicode = 007E;
+},
+{
+glyphname = LtnCapADiaer;
+layers = (
+{
+anchors = (
+{
+name = H;
+position = "{707, 0}";
+},
+{
+name = L;
+position = "{687, -100}";
+},
+{
+name = O;
+position = "{1450, 0}";
+},
+{
+name = U;
+position = "{687, 1935}";
+}
+);
+components = (
+{
+name = LtnCapA;
+},
+{
+name = CombDiaer;
+transform = "{1, 0, 0, 1, 1257, 430}";
+}
+);
+layerId = master01;
+width = 1395;
+},
+{
+anchors = (
+{
+name = H;
+position = "{1275, 0}";
+},
+{
+name = L;
+position = "{732, -100}";
+},
+{
+name = O;
+position = "{1495, 0}";
+},
+{
+name = U;
+position = "{732, 2015}";
+}
+);
+components = (
+{
+name = LtnCapA;
+},
+{
+name = CombDiaer;
+transform = "{1, 0, 0, 1, 1312, 430}";
+}
+);
+layerId = master02;
+width = 1485;
+}
+);
+unicode = 00C4;
+},
+{
+glyphname = LtnSmAAcute;
+layers = (
+{
+anchors = (
+{
+name = H;
+position = "{540, 0}";
+},
+{
+name = L;
+position = "{540, -100}";
+},
+{
+name = O;
+position = "{1125, 0}";
+},
+{
+name = R;
+position = "{1120, 1000}";
+},
+{
+name = U;
+position = "{540, 1635}";
+}
+);
+components = (
+{
+name = LtnSmA;
+},
+{
+name = CombAcute;
+transform = "{1, 0, 0, 1, 1110, 0}";
+}
+);
+layerId = master01;
+width = 1120;
+},
+{
+anchors = (
+{
+name = H;
+position = "{985, 0}";
+},
+{
+name = L;
+position = "{610, -100}";
+},
+{
+name = O;
+position = "{1185, 0}";
+},
+{
+name = R;
+position = "{1145, 1000}";
+},
+{
+name = U;
+position = "{550, 1635}";
+}
+);
+components = (
+{
+name = LtnSmA;
+},
+{
+name = CombAcute;
+transform = "{1, 0, 0, 1, 1150, 0}";
+}
+);
+layerId = master02;
+width = 1205;
+}
+);
+unicode = 00E1;
+},
+{
+glyphname = LtnSmAGrave;
+layers = (
+{
+anchors = (
+{
+name = H;
+position = "{540, 0}";
+},
+{
+name = L;
+position = "{540, -100}";
+},
+{
+name = O;
+position = "{1125, 0}";
+},
+{
+name = R;
+position = "{1120, 1000}";
+},
+{
+name = U;
+position = "{540, 1635}";
+}
+);
+components = (
+{
+name = LtnSmA;
+},
+{
+name = CombGrave;
+transform = "{1, 0, 0, 1, 1090, 0}";
+}
+);
+layerId = master01;
+width = 1120;
+},
+{
+anchors = (
+{
+name = H;
+position = "{985, 0}";
+},
+{
+name = L;
+position = "{610, -100}";
+},
+{
+name = O;
+position = "{1185, 0}";
+},
+{
+name = R;
+position = "{1145, 1000}";
+},
+{
+name = U;
+position = "{650, 1635}";
+}
+);
+components = (
+{
+name = LtnSmA;
+},
+{
+name = CombGrave;
+transform = "{1, 0, 0, 1, 1240, 0}";
+}
+);
+layerId = master02;
+width = 1205;
+}
+);
+unicode = 00E0;
+},
+{
+glyphname = LtnSmACircum;
+layers = (
+{
+anchors = (
+{
+name = H;
+position = "{540, 0}";
+},
+{
+name = L;
+position = "{540, -100}";
+},
+{
+name = O;
+position = "{1125, 0}";
+},
+{
+name = R;
+position = "{1120, 1000}";
+},
+{
+name = U;
+position = "{540, 1635}";
+}
+);
+components = (
+{
+name = LtnSmA;
+},
+{
+name = CombCircum;
+transform = "{1, 0, 0, 1, 1110, 0}";
+}
+);
+layerId = master01;
+width = 1120;
+},
+{
+anchors = (
+{
+name = H;
+position = "{985, 0}";
+},
+{
+name = L;
+position = "{610, -100}";
+},
+{
+name = O;
+position = "{1185, 0}";
+},
+{
+name = R;
+position = "{1145, 1000}";
+},
+{
+name = U;
+position = "{602, 1635}";
+}
+);
+components = (
+{
+name = LtnSmA;
+},
+{
+name = CombCircum;
+transform = "{1, 0, 0, 1, 1190, 0}";
+}
+);
+layerId = master02;
+width = 1205;
+}
+);
+unicode = 00E2;
+},
+{
+glyphname = LtnSmADiaer;
+layers = (
+{
+anchors = (
+{
+name = H;
+position = "{540, 0}";
+},
+{
+name = L;
+position = "{540, -100}";
+},
+{
+name = O;
+position = "{1125, 0}";
+},
+{
+name = R;
+position = "{1120, 1000}";
+},
+{
+name = U;
+position = "{540, 1505}";
+}
+);
+components = (
+{
+name = LtnSmA;
+},
+{
+name = CombDiaer;
+transform = "{1, 0, 0, 1, 1110, 0}";
+}
+);
+layerId = master01;
+width = 1120;
+},
+{
+anchors = (
+{
+name = H;
+position = "{985, 0}";
+},
+{
+name = L;
+position = "{610, -100}";
+},
+{
+name = O;
+position = "{1185, 0}";
+},
+{
+name = R;
+position = "{1145, 1000}";
+},
+{
+name = U;
+position = "{610, 1585}";
+}
+);
+components = (
+{
+name = LtnSmA;
+},
+{
+name = CombDiaer;
+transform = "{1, 0, 0, 1, 1190, 0}";
+}
+);
+layerId = master02;
+width = 1205;
+}
+);
+unicode = 00E4;
+},
+{
+glyphname = LtnSmATilde;
+layers = (
+{
+anchors = (
+{
+name = H;
+position = "{540, 0}";
+},
+{
+name = L;
+position = "{540, -100}";
+},
+{
+name = O;
+position = "{1125, 0}";
+},
+{
+name = R;
+position = "{1120, 1000}";
+},
+{
+name = U;
+position = "{540, 1475}";
+}
+);
+components = (
+{
+name = LtnSmA;
+}
+);
+layerId = master01;
+paths = (
+{
+closed = 1;
+nodes = (
+"300 1254 OFFCURVE",
+"331 1290 OFFCURVE",
+"380 1290 CURVE SMOOTH",
+"417 1290 OFFCURVE",
+"458 1274 OFFCURVE",
+"535 1238 CURVE SMOOTH",
+"596 1210 OFFCURVE",
+"649 1190 OFFCURVE",
+"702 1190 CURVE SMOOTH",
+"825 1190 OFFCURVE",
+"900 1312 OFFCURVE",
+"900 1440 CURVE",
+"795 1440 LINE",
+"788 1394 OFFCURVE",
+"757 1355 OFFCURVE",
+"710 1355 CURVE SMOOTH",
+"668 1355 OFFCURVE",
+"627 1374 OFFCURVE",
+"555 1403 CURVE SMOOTH",
+"485 1431 OFFCURVE",
+"438 1455 OFFCURVE",
+"382 1455 CURVE SMOOTH",
+"263 1455 OFFCURVE",
+"190 1327 OFFCURVE",
+"190 1205 CURVE",
+"295 1205 LINE"
+);
+}
+);
+width = 1120;
+},
+{
+anchors = (
+{
+name = H;
+position = "{985, 0}";
+},
+{
+name = L;
+position = "{610, -100}";
+},
+{
+name = O;
+position = "{1185, 0}";
+},
+{
+name = R;
+position = "{1145, 1000}";
+},
+{
+name = U;
+position = "{610, 1490}";
+}
+);
+components = (
+{
+name = LtnSmA;
+},
+{
+name = CombTilde;
+transform = "{1, 0, 0, 1, 1190, 0}";
+}
+);
+layerId = master02;
+width = 1205;
+}
+);
+unicode = 00E3;
+},
+{
+glyphname = LtnSmARingAbv;
+layers = (
+{
+anchors = (
+{
+name = H;
+position = "{540, 0}";
+},
+{
+name = L;
+position = "{540, -100}";
+},
+{
+name = O;
+position = "{1125, 0}";
+},
+{
+name = R;
+position = "{1120, 1000}";
+},
+{
+name = U;
+position = "{542, 1635}";
+}
+);
+components = (
+{
+name = LtnSmA;
+}
+);
+layerId = master01;
+paths = (
+{
+closed = 1;
+nodes = (
+"642 1325 OFFCURVE",
+"602 1285 OFFCURVE",
+"542 1285 CURVE SMOOTH",
+"482 1285 OFFCURVE",
+"442 1325 OFFCURVE",
+"442 1385 CURVE SMOOTH",
+"442 1445 OFFCURVE",
+"482 1485 OFFCURVE",
+"542 1485 CURVE SMOOTH",
+"602 1485 OFFCURVE",
+"642 1445 OFFCURVE",
+"642 1385 CURVE SMOOTH"
+);
+},
+{
+closed = 1;
+nodes = (
+"327 1265 OFFCURVE",
+"422 1170 OFFCURVE",
+"542 1170 CURVE SMOOTH",
+"662 1170 OFFCURVE",
+"757 1265 OFFCURVE",
+"757 1385 CURVE SMOOTH",
+"757 1505 OFFCURVE",
+"662 1600 OFFCURVE",
+"542 1600 CURVE SMOOTH",
+"422 1600 OFFCURVE",
+"327 1505 OFFCURVE",
+"327 1385 CURVE SMOOTH"
+);
+}
+);
+width = 1120;
+},
+{
+anchors = (
+{
+name = H;
+position = "{985, 0}";
+},
+{
+name = L;
+position = "{610, -100}";
+},
+{
+name = O;
+position = "{1185, 0}";
+},
+{
+name = R;
+position = "{1145, 1000}";
+},
+{
+name = U;
+position = "{612, 1635}";
+}
+);
+components = (
+{
+name = LtnSmA;
+},
+{
+name = CombRingAbv;
+transform = "{1, 0, 0, 1, 1182, 0}";
+}
+);
+layerId = master02;
+width = 1205;
+}
+);
+unicode = 00E5;
+},
+{
+glyphname = DottedCirc;
+layers = (
+{
+anchors = (
+{
+name = H;
+position = "{553, 0}";
+},
+{
+name = L;
+position = "{553, -100}";
+},
+{
+name = O;
+position = "{810, 0}";
+},
+{
+name = U;
+position = "{553, 1000}";
+}
+);
+layerId = master01;
+paths = (
+{
+closed = 1;
+nodes = (
+"443 864 OFFCURVE",
+"423 885 OFFCURVE",
+"398 885 CURVE SMOOTH",
+"371 885 OFFCURVE",
+"348 861 OFFCURVE",
+"348 837 CURVE SMOOTH",
+"348 809 OFFCURVE",
+"372 789 OFFCURVE",
+"398 789 CURVE SMOOTH",
+"425 789 OFFCURVE",
+"443 812 OFFCURVE",
+"443 837 CURVE SMOOTH"
+);
+},
+{
+closed = 1;
+nodes = (
+"758 106 OFFCURVE",
+"736 127 OFFCURVE",
+"710 127 CURVE SMOOTH",
+"685 127 OFFCURVE",
+"662 103 OFFCURVE",
+"662 80 CURVE SMOOTH",
+"662 52 OFFCURVE",
+"686 31 OFFCURVE",
+"710 31 CURVE SMOOTH",
+"737 31 OFFCURVE",
+"758 55 OFFCURVE",
+"758 79 CURVE SMOOTH"
+);
+},
+{
+closed = 1;
+nodes = (
+"310 775 OFFCURVE",
+"288 796 OFFCURVE",
+"263 796 CURVE SMOOTH",
+"238 796 OFFCURVE",
+"215 774 OFFCURVE",
+"215 747 CURVE SMOOTH",
+"215 722 OFFCURVE",
+"236 701 OFFCURVE",
+"263 701 CURVE SMOOTH",
+"291 701 OFFCURVE",
+"310 720 OFFCURVE",
+"310 749 CURVE SMOOTH"
+);
+},
+{
+closed = 1;
+nodes = (
+"891 197 OFFCURVE",
+"870 215 OFFCURVE",
+"843 215 CURVE SMOOTH",
+"817 215 OFFCURVE",
+"795 194 OFFCURVE",
+"795 168 CURVE SMOOTH",
+"795 143 OFFCURVE",
+"816 121 OFFCURVE",
+"843 121 CURVE SMOOTH",
+"871 121 OFFCURVE",
+"891 143 OFFCURVE",
+"891 168 CURVE SMOOTH"
+);
+},
+{
+closed = 1;
+nodes = (
+"222 640 OFFCURVE",
+"199 663 OFFCURVE",
+"173 663 CURVE SMOOTH",
+"149 663 OFFCURVE",
+"126 642 OFFCURVE",
+"126 615 CURVE SMOOTH",
+"126 591 OFFCURVE",
+"145 567 OFFCURVE",
+"173 567 CURVE SMOOTH",
+"197 567 OFFCURVE",
+"222 587 OFFCURVE",
+"222 613 CURVE SMOOTH"
+);
+},
+{
+closed = 1;
+nodes = (
+"980 327 OFFCURVE",
+"957 348 OFFCURVE",
+"932 348 CURVE SMOOTH",
+"908 348 OFFCURVE",
+"884 332 OFFCURVE",
+"884 301 CURVE SMOOTH",
+"884 277 OFFCURVE",
+"902 254 OFFCURVE",
+"932 254 CURVE SMOOTH",
+"957 254 OFFCURVE",
+"980 274 OFFCURVE",
+"980 301 CURVE SMOOTH"
+);
+},
+{
+closed = 1;
+nodes = (
+"191 484 OFFCURVE",
+"168 505 OFFCURVE",
+"143 505 CURVE SMOOTH",
+"116 505 OFFCURVE",
+"95 484 OFFCURVE",
+"95 458 CURVE SMOOTH",
+"95 433 OFFCURVE",
+"115 410 OFFCURVE",
+"143 410 CURVE SMOOTH",
+"167 410 OFFCURVE",
+"191 432 OFFCURVE",
+"191 459 CURVE SMOOTH"
+);
+},
+{
+closed = 1;
+nodes = (
+"1011 484 OFFCURVE",
+"990 506 OFFCURVE",
+"964 506 CURVE SMOOTH",
+"940 506 OFFCURVE",
+"915 484 OFFCURVE",
+"915 457 CURVE SMOOTH",
+"915 433 OFFCURVE",
+"936 411 OFFCURVE",
+"964 411 CURVE SMOOTH",
+"990 411 OFFCURVE",
+"1011 433 OFFCURVE",
+"1011 458 CURVE SMOOTH"
+);
+},
+{
+closed = 1;
+nodes = (
+"222 328 OFFCURVE",
+"200 348 OFFCURVE",
+"174 348 CURVE SMOOTH",
+"147 348 OFFCURVE",
+"126 326 OFFCURVE",
+"126 302 CURVE SMOOTH",
+"126 275 OFFCURVE",
+"149 253 OFFCURVE",
+"174 253 CURVE SMOOTH",
+"201 253 OFFCURVE",
+"222 277 OFFCURVE",
+"222 302 CURVE SMOOTH"
+);
+},
+{
+closed = 1;
+nodes = (
+"980 642 OFFCURVE",
+"955 663 OFFCURVE",
+"931 663 CURVE SMOOTH",
+"904 663 OFFCURVE",
+"885 638 OFFCURVE",
+"885 614 CURVE SMOOTH",
+"885 588 OFFCURVE",
+"907 567 OFFCURVE",
+"931 567 CURVE SMOOTH",
+"959 567 OFFCURVE",
+"980 591 OFFCURVE",
+"980 615 CURVE SMOOTH"
+);
+},
+{
+closed = 1;
+nodes = (
+"310 195 OFFCURVE",
+"291 215 OFFCURVE",
+"263 215 CURVE SMOOTH",
+"238 215 OFFCURVE",
+"215 190 OFFCURVE",
+"215 168 CURVE SMOOTH",
+"215 143 OFFCURVE",
+"238 120 OFFCURVE",
+"263 120 CURVE SMOOTH",
+"289 120 OFFCURVE",
+"310 143 OFFCURVE",
+"310 168 CURVE SMOOTH"
+);
+},
+{
+closed = 1;
+nodes = (
+"890 774 OFFCURVE",
+"870 796 OFFCURVE",
+"843 796 CURVE SMOOTH",
+"815 796 OFFCURVE",
+"796 773 OFFCURVE",
+"796 748 CURVE SMOOTH",
+"796 724 OFFCURVE",
+"817 700 OFFCURVE",
+"843 700 CURVE SMOOTH",
+"869 700 OFFCURVE",
+"890 722 OFFCURVE",
+"890 748 CURVE SMOOTH"
+);
+},
+{
+closed = 1;
+nodes = (
+"444 102 OFFCURVE",
+"423 126 OFFCURVE",
+"396 126 CURVE SMOOTH",
+"370 126 OFFCURVE",
+"348 102 OFFCURVE",
+"348 78 CURVE SMOOTH",
+"348 55 OFFCURVE",
+"370 31 OFFCURVE",
+"396 31 CURVE SMOOTH",
+"420 31 OFFCURVE",
+"444 51 OFFCURVE",
+"444 78 CURVE SMOOTH"
+);
+},
+{
+closed = 1;
+nodes = (
+"758 861 OFFCURVE",
+"737 885 OFFCURVE",
+"710 885 CURVE SMOOTH",
+"684 885 OFFCURVE",
+"663 862 OFFCURVE",
+"663 838 CURVE SMOOTH",
+"663 814 OFFCURVE",
+"683 789 OFFCURVE",
+"710 789 CURVE SMOOTH",
+"734 789 OFFCURVE",
+"758 809 OFFCURVE",
+"758 836 CURVE SMOOTH"
+);
+},
+{
+closed = 1;
+nodes = (
+"601 73 OFFCURVE",
+"579 95 OFFCURVE",
+"553 95 CURVE SMOOTH",
+"527 95 OFFCURVE",
+"506 73 OFFCURVE",
+"506 47 CURVE SMOOTH",
+"506 21 OFFCURVE",
+"527 0 OFFCURVE",
+"553 0 CURVE SMOOTH",
+"579 0 OFFCURVE",
+"601 21 OFFCURVE",
+"601 47 CURVE SMOOTH"
+);
+},
+{
+closed = 1;
+nodes = (
+"601 894 OFFCURVE",
+"579 916 OFFCURVE",
+"553 916 CURVE SMOOTH",
+"527 916 OFFCURVE",
+"506 894 OFFCURVE",
+"506 868 CURVE SMOOTH",
+"506 842 OFFCURVE",
+"527 821 OFFCURVE",
+"553 821 CURVE SMOOTH",
+"579 821 OFFCURVE",
+"601 842 OFFCURVE",
+"601 868 CURVE SMOOTH"
+);
+}
+);
+width = 1106;
+},
+{
+anchors = (
+{
+name = H;
+position = "{553, 0}";
+},
+{
+name = L;
+position = "{553, -100}";
+},
+{
+name = O;
+position = "{810, 0}";
+},
+{
+name = U;
+position = "{553, 1000}";
+}
+);
+layerId = master02;
+paths = (
+{
+closed = 1;
+nodes = (
+"443 864 OFFCURVE",
+"423 885 OFFCURVE",
+"398 885 CURVE SMOOTH",
+"371 885 OFFCURVE",
+"348 861 OFFCURVE",
+"348 837 CURVE SMOOTH",
+"348 809 OFFCURVE",
+"372 789 OFFCURVE",
+"398 789 CURVE SMOOTH",
+"425 789 OFFCURVE",
+"443 812 OFFCURVE",
+"443 837 CURVE SMOOTH"
+);
+},
+{
+closed = 1;
+nodes = (
+"758 106 OFFCURVE",
+"736 127 OFFCURVE",
+"710 127 CURVE SMOOTH",
+"685 127 OFFCURVE",
+"662 103 OFFCURVE",
+"662 80 CURVE SMOOTH",
+"662 52 OFFCURVE",
+"686 31 OFFCURVE",
+"710 31 CURVE SMOOTH",
+"737 31 OFFCURVE",
+"758 55 OFFCURVE",
+"758 79 CURVE SMOOTH"
+);
+},
+{
+closed = 1;
+nodes = (
+"310 775 OFFCURVE",
+"288 796 OFFCURVE",
+"263 796 CURVE SMOOTH",
+"238 796 OFFCURVE",
+"215 774 OFFCURVE",
+"215 747 CURVE SMOOTH",
+"215 722 OFFCURVE",
+"236 701 OFFCURVE",
+"263 701 CURVE SMOOTH",
+"291 701 OFFCURVE",
+"310 720 OFFCURVE",
+"310 749 CURVE SMOOTH"
+);
+},
+{
+closed = 1;
+nodes = (
+"891 197 OFFCURVE",
+"870 215 OFFCURVE",
+"843 215 CURVE SMOOTH",
+"817 215 OFFCURVE",
+"795 194 OFFCURVE",
+"795 168 CURVE SMOOTH",
+"795 143 OFFCURVE",
+"816 121 OFFCURVE",
+"843 121 CURVE SMOOTH",
+"871 121 OFFCURVE",
+"891 143 OFFCURVE",
+"891 168 CURVE SMOOTH"
+);
+},
+{
+closed = 1;
+nodes = (
+"222 640 OFFCURVE",
+"199 663 OFFCURVE",
+"173 663 CURVE SMOOTH",
+"149 663 OFFCURVE",
+"126 642 OFFCURVE",
+"126 615 CURVE SMOOTH",
+"126 591 OFFCURVE",
+"145 567 OFFCURVE",
+"173 567 CURVE SMOOTH",
+"197 567 OFFCURVE",
+"222 587 OFFCURVE",
+"222 613 CURVE SMOOTH"
+);
+},
+{
+closed = 1;
+nodes = (
+"980 327 OFFCURVE",
+"957 348 OFFCURVE",
+"932 348 CURVE SMOOTH",
+"908 348 OFFCURVE",
+"884 332 OFFCURVE",
+"884 301 CURVE SMOOTH",
+"884 277 OFFCURVE",
+"902 254 OFFCURVE",
+"932 254 CURVE SMOOTH",
+"957 254 OFFCURVE",
+"980 274 OFFCURVE",
+"980 301 CURVE SMOOTH"
+);
+},
+{
+closed = 1;
+nodes = (
+"191 484 OFFCURVE",
+"168 505 OFFCURVE",
+"143 505 CURVE SMOOTH",
+"116 505 OFFCURVE",
+"95 484 OFFCURVE",
+"95 458 CURVE SMOOTH",
+"95 433 OFFCURVE",
+"115 410 OFFCURVE",
+"143 410 CURVE SMOOTH",
+"167 410 OFFCURVE",
+"191 432 OFFCURVE",
+"191 459 CURVE SMOOTH"
+);
+},
+{
+closed = 1;
+nodes = (
+"1011 484 OFFCURVE",
+"990 506 OFFCURVE",
+"964 506 CURVE SMOOTH",
+"940 506 OFFCURVE",
+"915 484 OFFCURVE",
+"915 457 CURVE SMOOTH",
+"915 433 OFFCURVE",
+"936 411 OFFCURVE",
+"964 411 CURVE SMOOTH",
+"990 411 OFFCURVE",
+"1011 433 OFFCURVE",
+"1011 458 CURVE SMOOTH"
+);
+},
+{
+closed = 1;
+nodes = (
+"222 328 OFFCURVE",
+"200 348 OFFCURVE",
+"174 348 CURVE SMOOTH",
+"147 348 OFFCURVE",
+"126 326 OFFCURVE",
+"126 302 CURVE SMOOTH",
+"126 275 OFFCURVE",
+"149 253 OFFCURVE",
+"174 253 CURVE SMOOTH",
+"201 253 OFFCURVE",
+"222 277 OFFCURVE",
+"222 302 CURVE SMOOTH"
+);
+},
+{
+closed = 1;
+nodes = (
+"980 642 OFFCURVE",
+"955 663 OFFCURVE",
+"931 663 CURVE SMOOTH",
+"904 663 OFFCURVE",
+"885 638 OFFCURVE",
+"885 614 CURVE SMOOTH",
+"885 588 OFFCURVE",
+"907 567 OFFCURVE",
+"931 567 CURVE SMOOTH",
+"959 567 OFFCURVE",
+"980 591 OFFCURVE",
+"980 615 CURVE SMOOTH"
+);
+},
+{
+closed = 1;
+nodes = (
+"310 195 OFFCURVE",
+"291 215 OFFCURVE",
+"263 215 CURVE SMOOTH",
+"238 215 OFFCURVE",
+"215 190 OFFCURVE",
+"215 168 CURVE SMOOTH",
+"215 143 OFFCURVE",
+"238 120 OFFCURVE",
+"263 120 CURVE SMOOTH",
+"289 120 OFFCURVE",
+"310 143 OFFCURVE",
+"310 168 CURVE SMOOTH"
+);
+},
+{
+closed = 1;
+nodes = (
+"890 774 OFFCURVE",
+"870 796 OFFCURVE",
+"843 796 CURVE SMOOTH",
+"815 796 OFFCURVE",
+"796 773 OFFCURVE",
+"796 748 CURVE SMOOTH",
+"796 724 OFFCURVE",
+"817 700 OFFCURVE",
+"843 700 CURVE SMOOTH",
+"869 700 OFFCURVE",
+"890 722 OFFCURVE",
+"890 748 CURVE SMOOTH"
+);
+},
+{
+closed = 1;
+nodes = (
+"444 102 OFFCURVE",
+"423 126 OFFCURVE",
+"396 126 CURVE SMOOTH",
+"370 126 OFFCURVE",
+"348 102 OFFCURVE",
+"348 78 CURVE SMOOTH",
+"348 55 OFFCURVE",
+"370 31 OFFCURVE",
+"396 31 CURVE SMOOTH",
+"420 31 OFFCURVE",
+"444 51 OFFCURVE",
+"444 78 CURVE SMOOTH"
+);
+},
+{
+closed = 1;
+nodes = (
+"758 861 OFFCURVE",
+"737 885 OFFCURVE",
+"710 885 CURVE SMOOTH",
+"684 885 OFFCURVE",
+"663 862 OFFCURVE",
+"663 838 CURVE SMOOTH",
+"663 814 OFFCURVE",
+"683 789 OFFCURVE",
+"710 789 CURVE SMOOTH",
+"734 789 OFFCURVE",
+"758 809 OFFCURVE",
+"758 836 CURVE SMOOTH"
+);
+},
+{
+closed = 1;
+nodes = (
+"601 73 OFFCURVE",
+"579 95 OFFCURVE",
+"553 95 CURVE SMOOTH",
+"527 95 OFFCURVE",
+"506 73 OFFCURVE",
+"506 47 CURVE SMOOTH",
+"506 21 OFFCURVE",
+"527 0 OFFCURVE",
+"553 0 CURVE SMOOTH",
+"579 0 OFFCURVE",
+"601 21 OFFCURVE",
+"601 47 CURVE SMOOTH"
+);
+},
+{
+closed = 1;
+nodes = (
+"601 894 OFFCURVE",
+"579 916 OFFCURVE",
+"553 916 CURVE SMOOTH",
+"527 916 OFFCURVE",
+"506 894 OFFCURVE",
+"506 868 CURVE SMOOTH",
+"506 842 OFFCURVE",
+"527 821 OFFCURVE",
+"553 821 CURVE SMOOTH",
+"579 821 OFFCURVE",
+"601 842 OFFCURVE",
+"601 868 CURVE SMOOTH"
+);
+}
+);
+width = 1106;
+}
+);
+unicode = 25CC;
+},
+{
+glyphname = Hyphen;
+layers = (
+{
+anchors = (
+{
+name = U;
+position = "{430, 1100}";
+}
+);
+layerId = master01;
+paths = (
+{
+closed = 1;
+nodes = (
+"780 555 LINE",
+"780 705 LINE",
+"80 705 LINE",
+"80 555 LINE"
+);
+}
+);
+width = 860;
+},
+{
+anchors = (
+{
+name = U;
+position = "{440, 1100}";
+}
+);
+layerId = master02;
+paths = (
+{
+closed = 1;
+nodes = (
+"810 525 LINE",
+"810 735 LINE",
+"70 735 LINE",
+"70 525 LINE"
+);
+}
+);
+width = 880;
+}
+);
+unicode = 2010;
+},
+{
+glyphname = NonBreakingHyphen;
+layers = (
+{
+anchors = (
+{
+name = U;
+position = "{430, 1100}";
+}
+);
+components = (
+{
+name = HyphenMinus;
+}
+);
+layerId = master01;
+width = 860;
+},
+{
+anchors = (
+{
+name = U;
+position = "{450, 1100}";
+}
+);
+components = (
+{
+name = HyphenMinus;
+}
+);
+layerId = master02;
+width = 895;
+}
+);
+unicode = 2011;
+},
+{
+glyphname = Hyphen_Soft;
+layers = (
+{
+anchors = (
+{
+name = U;
+position = "{430, 1100}";
+}
+);
+components = (
+{
+name = HyphenMinus;
+}
+);
+layerId = master01;
+width = 860;
+},
+{
+anchors = (
+{
+name = U;
+position = "{450, 1100}";
+}
+);
+components = (
+{
+name = HyphenMinus;
+}
+);
+layerId = master02;
+width = 895;
+}
+);
+unicode = 00AD;
+},
+{
+glyphname = CombAcute;
+layers = (
+{
+anchors = (
+{
+name = U;
+position = "{-570, 1635}";
+},
+{
+name = _U;
+position = "{-570, 1100}";
+}
+);
+layerId = master01;
+paths = (
+{
+closed = 1;
+nodes = (
+"-750 1170 LINE",
+"-590 1170 LINE",
+"-170 1600 LINE",
+"-400 1600 LINE"
+);
+}
+);
+width = 0;
+},
+{
+anchors = (
+{
+name = U;
+position = "{-600, 1635}";
+},
+{
+name = _U;
+position = "{-540, 1100}";
+}
+);
+layerId = master02;
+paths = (
+{
+closed = 1;
+nodes = (
+"-760 1200 LINE",
+"-520 1200 LINE",
+"-120 1600 LINE",
+"-470 1600 LINE"
+);
+}
+);
+width = 0;
+}
+);
+unicode = 0301;
+},
+{
+glyphname = CombGrave;
+layers = (
+{
+anchors = (
+{
+name = U;
+position = "{-550, 1635}";
+},
+{
+name = _U;
+position = "{-550, 1100}";
+}
+);
+layerId = master01;
+paths = (
+{
+closed = 1;
+nodes = (
+"-520 1170 LINE",
+"-360 1170 LINE",
+"-710 1600 LINE",
+"-940 1600 LINE"
+);
+}
+);
+width = 0;
+},
+{
+anchors = (
+{
+name = U;
+position = "{-590, 1635}";
+},
+{
+name = _U;
+position = "{-630, 1100}";
+}
+);
+layerId = master02;
+paths = (
+{
+closed = 1;
+nodes = (
+"-650 1200 LINE",
+"-410 1200 LINE",
+"-700 1600 LINE",
+"-1050 1600 LINE"
+);
+}
+);
+width = 0;
+}
+);
+unicode = 0300;
+},
+{
+glyphname = CombCircum;
+layers = (
+{
+anchors = (
+{
+name = U;
+position = "{-570, 1635}";
+},
+{
+name = _U;
+position = "{-570, 1100}";
+}
+);
+layerId = master01;
+paths = (
+{
+closed = 1;
+nodes = (
+"-570 1450 LINE",
+"-295 1170 LINE",
+"-145 1170 LINE",
+"-485 1600 LINE",
+"-655 1600 LINE",
+"-995 1170 LINE",
+"-845 1170 LINE"
+);
+}
+);
+width = 0;
+},
+{
+anchors = (
+{
+name = U;
+position = "{-588, 1635}";
+},
+{
+name = _U;
+position = "{-580, 1100}";
+}
+);
+layerId = master02;
+paths = (
+{
+closed = 1;
+nodes = (
+"-430 1600 LINE",
+"-730 1600 LINE",
+"-1020 1200 LINE",
+"-780 1200 LINE",
+"-580 1430 LINE",
+"-380 1200 LINE",
+"-140 1200 LINE"
+);
+}
+);
+width = 0;
+}
+);
+unicode = 0302;
+},
+{
+glyphname = CombTilde;
+layers = (
+{
+anchors = (
+{
+name = U;
+position = "{-575, 1475}";
+},
+{
+name = _U;
+position = "{-575, 1100}";
+}
+);
+layerId = master01;
+paths = (
+{
+closed = 1;
+nodes = (
+"-815 1254 OFFCURVE",
+"-784 1290 OFFCURVE",
+"-735 1290 CURVE SMOOTH",
+"-698 1290 OFFCURVE",
+"-657 1274 OFFCURVE",
+"-580 1238 CURVE SMOOTH",
+"-519 1210 OFFCURVE",
+"-466 1190 OFFCURVE",
+"-413 1190 CURVE SMOOTH",
+"-290 1190 OFFCURVE",
+"-215 1312 OFFCURVE",
+"-215 1440 CURVE",
+"-320 1440 LINE",
+"-327 1394 OFFCURVE",
+"-358 1355 OFFCURVE",
+"-405 1355 CURVE SMOOTH",
+"-447 1355 OFFCURVE",
+"-488 1374 OFFCURVE",
+"-560 1403 CURVE SMOOTH",
+"-630 1431 OFFCURVE",
+"-677 1455 OFFCURVE",
+"-733 1455 CURVE SMOOTH",
+"-852 1455 OFFCURVE",
+"-925 1327 OFFCURVE",
+"-925 1205 CURVE",
+"-820 1205 LINE"
+);
+}
+);
+width = 0;
+},
+{
+anchors = (
+{
+name = U;
+position = "{-580, 1490}";
+},
+{
+name = _U;
+position = "{-580, 1100}";
+}
+);
+layerId = master02;
+paths = (
+{
+closed = 1;
+nodes = (
+"-824 1232 OFFCURVE",
+"-803 1280 OFFCURVE",
+"-753 1280 CURVE SMOOTH",
+"-710 1280 OFFCURVE",
+"-653 1264 OFFCURVE",
+"-570 1229 CURVE SMOOTH",
+"-500 1199 OFFCURVE",
+"-448 1180 OFFCURVE",
+"-386 1180 CURVE SMOOTH",
+"-250 1180 OFFCURVE",
+"-155 1307 OFFCURVE",
+"-155 1480 CURVE",
+"-310 1480 LINE",
+"-318 1438 OFFCURVE",
+"-340 1390 OFFCURVE",
+"-387 1390 CURVE SMOOTH",
+"-435 1390 OFFCURVE",
+"-472 1408 OFFCURVE",
+"-550 1437 CURVE SMOOTH",
+"-629 1466 OFFCURVE",
+"-695 1490 OFFCURVE",
+"-760 1490 CURVE SMOOTH",
+"-892 1490 OFFCURVE",
+"-985 1349 OFFCURVE",
+"-985 1190 CURVE",
+"-830 1190 LINE"
+);
+}
+);
+width = 0;
+}
+);
+unicode = 0303;
+},
+{
+glyphname = CombDiaer;
+layers = (
+{
+anchors = (
+{
+name = U;
+position = "{-570, 1505}";
+},
+{
+name = _U;
+position = "{-570, 1100}";
+}
+);
+layerId = master01;
+paths = (
+{
+closed = 1;
+nodes = (
+"-490 1271 OFFCURVE",
+"-434 1210 OFFCURVE",
+"-360 1210 CURVE SMOOTH",
+"-285 1210 OFFCURVE",
+"-230 1271 OFFCURVE",
+"-230 1345 CURVE SMOOTH",
+"-230 1419 OFFCURVE",
+"-285 1480 OFFCURVE",
+"-360 1480 CURVE SMOOTH",
+"-434 1480 OFFCURVE",
+"-490 1419 OFFCURVE",
+"-490 1345 CURVE SMOOTH"
+);
+},
+{
+closed = 1;
+nodes = (
+"-910 1271 OFFCURVE",
+"-854 1210 OFFCURVE",
+"-780 1210 CURVE SMOOTH",
+"-705 1210 OFFCURVE",
+"-650 1271 OFFCURVE",
+"-650 1345 CURVE SMOOTH",
+"-650 1419 OFFCURVE",
+"-705 1480 OFFCURVE",
+"-780 1480 CURVE SMOOTH",
+"-854 1480 OFFCURVE",
+"-910 1419 OFFCURVE",
+"-910 1345 CURVE SMOOTH"
+);
+}
+);
+width = 0;
+},
+{
+anchors = (
+{
+name = U;
+position = "{-580, 1585}";
+},
+{
+name = _U;
+position = "{-580, 1100}";
+}
+);
+layerId = master02;
+paths = (
+{
+closed = 1;
+nodes = (
+"-510 1281 OFFCURVE",
+"-436 1210 OFFCURVE",
+"-335 1210 CURVE SMOOTH",
+"-233 1210 OFFCURVE",
+"-160 1281 OFFCURVE",
+"-160 1385 CURVE SMOOTH",
+"-160 1487 OFFCURVE",
+"-233 1560 OFFCURVE",
+"-335 1560 CURVE SMOOTH",
+"-436 1560 OFFCURVE",
+"-510 1487 OFFCURVE",
+"-510 1385 CURVE SMOOTH"
+);
+},
+{
+closed = 1;
+nodes = (
+"-1000 1281 OFFCURVE",
+"-926 1210 OFFCURVE",
+"-825 1210 CURVE SMOOTH",
+"-723 1210 OFFCURVE",
+"-650 1281 OFFCURVE",
+"-650 1385 CURVE SMOOTH",
+"-650 1487 OFFCURVE",
+"-723 1560 OFFCURVE",
+"-825 1560 CURVE SMOOTH",
+"-926 1560 OFFCURVE",
+"-1000 1487 OFFCURVE",
+"-1000 1385 CURVE SMOOTH"
+);
+}
+);
+width = 0;
+}
+);
+unicode = 0308;
+},
+{
+glyphname = CombRingAbv;
+layers = (
+{
+anchors = (
+{
+name = U;
+position = "{-570, 1635}";
+},
+{
+name = _U;
+position = "{-572, 1100}";
+}
+);
+layerId = master01;
+paths = (
+{
+closed = 1;
+nodes = (
+"-470 1325 OFFCURVE",
+"-510 1285 OFFCURVE",
+"-570 1285 CURVE SMOOTH",
+"-630 1285 OFFCURVE",
+"-670 1325 OFFCURVE",
+"-670 1385 CURVE SMOOTH",
+"-670 1445 OFFCURVE",
+"-630 1485 OFFCURVE",
+"-570 1485 CURVE SMOOTH",
+"-510 1485 OFFCURVE",
+"-470 1445 OFFCURVE",
+"-470 1385 CURVE SMOOTH"
+);
+},
+{
+closed = 1;
+nodes = (
+"-785 1265 OFFCURVE",
+"-690 1170 OFFCURVE",
+"-570 1170 CURVE SMOOTH",
+"-450 1170 OFFCURVE",
+"-355 1265 OFFCURVE",
+"-355 1385 CURVE SMOOTH",
+"-355 1505 OFFCURVE",
+"-450 1600 OFFCURVE",
+"-570 1600 CURVE SMOOTH",
+"-690 1600 OFFCURVE",
+"-785 1505 OFFCURVE",
+"-785 1385 CURVE SMOOTH"
+);
+}
+);
+width = 0;
+},
+{
+anchors = (
+{
+name = U;
+position = "{-570, 1635}";
+},
+{
+name = _U;
+position = "{-572, 1100}";
+}
+);
+layerId = master02;
+paths = (
+{
+closed = 1;
+nodes = (
+"-475 1345 OFFCURVE",
+"-515 1305 OFFCURVE",
+"-570 1305 CURVE SMOOTH",
+"-625 1305 OFFCURVE",
+"-665 1345 OFFCURVE",
+"-665 1400 CURVE SMOOTH",
+"-665 1455 OFFCURVE",
+"-625 1495 OFFCURVE",
+"-570 1495 CURVE SMOOTH",
+"-515 1495 OFFCURVE",
+"-475 1455 OFFCURVE",
+"-475 1400 CURVE SMOOTH"
+);
+},
+{
+closed = 1;
+nodes = (
+"-815 1260 OFFCURVE",
+"-710 1160 OFFCURVE",
+"-570 1160 CURVE SMOOTH",
+"-430 1160 OFFCURVE",
+"-325 1260 OFFCURVE",
+"-325 1400 CURVE SMOOTH",
+"-325 1540 OFFCURVE",
+"-430 1640 OFFCURVE",
+"-570 1640 CURVE SMOOTH",
+"-710 1640 OFFCURVE",
+"-815 1540 OFFCURVE",
+"-815 1400 CURVE SMOOTH"
+);
+}
+);
+width = 0;
+}
+);
+unicode = 030A;
+}
+);
+instances = (
+{
+interpolationWeight = 400;
+instanceInterpolations = {
+master01 = 1;
+};
+name = Regular;
+},
+{
+interpolationWeight = 700;
+instanceInterpolations = {
+master02 = 1;
+};
+name = Bold;
+}
+);
+manufacturer = "SIL International";
+manufacturerURL = "http://scripts.sil.org";
+unitsPerEm = 2048;
+versionMajor = 5;
+versionMinor = 550;
+}
diff --git a/tests/input/font-psf-test/source/glyph_data.csv b/tests/input/font-psf-test/source/glyph_data.csv
new file mode 100644
index 0000000..bf6d5e4
--- /dev/null
+++ b/tests/input/font-psf-test/source/glyph_data.csv
@@ -0,0 +1,115 @@
+glyph_name,ps_name,sort_final
+.notdef,.notdef,0
+.null,.null,1
+nonmarkingreturn,nonmarkingreturn,2
+Space,space,3
+ExclamationMrk,exclam,4
+QuotMrk,quotedbl,5
+NumSgn,numbersign,6
+DollarSgn,dollar,7
+PercentSgn,percent,8
+Ampersand,ampersand,9
+Apos,quotesingle,10
+LftParen,parenleft,11
+RtParen,parenright,12
+Asterisk,asterisk,13
+PlusSgn,plus,14
+Comma,comma,15
+HyphenMinus,hyphen,16
+FullStop,period,17
+Solidus,slash,18
+DigitZero,zero,19
+DigitOne,one,20
+DigitTwo,two,21
+DigitThree,three,22
+DigitFour,four,23
+DigitFive,five,24
+DigitSix,six,25
+DigitSeven,seven,26
+DigitEight,eight,27
+DigitNine,nine,28
+Colon,colon,29
+Semicolon,semicolon,30
+LTSgn,less,31
+EqSgn,equal,32
+GTSgn,greater,33
+QstnMrk,question,34
+AtSgn,at,35
+LtnCapA,A,36
+LtnCapA.alt,A,36
+LtnCapB,B,37
+LtnCapC,C,38
+LtnCapD,D,39
+LtnCapE,E,40
+LtnCapF,F,41
+LtnCapG,G,42
+LtnCapH,H,43
+LtnCapI,I,44
+LtnCapJ,J,45
+LtnCapK,K,46
+LtnCapL,L,47
+LtnCapM,M,48
+LtnCapN,N,49
+LtnCapO,O,50
+LtnCapP,P,51
+LtnCapQ,Q,52
+LtnCapR,R,53
+LtnCapS,S,54
+LtnCapT,T,55
+LtnCapU,U,56
+LtnCapV,V,57
+LtnCapW,W,58
+LtnCapX,X,59
+LtnCapY,Y,60
+LftSqrBrac,bracketleft,62
+ReverseSolidus,backslash,63
+RtSqrBrac,bracketright,64
+CircumAccent,asciicircum,65
+LowLine,underscore,66
+GraveAccent,grave,67
+LtnSmA,a,68
+LtnSmB,b,69
+LtnSmC,c,70
+LtnSmD,d,71
+LtnSmE,e,72
+LtnSmF,f,73
+LtnSmG,g,74
+LtnSmH,h,75
+LtnSmI,i,76
+LtnSmJ,j,77
+LtnSmK,k,78
+LtnSmL,l,79
+LtnSmM,m,80
+LtnSmN,n,81
+LtnSmO,o,82
+LtnSmP,p,83
+LtnSmQ,q,84
+LtnSmR,r,85
+LtnSmS,s,86
+LtnSmT,t,87
+LtnSmU,u,88
+LtnSmV,v,89
+LtnSmW,w,90
+LtnSmX,x,91
+LtnSmY,y,92
+LftCurlyBrac,braceleft,94
+VertLine,bar,95
+RtCurlyBrac,braceright,96
+Tilde,asciitilde,97
+LtnCapADiaer,Adieresis,98
+LtnSmAAcute,aacute,105
+LtnSmAGrave,agrave,106
+LtnSmACircum,acircumflex,107
+LtnSmADiaer,adieresis,108
+LtnSmATilde,atilde,109
+LtnSmARingAbv,aring,110
+DottedCirc,uni25CC,210
+Hyphen,uni2010,5670.1
+NonBreakingHyphen,uni2011,5670.2
+Hyphen_Soft,uni00AD,5680.6
+CombAcute,acutecomb,6000.5
+CombGrave,gravecomb,6050.5
+CombCircum,uni0302,6110.15
+CombTilde,tildecomb,6200.16
+CombDiaer,uni0308,6400.3
+CombRingAbv,uni030A,6450.4 \ No newline at end of file
diff --git a/tests/input/font-psf-test/source/logs/readme.txt b/tests/input/font-psf-test/source/logs/readme.txt
new file mode 100644
index 0000000..572dc6c
--- /dev/null
+++ b/tests/input/font-psf-test/source/logs/readme.txt
@@ -0,0 +1 @@
+This folder is for only temporary use for log files \ No newline at end of file
diff --git a/tests/input/font-psf-test/wscript b/tests/input/font-psf-test/wscript
new file mode 100644
index 0000000..3ad1580
--- /dev/null
+++ b/tests/input/font-psf-test/wscript
@@ -0,0 +1,27 @@
+#!/usr/bin/python
+# this is a smith configuration file
+
+# output folders use smith defaults and don't need to be set here
+
+# set the version control system for srcdist
+VCS = 'git'
+
+# set the font name, version, licensing and description
+APPNAME="PsfTest"
+
+DESC_SHORT = "Test font for UFO workflows"
+DESC_LONG = """
+Psf Test is a Latin script font family for testing UFO-based workflows.
+It is not intended to be generally useful as an installable font family, and
+may change significantly without notice. It will always be experimental and
+may not work as you expect!
+"""
+DESC_NAME = "PsfTest"
+
+getufoinfo('source/PsfTest-Regular.ufo')
+
+fontfamily=APPNAME
+for dspace in ('Roman', 'Italic'):
+ designspace('source/' + fontfamily + dspace + '.designspace',
+ target = "${DS:FILENAME_BASE}.ttf"
+ )
diff --git a/tests/input/glyph_data.csv b/tests/input/glyph_data.csv
new file mode 100644
index 0000000..33d1396
--- /dev/null
+++ b/tests/input/glyph_data.csv
@@ -0,0 +1,28 @@
+glyph_name,ps_name,sort_final
+AcuteAccent,acute,141
+Bullet,bullet,135
+BulletOperator,uni2219,5390.4
+CircumAccent,asciicircum,65
+CombAcute,acutecomb,6000.5
+DblAcuteAccent,hungarumlaut,223
+HyphenMinus,hyphen,16
+LtnCapAAcute,Aacute,201
+LtnCapEAcute,Eacute,144
+LtnCapIAcute,Iacute,204
+LtnCapOAcute,Oacute,208
+LtnCapUAcute,Uacute,212
+LtnCapYAcute,Yacute,3450.311
+LtnSmAAcute,aacute,105
+LtnSmEAcute,eacute,112
+LtnSmIAcute,iacute,116
+LtnSmOAcute,oacute,121
+LtnSmUAcute,uacute,126
+LtnSmYAcute,yacute,3400.311
+ModCircumAccent,circumflex,216
+nonmarkingreturn,nonmarkingreturn,2
+ReverseSolidus,backslash,63
+SupOne,onesuperior,4010.3
+SupThree,threesuperior,4030.3
+VulgFracOneHalf,onehalf,4120.1
+VulgFracOneQuarter,onequarter,4140.1
+VulgFracThreeQuarters,threequarters,4340.1
diff --git a/tests/input/issue65.feax b/tests/input/issue65.feax
new file mode 100644
index 0000000..25914c0
--- /dev/null
+++ b/tests/input/issue65.feax
@@ -0,0 +1,4 @@
+lookup ReorderInsert {
+ sub uni1C00' uni1C34 by uni1C34 uni1C00;
+} ReorderInsert;
+
diff --git a/tests/input/ligatures.feax b/tests/input/ligatures.feax
new file mode 100644
index 0000000..b4c8f43
--- /dev/null
+++ b/tests/input/ligatures.feax
@@ -0,0 +1,12 @@
+
+baseClass a <anchor 200 200> @TOP_1;
+baseClass fi <anchor 200 0> @BOTTOM_1;
+baseClass fi <anchor 400 0> @BOTTOM_2;
+markClass acute <anchor 0 200> @TOP;
+markClass circumflex <anchor 200 0> @BOTTOM;
+
+feature test {
+ pos ligature [a fi] @BOTTOM_1 mark @BOTTOM @TOP_1 mark @TOP
+ ligComponent @BOTTOM_2 mark @BOTTOM;
+} test;
+
diff --git a/tests/input/psfbuildcomp.txt b/tests/input/psfbuildcomp.txt
new file mode 100644
index 0000000..50a7f90
--- /dev/null
+++ b/tests/input/psfbuildcomp.txt
@@ -0,0 +1,30 @@
+# Copyright (c) 2008-2015, SIL International (http://www.sil.org) with Reserved Font Names 'Andika' and 'SIL'.
+# This Font Software is licensed under the SIL Open Font License, Version 1.1 (http://scripts.sil.org/OFL)
+# and is from the Andika Mtihani project (https://github.com/silnrsi/font-andika-mtihani)
+
+# Within each section, lines are in order of resulting Unicode value
+# Invented combinations are assigned Unicode values starting with E000
+# Version 2, DLR 2015-06-25 use & for joining two base glyphs
+#
+# Test & for joining two base glyphs
+LtnCapIJ = LtnCapI & LtnCapJ |0132
+LtnSmIJ = LtnSmI & LtnSmJ |0133
+#
+# Test base + diacritic@AP
+LtnCapCAcute = LtnSmC + CombAcute@U |0106
+LtnSmCAcute = LtnCapC + CombAcute@U |0107
+LtnCapCCircum = LtnCapC + CombCircum@U |0108
+LtnSmCCircum = LtnSmC + CombCircum@U |0109
+#
+# Test base + stacked diactrics (second diacritic attaching to first)
+LtnSmITildeGrave = LtnSmDotlessI + CombTilde@U + CombGrave@U | E000
+#
+#Test base + two diacritics attached to base (that is, second diacritic doesn't attach to first, but to base)
+LtnCapCAcuteCedilla = LtnCapC + CombCedilla@H + CombAcute@LtnCapC:U | 1E08
+LtnSmCAcuteCedilla = LtnSmC + CombCedilla@H + CombAcute@LtnSmC:U | 1E09
+#
+# Test ^200,200 (is this a realistic use of this function to add extra space on either side since the tilde is wider than the base character??)
+LtnSmITilde = LtnSmDotlessI + CombTilde@U ^200,200 | 0129
+#
+# Test three diacritics, ^200,200 and comment on end of line
+LtnSmITildeGraveCedilla = LtnSmDotlessI + CombCedilla@H + CombTilde@LtnSmDotlessI:U + CombGrave@U ^200,200 | E010 # i cedilla tilde grave
diff --git a/tests/input/psfcopyglyphs.csv b/tests/input/psfcopyglyphs.csv
new file mode 100644
index 0000000..eb456a6
--- /dev/null
+++ b/tests/input/psfcopyglyphs.csv
@@ -0,0 +1,7 @@
+glyph_name,newname,usv
+Ampersand,Ampergravel,3026
+Asterisk,Star,3027
+Colon,,3028
+LtnCapA.alt,,3029
+FullStop,Fullstart,
+
diff --git a/tests/input/psfdeleteglyphs.txt b/tests/input/psfdeleteglyphs.txt
new file mode 100644
index 0000000..0ab884c
--- /dev/null
+++ b/tests/input/psfdeleteglyphs.txt
@@ -0,0 +1,3 @@
+Apos
+Comma
+Missing
diff --git a/tests/input/psfgenftml.csv b/tests/input/psfgenftml.csv
new file mode 100644
index 0000000..9b48f28
--- /dev/null
+++ b/tests/input/psfgenftml.csv
@@ -0,0 +1,116 @@
+glyph_name,ps_name,sort_final,USV
+.notdef,.notdef,0,
+.null,.null,1,
+nonmarkingreturn,nonmarkingreturn,2,
+Space,space,3,0020
+ExclamationMrk,exclam,4,0021
+QuotMrk,quotedbl,5,0022
+NumSgn,numbersign,6,0023
+DollarSgn,dollar,7,0024
+PercentSgn,percent,8,0025
+Ampersand,ampersand,9,0026
+Apos,quotesingle,10,0027
+LftParen,parenleft,11,0028
+RtParen,parenright,12,0029
+Asterisk,asterisk,13,002A
+PlusSgn,plus,14,002B
+Comma,comma,15,002C
+HyphenMinus,hyphen,16,002D
+FullStop,period,17,002E
+Solidus,slash,18,002F
+DigitZero,zero,19,0030
+DigitOne,one,20,0031
+DigitTwo,two,21,0032
+DigitThree,three,22,0033
+DigitFour,four,23,0034
+DigitFive,five,24,0035
+DigitSix,six,25,0036
+DigitSeven,seven,26,0037
+DigitEight,eight,27,0038
+DigitNine,nine,28,0039
+Colon,colon,29,003A
+Semicolon,semicolon,30,003B
+LTSgn,less,31,003C
+EqSgn,equal,32,003D
+GTSgn,greater,33,003E
+QstnMrk,question,34,003F
+AtSgn,at,35,0040
+LtnCapA,A,36,0041
+LtnCapA.alt,A,36,
+LtnCapB,B,37,0042
+LtnCapC,C,38,0043
+LtnCapD,D,39,0044
+LtnCapE,E,40,0045
+LtnCapF,F,41,0046
+LtnCapG,G,42,0047
+LtnCapH,H,43,0048
+LtnCapI,I,44,0049
+LtnCapJ,J,45,004A
+LtnCapK,K,46,004B
+LtnCapL,L,47,004C
+LtnCapM,M,48,004D
+LtnCapN,N,49,004E
+LtnCapO,O,50,004F
+LtnCapP,P,51,0050
+LtnCapQ,Q,52,0051
+LtnCapR,R,53,0052
+LtnCapS,S,54,0053
+LtnCapT,T,55,0054
+LtnCapU,U,56,0055
+LtnCapV,V,57,0056
+LtnCapW,W,58,0057
+LtnCapX,X,59,0058
+LtnCapY,Y,60,0059
+LftSqrBrac,bracketleft,62,005B
+ReverseSolidus,backslash,63,005C
+RtSqrBrac,bracketright,64,005D
+CircumAccent,asciicircum,65,005E
+LowLine,underscore,66,005F
+GraveAccent,grave,67,0060
+LtnSmA,a,68,0061
+LtnSmB,b,69,0062
+LtnSmC,c,70,0063
+LtnSmD,d,71,0064
+LtnSmE,e,72,0065
+LtnSmF,f,73,0066
+LtnSmG,g,74,0067
+LtnSmH,h,75,0068
+LtnSmI,i,76,0069
+LtnSmJ,j,77,006A
+LtnSmK,k,78,006B
+LtnSmL,l,79,006C
+LtnSmM,m,80,006D
+LtnSmN,n,81,006E
+LtnSmO,o,82,006F
+LtnSmP,p,83,0070
+LtnSmQ,q,84,0071
+LtnSmR,r,85,0072
+LtnSmS,s,86,0073
+LtnSmT,t,87,0074
+LtnSmU,u,88,0075
+LtnSmV,v,89,0076
+LtnSmW,w,90,0077
+LtnSmX,x,91,0078
+LtnSmY,y,92,0079
+LftCurlyBrac,braceleft,94,007B
+VertLine,bar,95,007C
+RtCurlyBrac,braceright,96,007D
+Tilde,asciitilde,97,007E
+LtnCapADiaer,Adieresis,98,00C4
+LtnSmAAcute,aacute,105,00E1
+LtnSmAGrave,agrave,106,00E0
+LtnSmACircum,acircumflex,107,00E2
+LtnSmADiaer,adieresis,108,00E4
+LtnSmATilde,atilde,109,00E3
+LtnSmARingAbv,aring,110,00E5
+DottedCirc,uni25CC,210,25CC
+Hyphen,uni2010,5670.1,2010
+NonBreakingHyphen,uni2011,5670.2,2011
+Hyphen_Soft,uni00AD,5680.6,00AD
+CombAcute,acutecomb,6000.5,0301
+CombGrave,gravecomb,6050.5,0300
+CombCircum,uni0302,6110.15,0302
+CombTilde,tildecomb,6200.16,0303
+CombDiaer,uni0308,6400.3,0308
+CombRingAbv,uni030A,6450.4,030A
+,,,
diff --git a/tests/input/psfmakefea.feax b/tests/input/psfmakefea.feax
new file mode 100644
index 0000000..6de3523
--- /dev/null
+++ b/tests/input/psfmakefea.feax
@@ -0,0 +1,8 @@
+@base = [A a];
+@basex = [A.x a.x];
+@basey = [A.y a.y];
+
+feature alt {
+ sub @base from [@basex @basey];
+} alt;
+
diff --git a/tests/input/psfmakefea_2.feax b/tests/input/psfmakefea_2.feax
new file mode 100644
index 0000000..90fd24e
--- /dev/null
+++ b/tests/input/psfmakefea_2.feax
@@ -0,0 +1,11 @@
+def func(x, y) {
+ return x + y
+} func;
+
+feature test {
+do for a = [a1 a2 a3];
+ let b = "g"+str(func(int(a[1]), 4));
+ {
+ @c = [$b];
+ }
+} test;
diff --git a/tests/input/psfmakefea_3.feax b/tests/input/psfmakefea_3.feax
new file mode 100644
index 0000000..aef5249
--- /dev/null
+++ b/tests/input/psfmakefea_3.feax
@@ -0,0 +1,20 @@
+@Tooth2w3wBelowMedi = [toothedbelow2w3w.medi];
+@Tooth2w2wBelowMedi = [toothedbelow2w2w.medi];
+@Tooth3wBelowMedi = [toothedbelow3w.medi];
+@Tooth2wBelowMedi = [toothedbelow2w.medi];
+
+lookup _Insert2Kashidas {
+ sub @Tooth2w2wBelowMedi by kashida kashida @Tooth2w2wBelowMedi;
+} _Insert2Kashidas;
+
+lookup _InsertKashida {
+ sub @Tooth2w2wBelowMedi by kashida @Tooth2w2wBelowMedi;
+} _InsertKashida;
+
+lookup ToothKashidasMM {
+ lookupflag IgnoreMarks;
+ sub @Tooth2w3wBelowMedi' lookup _Insert2Kashidas @Tooth3wBelowMedi;
+ifinfo(styleName, "Bold") {
+ sub @Tooth2wBelowMedi' lookup _InsertKashida @Tooth2wBelowMedi; # BOLD
+}
+} ToothKashidasMM;
diff --git a/tests/input/psfmakewoffmetadata.txt b/tests/input/psfmakewoffmetadata.txt
new file mode 100644
index 0000000..18e41b2
--- /dev/null
+++ b/tests/input/psfmakewoffmetadata.txt
@@ -0,0 +1,40 @@
+FONTLOG
+Pysilfont Test font
+===================
+
+This file provides detailed information on the Pysilfont Test font
+
+It is meant purely for code testing purposes and is not intended to be usable.
+
+For copyright and licensing information - including any Reserved Font
+Names - see OFL.txt.
+
+For practical information about using, modifying and redistributing this
+font see OFL-FAQ.txt.
+
+
+Basic Font Information
+----------------------
+
+There are intentional problems with the UFO!
+
+Features
+--------
+
+What features?
+
+Acknowledgements
+-----------------
+(There needs to be something in here to test psfmakewoffmetadata!)
+
+N: Victor Gaultney
+E: victor_gaultney@sil.org
+W: http://www.sil.org/~gaultney/
+D: Original Designer
+
+N: SIL font engineers
+E: http://scripts.sil.org/support
+W: http://scripts.sil.org/
+D: Graphite, OpenType, and TypeTuner code, and build support
+
+The Pysilfont test font is maintained by SIL International.
diff --git a/tests/input/psfrenameglyphs.csv b/tests/input/psfrenameglyphs.csv
new file mode 100644
index 0000000..2e1334d
--- /dev/null
+++ b/tests/input/psfrenameglyphs.csv
@@ -0,0 +1,3 @@
+Apos,Bpos
+Asterisk,Star
+Commer,NotThere
diff --git a/tests/input/psfsetassocfeat.csv b/tests/input/psfsetassocfeat.csv
new file mode 100644
index 0000000..21660ee
--- /dev/null
+++ b/tests/input/psfsetassocfeat.csv
@@ -0,0 +1,2 @@
+LtnCapA,fea1
+LtnCapU,fea2
diff --git a/tests/input/psfsetassocuids.csv b/tests/input/psfsetassocuids.csv
new file mode 100644
index 0000000..1351af7
--- /dev/null
+++ b/tests/input/psfsetassocuids.csv
@@ -0,0 +1,3 @@
+SupThree,00B4
+LtnCapU,00fA
+CircumAccent,003E
diff --git a/tests/input/psfsetunicodes.csv b/tests/input/psfsetunicodes.csv
new file mode 100644
index 0000000..9b4612b
--- /dev/null
+++ b/tests/input/psfsetunicodes.csv
@@ -0,0 +1,4 @@
+Ampersand,002A
+Asterisk,0026
+Notthere,003A
+Hyphen,002C
diff --git a/tests/input/psfsubset.csv b/tests/input/psfsubset.csv
new file mode 100644
index 0000000..6ef4b90
--- /dev/null
+++ b/tests/input/psfsubset.csv
@@ -0,0 +1,73 @@
+.notdef
+.null
+Ampersand
+Apos
+Asterisk
+AtSgn
+CircumAccent
+Colon
+CombAcute
+CombCircum
+CombDiaer
+CombGrave
+CombRingAbv
+CombTilde
+Comma
+DollarSgn
+DottedCirc
+EqSgn
+ExclamationMrk
+FullStop
+GraveAccent
+GTSgn
+Hyphen_Soft
+Hyphen
+HyphenMinus
+LftCurlyBrac
+LftParen
+LftSqrBrac
+LowLine
+LtnCapA
+LtnCapADiaer
+LtnCapB
+LtnCapC
+LtnCapD
+LtnCapE
+LtnCapF
+LtnCapG
+LtnCapH
+LtnCapI
+LtnCapJ
+LtnCapK
+LtnCapL
+LtnCapM
+LtnCapN
+LtnCapO
+LtnCapP
+LtnCapQ
+LtnCapR
+LtnCapS
+LtnCapT
+LtnCapU
+LtnCapV
+LtnCapW
+LtnCapX
+LtnCapY
+LtnSmA
+LTSgn
+NonBreakingHyphen
+nonmarkingreturn
+NumSgn
+PercentSgn
+PlusSgn
+QstnMrk
+QuotMrk
+ReverseSolidus
+RtCurlyBrac
+RtParen
+RtSqrBrac
+Semicolon
+Solidus
+Space
+Tilde
+VertLine
diff --git a/tests/localufos.csv.sample b/tests/localufos.csv.sample
new file mode 100644
index 0000000..3f63b3f
--- /dev/null
+++ b/tests/localufos.csv.sample
@@ -0,0 +1,6 @@
+# Local fonts to be used with pysilfont tests
+# File format: font-path,type
+# where type is "copy" or "insitu". Use copy for fonts likely to be updated during development
+/home/david/src/font-andika-mtihani/source/AndikaMtihani-Regular.ufo,copy
+/home/david/src/font-andika/source/Andika-Regular.ufo,insitu
+
diff --git a/tests/reference/fontparts/psfbuildcompgc.lg b/tests/reference/fontparts/psfbuildcompgc.lg
new file mode 100644
index 0000000..601efdc
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.lg
@@ -0,0 +1,2 @@
+2020-07-28 14:48:16 Progress: Running: psfbuildcompgc tests/input/font-psf-test/source/PsfTest-Regular.ufo -i tests/input/psfbuildcomp.txt -l local/testresults/fontparts/psfbuildcompgc.log
+2020-07-28 14:48:16 Progress: Opening file for input: tests/input/psfbuildcomp.txt
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/fontinfo.plist b/tests/reference/fontparts/psfbuildcompgc.ufo/fontinfo.plist
new file mode 100644
index 0000000..f68e491
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/fontinfo.plist
@@ -0,0 +1,266 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+ <dict>
+ <key>ascender</key>
+ <integer>2100</integer>
+ <key>capHeight</key>
+ <real>1485.0</real>
+ <key>copyright</key>
+ <string>Copyright (c) 2004-2021 SIL International</string>
+ <key>descender</key>
+ <integer>-550</integer>
+ <key>familyName</key>
+ <string>Psf Test</string>
+ <key>guidelines</key>
+ <array>
+ <dict>
+ <key>angle</key>
+ <integer>0</integer>
+ <key>x</key>
+ <integer>1084</integer>
+ <key>y</key>
+ <integer>1040</integer>
+ </dict>
+ <dict>
+ <key>y</key>
+ <integer>1250</integer>
+ </dict>
+ </array>
+ <key>note</key>
+ <string>Test note
+Second line
+
+Third line
+</string>
+ <key>openTypeHeadCreated</key>
+ <string>2021/01/01 11:00:00</string>
+ <key>openTypeHheaAscender</key>
+ <integer>2100</integer>
+ <key>openTypeHheaDescender</key>
+ <integer>-550</integer>
+ <key>openTypeHheaLineGap</key>
+ <integer>0</integer>
+ <key>openTypeNameDescription</key>
+ <string>Copyright (c) 2004-2021 SIL International</string>
+ <key>openTypeNameDesigner</key>
+ <string>Victor Gaultney, Annie Olsen, Julie Remington, Don Collingsworth, Eric Hays, Becca Hirsbrunner</string>
+ <key>openTypeNameDesignerURL</key>
+ <string>http://scripts.sil.org/</string>
+ <key>openTypeNameLicense</key>
+ <string>Copyright (c) 2004-2021 SIL International (http://www.sil.org/) with Reserved Font Names "Andika" and "SIL".
+
+This Font Software is licensed under the SIL Open Font License, Version 1.1. This license is copied below, and is also available with a FAQ at: http://scripts.sil.org/OFL
+
+
+-----------------------------------------------------------
+SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
+-----------------------------------------------------------
+
+PREAMBLE
+The goals of the Open Font License (OFL) are to stimulate worldwide development of collaborative font projects, to support the font creation efforts of academic and linguistic communities, and to provide a free and open framework in which fonts may be shared and improved in partnership with others.
+
+The OFL allows the licensed fonts to be used, studied, modified and redistributed freely as long as they are not sold by themselves. The fonts, including any derivative works, can be bundled, embedded, redistributed and/or sold with any software provided that any reserved names are not used by derivative works. The fonts and derivatives, however, cannot be released under any other type of license. The requirement for fonts to remain under this license does not apply to any document created using the fonts or their derivatives.
+
+DEFINITIONS
+"Font Software" refers to the set of files released by the Copyright Holder(s) under this license and clearly marked as such. This may include source files, build scripts and documentation.
+
+"Reserved Font Name" refers to any names specified as such after the copyright statement(s).
+
+"Original Version" refers to the collection of Font Software components as distributed by the Copyright Holder(s).
+
+"Modified Version" refers to any derivative made by adding to, deleting, or substituting -- in part or in whole -- any of the components of the Original Version, by changing formats or by porting the Font Software to a new environment.
+
+"Author" refers to any designer, engineer, programmer, technical writer or other person who contributed to the Font Software.
+
+PERMISSION &amp; CONDITIONS
+Permission is hereby granted, free of charge, to any person obtaining a copy of the Font Software, to use, study, copy, merge, embed, modify, redistribute, and sell modified and unmodified copies of the Font Software, subject to the following conditions:
+
+1) Neither the Font Software nor any of its individual components, in Original or Modified Versions, may be sold by itself.
+
+2) Original or Modified Versions of the Font Software may be bundled, redistributed and/or sold with any software, provided that each copy contains the above copyright notice and this license. These can be included either as stand-alone text files, human-readable headers or in the appropriate machine-readable metadata fields within text or binary files as long as those fields can be easily viewed by the user.
+
+3) No Modified Version of the Font Software may use the Reserved Font Name(s) unless explicit written permission is granted by the corresponding Copyright Holder. This restriction only applies to the primary font name as presented to the users.
+
+4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font Software shall not be used to promote, endorse or advertise any Modified Version, except to acknowledge the contribution(s) of the Copyright Holder(s) and the Author(s) or with their explicit written permission.
+
+5) The Font Software, modified or unmodified, in part or in whole, must be distributed entirely under this license, and must not be distributed under any other license. The requirement for fonts to remain under this license does not apply to any document created using the Font Software.
+
+TERMINATION
+This license becomes null and void if any of the above conditions are not met.
+
+DISCLAIMER
+THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM OTHER DEALINGS IN THE FONT SOFTWARE.</string>
+ <key>openTypeNameLicenseURL</key>
+ <string>http://scripts.sil.org/OFL</string>
+ <key>openTypeNameManufacturer</key>
+ <string>SIL International</string>
+ <key>openTypeNameManufacturerURL</key>
+ <string>http://scripts.sil.org</string>
+ <key>openTypeNamePreferredFamilyName</key>
+ <string>Psf Test</string>
+ <key>openTypeNamePreferredSubfamilyName</key>
+ <string>Regular</string>
+ <key>openTypeNameUniqueID</key>
+ <string>SIL International: Psf Test Regular: 2022</string>
+ <key>openTypeNameVersion</key>
+ <string>Version 5.550</string>
+ <key>openTypeOS2CodePageRanges</key>
+ <array>
+ <integer>0</integer>
+ <integer>1</integer>
+ <integer>2</integer>
+ <integer>4</integer>
+ <integer>7</integer>
+ <integer>8</integer>
+ </array>
+ <key>openTypeOS2FamilyClass</key>
+ <array>
+ <integer>0</integer>
+ <integer>0</integer>
+ </array>
+ <key>openTypeOS2Panose</key>
+ <array>
+ <integer>2</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ </array>
+ <key>openTypeOS2StrikeoutPosition</key>
+ <integer>700</integer>
+ <key>openTypeOS2StrikeoutSize</key>
+ <integer>100</integer>
+ <key>openTypeOS2SubscriptXOffset</key>
+ <integer>0</integer>
+ <key>openTypeOS2SubscriptXSize</key>
+ <integer>1433</integer>
+ <key>openTypeOS2SubscriptYOffset</key>
+ <integer>286</integer>
+ <key>openTypeOS2SubscriptYSize</key>
+ <integer>1331</integer>
+ <key>openTypeOS2SuperscriptXOffset</key>
+ <integer>0</integer>
+ <key>openTypeOS2SuperscriptXSize</key>
+ <integer>1433</integer>
+ <key>openTypeOS2SuperscriptYOffset</key>
+ <integer>976</integer>
+ <key>openTypeOS2SuperscriptYSize</key>
+ <integer>1331</integer>
+ <key>openTypeOS2Type</key>
+ <array/>
+ <key>openTypeOS2TypoAscender</key>
+ <integer>2100</integer>
+ <key>openTypeOS2TypoDescender</key>
+ <integer>-550</integer>
+ <key>openTypeOS2TypoLineGap</key>
+ <integer>0</integer>
+ <key>openTypeOS2UnicodeRanges</key>
+ <array>
+ <integer>0</integer>
+ <integer>1</integer>
+ <integer>6</integer>
+ <integer>7</integer>
+ <integer>31</integer>
+ <integer>33</integer>
+ <integer>35</integer>
+ <integer>36</integer>
+ <integer>37</integer>
+ <integer>38</integer>
+ <integer>39</integer>
+ <integer>40</integer>
+ <integer>45</integer>
+ <integer>46</integer>
+ <integer>47</integer>
+ <integer>57</integer>
+ <integer>60</integer>
+ <integer>62</integer>
+ <integer>64</integer>
+ <integer>67</integer>
+ <integer>69</integer>
+ <integer>89</integer>
+ </array>
+ <key>openTypeOS2VendorID</key>
+ <string>SIL</string>
+ <key>openTypeOS2WeightClass</key>
+ <integer>400</integer>
+ <key>openTypeOS2WidthClass</key>
+ <integer>5</integer>
+ <key>openTypeOS2WinAscent</key>
+ <integer>2100</integer>
+ <key>openTypeOS2WinDescent</key>
+ <integer>550</integer>
+ <key>postscriptBlueValues</key>
+ <array>
+ <integer>-490</integer>
+ <integer>-490</integer>
+ <integer>-25</integer>
+ <integer>0</integer>
+ <integer>1020</integer>
+ <integer>1040</integer>
+ <integer>1455</integer>
+ <integer>1485</integer>
+ <integer>1600</integer>
+ <integer>1620</integer>
+ </array>
+ <key>postscriptFamilyBlues</key>
+ <array/>
+ <key>postscriptFamilyOtherBlues</key>
+ <array/>
+ <key>postscriptFontName</key>
+ <string>PsfTest-Regular</string>
+ <key>postscriptFullName</key>
+ <string>Psf Test Regular</string>
+ <key>postscriptOtherBlues</key>
+ <array/>
+ <key>postscriptStemSnapH</key>
+ <array>
+ <integer>140</integer>
+ <integer>145</integer>
+ <integer>150</integer>
+ <integer>155</integer>
+ <integer>160</integer>
+ <integer>165</integer>
+ <integer>170</integer>
+ <integer>175</integer>
+ <integer>185</integer>
+ <integer>270</integer>
+ </array>
+ <key>postscriptStemSnapV</key>
+ <array>
+ <integer>165</integer>
+ <integer>180</integer>
+ <integer>185</integer>
+ <integer>190</integer>
+ <integer>195</integer>
+ <integer>200</integer>
+ <integer>205</integer>
+ <integer>270</integer>
+ </array>
+ <key>postscriptUnderlinePosition</key>
+ <integer>-110</integer>
+ <key>postscriptUnderlineThickness</key>
+ <integer>80</integer>
+ <key>styleMapFamilyName</key>
+ <string>Psf Test</string>
+ <key>styleMapStyleName</key>
+ <string>regular</string>
+ <key>styleName</key>
+ <string>Regular</string>
+ <key>trademark</key>
+ <string>Andika is a trademark of SIL International.</string>
+ <key>unitsPerEm</key>
+ <integer>2048</integer>
+ <key>versionMajor</key>
+ <integer>5</integer>
+ <key>versionMinor</key>
+ <integer>550</integer>
+ <key>xHeight</key>
+ <integer>1040</integer>
+ </dict>
+</plist>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/A_mpersand.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/A_mpersand.glif
new file mode 100644
index 0000000..921c81b
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/A_mpersand.glif
@@ -0,0 +1,61 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="Ampersand" format="2">
+ <advance width="1222"/>
+ <unicode hex="0026"/>
+ <outline>
+ <contour>
+ <point x="490" y="1485" type="curve" smooth="yes"/>
+ <point x="331" y="1485"/>
+ <point x="155" y="1412"/>
+ <point x="155" y="1190" type="curve" smooth="yes"/>
+ <point x="155" y="1010"/>
+ <point x="362" y="815"/>
+ <point x="535" y="570" type="curve" smooth="yes"/>
+ <point x="794" y="202"/>
+ <point x="973" y="-25"/>
+ <point x="1025" y="-25" type="curve" smooth="yes"/>
+ <point x="1060" y="-25"/>
+ <point x="1138" y="38"/>
+ <point x="1175" y="70" type="curve"/>
+ <point x="1080" y="110"/>
+ <point x="914" y="297"/>
+ <point x="650" y="680" type="curve" smooth="yes"/>
+ <point x="494" y="906"/>
+ <point x="315" y="1075"/>
+ <point x="315" y="1200" type="curve" smooth="yes"/>
+ <point x="315" y="1291"/>
+ <point x="398" y="1350"/>
+ <point x="475" y="1350" type="curve" smooth="yes"/>
+ <point x="555" y="1350"/>
+ <point x="630" y="1294"/>
+ <point x="630" y="1205" type="curve" smooth="yes"/>
+ <point x="630" y="1116"/>
+ <point x="523" y="1001"/>
+ <point x="350" y="840" type="curve" smooth="yes"/>
+ <point x="146" y="651"/>
+ <point x="55" y="527"/>
+ <point x="55" y="375" type="curve" smooth="yes"/>
+ <point x="55" y="151"/>
+ <point x="217" y="-25"/>
+ <point x="440" y="-25" type="curve" smooth="yes"/>
+ <point x="713" y="-25"/>
+ <point x="1002" y="274"/>
+ <point x="1080" y="435" type="curve"/>
+ <point x="975" y="570" type="line"/>
+ <point x="911" y="403"/>
+ <point x="630" y="150"/>
+ <point x="455" y="150" type="curve" smooth="yes"/>
+ <point x="310" y="150"/>
+ <point x="230" y="267"/>
+ <point x="230" y="380" type="curve" smooth="yes"/>
+ <point x="230" y="490"/>
+ <point x="296" y="587"/>
+ <point x="470" y="740" type="curve" smooth="yes"/>
+ <point x="651" y="899"/>
+ <point x="790" y="1068"/>
+ <point x="790" y="1200" type="curve" smooth="yes"/>
+ <point x="790" y="1382"/>
+ <point x="642" y="1485"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/A_pos.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/A_pos.glif
new file mode 100644
index 0000000..c50d8b5
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/A_pos.glif
@@ -0,0 +1,17 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="Apos" format="2">
+ <advance width="605"/>
+ <unicode hex="0027"/>
+ <outline>
+ <contour>
+ <point x="365" y="1045" type="line"/>
+ <point x="370" y="1186"/>
+ <point x="376" y="1339"/>
+ <point x="405" y="1585" type="curve"/>
+ <point x="200" y="1585" type="line"/>
+ <point x="231" y="1339"/>
+ <point x="236" y="1186"/>
+ <point x="240" y="1045" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/A_sterisk.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/A_sterisk.glif
new file mode 100644
index 0000000..b65fff8
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/A_sterisk.glif
@@ -0,0 +1,51 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="Asterisk" format="2">
+ <advance width="1028"/>
+ <unicode hex="002A"/>
+ <outline>
+ <contour>
+ <point x="560" y="1600" type="curve"/>
+ <point x="415" y="1600" type="line"/>
+ <point x="434" y="1467"/>
+ <point x="447" y="1387"/>
+ <point x="450" y="1300" type="curve"/>
+ <point x="376" y="1344"/>
+ <point x="309" y="1387"/>
+ <point x="200" y="1465" type="curve"/>
+ <point x="125" y="1340" type="line"/>
+ <point x="250" y="1290"/>
+ <point x="327" y="1261"/>
+ <point x="405" y="1220" type="curve"/>
+ <point x="329" y="1177"/>
+ <point x="256" y="1140"/>
+ <point x="135" y="1085" type="curve"/>
+ <point x="205" y="960" type="line"/>
+ <point x="310" y="1042"/>
+ <point x="377" y="1094"/>
+ <point x="450" y="1140" type="curve"/>
+ <point x="448" y="1055"/>
+ <point x="442" y="973"/>
+ <point x="430" y="840" type="curve"/>
+ <point x="570" y="840" type="line"/>
+ <point x="550" y="973"/>
+ <point x="544" y="1052"/>
+ <point x="540" y="1140" type="curve"/>
+ <point x="614" y="1095"/>
+ <point x="681" y="1053"/>
+ <point x="790" y="975" type="curve"/>
+ <point x="865" y="1100" type="line"/>
+ <point x="739" y="1149"/>
+ <point x="663" y="1179"/>
+ <point x="585" y="1220" type="curve"/>
+ <point x="661" y="1261"/>
+ <point x="733" y="1299"/>
+ <point x="855" y="1355" type="curve"/>
+ <point x="785" y="1480" type="line"/>
+ <point x="680" y="1396"/>
+ <point x="614" y="1348"/>
+ <point x="540" y="1300" type="curve"/>
+ <point x="541" y="1387"/>
+ <point x="547" y="1467"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/A_tS_gn.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/A_tS_gn.glif
new file mode 100644
index 0000000..aa6dc56
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/A_tS_gn.glif
@@ -0,0 +1,80 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="AtSgn" format="2">
+ <advance width="1702"/>
+ <unicode hex="0040"/>
+ <outline>
+ <contour>
+ <point x="1605" y="700" type="curve" smooth="yes"/>
+ <point x="1605" y="1127"/>
+ <point x="1307" y="1405"/>
+ <point x="880" y="1405" type="curve" smooth="yes"/>
+ <point x="465" y="1405"/>
+ <point x="95" y="1126"/>
+ <point x="95" y="575" type="curve" smooth="yes"/>
+ <point x="95" y="48"/>
+ <point x="464" y="-235"/>
+ <point x="855" y="-235" type="curve" smooth="yes"/>
+ <point x="990" y="-235"/>
+ <point x="1150" y="-188"/>
+ <point x="1250" y="-118" type="curve"/>
+ <point x="1145" y="-10" type="line"/>
+ <point x="1058" y="-70"/>
+ <point x="963" y="-95"/>
+ <point x="870" y="-95" type="curve" smooth="yes"/>
+ <point x="523" y="-95"/>
+ <point x="240" y="174"/>
+ <point x="240" y="605" type="curve" smooth="yes"/>
+ <point x="240" y="1003"/>
+ <point x="542" y="1270"/>
+ <point x="870" y="1270" type="curve" smooth="yes"/>
+ <point x="1263" y="1270"/>
+ <point x="1465" y="1002"/>
+ <point x="1465" y="670" type="curve" smooth="yes"/>
+ <point x="1465" y="432"/>
+ <point x="1348" y="315"/>
+ <point x="1280" y="315" type="curve" smooth="yes"/>
+ <point x="1221" y="315"/>
+ <point x="1175" y="410"/>
+ <point x="1175" y="630" type="curve" smooth="yes"/>
+ <point x="1175" y="980" type="line"/>
+ <point x="1088" y="1015"/>
+ <point x="961" y="1040"/>
+ <point x="880" y="1040" type="curve" smooth="yes"/>
+ <point x="716" y="1040"/>
+ <point x="613" y="971"/>
+ <point x="530" y="835" type="curve" smooth="yes"/>
+ <point x="483" y="756"/>
+ <point x="455" y="653"/>
+ <point x="455" y="530" type="curve" smooth="yes"/>
+ <point x="455" y="294"/>
+ <point x="601" y="183"/>
+ <point x="735" y="183" type="curve" smooth="yes"/>
+ <point x="852" y="183"/>
+ <point x="988" y="366"/>
+ <point x="1040" y="490" type="curve"/>
+ <point x="1050" y="322"/>
+ <point x="1128" y="180"/>
+ <point x="1250" y="180" type="curve" smooth="yes"/>
+ <point x="1425" y="180"/>
+ <point x="1605" y="368"/>
+ </contour>
+ <contour>
+ <point x="850" y="905" type="curve" smooth="yes"/>
+ <point x="924" y="905"/>
+ <point x="992" y="886"/>
+ <point x="1025" y="870" type="curve"/>
+ <point x="1025" y="720" type="line"/>
+ <point x="993" y="582"/>
+ <point x="838" y="320"/>
+ <point x="748" y="320" type="curve" smooth="yes"/>
+ <point x="676" y="320"/>
+ <point x="605" y="398"/>
+ <point x="605" y="575" type="curve" smooth="yes"/>
+ <point x="605" y="652"/>
+ <point x="621" y="731"/>
+ <point x="650" y="780" type="curve" smooth="yes"/>
+ <point x="706" y="876"/>
+ <point x="782" y="905"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/C_ircumA_ccent.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/C_ircumA_ccent.glif
new file mode 100644
index 0000000..3f77dc1
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/C_ircumA_ccent.glif
@@ -0,0 +1,8 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="CircumAccent" format="2">
+ <advance width="850"/>
+ <unicode hex="005E"/>
+ <outline>
+ <component base="CombCircum" xOffset="995"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/C_olon.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/C_olon.glif
new file mode 100644
index 0000000..8e837f7
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/C_olon.glif
@@ -0,0 +1,35 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="Colon" format="2">
+ <advance width="640"/>
+ <unicode hex="003A"/>
+ <outline>
+ <contour>
+ <point x="185" y="790" type="curve" smooth="yes"/>
+ <point x="185" y="716"/>
+ <point x="246" y="655"/>
+ <point x="320" y="655" type="curve" smooth="yes"/>
+ <point x="394" y="655"/>
+ <point x="455" y="716"/>
+ <point x="455" y="790" type="curve" smooth="yes"/>
+ <point x="455" y="864"/>
+ <point x="394" y="925"/>
+ <point x="320" y="925" type="curve" smooth="yes"/>
+ <point x="246" y="925"/>
+ <point x="185" y="864"/>
+ </contour>
+ <contour>
+ <point x="185" y="110" type="curve" smooth="yes"/>
+ <point x="185" y="36"/>
+ <point x="246" y="-25"/>
+ <point x="320" y="-25" type="curve" smooth="yes"/>
+ <point x="394" y="-25"/>
+ <point x="455" y="36"/>
+ <point x="455" y="110" type="curve" smooth="yes"/>
+ <point x="455" y="184"/>
+ <point x="394" y="245"/>
+ <point x="320" y="245" type="curve" smooth="yes"/>
+ <point x="246" y="245"/>
+ <point x="185" y="184"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/C_ombA_cute.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/C_ombA_cute.glif
new file mode 100644
index 0000000..cc8b02d
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/C_ombA_cute.glif
@@ -0,0 +1,14 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="CombAcute" format="2">
+ <unicode hex="0301"/>
+ <anchor x="-570" y="1635" name="U"/>
+ <anchor x="-570" y="1100" name="_U"/>
+ <outline>
+ <contour>
+ <point x="-400" y="1600" type="line"/>
+ <point x="-750" y="1170" type="line"/>
+ <point x="-590" y="1170" type="line"/>
+ <point x="-170" y="1600" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/C_ombC_ircum.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/C_ombC_ircum.glif
new file mode 100644
index 0000000..4d372c6
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/C_ombC_ircum.glif
@@ -0,0 +1,17 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="CombCircum" format="2">
+ <unicode hex="0302"/>
+ <anchor x="-570" y="1635" name="U"/>
+ <anchor x="-570" y="1100" name="_U"/>
+ <outline>
+ <contour>
+ <point x="-845" y="1170" type="line"/>
+ <point x="-570" y="1450" type="line"/>
+ <point x="-295" y="1170" type="line"/>
+ <point x="-145" y="1170" type="line"/>
+ <point x="-485" y="1600" type="line"/>
+ <point x="-655" y="1600" type="line"/>
+ <point x="-995" y="1170" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/C_ombD_iaer.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/C_ombD_iaer.glif
new file mode 100644
index 0000000..10b0452
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/C_ombD_iaer.glif
@@ -0,0 +1,36 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="CombDiaer" format="2">
+ <unicode hex="0308"/>
+ <anchor x="-570" y="1505" name="U"/>
+ <anchor x="-570" y="1100" name="_U"/>
+ <outline>
+ <contour>
+ <point x="-490" y="1345" type="curve" smooth="yes"/>
+ <point x="-490" y="1271"/>
+ <point x="-434" y="1210"/>
+ <point x="-360" y="1210" type="curve" smooth="yes"/>
+ <point x="-285" y="1210"/>
+ <point x="-230" y="1271"/>
+ <point x="-230" y="1345" type="curve" smooth="yes"/>
+ <point x="-230" y="1419"/>
+ <point x="-285" y="1480"/>
+ <point x="-360" y="1480" type="curve" smooth="yes"/>
+ <point x="-434" y="1480"/>
+ <point x="-490" y="1419"/>
+ </contour>
+ <contour>
+ <point x="-910" y="1345" type="curve" smooth="yes"/>
+ <point x="-910" y="1271"/>
+ <point x="-854" y="1210"/>
+ <point x="-780" y="1210" type="curve" smooth="yes"/>
+ <point x="-705" y="1210"/>
+ <point x="-650" y="1271"/>
+ <point x="-650" y="1345" type="curve" smooth="yes"/>
+ <point x="-650" y="1419"/>
+ <point x="-705" y="1480"/>
+ <point x="-780" y="1480" type="curve" smooth="yes"/>
+ <point x="-854" y="1480"/>
+ <point x="-910" y="1419"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/C_ombG_rave.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/C_ombG_rave.glif
new file mode 100644
index 0000000..7a99e84
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/C_ombG_rave.glif
@@ -0,0 +1,14 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="CombGrave" format="2">
+ <unicode hex="0300"/>
+ <anchor x="-550" y="1635" name="U"/>
+ <anchor x="-550" y="1100" name="_U"/>
+ <outline>
+ <contour>
+ <point x="-940" y="1600" type="line"/>
+ <point x="-520" y="1170" type="line"/>
+ <point x="-360" y="1170" type="line"/>
+ <point x="-710" y="1600" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/C_ombR_ingA_bv.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/C_ombR_ingA_bv.glif
new file mode 100644
index 0000000..ba2c3d5
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/C_ombR_ingA_bv.glif
@@ -0,0 +1,36 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="CombRingAbv" format="2">
+ <unicode hex="030A"/>
+ <anchor x="-570" y="1635" name="U"/>
+ <anchor x="-572" y="1100" name="_U"/>
+ <outline>
+ <contour>
+ <point x="-470" y="1385" type="curve" smooth="yes"/>
+ <point x="-470" y="1325"/>
+ <point x="-510" y="1285"/>
+ <point x="-570" y="1285" type="curve" smooth="yes"/>
+ <point x="-630" y="1285"/>
+ <point x="-670" y="1325"/>
+ <point x="-670" y="1385" type="curve" smooth="yes"/>
+ <point x="-670" y="1445"/>
+ <point x="-630" y="1485"/>
+ <point x="-570" y="1485" type="curve" smooth="yes"/>
+ <point x="-510" y="1485"/>
+ <point x="-470" y="1445"/>
+ </contour>
+ <contour>
+ <point x="-785" y="1385" type="curve" smooth="yes"/>
+ <point x="-785" y="1265"/>
+ <point x="-690" y="1170"/>
+ <point x="-570" y="1170" type="curve" smooth="yes"/>
+ <point x="-450" y="1170"/>
+ <point x="-355" y="1265"/>
+ <point x="-355" y="1385" type="curve" smooth="yes"/>
+ <point x="-355" y="1505"/>
+ <point x="-450" y="1600"/>
+ <point x="-570" y="1600" type="curve" smooth="yes"/>
+ <point x="-690" y="1600"/>
+ <point x="-785" y="1505"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/C_ombT_ilde.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/C_ombT_ilde.glif
new file mode 100644
index 0000000..808ca70
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/C_ombT_ilde.glif
@@ -0,0 +1,36 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="CombTilde" format="2">
+ <unicode hex="0303"/>
+ <anchor x="-575" y="1475" name="U"/>
+ <anchor x="-575" y="1100" name="_U"/>
+ <outline>
+ <contour>
+ <point x="-820" y="1205" type="line"/>
+ <point x="-815" y="1254"/>
+ <point x="-784" y="1290"/>
+ <point x="-735" y="1290" type="curve" smooth="yes"/>
+ <point x="-698" y="1290"/>
+ <point x="-657" y="1274"/>
+ <point x="-580" y="1238" type="curve" smooth="yes"/>
+ <point x="-519" y="1210"/>
+ <point x="-466" y="1190"/>
+ <point x="-413" y="1190" type="curve" smooth="yes"/>
+ <point x="-290" y="1190"/>
+ <point x="-215" y="1312"/>
+ <point x="-215" y="1440" type="curve"/>
+ <point x="-320" y="1440" type="line"/>
+ <point x="-327" y="1394"/>
+ <point x="-358" y="1355"/>
+ <point x="-405" y="1355" type="curve" smooth="yes"/>
+ <point x="-447" y="1355"/>
+ <point x="-488" y="1374"/>
+ <point x="-560" y="1403" type="curve" smooth="yes"/>
+ <point x="-630" y="1431"/>
+ <point x="-677" y="1455"/>
+ <point x="-733" y="1455" type="curve" smooth="yes"/>
+ <point x="-852" y="1455"/>
+ <point x="-925" y="1327"/>
+ <point x="-925" y="1205" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/C_omma.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/C_omma.glif
new file mode 100644
index 0000000..65578e7
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/C_omma.glif
@@ -0,0 +1,24 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="Comma" format="2">
+ <advance width="650"/>
+ <unicode hex="002C"/>
+ <outline>
+ <contour>
+ <point x="185" y="50" type="line"/>
+ <point x="325" y="50" type="line"/>
+ <point x="325" y="-51"/>
+ <point x="248" y="-172"/>
+ <point x="190" y="-230" type="curve"/>
+ <point x="290" y="-270" type="line"/>
+ <point x="407" y="-160"/>
+ <point x="465" y="-37"/>
+ <point x="465" y="85" type="curve" smooth="yes"/>
+ <point x="465" y="186"/>
+ <point x="400" y="250"/>
+ <point x="320" y="250" type="curve" smooth="yes"/>
+ <point x="263" y="250"/>
+ <point x="198" y="213"/>
+ <point x="185" y="150" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/D_igitE_ight.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/D_igitE_ight.glif
new file mode 100644
index 0000000..14cdcef
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/D_igitE_ight.glif
@@ -0,0 +1,63 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="DigitEight" format="2">
+ <advance width="1200"/>
+ <unicode hex="0038"/>
+ <anchor x="600" y="-100" name="L"/>
+ <anchor x="600" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="600" y="-25" type="curve" smooth="yes"/>
+ <point x="857" y="-25"/>
+ <point x="1110" y="134"/>
+ <point x="1110" y="405" type="curve" smooth="yes"/>
+ <point x="1110" y="611"/>
+ <point x="965" y="739"/>
+ <point x="855" y="795" type="curve"/>
+ <point x="933" y="844"/>
+ <point x="1050" y="923"/>
+ <point x="1050" y="1105" type="curve" smooth="yes"/>
+ <point x="1050" y="1350"/>
+ <point x="840" y="1485"/>
+ <point x="610" y="1485" type="curve" smooth="yes"/>
+ <point x="381" y="1485"/>
+ <point x="150" y="1350"/>
+ <point x="150" y="1105" type="curve" smooth="yes"/>
+ <point x="150" y="923"/>
+ <point x="272" y="838"/>
+ <point x="350" y="795" type="curve"/>
+ <point x="221" y="725"/>
+ <point x="90" y="611"/>
+ <point x="90" y="405" type="curve" smooth="yes"/>
+ <point x="90" y="134"/>
+ <point x="344" y="-25"/>
+ </contour>
+ <contour>
+ <point x="860" y="1105" type="curve" smooth="yes"/>
+ <point x="860" y="949"/>
+ <point x="743" y="865"/>
+ <point x="600" y="865" type="curve" smooth="yes"/>
+ <point x="457" y="865"/>
+ <point x="340" y="949"/>
+ <point x="340" y="1105" type="curve" smooth="yes"/>
+ <point x="340" y="1252"/>
+ <point x="457" y="1325"/>
+ <point x="600" y="1325" type="curve" smooth="yes"/>
+ <point x="743" y="1325"/>
+ <point x="860" y="1252"/>
+ </contour>
+ <contour>
+ <point x="910" y="425" type="curve" smooth="yes"/>
+ <point x="910" y="250"/>
+ <point x="778" y="145"/>
+ <point x="600" y="145" type="curve" smooth="yes"/>
+ <point x="420" y="145"/>
+ <point x="290" y="250"/>
+ <point x="290" y="425" type="curve" smooth="yes"/>
+ <point x="290" y="592"/>
+ <point x="420" y="710"/>
+ <point x="600" y="710" type="curve" smooth="yes"/>
+ <point x="778" y="710"/>
+ <point x="910" y="592"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/D_igitF_ive.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/D_igitF_ive.glif
new file mode 100644
index 0000000..af294c1
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/D_igitF_ive.glif
@@ -0,0 +1,44 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="DigitFive" format="2">
+ <advance width="1200"/>
+ <unicode hex="0035"/>
+ <anchor x="600" y="-100" name="L"/>
+ <anchor x="600" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="195" y="685" type="line"/>
+ <point x="319" y="733"/>
+ <point x="404" y="750"/>
+ <point x="510" y="750" type="curve" smooth="yes"/>
+ <point x="670" y="750"/>
+ <point x="870" y="672"/>
+ <point x="870" y="470" type="curve" smooth="yes"/>
+ <point x="870" y="268"/>
+ <point x="730" y="155"/>
+ <point x="530" y="155" type="curve" smooth="yes"/>
+ <point x="390" y="155"/>
+ <point x="294" y="182"/>
+ <point x="160" y="290" type="curve"/>
+ <point x="130" y="80" type="line"/>
+ <point x="255" y="2"/>
+ <point x="363" y="-25"/>
+ <point x="518" y="-25" type="curve" smooth="yes"/>
+ <point x="831" y="-25"/>
+ <point x="1060" y="163"/>
+ <point x="1060" y="475" type="curve" smooth="yes"/>
+ <point x="1060" y="742"/>
+ <point x="832" y="930"/>
+ <point x="545" y="930" type="curve" smooth="yes"/>
+ <point x="472" y="930"/>
+ <point x="411" y="924"/>
+ <point x="380" y="920" type="curve"/>
+ <point x="380" y="1290" type="line"/>
+ <point x="765" y="1290" type="line"/>
+ <point x="849" y="1290"/>
+ <point x="925" y="1286"/>
+ <point x="1000" y="1270" type="curve"/>
+ <point x="1000" y="1460" type="line"/>
+ <point x="195" y="1460" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/D_igitF_our.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/D_igitF_our.glif
new file mode 100644
index 0000000..2571d95
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/D_igitF_our.glif
@@ -0,0 +1,27 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="DigitFour" format="2">
+ <advance width="1200"/>
+ <unicode hex="0034"/>
+ <anchor x="607" y="-100" name="L"/>
+ <anchor x="607" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1125" y="395" type="line"/>
+ <point x="1125" y="550" type="line"/>
+ <point x="935" y="550" type="line"/>
+ <point x="935" y="1480" type="line"/>
+ <point x="745" y="1480" type="line"/>
+ <point x="90" y="550" type="line"/>
+ <point x="90" y="395" type="line"/>
+ <point x="745" y="395" type="line"/>
+ <point x="745" y="0" type="line"/>
+ <point x="935" y="0" type="line"/>
+ <point x="935" y="395" type="line"/>
+ </contour>
+ <contour>
+ <point x="745" y="1230" type="line"/>
+ <point x="745" y="550" type="line"/>
+ <point x="263" y="550" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/D_igitN_ine.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/D_igitN_ine.glif
new file mode 100644
index 0000000..68ddea0
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/D_igitN_ine.glif
@@ -0,0 +1,49 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="DigitNine" format="2">
+ <advance width="1200"/>
+ <unicode hex="0039"/>
+ <anchor x="600" y="-100" name="L"/>
+ <anchor x="600" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="193" y="65" type="line"/>
+ <point x="297" y="-5"/>
+ <point x="383" y="-25"/>
+ <point x="501" y="-25" type="curve" smooth="yes"/>
+ <point x="976" y="-25"/>
+ <point x="1114" y="411"/>
+ <point x="1114" y="780" type="curve" smooth="yes"/>
+ <point x="1114" y="1198"/>
+ <point x="926" y="1485"/>
+ <point x="616" y="1485" type="curve" smooth="yes"/>
+ <point x="349" y="1485"/>
+ <point x="112" y="1306"/>
+ <point x="112" y="1002" type="curve" smooth="yes"/>
+ <point x="112" y="773"/>
+ <point x="281" y="586"/>
+ <point x="559" y="586" type="curve" smooth="yes"/>
+ <point x="750" y="586"/>
+ <point x="922" y="717"/>
+ <point x="1019" y="878" type="curve"/>
+ <point x="948" y="961" type="line"/>
+ <point x="874" y="847"/>
+ <point x="738" y="760"/>
+ <point x="583" y="760" type="curve" smooth="yes"/>
+ <point x="424" y="760"/>
+ <point x="306" y="860"/>
+ <point x="306" y="1036" type="curve" smooth="yes"/>
+ <point x="306" y="1196"/>
+ <point x="420" y="1310"/>
+ <point x="596" y="1310" type="curve" smooth="yes"/>
+ <point x="837" y="1310"/>
+ <point x="919" y="1065"/>
+ <point x="919" y="813" type="curve" smooth="yes"/>
+ <point x="919" y="326"/>
+ <point x="748" y="150"/>
+ <point x="511" y="150" type="curve" smooth="yes"/>
+ <point x="415" y="150"/>
+ <point x="323" y="174"/>
+ <point x="237" y="260" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/D_igitO_ne.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/D_igitO_ne.glif
new file mode 100644
index 0000000..e024dc1
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/D_igitO_ne.glif
@@ -0,0 +1,22 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="DigitOne" format="2">
+ <advance width="1200"/>
+ <unicode hex="0031"/>
+ <anchor x="600" y="-100" name="L"/>
+ <anchor x="600" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="535" y="170" type="line"/>
+ <point x="220" y="170" type="line"/>
+ <point x="220" y="0" type="line"/>
+ <point x="1040" y="0" type="line"/>
+ <point x="1040" y="170" type="line"/>
+ <point x="725" y="170" type="line"/>
+ <point x="725" y="1480" type="line"/>
+ <point x="555" y="1480" type="line"/>
+ <point x="210" y="1268" type="line"/>
+ <point x="235" y="1088" type="line"/>
+ <point x="535" y="1260" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/D_igitS_even.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/D_igitS_even.glif
new file mode 100644
index 0000000..9a1b923
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/D_igitS_even.glif
@@ -0,0 +1,25 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="DigitSeven" format="2">
+ <advance width="1200"/>
+ <unicode hex="0037"/>
+ <anchor x="600" y="-100" name="L"/>
+ <anchor x="600" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="460" y="0" type="line"/>
+ <point x="589" y="459"/>
+ <point x="794" y="895"/>
+ <point x="1090" y="1300" type="curve"/>
+ <point x="1090" y="1460" type="line"/>
+ <point x="100" y="1460" type="line"/>
+ <point x="100" y="1275" type="line"/>
+ <point x="176" y="1291"/>
+ <point x="292" y="1295"/>
+ <point x="480" y="1295" type="curve" smooth="yes"/>
+ <point x="870" y="1295" type="line"/>
+ <point x="612" y="912"/>
+ <point x="439" y="566"/>
+ <point x="275" y="0" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/D_igitS_ix.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/D_igitS_ix.glif
new file mode 100644
index 0000000..204b6e6
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/D_igitS_ix.glif
@@ -0,0 +1,49 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="DigitSix" format="2">
+ <advance width="1200"/>
+ <unicode hex="0036"/>
+ <anchor x="600" y="-100" name="L"/>
+ <anchor x="600" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1033" y="1395" type="line"/>
+ <point x="929" y="1465"/>
+ <point x="843" y="1485"/>
+ <point x="725" y="1485" type="curve" smooth="yes"/>
+ <point x="250" y="1485"/>
+ <point x="110" y="1049"/>
+ <point x="110" y="680" type="curve" smooth="yes"/>
+ <point x="110" y="242"/>
+ <point x="290" y="-25"/>
+ <point x="600" y="-25" type="curve" smooth="yes"/>
+ <point x="907" y="-25"/>
+ <point x="1115" y="166"/>
+ <point x="1115" y="470" type="curve" smooth="yes"/>
+ <point x="1115" y="719"/>
+ <point x="943" y="895"/>
+ <point x="665" y="895" type="curve" smooth="yes"/>
+ <point x="474" y="895"/>
+ <point x="328" y="780"/>
+ <point x="215" y="625" type="curve"/>
+ <point x="280" y="550" type="line"/>
+ <point x="362" y="653"/>
+ <point x="490" y="720"/>
+ <point x="645" y="720" type="curve" smooth="yes"/>
+ <point x="824" y="720"/>
+ <point x="920" y="611"/>
+ <point x="920" y="435" type="curve" smooth="yes"/>
+ <point x="920" y="275"/>
+ <point x="806" y="150"/>
+ <point x="630" y="150" type="curve" smooth="yes"/>
+ <point x="409" y="150"/>
+ <point x="305" y="393"/>
+ <point x="305" y="645" type="curve" smooth="yes"/>
+ <point x="305" y="1132"/>
+ <point x="478" y="1310"/>
+ <point x="715" y="1310" type="curve" smooth="yes"/>
+ <point x="811" y="1310"/>
+ <point x="903" y="1286"/>
+ <point x="989" y="1200" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/D_igitT_hree.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/D_igitT_hree.glif
new file mode 100644
index 0000000..876164d
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/D_igitT_hree.glif
@@ -0,0 +1,52 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="DigitThree" format="2">
+ <advance width="1200"/>
+ <unicode hex="0033"/>
+ <anchor x="600" y="-100" name="L"/>
+ <anchor x="600" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="410" y="870" type="line"/>
+ <point x="410" y="700" type="line"/>
+ <point x="480" y="700" type="line"/>
+ <point x="716" y="700"/>
+ <point x="895" y="588"/>
+ <point x="895" y="425" type="curve" smooth="yes"/>
+ <point x="895" y="241"/>
+ <point x="718" y="150"/>
+ <point x="565" y="150" type="curve" smooth="yes"/>
+ <point x="385" y="150"/>
+ <point x="244" y="232"/>
+ <point x="135" y="355" type="curve"/>
+ <point x="110" y="140" type="line"/>
+ <point x="215" y="42"/>
+ <point x="368" y="-25"/>
+ <point x="545" y="-25" type="curve" smooth="yes"/>
+ <point x="834" y="-25"/>
+ <point x="1090" y="170"/>
+ <point x="1090" y="405" type="curve" smooth="yes"/>
+ <point x="1090" y="672"/>
+ <point x="862" y="776"/>
+ <point x="720" y="800" type="curve"/>
+ <point x="862" y="829"/>
+ <point x="1040" y="957"/>
+ <point x="1040" y="1140" type="curve" smooth="yes"/>
+ <point x="1040" y="1354"/>
+ <point x="828" y="1485"/>
+ <point x="580" y="1485" type="curve"/>
+ <point x="413" y="1485"/>
+ <point x="260" y="1416"/>
+ <point x="180" y="1325" type="curve"/>
+ <point x="215" y="1155" type="line"/>
+ <point x="328" y="1271"/>
+ <point x="436" y="1310"/>
+ <point x="590" y="1310" type="curve" smooth="yes"/>
+ <point x="711" y="1310"/>
+ <point x="850" y="1250"/>
+ <point x="850" y="1115" type="curve" smooth="yes"/>
+ <point x="850" y="991"/>
+ <point x="679" y="870"/>
+ <point x="480" y="870" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/D_igitT_wo.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/D_igitT_wo.glif
new file mode 100644
index 0000000..9e58e78
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/D_igitT_wo.glif
@@ -0,0 +1,37 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="DigitTwo" format="2">
+ <advance width="1200"/>
+ <unicode hex="0032"/>
+ <anchor x="600" y="-100" name="L"/>
+ <anchor x="560" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1080" y="180" type="line"/>
+ <point x="1000" y="166"/>
+ <point x="842" y="165"/>
+ <point x="645" y="165" type="curve" smooth="yes"/>
+ <point x="390" y="165" type="line"/>
+ <point x="609" y="352"/>
+ <point x="1010" y="729"/>
+ <point x="1010" y="1065" type="curve" smooth="yes"/>
+ <point x="1010" y="1323"/>
+ <point x="800" y="1485"/>
+ <point x="560" y="1485" type="curve" smooth="yes"/>
+ <point x="391" y="1485"/>
+ <point x="206" y="1402"/>
+ <point x="125" y="1290" type="curve"/>
+ <point x="170" y="1120" type="line"/>
+ <point x="259" y="1228"/>
+ <point x="402" y="1305"/>
+ <point x="525" y="1305" type="curve" smooth="yes"/>
+ <point x="668" y="1305"/>
+ <point x="810" y="1233"/>
+ <point x="810" y="1045" type="curve" smooth="yes"/>
+ <point x="810" y="768"/>
+ <point x="391" y="365"/>
+ <point x="120" y="170" type="curve"/>
+ <point x="120" y="0" type="line"/>
+ <point x="1080" y="0" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/D_igitZ_ero.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/D_igitZ_ero.glif
new file mode 100644
index 0000000..c146e7c
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/D_igitZ_ero.glif
@@ -0,0 +1,37 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="DigitZero" format="2">
+ <advance width="1200"/>
+ <unicode hex="0030"/>
+ <anchor x="605" y="-100" name="L"/>
+ <anchor x="605" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="910" y="715" type="curve" smooth="yes"/>
+ <point x="910" y="308"/>
+ <point x="792" y="145"/>
+ <point x="600" y="145" type="curve" smooth="yes"/>
+ <point x="402" y="145"/>
+ <point x="290" y="305"/>
+ <point x="290" y="745" type="curve" smooth="yes"/>
+ <point x="290" y="1153"/>
+ <point x="407" y="1315"/>
+ <point x="600" y="1315" type="curve" smooth="yes"/>
+ <point x="802" y="1315"/>
+ <point x="910" y="1156"/>
+ </contour>
+ <contour>
+ <point x="1110" y="740" type="curve" smooth="yes"/>
+ <point x="1110" y="1286"/>
+ <point x="900" y="1485"/>
+ <point x="610" y="1485" type="curve" smooth="yes"/>
+ <point x="321" y="1485"/>
+ <point x="90" y="1283"/>
+ <point x="90" y="720" type="curve" smooth="yes"/>
+ <point x="90" y="155"/>
+ <point x="301" y="-25"/>
+ <point x="590" y="-25" type="curve" smooth="yes"/>
+ <point x="881" y="-25"/>
+ <point x="1110" y="151"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/D_ollarS_gn.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/D_ollarS_gn.glif
new file mode 100644
index 0000000..ff237fa
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/D_ollarS_gn.glif
@@ -0,0 +1,53 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="DollarSgn" format="2">
+ <advance width="1200"/>
+ <unicode hex="0024"/>
+ <outline>
+ <contour>
+ <point x="553" y="1600" type="line"/>
+ <point x="553" y="-220" type="line"/>
+ <point x="683" y="-220" type="line"/>
+ <point x="683" y="1600" type="line"/>
+ </contour>
+ <contour>
+ <point x="986" y="1306" type="line"/>
+ <point x="866" y="1364"/>
+ <point x="764" y="1389"/>
+ <point x="623" y="1389" type="curve" smooth="yes"/>
+ <point x="317" y="1389"/>
+ <point x="190" y="1173"/>
+ <point x="190" y="1017" type="curve" smooth="yes"/>
+ <point x="190" y="860"/>
+ <point x="253" y="739"/>
+ <point x="540" y="653" type="curve" smooth="yes"/>
+ <point x="827" y="567"/>
+ <point x="871" y="492"/>
+ <point x="871" y="396" type="curve" smooth="yes"/>
+ <point x="871" y="247"/>
+ <point x="734" y="161"/>
+ <point x="586" y="161" type="curve" smooth="yes"/>
+ <point x="450" y="161"/>
+ <point x="316" y="207"/>
+ <point x="195" y="313" type="curve"/>
+ <point x="153" y="124" type="line"/>
+ <point x="247" y="52"/>
+ <point x="408" y="0"/>
+ <point x="586" y="0" type="curve" smooth="yes"/>
+ <point x="837" y="0"/>
+ <point x="1046" y="167"/>
+ <point x="1046" y="414" type="curve" smooth="yes"/>
+ <point x="1046" y="613"/>
+ <point x="912" y="725"/>
+ <point x="669" y="796" type="curve" smooth="yes"/>
+ <point x="406" y="873"/>
+ <point x="365" y="929"/>
+ <point x="365" y="1030" type="curve" smooth="yes"/>
+ <point x="365" y="1132"/>
+ <point x="466" y="1228"/>
+ <point x="613" y="1228" type="curve" smooth="yes"/>
+ <point x="731" y="1228"/>
+ <point x="818" y="1200"/>
+ <point x="949" y="1127" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/D_ottedC_irc.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/D_ottedC_irc.glif
new file mode 100644
index 0000000..b2c2552
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/D_ottedC_irc.glif
@@ -0,0 +1,235 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="DottedCirc" format="2">
+ <advance width="1106"/>
+ <unicode hex="25CC"/>
+ <anchor x="553" y="0" name="H"/>
+ <anchor x="553" y="-100" name="L"/>
+ <anchor x="810" y="0" name="O"/>
+ <anchor x="553" y="1000" name="U"/>
+ <outline>
+ <contour>
+ <point x="443" y="837" type="curve" smooth="yes"/>
+ <point x="443" y="864"/>
+ <point x="423" y="885"/>
+ <point x="398" y="885" type="curve" smooth="yes"/>
+ <point x="371" y="885"/>
+ <point x="348" y="861"/>
+ <point x="348" y="837" type="curve" smooth="yes"/>
+ <point x="348" y="809"/>
+ <point x="372" y="789"/>
+ <point x="398" y="789" type="curve" smooth="yes"/>
+ <point x="425" y="789"/>
+ <point x="443" y="812"/>
+ </contour>
+ <contour>
+ <point x="758" y="79" type="curve" smooth="yes"/>
+ <point x="758" y="106"/>
+ <point x="736" y="127"/>
+ <point x="710" y="127" type="curve" smooth="yes"/>
+ <point x="685" y="127"/>
+ <point x="662" y="103"/>
+ <point x="662" y="80" type="curve" smooth="yes"/>
+ <point x="662" y="52"/>
+ <point x="686" y="31"/>
+ <point x="710" y="31" type="curve" smooth="yes"/>
+ <point x="737" y="31"/>
+ <point x="758" y="55"/>
+ </contour>
+ <contour>
+ <point x="310" y="749" type="curve" smooth="yes"/>
+ <point x="310" y="775"/>
+ <point x="288" y="796"/>
+ <point x="263" y="796" type="curve" smooth="yes"/>
+ <point x="238" y="796"/>
+ <point x="215" y="774"/>
+ <point x="215" y="747" type="curve" smooth="yes"/>
+ <point x="215" y="722"/>
+ <point x="236" y="701"/>
+ <point x="263" y="701" type="curve" smooth="yes"/>
+ <point x="291" y="701"/>
+ <point x="310" y="720"/>
+ </contour>
+ <contour>
+ <point x="891" y="168" type="curve" smooth="yes"/>
+ <point x="891" y="197"/>
+ <point x="870" y="215"/>
+ <point x="843" y="215" type="curve" smooth="yes"/>
+ <point x="817" y="215"/>
+ <point x="795" y="194"/>
+ <point x="795" y="168" type="curve" smooth="yes"/>
+ <point x="795" y="143"/>
+ <point x="816" y="121"/>
+ <point x="843" y="121" type="curve" smooth="yes"/>
+ <point x="871" y="121"/>
+ <point x="891" y="143"/>
+ </contour>
+ <contour>
+ <point x="222" y="613" type="curve" smooth="yes"/>
+ <point x="222" y="640"/>
+ <point x="199" y="663"/>
+ <point x="173" y="663" type="curve" smooth="yes"/>
+ <point x="149" y="663"/>
+ <point x="126" y="642"/>
+ <point x="126" y="615" type="curve" smooth="yes"/>
+ <point x="126" y="591"/>
+ <point x="145" y="567"/>
+ <point x="173" y="567" type="curve" smooth="yes"/>
+ <point x="197" y="567"/>
+ <point x="222" y="587"/>
+ </contour>
+ <contour>
+ <point x="980" y="301" type="curve" smooth="yes"/>
+ <point x="980" y="327"/>
+ <point x="957" y="348"/>
+ <point x="932" y="348" type="curve" smooth="yes"/>
+ <point x="908" y="348"/>
+ <point x="884" y="332"/>
+ <point x="884" y="301" type="curve" smooth="yes"/>
+ <point x="884" y="277"/>
+ <point x="902" y="254"/>
+ <point x="932" y="254" type="curve" smooth="yes"/>
+ <point x="957" y="254"/>
+ <point x="980" y="274"/>
+ </contour>
+ <contour>
+ <point x="191" y="459" type="curve" smooth="yes"/>
+ <point x="191" y="484"/>
+ <point x="168" y="505"/>
+ <point x="143" y="505" type="curve" smooth="yes"/>
+ <point x="116" y="505"/>
+ <point x="95" y="484"/>
+ <point x="95" y="458" type="curve" smooth="yes"/>
+ <point x="95" y="433"/>
+ <point x="115" y="410"/>
+ <point x="143" y="410" type="curve" smooth="yes"/>
+ <point x="167" y="410"/>
+ <point x="191" y="432"/>
+ </contour>
+ <contour>
+ <point x="1011" y="458" type="curve" smooth="yes"/>
+ <point x="1011" y="484"/>
+ <point x="990" y="506"/>
+ <point x="964" y="506" type="curve" smooth="yes"/>
+ <point x="940" y="506"/>
+ <point x="915" y="484"/>
+ <point x="915" y="457" type="curve" smooth="yes"/>
+ <point x="915" y="433"/>
+ <point x="936" y="411"/>
+ <point x="964" y="411" type="curve" smooth="yes"/>
+ <point x="990" y="411"/>
+ <point x="1011" y="433"/>
+ </contour>
+ <contour>
+ <point x="222" y="302" type="curve" smooth="yes"/>
+ <point x="222" y="328"/>
+ <point x="200" y="348"/>
+ <point x="174" y="348" type="curve" smooth="yes"/>
+ <point x="147" y="348"/>
+ <point x="126" y="326"/>
+ <point x="126" y="302" type="curve" smooth="yes"/>
+ <point x="126" y="275"/>
+ <point x="149" y="253"/>
+ <point x="174" y="253" type="curve" smooth="yes"/>
+ <point x="201" y="253"/>
+ <point x="222" y="277"/>
+ </contour>
+ <contour>
+ <point x="980" y="615" type="curve" smooth="yes"/>
+ <point x="980" y="642"/>
+ <point x="955" y="663"/>
+ <point x="931" y="663" type="curve" smooth="yes"/>
+ <point x="904" y="663"/>
+ <point x="885" y="638"/>
+ <point x="885" y="614" type="curve" smooth="yes"/>
+ <point x="885" y="588"/>
+ <point x="907" y="567"/>
+ <point x="931" y="567" type="curve" smooth="yes"/>
+ <point x="959" y="567"/>
+ <point x="980" y="591"/>
+ </contour>
+ <contour>
+ <point x="310" y="168" type="curve" smooth="yes"/>
+ <point x="310" y="195"/>
+ <point x="291" y="215"/>
+ <point x="263" y="215" type="curve" smooth="yes"/>
+ <point x="238" y="215"/>
+ <point x="215" y="190"/>
+ <point x="215" y="168" type="curve" smooth="yes"/>
+ <point x="215" y="143"/>
+ <point x="238" y="120"/>
+ <point x="263" y="120" type="curve" smooth="yes"/>
+ <point x="289" y="120"/>
+ <point x="310" y="143"/>
+ </contour>
+ <contour>
+ <point x="890" y="748" type="curve" smooth="yes"/>
+ <point x="890" y="774"/>
+ <point x="870" y="796"/>
+ <point x="843" y="796" type="curve" smooth="yes"/>
+ <point x="815" y="796"/>
+ <point x="796" y="773"/>
+ <point x="796" y="748" type="curve" smooth="yes"/>
+ <point x="796" y="724"/>
+ <point x="817" y="700"/>
+ <point x="843" y="700" type="curve" smooth="yes"/>
+ <point x="869" y="700"/>
+ <point x="890" y="722"/>
+ </contour>
+ <contour>
+ <point x="444" y="78" type="curve" smooth="yes"/>
+ <point x="444" y="102"/>
+ <point x="423" y="126"/>
+ <point x="396" y="126" type="curve" smooth="yes"/>
+ <point x="370" y="126"/>
+ <point x="348" y="102"/>
+ <point x="348" y="78" type="curve" smooth="yes"/>
+ <point x="348" y="55"/>
+ <point x="370" y="31"/>
+ <point x="396" y="31" type="curve" smooth="yes"/>
+ <point x="420" y="31"/>
+ <point x="444" y="51"/>
+ </contour>
+ <contour>
+ <point x="758" y="836" type="curve" smooth="yes"/>
+ <point x="758" y="861"/>
+ <point x="737" y="885"/>
+ <point x="710" y="885" type="curve" smooth="yes"/>
+ <point x="684" y="885"/>
+ <point x="663" y="862"/>
+ <point x="663" y="838" type="curve" smooth="yes"/>
+ <point x="663" y="814"/>
+ <point x="683" y="789"/>
+ <point x="710" y="789" type="curve" smooth="yes"/>
+ <point x="734" y="789"/>
+ <point x="758" y="809"/>
+ </contour>
+ <contour>
+ <point x="601" y="47" type="curve" smooth="yes"/>
+ <point x="601" y="73"/>
+ <point x="579" y="95"/>
+ <point x="553" y="95" type="curve" smooth="yes"/>
+ <point x="527" y="95"/>
+ <point x="506" y="73"/>
+ <point x="506" y="47" type="curve" smooth="yes"/>
+ <point x="506" y="21"/>
+ <point x="527" y="0"/>
+ <point x="553" y="0" type="curve" smooth="yes"/>
+ <point x="579" y="0"/>
+ <point x="601" y="21"/>
+ </contour>
+ <contour>
+ <point x="601" y="868" type="curve" smooth="yes"/>
+ <point x="601" y="894"/>
+ <point x="579" y="916"/>
+ <point x="553" y="916" type="curve" smooth="yes"/>
+ <point x="527" y="916"/>
+ <point x="506" y="894"/>
+ <point x="506" y="868" type="curve" smooth="yes"/>
+ <point x="506" y="842"/>
+ <point x="527" y="821"/>
+ <point x="553" y="821" type="curve" smooth="yes"/>
+ <point x="579" y="821"/>
+ <point x="601" y="842"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/E_qS_gn.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/E_qS_gn.glif
new file mode 100644
index 0000000..fe4133b
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/E_qS_gn.glif
@@ -0,0 +1,19 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="EqSgn" format="2">
+ <advance width="1200"/>
+ <unicode hex="003D"/>
+ <outline>
+ <contour>
+ <point x="120" y="480" type="line"/>
+ <point x="1080" y="480" type="line"/>
+ <point x="1080" y="630" type="line"/>
+ <point x="120" y="630" type="line"/>
+ </contour>
+ <contour>
+ <point x="120" y="830" type="line"/>
+ <point x="1080" y="830" type="line"/>
+ <point x="1080" y="980" type="line"/>
+ <point x="120" y="980" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/E_xclamationM_rk.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/E_xclamationM_rk.glif
new file mode 100644
index 0000000..dc73854
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/E_xclamationM_rk.glif
@@ -0,0 +1,31 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="ExclamationMrk" format="2">
+ <advance width="764"/>
+ <unicode hex="0021"/>
+ <outline>
+ <contour>
+ <point x="450" y="440" type="line"/>
+ <point x="456" y="730"/>
+ <point x="451" y="1076"/>
+ <point x="490" y="1510" type="curve"/>
+ <point x="235" y="1510" type="line"/>
+ <point x="273" y="1076"/>
+ <point x="268" y="730"/>
+ <point x="275" y="440" type="curve"/>
+ </contour>
+ <contour>
+ <point x="225" y="110" type="curve" smooth="yes"/>
+ <point x="225" y="36"/>
+ <point x="286" y="-25"/>
+ <point x="360" y="-25" type="curve" smooth="yes"/>
+ <point x="434" y="-25"/>
+ <point x="495" y="36"/>
+ <point x="495" y="110" type="curve" smooth="yes"/>
+ <point x="495" y="184"/>
+ <point x="434" y="245"/>
+ <point x="360" y="245" type="curve" smooth="yes"/>
+ <point x="286" y="245"/>
+ <point x="225" y="184"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/F_ullS_top.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/F_ullS_top.glif
new file mode 100644
index 0000000..e727469
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/F_ullS_top.glif
@@ -0,0 +1,21 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="FullStop" format="2">
+ <advance width="640"/>
+ <unicode hex="002E"/>
+ <outline>
+ <contour>
+ <point x="185" y="110" type="curve" smooth="yes"/>
+ <point x="185" y="36"/>
+ <point x="246" y="-25"/>
+ <point x="320" y="-25" type="curve" smooth="yes"/>
+ <point x="394" y="-25"/>
+ <point x="455" y="36"/>
+ <point x="455" y="110" type="curve" smooth="yes"/>
+ <point x="455" y="184"/>
+ <point x="394" y="245"/>
+ <point x="320" y="245" type="curve" smooth="yes"/>
+ <point x="246" y="245"/>
+ <point x="185" y="184"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/G_T_S_gn.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/G_T_S_gn.glif
new file mode 100644
index 0000000..027bf85
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/G_T_S_gn.glif
@@ -0,0 +1,16 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="GTSgn" format="2">
+ <advance width="1200"/>
+ <unicode hex="003E"/>
+ <outline>
+ <contour>
+ <point x="120" y="1035" type="line"/>
+ <point x="910" y="730" type="line"/>
+ <point x="120" y="425" type="line"/>
+ <point x="120" y="245" type="line"/>
+ <point x="1100" y="645" type="line"/>
+ <point x="1100" y="815" type="line"/>
+ <point x="120" y="1215" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/G_raveA_ccent.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/G_raveA_ccent.glif
new file mode 100644
index 0000000..7353003
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/G_raveA_ccent.glif
@@ -0,0 +1,8 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="GraveAccent" format="2">
+ <advance width="580"/>
+ <unicode hex="0060"/>
+ <outline>
+ <component base="CombGrave" xOffset="940"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/H_yphen.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/H_yphen.glif
new file mode 100644
index 0000000..406c624
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/H_yphen.glif
@@ -0,0 +1,14 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="Hyphen" format="2">
+ <advance width="860"/>
+ <unicode hex="2010"/>
+ <anchor x="430" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="80" y="555" type="line"/>
+ <point x="780" y="555" type="line"/>
+ <point x="780" y="705" type="line"/>
+ <point x="80" y="705" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/H_yphenM_inus.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/H_yphenM_inus.glif
new file mode 100644
index 0000000..257fbf0
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/H_yphenM_inus.glif
@@ -0,0 +1,14 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="HyphenMinus" format="2">
+ <advance width="860"/>
+ <unicode hex="002D"/>
+ <anchor x="430" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="80" y="555" type="line"/>
+ <point x="780" y="555" type="line"/>
+ <point x="780" y="705" type="line"/>
+ <point x="80" y="705" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/H_yphen_S_oft.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/H_yphen_S_oft.glif
new file mode 100644
index 0000000..97ffdb6
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/H_yphen_S_oft.glif
@@ -0,0 +1,9 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="Hyphen_Soft" format="2">
+ <advance width="860"/>
+ <unicode hex="00AD"/>
+ <anchor x="430" y="1100" name="U"/>
+ <outline>
+ <component base="HyphenMinus"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_T_S_gn.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_T_S_gn.glif
new file mode 100644
index 0000000..ed3fa37
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_T_S_gn.glif
@@ -0,0 +1,16 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="LTSgn" format="2">
+ <advance width="1200"/>
+ <unicode hex="003C"/>
+ <outline>
+ <contour>
+ <point x="1080" y="425" type="line"/>
+ <point x="290" y="730" type="line"/>
+ <point x="1080" y="1035" type="line"/>
+ <point x="1080" y="1215" type="line"/>
+ <point x="100" y="815" type="line"/>
+ <point x="100" y="645" type="line"/>
+ <point x="1080" y="245" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_ftC_urlyB_rac.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_ftC_urlyB_rac.glif
new file mode 100644
index 0000000..b516844
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_ftC_urlyB_rac.glif
@@ -0,0 +1,47 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="LftCurlyBrac" format="2">
+ <advance width="1000"/>
+ <unicode hex="007B"/>
+ <outline>
+ <contour>
+ <point x="210" y="615" type="curve" smooth="yes"/>
+ <point x="210" y="583"/>
+ <point x="383" y="486"/>
+ <point x="410" y="450" type="curve" smooth="yes"/>
+ <point x="434" y="418"/>
+ <point x="424" y="-205"/>
+ <point x="495" y="-285" type="curve" smooth="yes"/>
+ <point x="535" y="-330"/>
+ <point x="696" y="-383"/>
+ <point x="800" y="-410" type="curve"/>
+ <point x="840" y="-270" type="line"/>
+ <point x="773" y="-247"/>
+ <point x="650" y="-198"/>
+ <point x="630" y="-170" type="curve" smooth="yes"/>
+ <point x="597" y="-123"/>
+ <point x="610" y="447"/>
+ <point x="590" y="485" type="curve" smooth="yes"/>
+ <point x="571" y="521"/>
+ <point x="434" y="593"/>
+ <point x="430" y="615" type="curve"/>
+ <point x="434" y="637"/>
+ <point x="571" y="709"/>
+ <point x="590" y="745" type="curve" smooth="yes"/>
+ <point x="610" y="783"/>
+ <point x="597" y="1353"/>
+ <point x="630" y="1400" type="curve" smooth="yes"/>
+ <point x="650" y="1428"/>
+ <point x="773" y="1477"/>
+ <point x="840" y="1500" type="curve"/>
+ <point x="800" y="1640" type="line"/>
+ <point x="696" y="1613"/>
+ <point x="535" y="1560"/>
+ <point x="495" y="1515" type="curve" smooth="yes"/>
+ <point x="424" y="1435"/>
+ <point x="434" y="812"/>
+ <point x="410" y="780" type="curve" smooth="yes"/>
+ <point x="383" y="744"/>
+ <point x="210" y="647"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_ftP_aren.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_ftP_aren.glif
new file mode 100644
index 0000000..1126b7f
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_ftP_aren.glif
@@ -0,0 +1,23 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="LftParen" format="2">
+ <advance width="795"/>
+ <unicode hex="0028"/>
+ <outline>
+ <contour>
+ <point x="115" y="625" type="curve" smooth="yes"/>
+ <point x="115" y="218"/>
+ <point x="260" y="-125"/>
+ <point x="535" y="-410" type="curve"/>
+ <point x="630" y="-265" type="line"/>
+ <point x="395" y="-8"/>
+ <point x="305" y="278"/>
+ <point x="305" y="625" type="curve" smooth="yes"/>
+ <point x="305" y="982"/>
+ <point x="395" y="1280"/>
+ <point x="630" y="1485" type="curve"/>
+ <point x="555" y="1640" type="line"/>
+ <point x="290" y="1444"/>
+ <point x="115" y="1062"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_ftS_qrB_rac.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_ftS_qrB_rac.glif
new file mode 100644
index 0000000..e5568d8
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_ftS_qrB_rac.glif
@@ -0,0 +1,17 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="LftSqrBrac" format="2">
+ <advance width="790"/>
+ <unicode hex="005B"/>
+ <outline>
+ <contour>
+ <point x="640" y="-410" type="line"/>
+ <point x="640" y="-260" type="line"/>
+ <point x="385" y="-260" type="line"/>
+ <point x="385" y="1450" type="line"/>
+ <point x="640" y="1450" type="line"/>
+ <point x="640" y="1600" type="line"/>
+ <point x="200" y="1600" type="line"/>
+ <point x="200" y="-410" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_owL_ine.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_owL_ine.glif
new file mode 100644
index 0000000..9c45eaa
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_owL_ine.glif
@@ -0,0 +1,13 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="LowLine" format="2">
+ <advance width="1274"/>
+ <unicode hex="005F"/>
+ <outline>
+ <contour>
+ <point x="0" y="-320" type="line"/>
+ <point x="1274" y="-320" type="line"/>
+ <point x="1274" y="-170" type="line"/>
+ <point x="0" y="-170" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apA_.alt.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apA_.alt.glif
new file mode 100644
index 0000000..02eccd6
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apA_.alt.glif
@@ -0,0 +1,31 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="LtnCapA.alt" format="2">
+ <advance width="1395"/>
+ <anchor x="668" y="1460" name="H"/>
+ <anchor x="688" y="1560" name="L"/>
+ <anchor x="-75" y="1460" name="O"/>
+ <anchor x="688" y="-70" name="U"/>
+ <outline>
+ <contour>
+ <point x="1130" y="1460" type="line"/>
+ <point x="996" y="1075" type="line"/>
+ <point x="381" y="1075" type="line"/>
+ <point x="245" y="1460" type="line"/>
+ <point x="40" y="1460" type="line"/>
+ <point x="75" y="1380"/>
+ <point x="113" y="1291"/>
+ <point x="180" y="1105" type="curve" smooth="yes"/>
+ <point x="580" y="0" type="line"/>
+ <point x="795" y="0" type="line"/>
+ <point x="1195" y="1105" type="line" smooth="yes"/>
+ <point x="1263" y="1292"/>
+ <point x="1299" y="1379"/>
+ <point x="1335" y="1460" type="curve"/>
+ </contour>
+ <contour>
+ <point x="435" y="920" type="line"/>
+ <point x="942" y="920" type="line"/>
+ <point x="690" y="195" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apA_.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apA_.glif
new file mode 100644
index 0000000..791c68d
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apA_.glif
@@ -0,0 +1,32 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="LtnCapA" format="2">
+ <advance width="1395"/>
+ <unicode hex="0041"/>
+ <anchor x="707" y="0" name="H"/>
+ <anchor x="687" y="-100" name="L"/>
+ <anchor x="1450" y="0" name="O"/>
+ <anchor x="687" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="245" y="0" type="line"/>
+ <point x="379" y="385" type="line"/>
+ <point x="994" y="385" type="line"/>
+ <point x="1130" y="0" type="line"/>
+ <point x="1335" y="0" type="line"/>
+ <point x="1300" y="80"/>
+ <point x="1262" y="169"/>
+ <point x="1195" y="355" type="curve" smooth="yes"/>
+ <point x="795" y="1460" type="line"/>
+ <point x="580" y="1460" type="line"/>
+ <point x="180" y="355" type="line" smooth="yes"/>
+ <point x="112" y="168"/>
+ <point x="76" y="81"/>
+ <point x="40" y="0" type="curve"/>
+ </contour>
+ <contour>
+ <point x="940" y="540" type="line"/>
+ <point x="433" y="540" type="line"/>
+ <point x="685" y="1265" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apA_D_iaer.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apA_D_iaer.glif
new file mode 100644
index 0000000..6458162
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apA_D_iaer.glif
@@ -0,0 +1,13 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="LtnCapADiaer" format="2">
+ <advance width="1395"/>
+ <unicode hex="00C4"/>
+ <anchor x="707" y="0" name="H"/>
+ <anchor x="687" y="-100" name="L"/>
+ <anchor x="1450" y="0" name="O"/>
+ <anchor x="687" y="1935" name="U"/>
+ <outline>
+ <component base="LtnCapA"/>
+ <component base="CombDiaer" xOffset="1257" yOffset="430"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apB_.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apB_.glif
new file mode 100644
index 0000000..bd2a70f
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apB_.glif
@@ -0,0 +1,62 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="LtnCapB" format="2">
+ <advance width="1285"/>
+ <unicode hex="0042"/>
+ <anchor x="615" y="-100" name="L"/>
+ <anchor x="615" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="365" y="1310" type="line"/>
+ <point x="407" y="1312"/>
+ <point x="512" y="1315"/>
+ <point x="590" y="1315" type="curve" smooth="yes"/>
+ <point x="791" y="1315"/>
+ <point x="870" y="1239"/>
+ <point x="870" y="1090" type="curve" smooth="yes"/>
+ <point x="870" y="951"/>
+ <point x="774" y="855"/>
+ <point x="560" y="855" type="curve" smooth="yes"/>
+ <point x="365" y="855" type="line"/>
+ </contour>
+ <contour>
+ <point x="175" y="455" type="line"/>
+ <point x="175" y="257"/>
+ <point x="175" y="80"/>
+ <point x="160" y="0" type="curve"/>
+ <point x="213" y="-5"/>
+ <point x="402" y="-10"/>
+ <point x="605" y="-10" type="curve" smooth="yes"/>
+ <point x="988" y="-10"/>
+ <point x="1140" y="177"/>
+ <point x="1140" y="420" type="curve" smooth="yes"/>
+ <point x="1140" y="669"/>
+ <point x="974" y="759"/>
+ <point x="820" y="800" type="curve"/>
+ <point x="956" y="852"/>
+ <point x="1065" y="952"/>
+ <point x="1065" y="1120" type="curve" smooth="yes"/>
+ <point x="1065" y="1381"/>
+ <point x="897" y="1470"/>
+ <point x="600" y="1470" type="curve" smooth="yes"/>
+ <point x="431" y="1470"/>
+ <point x="248" y="1466"/>
+ <point x="160" y="1460" type="curve"/>
+ <point x="175" y="1380"/>
+ <point x="175" y="1196"/>
+ <point x="175" y="1000" type="curve" smooth="yes"/>
+ </contour>
+ <contour>
+ <point x="365" y="700" type="line"/>
+ <point x="600" y="700" type="line" smooth="yes"/>
+ <point x="833" y="700"/>
+ <point x="945" y="604"/>
+ <point x="945" y="420" type="curve" smooth="yes"/>
+ <point x="945" y="212"/>
+ <point x="781" y="150"/>
+ <point x="610" y="150" type="curve" smooth="yes"/>
+ <point x="498" y="150"/>
+ <point x="402" y="153"/>
+ <point x="365" y="155" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apC_.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apC_.glif
new file mode 100644
index 0000000..18d9cb1
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apC_.glif
@@ -0,0 +1,38 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="LtnCapC" format="2">
+ <advance width="1355"/>
+ <unicode hex="0043"/>
+ <anchor x="750" y="0" name="H"/>
+ <anchor x="750" y="-100" name="L"/>
+ <anchor x="750" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1190" y="335" type="line"/>
+ <point x="1078" y="223"/>
+ <point x="912" y="150"/>
+ <point x="760" y="150" type="curve" smooth="yes"/>
+ <point x="489" y="150"/>
+ <point x="290" y="376"/>
+ <point x="290" y="735" type="curve" smooth="yes"/>
+ <point x="290" y="1119"/>
+ <point x="491" y="1315"/>
+ <point x="770" y="1315" type="curve" smooth="yes"/>
+ <point x="891" y="1315"/>
+ <point x="1030" y="1278"/>
+ <point x="1155" y="1165" type="curve"/>
+ <point x="1215" y="1345" type="line"/>
+ <point x="1072" y="1452"/>
+ <point x="913" y="1485"/>
+ <point x="770" y="1485" type="curve" smooth="yes"/>
+ <point x="418" y="1485"/>
+ <point x="95" y="1225"/>
+ <point x="95" y="710" type="curve" smooth="yes"/>
+ <point x="95" y="260"/>
+ <point x="346" y="-25"/>
+ <point x="750" y="-25" type="curve" smooth="yes"/>
+ <point x="902" y="-25"/>
+ <point x="1114" y="32"/>
+ <point x="1230" y="140" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apC_A_cute.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apC_A_cute.glif
new file mode 100644
index 0000000..2fef8c0
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apC_A_cute.glif
@@ -0,0 +1,9 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="LtnCapCAcute" format="2">
+ <advance width="1020"/>
+ <unicode hex="0106"/>
+ <outline>
+ <component base="LtnSmC"/>
+ <component base="CombAcute" xOffset="1140.0"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apC_A_cuteC_edilla.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apC_A_cuteC_edilla.glif
new file mode 100644
index 0000000..eaf16f9
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apC_A_cuteC_edilla.glif
@@ -0,0 +1,10 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="LtnCapCAcuteCedilla" format="2">
+ <advance width="1355"/>
+ <unicode hex="1E08"/>
+ <outline>
+ <component base="LtnCapC"/>
+ <component base="CombCedilla" xOffset="750.0"/>
+ <component base="CombAcute" xOffset="1320.0" yOffset="430.0"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apC_C_ircum.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apC_C_ircum.glif
new file mode 100644
index 0000000..0f2f0f8
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apC_C_ircum.glif
@@ -0,0 +1,9 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="LtnCapCCircum" format="2">
+ <advance width="1355"/>
+ <unicode hex="0108"/>
+ <outline>
+ <component base="LtnCapC"/>
+ <component base="CombCircum" xOffset="1320.0" yOffset="430.0"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apD_.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apD_.glif
new file mode 100644
index 0000000..07be047
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apD_.glif
@@ -0,0 +1,45 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="LtnCapD" format="2">
+ <advance width="1435"/>
+ <unicode hex="0044"/>
+ <anchor x="715" y="-100" name="L"/>
+ <anchor x="715" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="175" y="455" type="line"/>
+ <point x="174" y="257"/>
+ <point x="175" y="80"/>
+ <point x="160" y="0" type="curve"/>
+ <point x="160" y="0"/>
+ <point x="467" y="-10"/>
+ <point x="595" y="-10" type="curve" smooth="yes"/>
+ <point x="888" y="-10"/>
+ <point x="1315" y="145"/>
+ <point x="1315" y="740" type="curve" smooth="yes"/>
+ <point x="1315" y="1394"/>
+ <point x="829" y="1470"/>
+ <point x="615" y="1470" type="curve" smooth="yes"/>
+ <point x="480" y="1470"/>
+ <point x="245" y="1466"/>
+ <point x="160" y="1460" type="curve"/>
+ <point x="175" y="1380"/>
+ <point x="175" y="1196"/>
+ <point x="175" y="1000" type="curve" smooth="yes"/>
+ </contour>
+ <contour>
+ <point x="365" y="1305" type="line"/>
+ <point x="415" y="1307"/>
+ <point x="524" y="1310"/>
+ <point x="590" y="1310" type="curve" smooth="yes"/>
+ <point x="878" y="1310"/>
+ <point x="1120" y="1167"/>
+ <point x="1120" y="720" type="curve" smooth="yes"/>
+ <point x="1120" y="308"/>
+ <point x="853" y="155"/>
+ <point x="585" y="155" type="curve" smooth="yes"/>
+ <point x="490" y="155"/>
+ <point x="412" y="161"/>
+ <point x="365" y="165" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apE_.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apE_.glif
new file mode 100644
index 0000000..d37fb05
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apE_.glif
@@ -0,0 +1,35 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="LtnCapE" format="2">
+ <advance width="1160"/>
+ <unicode hex="0045"/>
+ <anchor x="600" y="0" name="H"/>
+ <anchor x="600" y="-100" name="L"/>
+ <anchor x="917" y="0" name="O"/>
+ <anchor x="1160" y="1200" name="R"/>
+ <anchor x="600" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="365" y="845" type="line"/>
+ <point x="365" y="1295" type="line"/>
+ <point x="1010" y="1295" type="line"/>
+ <point x="1010" y="1460" type="line"/>
+ <point x="160" y="1460" type="line"/>
+ <point x="175" y="1380"/>
+ <point x="175" y="1222"/>
+ <point x="175" y="1025" type="curve" smooth="yes"/>
+ <point x="175" y="435" type="line" smooth="yes"/>
+ <point x="175" y="238"/>
+ <point x="175" y="80"/>
+ <point x="160" y="0" type="curve"/>
+ <point x="1040" y="0" type="line"/>
+ <point x="1040" y="180" type="line"/>
+ <point x="960" y="166"/>
+ <point x="826" y="165"/>
+ <point x="629" y="165" type="curve" smooth="yes"/>
+ <point x="365" y="165" type="line"/>
+ <point x="365" y="685" type="line"/>
+ <point x="935" y="685" type="line"/>
+ <point x="935" y="845" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apF_.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apF_.glif
new file mode 100644
index 0000000..9167dfd
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apF_.glif
@@ -0,0 +1,30 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="LtnCapF" format="2">
+ <advance width="1150"/>
+ <unicode hex="0046"/>
+ <anchor x="595" y="-100" name="L"/>
+ <anchor x="595" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="365" y="835" type="line"/>
+ <point x="365" y="1295" type="line"/>
+ <point x="1030" y="1295" type="line"/>
+ <point x="1030" y="1460" type="line"/>
+ <point x="160" y="1460" type="line"/>
+ <point x="175" y="1380"/>
+ <point x="175" y="1217"/>
+ <point x="175" y="1020" type="curve" smooth="yes"/>
+ <point x="175" y="435" type="line" smooth="yes"/>
+ <point x="175" y="238"/>
+ <point x="175" y="80"/>
+ <point x="160" y="0" type="curve"/>
+ <point x="380" y="0" type="line"/>
+ <point x="365" y="78"/>
+ <point x="365" y="237"/>
+ <point x="365" y="435" type="curve" smooth="yes"/>
+ <point x="365" y="675" type="line"/>
+ <point x="945" y="675" type="line"/>
+ <point x="945" y="835" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apG_.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apG_.glif
new file mode 100644
index 0000000..e969082
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apG_.glif
@@ -0,0 +1,42 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="LtnCapG" format="2">
+ <advance width="1420"/>
+ <unicode hex="0047"/>
+ <anchor x="745" y="0" name="H"/>
+ <anchor x="745" y="-100" name="L"/>
+ <anchor x="745" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1275" y="745" type="line"/>
+ <point x="735" y="745" type="line"/>
+ <point x="735" y="580" type="line"/>
+ <point x="1085" y="580" type="line"/>
+ <point x="1085" y="245" type="line"/>
+ <point x="963" y="171"/>
+ <point x="876" y="150"/>
+ <point x="757" y="150" type="curve" smooth="yes"/>
+ <point x="471" y="150"/>
+ <point x="290" y="377"/>
+ <point x="290" y="745" type="curve" smooth="yes"/>
+ <point x="290" y="1094"/>
+ <point x="480" y="1315"/>
+ <point x="785" y="1315" type="curve" smooth="yes"/>
+ <point x="918" y="1315"/>
+ <point x="1046" y="1286"/>
+ <point x="1195" y="1165" type="curve"/>
+ <point x="1260" y="1345" type="line"/>
+ <point x="1085" y="1462"/>
+ <point x="947" y="1485"/>
+ <point x="785" y="1485" type="curve" smooth="yes"/>
+ <point x="402" y="1485"/>
+ <point x="95" y="1199"/>
+ <point x="95" y="720" type="curve" smooth="yes"/>
+ <point x="95" y="241"/>
+ <point x="367" y="-25"/>
+ <point x="745" y="-25" type="curve" smooth="yes"/>
+ <point x="918" y="-25"/>
+ <point x="1070" y="11"/>
+ <point x="1275" y="155" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apH_.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apH_.glif
new file mode 100644
index 0000000..9d529e4
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apH_.glif
@@ -0,0 +1,36 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="LtnCapH" format="2">
+ <advance width="1475"/>
+ <unicode hex="0048"/>
+ <anchor x="285" y="0" name="H"/>
+ <anchor x="725" y="-100" name="L"/>
+ <anchor x="725" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1290" y="0" type="line"/>
+ <point x="1275" y="80"/>
+ <point x="1275" y="238"/>
+ <point x="1275" y="435" type="curve" smooth="yes"/>
+ <point x="1275" y="1025" type="line" smooth="yes"/>
+ <point x="1275" y="1222"/>
+ <point x="1275" y="1380"/>
+ <point x="1290" y="1460" type="curve"/>
+ <point x="1085" y="1460" type="line"/>
+ <point x="1085" y="835" type="line"/>
+ <point x="365" y="835" type="line"/>
+ <point x="365" y="1460" type="line"/>
+ <point x="160" y="1460" type="line"/>
+ <point x="175" y="1380"/>
+ <point x="175" y="1222"/>
+ <point x="175" y="1025" type="curve" smooth="yes"/>
+ <point x="175" y="435" type="line" smooth="yes"/>
+ <point x="175" y="238"/>
+ <point x="175" y="80"/>
+ <point x="160" y="0" type="curve"/>
+ <point x="365" y="0" type="line"/>
+ <point x="365" y="675" type="line"/>
+ <point x="1085" y="675" type="line"/>
+ <point x="1085" y="0" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apI_.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apI_.glif
new file mode 100644
index 0000000..b7e0fb1
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apI_.glif
@@ -0,0 +1,26 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="LtnCapI" format="2">
+ <advance width="975"/>
+ <unicode hex="0049"/>
+ <anchor x="477" y="0" name="H"/>
+ <anchor x="477" y="-100" name="L"/>
+ <anchor x="673" y="0" name="O"/>
+ <anchor x="975" y="1200" name="R"/>
+ <anchor x="477" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="140" y="1460" type="line"/>
+ <point x="140" y="1315" type="line"/>
+ <point x="380" y="1315" type="line"/>
+ <point x="380" y="145" type="line"/>
+ <point x="140" y="145" type="line"/>
+ <point x="140" y="0" type="line"/>
+ <point x="815" y="0" type="line"/>
+ <point x="815" y="145" type="line"/>
+ <point x="570" y="145" type="line"/>
+ <point x="570" y="1315" type="line"/>
+ <point x="815" y="1315" type="line"/>
+ <point x="815" y="1460" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apI_J_.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apI_J_.glif
new file mode 100644
index 0000000..56f2efb
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apI_J_.glif
@@ -0,0 +1,9 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="LtnCapIJ" format="2">
+ <advance width="1940"/>
+ <unicode hex="0132"/>
+ <outline>
+ <component base="LtnCapI"/>
+ <component base="LtnCapJ" xOffset="975"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apJ_.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apJ_.glif
new file mode 100644
index 0000000..46e2482
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apJ_.glif
@@ -0,0 +1,30 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="LtnCapJ" format="2">
+ <advance width="965"/>
+ <unicode hex="004A"/>
+ <anchor x="410" y="-100" name="L"/>
+ <anchor x="675" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="575" y="1460" type="line"/>
+ <point x="588" y="1354"/>
+ <point x="590" y="1175"/>
+ <point x="590" y="980" type="curve"/>
+ <point x="590" y="485" type="line" smooth="yes"/>
+ <point x="590" y="256"/>
+ <point x="487" y="155"/>
+ <point x="340" y="155" type="curve" smooth="yes"/>
+ <point x="248" y="155"/>
+ <point x="147" y="198"/>
+ <point x="80" y="275" type="curve"/>
+ <point x="35" y="90" type="line"/>
+ <point x="106" y="9"/>
+ <point x="250" y="-25"/>
+ <point x="345" y="-25" type="curve" smooth="yes"/>
+ <point x="602" y="-25"/>
+ <point x="780" y="119"/>
+ <point x="780" y="535" type="curve" smooth="yes"/>
+ <point x="780" y="1460" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apK_.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apK_.glif
new file mode 100644
index 0000000..057c735
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apK_.glif
@@ -0,0 +1,35 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="LtnCapK" format="2">
+ <advance width="1310"/>
+ <unicode hex="004B"/>
+ <anchor x="270" y="0" name="H"/>
+ <anchor x="695" y="-100" name="L"/>
+ <anchor x="650" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="925" y="1460" type="line"/>
+ <point x="295" y="703" type="line"/>
+ <point x="425" y="745" type="line"/>
+ <point x="530" y="740" type="line"/>
+ <point x="1165" y="1460" type="line"/>
+ </contour>
+ <contour>
+ <point x="350" y="735" type="line"/>
+ <point x="985" y="0" type="line"/>
+ <point x="1230" y="0" type="line"/>
+ <point x="485" y="860" type="line"/>
+ </contour>
+ <contour>
+ <point x="365" y="1460" type="line"/>
+ <point x="160" y="1460" type="line"/>
+ <point x="175" y="1380"/>
+ <point x="175" y="1222"/>
+ <point x="175" y="1025" type="curve" smooth="yes"/>
+ <point x="175" y="435" type="line" smooth="yes"/>
+ <point x="175" y="238"/>
+ <point x="175" y="80"/>
+ <point x="160" y="0" type="curve"/>
+ <point x="365" y="0" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apL_.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apL_.glif
new file mode 100644
index 0000000..52fdb6f
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apL_.glif
@@ -0,0 +1,28 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="LtnCapL" format="2">
+ <advance width="1080"/>
+ <unicode hex="004C"/>
+ <anchor x="592" y="0" name="H"/>
+ <anchor x="592" y="-100" name="L"/>
+ <anchor x="540" y="1200" name="R"/>
+ <anchor x="592" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="365" y="165" type="line"/>
+ <point x="365" y="1460" type="line"/>
+ <point x="160" y="1460" type="line"/>
+ <point x="175" y="1380"/>
+ <point x="175" y="1222"/>
+ <point x="175" y="1025" type="curve" smooth="yes"/>
+ <point x="175" y="435" type="line" smooth="yes"/>
+ <point x="175" y="238"/>
+ <point x="175" y="80"/>
+ <point x="160" y="0" type="curve"/>
+ <point x="1025" y="0" type="line"/>
+ <point x="1025" y="180" type="line"/>
+ <point x="945" y="166"/>
+ <point x="786" y="165"/>
+ <point x="589" y="165" type="curve" smooth="yes"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apM_.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apM_.glif
new file mode 100644
index 0000000..f350197
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apM_.glif
@@ -0,0 +1,37 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="LtnCapM" format="2">
+ <advance width="1795"/>
+ <unicode hex="004D"/>
+ <anchor x="1521" y="0" name="H"/>
+ <anchor x="885" y="-100" name="L"/>
+ <anchor x="885" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="885" y="205" type="line"/>
+ <point x="455" y="1460" type="line"/>
+ <point x="285" y="1460" type="line"/>
+ <point x="790" y="0" type="line"/>
+ <point x="985" y="0" type="line"/>
+ <point x="1487" y="1460" type="line"/>
+ <point x="1320" y="1460" type="line"/>
+ </contour>
+ <contour>
+ <point x="230" y="1460" type="line"/>
+ <point x="230" y="1460"/>
+ <point x="186" y="198"/>
+ <point x="160" y="0" type="curve"/>
+ <point x="345" y="0" type="line"/>
+ <point x="377" y="1205" type="line"/>
+ <point x="405" y="1460" type="line"/>
+ </contour>
+ <contour>
+ <point x="1610" y="0" type="line"/>
+ <point x="1581" y="198"/>
+ <point x="1540" y="1460"/>
+ <point x="1540" y="1460" type="curve"/>
+ <point x="1365" y="1460" type="line"/>
+ <point x="1397" y="1205" type="line"/>
+ <point x="1425" y="0" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apN_.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apN_.glif
new file mode 100644
index 0000000..2aaa015
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apN_.glif
@@ -0,0 +1,37 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="LtnCapN" format="2">
+ <advance width="1500"/>
+ <unicode hex="004E"/>
+ <anchor x="1230" y="0" name="H"/>
+ <anchor x="737" y="-100" name="L"/>
+ <anchor x="737" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="200" y="1355" type="line"/>
+ <point x="1135" y="0" type="line"/>
+ <point x="1275" y="100" type="line"/>
+ <point x="340" y="1460" type="line"/>
+ </contour>
+ <contour>
+ <point x="1135" y="0" type="line"/>
+ <point x="1300" y="0" type="line"/>
+ <point x="1300" y="1025" type="line" smooth="yes"/>
+ <point x="1300" y="1222"/>
+ <point x="1301" y="1380"/>
+ <point x="1315" y="1460" type="curve"/>
+ <point x="1135" y="1460" type="line"/>
+ </contour>
+ <contour>
+ <point x="340" y="1460" type="line"/>
+ <point x="160" y="1460" type="line"/>
+ <point x="175" y="1380"/>
+ <point x="175" y="1222"/>
+ <point x="175" y="1025" type="curve" smooth="yes"/>
+ <point x="175" y="435" type="line" smooth="yes"/>
+ <point x="175" y="238"/>
+ <point x="175" y="80"/>
+ <point x="160" y="0" type="curve"/>
+ <point x="340" y="0" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apO_.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apO_.glif
new file mode 100644
index 0000000..a8d9d48
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apO_.glif
@@ -0,0 +1,40 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="LtnCapO" format="2">
+ <advance width="1460"/>
+ <unicode hex="004F"/>
+ <anchor x="717" y="0" name="H"/>
+ <anchor x="717" y="-100" name="L"/>
+ <anchor x="994" y="0" name="O"/>
+ <anchor x="1460" y="1200" name="R"/>
+ <anchor x="717" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1145" y="715" type="curve" smooth="yes"/>
+ <point x="1145" y="360"/>
+ <point x="965" y="150"/>
+ <point x="720" y="150" type="curve" smooth="yes"/>
+ <point x="460" y="150"/>
+ <point x="290" y="380"/>
+ <point x="290" y="745" type="curve" smooth="yes"/>
+ <point x="290" y="1091"/>
+ <point x="467" y="1310"/>
+ <point x="720" y="1310" type="curve" smooth="yes"/>
+ <point x="974" y="1310"/>
+ <point x="1145" y="1084"/>
+ </contour>
+ <contour>
+ <point x="1340" y="740" type="curve" smooth="yes"/>
+ <point x="1340" y="1219"/>
+ <point x="1048" y="1485"/>
+ <point x="730" y="1485" type="curve" smooth="yes"/>
+ <point x="407" y="1485"/>
+ <point x="95" y="1199"/>
+ <point x="95" y="720" type="curve" smooth="yes"/>
+ <point x="95" y="241"/>
+ <point x="388" y="-25"/>
+ <point x="710" y="-25" type="curve" smooth="yes"/>
+ <point x="1029" y="-25"/>
+ <point x="1340" y="260"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apP_.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apP_.glif
new file mode 100644
index 0000000..951363e
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apP_.glif
@@ -0,0 +1,50 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="LtnCapP" format="2">
+ <advance width="1195"/>
+ <unicode hex="0050"/>
+ <anchor x="637" y="-100" name="L"/>
+ <anchor x="637" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="365" y="565" type="line"/>
+ <point x="430" y="558"/>
+ <point x="512" y="555"/>
+ <point x="585" y="555" type="curve" smooth="yes"/>
+ <point x="914" y="555"/>
+ <point x="1115" y="736"/>
+ <point x="1115" y="1030" type="curve" smooth="yes"/>
+ <point x="1115" y="1322"/>
+ <point x="908" y="1470"/>
+ <point x="585" y="1470" type="curve" smooth="yes"/>
+ <point x="372" y="1470"/>
+ <point x="160" y="1460"/>
+ <point x="160" y="1460" type="curve"/>
+ <point x="175" y="1380"/>
+ <point x="175" y="1196"/>
+ <point x="175" y="1000" type="curve"/>
+ <point x="175" y="435" type="line" smooth="yes"/>
+ <point x="175" y="238"/>
+ <point x="175" y="80"/>
+ <point x="160" y="0" type="curve"/>
+ <point x="380" y="0" type="line"/>
+ <point x="366" y="78"/>
+ <point x="365" y="237"/>
+ <point x="365" y="435" type="curve" smooth="yes"/>
+ </contour>
+ <contour>
+ <point x="365" y="1305" type="line"/>
+ <point x="433" y="1308"/>
+ <point x="481" y="1310"/>
+ <point x="575" y="1310" type="curve" smooth="yes"/>
+ <point x="841" y="1310"/>
+ <point x="925" y="1170"/>
+ <point x="925" y="1010" type="curve" smooth="yes"/>
+ <point x="925" y="849"/>
+ <point x="850" y="710"/>
+ <point x="570" y="710" type="curve" smooth="yes"/>
+ <point x="495" y="710"/>
+ <point x="428" y="712"/>
+ <point x="365" y="720" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apQ_.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apQ_.glif
new file mode 100644
index 0000000..f77cfcc
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apQ_.glif
@@ -0,0 +1,49 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="LtnCapQ" format="2">
+ <advance width="1475"/>
+ <unicode hex="0051"/>
+ <anchor x="717" y="-270" name="L"/>
+ <anchor x="717" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1340" y="740" type="curve" smooth="yes"/>
+ <point x="1340" y="1219"/>
+ <point x="1053" y="1485"/>
+ <point x="730" y="1485" type="curve" smooth="yes"/>
+ <point x="407" y="1485"/>
+ <point x="95" y="1199"/>
+ <point x="95" y="720" type="curve" smooth="yes"/>
+ <point x="95" y="241"/>
+ <point x="383" y="-25"/>
+ <point x="705" y="-25" type="curve" smooth="yes"/>
+ <point x="767" y="-25"/>
+ <point x="818" y="-18"/>
+ <point x="875" y="0" type="curve"/>
+ <point x="944" y="0"/>
+ <point x="1236" y="-190"/>
+ <point x="1320" y="-190" type="curve" smooth="yes"/>
+ <point x="1374" y="-190"/>
+ <point x="1431" y="-81"/>
+ <point x="1455" y="-45" type="curve"/>
+ <point x="1321" y="-28"/>
+ <point x="1205" y="28"/>
+ <point x="1080" y="105" type="curve"/>
+ <point x="1256" y="236"/>
+ <point x="1340" y="479"/>
+ </contour>
+ <contour>
+ <point x="1145" y="715" type="curve" smooth="yes"/>
+ <point x="1145" y="360"/>
+ <point x="965" y="150"/>
+ <point x="720" y="150" type="curve" smooth="yes"/>
+ <point x="460" y="150"/>
+ <point x="290" y="380"/>
+ <point x="290" y="745" type="curve" smooth="yes"/>
+ <point x="290" y="1091"/>
+ <point x="467" y="1310"/>
+ <point x="720" y="1310" type="curve" smooth="yes"/>
+ <point x="974" y="1310"/>
+ <point x="1145" y="1084"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apR_.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apR_.glif
new file mode 100644
index 0000000..5c26573
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apR_.glif
@@ -0,0 +1,55 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="LtnCapR" format="2">
+ <advance width="1305"/>
+ <unicode hex="0052"/>
+ <anchor x="285" y="0" name="H"/>
+ <anchor x="610" y="-100" name="L"/>
+ <anchor x="610" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="365" y="625" type="line"/>
+ <point x="620" y="625" type="line"/>
+ <point x="805" y="625"/>
+ <point x="1090" y="743"/>
+ <point x="1090" y="1060" type="curve" smooth="yes"/>
+ <point x="1090" y="1349"/>
+ <point x="876" y="1470"/>
+ <point x="565" y="1470" type="curve" smooth="yes"/>
+ <point x="331" y="1470"/>
+ <point x="160" y="1460"/>
+ <point x="160" y="1460" type="curve"/>
+ <point x="175" y="1380"/>
+ <point x="175" y="1196"/>
+ <point x="175" y="1000" type="curve" smooth="yes"/>
+ <point x="175" y="435" type="line"/>
+ <point x="175" y="238"/>
+ <point x="175" y="80"/>
+ <point x="160" y="0" type="curve"/>
+ <point x="380" y="0" type="line"/>
+ <point x="366" y="78"/>
+ <point x="365" y="238"/>
+ <point x="365" y="435" type="curve"/>
+ </contour>
+ <contour>
+ <point x="365" y="1305" type="line"/>
+ <point x="418" y="1307"/>
+ <point x="485" y="1310"/>
+ <point x="555" y="1310" type="curve" smooth="yes"/>
+ <point x="800" y="1310"/>
+ <point x="900" y="1216"/>
+ <point x="900" y="1045" type="curve" smooth="yes"/>
+ <point x="900" y="879"/>
+ <point x="780" y="780"/>
+ <point x="555" y="780" type="curve"/>
+ <point x="365" y="780" type="line"/>
+ </contour>
+ <contour>
+ <point x="561" y="635" type="line"/>
+ <point x="990" y="0" type="line"/>
+ <point x="1245" y="0" type="line"/>
+ <point x="1178" y="73"/>
+ <point x="715" y="710"/>
+ <point x="715" y="710" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apS_.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apS_.glif
new file mode 100644
index 0000000..d366837
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apS_.glif
@@ -0,0 +1,50 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="LtnCapS" format="2">
+ <advance width="1175"/>
+ <unicode hex="0053"/>
+ <anchor x="580" y="0" name="H"/>
+ <anchor x="580" y="-100" name="L"/>
+ <anchor x="580" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1000" y="1395" type="line"/>
+ <point x="870" y="1458"/>
+ <point x="759" y="1485"/>
+ <point x="605" y="1485" type="curve" smooth="yes"/>
+ <point x="273" y="1485"/>
+ <point x="135" y="1250"/>
+ <point x="135" y="1080" type="curve" smooth="yes"/>
+ <point x="135" y="910"/>
+ <point x="203" y="778"/>
+ <point x="515" y="685" type="curve" smooth="yes"/>
+ <point x="827" y="591"/>
+ <point x="875" y="510"/>
+ <point x="875" y="405" type="curve" smooth="yes"/>
+ <point x="875" y="243"/>
+ <point x="726" y="150"/>
+ <point x="565" y="150" type="curve" smooth="yes"/>
+ <point x="417" y="150"/>
+ <point x="272" y="200"/>
+ <point x="140" y="315" type="curve"/>
+ <point x="95" y="110" type="line"/>
+ <point x="197" y="31"/>
+ <point x="372" y="-25"/>
+ <point x="565" y="-25" type="curve" smooth="yes"/>
+ <point x="838" y="-25"/>
+ <point x="1065" y="157"/>
+ <point x="1065" y="425" type="curve" smooth="yes"/>
+ <point x="1065" y="641"/>
+ <point x="920" y="762"/>
+ <point x="655" y="840" type="curve" smooth="yes"/>
+ <point x="370" y="923"/>
+ <point x="325" y="985"/>
+ <point x="325" y="1095" type="curve" smooth="yes"/>
+ <point x="325" y="1205"/>
+ <point x="435" y="1310"/>
+ <point x="595" y="1310" type="curve" smooth="yes"/>
+ <point x="723" y="1310"/>
+ <point x="817" y="1279"/>
+ <point x="960" y="1200" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apT_.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apT_.glif
new file mode 100644
index 0000000..04a79a2
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apT_.glif
@@ -0,0 +1,32 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="LtnCapT" format="2">
+ <advance width="1265"/>
+ <unicode hex="0054"/>
+ <anchor x="622" y="0" name="H"/>
+ <anchor x="622" y="-100" name="L"/>
+ <anchor x="622" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="45" y="1460" type="line"/>
+ <point x="45" y="1275" type="line"/>
+ <point x="125" y="1292"/>
+ <point x="201" y="1295"/>
+ <point x="290" y="1295" type="curve" smooth="yes"/>
+ <point x="525" y="1295" type="line"/>
+ <point x="525" y="435" type="line" smooth="yes"/>
+ <point x="525" y="238"/>
+ <point x="522" y="80"/>
+ <point x="505" y="0" type="curve"/>
+ <point x="735" y="0" type="line"/>
+ <point x="718" y="80"/>
+ <point x="715" y="238"/>
+ <point x="715" y="435" type="curve" smooth="yes"/>
+ <point x="715" y="1295" type="line"/>
+ <point x="955" y="1295" type="line" smooth="yes"/>
+ <point x="1045" y="1295"/>
+ <point x="1120" y="1292"/>
+ <point x="1200" y="1275" type="curve"/>
+ <point x="1200" y="1460" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apU_.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apU_.glif
new file mode 100644
index 0000000..89a8ff7
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apU_.glif
@@ -0,0 +1,38 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="LtnCapU" format="2">
+ <advance width="1440"/>
+ <unicode hex="0055"/>
+ <anchor x="707" y="0" name="H"/>
+ <anchor x="707" y="-100" name="L"/>
+ <anchor x="1026" y="0" name="O"/>
+ <anchor x="1400" y="1200" name="R"/>
+ <anchor x="707" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1050" y="1460" type="line"/>
+ <point x="1050" y="560" type="line" smooth="yes"/>
+ <point x="1050" y="299"/>
+ <point x="968" y="135"/>
+ <point x="710" y="135" type="curve" smooth="yes"/>
+ <point x="447" y="135"/>
+ <point x="365" y="299"/>
+ <point x="365" y="560" type="curve" smooth="yes"/>
+ <point x="365" y="1460" type="line"/>
+ <point x="160" y="1460" type="line"/>
+ <point x="174" y="1380"/>
+ <point x="175" y="1222"/>
+ <point x="175" y="1025" type="curve" smooth="yes"/>
+ <point x="175" y="515" type="line"/>
+ <point x="175" y="190"/>
+ <point x="345" y="-25"/>
+ <point x="710" y="-25" type="curve" smooth="yes"/>
+ <point x="1071" y="-25"/>
+ <point x="1240" y="190"/>
+ <point x="1240" y="515" type="curve"/>
+ <point x="1240" y="1025" type="line" smooth="yes"/>
+ <point x="1240" y="1232"/>
+ <point x="1242" y="1380"/>
+ <point x="1255" y="1460" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apV_.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apV_.glif
new file mode 100644
index 0000000..997a8a7
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apV_.glif
@@ -0,0 +1,26 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="LtnCapV" format="2">
+ <advance width="1365"/>
+ <unicode hex="0056"/>
+ <anchor x="680" y="0" name="H"/>
+ <anchor x="672" y="-100" name="L"/>
+ <anchor x="880" y="0" name="O"/>
+ <anchor x="672" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1095" y="1460" type="line"/>
+ <point x="672" y="195" type="line"/>
+ <point x="250" y="1460" type="line"/>
+ <point x="35" y="1460" type="line"/>
+ <point x="68" y="1378"/>
+ <point x="101" y="1288"/>
+ <point x="170" y="1095" type="curve" smooth="yes"/>
+ <point x="560" y="0" type="line"/>
+ <point x="785" y="0" type="line"/>
+ <point x="1170" y="1095" type="line" smooth="yes"/>
+ <point x="1238" y="1289"/>
+ <point x="1274" y="1378"/>
+ <point x="1310" y="1460" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apW_.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apW_.glif
new file mode 100644
index 0000000..2c1334b
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apW_.glif
@@ -0,0 +1,45 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="LtnCapW" format="2">
+ <advance width="2080"/>
+ <unicode hex="0057"/>
+ <anchor x="1027" y="-100" name="L"/>
+ <anchor x="1027" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1480" y="0" type="line"/>
+ <point x="1595" y="0" type="line"/>
+ <point x="1900" y="1095" type="line" smooth="yes"/>
+ <point x="1954" y="1289"/>
+ <point x="1983" y="1378"/>
+ <point x="2015" y="1460" type="curve"/>
+ <point x="1795" y="1460" type="line"/>
+ <point x="1470" y="130" type="line"/>
+ </contour>
+ <contour>
+ <point x="1120" y="1460" type="line"/>
+ <point x="935" y="1460" type="line"/>
+ <point x="990" y="1305" type="line"/>
+ <point x="1370" y="0" type="line"/>
+ <point x="1480" y="0" type="line"/>
+ <point x="1500" y="130" type="line"/>
+ </contour>
+ <contour>
+ <point x="580" y="0" type="line"/>
+ <point x="685" y="0" type="line"/>
+ <point x="1065" y="1305" type="line"/>
+ <point x="1120" y="1460" type="line"/>
+ <point x="935" y="1460" type="line"/>
+ <point x="560" y="130" type="line"/>
+ </contour>
+ <contour>
+ <point x="260" y="1460" type="line"/>
+ <point x="40" y="1460" type="line"/>
+ <point x="71" y="1381"/>
+ <point x="102" y="1286"/>
+ <point x="155" y="1095" type="curve" smooth="yes"/>
+ <point x="460" y="0" type="line"/>
+ <point x="580" y="0" type="line"/>
+ <point x="590" y="130" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apX_.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apX_.glif
new file mode 100644
index 0000000..441f459
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apX_.glif
@@ -0,0 +1,35 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="LtnCapX" format="2">
+ <advance width="1325"/>
+ <unicode hex="0058"/>
+ <anchor x="650" y="-100" name="L"/>
+ <anchor x="650" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="537" y="781" type="line"/>
+ <point x="265" y="340" type="line" smooth="yes"/>
+ <point x="136" y="132"/>
+ <point x="103" y="86"/>
+ <point x="40" y="0" type="curve"/>
+ <point x="270" y="0" type="line"/>
+ <point x="642" y="614" type="line"/>
+ <point x="1030" y="0" type="line"/>
+ <point x="1260" y="0" type="line"/>
+ <point x="1199" y="82"/>
+ <point x="1165" y="127"/>
+ <point x="1033" y="336" type="curve" smooth="yes"/>
+ <point x="761" y="767" type="line"/>
+ <point x="972" y="1110" type="line" smooth="yes"/>
+ <point x="1097" y="1313"/>
+ <point x="1148" y="1383"/>
+ <point x="1210" y="1460" type="curve"/>
+ <point x="975" y="1460" type="line"/>
+ <point x="656" y="934" type="line"/>
+ <point x="325" y="1460" type="line"/>
+ <point x="90" y="1460" type="line"/>
+ <point x="154" y="1376"/>
+ <point x="201" y="1315"/>
+ <point x="330" y="1110" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apY_.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apY_.glif
new file mode 100644
index 0000000..e21cdce
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnC_apY_.glif
@@ -0,0 +1,32 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="LtnCapY" format="2">
+ <advance width="1320"/>
+ <unicode hex="0059"/>
+ <anchor x="650" y="-100" name="L"/>
+ <anchor x="650" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="35" y="1460" type="line"/>
+ <point x="147" y="1311"/>
+ <point x="213" y="1197"/>
+ <point x="290" y="1065" type="curve" smooth="yes"/>
+ <point x="555" y="611" type="line"/>
+ <point x="555" y="435" type="line" smooth="yes"/>
+ <point x="555" y="238"/>
+ <point x="555" y="80"/>
+ <point x="540" y="0" type="curve"/>
+ <point x="760" y="0" type="line"/>
+ <point x="745" y="80"/>
+ <point x="745" y="238"/>
+ <point x="745" y="435" type="curve" smooth="yes"/>
+ <point x="745" y="603" type="line"/>
+ <point x="1015" y="1065" type="line" smooth="yes"/>
+ <point x="1091" y="1195"/>
+ <point x="1147" y="1291"/>
+ <point x="1265" y="1460" type="curve"/>
+ <point x="1035" y="1460" type="line"/>
+ <point x="660" y="799" type="line"/>
+ <point x="265" y="1460" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mA_.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mA_.glif
new file mode 100644
index 0000000..85a2cbd
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mA_.glif
@@ -0,0 +1,68 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="LtnSmA" format="2">
+ <advance width="1120"/>
+ <unicode hex="0061"/>
+ <note>
+GlyphNote A
+</note>
+ <anchor x="540" y="0" name="H"/>
+ <anchor x="540" y="-100" name="L"/>
+ <anchor x="1125" y="0" name="O"/>
+ <anchor x="1120" y="1000" name="R"/>
+ <anchor x="540" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="950" y="760" type="line"/>
+ <point x="950" y="919"/>
+ <point x="800" y="1040"/>
+ <point x="570" y="1040" type="curve" smooth="yes"/>
+ <point x="418" y="1040"/>
+ <point x="312" y="994"/>
+ <point x="209" y="950" type="curve"/>
+ <point x="203" y="907"/>
+ <point x="200" y="799"/>
+ <point x="199" y="755" type="curve"/>
+ <point x="316" y="837"/>
+ <point x="419" y="880"/>
+ <point x="525" y="880" type="curve" smooth="yes"/>
+ <point x="675" y="880"/>
+ <point x="765" y="831"/>
+ <point x="765" y="710" type="curve" smooth="yes"/>
+ <point x="765" y="635" type="line"/>
+ <point x="724" y="632"/>
+ <point x="564" y="617"/>
+ <point x="495" y="610" type="curve" smooth="yes"/>
+ <point x="186" y="580"/>
+ <point x="95" y="407"/>
+ <point x="95" y="255" type="curve" smooth="yes"/>
+ <point x="95" y="107"/>
+ <point x="232" y="-25"/>
+ <point x="420" y="-25" type="curve" smooth="yes"/>
+ <point x="544" y="-25"/>
+ <point x="677" y="29"/>
+ <point x="795" y="155" type="curve"/>
+ <point x="809" y="91"/>
+ <point x="833" y="32"/>
+ <point x="845" y="0" type="curve"/>
+ <point x="1025" y="0" type="line"/>
+ <point x="981" y="112"/>
+ <point x="950" y="226"/>
+ <point x="950" y="370" type="curve"/>
+ </contour>
+ <contour>
+ <point x="765" y="325" type="line"/>
+ <point x="644" y="164"/>
+ <point x="552" y="140"/>
+ <point x="450" y="140" type="curve" smooth="yes"/>
+ <point x="340" y="140"/>
+ <point x="275" y="191"/>
+ <point x="275" y="280" type="curve" smooth="yes"/>
+ <point x="275" y="372"/>
+ <point x="335" y="450"/>
+ <point x="505" y="470" type="curve" smooth="yes"/>
+ <point x="568" y="478"/>
+ <point x="715" y="493"/>
+ <point x="765" y="495" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mA_A_cute.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mA_A_cute.glif
new file mode 100644
index 0000000..f65e4af
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mA_A_cute.glif
@@ -0,0 +1,14 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="LtnSmAAcute" format="2">
+ <advance width="1120"/>
+ <unicode hex="00E1"/>
+ <anchor x="540" y="0" name="H"/>
+ <anchor x="540" y="-100" name="L"/>
+ <anchor x="1125" y="0" name="O"/>
+ <anchor x="1120" y="1000" name="R"/>
+ <anchor x="540" y="1635" name="U"/>
+ <outline>
+ <component base="LtnSmA"/>
+ <component base="CombAcute" xOffset="1110"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mA_C_ircum.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mA_C_ircum.glif
new file mode 100644
index 0000000..3029ff4
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mA_C_ircum.glif
@@ -0,0 +1,14 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="LtnSmACircum" format="2">
+ <advance width="1120"/>
+ <unicode hex="00E2"/>
+ <anchor x="540" y="0" name="H"/>
+ <anchor x="540" y="-100" name="L"/>
+ <anchor x="1125" y="0" name="O"/>
+ <anchor x="1120" y="1000" name="R"/>
+ <anchor x="540" y="1635" name="U"/>
+ <outline>
+ <component base="LtnSmA"/>
+ <component base="CombCircum" xOffset="1110"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mA_D_iaer.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mA_D_iaer.glif
new file mode 100644
index 0000000..a276885
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mA_D_iaer.glif
@@ -0,0 +1,14 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="LtnSmADiaer" format="2">
+ <advance width="1120"/>
+ <unicode hex="00E4"/>
+ <anchor x="540" y="0" name="H"/>
+ <anchor x="540" y="-100" name="L"/>
+ <anchor x="1125" y="0" name="O"/>
+ <anchor x="1120" y="1000" name="R"/>
+ <anchor x="540" y="1505" name="U"/>
+ <outline>
+ <component base="LtnSmA"/>
+ <component base="CombDiaer" xOffset="1110"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mA_G_rave.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mA_G_rave.glif
new file mode 100644
index 0000000..d738e2a
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mA_G_rave.glif
@@ -0,0 +1,14 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="LtnSmAGrave" format="2">
+ <advance width="1120"/>
+ <unicode hex="00E0"/>
+ <anchor x="540" y="0" name="H"/>
+ <anchor x="540" y="-100" name="L"/>
+ <anchor x="1125" y="0" name="O"/>
+ <anchor x="1120" y="1000" name="R"/>
+ <anchor x="540" y="1635" name="U"/>
+ <outline>
+ <component base="LtnSmA"/>
+ <component base="CombGrave" xOffset="1090"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mA_R_ingA_bv.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mA_R_ingA_bv.glif
new file mode 100644
index 0000000..30de698
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mA_R_ingA_bv.glif
@@ -0,0 +1,41 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="LtnSmARingAbv" format="2">
+ <advance width="1120"/>
+ <unicode hex="00E5"/>
+ <anchor x="540" y="0" name="H"/>
+ <anchor x="540" y="-100" name="L"/>
+ <anchor x="1125" y="0" name="O"/>
+ <anchor x="1120" y="1000" name="R"/>
+ <anchor x="542" y="1635" name="U"/>
+ <outline>
+ <contour>
+ <point x="642" y="1385" type="curve" smooth="yes"/>
+ <point x="642" y="1325"/>
+ <point x="602" y="1285"/>
+ <point x="542" y="1285" type="curve" smooth="yes"/>
+ <point x="482" y="1285"/>
+ <point x="442" y="1325"/>
+ <point x="442" y="1385" type="curve" smooth="yes"/>
+ <point x="442" y="1445"/>
+ <point x="482" y="1485"/>
+ <point x="542" y="1485" type="curve" smooth="yes"/>
+ <point x="602" y="1485"/>
+ <point x="642" y="1445"/>
+ </contour>
+ <contour>
+ <point x="327" y="1385" type="curve" smooth="yes"/>
+ <point x="327" y="1265"/>
+ <point x="422" y="1170"/>
+ <point x="542" y="1170" type="curve" smooth="yes"/>
+ <point x="662" y="1170"/>
+ <point x="757" y="1265"/>
+ <point x="757" y="1385" type="curve" smooth="yes"/>
+ <point x="757" y="1505"/>
+ <point x="662" y="1600"/>
+ <point x="542" y="1600" type="curve" smooth="yes"/>
+ <point x="422" y="1600"/>
+ <point x="327" y="1505"/>
+ </contour>
+ <component base="LtnSmA"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mA_T_ilde.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mA_T_ilde.glif
new file mode 100644
index 0000000..83f6f41
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mA_T_ilde.glif
@@ -0,0 +1,41 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="LtnSmATilde" format="2">
+ <advance width="1120"/>
+ <unicode hex="00E3"/>
+ <anchor x="540" y="0" name="H"/>
+ <anchor x="540" y="-100" name="L"/>
+ <anchor x="1125" y="0" name="O"/>
+ <anchor x="1120" y="1000" name="R"/>
+ <anchor x="540" y="1475" name="U"/>
+ <outline>
+ <contour>
+ <point x="295" y="1205" type="line"/>
+ <point x="300" y="1254"/>
+ <point x="331" y="1290"/>
+ <point x="380" y="1290" type="curve" smooth="yes"/>
+ <point x="417" y="1290"/>
+ <point x="458" y="1274"/>
+ <point x="535" y="1238" type="curve" smooth="yes"/>
+ <point x="596" y="1210"/>
+ <point x="649" y="1190"/>
+ <point x="702" y="1190" type="curve" smooth="yes"/>
+ <point x="825" y="1190"/>
+ <point x="900" y="1312"/>
+ <point x="900" y="1440" type="curve"/>
+ <point x="795" y="1440" type="line"/>
+ <point x="788" y="1394"/>
+ <point x="757" y="1355"/>
+ <point x="710" y="1355" type="curve" smooth="yes"/>
+ <point x="668" y="1355"/>
+ <point x="627" y="1374"/>
+ <point x="555" y="1403" type="curve" smooth="yes"/>
+ <point x="485" y="1431"/>
+ <point x="438" y="1455"/>
+ <point x="382" y="1455" type="curve" smooth="yes"/>
+ <point x="263" y="1455"/>
+ <point x="190" y="1327"/>
+ <point x="190" y="1205" type="curve"/>
+ </contour>
+ <component base="LtnSmA"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mB_.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mB_.glif
new file mode 100644
index 0000000..ab7bcde
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mB_.glif
@@ -0,0 +1,50 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="LtnSmB" format="2">
+ <advance width="1155"/>
+ <unicode hex="0062"/>
+ <anchor x="590" y="0" name="H"/>
+ <anchor x="590" y="-100" name="L"/>
+ <anchor x="1155" y="1000" name="R"/>
+ <anchor x="590" y="1635" name="U"/>
+ <outline>
+ <contour>
+ <point x="130" y="1600" type="line"/>
+ <point x="145" y="1488"/>
+ <point x="145" y="1273"/>
+ <point x="145" y="1130" type="curve" smooth="yes"/>
+ <point x="145" y="936"/>
+ <point x="145" y="228"/>
+ <point x="145" y="65" type="curve"/>
+ <point x="272" y="26"/>
+ <point x="413" y="-25"/>
+ <point x="575" y="-25" type="curve" smooth="yes"/>
+ <point x="870" y="-25"/>
+ <point x="1060" y="197"/>
+ <point x="1060" y="540" type="curve" smooth="yes"/>
+ <point x="1060" y="832"/>
+ <point x="917" y="1040"/>
+ <point x="715" y="1040" type="curve" smooth="yes"/>
+ <point x="547" y="1040"/>
+ <point x="423" y="947"/>
+ <point x="330" y="825" type="curve"/>
+ <point x="330" y="916"/>
+ <point x="330" y="1600"/>
+ <point x="330" y="1600" type="curve"/>
+ </contour>
+ <contour>
+ <point x="330" y="585" type="line"/>
+ <point x="398" y="751"/>
+ <point x="531" y="865"/>
+ <point x="655" y="865" type="curve" smooth="yes"/>
+ <point x="799" y="865"/>
+ <point x="880" y="727"/>
+ <point x="880" y="505" type="curve" smooth="yes"/>
+ <point x="880" y="280"/>
+ <point x="752" y="130"/>
+ <point x="575" y="130" type="curve" smooth="yes"/>
+ <point x="489" y="130"/>
+ <point x="428" y="144"/>
+ <point x="330" y="185" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mC_.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mC_.glif
new file mode 100644
index 0000000..39f16eb
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mC_.glif
@@ -0,0 +1,39 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="LtnSmC" format="2">
+ <advance width="1020"/>
+ <unicode hex="0063"/>
+ <anchor x="580" y="0" name="H"/>
+ <anchor x="580" y="-100" name="L"/>
+ <anchor x="1020" y="1000" name="R"/>
+ <anchor x="570" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="905" y="260" type="line"/>
+ <point x="818" y="183"/>
+ <point x="720" y="140"/>
+ <point x="600" y="140" type="curve" smooth="yes"/>
+ <point x="406" y="140"/>
+ <point x="285" y="285"/>
+ <point x="285" y="500" type="curve" smooth="yes"/>
+ <point x="285" y="736"/>
+ <point x="422" y="875"/>
+ <point x="600" y="875" type="curve" smooth="yes"/>
+ <point x="703" y="875"/>
+ <point x="790" y="841"/>
+ <point x="880" y="775" type="curve"/>
+ <point x="915" y="955" type="line"/>
+ <point x="842" y="1005"/>
+ <point x="748" y="1040"/>
+ <point x="615" y="1040" type="curve" smooth="yes"/>
+ <point x="297" y="1040"/>
+ <point x="95" y="792"/>
+ <point x="95" y="490" type="curve" smooth="yes"/>
+ <point x="95" y="171"/>
+ <point x="312" y="-25"/>
+ <point x="580" y="-25" type="curve" smooth="yes"/>
+ <point x="730" y="-25"/>
+ <point x="824" y="9"/>
+ <point x="925" y="85" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mC_A_cute.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mC_A_cute.glif
new file mode 100644
index 0000000..de7824f
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mC_A_cute.glif
@@ -0,0 +1,9 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="LtnSmCAcute" format="2">
+ <advance width="1355"/>
+ <unicode hex="0107"/>
+ <outline>
+ <component base="LtnCapC"/>
+ <component base="CombAcute" xOffset="1320.0" yOffset="430.0"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mC_A_cuteC_edilla.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mC_A_cuteC_edilla.glif
new file mode 100644
index 0000000..0c65825
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mC_A_cuteC_edilla.glif
@@ -0,0 +1,10 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="LtnSmCAcuteCedilla" format="2">
+ <advance width="1020"/>
+ <unicode hex="1E09"/>
+ <outline>
+ <component base="LtnSmC"/>
+ <component base="CombCedilla" xOffset="580.0"/>
+ <component base="CombAcute" xOffset="1140.0"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mC_C_ircum.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mC_C_ircum.glif
new file mode 100644
index 0000000..5fc7213
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mC_C_ircum.glif
@@ -0,0 +1,9 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="LtnSmCCircum" format="2">
+ <advance width="1020"/>
+ <unicode hex="0109"/>
+ <outline>
+ <component base="LtnSmC"/>
+ <component base="CombCircum" xOffset="1140.0"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mD_.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mD_.glif
new file mode 100644
index 0000000..bbf7c3f
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mD_.glif
@@ -0,0 +1,53 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="LtnSmD" format="2">
+ <advance width="1190"/>
+ <unicode hex="0064"/>
+ <anchor x="605" y="0" name="H"/>
+ <anchor x="605" y="-100" name="L"/>
+ <anchor x="1190" y="1000" name="R"/>
+ <anchor x="605" y="1635" name="U"/>
+ <outline>
+ <contour>
+ <point x="1030" y="1600" type="line"/>
+ <point x="820" y="1600" type="line"/>
+ <point x="839" y="1516"/>
+ <point x="845" y="1395"/>
+ <point x="845" y="1235" type="curve"/>
+ <point x="845" y="955" type="line"/>
+ <point x="767" y="999"/>
+ <point x="665" y="1040"/>
+ <point x="580" y="1040" type="curve" smooth="yes"/>
+ <point x="312" y="1040"/>
+ <point x="105" y="814"/>
+ <point x="105" y="460" type="curve" smooth="yes"/>
+ <point x="105" y="167"/>
+ <point x="261" y="-25"/>
+ <point x="505" y="-25" type="curve" smooth="yes"/>
+ <point x="652" y="-25"/>
+ <point x="775" y="50"/>
+ <point x="870" y="185" type="curve"/>
+ <point x="887" y="111"/>
+ <point x="910" y="34"/>
+ <point x="925" y="0" type="curve"/>
+ <point x="1105" y="0" type="line"/>
+ <point x="1062" y="112"/>
+ <point x="1030" y="278"/>
+ <point x="1030" y="530" type="curve"/>
+ </contour>
+ <contour>
+ <point x="845" y="400" type="line"/>
+ <point x="790" y="268"/>
+ <point x="662" y="135"/>
+ <point x="540" y="135" type="curve" smooth="yes"/>
+ <point x="366" y="135"/>
+ <point x="290" y="258"/>
+ <point x="290" y="490" type="curve" smooth="yes"/>
+ <point x="290" y="727"/>
+ <point x="429" y="870"/>
+ <point x="580" y="870" type="curve" smooth="yes"/>
+ <point x="681" y="870"/>
+ <point x="746" y="848"/>
+ <point x="845" y="795" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mE_.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mE_.glif
new file mode 100644
index 0000000..81c908d
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mE_.glif
@@ -0,0 +1,45 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="LtnSmE" format="2">
+ <advance width="1095"/>
+ <unicode hex="0065"/>
+ <anchor x="545" y="0" name="H"/>
+ <anchor x="569" y="-100" name="L"/>
+ <anchor x="925" y="0" name="O"/>
+ <anchor x="1095" y="1000" name="R"/>
+ <anchor x="569" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="989" y="485" type="line"/>
+ <point x="990" y="503"/>
+ <point x="990" y="545"/>
+ <point x="990" y="563" type="curve" smooth="yes"/>
+ <point x="990" y="788"/>
+ <point x="905" y="1040"/>
+ <point x="575" y="1040" type="curve" smooth="yes"/>
+ <point x="279" y="1040"/>
+ <point x="95" y="826"/>
+ <point x="95" y="495" type="curve" smooth="yes"/>
+ <point x="95" y="155"/>
+ <point x="320" y="-25"/>
+ <point x="575" y="-25" type="curve" smooth="yes"/>
+ <point x="729" y="-25"/>
+ <point x="853" y="2"/>
+ <point x="995" y="75" type="curve"/>
+ <point x="975" y="240" type="line"/>
+ <point x="853" y="166"/>
+ <point x="729" y="140"/>
+ <point x="600" y="140" type="curve" smooth="yes"/>
+ <point x="414" y="140"/>
+ <point x="280" y="258"/>
+ <point x="280" y="505" type="curve" smooth="yes"/>
+ <point x="280" y="770"/>
+ <point x="385" y="890"/>
+ <point x="560" y="890" type="curve" smooth="yes"/>
+ <point x="705" y="890"/>
+ <point x="810" y="797"/>
+ <point x="810" y="625" type="curve"/>
+ <point x="245" y="625" type="line"/>
+ <point x="245" y="485" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mF_.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mF_.glif
new file mode 100644
index 0000000..3134ee2
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mF_.glif
@@ -0,0 +1,39 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="LtnSmF" format="2">
+ <advance width="750"/>
+ <unicode hex="0066"/>
+ <anchor x="370" y="0" name="H"/>
+ <anchor x="335" y="-100" name="L"/>
+ <anchor x="560" y="1635" name="U"/>
+ <outline>
+ <contour>
+ <point x="40" y="850" type="line"/>
+ <point x="240" y="850" type="line"/>
+ <point x="240" y="0" type="line"/>
+ <point x="455" y="0" type="line"/>
+ <point x="433" y="105"/>
+ <point x="425" y="300"/>
+ <point x="425" y="494" type="curve" smooth="yes"/>
+ <point x="425" y="850" type="line"/>
+ <point x="695" y="850" type="line"/>
+ <point x="695" y="995" type="line"/>
+ <point x="425" y="995" type="line"/>
+ <point x="425" y="1210" type="line" smooth="yes"/>
+ <point x="425" y="1381"/>
+ <point x="481" y="1450"/>
+ <point x="585" y="1450" type="curve" smooth="yes"/>
+ <point x="643" y="1450"/>
+ <point x="710" y="1427"/>
+ <point x="760" y="1390" type="curve"/>
+ <point x="805" y="1550" type="line"/>
+ <point x="743" y="1594"/>
+ <point x="663" y="1620"/>
+ <point x="585" y="1620" type="curve" smooth="yes"/>
+ <point x="369" y="1620"/>
+ <point x="240" y="1470"/>
+ <point x="240" y="1170" type="curve" smooth="yes"/>
+ <point x="240" y="995" type="line"/>
+ <point x="40" y="995" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mG_.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mG_.glif
new file mode 100644
index 0000000..def42a0
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mG_.glif
@@ -0,0 +1,91 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="LtnSmG" format="2">
+ <advance width="1095"/>
+ <unicode hex="0067"/>
+ <anchor x="545" y="-432" name="H"/>
+ <anchor x="545" y="-535" name="L"/>
+ <anchor x="1095" y="1000" name="R"/>
+ <anchor x="515" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="330" y="395" type="line"/>
+ <point x="234" y="357"/>
+ <point x="180" y="275"/>
+ <point x="180" y="215" type="curve" smooth="yes"/>
+ <point x="180" y="121"/>
+ <point x="263" y="27"/>
+ <point x="545" y="-5" type="curve" smooth="yes"/>
+ <point x="805" y="-35"/>
+ <point x="880" y="-90"/>
+ <point x="880" y="-170" type="curve" smooth="yes"/>
+ <point x="880" y="-255"/>
+ <point x="731" y="-360"/>
+ <point x="550" y="-360" type="curve" smooth="yes"/>
+ <point x="323" y="-360"/>
+ <point x="215" y="-261"/>
+ <point x="215" y="-180" type="curve" smooth="yes"/>
+ <point x="215" y="-121"/>
+ <point x="244" y="-56"/>
+ <point x="465" y="20" type="curve"/>
+ <point x="459" y="49"/>
+ <point x="290" y="75"/>
+ <point x="290" y="75" type="curve"/>
+ <point x="113" y="2"/>
+ <point x="30" y="-89"/>
+ <point x="30" y="-200" type="curve" smooth="yes"/>
+ <point x="30" y="-409"/>
+ <point x="303" y="-505"/>
+ <point x="535" y="-505" type="curve" smooth="yes"/>
+ <point x="777" y="-505"/>
+ <point x="1065" y="-375"/>
+ <point x="1065" y="-160" type="curve" smooth="yes"/>
+ <point x="1065" y="-8"/>
+ <point x="967" y="90"/>
+ <point x="670" y="125" type="curve" smooth="yes"/>
+ <point x="410" y="156"/>
+ <point x="345" y="198"/>
+ <point x="345" y="235" type="curve" smooth="yes"/>
+ <point x="345" y="271"/>
+ <point x="384" y="316"/>
+ <point x="500" y="350" type="curve"/>
+ </contour>
+ <contour>
+ <point x="1050" y="1040" type="line"/>
+ <point x="951" y="1033"/>
+ <point x="819" y="997"/>
+ <point x="730" y="940" type="curve"/>
+ <point x="795" y="825" type="line"/>
+ <point x="887" y="863"/>
+ <point x="967" y="878"/>
+ <point x="1040" y="880" type="curve"/>
+ </contour>
+ <contour>
+ <point x="115" y="680" type="curve" smooth="yes"/>
+ <point x="115" y="476"/>
+ <point x="289" y="325"/>
+ <point x="515" y="325" type="curve" smooth="yes"/>
+ <point x="742" y="325"/>
+ <point x="915" y="476"/>
+ <point x="915" y="680" type="curve" smooth="yes"/>
+ <point x="915" y="884"/>
+ <point x="742" y="1040"/>
+ <point x="515" y="1040" type="curve" smooth="yes"/>
+ <point x="289" y="1040"/>
+ <point x="115" y="884"/>
+ </contour>
+ <contour>
+ <point x="285" y="680" type="curve" smooth="yes"/>
+ <point x="285" y="803"/>
+ <point x="382" y="895"/>
+ <point x="515" y="895" type="curve" smooth="yes"/>
+ <point x="649" y="895"/>
+ <point x="745" y="803"/>
+ <point x="745" y="680" type="curve" smooth="yes"/>
+ <point x="745" y="557"/>
+ <point x="649" y="465"/>
+ <point x="515" y="465" type="curve" smooth="yes"/>
+ <point x="382" y="465"/>
+ <point x="285" y="557"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mH_.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mH_.glif
new file mode 100644
index 0000000..146c089
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mH_.glif
@@ -0,0 +1,43 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="LtnSmH" format="2">
+ <advance width="1175"/>
+ <unicode hex="0068"/>
+ <anchor x="250" y="0" name="H"/>
+ <anchor x="585" y="-100" name="L"/>
+ <anchor x="585" y="1635" name="U"/>
+ <outline>
+ <contour>
+ <point x="1040" y="0" type="line"/>
+ <point x="1040" y="0"/>
+ <point x="1040" y="459"/>
+ <point x="1040" y="625" type="curve" smooth="yes"/>
+ <point x="1040" y="900"/>
+ <point x="923" y="1040"/>
+ <point x="710" y="1040" type="curve" smooth="yes"/>
+ <point x="570" y="1040"/>
+ <point x="428" y="969"/>
+ <point x="330" y="830" type="curve"/>
+ <point x="330" y="877"/>
+ <point x="330" y="1600"/>
+ <point x="330" y="1600" type="curve"/>
+ <point x="130" y="1600" type="line"/>
+ <point x="145" y="1514"/>
+ <point x="145" y="1345"/>
+ <point x="145" y="1130" type="curve" smooth="yes"/>
+ <point x="145" y="935"/>
+ <point x="145" y="0"/>
+ <point x="145" y="0" type="curve"/>
+ <point x="330" y="0" type="line"/>
+ <point x="330" y="580" type="line"/>
+ <point x="374" y="716"/>
+ <point x="511" y="865"/>
+ <point x="655" y="865" type="curve" smooth="yes"/>
+ <point x="789" y="865"/>
+ <point x="855" y="800"/>
+ <point x="855" y="550" type="curve" smooth="yes"/>
+ <point x="855" y="413"/>
+ <point x="855" y="0"/>
+ <point x="855" y="0" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mI_.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mI_.glif
new file mode 100644
index 0000000..08cb359
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mI_.glif
@@ -0,0 +1,40 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="LtnSmI" format="2">
+ <advance width="565"/>
+ <unicode hex="0069"/>
+ <anchor x="282" y="0" name="H"/>
+ <anchor x="285" y="-100" name="L"/>
+ <anchor x="500" y="0" name="O"/>
+ <anchor x="555" y="1000" name="R"/>
+ <anchor x="282" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="375" y="1020" type="line"/>
+ <point x="175" y="1020" type="line"/>
+ <point x="188" y="915"/>
+ <point x="190" y="725"/>
+ <point x="190" y="530" type="curve" smooth="yes"/>
+ <point x="190" y="336"/>
+ <point x="190" y="0"/>
+ <point x="190" y="0" type="curve"/>
+ <point x="395" y="0" type="line"/>
+ <point x="382" y="107"/>
+ <point x="375" y="346"/>
+ <point x="375" y="475" type="curve" smooth="yes"/>
+ </contour>
+ <contour>
+ <point x="155" y="1345" type="curve" smooth="yes"/>
+ <point x="155" y="1271"/>
+ <point x="206" y="1210"/>
+ <point x="280" y="1210" type="curve" smooth="yes"/>
+ <point x="355" y="1210"/>
+ <point x="410" y="1271"/>
+ <point x="410" y="1345" type="curve" smooth="yes"/>
+ <point x="410" y="1419"/>
+ <point x="355" y="1480"/>
+ <point x="280" y="1480" type="curve" smooth="yes"/>
+ <point x="206" y="1480"/>
+ <point x="155" y="1419"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mI_J_.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mI_J_.glif
new file mode 100644
index 0000000..347d2ad
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mI_J_.glif
@@ -0,0 +1,9 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="LtnSmIJ" format="2">
+ <advance width="1160"/>
+ <unicode hex="0133"/>
+ <outline>
+ <component base="LtnSmI"/>
+ <component base="LtnSmJ" xOffset="565"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mI_T_ilde.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mI_T_ilde.glif
new file mode 100644
index 0000000..8316e85
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mI_T_ilde.glif
@@ -0,0 +1,9 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="LtnSmITilde" format="2">
+ <advance width="1110.0"/>
+ <unicode hex="0129"/>
+ <outline>
+ <component base="LtnSmDotlessI" xOffset="550.0"/>
+ <component base="CombTilde" xOffset="1125.0" yOffset="-1100.0"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mI_T_ildeG_rave.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mI_T_ildeG_rave.glif
new file mode 100644
index 0000000..65aebc1
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mI_T_ildeG_rave.glif
@@ -0,0 +1,9 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="LtnSmITildeGrave" format="2">
+ <unicode hex="E000"/>
+ <outline>
+ <component base="LtnSmDotlessI"/>
+ <component base="CombTilde" xOffset="575.0" yOffset="-1100.0"/>
+ <component base="CombGrave" xOffset="550.0" yOffset="-725.0"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mI_T_ildeG_raveC_edilla.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mI_T_ildeG_raveC_edilla.glif
new file mode 100644
index 0000000..62825a9
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mI_T_ildeG_raveC_edilla.glif
@@ -0,0 +1,14 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="LtnSmITildeGraveCedilla" format="2">
+ <advance width="1150.0"/>
+ <unicode hex="E010"/>
+ <note>
+i cedilla tilde grave
+</note>
+ <outline>
+ <component base="LtnSmDotlessI" xOffset="590.0"/>
+ <component base="CombCedilla" xOffset="590.0"/>
+ <component base="CombTilde" xOffset="1165.0" yOffset="-1100.0"/>
+ <component base="CombGrave" xOffset="1140.0" yOffset="-725.0"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mJ_.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mJ_.glif
new file mode 100644
index 0000000..f5d9485
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mJ_.glif
@@ -0,0 +1,44 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="LtnSmJ" format="2">
+ <advance width="595"/>
+ <unicode hex="006A"/>
+ <anchor x="125" y="-500" name="L"/>
+ <anchor x="313" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="405" y="1020" type="line"/>
+ <point x="205" y="1020" type="line"/>
+ <point x="218" y="915"/>
+ <point x="220" y="725"/>
+ <point x="220" y="530" type="curve"/>
+ <point x="220" y="-25" type="line"/>
+ <point x="220" y="-222"/>
+ <point x="147" y="-300"/>
+ <point x="40" y="-300" type="curve" smooth="yes"/>
+ <point x="-16" y="-300"/>
+ <point x="-111" y="-273"/>
+ <point x="-155" y="-240" type="curve"/>
+ <point x="-190" y="-405" type="line"/>
+ <point x="-130" y="-446"/>
+ <point x="-26" y="-470"/>
+ <point x="30" y="-470" type="curve" smooth="yes"/>
+ <point x="258" y="-470"/>
+ <point x="405" y="-348"/>
+ <point x="405" y="25" type="curve" smooth="yes"/>
+ </contour>
+ <contour>
+ <point x="185" y="1345" type="curve" smooth="yes"/>
+ <point x="185" y="1271"/>
+ <point x="236" y="1210"/>
+ <point x="310" y="1210" type="curve" smooth="yes"/>
+ <point x="385" y="1210"/>
+ <point x="440" y="1271"/>
+ <point x="440" y="1345" type="curve" smooth="yes"/>
+ <point x="440" y="1419"/>
+ <point x="385" y="1480"/>
+ <point x="310" y="1480" type="curve" smooth="yes"/>
+ <point x="236" y="1480"/>
+ <point x="185" y="1419"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mK_.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mK_.glif
new file mode 100644
index 0000000..13033fa
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mK_.glif
@@ -0,0 +1,35 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="LtnSmK" format="2">
+ <advance width="1035"/>
+ <unicode hex="006B"/>
+ <guideline x="500" y="774" angle="314"/>
+ <anchor x="243" y="0" name="H"/>
+ <anchor x="572" y="-100" name="L"/>
+ <anchor x="1035" y="1000" name="R"/>
+ <anchor x="572" y="1635" name="U"/>
+ <outline>
+ <contour>
+ <point x="330" y="0" type="line"/>
+ <point x="330" y="1600" type="line"/>
+ <point x="130" y="1600" type="line"/>
+ <point x="145" y="1514"/>
+ <point x="145" y="1345"/>
+ <point x="145" y="1130" type="curve" smooth="yes"/>
+ <point x="145" y="934"/>
+ <point x="145" y="0"/>
+ <point x="145" y="0" type="curve"/>
+ </contour>
+ <contour>
+ <point x="735" y="1020" type="line"/>
+ <point x="280" y="550" type="line"/>
+ <point x="436" y="524" type="line"/>
+ <point x="985" y="1020" type="line"/>
+ </contour>
+ <contour>
+ <point x="305" y="550" type="line"/>
+ <point x="770" y="0" type="line"/>
+ <point x="1015" y="0" type="line"/>
+ <point x="410" y="660" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mL_.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mL_.glif
new file mode 100644
index 0000000..11d4645
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mL_.glif
@@ -0,0 +1,24 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="LtnSmL" format="2">
+ <advance width="565"/>
+ <unicode hex="006C"/>
+ <guideline x="500" y="874" angle="340"/>
+ <anchor x="290" y="0" name="H"/>
+ <anchor x="290" y="-100" name="L"/>
+ <anchor x="550" y="1000" name="R"/>
+ <anchor x="282" y="1635" name="U"/>
+ <outline>
+ <contour>
+ <point x="375" y="1600" type="line"/>
+ <point x="170" y="1600" type="line"/>
+ <point x="183" y="1485"/>
+ <point x="190" y="1324"/>
+ <point x="190" y="1130" type="curve"/>
+ <point x="190" y="0" type="line"/>
+ <point x="395" y="0" type="line"/>
+ <point x="382" y="109"/>
+ <point x="375" y="346"/>
+ <point x="375" y="475" type="curve" smooth="yes"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mM_.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mM_.glif
new file mode 100644
index 0000000..921bd1f
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mM_.glif
@@ -0,0 +1,52 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="LtnSmM" format="2">
+ <advance width="1685"/>
+ <unicode hex="006D"/>
+ <anchor x="1450" y="0" name="H"/>
+ <anchor x="865" y="-100" name="L"/>
+ <anchor x="865" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="945" y="660" type="line"/>
+ <point x="1003" y="785"/>
+ <point x="1102" y="865"/>
+ <point x="1200" y="865" type="curve" smooth="yes"/>
+ <point x="1312" y="865"/>
+ <point x="1345" y="808"/>
+ <point x="1345" y="550" type="curve" smooth="yes"/>
+ <point x="1345" y="0" type="line"/>
+ <point x="1530" y="0" type="line"/>
+ <point x="1530" y="660" type="line" smooth="yes"/>
+ <point x="1530" y="907"/>
+ <point x="1463" y="1040"/>
+ <point x="1260" y="1040" type="curve" smooth="yes"/>
+ <point x="1155" y="1040"/>
+ <point x="1046" y="1007"/>
+ <point x="921" y="872" type="curve"/>
+ <point x="888" y="960"/>
+ <point x="806" y="1040"/>
+ <point x="675" y="1040" type="curve" smooth="yes"/>
+ <point x="560" y="1040"/>
+ <point x="459" y="1006"/>
+ <point x="337" y="865" type="curve"/>
+ <point x="330" y="913"/>
+ <point x="320" y="978"/>
+ <point x="305" y="1020" type="curve"/>
+ <point x="125" y="1020" type="line"/>
+ <point x="146" y="951"/>
+ <point x="175" y="811"/>
+ <point x="175" y="615" type="curve" smooth="yes"/>
+ <point x="175" y="0" type="line"/>
+ <point x="360" y="0" type="line"/>
+ <point x="360" y="660" type="line"/>
+ <point x="413" y="780"/>
+ <point x="517" y="865"/>
+ <point x="615" y="865" type="curve" smooth="yes"/>
+ <point x="727" y="865"/>
+ <point x="760" y="818"/>
+ <point x="760" y="570" type="curve" smooth="yes"/>
+ <point x="760" y="0" type="line"/>
+ <point x="945" y="0" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mN_.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mN_.glif
new file mode 100644
index 0000000..bb83ce9
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mN_.glif
@@ -0,0 +1,43 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="LtnSmN" format="2">
+ <advance width="1185"/>
+ <unicode hex="006E"/>
+ <anchor x="970" y="0" name="H"/>
+ <anchor x="600" y="-100" name="L"/>
+ <anchor x="600" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="1050" y="0" type="line"/>
+ <point x="1050" y="0"/>
+ <point x="1050" y="459"/>
+ <point x="1050" y="625" type="curve" smooth="yes"/>
+ <point x="1050" y="900"/>
+ <point x="933" y="1040"/>
+ <point x="720" y="1040" type="curve" smooth="yes"/>
+ <point x="579" y="1040"/>
+ <point x="452" y="977"/>
+ <point x="325" y="825" type="curve"/>
+ <point x="318" y="873"/>
+ <point x="300" y="978"/>
+ <point x="285" y="1020" type="curve"/>
+ <point x="105" y="1020" type="line"/>
+ <point x="127" y="951"/>
+ <point x="155" y="811"/>
+ <point x="155" y="615" type="curve" smooth="yes"/>
+ <point x="155" y="420"/>
+ <point x="155" y="0"/>
+ <point x="155" y="0" type="curve"/>
+ <point x="340" y="0" type="line"/>
+ <point x="340" y="580" type="line"/>
+ <point x="384" y="716"/>
+ <point x="521" y="865"/>
+ <point x="665" y="865" type="curve" smooth="yes"/>
+ <point x="800" y="865"/>
+ <point x="865" y="800"/>
+ <point x="865" y="550" type="curve" smooth="yes"/>
+ <point x="865" y="413"/>
+ <point x="865" y="0"/>
+ <point x="865" y="0" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mO_.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mO_.glif
new file mode 100644
index 0000000..307e0a8
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mO_.glif
@@ -0,0 +1,40 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="LtnSmO" format="2">
+ <advance width="1140"/>
+ <unicode hex="006F"/>
+ <anchor x="570" y="0" name="H"/>
+ <anchor x="570" y="-100" name="L"/>
+ <anchor x="835" y="0" name="O"/>
+ <anchor x="1140" y="1000" name="R"/>
+ <anchor x="570" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="95" y="505" type="curve" smooth="yes"/>
+ <point x="95" y="161"/>
+ <point x="286" y="-25"/>
+ <point x="560" y="-25" type="curve" smooth="yes"/>
+ <point x="823" y="-25"/>
+ <point x="1045" y="161"/>
+ <point x="1045" y="505" type="curve" smooth="yes"/>
+ <point x="1045" y="849"/>
+ <point x="855" y="1040"/>
+ <point x="580" y="1040" type="curve" smooth="yes"/>
+ <point x="317" y="1040"/>
+ <point x="95" y="849"/>
+ </contour>
+ <contour>
+ <point x="280" y="505" type="curve" smooth="yes"/>
+ <point x="280" y="739"/>
+ <point x="408" y="880"/>
+ <point x="570" y="880" type="curve" smooth="yes"/>
+ <point x="742" y="880"/>
+ <point x="860" y="739"/>
+ <point x="860" y="505" type="curve" smooth="yes"/>
+ <point x="860" y="272"/>
+ <point x="731" y="135"/>
+ <point x="570" y="135" type="curve" smooth="yes"/>
+ <point x="398" y="135"/>
+ <point x="280" y="272"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mP_.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mP_.glif
new file mode 100644
index 0000000..ec43067
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mP_.glif
@@ -0,0 +1,56 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="LtnSmP" format="2">
+ <advance width="1170"/>
+ <unicode hex="0070"/>
+ <guideline x="214" y="-490" angle="0"/>
+ <anchor x="265" y="-435" name="H"/>
+ <anchor x="590" y="-500" name="L"/>
+ <anchor x="1170" y="1000" name="R"/>
+ <anchor x="590" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="105" y="1020" type="line"/>
+ <point x="150" y="907"/>
+ <point x="155" y="734"/>
+ <point x="155" y="485" type="curve" smooth="yes"/>
+ <point x="155" y="291"/>
+ <point x="155" y="-490"/>
+ <point x="155" y="-490" type="curve"/>
+ <point x="365" y="-490" type="line"/>
+ <point x="348" y="-405"/>
+ <point x="340" y="-310"/>
+ <point x="340" y="-150" type="curve"/>
+ <point x="340" y="85" type="line"/>
+ <point x="435" y="18"/>
+ <point x="513" y="-25"/>
+ <point x="620" y="-25" type="curve" smooth="yes"/>
+ <point x="871" y="-25"/>
+ <point x="1075" y="193"/>
+ <point x="1075" y="535" type="curve" smooth="yes"/>
+ <point x="1075" y="828"/>
+ <point x="923" y="1040"/>
+ <point x="695" y="1040" type="curve" smooth="yes"/>
+ <point x="547" y="1040"/>
+ <point x="419" y="954"/>
+ <point x="325" y="830" type="curve"/>
+ <point x="316" y="922"/>
+ <point x="300" y="986"/>
+ <point x="285" y="1020" type="curve"/>
+ </contour>
+ <contour>
+ <point x="340" y="575" type="line"/>
+ <point x="414" y="768"/>
+ <point x="545" y="870"/>
+ <point x="660" y="870" type="curve" smooth="yes"/>
+ <point x="804" y="870"/>
+ <point x="890" y="727"/>
+ <point x="890" y="505" type="curve" smooth="yes"/>
+ <point x="890" y="279"/>
+ <point x="761" y="140"/>
+ <point x="620" y="140" type="curve" smooth="yes"/>
+ <point x="528" y="140"/>
+ <point x="477" y="164"/>
+ <point x="340" y="260" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mQ_.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mQ_.glif
new file mode 100644
index 0000000..9a891c1
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mQ_.glif
@@ -0,0 +1,47 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="LtnSmQ" format="2">
+ <advance width="1130"/>
+ <unicode hex="0071"/>
+ <anchor x="555" y="-500" name="L"/>
+ <anchor x="1130" y="1000" name="R"/>
+ <anchor x="555" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="795" y="-490" type="line"/>
+ <point x="1005" y="-490" type="line"/>
+ <point x="988" y="-405"/>
+ <point x="980" y="-310"/>
+ <point x="980" y="-150" type="curve" smooth="yes"/>
+ <point x="980" y="-26"/>
+ <point x="980" y="965"/>
+ <point x="980" y="965" type="curve"/>
+ <point x="872" y="1001"/>
+ <point x="746" y="1040"/>
+ <point x="625" y="1040" type="curve" smooth="yes"/>
+ <point x="260" y="1040"/>
+ <point x="105" y="742"/>
+ <point x="105" y="435" type="curve" smooth="yes"/>
+ <point x="105" y="117"/>
+ <point x="321" y="-25"/>
+ <point x="505" y="-25" type="curve" smooth="yes"/>
+ <point x="598" y="-25"/>
+ <point x="691" y="19"/>
+ <point x="795" y="140" type="curve"/>
+ </contour>
+ <contour>
+ <point x="795" y="365" type="line"/>
+ <point x="713" y="219"/>
+ <point x="612" y="145"/>
+ <point x="520" y="145" type="curve" smooth="yes"/>
+ <point x="412" y="145"/>
+ <point x="290" y="237"/>
+ <point x="290" y="485" type="curve" smooth="yes"/>
+ <point x="290" y="674"/>
+ <point x="376" y="870"/>
+ <point x="595" y="870" type="curve" smooth="yes"/>
+ <point x="656" y="870"/>
+ <point x="735" y="853"/>
+ <point x="795" y="830" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mR_.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mR_.glif
new file mode 100644
index 0000000..a49e22e
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mR_.glif
@@ -0,0 +1,36 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="LtnSmR" format="2">
+ <advance width="890"/>
+ <unicode hex="0072"/>
+ <guideline x="214" y="500" angle="0"/>
+ <anchor x="270" y="0" name="H"/>
+ <anchor x="255" y="-100" name="L"/>
+ <anchor x="455" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="340" y="0" type="line"/>
+ <point x="340" y="580" type="line"/>
+ <point x="384" y="716"/>
+ <point x="521" y="860"/>
+ <point x="605" y="860" type="curve" smooth="yes"/>
+ <point x="684" y="860"/>
+ <point x="720" y="770"/>
+ <point x="720" y="670" type="curve"/>
+ <point x="880" y="705" type="line"/>
+ <point x="880" y="880"/>
+ <point x="817" y="1040"/>
+ <point x="650" y="1040" type="curve" smooth="yes"/>
+ <point x="559" y="1040"/>
+ <point x="422" y="964"/>
+ <point x="325" y="825" type="curve"/>
+ <point x="318" y="873"/>
+ <point x="300" y="978"/>
+ <point x="285" y="1020" type="curve"/>
+ <point x="105" y="1020" type="line"/>
+ <point x="127" y="951"/>
+ <point x="155" y="811"/>
+ <point x="155" y="615" type="curve" smooth="yes"/>
+ <point x="155" y="0" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mS_.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mS_.glif
new file mode 100644
index 0000000..e823587
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mS_.glif
@@ -0,0 +1,50 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="LtnSmS" format="2">
+ <advance width="965"/>
+ <unicode hex="0073"/>
+ <anchor x="495" y="0" name="H"/>
+ <anchor x="495" y="-100" name="L"/>
+ <anchor x="495" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="835" y="960" type="line"/>
+ <point x="766" y="998"/>
+ <point x="660" y="1040"/>
+ <point x="515" y="1040" type="curve" smooth="yes"/>
+ <point x="211" y="1040"/>
+ <point x="130" y="832"/>
+ <point x="130" y="740" type="curve" smooth="yes"/>
+ <point x="130" y="616"/>
+ <point x="182" y="514"/>
+ <point x="425" y="455" type="curve" smooth="yes"/>
+ <point x="649" y="400"/>
+ <point x="700" y="345"/>
+ <point x="700" y="270" type="curve" smooth="yes"/>
+ <point x="700" y="201"/>
+ <point x="617" y="135"/>
+ <point x="500" y="135" type="curve" smooth="yes"/>
+ <point x="394" y="135"/>
+ <point x="250" y="189"/>
+ <point x="160" y="270" type="curve"/>
+ <point x="110" y="90" type="line"/>
+ <point x="189" y="28"/>
+ <point x="333" y="-25"/>
+ <point x="495" y="-25" type="curve" smooth="yes"/>
+ <point x="710" y="-25"/>
+ <point x="880" y="115"/>
+ <point x="880" y="295" type="curve" smooth="yes"/>
+ <point x="880" y="481"/>
+ <point x="731" y="559"/>
+ <point x="550" y="600" type="curve" smooth="yes"/>
+ <point x="340" y="648"/>
+ <point x="310" y="680"/>
+ <point x="310" y="750" type="curve" smooth="yes"/>
+ <point x="310" y="810"/>
+ <point x="358" y="880"/>
+ <point x="505" y="880" type="curve" smooth="yes"/>
+ <point x="629" y="880"/>
+ <point x="733" y="824"/>
+ <point x="800" y="785" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mT_.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mT_.glif
new file mode 100644
index 0000000..841b84d
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mT_.glif
@@ -0,0 +1,39 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="LtnSmT" format="2">
+ <advance width="835"/>
+ <unicode hex="0074"/>
+ <anchor x="475" y="0" name="H"/>
+ <anchor x="475" y="-100" name="L"/>
+ <anchor x="835" y="1000" name="R"/>
+ <anchor x="325" y="1360" name="U"/>
+ <outline>
+ <contour>
+ <point x="760" y="215" type="line"/>
+ <point x="672" y="166"/>
+ <point x="600" y="140"/>
+ <point x="543" y="140" type="curve" smooth="yes"/>
+ <point x="453" y="140"/>
+ <point x="415" y="184"/>
+ <point x="415" y="390" type="curve" smooth="yes"/>
+ <point x="415" y="528"/>
+ <point x="415" y="1320"/>
+ <point x="415" y="1320" type="curve"/>
+ <point x="230" y="1320" type="line"/>
+ <point x="230" y="1320"/>
+ <point x="230" y="435"/>
+ <point x="230" y="270" type="curve" smooth="yes"/>
+ <point x="230" y="39"/>
+ <point x="356" y="-25"/>
+ <point x="512" y="-25" type="curve" smooth="yes"/>
+ <point x="582" y="-25"/>
+ <point x="668" y="-4"/>
+ <point x="760" y="55" type="curve"/>
+ </contour>
+ <contour>
+ <point x="30" y="850" type="line"/>
+ <point x="740" y="850" type="line"/>
+ <point x="740" y="995" type="line"/>
+ <point x="30" y="995" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mU_.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mU_.glif
new file mode 100644
index 0000000..58e1d92
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mU_.glif
@@ -0,0 +1,51 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="LtnSmU" format="2">
+ <advance width="1185"/>
+ <unicode hex="0075"/>
+ <anchor x="589" y="0" name="H"/>
+ <anchor x="589" y="-100" name="L"/>
+ <anchor x="1192" y="0" name="O"/>
+ <anchor x="1185" y="1000" name="R"/>
+ <anchor x="589" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="1090" y="0" type="line"/>
+ <point x="1048" y="112"/>
+ <point x="1025" y="256"/>
+ <point x="1025" y="450" type="curve" smooth="yes"/>
+ <point x="1025" y="646"/>
+ <point x="1025" y="1020"/>
+ <point x="1025" y="1020" type="curve"/>
+ <point x="820" y="1020" type="line"/>
+ <point x="838" y="898"/>
+ <point x="840" y="832"/>
+ <point x="840" y="700" type="curve" smooth="yes"/>
+ <point x="840" y="420" type="line"/>
+ <point x="787" y="298"/>
+ <point x="628" y="140"/>
+ <point x="510" y="140" type="curve" smooth="yes"/>
+ <point x="383" y="140"/>
+ <point x="340" y="238"/>
+ <point x="340" y="465" type="curve" smooth="yes"/>
+ <point x="340" y="603"/>
+ <point x="340" y="1020"/>
+ <point x="340" y="1020" type="curve"/>
+ <point x="135" y="1020" type="line"/>
+ <point x="153" y="900"/>
+ <point x="155" y="827"/>
+ <point x="155" y="700" type="curve" smooth="yes"/>
+ <point x="155" y="681"/>
+ <point x="155" y="424"/>
+ <point x="155" y="405" type="curve" smooth="yes"/>
+ <point x="155" y="120"/>
+ <point x="262" y="-25"/>
+ <point x="475" y="-25" type="curve" smooth="yes"/>
+ <point x="615" y="-25"/>
+ <point x="744" y="53"/>
+ <point x="865" y="200" type="curve"/>
+ <point x="875" y="125"/>
+ <point x="901" y="46"/>
+ <point x="920" y="0" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mV_.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mV_.glif
new file mode 100644
index 0000000..803148c
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mV_.glif
@@ -0,0 +1,30 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="LtnSmV" format="2">
+ <advance width="1070"/>
+ <unicode hex="0076"/>
+ <anchor x="549" y="0" name="H"/>
+ <anchor x="535" y="-100" name="L"/>
+ <anchor x="725" y="0" name="O"/>
+ <anchor x="535" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="840" y="1020" type="line"/>
+ <point x="535" y="200" type="line"/>
+ <point x="230" y="1020" type="line"/>
+ <point x="20" y="1020" type="line"/>
+ <point x="75" y="905"/>
+ <point x="143" y="746"/>
+ <point x="175" y="665" type="curve" smooth="yes"/>
+ <point x="237" y="510"/>
+ <point x="440" y="0"/>
+ <point x="440" y="0" type="curve"/>
+ <point x="630" y="0" type="line"/>
+ <point x="630" y="0"/>
+ <point x="842" y="536"/>
+ <point x="895" y="665" type="curve" smooth="yes"/>
+ <point x="928" y="744"/>
+ <point x="993" y="905"/>
+ <point x="1050" y="1020" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mW_.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mW_.glif
new file mode 100644
index 0000000..947f002
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mW_.glif
@@ -0,0 +1,30 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="LtnSmW" format="2">
+ <advance width="1550"/>
+ <unicode hex="0077"/>
+ <anchor x="775" y="-100" name="L"/>
+ <anchor x="775" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="700" y="1020" type="line"/>
+ <point x="440" y="215" type="line"/>
+ <point x="230" y="1020" type="line"/>
+ <point x="45" y="1020" type="line"/>
+ <point x="92" y="867"/>
+ <point x="120" y="771"/>
+ <point x="150" y="665" type="curve" smooth="yes"/>
+ <point x="335" y="0" type="line"/>
+ <point x="525" y="0" type="line"/>
+ <point x="775" y="785" type="line"/>
+ <point x="1025" y="0" type="line"/>
+ <point x="1215" y="0" type="line"/>
+ <point x="1400" y="665" type="line" smooth="yes"/>
+ <point x="1434" y="785"/>
+ <point x="1458" y="868"/>
+ <point x="1505" y="1020" type="curve"/>
+ <point x="1320" y="1020" type="line"/>
+ <point x="1110" y="215" type="line"/>
+ <point x="850" y="1020" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mX_.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mX_.glif
new file mode 100644
index 0000000..a194d45
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mX_.glif
@@ -0,0 +1,40 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="LtnSmX" format="2">
+ <advance width="1085"/>
+ <unicode hex="0078"/>
+ <anchor x="900" y="0" name="H"/>
+ <anchor x="542" y="-100" name="L"/>
+ <anchor x="542" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="805" y="0" type="line"/>
+ <point x="1035" y="0" type="line"/>
+ <point x="927" y="142"/>
+ <point x="902" y="170"/>
+ <point x="830" y="270" type="curve" smooth="yes"/>
+ <point x="290" y="1020" type="line"/>
+ <point x="60" y="1020" type="line"/>
+ <point x="168" y="887"/>
+ <point x="203" y="843"/>
+ <point x="270" y="750" type="curve"/>
+ </contour>
+ <contour>
+ <point x="489" y="616" type="line"/>
+ <point x="250" y="270" type="line" smooth="yes"/>
+ <point x="189" y="182"/>
+ <point x="160" y="143"/>
+ <point x="50" y="0" type="curve"/>
+ <point x="275" y="0" type="line"/>
+ <point x="556" y="404" type="line"/>
+ </contour>
+ <contour>
+ <point x="585" y="405" type="line"/>
+ <point x="820" y="750" type="line" smooth="yes"/>
+ <point x="883" y="842"/>
+ <point x="917" y="886"/>
+ <point x="1020" y="1020" type="curve"/>
+ <point x="795" y="1020" type="line"/>
+ <point x="520" y="615" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mY_.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mY_.glif
new file mode 100644
index 0000000..804529e
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/L_tnS_mY_.glif
@@ -0,0 +1,42 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="LtnSmY" format="2">
+ <advance width="1060"/>
+ <unicode hex="0079"/>
+ <anchor x="795" y="-100" name="L"/>
+ <anchor x="1120" y="1000" name="R"/>
+ <anchor x="535" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="610" y="60" type="line"/>
+ <point x="230" y="1020" type="line"/>
+ <point x="30" y="1020" type="line"/>
+ <point x="107" y="864"/>
+ <point x="153" y="756"/>
+ <point x="190" y="665" type="curve" smooth="yes"/>
+ <point x="525" y="-165" type="line"/>
+ </contour>
+ <contour>
+ <point x="895" y="665" type="line"/>
+ <point x="928" y="758"/>
+ <point x="971" y="865"/>
+ <point x="1040" y="1020" type="curve"/>
+ <point x="840" y="1020" type="line"/>
+ <point x="840" y="1020"/>
+ <point x="564" y="230"/>
+ <point x="500" y="55" type="curve" smooth="yes"/>
+ <point x="391" y="-248"/>
+ <point x="315" y="-300"/>
+ <point x="225" y="-300" type="curve" smooth="yes"/>
+ <point x="159" y="-300"/>
+ <point x="82" y="-260"/>
+ <point x="40" y="-225" type="curve"/>
+ <point x="-20" y="-385" type="line"/>
+ <point x="53" y="-439"/>
+ <point x="134" y="-470"/>
+ <point x="225" y="-470" type="curve" smooth="yes"/>
+ <point x="395" y="-470"/>
+ <point x="516" y="-383"/>
+ <point x="655" y="0" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/N_onB_reakingH_yphen.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/N_onB_reakingH_yphen.glif
new file mode 100644
index 0000000..69d61c1
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/N_onB_reakingH_yphen.glif
@@ -0,0 +1,9 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="NonBreakingHyphen" format="2">
+ <advance width="860"/>
+ <unicode hex="2011"/>
+ <anchor x="430" y="1100" name="U"/>
+ <outline>
+ <component base="HyphenMinus"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/N_umS_gn.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/N_umS_gn.glif
new file mode 100644
index 0000000..4128da8
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/N_umS_gn.glif
@@ -0,0 +1,31 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="NumSgn" format="2">
+ <advance width="1200"/>
+ <unicode hex="0023"/>
+ <outline>
+ <contour>
+ <point x="487" y="1460" type="line"/>
+ <point x="127" y="200" type="line"/>
+ <point x="277" y="200" type="line"/>
+ <point x="637" y="1460" type="line"/>
+ </contour>
+ <contour>
+ <point x="25" y="575" type="line"/>
+ <point x="1116" y="575" type="line"/>
+ <point x="1116" y="725" type="line"/>
+ <point x="25" y="725" type="line"/>
+ </contour>
+ <contour>
+ <point x="84" y="960" type="line"/>
+ <point x="1175" y="960" type="line"/>
+ <point x="1175" y="1110" type="line"/>
+ <point x="84" y="1110" type="line"/>
+ </contour>
+ <contour>
+ <point x="912" y="1460" type="line"/>
+ <point x="552" y="200" type="line"/>
+ <point x="702" y="200" type="line"/>
+ <point x="1062" y="1460" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/P_ercentS_gn.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/P_ercentS_gn.glif
new file mode 100644
index 0000000..ed94862
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/P_ercentS_gn.glif
@@ -0,0 +1,69 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="PercentSgn" format="2">
+ <advance width="1526"/>
+ <unicode hex="0025"/>
+ <outline>
+ <contour>
+ <point x="1261" y="366" type="curve" smooth="yes"/>
+ <point x="1261" y="182"/>
+ <point x="1216" y="115"/>
+ <point x="1130" y="115" type="curve" smooth="yes"/>
+ <point x="1041" y="115"/>
+ <point x="1001" y="181"/>
+ <point x="1001" y="381" type="curve" smooth="yes"/>
+ <point x="1001" y="565"/>
+ <point x="1043" y="630"/>
+ <point x="1130" y="630" type="curve" smooth="yes"/>
+ <point x="1221" y="630"/>
+ <point x="1261" y="566"/>
+ </contour>
+ <contour>
+ <point x="1426" y="379" type="curve" smooth="yes"/>
+ <point x="1426" y="652"/>
+ <point x="1310" y="770"/>
+ <point x="1135" y="770" type="curve" smooth="yes"/>
+ <point x="961" y="770"/>
+ <point x="836" y="650"/>
+ <point x="836" y="368" type="curve" smooth="yes"/>
+ <point x="836" y="86"/>
+ <point x="951" y="-25"/>
+ <point x="1126" y="-25" type="curve" smooth="yes"/>
+ <point x="1301" y="-25"/>
+ <point x="1426" y="84"/>
+ </contour>
+ <contour>
+ <point x="1073" y="1480" type="line"/>
+ <point x="291" y="-25" type="line"/>
+ <point x="459" y="-25" type="line"/>
+ <point x="1239" y="1480" type="line"/>
+ </contour>
+ <contour>
+ <point x="525" y="1076" type="curve" smooth="yes"/>
+ <point x="525" y="892"/>
+ <point x="480" y="825"/>
+ <point x="394" y="825" type="curve" smooth="yes"/>
+ <point x="305" y="825"/>
+ <point x="265" y="891"/>
+ <point x="265" y="1091" type="curve" smooth="yes"/>
+ <point x="265" y="1275"/>
+ <point x="307" y="1340"/>
+ <point x="394" y="1340" type="curve" smooth="yes"/>
+ <point x="485" y="1340"/>
+ <point x="525" y="1276"/>
+ </contour>
+ <contour>
+ <point x="690" y="1089" type="curve" smooth="yes"/>
+ <point x="690" y="1362"/>
+ <point x="574" y="1480"/>
+ <point x="399" y="1480" type="curve" smooth="yes"/>
+ <point x="225" y="1480"/>
+ <point x="100" y="1360"/>
+ <point x="100" y="1078" type="curve" smooth="yes"/>
+ <point x="100" y="796"/>
+ <point x="215" y="685"/>
+ <point x="390" y="685" type="curve" smooth="yes"/>
+ <point x="565" y="685"/>
+ <point x="690" y="794"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/P_lusS_gn.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/P_lusS_gn.glif
new file mode 100644
index 0000000..13fc2a0
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/P_lusS_gn.glif
@@ -0,0 +1,19 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="PlusSgn" format="2">
+ <advance width="1200"/>
+ <unicode hex="002B"/>
+ <outline>
+ <contour>
+ <point x="525" y="1180" type="line"/>
+ <point x="525" y="285" type="line"/>
+ <point x="675" y="285" type="line"/>
+ <point x="675" y="1180" type="line"/>
+ </contour>
+ <contour>
+ <point x="155" y="660" type="line"/>
+ <point x="1045" y="660" type="line"/>
+ <point x="1045" y="810" type="line"/>
+ <point x="155" y="810" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/Q_stnM_rk.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/Q_stnM_rk.glif
new file mode 100644
index 0000000..ab5a7d9
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/Q_stnM_rk.glif
@@ -0,0 +1,49 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="QstnMrk" format="2">
+ <advance width="1050"/>
+ <unicode hex="003F"/>
+ <outline>
+ <contour>
+ <point x="460" y="1540" type="curve" smooth="yes"/>
+ <point x="335" y="1540"/>
+ <point x="206" y="1493"/>
+ <point x="140" y="1430" type="curve"/>
+ <point x="185" y="1251" type="line"/>
+ <point x="261" y="1330"/>
+ <point x="352" y="1365"/>
+ <point x="432" y="1365" type="curve" smooth="yes"/>
+ <point x="579" y="1365"/>
+ <point x="625" y="1289"/>
+ <point x="625" y="1230" type="curve" smooth="yes"/>
+ <point x="625" y="1159"/>
+ <point x="572" y="1092"/>
+ <point x="485" y="980" type="curve" smooth="yes"/>
+ <point x="397" y="867"/>
+ <point x="355" y="730"/>
+ <point x="355" y="440" type="curve"/>
+ <point x="540" y="440" type="line"/>
+ <point x="540" y="721"/>
+ <point x="561" y="806"/>
+ <point x="665" y="927" type="curve" smooth="yes"/>
+ <point x="753" y="1028"/>
+ <point x="830" y="1117"/>
+ <point x="830" y="1240" type="curve" smooth="yes"/>
+ <point x="830" y="1422"/>
+ <point x="697" y="1540"/>
+ </contour>
+ <contour>
+ <point x="315" y="110" type="curve" smooth="yes"/>
+ <point x="315" y="36"/>
+ <point x="376" y="-25"/>
+ <point x="450" y="-25" type="curve" smooth="yes"/>
+ <point x="524" y="-25"/>
+ <point x="585" y="36"/>
+ <point x="585" y="110" type="curve" smooth="yes"/>
+ <point x="585" y="184"/>
+ <point x="524" y="245"/>
+ <point x="450" y="245" type="curve" smooth="yes"/>
+ <point x="376" y="245"/>
+ <point x="315" y="184"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/Q_uotM_rk.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/Q_uotM_rk.glif
new file mode 100644
index 0000000..cbffc49
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/Q_uotM_rk.glif
@@ -0,0 +1,27 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="QuotMrk" format="2">
+ <advance width="1025"/>
+ <unicode hex="0022"/>
+ <outline>
+ <contour>
+ <point x="405" y="1045" type="line"/>
+ <point x="410" y="1186"/>
+ <point x="416" y="1339"/>
+ <point x="445" y="1585" type="curve"/>
+ <point x="240" y="1585" type="line"/>
+ <point x="271" y="1339"/>
+ <point x="276" y="1186"/>
+ <point x="280" y="1045" type="curve"/>
+ </contour>
+ <contour>
+ <point x="745" y="1045" type="line"/>
+ <point x="750" y="1186"/>
+ <point x="756" y="1339"/>
+ <point x="785" y="1585" type="curve"/>
+ <point x="580" y="1585" type="line"/>
+ <point x="611" y="1339"/>
+ <point x="616" y="1186"/>
+ <point x="620" y="1045" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/R_everseS_olidus.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/R_everseS_olidus.glif
new file mode 100644
index 0000000..1860a5c
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/R_everseS_olidus.glif
@@ -0,0 +1,13 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="ReverseSolidus" format="2">
+ <advance width="1000"/>
+ <unicode hex="005C"/>
+ <outline>
+ <contour>
+ <point x="990" y="-245" type="line"/>
+ <point x="160" y="1600" type="line"/>
+ <point x="10" y="1600" type="line"/>
+ <point x="840" y="-245" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/R_tC_urlyB_rac.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/R_tC_urlyB_rac.glif
new file mode 100644
index 0000000..28db4ac
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/R_tC_urlyB_rac.glif
@@ -0,0 +1,47 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="RtCurlyBrac" format="2">
+ <advance width="1000"/>
+ <unicode hex="007D"/>
+ <outline>
+ <contour>
+ <point x="790" y="615" type="curve" smooth="yes"/>
+ <point x="790" y="647"/>
+ <point x="617" y="744"/>
+ <point x="590" y="780" type="curve" smooth="yes"/>
+ <point x="566" y="812"/>
+ <point x="576" y="1435"/>
+ <point x="505" y="1515" type="curve" smooth="yes"/>
+ <point x="465" y="1560"/>
+ <point x="304" y="1613"/>
+ <point x="200" y="1640" type="curve"/>
+ <point x="160" y="1500" type="line"/>
+ <point x="227" y="1477"/>
+ <point x="350" y="1428"/>
+ <point x="370" y="1400" type="curve" smooth="yes"/>
+ <point x="403" y="1353"/>
+ <point x="390" y="783"/>
+ <point x="410" y="745" type="curve" smooth="yes"/>
+ <point x="429" y="709"/>
+ <point x="566" y="637"/>
+ <point x="570" y="615" type="curve"/>
+ <point x="566" y="593"/>
+ <point x="429" y="521"/>
+ <point x="410" y="485" type="curve" smooth="yes"/>
+ <point x="390" y="447"/>
+ <point x="403" y="-123"/>
+ <point x="370" y="-170" type="curve" smooth="yes"/>
+ <point x="350" y="-198"/>
+ <point x="227" y="-247"/>
+ <point x="160" y="-270" type="curve"/>
+ <point x="200" y="-410" type="line"/>
+ <point x="304" y="-383"/>
+ <point x="465" y="-330"/>
+ <point x="505" y="-285" type="curve" smooth="yes"/>
+ <point x="576" y="-205"/>
+ <point x="566" y="418"/>
+ <point x="590" y="450" type="curve" smooth="yes"/>
+ <point x="617" y="486"/>
+ <point x="790" y="583"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/R_tP_aren.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/R_tP_aren.glif
new file mode 100644
index 0000000..4275b62
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/R_tP_aren.glif
@@ -0,0 +1,23 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="RtParen" format="2">
+ <advance width="795"/>
+ <unicode hex="0029"/>
+ <outline>
+ <contour>
+ <point x="680" y="625" type="curve" smooth="yes"/>
+ <point x="680" y="1062"/>
+ <point x="505" y="1444"/>
+ <point x="240" y="1640" type="curve"/>
+ <point x="165" y="1485" type="line"/>
+ <point x="390" y="1280"/>
+ <point x="490" y="962"/>
+ <point x="490" y="625" type="curve" smooth="yes"/>
+ <point x="490" y="278"/>
+ <point x="390" y="-8"/>
+ <point x="165" y="-265" type="curve"/>
+ <point x="260" y="-410" type="line"/>
+ <point x="535" y="-125"/>
+ <point x="680" y="218"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/R_tS_qrB_rac.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/R_tS_qrB_rac.glif
new file mode 100644
index 0000000..e7c3618
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/R_tS_qrB_rac.glif
@@ -0,0 +1,17 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="RtSqrBrac" format="2">
+ <advance width="790"/>
+ <unicode hex="005D"/>
+ <outline>
+ <contour>
+ <point x="590" y="-410" type="line"/>
+ <point x="590" y="1600" type="line"/>
+ <point x="150" y="1600" type="line"/>
+ <point x="150" y="1450" type="line"/>
+ <point x="405" y="1450" type="line"/>
+ <point x="405" y="-260" type="line"/>
+ <point x="150" y="-260" type="line"/>
+ <point x="150" y="-410" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/S_emicolon.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/S_emicolon.glif
new file mode 100644
index 0000000..53d0447
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/S_emicolon.glif
@@ -0,0 +1,38 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="Semicolon" format="2">
+ <advance width="650"/>
+ <unicode hex="003B"/>
+ <outline>
+ <contour>
+ <point x="185" y="790" type="curve" smooth="yes"/>
+ <point x="185" y="716"/>
+ <point x="246" y="655"/>
+ <point x="320" y="655" type="curve" smooth="yes"/>
+ <point x="394" y="655"/>
+ <point x="455" y="716"/>
+ <point x="455" y="790" type="curve" smooth="yes"/>
+ <point x="455" y="864"/>
+ <point x="394" y="925"/>
+ <point x="320" y="925" type="curve" smooth="yes"/>
+ <point x="246" y="925"/>
+ <point x="185" y="864"/>
+ </contour>
+ <contour>
+ <point x="185" y="50" type="line"/>
+ <point x="325" y="50" type="line"/>
+ <point x="325" y="-51"/>
+ <point x="248" y="-172"/>
+ <point x="190" y="-230" type="curve"/>
+ <point x="290" y="-270" type="line"/>
+ <point x="407" y="-160"/>
+ <point x="465" y="-37"/>
+ <point x="465" y="85" type="curve" smooth="yes"/>
+ <point x="465" y="186"/>
+ <point x="400" y="250"/>
+ <point x="320" y="250" type="curve" smooth="yes"/>
+ <point x="263" y="250"/>
+ <point x="198" y="213"/>
+ <point x="185" y="150" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/S_olidus.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/S_olidus.glif
new file mode 100644
index 0000000..84af648
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/S_olidus.glif
@@ -0,0 +1,13 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="Solidus" format="2">
+ <advance width="1000"/>
+ <unicode hex="002F"/>
+ <outline>
+ <contour>
+ <point x="840" y="1600" type="line"/>
+ <point x="10" y="-245" type="line"/>
+ <point x="160" y="-245" type="line"/>
+ <point x="990" y="1600" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/S_pace.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/S_pace.glif
new file mode 100644
index 0000000..f9f2cd9
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/S_pace.glif
@@ -0,0 +1,7 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="Space" format="2">
+ <advance width="550"/>
+ <unicode hex="0020"/>
+ <outline>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/T_ilde.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/T_ilde.glif
new file mode 100644
index 0000000..afad348
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/T_ilde.glif
@@ -0,0 +1,29 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="Tilde" format="2">
+ <advance width="1115"/>
+ <unicode hex="007E"/>
+ <outline>
+ <contour>
+ <point x="125" y="375" type="line"/>
+ <point x="130" y="424"/>
+ <point x="162" y="465"/>
+ <point x="240" y="465" type="curve" smooth="yes"/>
+ <point x="415" y="465"/>
+ <point x="615" y="360"/>
+ <point x="845" y="360" type="curve" smooth="yes"/>
+ <point x="1004" y="360"/>
+ <point x="1080" y="482"/>
+ <point x="1080" y="610" type="curve"/>
+ <point x="975" y="610" type="line"/>
+ <point x="968" y="564"/>
+ <point x="938" y="510"/>
+ <point x="855" y="510" type="curve" smooth="yes"/>
+ <point x="619" y="510"/>
+ <point x="461" y="615"/>
+ <point x="240" y="615" type="curve" smooth="yes"/>
+ <point x="94" y="615"/>
+ <point x="20" y="497"/>
+ <point x="20" y="375" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/V_ertL_ine.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/V_ertL_ine.glif
new file mode 100644
index 0000000..3e1a16f
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/V_ertL_ine.glif
@@ -0,0 +1,13 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="VertLine" format="2">
+ <advance width="690"/>
+ <unicode hex="007C"/>
+ <outline>
+ <contour>
+ <point x="270" y="1600" type="line"/>
+ <point x="270" y="-390" type="line"/>
+ <point x="420" y="-390" type="line"/>
+ <point x="420" y="1600" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/_notdef.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/_notdef.glif
new file mode 100644
index 0000000..f4d5348
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/_notdef.glif
@@ -0,0 +1,18 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name=".notdef" format="2">
+ <advance width="1400"/>
+ <outline>
+ <contour>
+ <point x="100" y="0" type="line"/>
+ <point x="1300" y="0" type="line"/>
+ <point x="1300" y="1800" type="line"/>
+ <point x="100" y="1800" type="line"/>
+ </contour>
+ <contour>
+ <point x="150" y="1750" type="line"/>
+ <point x="1250" y="1750" type="line"/>
+ <point x="1250" y="50" type="line"/>
+ <point x="150" y="50" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/_null.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/_null.glif
new file mode 100644
index 0000000..f6c8b49
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/_null.glif
@@ -0,0 +1,5 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name=".null" format="2">
+ <outline>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/contents.plist b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/contents.plist
new file mode 100644
index 0000000..30ac1df
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/contents.plist
@@ -0,0 +1,256 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+ <dict>
+ <key>.notdef</key>
+ <string>_notdef.glif</string>
+ <key>.null</key>
+ <string>_null.glif</string>
+ <key>Ampersand</key>
+ <string>A_mpersand.glif</string>
+ <key>Apos</key>
+ <string>A_pos.glif</string>
+ <key>Asterisk</key>
+ <string>A_sterisk.glif</string>
+ <key>AtSgn</key>
+ <string>A_tS_gn.glif</string>
+ <key>CircumAccent</key>
+ <string>C_ircumA_ccent.glif</string>
+ <key>Colon</key>
+ <string>C_olon.glif</string>
+ <key>CombAcute</key>
+ <string>C_ombA_cute.glif</string>
+ <key>CombCircum</key>
+ <string>C_ombC_ircum.glif</string>
+ <key>CombDiaer</key>
+ <string>C_ombD_iaer.glif</string>
+ <key>CombGrave</key>
+ <string>C_ombG_rave.glif</string>
+ <key>CombRingAbv</key>
+ <string>C_ombR_ingA_bv.glif</string>
+ <key>CombTilde</key>
+ <string>C_ombT_ilde.glif</string>
+ <key>Comma</key>
+ <string>C_omma.glif</string>
+ <key>DigitEight</key>
+ <string>D_igitE_ight.glif</string>
+ <key>DigitFive</key>
+ <string>D_igitF_ive.glif</string>
+ <key>DigitFour</key>
+ <string>D_igitF_our.glif</string>
+ <key>DigitNine</key>
+ <string>D_igitN_ine.glif</string>
+ <key>DigitOne</key>
+ <string>D_igitO_ne.glif</string>
+ <key>DigitSeven</key>
+ <string>D_igitS_even.glif</string>
+ <key>DigitSix</key>
+ <string>D_igitS_ix.glif</string>
+ <key>DigitThree</key>
+ <string>D_igitT_hree.glif</string>
+ <key>DigitTwo</key>
+ <string>D_igitT_wo.glif</string>
+ <key>DigitZero</key>
+ <string>D_igitZ_ero.glif</string>
+ <key>DollarSgn</key>
+ <string>D_ollarS_gn.glif</string>
+ <key>DottedCirc</key>
+ <string>D_ottedC_irc.glif</string>
+ <key>EqSgn</key>
+ <string>E_qS_gn.glif</string>
+ <key>ExclamationMrk</key>
+ <string>E_xclamationM_rk.glif</string>
+ <key>FullStop</key>
+ <string>F_ullS_top.glif</string>
+ <key>GTSgn</key>
+ <string>G_T_S_gn.glif</string>
+ <key>GraveAccent</key>
+ <string>G_raveA_ccent.glif</string>
+ <key>Hyphen</key>
+ <string>H_yphen.glif</string>
+ <key>HyphenMinus</key>
+ <string>H_yphenM_inus.glif</string>
+ <key>Hyphen_Soft</key>
+ <string>H_yphen_S_oft.glif</string>
+ <key>LTSgn</key>
+ <string>L_T_S_gn.glif</string>
+ <key>LftCurlyBrac</key>
+ <string>L_ftC_urlyB_rac.glif</string>
+ <key>LftParen</key>
+ <string>L_ftP_aren.glif</string>
+ <key>LftSqrBrac</key>
+ <string>L_ftS_qrB_rac.glif</string>
+ <key>LowLine</key>
+ <string>L_owL_ine.glif</string>
+ <key>LtnCapA</key>
+ <string>L_tnC_apA_.glif</string>
+ <key>LtnCapA.alt</key>
+ <string>L_tnC_apA_.alt.glif</string>
+ <key>LtnCapADiaer</key>
+ <string>L_tnC_apA_D_iaer.glif</string>
+ <key>LtnCapB</key>
+ <string>L_tnC_apB_.glif</string>
+ <key>LtnCapC</key>
+ <string>L_tnC_apC_.glif</string>
+ <key>LtnCapCAcute</key>
+ <string>L_tnC_apC_A_cute.glif</string>
+ <key>LtnCapCAcuteCedilla</key>
+ <string>L_tnC_apC_A_cuteC_edilla.glif</string>
+ <key>LtnCapCCircum</key>
+ <string>L_tnC_apC_C_ircum.glif</string>
+ <key>LtnCapD</key>
+ <string>L_tnC_apD_.glif</string>
+ <key>LtnCapE</key>
+ <string>L_tnC_apE_.glif</string>
+ <key>LtnCapF</key>
+ <string>L_tnC_apF_.glif</string>
+ <key>LtnCapG</key>
+ <string>L_tnC_apG_.glif</string>
+ <key>LtnCapH</key>
+ <string>L_tnC_apH_.glif</string>
+ <key>LtnCapI</key>
+ <string>L_tnC_apI_.glif</string>
+ <key>LtnCapIJ</key>
+ <string>L_tnC_apI_J_.glif</string>
+ <key>LtnCapJ</key>
+ <string>L_tnC_apJ_.glif</string>
+ <key>LtnCapK</key>
+ <string>L_tnC_apK_.glif</string>
+ <key>LtnCapL</key>
+ <string>L_tnC_apL_.glif</string>
+ <key>LtnCapM</key>
+ <string>L_tnC_apM_.glif</string>
+ <key>LtnCapN</key>
+ <string>L_tnC_apN_.glif</string>
+ <key>LtnCapO</key>
+ <string>L_tnC_apO_.glif</string>
+ <key>LtnCapP</key>
+ <string>L_tnC_apP_.glif</string>
+ <key>LtnCapQ</key>
+ <string>L_tnC_apQ_.glif</string>
+ <key>LtnCapR</key>
+ <string>L_tnC_apR_.glif</string>
+ <key>LtnCapS</key>
+ <string>L_tnC_apS_.glif</string>
+ <key>LtnCapT</key>
+ <string>L_tnC_apT_.glif</string>
+ <key>LtnCapU</key>
+ <string>L_tnC_apU_.glif</string>
+ <key>LtnCapV</key>
+ <string>L_tnC_apV_.glif</string>
+ <key>LtnCapW</key>
+ <string>L_tnC_apW_.glif</string>
+ <key>LtnCapX</key>
+ <string>L_tnC_apX_.glif</string>
+ <key>LtnCapY</key>
+ <string>L_tnC_apY_.glif</string>
+ <key>LtnSmA</key>
+ <string>L_tnS_mA_.glif</string>
+ <key>LtnSmAAcute</key>
+ <string>L_tnS_mA_A_cute.glif</string>
+ <key>LtnSmACircum</key>
+ <string>L_tnS_mA_C_ircum.glif</string>
+ <key>LtnSmADiaer</key>
+ <string>L_tnS_mA_D_iaer.glif</string>
+ <key>LtnSmAGrave</key>
+ <string>L_tnS_mA_G_rave.glif</string>
+ <key>LtnSmARingAbv</key>
+ <string>L_tnS_mA_R_ingA_bv.glif</string>
+ <key>LtnSmATilde</key>
+ <string>L_tnS_mA_T_ilde.glif</string>
+ <key>LtnSmB</key>
+ <string>L_tnS_mB_.glif</string>
+ <key>LtnSmC</key>
+ <string>L_tnS_mC_.glif</string>
+ <key>LtnSmCAcute</key>
+ <string>L_tnS_mC_A_cute.glif</string>
+ <key>LtnSmCAcuteCedilla</key>
+ <string>L_tnS_mC_A_cuteC_edilla.glif</string>
+ <key>LtnSmCCircum</key>
+ <string>L_tnS_mC_C_ircum.glif</string>
+ <key>LtnSmD</key>
+ <string>L_tnS_mD_.glif</string>
+ <key>LtnSmE</key>
+ <string>L_tnS_mE_.glif</string>
+ <key>LtnSmF</key>
+ <string>L_tnS_mF_.glif</string>
+ <key>LtnSmG</key>
+ <string>L_tnS_mG_.glif</string>
+ <key>LtnSmH</key>
+ <string>L_tnS_mH_.glif</string>
+ <key>LtnSmI</key>
+ <string>L_tnS_mI_.glif</string>
+ <key>LtnSmIJ</key>
+ <string>L_tnS_mI_J_.glif</string>
+ <key>LtnSmITilde</key>
+ <string>L_tnS_mI_T_ilde.glif</string>
+ <key>LtnSmITildeGrave</key>
+ <string>L_tnS_mI_T_ildeG_rave.glif</string>
+ <key>LtnSmITildeGraveCedilla</key>
+ <string>L_tnS_mI_T_ildeG_raveC_edilla.glif</string>
+ <key>LtnSmJ</key>
+ <string>L_tnS_mJ_.glif</string>
+ <key>LtnSmK</key>
+ <string>L_tnS_mK_.glif</string>
+ <key>LtnSmL</key>
+ <string>L_tnS_mL_.glif</string>
+ <key>LtnSmM</key>
+ <string>L_tnS_mM_.glif</string>
+ <key>LtnSmN</key>
+ <string>L_tnS_mN_.glif</string>
+ <key>LtnSmO</key>
+ <string>L_tnS_mO_.glif</string>
+ <key>LtnSmP</key>
+ <string>L_tnS_mP_.glif</string>
+ <key>LtnSmQ</key>
+ <string>L_tnS_mQ_.glif</string>
+ <key>LtnSmR</key>
+ <string>L_tnS_mR_.glif</string>
+ <key>LtnSmS</key>
+ <string>L_tnS_mS_.glif</string>
+ <key>LtnSmT</key>
+ <string>L_tnS_mT_.glif</string>
+ <key>LtnSmU</key>
+ <string>L_tnS_mU_.glif</string>
+ <key>LtnSmV</key>
+ <string>L_tnS_mV_.glif</string>
+ <key>LtnSmW</key>
+ <string>L_tnS_mW_.glif</string>
+ <key>LtnSmX</key>
+ <string>L_tnS_mX_.glif</string>
+ <key>LtnSmY</key>
+ <string>L_tnS_mY_.glif</string>
+ <key>NonBreakingHyphen</key>
+ <string>N_onB_reakingH_yphen.glif</string>
+ <key>NumSgn</key>
+ <string>N_umS_gn.glif</string>
+ <key>PercentSgn</key>
+ <string>P_ercentS_gn.glif</string>
+ <key>PlusSgn</key>
+ <string>P_lusS_gn.glif</string>
+ <key>QstnMrk</key>
+ <string>Q_stnM_rk.glif</string>
+ <key>QuotMrk</key>
+ <string>Q_uotM_rk.glif</string>
+ <key>ReverseSolidus</key>
+ <string>R_everseS_olidus.glif</string>
+ <key>RtCurlyBrac</key>
+ <string>R_tC_urlyB_rac.glif</string>
+ <key>RtParen</key>
+ <string>R_tP_aren.glif</string>
+ <key>RtSqrBrac</key>
+ <string>R_tS_qrB_rac.glif</string>
+ <key>Semicolon</key>
+ <string>S_emicolon.glif</string>
+ <key>Solidus</key>
+ <string>S_olidus.glif</string>
+ <key>Space</key>
+ <string>S_pace.glif</string>
+ <key>Tilde</key>
+ <string>T_ilde.glif</string>
+ <key>VertLine</key>
+ <string>V_ertL_ine.glif</string>
+ <key>nonmarkingreturn</key>
+ <string>nonmarkingreturn.glif</string>
+ </dict>
+</plist>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/nonmarkingreturn.glif b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/nonmarkingreturn.glif
new file mode 100644
index 0000000..4dbf648
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/glyphs/nonmarkingreturn.glif
@@ -0,0 +1,6 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<glyph name="nonmarkingreturn" format="2">
+ <advance width="1024"/>
+ <outline>
+ </outline>
+</glyph>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/layercontents.plist b/tests/reference/fontparts/psfbuildcompgc.ufo/layercontents.plist
new file mode 100644
index 0000000..b9c1a4f
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/layercontents.plist
@@ -0,0 +1,10 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+ <array>
+ <array>
+ <string>public.default</string>
+ <string>glyphs</string>
+ </array>
+ </array>
+</plist>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/lib.plist b/tests/reference/fontparts/psfbuildcompgc.ufo/lib.plist
new file mode 100644
index 0000000..b3dadfa
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/lib.plist
@@ -0,0 +1,547 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+ <dict>
+ <key>com.schriftgestaltung.Glyphs.fontUserData</key>
+ <dict/>
+ <key>com.schriftgestaltung.appVersion</key>
+ <string>1161</string>
+ <key>com.schriftgestaltung.customParameter.GSFont.DisplayStrings</key>
+ <string></string>
+ <key>com.schriftgestaltung.customParameter.GSFont.disablesAutomaticAlignment</key>
+ <true/>
+ <key>com.schriftgestaltung.customParameter.GSFont.disablesLastChange</key>
+ <true/>
+ <key>com.schriftgestaltung.customParameter.GSFont.useNiceNames</key>
+ <integer>0</integer>
+ <key>com.schriftgestaltung.customParameter.GSFontMaster.customValue</key>
+ <integer>0</integer>
+ <key>com.schriftgestaltung.customParameter.GSFontMaster.customValue1</key>
+ <integer>0</integer>
+ <key>com.schriftgestaltung.customParameter.GSFontMaster.customValue2</key>
+ <integer>0</integer>
+ <key>com.schriftgestaltung.customParameter.GSFontMaster.customValue3</key>
+ <integer>0</integer>
+ <key>com.schriftgestaltung.customParameter.GSFontMaster.iconName</key>
+ <string></string>
+ <key>com.schriftgestaltung.customParameter.GSFontMaster.weightValue</key>
+ <integer>400</integer>
+ <key>com.schriftgestaltung.customParameter.GSFontMaster.widthValue</key>
+ <integer>100</integer>
+ <key>com.schriftgestaltung.disablesAutomaticAlignment</key>
+ <true/>
+ <key>com.schriftgestaltung.disablesLastChange</key>
+ <true/>
+ <key>com.schriftgestaltung.fontMasterOrder</key>
+ <integer>0</integer>
+ <key>com.schriftgestaltung.glyphOrder</key>
+ <array>
+ <string>.notdef</string>
+ <string>.null</string>
+ <string>nonmarkingreturn</string>
+ <string>Space</string>
+ <string>ExclamationMrk</string>
+ <string>QuotMrk</string>
+ <string>NumSgn</string>
+ <string>DollarSgn</string>
+ <string>PercentSgn</string>
+ <string>Ampersand</string>
+ <string>Apos</string>
+ <string>LftParen</string>
+ <string>RtParen</string>
+ <string>Asterisk</string>
+ <string>PlusSgn</string>
+ <string>Comma</string>
+ <string>HyphenMinus</string>
+ <string>FullStop</string>
+ <string>Solidus</string>
+ <string>DigitZero</string>
+ <string>DigitOne</string>
+ <string>DigitTwo</string>
+ <string>DigitThree</string>
+ <string>DigitFour</string>
+ <string>DigitFive</string>
+ <string>DigitSix</string>
+ <string>DigitSeven</string>
+ <string>DigitEight</string>
+ <string>DigitNine</string>
+ <string>Colon</string>
+ <string>Semicolon</string>
+ <string>LTSgn</string>
+ <string>EqSgn</string>
+ <string>GTSgn</string>
+ <string>QstnMrk</string>
+ <string>AtSgn</string>
+ <string>LtnCapA</string>
+ <string>LtnCapA.alt</string>
+ <string>LtnCapB</string>
+ <string>LtnCapC</string>
+ <string>LtnCapD</string>
+ <string>LtnCapE</string>
+ <string>LtnCapF</string>
+ <string>LtnCapG</string>
+ <string>LtnCapH</string>
+ <string>LtnCapI</string>
+ <string>LtnCapJ</string>
+ <string>LtnCapK</string>
+ <string>LtnCapL</string>
+ <string>LtnCapM</string>
+ <string>LtnCapN</string>
+ <string>LtnCapO</string>
+ <string>LtnCapP</string>
+ <string>LtnCapQ</string>
+ <string>LtnCapR</string>
+ <string>LtnCapS</string>
+ <string>LtnCapT</string>
+ <string>LtnCapU</string>
+ <string>LtnCapV</string>
+ <string>LtnCapW</string>
+ <string>LtnCapX</string>
+ <string>LtnCapY</string>
+ <string>LftSqrBrac</string>
+ <string>ReverseSolidus</string>
+ <string>RtSqrBrac</string>
+ <string>CircumAccent</string>
+ <string>LowLine</string>
+ <string>GraveAccent</string>
+ <string>LtnSmA</string>
+ <string>LtnSmB</string>
+ <string>LtnSmC</string>
+ <string>LtnSmD</string>
+ <string>LtnSmE</string>
+ <string>LtnSmF</string>
+ <string>LtnSmG</string>
+ <string>LtnSmH</string>
+ <string>LtnSmI</string>
+ <string>LtnSmJ</string>
+ <string>LtnSmK</string>
+ <string>LtnSmL</string>
+ <string>LtnSmM</string>
+ <string>LtnSmN</string>
+ <string>LtnSmO</string>
+ <string>LtnSmP</string>
+ <string>LtnSmQ</string>
+ <string>LtnSmR</string>
+ <string>LtnSmS</string>
+ <string>LtnSmT</string>
+ <string>LtnSmU</string>
+ <string>LtnSmV</string>
+ <string>LtnSmW</string>
+ <string>LtnSmX</string>
+ <string>LtnSmY</string>
+ <string>LftCurlyBrac</string>
+ <string>VertLine</string>
+ <string>RtCurlyBrac</string>
+ <string>Tilde</string>
+ <string>LtnCapADiaer</string>
+ <string>LtnSmAAcute</string>
+ <string>LtnSmAGrave</string>
+ <string>LtnSmACircum</string>
+ <string>LtnSmADiaer</string>
+ <string>LtnSmATilde</string>
+ <string>LtnSmARingAbv</string>
+ <string>DottedCirc</string>
+ <string>Hyphen</string>
+ <string>NonBreakingHyphen</string>
+ <string>Hyphen_Soft</string>
+ <string>CombAcute</string>
+ <string>CombGrave</string>
+ <string>CombCircum</string>
+ <string>CombTilde</string>
+ <string>CombDiaer</string>
+ <string>CombRingAbv</string>
+ </array>
+ <key>com.schriftgestaltung.keyboardIncrement</key>
+ <integer>1</integer>
+ <key>com.schriftgestaltung.weight</key>
+ <string>Regular</string>
+ <key>com.schriftgestaltung.weightValue</key>
+ <integer>400</integer>
+ <key>com.schriftgestaltung.width</key>
+ <string>Regular</string>
+ <key>com.schriftgestaltung.widthValue</key>
+ <integer>100</integer>
+ <key>org.sil.lcg.toneLetters</key>
+ <dict>
+ <key>contourWidth</key>
+ <integer>480</integer>
+ <key>dotSize</key>
+ <integer>180</integer>
+ <key>dotSpacing</key>
+ <integer>200</integer>
+ <key>glyphDepth</key>
+ <integer>-25</integer>
+ <key>glyphHeight</key>
+ <integer>1600</integer>
+ <key>italicAngle</key>
+ <integer>0</integer>
+ <key>marginDotLeft</key>
+ <integer>120</integer>
+ <key>marginDotRight</key>
+ <integer>160</integer>
+ <key>marginFlatLeft</key>
+ <integer>120</integer>
+ <key>marginFlatRight</key>
+ <integer>160</integer>
+ <key>marginPointLeft</key>
+ <integer>100</integer>
+ <key>marginPointRight</key>
+ <integer>140</integer>
+ <key>strokeThickness</key>
+ <integer>120</integer>
+ </dict>
+ <key>public.glyphOrder</key>
+ <array>
+ <string>.notdef</string>
+ <string>.null</string>
+ <string>nonmarkingreturn</string>
+ <string>Space</string>
+ <string>ExclamationMrk</string>
+ <string>QuotMrk</string>
+ <string>NumSgn</string>
+ <string>DollarSgn</string>
+ <string>PercentSgn</string>
+ <string>Ampersand</string>
+ <string>Apos</string>
+ <string>LftParen</string>
+ <string>RtParen</string>
+ <string>Asterisk</string>
+ <string>PlusSgn</string>
+ <string>Comma</string>
+ <string>HyphenMinus</string>
+ <string>FullStop</string>
+ <string>Solidus</string>
+ <string>DigitZero</string>
+ <string>DigitOne</string>
+ <string>DigitTwo</string>
+ <string>DigitThree</string>
+ <string>DigitFour</string>
+ <string>DigitFive</string>
+ <string>DigitSix</string>
+ <string>DigitSeven</string>
+ <string>DigitEight</string>
+ <string>DigitNine</string>
+ <string>Colon</string>
+ <string>Semicolon</string>
+ <string>LTSgn</string>
+ <string>EqSgn</string>
+ <string>GTSgn</string>
+ <string>QstnMrk</string>
+ <string>AtSgn</string>
+ <string>LtnCapA</string>
+ <string>LtnCapA.alt</string>
+ <string>LtnCapB</string>
+ <string>LtnCapC</string>
+ <string>LtnCapD</string>
+ <string>LtnCapE</string>
+ <string>LtnCapF</string>
+ <string>LtnCapG</string>
+ <string>LtnCapH</string>
+ <string>LtnCapI</string>
+ <string>LtnCapJ</string>
+ <string>LtnCapK</string>
+ <string>LtnCapL</string>
+ <string>LtnCapM</string>
+ <string>LtnCapN</string>
+ <string>LtnCapO</string>
+ <string>LtnCapP</string>
+ <string>LtnCapQ</string>
+ <string>LtnCapR</string>
+ <string>LtnCapS</string>
+ <string>LtnCapT</string>
+ <string>LtnCapU</string>
+ <string>LtnCapV</string>
+ <string>LtnCapW</string>
+ <string>LtnCapX</string>
+ <string>LtnCapY</string>
+ <string>LftSqrBrac</string>
+ <string>ReverseSolidus</string>
+ <string>RtSqrBrac</string>
+ <string>CircumAccent</string>
+ <string>LowLine</string>
+ <string>GraveAccent</string>
+ <string>LtnSmA</string>
+ <string>LtnSmB</string>
+ <string>LtnSmC</string>
+ <string>LtnSmD</string>
+ <string>LtnSmE</string>
+ <string>LtnSmF</string>
+ <string>LtnSmG</string>
+ <string>LtnSmH</string>
+ <string>LtnSmI</string>
+ <string>LtnSmJ</string>
+ <string>LtnSmK</string>
+ <string>LtnSmL</string>
+ <string>LtnSmM</string>
+ <string>LtnSmN</string>
+ <string>LtnSmO</string>
+ <string>LtnSmP</string>
+ <string>LtnSmQ</string>
+ <string>LtnSmR</string>
+ <string>LtnSmS</string>
+ <string>LtnSmT</string>
+ <string>LtnSmU</string>
+ <string>LtnSmV</string>
+ <string>LtnSmW</string>
+ <string>LtnSmX</string>
+ <string>LtnSmY</string>
+ <string>LftCurlyBrac</string>
+ <string>VertLine</string>
+ <string>RtCurlyBrac</string>
+ <string>Tilde</string>
+ <string>LtnCapADiaer</string>
+ <string>LtnSmAAcute</string>
+ <string>LtnSmAGrave</string>
+ <string>LtnSmACircum</string>
+ <string>LtnSmADiaer</string>
+ <string>LtnSmATilde</string>
+ <string>LtnSmARingAbv</string>
+ <string>DottedCirc</string>
+ <string>Hyphen</string>
+ <string>NonBreakingHyphen</string>
+ <string>Hyphen_Soft</string>
+ <string>CombAcute</string>
+ <string>CombGrave</string>
+ <string>CombCircum</string>
+ <string>CombTilde</string>
+ <string>CombDiaer</string>
+ <string>CombRingAbv</string>
+ <string>LtnCapIJ</string>
+ <string>LtnSmIJ</string>
+ <string>LtnCapCAcute</string>
+ <string>LtnSmCAcute</string>
+ <string>LtnCapCCircum</string>
+ <string>LtnSmCCircum</string>
+ <string>LtnSmITildeGrave</string>
+ <string>LtnCapCAcuteCedilla</string>
+ <string>LtnSmCAcuteCedilla</string>
+ <string>LtnSmITilde</string>
+ <string>LtnSmITildeGraveCedilla</string>
+ </array>
+ <key>public.postscriptNames</key>
+ <dict>
+ <key>Ampersand</key>
+ <string>ampersand</string>
+ <key>Apos</key>
+ <string>quotesingle</string>
+ <key>Asterisk</key>
+ <string>asterisk</string>
+ <key>AtSgn</key>
+ <string>at</string>
+ <key>CircumAccent</key>
+ <string>asciicircum</string>
+ <key>Colon</key>
+ <string>colon</string>
+ <key>CombAcute</key>
+ <string>acutecomb</string>
+ <key>CombCircum</key>
+ <string>uni0302</string>
+ <key>CombDiaer</key>
+ <string>uni0308</string>
+ <key>CombGrave</key>
+ <string>gravecomb</string>
+ <key>CombRingAbv</key>
+ <string>uni030A</string>
+ <key>CombTilde</key>
+ <string>tildecomb</string>
+ <key>Comma</key>
+ <string>comma</string>
+ <key>DigitEight</key>
+ <string>eight</string>
+ <key>DigitFive</key>
+ <string>five</string>
+ <key>DigitFour</key>
+ <string>four</string>
+ <key>DigitNine</key>
+ <string>nine</string>
+ <key>DigitOne</key>
+ <string>one</string>
+ <key>DigitSeven</key>
+ <string>seven</string>
+ <key>DigitSix</key>
+ <string>six</string>
+ <key>DigitThree</key>
+ <string>three</string>
+ <key>DigitTwo</key>
+ <string>two</string>
+ <key>DigitZero</key>
+ <string>zero</string>
+ <key>DollarSgn</key>
+ <string>dollar</string>
+ <key>DottedCirc</key>
+ <string>uni25CC</string>
+ <key>EqSgn</key>
+ <string>equal</string>
+ <key>ExclamationMrk</key>
+ <string>exclam</string>
+ <key>FullStop</key>
+ <string>period</string>
+ <key>GTSgn</key>
+ <string>greater</string>
+ <key>GraveAccent</key>
+ <string>grave</string>
+ <key>Hyphen</key>
+ <string>uni2010</string>
+ <key>HyphenMinus</key>
+ <string>hyphen</string>
+ <key>Hyphen_Soft</key>
+ <string>uni00AD</string>
+ <key>LTSgn</key>
+ <string>less</string>
+ <key>LftCurlyBrac</key>
+ <string>braceleft</string>
+ <key>LftParen</key>
+ <string>parenleft</string>
+ <key>LftSqrBrac</key>
+ <string>bracketleft</string>
+ <key>LowLine</key>
+ <string>underscore</string>
+ <key>LtnCapA</key>
+ <string>A</string>
+ <key>LtnCapA.alt</key>
+ <string>A</string>
+ <key>LtnCapADiaer</key>
+ <string>Adieresis</string>
+ <key>LtnCapB</key>
+ <string>B</string>
+ <key>LtnCapC</key>
+ <string>C</string>
+ <key>LtnCapD</key>
+ <string>D</string>
+ <key>LtnCapE</key>
+ <string>E</string>
+ <key>LtnCapF</key>
+ <string>F</string>
+ <key>LtnCapG</key>
+ <string>G</string>
+ <key>LtnCapH</key>
+ <string>H</string>
+ <key>LtnCapI</key>
+ <string>I</string>
+ <key>LtnCapJ</key>
+ <string>J</string>
+ <key>LtnCapK</key>
+ <string>K</string>
+ <key>LtnCapL</key>
+ <string>L</string>
+ <key>LtnCapM</key>
+ <string>M</string>
+ <key>LtnCapN</key>
+ <string>N</string>
+ <key>LtnCapO</key>
+ <string>O</string>
+ <key>LtnCapP</key>
+ <string>P</string>
+ <key>LtnCapQ</key>
+ <string>Q</string>
+ <key>LtnCapR</key>
+ <string>R</string>
+ <key>LtnCapS</key>
+ <string>S</string>
+ <key>LtnCapT</key>
+ <string>T</string>
+ <key>LtnCapU</key>
+ <string>U</string>
+ <key>LtnCapV</key>
+ <string>V</string>
+ <key>LtnCapW</key>
+ <string>W</string>
+ <key>LtnCapX</key>
+ <string>X</string>
+ <key>LtnCapY</key>
+ <string>Y</string>
+ <key>LtnSmA</key>
+ <string>a</string>
+ <key>LtnSmAAcute</key>
+ <string>aacute</string>
+ <key>LtnSmACircum</key>
+ <string>acircumflex</string>
+ <key>LtnSmADiaer</key>
+ <string>adieresis</string>
+ <key>LtnSmAGrave</key>
+ <string>agrave</string>
+ <key>LtnSmARingAbv</key>
+ <string>aring</string>
+ <key>LtnSmATilde</key>
+ <string>atilde</string>
+ <key>LtnSmB</key>
+ <string>b</string>
+ <key>LtnSmC</key>
+ <string>c</string>
+ <key>LtnSmD</key>
+ <string>d</string>
+ <key>LtnSmE</key>
+ <string>e</string>
+ <key>LtnSmF</key>
+ <string>f</string>
+ <key>LtnSmG</key>
+ <string>g</string>
+ <key>LtnSmH</key>
+ <string>h</string>
+ <key>LtnSmI</key>
+ <string>i</string>
+ <key>LtnSmJ</key>
+ <string>j</string>
+ <key>LtnSmK</key>
+ <string>k</string>
+ <key>LtnSmL</key>
+ <string>l</string>
+ <key>LtnSmM</key>
+ <string>m</string>
+ <key>LtnSmN</key>
+ <string>n</string>
+ <key>LtnSmO</key>
+ <string>o</string>
+ <key>LtnSmP</key>
+ <string>p</string>
+ <key>LtnSmQ</key>
+ <string>q</string>
+ <key>LtnSmR</key>
+ <string>r</string>
+ <key>LtnSmS</key>
+ <string>s</string>
+ <key>LtnSmT</key>
+ <string>t</string>
+ <key>LtnSmU</key>
+ <string>u</string>
+ <key>LtnSmV</key>
+ <string>v</string>
+ <key>LtnSmW</key>
+ <string>w</string>
+ <key>LtnSmX</key>
+ <string>x</string>
+ <key>LtnSmY</key>
+ <string>y</string>
+ <key>NonBreakingHyphen</key>
+ <string>uni2011</string>
+ <key>NumSgn</key>
+ <string>numbersign</string>
+ <key>PercentSgn</key>
+ <string>percent</string>
+ <key>PlusSgn</key>
+ <string>plus</string>
+ <key>QstnMrk</key>
+ <string>question</string>
+ <key>QuotMrk</key>
+ <string>quotedbl</string>
+ <key>ReverseSolidus</key>
+ <string>backslash</string>
+ <key>RtCurlyBrac</key>
+ <string>braceright</string>
+ <key>RtParen</key>
+ <string>parenright</string>
+ <key>RtSqrBrac</key>
+ <string>bracketright</string>
+ <key>Semicolon</key>
+ <string>semicolon</string>
+ <key>Solidus</key>
+ <string>slash</string>
+ <key>Space</key>
+ <string>space</string>
+ <key>Tilde</key>
+ <string>asciitilde</string>
+ <key>VertLine</key>
+ <string>bar</string>
+ </dict>
+ </dict>
+</plist>
diff --git a/tests/reference/fontparts/psfbuildcompgc.ufo/metainfo.plist b/tests/reference/fontparts/psfbuildcompgc.ufo/metainfo.plist
new file mode 100644
index 0000000..7b8b34a
--- /dev/null
+++ b/tests/reference/fontparts/psfbuildcompgc.ufo/metainfo.plist
@@ -0,0 +1,10 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+ <dict>
+ <key>creator</key>
+ <string>com.github.fonttools.ufoLib</string>
+ <key>formatVersion</key>
+ <integer>3</integer>
+ </dict>
+</plist>
diff --git a/tests/reference/psfmakefea/issue65.fea b/tests/reference/psfmakefea/issue65.fea
new file mode 100644
index 0000000..0d8dd9a
--- /dev/null
+++ b/tests/reference/psfmakefea/issue65.fea
@@ -0,0 +1,7 @@
+
+# Main Classes
+
+# Positioning classes and statements
+lookup ReorderInsert {
+ sub uni1C00' uni1C34 by uni1C34 uni1C00;
+} ReorderInsert;
diff --git a/tests/reference/psfmakefea/issue65.log b/tests/reference/psfmakefea/issue65.log
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/tests/reference/psfmakefea/issue65.log
diff --git a/tests/reference/psfmakefea/ligatures.fea b/tests/reference/psfmakefea/ligatures.fea
new file mode 100644
index 0000000..2157709
--- /dev/null
+++ b/tests/reference/psfmakefea/ligatures.fea
@@ -0,0 +1,15 @@
+
+# Main Classes
+
+# Positioning classes and statements
+# baseClass a <anchor 200 200> @TOP_1;
+# baseClass fi <anchor 200 0> @BOTTOM_1;
+# baseClass fi <anchor 400 0> @BOTTOM_2;
+markClass acute <anchor 0 200> @TOP;
+markClass circumflex <anchor 200 0> @BOTTOM;
+feature test {
+ pos ligature a <anchor 200 200> mark @TOP
+ ligComponent <anchor NULL>;
+ pos ligature fi <anchor 200 0> mark @BOTTOM
+ ligComponent <anchor 400 0> mark @BOTTOM;
+} test;
diff --git a/tests/reference/psfmakefea/ligatures.log b/tests/reference/psfmakefea/ligatures.log
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/tests/reference/psfmakefea/ligatures.log
diff --git a/tests/reference/psfmakefea/psfmakefea.fea b/tests/reference/psfmakefea/psfmakefea.fea
new file mode 100644
index 0000000..90fb7ff
--- /dev/null
+++ b/tests/reference/psfmakefea/psfmakefea.fea
@@ -0,0 +1,11 @@
+
+# Main Classes
+
+# Positioning classes and statements
+@base = [A a];
+@basex = [A.x a.x];
+@basey = [A.y a.y];
+feature alt {
+ sub A from [A.x A.y];
+ sub a from [a.x a.y];
+} alt;
diff --git a/tests/reference/psfmakefea/psfmakefea.log b/tests/reference/psfmakefea/psfmakefea.log
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/tests/reference/psfmakefea/psfmakefea.log
diff --git a/tests/reference/psfmakefea/psfmakefea_2.fea b/tests/reference/psfmakefea/psfmakefea_2.fea
new file mode 100644
index 0000000..a6b49b1
--- /dev/null
+++ b/tests/reference/psfmakefea/psfmakefea_2.fea
@@ -0,0 +1,11 @@
+
+# Main Classes
+
+# Positioning classes and statements
+# def func
+feature test {
+ @c = [g5];
+ @c = [g6];
+ @c = [g7];
+
+} test;
diff --git a/tests/reference/psfmakefea/psfmakefea_2.log b/tests/reference/psfmakefea/psfmakefea_2.log
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/tests/reference/psfmakefea/psfmakefea_2.log
diff --git a/tests/reference/ufo/psfbuildcomp.lg b/tests/reference/ufo/psfbuildcomp.lg
new file mode 100644
index 0000000..ab203a3
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.lg
@@ -0,0 +1,52 @@
+2021-06-29 14:42:19 Progress: Running: psfbuildcomp tests/input/font-psf-test/source/PsfTest-Regular.ufo -i tests/input/psfbuildcomp.txt -l local/testresults/ufo/psfbuildcomp.log -p loglevel=i
+2021-06-29 14:42:19 Progress: Opening file for input: tests/input/psfbuildcomp.txt
+2021-06-29 14:42:19 Progress: Reading UFO: tests/input/font-psf-test/source/PsfTest-Regular.ufo
+2021-06-29 14:42:19 Info: Processing Glyph Layer 0: public.defaultglyphs
+2021-06-29 14:42:19 Progress: Checking fontinfo.plist metadata
+2021-06-29 14:42:19 Warning: note is present - it's use is discouraged
+2021-06-29 14:42:19 Warning: openTypeOS2FamilyClass would be removed from fontinfo Old value: [0, 0]
+2021-06-29 14:42:19 Info: Types: Old - list, New - NoneType
+2021-06-29 14:42:19 Warning: openTypeOS2Selection would be added New value: [7]
+2021-06-29 14:42:19 Info: Types: Old - NoneType, New - list
+2021-06-29 14:42:19 Progress: Checking lib.plist metadata
+2021-06-29 14:42:19 Warning: com.schriftgestaltung.disablesAutomaticAlignment would be deleted - obsolete key Old value: True
+2021-06-29 14:42:19 Info: Types: Old - bool, New - NoneType
+2021-06-29 14:42:19 Warning: com.schriftgestaltung.disablesLastChange would be deleted - obsolete key Old value: True
+2021-06-29 14:42:19 Info: Types: Old - bool, New - NoneType
+2021-06-29 14:42:19 Progress: Check & fix results:- Errors: 0, Changes to make: 4, Other warnings: 1
+2021-06-29 14:42:19 Progress: See log file for details
+2021-06-29 14:42:19 Info: Processing line 10: LtnCapIJ = LtnCapI & LtnCapJ |0132
+2021-06-29 14:42:19 Info: Adding new glyph, LtnCapIJ
+2021-06-29 14:42:19 Info: Processing line 11: LtnSmIJ = LtnSmI & LtnSmJ |0133
+2021-06-29 14:42:19 Info: Adding new glyph, LtnSmIJ
+2021-06-29 14:42:19 Info: Processing line 14: LtnCapCAcute = LtnSmC + CombAcute@U |0106
+2021-06-29 14:42:19 Info: Adding new glyph, LtnCapCAcute
+2021-06-29 14:42:19 Info: Processing line 15: LtnSmCAcute = LtnCapC + CombAcute@U |0107
+2021-06-29 14:42:19 Info: Adding new glyph, LtnSmCAcute
+2021-06-29 14:42:19 Info: Processing line 16: LtnCapCCircum = LtnCapC + CombCircum@U |0108
+2021-06-29 14:42:19 Info: Adding new glyph, LtnCapCCircum
+2021-06-29 14:42:19 Info: Processing line 17: LtnSmCCircum = LtnSmC + CombCircum@U |0109
+2021-06-29 14:42:19 Info: Adding new glyph, LtnSmCCircum
+2021-06-29 14:42:19 Info: Processing line 20: LtnSmITildeGrave = LtnSmDotlessI + CombTilde@U + CombGrave@U | E000
+2021-06-29 14:42:19 Error: LtnSmDotlessI not found in font
+2021-06-29 14:42:19 Error: The AP 'U' does not exist on base glyph when building LtnSmITildeGrave
+2021-06-29 14:42:19 Info: Adding new glyph, LtnSmITildeGrave
+2021-06-29 14:42:19 Info: Processing line 23: LtnCapCAcuteCedilla = LtnCapC + CombCedilla@H + CombAcute@LtnCapC:U | 1E08
+2021-06-29 14:42:19 Error: CombCedilla not found in font
+2021-06-29 14:42:19 Info: Adding new glyph, LtnCapCAcuteCedilla
+2021-06-29 14:42:19 Info: Processing line 24: LtnSmCAcuteCedilla = LtnSmC + CombCedilla@H + CombAcute@LtnSmC:U | 1E09
+2021-06-29 14:42:19 Error: CombCedilla not found in font
+2021-06-29 14:42:19 Info: Adding new glyph, LtnSmCAcuteCedilla
+2021-06-29 14:42:19 Info: Processing line 27: LtnSmITilde = LtnSmDotlessI + CombTilde@U ^200,200 | 0129
+2021-06-29 14:42:19 Error: LtnSmDotlessI not found in font
+2021-06-29 14:42:19 Error: The AP 'U' does not exist on base glyph when building LtnSmITilde
+2021-06-29 14:42:19 Info: Adding new glyph, LtnSmITilde
+2021-06-29 14:42:19 Info: Processing line 30: LtnSmITildeGraveCedilla = LtnSmDotlessI + CombCedilla@H + CombTilde@LtnSmDotlessI:U + CombGrave@U ^200,200 | E010 # i cedilla tilde grave
+2021-06-29 14:42:19 Error: LtnSmDotlessI not found in font
+2021-06-29 14:42:19 Error: CombCedilla not found in font
+2021-06-29 14:42:19 Error: The AP 'U' does not exist on base glyph when building LtnSmITildeGraveCedilla
+2021-06-29 14:42:19 Info: Adding new glyph, LtnSmITildeGraveCedilla
+2021-06-29 14:42:19 Progress: Processing font for output
+2021-06-29 14:42:19 Progress: Output UFO already exists - reading for comparison
+2021-06-29 14:42:19 Progress: Writing font to local/testresults/ufo/psfbuildcomp.ufo
+2021-06-29 14:42:19 Info: Processing glyphs directory
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/fontinfo.plist b/tests/reference/ufo/psfbuildcomp.ufo/fontinfo.plist
new file mode 100644
index 0000000..c151323
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/fontinfo.plist
@@ -0,0 +1,260 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>ascender</key>
+ <integer>2100</integer>
+ <key>capHeight</key>
+ <integer>1485</integer>
+ <key>copyright</key>
+ <string>Copyright (c) 2004-2021 SIL International</string>
+ <key>descender</key>
+ <integer>-550</integer>
+ <key>familyName</key>
+ <string>Psf Test</string>
+ <key>guidelines</key>
+ <array>
+ <dict>
+ <key>angle</key>
+ <integer>0</integer>
+ <key>x</key>
+ <integer>1084</integer>
+ <key>y</key>
+ <integer>1040</integer>
+ </dict>
+ <dict>
+ <key>y</key>
+ <integer>1250</integer>
+ </dict>
+ </array>
+ <key>note</key>
+ <string>Test note
+Second line
+
+Third line
+</string>
+ <key>openTypeHeadCreated</key>
+ <string>2021/01/29 10:05:04</string>
+ <key>openTypeHheaAscender</key>
+ <integer>2100</integer>
+ <key>openTypeHheaDescender</key>
+ <integer>-550</integer>
+ <key>openTypeHheaLineGap</key>
+ <integer>0</integer>
+ <key>openTypeNameDescription</key>
+ <string>Copyright (c) 2004-2021 SIL International</string>
+ <key>openTypeNameDesigner</key>
+ <string>Victor Gaultney, Annie Olsen, Julie Remington, Don Collingsworth, Eric Hays, Becca Hirsbrunner</string>
+ <key>openTypeNameDesignerURL</key>
+ <string>http://scripts.sil.org/</string>
+ <key>openTypeNameLicense</key>
+ <string>Copyright (c) 2004-2021 SIL International (http://www.sil.org/) with Reserved Font Names "Andika" and "SIL".
+
+This Font Software is licensed under the SIL Open Font License, Version 1.1. This license is copied below, and is also available with a FAQ at: http://scripts.sil.org/OFL
+
+
+-----------------------------------------------------------
+SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
+-----------------------------------------------------------
+
+PREAMBLE
+The goals of the Open Font License (OFL) are to stimulate worldwide development of collaborative font projects, to support the font creation efforts of academic and linguistic communities, and to provide a free and open framework in which fonts may be shared and improved in partnership with others.
+
+The OFL allows the licensed fonts to be used, studied, modified and redistributed freely as long as they are not sold by themselves. The fonts, including any derivative works, can be bundled, embedded, redistributed and/or sold with any software provided that any reserved names are not used by derivative works. The fonts and derivatives, however, cannot be released under any other type of license. The requirement for fonts to remain under this license does not apply to any document created using the fonts or their derivatives.
+
+DEFINITIONS
+"Font Software" refers to the set of files released by the Copyright Holder(s) under this license and clearly marked as such. This may include source files, build scripts and documentation.
+
+"Reserved Font Name" refers to any names specified as such after the copyright statement(s).
+
+"Original Version" refers to the collection of Font Software components as distributed by the Copyright Holder(s).
+
+"Modified Version" refers to any derivative made by adding to, deleting, or substituting -- in part or in whole -- any of the components of the Original Version, by changing formats or by porting the Font Software to a new environment.
+
+"Author" refers to any designer, engineer, programmer, technical writer or other person who contributed to the Font Software.
+
+PERMISSION &amp; CONDITIONS
+Permission is hereby granted, free of charge, to any person obtaining a copy of the Font Software, to use, study, copy, merge, embed, modify, redistribute, and sell modified and unmodified copies of the Font Software, subject to the following conditions:
+
+1) Neither the Font Software nor any of its individual components, in Original or Modified Versions, may be sold by itself.
+
+2) Original or Modified Versions of the Font Software may be bundled, redistributed and/or sold with any software, provided that each copy contains the above copyright notice and this license. These can be included either as stand-alone text files, human-readable headers or in the appropriate machine-readable metadata fields within text or binary files as long as those fields can be easily viewed by the user.
+
+3) No Modified Version of the Font Software may use the Reserved Font Name(s) unless explicit written permission is granted by the corresponding Copyright Holder. This restriction only applies to the primary font name as presented to the users.
+
+4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font Software shall not be used to promote, endorse or advertise any Modified Version, except to acknowledge the contribution(s) of the Copyright Holder(s) and the Author(s) or with their explicit written permission.
+
+5) The Font Software, modified or unmodified, in part or in whole, must be distributed entirely under this license, and must not be distributed under any other license. The requirement for fonts to remain under this license does not apply to any document created using the Font Software.
+
+TERMINATION
+This license becomes null and void if any of the above conditions are not met.
+
+DISCLAIMER
+THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM OTHER DEALINGS IN THE FONT SOFTWARE.</string>
+ <key>openTypeNameLicenseURL</key>
+ <string>http://scripts.sil.org/OFL</string>
+ <key>openTypeNameManufacturer</key>
+ <string>SIL International</string>
+ <key>openTypeNameManufacturerURL</key>
+ <string>http://scripts.sil.org</string>
+ <key>openTypeNamePreferredFamilyName</key>
+ <string>Psf Test</string>
+ <key>openTypeNamePreferredSubfamilyName</key>
+ <string>Regular</string>
+ <key>openTypeNameUniqueID</key>
+ <string>SIL International: Psf Test Regular: 2022</string>
+ <key>openTypeNameVersion</key>
+ <string>Version 5.550</string>
+ <key>openTypeOS2CodePageRanges</key>
+ <array>
+ <integer>0</integer>
+ <integer>1</integer>
+ <integer>2</integer>
+ <integer>4</integer>
+ <integer>7</integer>
+ <integer>8</integer>
+ </array>
+ <key>openTypeOS2FamilyClass</key>
+ <array>
+ <integer>0</integer>
+ <integer>0</integer>
+ </array>
+ <key>openTypeOS2Panose</key>
+ <array>
+ <integer>2</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ </array>
+ <key>openTypeOS2StrikeoutPosition</key>
+ <integer>700</integer>
+ <key>openTypeOS2StrikeoutSize</key>
+ <integer>100</integer>
+ <key>openTypeOS2SubscriptXOffset</key>
+ <integer>0</integer>
+ <key>openTypeOS2SubscriptXSize</key>
+ <integer>1433</integer>
+ <key>openTypeOS2SubscriptYOffset</key>
+ <integer>286</integer>
+ <key>openTypeOS2SubscriptYSize</key>
+ <integer>1331</integer>
+ <key>openTypeOS2SuperscriptXOffset</key>
+ <integer>0</integer>
+ <key>openTypeOS2SuperscriptXSize</key>
+ <integer>1433</integer>
+ <key>openTypeOS2SuperscriptYOffset</key>
+ <integer>976</integer>
+ <key>openTypeOS2SuperscriptYSize</key>
+ <integer>1331</integer>
+ <key>openTypeOS2Type</key>
+ <array/>
+ <key>openTypeOS2TypoAscender</key>
+ <integer>2100</integer>
+ <key>openTypeOS2TypoDescender</key>
+ <integer>-550</integer>
+ <key>openTypeOS2TypoLineGap</key>
+ <integer>0</integer>
+ <key>openTypeOS2UnicodeRanges</key>
+ <array>
+ <integer>0</integer>
+ <integer>1</integer>
+ <integer>6</integer>
+ <integer>7</integer>
+ <integer>31</integer>
+ <integer>33</integer>
+ <integer>35</integer>
+ <integer>36</integer>
+ <integer>37</integer>
+ <integer>38</integer>
+ <integer>39</integer>
+ <integer>40</integer>
+ <integer>45</integer>
+ <integer>46</integer>
+ <integer>47</integer>
+ <integer>57</integer>
+ <integer>60</integer>
+ <integer>62</integer>
+ <integer>64</integer>
+ <integer>67</integer>
+ <integer>69</integer>
+ <integer>89</integer>
+ </array>
+ <key>openTypeOS2VendorID</key>
+ <string>SIL</string>
+ <key>openTypeOS2WeightClass</key>
+ <integer>400</integer>
+ <key>openTypeOS2WidthClass</key>
+ <integer>5</integer>
+ <key>openTypeOS2WinAscent</key>
+ <integer>2100</integer>
+ <key>openTypeOS2WinDescent</key>
+ <integer>550</integer>
+ <key>postscriptBlueValues</key>
+ <array>
+ <integer>-490</integer>
+ <integer>-490</integer>
+ <integer>-25</integer>
+ <integer>0</integer>
+ <integer>1020</integer>
+ <integer>1040</integer>
+ <integer>1455</integer>
+ <integer>1485</integer>
+ <integer>1600</integer>
+ <integer>1620</integer>
+ </array>
+ <key>postscriptFontName</key>
+ <string>PsfTest-Regular</string>
+ <key>postscriptFullName</key>
+ <string>Psf Test Regular</string>
+ <key>postscriptStemSnapH</key>
+ <array>
+ <integer>140</integer>
+ <integer>145</integer>
+ <integer>150</integer>
+ <integer>155</integer>
+ <integer>160</integer>
+ <integer>165</integer>
+ <integer>170</integer>
+ <integer>175</integer>
+ <integer>185</integer>
+ <integer>270</integer>
+ </array>
+ <key>postscriptStemSnapV</key>
+ <array>
+ <integer>165</integer>
+ <integer>180</integer>
+ <integer>185</integer>
+ <integer>190</integer>
+ <integer>195</integer>
+ <integer>200</integer>
+ <integer>205</integer>
+ <integer>270</integer>
+ </array>
+ <key>postscriptUnderlinePosition</key>
+ <integer>-110</integer>
+ <key>postscriptUnderlineThickness</key>
+ <integer>80</integer>
+ <key>styleMapFamilyName</key>
+ <string>Psf Test</string>
+ <key>styleMapStyleName</key>
+ <string>regular</string>
+ <key>styleName</key>
+ <string>Regular</string>
+ <key>trademark</key>
+ <string>Andika is a trademark of SIL International.</string>
+ <key>unitsPerEm</key>
+ <integer>2048</integer>
+ <key>versionMajor</key>
+ <integer>5</integer>
+ <key>versionMinor</key>
+ <integer>550</integer>
+ <key>xHeight</key>
+ <integer>1040</integer>
+</dict>
+</plist>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/A_mpersand.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/A_mpersand.glif
new file mode 100644
index 0000000..c2cef04
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/A_mpersand.glif
@@ -0,0 +1,61 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Ampersand" format="2">
+ <advance width="1222"/>
+ <unicode hex="0026"/>
+ <outline>
+ <contour>
+ <point x="490" y="1485" type="curve" smooth="yes"/>
+ <point x="331" y="1485"/>
+ <point x="155" y="1412"/>
+ <point x="155" y="1190" type="curve" smooth="yes"/>
+ <point x="155" y="1010"/>
+ <point x="362" y="815"/>
+ <point x="535" y="570" type="curve" smooth="yes"/>
+ <point x="794" y="202"/>
+ <point x="973" y="-25"/>
+ <point x="1025" y="-25" type="curve" smooth="yes"/>
+ <point x="1060" y="-25"/>
+ <point x="1138" y="38"/>
+ <point x="1175" y="70" type="curve"/>
+ <point x="1080" y="110"/>
+ <point x="914" y="297"/>
+ <point x="650" y="680" type="curve" smooth="yes"/>
+ <point x="494" y="906"/>
+ <point x="315" y="1075"/>
+ <point x="315" y="1200" type="curve" smooth="yes"/>
+ <point x="315" y="1291"/>
+ <point x="398" y="1350"/>
+ <point x="475" y="1350" type="curve" smooth="yes"/>
+ <point x="555" y="1350"/>
+ <point x="630" y="1294"/>
+ <point x="630" y="1205" type="curve" smooth="yes"/>
+ <point x="630" y="1116"/>
+ <point x="523" y="1001"/>
+ <point x="350" y="840" type="curve" smooth="yes"/>
+ <point x="146" y="651"/>
+ <point x="55" y="527"/>
+ <point x="55" y="375" type="curve" smooth="yes"/>
+ <point x="55" y="151"/>
+ <point x="217" y="-25"/>
+ <point x="440" y="-25" type="curve" smooth="yes"/>
+ <point x="713" y="-25"/>
+ <point x="1002" y="274"/>
+ <point x="1080" y="435" type="curve"/>
+ <point x="975" y="570" type="line"/>
+ <point x="911" y="403"/>
+ <point x="630" y="150"/>
+ <point x="455" y="150" type="curve" smooth="yes"/>
+ <point x="310" y="150"/>
+ <point x="230" y="267"/>
+ <point x="230" y="380" type="curve" smooth="yes"/>
+ <point x="230" y="490"/>
+ <point x="296" y="587"/>
+ <point x="470" y="740" type="curve" smooth="yes"/>
+ <point x="651" y="899"/>
+ <point x="790" y="1068"/>
+ <point x="790" y="1200" type="curve" smooth="yes"/>
+ <point x="790" y="1382"/>
+ <point x="642" y="1485"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/A_pos.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/A_pos.glif
new file mode 100644
index 0000000..5042901
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/A_pos.glif
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Apos" format="2">
+ <advance width="605"/>
+ <unicode hex="0027"/>
+ <outline>
+ <contour>
+ <point x="365" y="1045" type="line"/>
+ <point x="370" y="1186"/>
+ <point x="376" y="1339"/>
+ <point x="405" y="1585" type="curve"/>
+ <point x="200" y="1585" type="line"/>
+ <point x="231" y="1339"/>
+ <point x="236" y="1186"/>
+ <point x="240" y="1045" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/A_sterisk.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/A_sterisk.glif
new file mode 100644
index 0000000..850d344
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/A_sterisk.glif
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Asterisk" format="2">
+ <advance width="1028"/>
+ <unicode hex="002A"/>
+ <outline>
+ <contour>
+ <point x="560" y="1600" type="curve"/>
+ <point x="415" y="1600" type="line"/>
+ <point x="434" y="1467"/>
+ <point x="447" y="1387"/>
+ <point x="450" y="1300" type="curve"/>
+ <point x="376" y="1344"/>
+ <point x="309" y="1387"/>
+ <point x="200" y="1465" type="curve"/>
+ <point x="125" y="1340" type="line"/>
+ <point x="250" y="1290"/>
+ <point x="327" y="1261"/>
+ <point x="405" y="1220" type="curve"/>
+ <point x="329" y="1177"/>
+ <point x="256" y="1140"/>
+ <point x="135" y="1085" type="curve"/>
+ <point x="205" y="960" type="line"/>
+ <point x="310" y="1042"/>
+ <point x="377" y="1094"/>
+ <point x="450" y="1140" type="curve"/>
+ <point x="448" y="1055"/>
+ <point x="442" y="973"/>
+ <point x="430" y="840" type="curve"/>
+ <point x="570" y="840" type="line"/>
+ <point x="550" y="973"/>
+ <point x="544" y="1052"/>
+ <point x="540" y="1140" type="curve"/>
+ <point x="614" y="1095"/>
+ <point x="681" y="1053"/>
+ <point x="790" y="975" type="curve"/>
+ <point x="865" y="1100" type="line"/>
+ <point x="739" y="1149"/>
+ <point x="663" y="1179"/>
+ <point x="585" y="1220" type="curve"/>
+ <point x="661" y="1261"/>
+ <point x="733" y="1299"/>
+ <point x="855" y="1355" type="curve"/>
+ <point x="785" y="1480" type="line"/>
+ <point x="680" y="1396"/>
+ <point x="614" y="1348"/>
+ <point x="540" y="1300" type="curve"/>
+ <point x="541" y="1387"/>
+ <point x="547" y="1467"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/A_tS_gn.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/A_tS_gn.glif
new file mode 100644
index 0000000..681014d
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/A_tS_gn.glif
@@ -0,0 +1,80 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="AtSgn" format="2">
+ <advance width="1702"/>
+ <unicode hex="0040"/>
+ <outline>
+ <contour>
+ <point x="1605" y="700" type="curve" smooth="yes"/>
+ <point x="1605" y="1127"/>
+ <point x="1307" y="1405"/>
+ <point x="880" y="1405" type="curve" smooth="yes"/>
+ <point x="465" y="1405"/>
+ <point x="95" y="1126"/>
+ <point x="95" y="575" type="curve" smooth="yes"/>
+ <point x="95" y="48"/>
+ <point x="464" y="-235"/>
+ <point x="855" y="-235" type="curve" smooth="yes"/>
+ <point x="990" y="-235"/>
+ <point x="1150" y="-188"/>
+ <point x="1250" y="-118" type="curve"/>
+ <point x="1145" y="-10" type="line"/>
+ <point x="1058" y="-70"/>
+ <point x="963" y="-95"/>
+ <point x="870" y="-95" type="curve" smooth="yes"/>
+ <point x="523" y="-95"/>
+ <point x="240" y="174"/>
+ <point x="240" y="605" type="curve" smooth="yes"/>
+ <point x="240" y="1003"/>
+ <point x="542" y="1270"/>
+ <point x="870" y="1270" type="curve" smooth="yes"/>
+ <point x="1263" y="1270"/>
+ <point x="1465" y="1002"/>
+ <point x="1465" y="670" type="curve" smooth="yes"/>
+ <point x="1465" y="432"/>
+ <point x="1348" y="315"/>
+ <point x="1280" y="315" type="curve" smooth="yes"/>
+ <point x="1221" y="315"/>
+ <point x="1175" y="410"/>
+ <point x="1175" y="630" type="curve" smooth="yes"/>
+ <point x="1175" y="980" type="line"/>
+ <point x="1088" y="1015"/>
+ <point x="961" y="1040"/>
+ <point x="880" y="1040" type="curve" smooth="yes"/>
+ <point x="716" y="1040"/>
+ <point x="613" y="971"/>
+ <point x="530" y="835" type="curve" smooth="yes"/>
+ <point x="483" y="756"/>
+ <point x="455" y="653"/>
+ <point x="455" y="530" type="curve" smooth="yes"/>
+ <point x="455" y="294"/>
+ <point x="601" y="183"/>
+ <point x="735" y="183" type="curve" smooth="yes"/>
+ <point x="852" y="183"/>
+ <point x="988" y="366"/>
+ <point x="1040" y="490" type="curve"/>
+ <point x="1050" y="322"/>
+ <point x="1128" y="180"/>
+ <point x="1250" y="180" type="curve" smooth="yes"/>
+ <point x="1425" y="180"/>
+ <point x="1605" y="368"/>
+ </contour>
+ <contour>
+ <point x="850" y="905" type="curve" smooth="yes"/>
+ <point x="924" y="905"/>
+ <point x="992" y="886"/>
+ <point x="1025" y="870" type="curve"/>
+ <point x="1025" y="720" type="line"/>
+ <point x="993" y="582"/>
+ <point x="838" y="320"/>
+ <point x="748" y="320" type="curve" smooth="yes"/>
+ <point x="676" y="320"/>
+ <point x="605" y="398"/>
+ <point x="605" y="575" type="curve" smooth="yes"/>
+ <point x="605" y="652"/>
+ <point x="621" y="731"/>
+ <point x="650" y="780" type="curve" smooth="yes"/>
+ <point x="706" y="876"/>
+ <point x="782" y="905"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/C_ircumA_ccent.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/C_ircumA_ccent.glif
new file mode 100644
index 0000000..60bd1cf
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/C_ircumA_ccent.glif
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="CircumAccent" format="2">
+ <advance width="850"/>
+ <unicode hex="005E"/>
+ <outline>
+ <component base="CombCircum" xOffset="995"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/C_olon.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/C_olon.glif
new file mode 100644
index 0000000..3cfbbc1
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/C_olon.glif
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Colon" format="2">
+ <advance width="640"/>
+ <unicode hex="003A"/>
+ <outline>
+ <contour>
+ <point x="185" y="790" type="curve" smooth="yes"/>
+ <point x="185" y="716"/>
+ <point x="246" y="655"/>
+ <point x="320" y="655" type="curve" smooth="yes"/>
+ <point x="394" y="655"/>
+ <point x="455" y="716"/>
+ <point x="455" y="790" type="curve" smooth="yes"/>
+ <point x="455" y="864"/>
+ <point x="394" y="925"/>
+ <point x="320" y="925" type="curve" smooth="yes"/>
+ <point x="246" y="925"/>
+ <point x="185" y="864"/>
+ </contour>
+ <contour>
+ <point x="185" y="110" type="curve" smooth="yes"/>
+ <point x="185" y="36"/>
+ <point x="246" y="-25"/>
+ <point x="320" y="-25" type="curve" smooth="yes"/>
+ <point x="394" y="-25"/>
+ <point x="455" y="36"/>
+ <point x="455" y="110" type="curve" smooth="yes"/>
+ <point x="455" y="184"/>
+ <point x="394" y="245"/>
+ <point x="320" y="245" type="curve" smooth="yes"/>
+ <point x="246" y="245"/>
+ <point x="185" y="184"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/C_ombA_cute.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/C_ombA_cute.glif
new file mode 100644
index 0000000..bb13221
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/C_ombA_cute.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="CombAcute" format="2">
+ <unicode hex="0301"/>
+ <anchor x="-570" y="1635" name="U"/>
+ <anchor x="-570" y="1100" name="_U"/>
+ <outline>
+ <contour>
+ <point x="-400" y="1600" type="line"/>
+ <point x="-750" y="1170" type="line"/>
+ <point x="-590" y="1170" type="line"/>
+ <point x="-170" y="1600" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/C_ombC_ircum.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/C_ombC_ircum.glif
new file mode 100644
index 0000000..fa444ec
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/C_ombC_ircum.glif
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="CombCircum" format="2">
+ <unicode hex="0302"/>
+ <anchor x="-570" y="1635" name="U"/>
+ <anchor x="-570" y="1100" name="_U"/>
+ <outline>
+ <contour>
+ <point x="-845" y="1170" type="line"/>
+ <point x="-570" y="1450" type="line"/>
+ <point x="-295" y="1170" type="line"/>
+ <point x="-145" y="1170" type="line"/>
+ <point x="-485" y="1600" type="line"/>
+ <point x="-655" y="1600" type="line"/>
+ <point x="-995" y="1170" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/C_ombD_iaer.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/C_ombD_iaer.glif
new file mode 100644
index 0000000..f7540ef
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/C_ombD_iaer.glif
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="CombDiaer" format="2">
+ <unicode hex="0308"/>
+ <anchor x="-570" y="1505" name="U"/>
+ <anchor x="-570" y="1100" name="_U"/>
+ <outline>
+ <contour>
+ <point x="-490" y="1345" type="curve" smooth="yes"/>
+ <point x="-490" y="1271"/>
+ <point x="-434" y="1210"/>
+ <point x="-360" y="1210" type="curve" smooth="yes"/>
+ <point x="-285" y="1210"/>
+ <point x="-230" y="1271"/>
+ <point x="-230" y="1345" type="curve" smooth="yes"/>
+ <point x="-230" y="1419"/>
+ <point x="-285" y="1480"/>
+ <point x="-360" y="1480" type="curve" smooth="yes"/>
+ <point x="-434" y="1480"/>
+ <point x="-490" y="1419"/>
+ </contour>
+ <contour>
+ <point x="-910" y="1345" type="curve" smooth="yes"/>
+ <point x="-910" y="1271"/>
+ <point x="-854" y="1210"/>
+ <point x="-780" y="1210" type="curve" smooth="yes"/>
+ <point x="-705" y="1210"/>
+ <point x="-650" y="1271"/>
+ <point x="-650" y="1345" type="curve" smooth="yes"/>
+ <point x="-650" y="1419"/>
+ <point x="-705" y="1480"/>
+ <point x="-780" y="1480" type="curve" smooth="yes"/>
+ <point x="-854" y="1480"/>
+ <point x="-910" y="1419"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/C_ombG_rave.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/C_ombG_rave.glif
new file mode 100644
index 0000000..c33b56a
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/C_ombG_rave.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="CombGrave" format="2">
+ <unicode hex="0300"/>
+ <anchor x="-550" y="1635" name="U"/>
+ <anchor x="-550" y="1100" name="_U"/>
+ <outline>
+ <contour>
+ <point x="-940" y="1600" type="line"/>
+ <point x="-520" y="1170" type="line"/>
+ <point x="-360" y="1170" type="line"/>
+ <point x="-710" y="1600" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/C_ombR_ingA_bv.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/C_ombR_ingA_bv.glif
new file mode 100644
index 0000000..b019e05
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/C_ombR_ingA_bv.glif
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="CombRingAbv" format="2">
+ <unicode hex="030A"/>
+ <anchor x="-570" y="1635" name="U"/>
+ <anchor x="-572" y="1100" name="_U"/>
+ <outline>
+ <contour>
+ <point x="-470" y="1385" type="curve" smooth="yes"/>
+ <point x="-470" y="1325"/>
+ <point x="-510" y="1285"/>
+ <point x="-570" y="1285" type="curve" smooth="yes"/>
+ <point x="-630" y="1285"/>
+ <point x="-670" y="1325"/>
+ <point x="-670" y="1385" type="curve" smooth="yes"/>
+ <point x="-670" y="1445"/>
+ <point x="-630" y="1485"/>
+ <point x="-570" y="1485" type="curve" smooth="yes"/>
+ <point x="-510" y="1485"/>
+ <point x="-470" y="1445"/>
+ </contour>
+ <contour>
+ <point x="-785" y="1385" type="curve" smooth="yes"/>
+ <point x="-785" y="1265"/>
+ <point x="-690" y="1170"/>
+ <point x="-570" y="1170" type="curve" smooth="yes"/>
+ <point x="-450" y="1170"/>
+ <point x="-355" y="1265"/>
+ <point x="-355" y="1385" type="curve" smooth="yes"/>
+ <point x="-355" y="1505"/>
+ <point x="-450" y="1600"/>
+ <point x="-570" y="1600" type="curve" smooth="yes"/>
+ <point x="-690" y="1600"/>
+ <point x="-785" y="1505"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/C_ombT_ilde.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/C_ombT_ilde.glif
new file mode 100644
index 0000000..88d5ca7
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/C_ombT_ilde.glif
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="CombTilde" format="2">
+ <unicode hex="0303"/>
+ <anchor x="-575" y="1475" name="U"/>
+ <anchor x="-575" y="1100" name="_U"/>
+ <outline>
+ <contour>
+ <point x="-820" y="1205" type="line"/>
+ <point x="-815" y="1254"/>
+ <point x="-784" y="1290"/>
+ <point x="-735" y="1290" type="curve" smooth="yes"/>
+ <point x="-698" y="1290"/>
+ <point x="-657" y="1274"/>
+ <point x="-580" y="1238" type="curve" smooth="yes"/>
+ <point x="-519" y="1210"/>
+ <point x="-466" y="1190"/>
+ <point x="-413" y="1190" type="curve" smooth="yes"/>
+ <point x="-290" y="1190"/>
+ <point x="-215" y="1312"/>
+ <point x="-215" y="1440" type="curve"/>
+ <point x="-320" y="1440" type="line"/>
+ <point x="-327" y="1394"/>
+ <point x="-358" y="1355"/>
+ <point x="-405" y="1355" type="curve" smooth="yes"/>
+ <point x="-447" y="1355"/>
+ <point x="-488" y="1374"/>
+ <point x="-560" y="1403" type="curve" smooth="yes"/>
+ <point x="-630" y="1431"/>
+ <point x="-677" y="1455"/>
+ <point x="-733" y="1455" type="curve" smooth="yes"/>
+ <point x="-852" y="1455"/>
+ <point x="-925" y="1327"/>
+ <point x="-925" y="1205" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/C_omma.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/C_omma.glif
new file mode 100644
index 0000000..6e8f5a3
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/C_omma.glif
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Comma" format="2">
+ <advance width="650"/>
+ <unicode hex="002C"/>
+ <outline>
+ <contour>
+ <point x="185" y="50" type="line"/>
+ <point x="325" y="50" type="line"/>
+ <point x="325" y="-51"/>
+ <point x="248" y="-172"/>
+ <point x="190" y="-230" type="curve"/>
+ <point x="290" y="-270" type="line"/>
+ <point x="407" y="-160"/>
+ <point x="465" y="-37"/>
+ <point x="465" y="85" type="curve" smooth="yes"/>
+ <point x="465" y="186"/>
+ <point x="400" y="250"/>
+ <point x="320" y="250" type="curve" smooth="yes"/>
+ <point x="263" y="250"/>
+ <point x="198" y="213"/>
+ <point x="185" y="150" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/D_igitE_ight.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/D_igitE_ight.glif
new file mode 100644
index 0000000..b7e540a
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/D_igitE_ight.glif
@@ -0,0 +1,63 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitEight" format="2">
+ <advance width="1200"/>
+ <unicode hex="0038"/>
+ <anchor x="600" y="-100" name="L"/>
+ <anchor x="600" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="600" y="-25" type="curve" smooth="yes"/>
+ <point x="857" y="-25"/>
+ <point x="1110" y="134"/>
+ <point x="1110" y="405" type="curve" smooth="yes"/>
+ <point x="1110" y="611"/>
+ <point x="965" y="739"/>
+ <point x="855" y="795" type="curve"/>
+ <point x="933" y="844"/>
+ <point x="1050" y="923"/>
+ <point x="1050" y="1105" type="curve" smooth="yes"/>
+ <point x="1050" y="1350"/>
+ <point x="840" y="1485"/>
+ <point x="610" y="1485" type="curve" smooth="yes"/>
+ <point x="381" y="1485"/>
+ <point x="150" y="1350"/>
+ <point x="150" y="1105" type="curve" smooth="yes"/>
+ <point x="150" y="923"/>
+ <point x="272" y="838"/>
+ <point x="350" y="795" type="curve"/>
+ <point x="221" y="725"/>
+ <point x="90" y="611"/>
+ <point x="90" y="405" type="curve" smooth="yes"/>
+ <point x="90" y="134"/>
+ <point x="344" y="-25"/>
+ </contour>
+ <contour>
+ <point x="860" y="1105" type="curve" smooth="yes"/>
+ <point x="860" y="949"/>
+ <point x="743" y="865"/>
+ <point x="600" y="865" type="curve" smooth="yes"/>
+ <point x="457" y="865"/>
+ <point x="340" y="949"/>
+ <point x="340" y="1105" type="curve" smooth="yes"/>
+ <point x="340" y="1252"/>
+ <point x="457" y="1325"/>
+ <point x="600" y="1325" type="curve" smooth="yes"/>
+ <point x="743" y="1325"/>
+ <point x="860" y="1252"/>
+ </contour>
+ <contour>
+ <point x="910" y="425" type="curve" smooth="yes"/>
+ <point x="910" y="250"/>
+ <point x="778" y="145"/>
+ <point x="600" y="145" type="curve" smooth="yes"/>
+ <point x="420" y="145"/>
+ <point x="290" y="250"/>
+ <point x="290" y="425" type="curve" smooth="yes"/>
+ <point x="290" y="592"/>
+ <point x="420" y="710"/>
+ <point x="600" y="710" type="curve" smooth="yes"/>
+ <point x="778" y="710"/>
+ <point x="910" y="592"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/D_igitF_ive.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/D_igitF_ive.glif
new file mode 100644
index 0000000..cb2dd85
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/D_igitF_ive.glif
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitFive" format="2">
+ <advance width="1200"/>
+ <unicode hex="0035"/>
+ <anchor x="600" y="-100" name="L"/>
+ <anchor x="600" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="195" y="685" type="line"/>
+ <point x="319" y="733"/>
+ <point x="404" y="750"/>
+ <point x="510" y="750" type="curve" smooth="yes"/>
+ <point x="670" y="750"/>
+ <point x="870" y="672"/>
+ <point x="870" y="470" type="curve" smooth="yes"/>
+ <point x="870" y="268"/>
+ <point x="730" y="155"/>
+ <point x="530" y="155" type="curve" smooth="yes"/>
+ <point x="390" y="155"/>
+ <point x="294" y="182"/>
+ <point x="160" y="290" type="curve"/>
+ <point x="130" y="80" type="line"/>
+ <point x="255" y="2"/>
+ <point x="363" y="-25"/>
+ <point x="518" y="-25" type="curve" smooth="yes"/>
+ <point x="831" y="-25"/>
+ <point x="1060" y="163"/>
+ <point x="1060" y="475" type="curve" smooth="yes"/>
+ <point x="1060" y="742"/>
+ <point x="832" y="930"/>
+ <point x="545" y="930" type="curve" smooth="yes"/>
+ <point x="472" y="930"/>
+ <point x="411" y="924"/>
+ <point x="380" y="920" type="curve"/>
+ <point x="380" y="1290" type="line"/>
+ <point x="765" y="1290" type="line"/>
+ <point x="849" y="1290"/>
+ <point x="925" y="1286"/>
+ <point x="1000" y="1270" type="curve"/>
+ <point x="1000" y="1460" type="line"/>
+ <point x="195" y="1460" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/D_igitF_our.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/D_igitF_our.glif
new file mode 100644
index 0000000..d9a5610
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/D_igitF_our.glif
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitFour" format="2">
+ <advance width="1200"/>
+ <unicode hex="0034"/>
+ <anchor x="607" y="-100" name="L"/>
+ <anchor x="607" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1125" y="395" type="line"/>
+ <point x="1125" y="550" type="line"/>
+ <point x="935" y="550" type="line"/>
+ <point x="935" y="1480" type="line"/>
+ <point x="745" y="1480" type="line"/>
+ <point x="90" y="550" type="line"/>
+ <point x="90" y="395" type="line"/>
+ <point x="745" y="395" type="line"/>
+ <point x="745" y="0" type="line"/>
+ <point x="935" y="0" type="line"/>
+ <point x="935" y="395" type="line"/>
+ </contour>
+ <contour>
+ <point x="745" y="1230" type="line"/>
+ <point x="745" y="550" type="line"/>
+ <point x="263" y="550" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/D_igitN_ine.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/D_igitN_ine.glif
new file mode 100644
index 0000000..0ce656a
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/D_igitN_ine.glif
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitNine" format="2">
+ <advance width="1200"/>
+ <unicode hex="0039"/>
+ <anchor x="600" y="-100" name="L"/>
+ <anchor x="600" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="193" y="65" type="line"/>
+ <point x="297" y="-5"/>
+ <point x="383" y="-25"/>
+ <point x="501" y="-25" type="curve" smooth="yes"/>
+ <point x="976" y="-25"/>
+ <point x="1114" y="411"/>
+ <point x="1114" y="780" type="curve" smooth="yes"/>
+ <point x="1114" y="1198"/>
+ <point x="926" y="1485"/>
+ <point x="616" y="1485" type="curve" smooth="yes"/>
+ <point x="349" y="1485"/>
+ <point x="112" y="1306"/>
+ <point x="112" y="1002" type="curve" smooth="yes"/>
+ <point x="112" y="773"/>
+ <point x="281" y="586"/>
+ <point x="559" y="586" type="curve" smooth="yes"/>
+ <point x="750" y="586"/>
+ <point x="922" y="717"/>
+ <point x="1019" y="878" type="curve"/>
+ <point x="948" y="961" type="line"/>
+ <point x="874" y="847"/>
+ <point x="738" y="760"/>
+ <point x="583" y="760" type="curve" smooth="yes"/>
+ <point x="424" y="760"/>
+ <point x="306" y="860"/>
+ <point x="306" y="1036" type="curve" smooth="yes"/>
+ <point x="306" y="1196"/>
+ <point x="420" y="1310"/>
+ <point x="596" y="1310" type="curve" smooth="yes"/>
+ <point x="837" y="1310"/>
+ <point x="919" y="1065"/>
+ <point x="919" y="813" type="curve" smooth="yes"/>
+ <point x="919" y="326"/>
+ <point x="748" y="150"/>
+ <point x="511" y="150" type="curve" smooth="yes"/>
+ <point x="415" y="150"/>
+ <point x="323" y="174"/>
+ <point x="237" y="260" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/D_igitO_ne.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/D_igitO_ne.glif
new file mode 100644
index 0000000..42c7708
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/D_igitO_ne.glif
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitOne" format="2">
+ <advance width="1200"/>
+ <unicode hex="0031"/>
+ <anchor x="600" y="-100" name="L"/>
+ <anchor x="600" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="535" y="170" type="line"/>
+ <point x="220" y="170" type="line"/>
+ <point x="220" y="0" type="line"/>
+ <point x="1040" y="0" type="line"/>
+ <point x="1040" y="170" type="line"/>
+ <point x="725" y="170" type="line"/>
+ <point x="725" y="1480" type="line"/>
+ <point x="555" y="1480" type="line"/>
+ <point x="210" y="1268" type="line"/>
+ <point x="235" y="1088" type="line"/>
+ <point x="535" y="1260" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/D_igitS_even.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/D_igitS_even.glif
new file mode 100644
index 0000000..c9ca97e
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/D_igitS_even.glif
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitSeven" format="2">
+ <advance width="1200"/>
+ <unicode hex="0037"/>
+ <anchor x="600" y="-100" name="L"/>
+ <anchor x="600" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="460" y="0" type="line"/>
+ <point x="589" y="459"/>
+ <point x="794" y="895"/>
+ <point x="1090" y="1300" type="curve"/>
+ <point x="1090" y="1460" type="line"/>
+ <point x="100" y="1460" type="line"/>
+ <point x="100" y="1275" type="line"/>
+ <point x="176" y="1291"/>
+ <point x="292" y="1295"/>
+ <point x="480" y="1295" type="curve" smooth="yes"/>
+ <point x="870" y="1295" type="line"/>
+ <point x="612" y="912"/>
+ <point x="439" y="566"/>
+ <point x="275" y="0" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/D_igitS_ix.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/D_igitS_ix.glif
new file mode 100644
index 0000000..ec0acdb
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/D_igitS_ix.glif
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitSix" format="2">
+ <advance width="1200"/>
+ <unicode hex="0036"/>
+ <anchor x="600" y="-100" name="L"/>
+ <anchor x="600" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1033" y="1395" type="line"/>
+ <point x="929" y="1465"/>
+ <point x="843" y="1485"/>
+ <point x="725" y="1485" type="curve" smooth="yes"/>
+ <point x="250" y="1485"/>
+ <point x="110" y="1049"/>
+ <point x="110" y="680" type="curve" smooth="yes"/>
+ <point x="110" y="242"/>
+ <point x="290" y="-25"/>
+ <point x="600" y="-25" type="curve" smooth="yes"/>
+ <point x="907" y="-25"/>
+ <point x="1115" y="166"/>
+ <point x="1115" y="470" type="curve" smooth="yes"/>
+ <point x="1115" y="719"/>
+ <point x="943" y="895"/>
+ <point x="665" y="895" type="curve" smooth="yes"/>
+ <point x="474" y="895"/>
+ <point x="328" y="780"/>
+ <point x="215" y="625" type="curve"/>
+ <point x="280" y="550" type="line"/>
+ <point x="362" y="653"/>
+ <point x="490" y="720"/>
+ <point x="645" y="720" type="curve" smooth="yes"/>
+ <point x="824" y="720"/>
+ <point x="920" y="611"/>
+ <point x="920" y="435" type="curve" smooth="yes"/>
+ <point x="920" y="275"/>
+ <point x="806" y="150"/>
+ <point x="630" y="150" type="curve" smooth="yes"/>
+ <point x="409" y="150"/>
+ <point x="305" y="393"/>
+ <point x="305" y="645" type="curve" smooth="yes"/>
+ <point x="305" y="1132"/>
+ <point x="478" y="1310"/>
+ <point x="715" y="1310" type="curve" smooth="yes"/>
+ <point x="811" y="1310"/>
+ <point x="903" y="1286"/>
+ <point x="989" y="1200" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/D_igitT_hree.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/D_igitT_hree.glif
new file mode 100644
index 0000000..3242c12
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/D_igitT_hree.glif
@@ -0,0 +1,52 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitThree" format="2">
+ <advance width="1200"/>
+ <unicode hex="0033"/>
+ <anchor x="600" y="-100" name="L"/>
+ <anchor x="600" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="410" y="870" type="line"/>
+ <point x="410" y="700" type="line"/>
+ <point x="480" y="700" type="line"/>
+ <point x="716" y="700"/>
+ <point x="895" y="588"/>
+ <point x="895" y="425" type="curve" smooth="yes"/>
+ <point x="895" y="241"/>
+ <point x="718" y="150"/>
+ <point x="565" y="150" type="curve" smooth="yes"/>
+ <point x="385" y="150"/>
+ <point x="244" y="232"/>
+ <point x="135" y="355" type="curve"/>
+ <point x="110" y="140" type="line"/>
+ <point x="215" y="42"/>
+ <point x="368" y="-25"/>
+ <point x="545" y="-25" type="curve" smooth="yes"/>
+ <point x="834" y="-25"/>
+ <point x="1090" y="170"/>
+ <point x="1090" y="405" type="curve" smooth="yes"/>
+ <point x="1090" y="672"/>
+ <point x="862" y="776"/>
+ <point x="720" y="800" type="curve"/>
+ <point x="862" y="829"/>
+ <point x="1040" y="957"/>
+ <point x="1040" y="1140" type="curve" smooth="yes"/>
+ <point x="1040" y="1354"/>
+ <point x="828" y="1485"/>
+ <point x="580" y="1485" type="curve"/>
+ <point x="413" y="1485"/>
+ <point x="260" y="1416"/>
+ <point x="180" y="1325" type="curve"/>
+ <point x="215" y="1155" type="line"/>
+ <point x="328" y="1271"/>
+ <point x="436" y="1310"/>
+ <point x="590" y="1310" type="curve" smooth="yes"/>
+ <point x="711" y="1310"/>
+ <point x="850" y="1250"/>
+ <point x="850" y="1115" type="curve" smooth="yes"/>
+ <point x="850" y="991"/>
+ <point x="679" y="870"/>
+ <point x="480" y="870" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/D_igitT_wo.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/D_igitT_wo.glif
new file mode 100644
index 0000000..c179477
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/D_igitT_wo.glif
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitTwo" format="2">
+ <advance width="1200"/>
+ <unicode hex="0032"/>
+ <anchor x="600" y="-100" name="L"/>
+ <anchor x="560" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1080" y="180" type="line"/>
+ <point x="1000" y="166"/>
+ <point x="842" y="165"/>
+ <point x="645" y="165" type="curve" smooth="yes"/>
+ <point x="390" y="165" type="line"/>
+ <point x="609" y="352"/>
+ <point x="1010" y="729"/>
+ <point x="1010" y="1065" type="curve" smooth="yes"/>
+ <point x="1010" y="1323"/>
+ <point x="800" y="1485"/>
+ <point x="560" y="1485" type="curve" smooth="yes"/>
+ <point x="391" y="1485"/>
+ <point x="206" y="1402"/>
+ <point x="125" y="1290" type="curve"/>
+ <point x="170" y="1120" type="line"/>
+ <point x="259" y="1228"/>
+ <point x="402" y="1305"/>
+ <point x="525" y="1305" type="curve" smooth="yes"/>
+ <point x="668" y="1305"/>
+ <point x="810" y="1233"/>
+ <point x="810" y="1045" type="curve" smooth="yes"/>
+ <point x="810" y="768"/>
+ <point x="391" y="365"/>
+ <point x="120" y="170" type="curve"/>
+ <point x="120" y="0" type="line"/>
+ <point x="1080" y="0" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/D_igitZ_ero.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/D_igitZ_ero.glif
new file mode 100644
index 0000000..d976d0f
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/D_igitZ_ero.glif
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitZero" format="2">
+ <advance width="1200"/>
+ <unicode hex="0030"/>
+ <anchor x="605" y="-100" name="L"/>
+ <anchor x="605" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="910" y="715" type="curve" smooth="yes"/>
+ <point x="910" y="308"/>
+ <point x="792" y="145"/>
+ <point x="600" y="145" type="curve" smooth="yes"/>
+ <point x="402" y="145"/>
+ <point x="290" y="305"/>
+ <point x="290" y="745" type="curve" smooth="yes"/>
+ <point x="290" y="1153"/>
+ <point x="407" y="1315"/>
+ <point x="600" y="1315" type="curve" smooth="yes"/>
+ <point x="802" y="1315"/>
+ <point x="910" y="1156"/>
+ </contour>
+ <contour>
+ <point x="1110" y="740" type="curve" smooth="yes"/>
+ <point x="1110" y="1286"/>
+ <point x="900" y="1485"/>
+ <point x="610" y="1485" type="curve" smooth="yes"/>
+ <point x="321" y="1485"/>
+ <point x="90" y="1283"/>
+ <point x="90" y="720" type="curve" smooth="yes"/>
+ <point x="90" y="155"/>
+ <point x="301" y="-25"/>
+ <point x="590" y="-25" type="curve" smooth="yes"/>
+ <point x="881" y="-25"/>
+ <point x="1110" y="151"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/D_ollarS_gn.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/D_ollarS_gn.glif
new file mode 100644
index 0000000..52136d8
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/D_ollarS_gn.glif
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DollarSgn" format="2">
+ <advance width="1200"/>
+ <unicode hex="0024"/>
+ <outline>
+ <contour>
+ <point x="553" y="1600" type="line"/>
+ <point x="553" y="-220" type="line"/>
+ <point x="683" y="-220" type="line"/>
+ <point x="683" y="1600" type="line"/>
+ </contour>
+ <contour>
+ <point x="986" y="1306" type="line"/>
+ <point x="866" y="1364"/>
+ <point x="764" y="1389"/>
+ <point x="623" y="1389" type="curve" smooth="yes"/>
+ <point x="317" y="1389"/>
+ <point x="190" y="1173"/>
+ <point x="190" y="1017" type="curve" smooth="yes"/>
+ <point x="190" y="860"/>
+ <point x="253" y="739"/>
+ <point x="540" y="653" type="curve" smooth="yes"/>
+ <point x="827" y="567"/>
+ <point x="871" y="492"/>
+ <point x="871" y="396" type="curve" smooth="yes"/>
+ <point x="871" y="247"/>
+ <point x="734" y="161"/>
+ <point x="586" y="161" type="curve" smooth="yes"/>
+ <point x="450" y="161"/>
+ <point x="316" y="207"/>
+ <point x="195" y="313" type="curve"/>
+ <point x="153" y="124" type="line"/>
+ <point x="247" y="52"/>
+ <point x="408" y="0"/>
+ <point x="586" y="0" type="curve" smooth="yes"/>
+ <point x="837" y="0"/>
+ <point x="1046" y="167"/>
+ <point x="1046" y="414" type="curve" smooth="yes"/>
+ <point x="1046" y="613"/>
+ <point x="912" y="725"/>
+ <point x="669" y="796" type="curve" smooth="yes"/>
+ <point x="406" y="873"/>
+ <point x="365" y="929"/>
+ <point x="365" y="1030" type="curve" smooth="yes"/>
+ <point x="365" y="1132"/>
+ <point x="466" y="1228"/>
+ <point x="613" y="1228" type="curve" smooth="yes"/>
+ <point x="731" y="1228"/>
+ <point x="818" y="1200"/>
+ <point x="949" y="1127" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/D_ottedC_irc.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/D_ottedC_irc.glif
new file mode 100644
index 0000000..4cf5cb4
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/D_ottedC_irc.glif
@@ -0,0 +1,235 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DottedCirc" format="2">
+ <advance width="1106"/>
+ <unicode hex="25CC"/>
+ <anchor x="553" y="0" name="H"/>
+ <anchor x="553" y="-100" name="L"/>
+ <anchor x="810" y="0" name="O"/>
+ <anchor x="553" y="1000" name="U"/>
+ <outline>
+ <contour>
+ <point x="443" y="837" type="curve" smooth="yes"/>
+ <point x="443" y="864"/>
+ <point x="423" y="885"/>
+ <point x="398" y="885" type="curve" smooth="yes"/>
+ <point x="371" y="885"/>
+ <point x="348" y="861"/>
+ <point x="348" y="837" type="curve" smooth="yes"/>
+ <point x="348" y="809"/>
+ <point x="372" y="789"/>
+ <point x="398" y="789" type="curve" smooth="yes"/>
+ <point x="425" y="789"/>
+ <point x="443" y="812"/>
+ </contour>
+ <contour>
+ <point x="758" y="79" type="curve" smooth="yes"/>
+ <point x="758" y="106"/>
+ <point x="736" y="127"/>
+ <point x="710" y="127" type="curve" smooth="yes"/>
+ <point x="685" y="127"/>
+ <point x="662" y="103"/>
+ <point x="662" y="80" type="curve" smooth="yes"/>
+ <point x="662" y="52"/>
+ <point x="686" y="31"/>
+ <point x="710" y="31" type="curve" smooth="yes"/>
+ <point x="737" y="31"/>
+ <point x="758" y="55"/>
+ </contour>
+ <contour>
+ <point x="310" y="749" type="curve" smooth="yes"/>
+ <point x="310" y="775"/>
+ <point x="288" y="796"/>
+ <point x="263" y="796" type="curve" smooth="yes"/>
+ <point x="238" y="796"/>
+ <point x="215" y="774"/>
+ <point x="215" y="747" type="curve" smooth="yes"/>
+ <point x="215" y="722"/>
+ <point x="236" y="701"/>
+ <point x="263" y="701" type="curve" smooth="yes"/>
+ <point x="291" y="701"/>
+ <point x="310" y="720"/>
+ </contour>
+ <contour>
+ <point x="891" y="168" type="curve" smooth="yes"/>
+ <point x="891" y="197"/>
+ <point x="870" y="215"/>
+ <point x="843" y="215" type="curve" smooth="yes"/>
+ <point x="817" y="215"/>
+ <point x="795" y="194"/>
+ <point x="795" y="168" type="curve" smooth="yes"/>
+ <point x="795" y="143"/>
+ <point x="816" y="121"/>
+ <point x="843" y="121" type="curve" smooth="yes"/>
+ <point x="871" y="121"/>
+ <point x="891" y="143"/>
+ </contour>
+ <contour>
+ <point x="222" y="613" type="curve" smooth="yes"/>
+ <point x="222" y="640"/>
+ <point x="199" y="663"/>
+ <point x="173" y="663" type="curve" smooth="yes"/>
+ <point x="149" y="663"/>
+ <point x="126" y="642"/>
+ <point x="126" y="615" type="curve" smooth="yes"/>
+ <point x="126" y="591"/>
+ <point x="145" y="567"/>
+ <point x="173" y="567" type="curve" smooth="yes"/>
+ <point x="197" y="567"/>
+ <point x="222" y="587"/>
+ </contour>
+ <contour>
+ <point x="980" y="301" type="curve" smooth="yes"/>
+ <point x="980" y="327"/>
+ <point x="957" y="348"/>
+ <point x="932" y="348" type="curve" smooth="yes"/>
+ <point x="908" y="348"/>
+ <point x="884" y="332"/>
+ <point x="884" y="301" type="curve" smooth="yes"/>
+ <point x="884" y="277"/>
+ <point x="902" y="254"/>
+ <point x="932" y="254" type="curve" smooth="yes"/>
+ <point x="957" y="254"/>
+ <point x="980" y="274"/>
+ </contour>
+ <contour>
+ <point x="191" y="459" type="curve" smooth="yes"/>
+ <point x="191" y="484"/>
+ <point x="168" y="505"/>
+ <point x="143" y="505" type="curve" smooth="yes"/>
+ <point x="116" y="505"/>
+ <point x="95" y="484"/>
+ <point x="95" y="458" type="curve" smooth="yes"/>
+ <point x="95" y="433"/>
+ <point x="115" y="410"/>
+ <point x="143" y="410" type="curve" smooth="yes"/>
+ <point x="167" y="410"/>
+ <point x="191" y="432"/>
+ </contour>
+ <contour>
+ <point x="1011" y="458" type="curve" smooth="yes"/>
+ <point x="1011" y="484"/>
+ <point x="990" y="506"/>
+ <point x="964" y="506" type="curve" smooth="yes"/>
+ <point x="940" y="506"/>
+ <point x="915" y="484"/>
+ <point x="915" y="457" type="curve" smooth="yes"/>
+ <point x="915" y="433"/>
+ <point x="936" y="411"/>
+ <point x="964" y="411" type="curve" smooth="yes"/>
+ <point x="990" y="411"/>
+ <point x="1011" y="433"/>
+ </contour>
+ <contour>
+ <point x="222" y="302" type="curve" smooth="yes"/>
+ <point x="222" y="328"/>
+ <point x="200" y="348"/>
+ <point x="174" y="348" type="curve" smooth="yes"/>
+ <point x="147" y="348"/>
+ <point x="126" y="326"/>
+ <point x="126" y="302" type="curve" smooth="yes"/>
+ <point x="126" y="275"/>
+ <point x="149" y="253"/>
+ <point x="174" y="253" type="curve" smooth="yes"/>
+ <point x="201" y="253"/>
+ <point x="222" y="277"/>
+ </contour>
+ <contour>
+ <point x="980" y="615" type="curve" smooth="yes"/>
+ <point x="980" y="642"/>
+ <point x="955" y="663"/>
+ <point x="931" y="663" type="curve" smooth="yes"/>
+ <point x="904" y="663"/>
+ <point x="885" y="638"/>
+ <point x="885" y="614" type="curve" smooth="yes"/>
+ <point x="885" y="588"/>
+ <point x="907" y="567"/>
+ <point x="931" y="567" type="curve" smooth="yes"/>
+ <point x="959" y="567"/>
+ <point x="980" y="591"/>
+ </contour>
+ <contour>
+ <point x="310" y="168" type="curve" smooth="yes"/>
+ <point x="310" y="195"/>
+ <point x="291" y="215"/>
+ <point x="263" y="215" type="curve" smooth="yes"/>
+ <point x="238" y="215"/>
+ <point x="215" y="190"/>
+ <point x="215" y="168" type="curve" smooth="yes"/>
+ <point x="215" y="143"/>
+ <point x="238" y="120"/>
+ <point x="263" y="120" type="curve" smooth="yes"/>
+ <point x="289" y="120"/>
+ <point x="310" y="143"/>
+ </contour>
+ <contour>
+ <point x="890" y="748" type="curve" smooth="yes"/>
+ <point x="890" y="774"/>
+ <point x="870" y="796"/>
+ <point x="843" y="796" type="curve" smooth="yes"/>
+ <point x="815" y="796"/>
+ <point x="796" y="773"/>
+ <point x="796" y="748" type="curve" smooth="yes"/>
+ <point x="796" y="724"/>
+ <point x="817" y="700"/>
+ <point x="843" y="700" type="curve" smooth="yes"/>
+ <point x="869" y="700"/>
+ <point x="890" y="722"/>
+ </contour>
+ <contour>
+ <point x="444" y="78" type="curve" smooth="yes"/>
+ <point x="444" y="102"/>
+ <point x="423" y="126"/>
+ <point x="396" y="126" type="curve" smooth="yes"/>
+ <point x="370" y="126"/>
+ <point x="348" y="102"/>
+ <point x="348" y="78" type="curve" smooth="yes"/>
+ <point x="348" y="55"/>
+ <point x="370" y="31"/>
+ <point x="396" y="31" type="curve" smooth="yes"/>
+ <point x="420" y="31"/>
+ <point x="444" y="51"/>
+ </contour>
+ <contour>
+ <point x="758" y="836" type="curve" smooth="yes"/>
+ <point x="758" y="861"/>
+ <point x="737" y="885"/>
+ <point x="710" y="885" type="curve" smooth="yes"/>
+ <point x="684" y="885"/>
+ <point x="663" y="862"/>
+ <point x="663" y="838" type="curve" smooth="yes"/>
+ <point x="663" y="814"/>
+ <point x="683" y="789"/>
+ <point x="710" y="789" type="curve" smooth="yes"/>
+ <point x="734" y="789"/>
+ <point x="758" y="809"/>
+ </contour>
+ <contour>
+ <point x="601" y="47" type="curve" smooth="yes"/>
+ <point x="601" y="73"/>
+ <point x="579" y="95"/>
+ <point x="553" y="95" type="curve" smooth="yes"/>
+ <point x="527" y="95"/>
+ <point x="506" y="73"/>
+ <point x="506" y="47" type="curve" smooth="yes"/>
+ <point x="506" y="21"/>
+ <point x="527" y="0"/>
+ <point x="553" y="0" type="curve" smooth="yes"/>
+ <point x="579" y="0"/>
+ <point x="601" y="21"/>
+ </contour>
+ <contour>
+ <point x="601" y="868" type="curve" smooth="yes"/>
+ <point x="601" y="894"/>
+ <point x="579" y="916"/>
+ <point x="553" y="916" type="curve" smooth="yes"/>
+ <point x="527" y="916"/>
+ <point x="506" y="894"/>
+ <point x="506" y="868" type="curve" smooth="yes"/>
+ <point x="506" y="842"/>
+ <point x="527" y="821"/>
+ <point x="553" y="821" type="curve" smooth="yes"/>
+ <point x="579" y="821"/>
+ <point x="601" y="842"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/E_qS_gn.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/E_qS_gn.glif
new file mode 100644
index 0000000..1315ffa
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/E_qS_gn.glif
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="EqSgn" format="2">
+ <advance width="1200"/>
+ <unicode hex="003D"/>
+ <outline>
+ <contour>
+ <point x="120" y="480" type="line"/>
+ <point x="1080" y="480" type="line"/>
+ <point x="1080" y="630" type="line"/>
+ <point x="120" y="630" type="line"/>
+ </contour>
+ <contour>
+ <point x="120" y="830" type="line"/>
+ <point x="1080" y="830" type="line"/>
+ <point x="1080" y="980" type="line"/>
+ <point x="120" y="980" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/E_xclamationM_rk.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/E_xclamationM_rk.glif
new file mode 100644
index 0000000..e683644
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/E_xclamationM_rk.glif
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="ExclamationMrk" format="2">
+ <advance width="764"/>
+ <unicode hex="0021"/>
+ <outline>
+ <contour>
+ <point x="450" y="440" type="line"/>
+ <point x="456" y="730"/>
+ <point x="451" y="1076"/>
+ <point x="490" y="1510" type="curve"/>
+ <point x="235" y="1510" type="line"/>
+ <point x="273" y="1076"/>
+ <point x="268" y="730"/>
+ <point x="275" y="440" type="curve"/>
+ </contour>
+ <contour>
+ <point x="225" y="110" type="curve" smooth="yes"/>
+ <point x="225" y="36"/>
+ <point x="286" y="-25"/>
+ <point x="360" y="-25" type="curve" smooth="yes"/>
+ <point x="434" y="-25"/>
+ <point x="495" y="36"/>
+ <point x="495" y="110" type="curve" smooth="yes"/>
+ <point x="495" y="184"/>
+ <point x="434" y="245"/>
+ <point x="360" y="245" type="curve" smooth="yes"/>
+ <point x="286" y="245"/>
+ <point x="225" y="184"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/F_ullS_top.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/F_ullS_top.glif
new file mode 100644
index 0000000..9f3a3f0
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/F_ullS_top.glif
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="FullStop" format="2">
+ <advance width="640"/>
+ <unicode hex="002E"/>
+ <outline>
+ <contour>
+ <point x="185" y="110" type="curve" smooth="yes"/>
+ <point x="185" y="36"/>
+ <point x="246" y="-25"/>
+ <point x="320" y="-25" type="curve" smooth="yes"/>
+ <point x="394" y="-25"/>
+ <point x="455" y="36"/>
+ <point x="455" y="110" type="curve" smooth="yes"/>
+ <point x="455" y="184"/>
+ <point x="394" y="245"/>
+ <point x="320" y="245" type="curve" smooth="yes"/>
+ <point x="246" y="245"/>
+ <point x="185" y="184"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/G_T_S_gn.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/G_T_S_gn.glif
new file mode 100644
index 0000000..c591997
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/G_T_S_gn.glif
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="GTSgn" format="2">
+ <advance width="1200"/>
+ <unicode hex="003E"/>
+ <outline>
+ <contour>
+ <point x="120" y="1035" type="line"/>
+ <point x="910" y="730" type="line"/>
+ <point x="120" y="425" type="line"/>
+ <point x="120" y="245" type="line"/>
+ <point x="1100" y="645" type="line"/>
+ <point x="1100" y="815" type="line"/>
+ <point x="120" y="1215" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/G_raveA_ccent.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/G_raveA_ccent.glif
new file mode 100644
index 0000000..a0a0004
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/G_raveA_ccent.glif
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="GraveAccent" format="2">
+ <advance width="580"/>
+ <unicode hex="0060"/>
+ <outline>
+ <component base="CombGrave" xOffset="940"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/H_yphen.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/H_yphen.glif
new file mode 100644
index 0000000..fabf6ce
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/H_yphen.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Hyphen" format="2">
+ <advance width="860"/>
+ <unicode hex="2010"/>
+ <anchor x="430" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="80" y="555" type="line"/>
+ <point x="780" y="555" type="line"/>
+ <point x="780" y="705" type="line"/>
+ <point x="80" y="705" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/H_yphenM_inus.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/H_yphenM_inus.glif
new file mode 100644
index 0000000..bc3f4eb
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/H_yphenM_inus.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="HyphenMinus" format="2">
+ <advance width="860"/>
+ <unicode hex="002D"/>
+ <anchor x="430" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="80" y="555" type="line"/>
+ <point x="780" y="555" type="line"/>
+ <point x="780" y="705" type="line"/>
+ <point x="80" y="705" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/H_yphen_S_oft.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/H_yphen_S_oft.glif
new file mode 100644
index 0000000..293b653
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/H_yphen_S_oft.glif
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Hyphen_Soft" format="2">
+ <advance width="860"/>
+ <unicode hex="00AD"/>
+ <anchor x="430" y="1100" name="U"/>
+ <outline>
+ <component base="HyphenMinus"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_T_S_gn.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_T_S_gn.glif
new file mode 100644
index 0000000..db9ae78
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_T_S_gn.glif
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LTSgn" format="2">
+ <advance width="1200"/>
+ <unicode hex="003C"/>
+ <outline>
+ <contour>
+ <point x="1080" y="425" type="line"/>
+ <point x="290" y="730" type="line"/>
+ <point x="1080" y="1035" type="line"/>
+ <point x="1080" y="1215" type="line"/>
+ <point x="100" y="815" type="line"/>
+ <point x="100" y="645" type="line"/>
+ <point x="1080" y="245" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_ftC_urlyB_rac.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_ftC_urlyB_rac.glif
new file mode 100644
index 0000000..bc7ef03
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_ftC_urlyB_rac.glif
@@ -0,0 +1,47 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LftCurlyBrac" format="2">
+ <advance width="1000"/>
+ <unicode hex="007B"/>
+ <outline>
+ <contour>
+ <point x="210" y="615" type="curve" smooth="yes"/>
+ <point x="210" y="583"/>
+ <point x="383" y="486"/>
+ <point x="410" y="450" type="curve" smooth="yes"/>
+ <point x="434" y="418"/>
+ <point x="424" y="-205"/>
+ <point x="495" y="-285" type="curve" smooth="yes"/>
+ <point x="535" y="-330"/>
+ <point x="696" y="-383"/>
+ <point x="800" y="-410" type="curve"/>
+ <point x="840" y="-270" type="line"/>
+ <point x="773" y="-247"/>
+ <point x="650" y="-198"/>
+ <point x="630" y="-170" type="curve" smooth="yes"/>
+ <point x="597" y="-123"/>
+ <point x="610" y="447"/>
+ <point x="590" y="485" type="curve" smooth="yes"/>
+ <point x="571" y="521"/>
+ <point x="434" y="593"/>
+ <point x="430" y="615" type="curve"/>
+ <point x="434" y="637"/>
+ <point x="571" y="709"/>
+ <point x="590" y="745" type="curve" smooth="yes"/>
+ <point x="610" y="783"/>
+ <point x="597" y="1353"/>
+ <point x="630" y="1400" type="curve" smooth="yes"/>
+ <point x="650" y="1428"/>
+ <point x="773" y="1477"/>
+ <point x="840" y="1500" type="curve"/>
+ <point x="800" y="1640" type="line"/>
+ <point x="696" y="1613"/>
+ <point x="535" y="1560"/>
+ <point x="495" y="1515" type="curve" smooth="yes"/>
+ <point x="424" y="1435"/>
+ <point x="434" y="812"/>
+ <point x="410" y="780" type="curve" smooth="yes"/>
+ <point x="383" y="744"/>
+ <point x="210" y="647"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_ftP_aren.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_ftP_aren.glif
new file mode 100644
index 0000000..a4b9814
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_ftP_aren.glif
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LftParen" format="2">
+ <advance width="795"/>
+ <unicode hex="0028"/>
+ <outline>
+ <contour>
+ <point x="115" y="625" type="curve" smooth="yes"/>
+ <point x="115" y="218"/>
+ <point x="260" y="-125"/>
+ <point x="535" y="-410" type="curve"/>
+ <point x="630" y="-265" type="line"/>
+ <point x="395" y="-8"/>
+ <point x="305" y="278"/>
+ <point x="305" y="625" type="curve" smooth="yes"/>
+ <point x="305" y="982"/>
+ <point x="395" y="1280"/>
+ <point x="630" y="1485" type="curve"/>
+ <point x="555" y="1640" type="line"/>
+ <point x="290" y="1444"/>
+ <point x="115" y="1062"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_ftS_qrB_rac.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_ftS_qrB_rac.glif
new file mode 100644
index 0000000..e97ed98
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_ftS_qrB_rac.glif
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LftSqrBrac" format="2">
+ <advance width="790"/>
+ <unicode hex="005B"/>
+ <outline>
+ <contour>
+ <point x="640" y="-410" type="line"/>
+ <point x="640" y="-260" type="line"/>
+ <point x="385" y="-260" type="line"/>
+ <point x="385" y="1450" type="line"/>
+ <point x="640" y="1450" type="line"/>
+ <point x="640" y="1600" type="line"/>
+ <point x="200" y="1600" type="line"/>
+ <point x="200" y="-410" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_owL_ine.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_owL_ine.glif
new file mode 100644
index 0000000..2fc71eb
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_owL_ine.glif
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LowLine" format="2">
+ <advance width="1274"/>
+ <unicode hex="005F"/>
+ <outline>
+ <contour>
+ <point x="0" y="-320" type="line"/>
+ <point x="1274" y="-320" type="line"/>
+ <point x="1274" y="-170" type="line"/>
+ <point x="0" y="-170" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apA_.alt.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apA_.alt.glif
new file mode 100644
index 0000000..fbdfff2
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apA_.alt.glif
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapA.alt" format="2">
+ <advance width="1395"/>
+ <anchor x="668" y="1460" name="H"/>
+ <anchor x="688" y="1560" name="L"/>
+ <anchor x="-75" y="1460" name="O"/>
+ <anchor x="688" y="-70" name="U"/>
+ <outline>
+ <contour>
+ <point x="1130" y="1460" type="line"/>
+ <point x="996" y="1075" type="line"/>
+ <point x="381" y="1075" type="line"/>
+ <point x="245" y="1460" type="line"/>
+ <point x="40" y="1460" type="line"/>
+ <point x="75" y="1380"/>
+ <point x="113" y="1291"/>
+ <point x="180" y="1105" type="curve" smooth="yes"/>
+ <point x="580" y="0" type="line"/>
+ <point x="795" y="0" type="line"/>
+ <point x="1195" y="1105" type="line" smooth="yes"/>
+ <point x="1263" y="1292"/>
+ <point x="1299" y="1379"/>
+ <point x="1335" y="1460" type="curve"/>
+ </contour>
+ <contour>
+ <point x="435" y="920" type="line"/>
+ <point x="942" y="920" type="line"/>
+ <point x="690" y="195" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apA_.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apA_.glif
new file mode 100644
index 0000000..3c64e18
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apA_.glif
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapA" format="2">
+ <advance width="1395"/>
+ <unicode hex="0041"/>
+ <anchor x="707" y="0" name="H"/>
+ <anchor x="687" y="-100" name="L"/>
+ <anchor x="1450" y="0" name="O"/>
+ <anchor x="687" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="245" y="0" type="line"/>
+ <point x="379" y="385" type="line"/>
+ <point x="994" y="385" type="line"/>
+ <point x="1130" y="0" type="line"/>
+ <point x="1335" y="0" type="line"/>
+ <point x="1300" y="80"/>
+ <point x="1262" y="169"/>
+ <point x="1195" y="355" type="curve" smooth="yes"/>
+ <point x="795" y="1460" type="line"/>
+ <point x="580" y="1460" type="line"/>
+ <point x="180" y="355" type="line" smooth="yes"/>
+ <point x="112" y="168"/>
+ <point x="76" y="81"/>
+ <point x="40" y="0" type="curve"/>
+ </contour>
+ <contour>
+ <point x="940" y="540" type="line"/>
+ <point x="433" y="540" type="line"/>
+ <point x="685" y="1265" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apA_D_iaer.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apA_D_iaer.glif
new file mode 100644
index 0000000..b74cc60
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apA_D_iaer.glif
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapADiaer" format="2">
+ <advance width="1395"/>
+ <unicode hex="00C4"/>
+ <anchor x="707" y="0" name="H"/>
+ <anchor x="687" y="-100" name="L"/>
+ <anchor x="1450" y="0" name="O"/>
+ <anchor x="687" y="1935" name="U"/>
+ <outline>
+ <component base="LtnCapA"/>
+ <component base="CombDiaer" xOffset="1257" yOffset="430"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apB_.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apB_.glif
new file mode 100644
index 0000000..415122e
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apB_.glif
@@ -0,0 +1,62 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapB" format="2">
+ <advance width="1285"/>
+ <unicode hex="0042"/>
+ <anchor x="615" y="-100" name="L"/>
+ <anchor x="615" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="365" y="1310" type="line"/>
+ <point x="407" y="1312"/>
+ <point x="512" y="1315"/>
+ <point x="590" y="1315" type="curve" smooth="yes"/>
+ <point x="791" y="1315"/>
+ <point x="870" y="1239"/>
+ <point x="870" y="1090" type="curve" smooth="yes"/>
+ <point x="870" y="951"/>
+ <point x="774" y="855"/>
+ <point x="560" y="855" type="curve" smooth="yes"/>
+ <point x="365" y="855" type="line"/>
+ </contour>
+ <contour>
+ <point x="175" y="455" type="line"/>
+ <point x="175" y="257"/>
+ <point x="175" y="80"/>
+ <point x="160" y="0" type="curve"/>
+ <point x="213" y="-5"/>
+ <point x="402" y="-10"/>
+ <point x="605" y="-10" type="curve" smooth="yes"/>
+ <point x="988" y="-10"/>
+ <point x="1140" y="177"/>
+ <point x="1140" y="420" type="curve" smooth="yes"/>
+ <point x="1140" y="669"/>
+ <point x="974" y="759"/>
+ <point x="820" y="800" type="curve"/>
+ <point x="956" y="852"/>
+ <point x="1065" y="952"/>
+ <point x="1065" y="1120" type="curve" smooth="yes"/>
+ <point x="1065" y="1381"/>
+ <point x="897" y="1470"/>
+ <point x="600" y="1470" type="curve" smooth="yes"/>
+ <point x="431" y="1470"/>
+ <point x="248" y="1466"/>
+ <point x="160" y="1460" type="curve"/>
+ <point x="175" y="1380"/>
+ <point x="175" y="1196"/>
+ <point x="175" y="1000" type="curve" smooth="yes"/>
+ </contour>
+ <contour>
+ <point x="365" y="700" type="line"/>
+ <point x="600" y="700" type="line" smooth="yes"/>
+ <point x="833" y="700"/>
+ <point x="945" y="604"/>
+ <point x="945" y="420" type="curve" smooth="yes"/>
+ <point x="945" y="212"/>
+ <point x="781" y="150"/>
+ <point x="610" y="150" type="curve" smooth="yes"/>
+ <point x="498" y="150"/>
+ <point x="402" y="153"/>
+ <point x="365" y="155" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apC_.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apC_.glif
new file mode 100644
index 0000000..daf4f2d
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apC_.glif
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapC" format="2">
+ <advance width="1355"/>
+ <unicode hex="0043"/>
+ <anchor x="750" y="0" name="H"/>
+ <anchor x="750" y="-100" name="L"/>
+ <anchor x="750" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1190" y="335" type="line"/>
+ <point x="1078" y="223"/>
+ <point x="912" y="150"/>
+ <point x="760" y="150" type="curve" smooth="yes"/>
+ <point x="489" y="150"/>
+ <point x="290" y="376"/>
+ <point x="290" y="735" type="curve" smooth="yes"/>
+ <point x="290" y="1119"/>
+ <point x="491" y="1315"/>
+ <point x="770" y="1315" type="curve" smooth="yes"/>
+ <point x="891" y="1315"/>
+ <point x="1030" y="1278"/>
+ <point x="1155" y="1165" type="curve"/>
+ <point x="1215" y="1345" type="line"/>
+ <point x="1072" y="1452"/>
+ <point x="913" y="1485"/>
+ <point x="770" y="1485" type="curve" smooth="yes"/>
+ <point x="418" y="1485"/>
+ <point x="95" y="1225"/>
+ <point x="95" y="710" type="curve" smooth="yes"/>
+ <point x="95" y="260"/>
+ <point x="346" y="-25"/>
+ <point x="750" y="-25" type="curve" smooth="yes"/>
+ <point x="902" y="-25"/>
+ <point x="1114" y="32"/>
+ <point x="1230" y="140" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apC_A_cute.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apC_A_cute.glif
new file mode 100644
index 0000000..c997cca
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apC_A_cute.glif
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapCAcute" format="2">
+ <advance width="1020"/>
+ <unicode hex="0106"/>
+ <anchor x="580" y="0" name="H"/>
+ <anchor x="580" y="-100" name="L"/>
+ <anchor x="1020" y="1000" name="R"/>
+ <anchor x="570" y="1635" name="U"/>
+ <outline>
+ <component base="LtnSmC"/>
+ <component base="CombAcute" xOffset="1140"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apC_A_cuteC_edilla.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apC_A_cuteC_edilla.glif
new file mode 100644
index 0000000..9c993a9
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apC_A_cuteC_edilla.glif
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapCAcuteCedilla" format="2">
+ <advance width="1355"/>
+ <unicode hex="1E08"/>
+ <anchor x="750" y="0" name="H"/>
+ <anchor x="750" y="-100" name="L"/>
+ <anchor x="750" y="2065" name="U"/>
+ <outline>
+ <component base="LtnCapC"/>
+ <component base="CombAcute" xOffset="1320" yOffset="430"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apC_C_ircum.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apC_C_ircum.glif
new file mode 100644
index 0000000..0291e5d
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apC_C_ircum.glif
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapCCircum" format="2">
+ <advance width="1355"/>
+ <unicode hex="0108"/>
+ <anchor x="750" y="0" name="H"/>
+ <anchor x="750" y="-100" name="L"/>
+ <anchor x="750" y="2065" name="U"/>
+ <outline>
+ <component base="LtnCapC"/>
+ <component base="CombCircum" xOffset="1320" yOffset="430"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apD_.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apD_.glif
new file mode 100644
index 0000000..9154a06
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apD_.glif
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapD" format="2">
+ <advance width="1435"/>
+ <unicode hex="0044"/>
+ <anchor x="715" y="-100" name="L"/>
+ <anchor x="715" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="175" y="455" type="line"/>
+ <point x="174" y="257"/>
+ <point x="175" y="80"/>
+ <point x="160" y="0" type="curve"/>
+ <point x="160" y="0"/>
+ <point x="467" y="-10"/>
+ <point x="595" y="-10" type="curve" smooth="yes"/>
+ <point x="888" y="-10"/>
+ <point x="1315" y="145"/>
+ <point x="1315" y="740" type="curve" smooth="yes"/>
+ <point x="1315" y="1394"/>
+ <point x="829" y="1470"/>
+ <point x="615" y="1470" type="curve" smooth="yes"/>
+ <point x="480" y="1470"/>
+ <point x="245" y="1466"/>
+ <point x="160" y="1460" type="curve"/>
+ <point x="175" y="1380"/>
+ <point x="175" y="1196"/>
+ <point x="175" y="1000" type="curve" smooth="yes"/>
+ </contour>
+ <contour>
+ <point x="365" y="1305" type="line"/>
+ <point x="415" y="1307"/>
+ <point x="524" y="1310"/>
+ <point x="590" y="1310" type="curve" smooth="yes"/>
+ <point x="878" y="1310"/>
+ <point x="1120" y="1167"/>
+ <point x="1120" y="720" type="curve" smooth="yes"/>
+ <point x="1120" y="308"/>
+ <point x="853" y="155"/>
+ <point x="585" y="155" type="curve" smooth="yes"/>
+ <point x="490" y="155"/>
+ <point x="412" y="161"/>
+ <point x="365" y="165" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apE_.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apE_.glif
new file mode 100644
index 0000000..e5d0043
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apE_.glif
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapE" format="2">
+ <advance width="1160"/>
+ <unicode hex="0045"/>
+ <anchor x="600" y="0" name="H"/>
+ <anchor x="600" y="-100" name="L"/>
+ <anchor x="917" y="0" name="O"/>
+ <anchor x="1160" y="1200" name="R"/>
+ <anchor x="600" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="365" y="845" type="line"/>
+ <point x="365" y="1295" type="line"/>
+ <point x="1010" y="1295" type="line"/>
+ <point x="1010" y="1460" type="line"/>
+ <point x="160" y="1460" type="line"/>
+ <point x="175" y="1380"/>
+ <point x="175" y="1222"/>
+ <point x="175" y="1025" type="curve" smooth="yes"/>
+ <point x="175" y="435" type="line" smooth="yes"/>
+ <point x="175" y="238"/>
+ <point x="175" y="80"/>
+ <point x="160" y="0" type="curve"/>
+ <point x="1040" y="0" type="line"/>
+ <point x="1040" y="180" type="line"/>
+ <point x="960" y="166"/>
+ <point x="826" y="165"/>
+ <point x="629" y="165" type="curve" smooth="yes"/>
+ <point x="365" y="165" type="line"/>
+ <point x="365" y="685" type="line"/>
+ <point x="935" y="685" type="line"/>
+ <point x="935" y="845" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apF_.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apF_.glif
new file mode 100644
index 0000000..deb38fb
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apF_.glif
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapF" format="2">
+ <advance width="1150"/>
+ <unicode hex="0046"/>
+ <anchor x="595" y="-100" name="L"/>
+ <anchor x="595" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="365" y="835" type="line"/>
+ <point x="365" y="1295" type="line"/>
+ <point x="1030" y="1295" type="line"/>
+ <point x="1030" y="1460" type="line"/>
+ <point x="160" y="1460" type="line"/>
+ <point x="175" y="1380"/>
+ <point x="175" y="1217"/>
+ <point x="175" y="1020" type="curve" smooth="yes"/>
+ <point x="175" y="435" type="line" smooth="yes"/>
+ <point x="175" y="238"/>
+ <point x="175" y="80"/>
+ <point x="160" y="0" type="curve"/>
+ <point x="380" y="0" type="line"/>
+ <point x="365" y="78"/>
+ <point x="365" y="237"/>
+ <point x="365" y="435" type="curve" smooth="yes"/>
+ <point x="365" y="675" type="line"/>
+ <point x="945" y="675" type="line"/>
+ <point x="945" y="835" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apG_.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apG_.glif
new file mode 100644
index 0000000..477d223
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apG_.glif
@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapG" format="2">
+ <advance width="1420"/>
+ <unicode hex="0047"/>
+ <anchor x="745" y="0" name="H"/>
+ <anchor x="745" y="-100" name="L"/>
+ <anchor x="745" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1275" y="745" type="line"/>
+ <point x="735" y="745" type="line"/>
+ <point x="735" y="580" type="line"/>
+ <point x="1085" y="580" type="line"/>
+ <point x="1085" y="245" type="line"/>
+ <point x="963" y="171"/>
+ <point x="876" y="150"/>
+ <point x="757" y="150" type="curve" smooth="yes"/>
+ <point x="471" y="150"/>
+ <point x="290" y="377"/>
+ <point x="290" y="745" type="curve" smooth="yes"/>
+ <point x="290" y="1094"/>
+ <point x="480" y="1315"/>
+ <point x="785" y="1315" type="curve" smooth="yes"/>
+ <point x="918" y="1315"/>
+ <point x="1046" y="1286"/>
+ <point x="1195" y="1165" type="curve"/>
+ <point x="1260" y="1345" type="line"/>
+ <point x="1085" y="1462"/>
+ <point x="947" y="1485"/>
+ <point x="785" y="1485" type="curve" smooth="yes"/>
+ <point x="402" y="1485"/>
+ <point x="95" y="1199"/>
+ <point x="95" y="720" type="curve" smooth="yes"/>
+ <point x="95" y="241"/>
+ <point x="367" y="-25"/>
+ <point x="745" y="-25" type="curve" smooth="yes"/>
+ <point x="918" y="-25"/>
+ <point x="1070" y="11"/>
+ <point x="1275" y="155" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apH_.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apH_.glif
new file mode 100644
index 0000000..5924270
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apH_.glif
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapH" format="2">
+ <advance width="1475"/>
+ <unicode hex="0048"/>
+ <anchor x="285" y="0" name="H"/>
+ <anchor x="725" y="-100" name="L"/>
+ <anchor x="725" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1290" y="0" type="line"/>
+ <point x="1275" y="80"/>
+ <point x="1275" y="238"/>
+ <point x="1275" y="435" type="curve" smooth="yes"/>
+ <point x="1275" y="1025" type="line" smooth="yes"/>
+ <point x="1275" y="1222"/>
+ <point x="1275" y="1380"/>
+ <point x="1290" y="1460" type="curve"/>
+ <point x="1085" y="1460" type="line"/>
+ <point x="1085" y="835" type="line"/>
+ <point x="365" y="835" type="line"/>
+ <point x="365" y="1460" type="line"/>
+ <point x="160" y="1460" type="line"/>
+ <point x="175" y="1380"/>
+ <point x="175" y="1222"/>
+ <point x="175" y="1025" type="curve" smooth="yes"/>
+ <point x="175" y="435" type="line" smooth="yes"/>
+ <point x="175" y="238"/>
+ <point x="175" y="80"/>
+ <point x="160" y="0" type="curve"/>
+ <point x="365" y="0" type="line"/>
+ <point x="365" y="675" type="line"/>
+ <point x="1085" y="675" type="line"/>
+ <point x="1085" y="0" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apI_.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apI_.glif
new file mode 100644
index 0000000..c6001c3
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apI_.glif
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapI" format="2">
+ <advance width="975"/>
+ <unicode hex="0049"/>
+ <anchor x="477" y="0" name="H"/>
+ <anchor x="477" y="-100" name="L"/>
+ <anchor x="673" y="0" name="O"/>
+ <anchor x="975" y="1200" name="R"/>
+ <anchor x="477" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="140" y="1460" type="line"/>
+ <point x="140" y="1315" type="line"/>
+ <point x="380" y="1315" type="line"/>
+ <point x="380" y="145" type="line"/>
+ <point x="140" y="145" type="line"/>
+ <point x="140" y="0" type="line"/>
+ <point x="815" y="0" type="line"/>
+ <point x="815" y="145" type="line"/>
+ <point x="570" y="145" type="line"/>
+ <point x="570" y="1315" type="line"/>
+ <point x="815" y="1315" type="line"/>
+ <point x="815" y="1460" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apI_J_.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apI_J_.glif
new file mode 100644
index 0000000..35cb406
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apI_J_.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapIJ" format="2">
+ <advance width="1940"/>
+ <unicode hex="0132"/>
+ <anchor x="477" y="0" name="H"/>
+ <anchor x="1385" y="-100" name="L"/>
+ <anchor x="673" y="0" name="O"/>
+ <anchor x="975" y="1200" name="R"/>
+ <anchor x="1650" y="1530" name="U"/>
+ <outline>
+ <component base="LtnCapI"/>
+ <component base="LtnCapJ" xOffset="975"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apJ_.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apJ_.glif
new file mode 100644
index 0000000..457e39d
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apJ_.glif
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapJ" format="2">
+ <advance width="965"/>
+ <unicode hex="004A"/>
+ <anchor x="410" y="-100" name="L"/>
+ <anchor x="675" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="575" y="1460" type="line"/>
+ <point x="588" y="1354"/>
+ <point x="590" y="1175"/>
+ <point x="590" y="980" type="curve"/>
+ <point x="590" y="485" type="line" smooth="yes"/>
+ <point x="590" y="256"/>
+ <point x="487" y="155"/>
+ <point x="340" y="155" type="curve" smooth="yes"/>
+ <point x="248" y="155"/>
+ <point x="147" y="198"/>
+ <point x="80" y="275" type="curve"/>
+ <point x="35" y="90" type="line"/>
+ <point x="106" y="9"/>
+ <point x="250" y="-25"/>
+ <point x="345" y="-25" type="curve" smooth="yes"/>
+ <point x="602" y="-25"/>
+ <point x="780" y="119"/>
+ <point x="780" y="535" type="curve" smooth="yes"/>
+ <point x="780" y="1460" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apK_.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apK_.glif
new file mode 100644
index 0000000..b3f4cdd
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apK_.glif
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapK" format="2">
+ <advance width="1310"/>
+ <unicode hex="004B"/>
+ <anchor x="270" y="0" name="H"/>
+ <anchor x="695" y="-100" name="L"/>
+ <anchor x="650" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="925" y="1460" type="line"/>
+ <point x="295" y="703" type="line"/>
+ <point x="425" y="745" type="line"/>
+ <point x="530" y="740" type="line"/>
+ <point x="1165" y="1460" type="line"/>
+ </contour>
+ <contour>
+ <point x="350" y="735" type="line"/>
+ <point x="985" y="0" type="line"/>
+ <point x="1230" y="0" type="line"/>
+ <point x="485" y="860" type="line"/>
+ </contour>
+ <contour>
+ <point x="365" y="1460" type="line"/>
+ <point x="160" y="1460" type="line"/>
+ <point x="175" y="1380"/>
+ <point x="175" y="1222"/>
+ <point x="175" y="1025" type="curve" smooth="yes"/>
+ <point x="175" y="435" type="line" smooth="yes"/>
+ <point x="175" y="238"/>
+ <point x="175" y="80"/>
+ <point x="160" y="0" type="curve"/>
+ <point x="365" y="0" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apL_.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apL_.glif
new file mode 100644
index 0000000..3d5883a
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apL_.glif
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapL" format="2">
+ <advance width="1080"/>
+ <unicode hex="004C"/>
+ <anchor x="592" y="0" name="H"/>
+ <anchor x="592" y="-100" name="L"/>
+ <anchor x="540" y="1200" name="R"/>
+ <anchor x="592" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="365" y="165" type="line"/>
+ <point x="365" y="1460" type="line"/>
+ <point x="160" y="1460" type="line"/>
+ <point x="175" y="1380"/>
+ <point x="175" y="1222"/>
+ <point x="175" y="1025" type="curve" smooth="yes"/>
+ <point x="175" y="435" type="line" smooth="yes"/>
+ <point x="175" y="238"/>
+ <point x="175" y="80"/>
+ <point x="160" y="0" type="curve"/>
+ <point x="1025" y="0" type="line"/>
+ <point x="1025" y="180" type="line"/>
+ <point x="945" y="166"/>
+ <point x="786" y="165"/>
+ <point x="589" y="165" type="curve" smooth="yes"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apM_.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apM_.glif
new file mode 100644
index 0000000..fbdf3b1
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apM_.glif
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapM" format="2">
+ <advance width="1795"/>
+ <unicode hex="004D"/>
+ <anchor x="1521" y="0" name="H"/>
+ <anchor x="885" y="-100" name="L"/>
+ <anchor x="885" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="885" y="205" type="line"/>
+ <point x="455" y="1460" type="line"/>
+ <point x="285" y="1460" type="line"/>
+ <point x="790" y="0" type="line"/>
+ <point x="985" y="0" type="line"/>
+ <point x="1487" y="1460" type="line"/>
+ <point x="1320" y="1460" type="line"/>
+ </contour>
+ <contour>
+ <point x="230" y="1460" type="line"/>
+ <point x="230" y="1460"/>
+ <point x="186" y="198"/>
+ <point x="160" y="0" type="curve"/>
+ <point x="345" y="0" type="line"/>
+ <point x="377" y="1205" type="line"/>
+ <point x="405" y="1460" type="line"/>
+ </contour>
+ <contour>
+ <point x="1610" y="0" type="line"/>
+ <point x="1581" y="198"/>
+ <point x="1540" y="1460"/>
+ <point x="1540" y="1460" type="curve"/>
+ <point x="1365" y="1460" type="line"/>
+ <point x="1397" y="1205" type="line"/>
+ <point x="1425" y="0" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apN_.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apN_.glif
new file mode 100644
index 0000000..360e6e6
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apN_.glif
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapN" format="2">
+ <advance width="1500"/>
+ <unicode hex="004E"/>
+ <anchor x="1230" y="0" name="H"/>
+ <anchor x="737" y="-100" name="L"/>
+ <anchor x="737" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="200" y="1355" type="line"/>
+ <point x="1135" y="0" type="line"/>
+ <point x="1275" y="100" type="line"/>
+ <point x="340" y="1460" type="line"/>
+ </contour>
+ <contour>
+ <point x="1135" y="0" type="line"/>
+ <point x="1300" y="0" type="line"/>
+ <point x="1300" y="1025" type="line" smooth="yes"/>
+ <point x="1300" y="1222"/>
+ <point x="1301" y="1380"/>
+ <point x="1315" y="1460" type="curve"/>
+ <point x="1135" y="1460" type="line"/>
+ </contour>
+ <contour>
+ <point x="340" y="1460" type="line"/>
+ <point x="160" y="1460" type="line"/>
+ <point x="175" y="1380"/>
+ <point x="175" y="1222"/>
+ <point x="175" y="1025" type="curve" smooth="yes"/>
+ <point x="175" y="435" type="line" smooth="yes"/>
+ <point x="175" y="238"/>
+ <point x="175" y="80"/>
+ <point x="160" y="0" type="curve"/>
+ <point x="340" y="0" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apO_.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apO_.glif
new file mode 100644
index 0000000..e351c3d
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apO_.glif
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapO" format="2">
+ <advance width="1460"/>
+ <unicode hex="004F"/>
+ <anchor x="717" y="0" name="H"/>
+ <anchor x="717" y="-100" name="L"/>
+ <anchor x="994" y="0" name="O"/>
+ <anchor x="1460" y="1200" name="R"/>
+ <anchor x="717" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1145" y="715" type="curve" smooth="yes"/>
+ <point x="1145" y="360"/>
+ <point x="965" y="150"/>
+ <point x="720" y="150" type="curve" smooth="yes"/>
+ <point x="460" y="150"/>
+ <point x="290" y="380"/>
+ <point x="290" y="745" type="curve" smooth="yes"/>
+ <point x="290" y="1091"/>
+ <point x="467" y="1310"/>
+ <point x="720" y="1310" type="curve" smooth="yes"/>
+ <point x="974" y="1310"/>
+ <point x="1145" y="1084"/>
+ </contour>
+ <contour>
+ <point x="1340" y="740" type="curve" smooth="yes"/>
+ <point x="1340" y="1219"/>
+ <point x="1048" y="1485"/>
+ <point x="730" y="1485" type="curve" smooth="yes"/>
+ <point x="407" y="1485"/>
+ <point x="95" y="1199"/>
+ <point x="95" y="720" type="curve" smooth="yes"/>
+ <point x="95" y="241"/>
+ <point x="388" y="-25"/>
+ <point x="710" y="-25" type="curve" smooth="yes"/>
+ <point x="1029" y="-25"/>
+ <point x="1340" y="260"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apP_.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apP_.glif
new file mode 100644
index 0000000..9f29954
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apP_.glif
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapP" format="2">
+ <advance width="1195"/>
+ <unicode hex="0050"/>
+ <anchor x="637" y="-100" name="L"/>
+ <anchor x="637" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="365" y="565" type="line"/>
+ <point x="430" y="558"/>
+ <point x="512" y="555"/>
+ <point x="585" y="555" type="curve" smooth="yes"/>
+ <point x="914" y="555"/>
+ <point x="1115" y="736"/>
+ <point x="1115" y="1030" type="curve" smooth="yes"/>
+ <point x="1115" y="1322"/>
+ <point x="908" y="1470"/>
+ <point x="585" y="1470" type="curve" smooth="yes"/>
+ <point x="372" y="1470"/>
+ <point x="160" y="1460"/>
+ <point x="160" y="1460" type="curve"/>
+ <point x="175" y="1380"/>
+ <point x="175" y="1196"/>
+ <point x="175" y="1000" type="curve"/>
+ <point x="175" y="435" type="line" smooth="yes"/>
+ <point x="175" y="238"/>
+ <point x="175" y="80"/>
+ <point x="160" y="0" type="curve"/>
+ <point x="380" y="0" type="line"/>
+ <point x="366" y="78"/>
+ <point x="365" y="237"/>
+ <point x="365" y="435" type="curve" smooth="yes"/>
+ </contour>
+ <contour>
+ <point x="365" y="1305" type="line"/>
+ <point x="433" y="1308"/>
+ <point x="481" y="1310"/>
+ <point x="575" y="1310" type="curve" smooth="yes"/>
+ <point x="841" y="1310"/>
+ <point x="925" y="1170"/>
+ <point x="925" y="1010" type="curve" smooth="yes"/>
+ <point x="925" y="849"/>
+ <point x="850" y="710"/>
+ <point x="570" y="710" type="curve" smooth="yes"/>
+ <point x="495" y="710"/>
+ <point x="428" y="712"/>
+ <point x="365" y="720" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apQ_.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apQ_.glif
new file mode 100644
index 0000000..ddd0351
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apQ_.glif
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapQ" format="2">
+ <advance width="1475"/>
+ <unicode hex="0051"/>
+ <anchor x="717" y="-270" name="L"/>
+ <anchor x="717" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1340" y="740" type="curve" smooth="yes"/>
+ <point x="1340" y="1219"/>
+ <point x="1053" y="1485"/>
+ <point x="730" y="1485" type="curve" smooth="yes"/>
+ <point x="407" y="1485"/>
+ <point x="95" y="1199"/>
+ <point x="95" y="720" type="curve" smooth="yes"/>
+ <point x="95" y="241"/>
+ <point x="383" y="-25"/>
+ <point x="705" y="-25" type="curve" smooth="yes"/>
+ <point x="767" y="-25"/>
+ <point x="818" y="-18"/>
+ <point x="875" y="0" type="curve"/>
+ <point x="944" y="0"/>
+ <point x="1236" y="-190"/>
+ <point x="1320" y="-190" type="curve" smooth="yes"/>
+ <point x="1374" y="-190"/>
+ <point x="1431" y="-81"/>
+ <point x="1455" y="-45" type="curve"/>
+ <point x="1321" y="-28"/>
+ <point x="1205" y="28"/>
+ <point x="1080" y="105" type="curve"/>
+ <point x="1256" y="236"/>
+ <point x="1340" y="479"/>
+ </contour>
+ <contour>
+ <point x="1145" y="715" type="curve" smooth="yes"/>
+ <point x="1145" y="360"/>
+ <point x="965" y="150"/>
+ <point x="720" y="150" type="curve" smooth="yes"/>
+ <point x="460" y="150"/>
+ <point x="290" y="380"/>
+ <point x="290" y="745" type="curve" smooth="yes"/>
+ <point x="290" y="1091"/>
+ <point x="467" y="1310"/>
+ <point x="720" y="1310" type="curve" smooth="yes"/>
+ <point x="974" y="1310"/>
+ <point x="1145" y="1084"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apR_.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apR_.glif
new file mode 100644
index 0000000..cd9e037
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apR_.glif
@@ -0,0 +1,55 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapR" format="2">
+ <advance width="1305"/>
+ <unicode hex="0052"/>
+ <anchor x="285" y="0" name="H"/>
+ <anchor x="610" y="-100" name="L"/>
+ <anchor x="610" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="365" y="625" type="line"/>
+ <point x="620" y="625" type="line"/>
+ <point x="805" y="625"/>
+ <point x="1090" y="743"/>
+ <point x="1090" y="1060" type="curve" smooth="yes"/>
+ <point x="1090" y="1349"/>
+ <point x="876" y="1470"/>
+ <point x="565" y="1470" type="curve" smooth="yes"/>
+ <point x="331" y="1470"/>
+ <point x="160" y="1460"/>
+ <point x="160" y="1460" type="curve"/>
+ <point x="175" y="1380"/>
+ <point x="175" y="1196"/>
+ <point x="175" y="1000" type="curve" smooth="yes"/>
+ <point x="175" y="435" type="line"/>
+ <point x="175" y="238"/>
+ <point x="175" y="80"/>
+ <point x="160" y="0" type="curve"/>
+ <point x="380" y="0" type="line"/>
+ <point x="366" y="78"/>
+ <point x="365" y="238"/>
+ <point x="365" y="435" type="curve"/>
+ </contour>
+ <contour>
+ <point x="365" y="1305" type="line"/>
+ <point x="418" y="1307"/>
+ <point x="485" y="1310"/>
+ <point x="555" y="1310" type="curve" smooth="yes"/>
+ <point x="800" y="1310"/>
+ <point x="900" y="1216"/>
+ <point x="900" y="1045" type="curve" smooth="yes"/>
+ <point x="900" y="879"/>
+ <point x="780" y="780"/>
+ <point x="555" y="780" type="curve"/>
+ <point x="365" y="780" type="line"/>
+ </contour>
+ <contour>
+ <point x="561" y="635" type="line"/>
+ <point x="990" y="0" type="line"/>
+ <point x="1245" y="0" type="line"/>
+ <point x="1178" y="73"/>
+ <point x="715" y="710"/>
+ <point x="715" y="710" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apS_.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apS_.glif
new file mode 100644
index 0000000..92da6b0
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apS_.glif
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapS" format="2">
+ <advance width="1175"/>
+ <unicode hex="0053"/>
+ <anchor x="580" y="0" name="H"/>
+ <anchor x="580" y="-100" name="L"/>
+ <anchor x="580" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1000" y="1395" type="line"/>
+ <point x="870" y="1458"/>
+ <point x="759" y="1485"/>
+ <point x="605" y="1485" type="curve" smooth="yes"/>
+ <point x="273" y="1485"/>
+ <point x="135" y="1250"/>
+ <point x="135" y="1080" type="curve" smooth="yes"/>
+ <point x="135" y="910"/>
+ <point x="203" y="778"/>
+ <point x="515" y="685" type="curve" smooth="yes"/>
+ <point x="827" y="591"/>
+ <point x="875" y="510"/>
+ <point x="875" y="405" type="curve" smooth="yes"/>
+ <point x="875" y="243"/>
+ <point x="726" y="150"/>
+ <point x="565" y="150" type="curve" smooth="yes"/>
+ <point x="417" y="150"/>
+ <point x="272" y="200"/>
+ <point x="140" y="315" type="curve"/>
+ <point x="95" y="110" type="line"/>
+ <point x="197" y="31"/>
+ <point x="372" y="-25"/>
+ <point x="565" y="-25" type="curve" smooth="yes"/>
+ <point x="838" y="-25"/>
+ <point x="1065" y="157"/>
+ <point x="1065" y="425" type="curve" smooth="yes"/>
+ <point x="1065" y="641"/>
+ <point x="920" y="762"/>
+ <point x="655" y="840" type="curve" smooth="yes"/>
+ <point x="370" y="923"/>
+ <point x="325" y="985"/>
+ <point x="325" y="1095" type="curve" smooth="yes"/>
+ <point x="325" y="1205"/>
+ <point x="435" y="1310"/>
+ <point x="595" y="1310" type="curve" smooth="yes"/>
+ <point x="723" y="1310"/>
+ <point x="817" y="1279"/>
+ <point x="960" y="1200" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apT_.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apT_.glif
new file mode 100644
index 0000000..124138f
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apT_.glif
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapT" format="2">
+ <advance width="1265"/>
+ <unicode hex="0054"/>
+ <anchor x="622" y="0" name="H"/>
+ <anchor x="622" y="-100" name="L"/>
+ <anchor x="622" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="45" y="1460" type="line"/>
+ <point x="45" y="1275" type="line"/>
+ <point x="125" y="1292"/>
+ <point x="201" y="1295"/>
+ <point x="290" y="1295" type="curve" smooth="yes"/>
+ <point x="525" y="1295" type="line"/>
+ <point x="525" y="435" type="line" smooth="yes"/>
+ <point x="525" y="238"/>
+ <point x="522" y="80"/>
+ <point x="505" y="0" type="curve"/>
+ <point x="735" y="0" type="line"/>
+ <point x="718" y="80"/>
+ <point x="715" y="238"/>
+ <point x="715" y="435" type="curve" smooth="yes"/>
+ <point x="715" y="1295" type="line"/>
+ <point x="955" y="1295" type="line" smooth="yes"/>
+ <point x="1045" y="1295"/>
+ <point x="1120" y="1292"/>
+ <point x="1200" y="1275" type="curve"/>
+ <point x="1200" y="1460" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apU_.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apU_.glif
new file mode 100644
index 0000000..7afa08d
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apU_.glif
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapU" format="2">
+ <advance width="1440"/>
+ <unicode hex="0055"/>
+ <anchor x="707" y="0" name="H"/>
+ <anchor x="707" y="-100" name="L"/>
+ <anchor x="1026" y="0" name="O"/>
+ <anchor x="1400" y="1200" name="R"/>
+ <anchor x="707" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1050" y="1460" type="line"/>
+ <point x="1050" y="560" type="line" smooth="yes"/>
+ <point x="1050" y="299"/>
+ <point x="968" y="135"/>
+ <point x="710" y="135" type="curve" smooth="yes"/>
+ <point x="447" y="135"/>
+ <point x="365" y="299"/>
+ <point x="365" y="560" type="curve" smooth="yes"/>
+ <point x="365" y="1460" type="line"/>
+ <point x="160" y="1460" type="line"/>
+ <point x="174" y="1380"/>
+ <point x="175" y="1222"/>
+ <point x="175" y="1025" type="curve" smooth="yes"/>
+ <point x="175" y="515" type="line"/>
+ <point x="175" y="190"/>
+ <point x="345" y="-25"/>
+ <point x="710" y="-25" type="curve" smooth="yes"/>
+ <point x="1071" y="-25"/>
+ <point x="1240" y="190"/>
+ <point x="1240" y="515" type="curve"/>
+ <point x="1240" y="1025" type="line" smooth="yes"/>
+ <point x="1240" y="1232"/>
+ <point x="1242" y="1380"/>
+ <point x="1255" y="1460" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apV_.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apV_.glif
new file mode 100644
index 0000000..86c76b5
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apV_.glif
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapV" format="2">
+ <advance width="1365"/>
+ <unicode hex="0056"/>
+ <anchor x="680" y="0" name="H"/>
+ <anchor x="672" y="-100" name="L"/>
+ <anchor x="880" y="0" name="O"/>
+ <anchor x="672" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1095" y="1460" type="line"/>
+ <point x="672" y="195" type="line"/>
+ <point x="250" y="1460" type="line"/>
+ <point x="35" y="1460" type="line"/>
+ <point x="68" y="1378"/>
+ <point x="101" y="1288"/>
+ <point x="170" y="1095" type="curve" smooth="yes"/>
+ <point x="560" y="0" type="line"/>
+ <point x="785" y="0" type="line"/>
+ <point x="1170" y="1095" type="line" smooth="yes"/>
+ <point x="1238" y="1289"/>
+ <point x="1274" y="1378"/>
+ <point x="1310" y="1460" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apW_.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apW_.glif
new file mode 100644
index 0000000..b1f4961
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apW_.glif
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapW" format="2">
+ <advance width="2080"/>
+ <unicode hex="0057"/>
+ <anchor x="1027" y="-100" name="L"/>
+ <anchor x="1027" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1480" y="0" type="line"/>
+ <point x="1595" y="0" type="line"/>
+ <point x="1900" y="1095" type="line" smooth="yes"/>
+ <point x="1954" y="1289"/>
+ <point x="1983" y="1378"/>
+ <point x="2015" y="1460" type="curve"/>
+ <point x="1795" y="1460" type="line"/>
+ <point x="1470" y="130" type="line"/>
+ </contour>
+ <contour>
+ <point x="1120" y="1460" type="line"/>
+ <point x="935" y="1460" type="line"/>
+ <point x="990" y="1305" type="line"/>
+ <point x="1370" y="0" type="line"/>
+ <point x="1480" y="0" type="line"/>
+ <point x="1500" y="130" type="line"/>
+ </contour>
+ <contour>
+ <point x="580" y="0" type="line"/>
+ <point x="685" y="0" type="line"/>
+ <point x="1065" y="1305" type="line"/>
+ <point x="1120" y="1460" type="line"/>
+ <point x="935" y="1460" type="line"/>
+ <point x="560" y="130" type="line"/>
+ </contour>
+ <contour>
+ <point x="260" y="1460" type="line"/>
+ <point x="40" y="1460" type="line"/>
+ <point x="71" y="1381"/>
+ <point x="102" y="1286"/>
+ <point x="155" y="1095" type="curve" smooth="yes"/>
+ <point x="460" y="0" type="line"/>
+ <point x="580" y="0" type="line"/>
+ <point x="590" y="130" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apX_.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apX_.glif
new file mode 100644
index 0000000..7472407
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apX_.glif
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapX" format="2">
+ <advance width="1325"/>
+ <unicode hex="0058"/>
+ <anchor x="650" y="-100" name="L"/>
+ <anchor x="650" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="537" y="781" type="line"/>
+ <point x="265" y="340" type="line" smooth="yes"/>
+ <point x="136" y="132"/>
+ <point x="103" y="86"/>
+ <point x="40" y="0" type="curve"/>
+ <point x="270" y="0" type="line"/>
+ <point x="642" y="614" type="line"/>
+ <point x="1030" y="0" type="line"/>
+ <point x="1260" y="0" type="line"/>
+ <point x="1199" y="82"/>
+ <point x="1165" y="127"/>
+ <point x="1033" y="336" type="curve" smooth="yes"/>
+ <point x="761" y="767" type="line"/>
+ <point x="972" y="1110" type="line" smooth="yes"/>
+ <point x="1097" y="1313"/>
+ <point x="1148" y="1383"/>
+ <point x="1210" y="1460" type="curve"/>
+ <point x="975" y="1460" type="line"/>
+ <point x="656" y="934" type="line"/>
+ <point x="325" y="1460" type="line"/>
+ <point x="90" y="1460" type="line"/>
+ <point x="154" y="1376"/>
+ <point x="201" y="1315"/>
+ <point x="330" y="1110" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apY_.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apY_.glif
new file mode 100644
index 0000000..c2c5f54
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnC_apY_.glif
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapY" format="2">
+ <advance width="1320"/>
+ <unicode hex="0059"/>
+ <anchor x="650" y="-100" name="L"/>
+ <anchor x="650" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="35" y="1460" type="line"/>
+ <point x="147" y="1311"/>
+ <point x="213" y="1197"/>
+ <point x="290" y="1065" type="curve" smooth="yes"/>
+ <point x="555" y="611" type="line"/>
+ <point x="555" y="435" type="line" smooth="yes"/>
+ <point x="555" y="238"/>
+ <point x="555" y="80"/>
+ <point x="540" y="0" type="curve"/>
+ <point x="760" y="0" type="line"/>
+ <point x="745" y="80"/>
+ <point x="745" y="238"/>
+ <point x="745" y="435" type="curve" smooth="yes"/>
+ <point x="745" y="603" type="line"/>
+ <point x="1015" y="1065" type="line" smooth="yes"/>
+ <point x="1091" y="1195"/>
+ <point x="1147" y="1291"/>
+ <point x="1265" y="1460" type="curve"/>
+ <point x="1035" y="1460" type="line"/>
+ <point x="660" y="799" type="line"/>
+ <point x="265" y="1460" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mA_.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mA_.glif
new file mode 100644
index 0000000..20f7261
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mA_.glif
@@ -0,0 +1,76 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmA" format="2">
+ <advance width="1120"/>
+ <unicode hex="0061"/>
+ <note>
+
+
+
+
+ GlyphNote A
+
+
+
+
+ </note>
+ <anchor x="540" y="0" name="H"/>
+ <anchor x="540" y="-100" name="L"/>
+ <anchor x="1125" y="0" name="O"/>
+ <anchor x="1120" y="1000" name="R"/>
+ <anchor x="540" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="950" y="760" type="line"/>
+ <point x="950" y="919"/>
+ <point x="800" y="1040"/>
+ <point x="570" y="1040" type="curve" smooth="yes"/>
+ <point x="418" y="1040"/>
+ <point x="312" y="994"/>
+ <point x="209" y="950" type="curve"/>
+ <point x="203" y="907"/>
+ <point x="200" y="799"/>
+ <point x="199" y="755" type="curve"/>
+ <point x="316" y="837"/>
+ <point x="419" y="880"/>
+ <point x="525" y="880" type="curve" smooth="yes"/>
+ <point x="675" y="880"/>
+ <point x="765" y="831"/>
+ <point x="765" y="710" type="curve" smooth="yes"/>
+ <point x="765" y="635" type="line"/>
+ <point x="724" y="632"/>
+ <point x="564" y="617"/>
+ <point x="495" y="610" type="curve" smooth="yes"/>
+ <point x="186" y="580"/>
+ <point x="95" y="407"/>
+ <point x="95" y="255" type="curve" smooth="yes"/>
+ <point x="95" y="107"/>
+ <point x="232" y="-25"/>
+ <point x="420" y="-25" type="curve" smooth="yes"/>
+ <point x="544" y="-25"/>
+ <point x="677" y="29"/>
+ <point x="795" y="155" type="curve"/>
+ <point x="809" y="91"/>
+ <point x="833" y="32"/>
+ <point x="845" y="0" type="curve"/>
+ <point x="1025" y="0" type="line"/>
+ <point x="981" y="112"/>
+ <point x="950" y="226"/>
+ <point x="950" y="370" type="curve"/>
+ </contour>
+ <contour>
+ <point x="765" y="325" type="line"/>
+ <point x="644" y="164"/>
+ <point x="552" y="140"/>
+ <point x="450" y="140" type="curve" smooth="yes"/>
+ <point x="340" y="140"/>
+ <point x="275" y="191"/>
+ <point x="275" y="280" type="curve" smooth="yes"/>
+ <point x="275" y="372"/>
+ <point x="335" y="450"/>
+ <point x="505" y="470" type="curve" smooth="yes"/>
+ <point x="568" y="478"/>
+ <point x="715" y="493"/>
+ <point x="765" y="495" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mA_A_cute.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mA_A_cute.glif
new file mode 100644
index 0000000..2ab1b23
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mA_A_cute.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmAAcute" format="2">
+ <advance width="1120"/>
+ <unicode hex="00E1"/>
+ <anchor x="540" y="0" name="H"/>
+ <anchor x="540" y="-100" name="L"/>
+ <anchor x="1125" y="0" name="O"/>
+ <anchor x="1120" y="1000" name="R"/>
+ <anchor x="540" y="1635" name="U"/>
+ <outline>
+ <component base="LtnSmA"/>
+ <component base="CombAcute" xOffset="1110"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mA_C_ircum.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mA_C_ircum.glif
new file mode 100644
index 0000000..6551c45
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mA_C_ircum.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmACircum" format="2">
+ <advance width="1120"/>
+ <unicode hex="00E2"/>
+ <anchor x="540" y="0" name="H"/>
+ <anchor x="540" y="-100" name="L"/>
+ <anchor x="1125" y="0" name="O"/>
+ <anchor x="1120" y="1000" name="R"/>
+ <anchor x="540" y="1635" name="U"/>
+ <outline>
+ <component base="LtnSmA"/>
+ <component base="CombCircum" xOffset="1110"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mA_D_iaer.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mA_D_iaer.glif
new file mode 100644
index 0000000..61c5d3f
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mA_D_iaer.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmADiaer" format="2">
+ <advance width="1120"/>
+ <unicode hex="00E4"/>
+ <anchor x="540" y="0" name="H"/>
+ <anchor x="540" y="-100" name="L"/>
+ <anchor x="1125" y="0" name="O"/>
+ <anchor x="1120" y="1000" name="R"/>
+ <anchor x="540" y="1505" name="U"/>
+ <outline>
+ <component base="LtnSmA"/>
+ <component base="CombDiaer" xOffset="1110"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mA_G_rave.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mA_G_rave.glif
new file mode 100644
index 0000000..9879252
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mA_G_rave.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmAGrave" format="2">
+ <advance width="1120"/>
+ <unicode hex="00E0"/>
+ <anchor x="540" y="0" name="H"/>
+ <anchor x="540" y="-100" name="L"/>
+ <anchor x="1125" y="0" name="O"/>
+ <anchor x="1120" y="1000" name="R"/>
+ <anchor x="540" y="1635" name="U"/>
+ <outline>
+ <component base="LtnSmA"/>
+ <component base="CombGrave" xOffset="1090"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mA_R_ingA_bv.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mA_R_ingA_bv.glif
new file mode 100644
index 0000000..ae3b838
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mA_R_ingA_bv.glif
@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmARingAbv" format="2">
+ <advance width="1120"/>
+ <unicode hex="00E5"/>
+ <anchor x="540" y="0" name="H"/>
+ <anchor x="540" y="-100" name="L"/>
+ <anchor x="1125" y="0" name="O"/>
+ <anchor x="1120" y="1000" name="R"/>
+ <anchor x="542" y="1635" name="U"/>
+ <outline>
+ <component base="LtnSmA"/>
+ <contour>
+ <point x="642" y="1385" type="curve" smooth="yes"/>
+ <point x="642" y="1325"/>
+ <point x="602" y="1285"/>
+ <point x="542" y="1285" type="curve" smooth="yes"/>
+ <point x="482" y="1285"/>
+ <point x="442" y="1325"/>
+ <point x="442" y="1385" type="curve" smooth="yes"/>
+ <point x="442" y="1445"/>
+ <point x="482" y="1485"/>
+ <point x="542" y="1485" type="curve" smooth="yes"/>
+ <point x="602" y="1485"/>
+ <point x="642" y="1445"/>
+ </contour>
+ <contour>
+ <point x="327" y="1385" type="curve" smooth="yes"/>
+ <point x="327" y="1265"/>
+ <point x="422" y="1170"/>
+ <point x="542" y="1170" type="curve" smooth="yes"/>
+ <point x="662" y="1170"/>
+ <point x="757" y="1265"/>
+ <point x="757" y="1385" type="curve" smooth="yes"/>
+ <point x="757" y="1505"/>
+ <point x="662" y="1600"/>
+ <point x="542" y="1600" type="curve" smooth="yes"/>
+ <point x="422" y="1600"/>
+ <point x="327" y="1505"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mA_T_ilde.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mA_T_ilde.glif
new file mode 100644
index 0000000..cf21919
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mA_T_ilde.glif
@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmATilde" format="2">
+ <advance width="1120"/>
+ <unicode hex="00E3"/>
+ <anchor x="540" y="0" name="H"/>
+ <anchor x="540" y="-100" name="L"/>
+ <anchor x="1125" y="0" name="O"/>
+ <anchor x="1120" y="1000" name="R"/>
+ <anchor x="540" y="1475" name="U"/>
+ <outline>
+ <component base="LtnSmA"/>
+ <contour>
+ <point x="295" y="1205" type="line"/>
+ <point x="300" y="1254"/>
+ <point x="331" y="1290"/>
+ <point x="380" y="1290" type="curve" smooth="yes"/>
+ <point x="417" y="1290"/>
+ <point x="458" y="1274"/>
+ <point x="535" y="1238" type="curve" smooth="yes"/>
+ <point x="596" y="1210"/>
+ <point x="649" y="1190"/>
+ <point x="702" y="1190" type="curve" smooth="yes"/>
+ <point x="825" y="1190"/>
+ <point x="900" y="1312"/>
+ <point x="900" y="1440" type="curve"/>
+ <point x="795" y="1440" type="line"/>
+ <point x="788" y="1394"/>
+ <point x="757" y="1355"/>
+ <point x="710" y="1355" type="curve" smooth="yes"/>
+ <point x="668" y="1355"/>
+ <point x="627" y="1374"/>
+ <point x="555" y="1403" type="curve" smooth="yes"/>
+ <point x="485" y="1431"/>
+ <point x="438" y="1455"/>
+ <point x="382" y="1455" type="curve" smooth="yes"/>
+ <point x="263" y="1455"/>
+ <point x="190" y="1327"/>
+ <point x="190" y="1205" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mB_.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mB_.glif
new file mode 100644
index 0000000..67ff8ac
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mB_.glif
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmB" format="2">
+ <advance width="1155"/>
+ <unicode hex="0062"/>
+ <anchor x="590" y="0" name="H"/>
+ <anchor x="590" y="-100" name="L"/>
+ <anchor x="1155" y="1000" name="R"/>
+ <anchor x="590" y="1635" name="U"/>
+ <outline>
+ <contour>
+ <point x="130" y="1600" type="line"/>
+ <point x="145" y="1488"/>
+ <point x="145" y="1273"/>
+ <point x="145" y="1130" type="curve" smooth="yes"/>
+ <point x="145" y="936"/>
+ <point x="145" y="228"/>
+ <point x="145" y="65" type="curve"/>
+ <point x="272" y="26"/>
+ <point x="413" y="-25"/>
+ <point x="575" y="-25" type="curve" smooth="yes"/>
+ <point x="870" y="-25"/>
+ <point x="1060" y="197"/>
+ <point x="1060" y="540" type="curve" smooth="yes"/>
+ <point x="1060" y="832"/>
+ <point x="917" y="1040"/>
+ <point x="715" y="1040" type="curve" smooth="yes"/>
+ <point x="547" y="1040"/>
+ <point x="423" y="947"/>
+ <point x="330" y="825" type="curve"/>
+ <point x="330" y="916"/>
+ <point x="330" y="1600"/>
+ <point x="330" y="1600" type="curve"/>
+ </contour>
+ <contour>
+ <point x="330" y="585" type="line"/>
+ <point x="398" y="751"/>
+ <point x="531" y="865"/>
+ <point x="655" y="865" type="curve" smooth="yes"/>
+ <point x="799" y="865"/>
+ <point x="880" y="727"/>
+ <point x="880" y="505" type="curve" smooth="yes"/>
+ <point x="880" y="280"/>
+ <point x="752" y="130"/>
+ <point x="575" y="130" type="curve" smooth="yes"/>
+ <point x="489" y="130"/>
+ <point x="428" y="144"/>
+ <point x="330" y="185" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mC_.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mC_.glif
new file mode 100644
index 0000000..7c403fb
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mC_.glif
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmC" format="2">
+ <advance width="1020"/>
+ <unicode hex="0063"/>
+ <anchor x="580" y="0" name="H"/>
+ <anchor x="580" y="-100" name="L"/>
+ <anchor x="1020" y="1000" name="R"/>
+ <anchor x="570" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="905" y="260" type="line"/>
+ <point x="818" y="183"/>
+ <point x="720" y="140"/>
+ <point x="600" y="140" type="curve" smooth="yes"/>
+ <point x="406" y="140"/>
+ <point x="285" y="285"/>
+ <point x="285" y="500" type="curve" smooth="yes"/>
+ <point x="285" y="736"/>
+ <point x="422" y="875"/>
+ <point x="600" y="875" type="curve" smooth="yes"/>
+ <point x="703" y="875"/>
+ <point x="790" y="841"/>
+ <point x="880" y="775" type="curve"/>
+ <point x="915" y="955" type="line"/>
+ <point x="842" y="1005"/>
+ <point x="748" y="1040"/>
+ <point x="615" y="1040" type="curve" smooth="yes"/>
+ <point x="297" y="1040"/>
+ <point x="95" y="792"/>
+ <point x="95" y="490" type="curve" smooth="yes"/>
+ <point x="95" y="171"/>
+ <point x="312" y="-25"/>
+ <point x="580" y="-25" type="curve" smooth="yes"/>
+ <point x="730" y="-25"/>
+ <point x="824" y="9"/>
+ <point x="925" y="85" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mC_A_cute.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mC_A_cute.glif
new file mode 100644
index 0000000..7a0f29b
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mC_A_cute.glif
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmCAcute" format="2">
+ <advance width="1355"/>
+ <unicode hex="0107"/>
+ <anchor x="750" y="0" name="H"/>
+ <anchor x="750" y="-100" name="L"/>
+ <anchor x="750" y="2065" name="U"/>
+ <outline>
+ <component base="LtnCapC"/>
+ <component base="CombAcute" xOffset="1320" yOffset="430"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mC_A_cuteC_edilla.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mC_A_cuteC_edilla.glif
new file mode 100644
index 0000000..0791a42
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mC_A_cuteC_edilla.glif
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmCAcuteCedilla" format="2">
+ <advance width="1020"/>
+ <unicode hex="1E09"/>
+ <anchor x="580" y="0" name="H"/>
+ <anchor x="580" y="-100" name="L"/>
+ <anchor x="1020" y="1000" name="R"/>
+ <anchor x="570" y="1635" name="U"/>
+ <outline>
+ <component base="LtnSmC"/>
+ <component base="CombAcute" xOffset="1140"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mC_C_ircum.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mC_C_ircum.glif
new file mode 100644
index 0000000..7b37429
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mC_C_ircum.glif
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmCCircum" format="2">
+ <advance width="1020"/>
+ <unicode hex="0109"/>
+ <anchor x="580" y="0" name="H"/>
+ <anchor x="580" y="-100" name="L"/>
+ <anchor x="1020" y="1000" name="R"/>
+ <anchor x="570" y="1635" name="U"/>
+ <outline>
+ <component base="LtnSmC"/>
+ <component base="CombCircum" xOffset="1140"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mD_.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mD_.glif
new file mode 100644
index 0000000..13547d4
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mD_.glif
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmD" format="2">
+ <advance width="1190"/>
+ <unicode hex="0064"/>
+ <anchor x="605" y="0" name="H"/>
+ <anchor x="605" y="-100" name="L"/>
+ <anchor x="1190" y="1000" name="R"/>
+ <anchor x="605" y="1635" name="U"/>
+ <outline>
+ <contour>
+ <point x="1030" y="1600" type="line"/>
+ <point x="820" y="1600" type="line"/>
+ <point x="839" y="1516"/>
+ <point x="845" y="1395"/>
+ <point x="845" y="1235" type="curve"/>
+ <point x="845" y="955" type="line"/>
+ <point x="767" y="999"/>
+ <point x="665" y="1040"/>
+ <point x="580" y="1040" type="curve" smooth="yes"/>
+ <point x="312" y="1040"/>
+ <point x="105" y="814"/>
+ <point x="105" y="460" type="curve" smooth="yes"/>
+ <point x="105" y="167"/>
+ <point x="261" y="-25"/>
+ <point x="505" y="-25" type="curve" smooth="yes"/>
+ <point x="652" y="-25"/>
+ <point x="775" y="50"/>
+ <point x="870" y="185" type="curve"/>
+ <point x="887" y="111"/>
+ <point x="910" y="34"/>
+ <point x="925" y="0" type="curve"/>
+ <point x="1105" y="0" type="line"/>
+ <point x="1062" y="112"/>
+ <point x="1030" y="278"/>
+ <point x="1030" y="530" type="curve"/>
+ </contour>
+ <contour>
+ <point x="845" y="400" type="line"/>
+ <point x="790" y="268"/>
+ <point x="662" y="135"/>
+ <point x="540" y="135" type="curve" smooth="yes"/>
+ <point x="366" y="135"/>
+ <point x="290" y="258"/>
+ <point x="290" y="490" type="curve" smooth="yes"/>
+ <point x="290" y="727"/>
+ <point x="429" y="870"/>
+ <point x="580" y="870" type="curve" smooth="yes"/>
+ <point x="681" y="870"/>
+ <point x="746" y="848"/>
+ <point x="845" y="795" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mE_.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mE_.glif
new file mode 100644
index 0000000..f231440
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mE_.glif
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmE" format="2">
+ <advance width="1095"/>
+ <unicode hex="0065"/>
+ <anchor x="545" y="0" name="H"/>
+ <anchor x="569" y="-100" name="L"/>
+ <anchor x="925" y="0" name="O"/>
+ <anchor x="1095" y="1000" name="R"/>
+ <anchor x="569" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="989" y="485" type="line"/>
+ <point x="990" y="503"/>
+ <point x="990" y="545"/>
+ <point x="990" y="563" type="curve" smooth="yes"/>
+ <point x="990" y="788"/>
+ <point x="905" y="1040"/>
+ <point x="575" y="1040" type="curve" smooth="yes"/>
+ <point x="279" y="1040"/>
+ <point x="95" y="826"/>
+ <point x="95" y="495" type="curve" smooth="yes"/>
+ <point x="95" y="155"/>
+ <point x="320" y="-25"/>
+ <point x="575" y="-25" type="curve" smooth="yes"/>
+ <point x="729" y="-25"/>
+ <point x="853" y="2"/>
+ <point x="995" y="75" type="curve"/>
+ <point x="975" y="240" type="line"/>
+ <point x="853" y="166"/>
+ <point x="729" y="140"/>
+ <point x="600" y="140" type="curve" smooth="yes"/>
+ <point x="414" y="140"/>
+ <point x="280" y="258"/>
+ <point x="280" y="505" type="curve" smooth="yes"/>
+ <point x="280" y="770"/>
+ <point x="385" y="890"/>
+ <point x="560" y="890" type="curve" smooth="yes"/>
+ <point x="705" y="890"/>
+ <point x="810" y="797"/>
+ <point x="810" y="625" type="curve"/>
+ <point x="245" y="625" type="line"/>
+ <point x="245" y="485" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mF_.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mF_.glif
new file mode 100644
index 0000000..56c0b15
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mF_.glif
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmF" format="2">
+ <advance width="750"/>
+ <unicode hex="0066"/>
+ <anchor x="370" y="0" name="H"/>
+ <anchor x="335" y="-100" name="L"/>
+ <anchor x="560" y="1635" name="U"/>
+ <outline>
+ <contour>
+ <point x="40" y="850" type="line"/>
+ <point x="240" y="850" type="line"/>
+ <point x="240" y="0" type="line"/>
+ <point x="455" y="0" type="line"/>
+ <point x="433" y="105"/>
+ <point x="425" y="300"/>
+ <point x="425" y="494" type="curve" smooth="yes"/>
+ <point x="425" y="850" type="line"/>
+ <point x="695" y="850" type="line"/>
+ <point x="695" y="995" type="line"/>
+ <point x="425" y="995" type="line"/>
+ <point x="425" y="1210" type="line" smooth="yes"/>
+ <point x="425" y="1381"/>
+ <point x="481" y="1450"/>
+ <point x="585" y="1450" type="curve" smooth="yes"/>
+ <point x="643" y="1450"/>
+ <point x="710" y="1427"/>
+ <point x="760" y="1390" type="curve"/>
+ <point x="805" y="1550" type="line"/>
+ <point x="743" y="1594"/>
+ <point x="663" y="1620"/>
+ <point x="585" y="1620" type="curve" smooth="yes"/>
+ <point x="369" y="1620"/>
+ <point x="240" y="1470"/>
+ <point x="240" y="1170" type="curve" smooth="yes"/>
+ <point x="240" y="995" type="line"/>
+ <point x="40" y="995" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mG_.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mG_.glif
new file mode 100644
index 0000000..236da64
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mG_.glif
@@ -0,0 +1,91 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmG" format="2">
+ <advance width="1095"/>
+ <unicode hex="0067"/>
+ <anchor x="545" y="-432" name="H"/>
+ <anchor x="545" y="-535" name="L"/>
+ <anchor x="1095" y="1000" name="R"/>
+ <anchor x="515" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="330" y="395" type="line"/>
+ <point x="234" y="357"/>
+ <point x="180" y="275"/>
+ <point x="180" y="215" type="curve" smooth="yes"/>
+ <point x="180" y="121"/>
+ <point x="263" y="27"/>
+ <point x="545" y="-5" type="curve" smooth="yes"/>
+ <point x="805" y="-35"/>
+ <point x="880" y="-90"/>
+ <point x="880" y="-170" type="curve" smooth="yes"/>
+ <point x="880" y="-255"/>
+ <point x="731" y="-360"/>
+ <point x="550" y="-360" type="curve" smooth="yes"/>
+ <point x="323" y="-360"/>
+ <point x="215" y="-261"/>
+ <point x="215" y="-180" type="curve" smooth="yes"/>
+ <point x="215" y="-121"/>
+ <point x="244" y="-56"/>
+ <point x="465" y="20" type="curve"/>
+ <point x="459" y="49"/>
+ <point x="290" y="75"/>
+ <point x="290" y="75" type="curve"/>
+ <point x="113" y="2"/>
+ <point x="30" y="-89"/>
+ <point x="30" y="-200" type="curve" smooth="yes"/>
+ <point x="30" y="-409"/>
+ <point x="303" y="-505"/>
+ <point x="535" y="-505" type="curve" smooth="yes"/>
+ <point x="777" y="-505"/>
+ <point x="1065" y="-375"/>
+ <point x="1065" y="-160" type="curve" smooth="yes"/>
+ <point x="1065" y="-8"/>
+ <point x="967" y="90"/>
+ <point x="670" y="125" type="curve" smooth="yes"/>
+ <point x="410" y="156"/>
+ <point x="345" y="198"/>
+ <point x="345" y="235" type="curve" smooth="yes"/>
+ <point x="345" y="271"/>
+ <point x="384" y="316"/>
+ <point x="500" y="350" type="curve"/>
+ </contour>
+ <contour>
+ <point x="1050" y="1040" type="line"/>
+ <point x="951" y="1033"/>
+ <point x="819" y="997"/>
+ <point x="730" y="940" type="curve"/>
+ <point x="795" y="825" type="line"/>
+ <point x="887" y="863"/>
+ <point x="967" y="878"/>
+ <point x="1040" y="880" type="curve"/>
+ </contour>
+ <contour>
+ <point x="115" y="680" type="curve" smooth="yes"/>
+ <point x="115" y="476"/>
+ <point x="289" y="325"/>
+ <point x="515" y="325" type="curve" smooth="yes"/>
+ <point x="742" y="325"/>
+ <point x="915" y="476"/>
+ <point x="915" y="680" type="curve" smooth="yes"/>
+ <point x="915" y="884"/>
+ <point x="742" y="1040"/>
+ <point x="515" y="1040" type="curve" smooth="yes"/>
+ <point x="289" y="1040"/>
+ <point x="115" y="884"/>
+ </contour>
+ <contour>
+ <point x="285" y="680" type="curve" smooth="yes"/>
+ <point x="285" y="803"/>
+ <point x="382" y="895"/>
+ <point x="515" y="895" type="curve" smooth="yes"/>
+ <point x="649" y="895"/>
+ <point x="745" y="803"/>
+ <point x="745" y="680" type="curve" smooth="yes"/>
+ <point x="745" y="557"/>
+ <point x="649" y="465"/>
+ <point x="515" y="465" type="curve" smooth="yes"/>
+ <point x="382" y="465"/>
+ <point x="285" y="557"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mH_.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mH_.glif
new file mode 100644
index 0000000..bad060c
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mH_.glif
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmH" format="2">
+ <advance width="1175"/>
+ <unicode hex="0068"/>
+ <anchor x="250" y="0" name="H"/>
+ <anchor x="585" y="-100" name="L"/>
+ <anchor x="585" y="1635" name="U"/>
+ <outline>
+ <contour>
+ <point x="1040" y="0" type="line"/>
+ <point x="1040" y="0"/>
+ <point x="1040" y="459"/>
+ <point x="1040" y="625" type="curve" smooth="yes"/>
+ <point x="1040" y="900"/>
+ <point x="923" y="1040"/>
+ <point x="710" y="1040" type="curve" smooth="yes"/>
+ <point x="570" y="1040"/>
+ <point x="428" y="969"/>
+ <point x="330" y="830" type="curve"/>
+ <point x="330" y="877"/>
+ <point x="330" y="1600"/>
+ <point x="330" y="1600" type="curve"/>
+ <point x="130" y="1600" type="line"/>
+ <point x="145" y="1514"/>
+ <point x="145" y="1345"/>
+ <point x="145" y="1130" type="curve" smooth="yes"/>
+ <point x="145" y="935"/>
+ <point x="145" y="0"/>
+ <point x="145" y="0" type="curve"/>
+ <point x="330" y="0" type="line"/>
+ <point x="330" y="580" type="line"/>
+ <point x="374" y="716"/>
+ <point x="511" y="865"/>
+ <point x="655" y="865" type="curve" smooth="yes"/>
+ <point x="789" y="865"/>
+ <point x="855" y="800"/>
+ <point x="855" y="550" type="curve" smooth="yes"/>
+ <point x="855" y="413"/>
+ <point x="855" y="0"/>
+ <point x="855" y="0" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mI_.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mI_.glif
new file mode 100644
index 0000000..369347b
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mI_.glif
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmI" format="2">
+ <advance width="565"/>
+ <unicode hex="0069"/>
+ <anchor x="282" y="0" name="H"/>
+ <anchor x="285" y="-100" name="L"/>
+ <anchor x="500" y="0" name="O"/>
+ <anchor x="555" y="1000" name="R"/>
+ <anchor x="282" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="375" y="1020" type="line"/>
+ <point x="175" y="1020" type="line"/>
+ <point x="188" y="915"/>
+ <point x="190" y="725"/>
+ <point x="190" y="530" type="curve" smooth="yes"/>
+ <point x="190" y="336"/>
+ <point x="190" y="0"/>
+ <point x="190" y="0" type="curve"/>
+ <point x="395" y="0" type="line"/>
+ <point x="382" y="107"/>
+ <point x="375" y="346"/>
+ <point x="375" y="475" type="curve" smooth="yes"/>
+ </contour>
+ <contour>
+ <point x="155" y="1345" type="curve" smooth="yes"/>
+ <point x="155" y="1271"/>
+ <point x="206" y="1210"/>
+ <point x="280" y="1210" type="curve" smooth="yes"/>
+ <point x="355" y="1210"/>
+ <point x="410" y="1271"/>
+ <point x="410" y="1345" type="curve" smooth="yes"/>
+ <point x="410" y="1419"/>
+ <point x="355" y="1480"/>
+ <point x="280" y="1480" type="curve" smooth="yes"/>
+ <point x="206" y="1480"/>
+ <point x="155" y="1419"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mI_J_.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mI_J_.glif
new file mode 100644
index 0000000..f6ad58c
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mI_J_.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmIJ" format="2">
+ <advance width="1160"/>
+ <unicode hex="0133"/>
+ <anchor x="282" y="0" name="H"/>
+ <anchor x="690" y="-500" name="L"/>
+ <anchor x="500" y="0" name="O"/>
+ <anchor x="555" y="1000" name="R"/>
+ <anchor x="878" y="1100" name="U"/>
+ <outline>
+ <component base="LtnSmI"/>
+ <component base="LtnSmJ" xOffset="565"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mI_T_ilde.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mI_T_ilde.glif
new file mode 100644
index 0000000..8da3a8d
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mI_T_ilde.glif
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmITilde" format="2">
+ <advance width="400"/>
+ <unicode hex="0129"/>
+ <anchor x="0" y="375" name="U"/>
+ <outline>
+ <component base="CombTilde" xOffset="575" yOffset="-1100"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mI_T_ildeG_rave.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mI_T_ildeG_rave.glif
new file mode 100644
index 0000000..37bd42e
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mI_T_ildeG_rave.glif
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmITildeGrave" format="2">
+ <unicode hex="E000"/>
+ <anchor x="0" y="910" name="U"/>
+ <outline>
+ <component base="CombTilde" xOffset="575" yOffset="-1100"/>
+ <component base="CombGrave" xOffset="550" yOffset="-725"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mI_T_ildeG_raveC_edilla.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mI_T_ildeG_raveC_edilla.glif
new file mode 100644
index 0000000..6d460d8
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mI_T_ildeG_raveC_edilla.glif
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmITildeGraveCedilla" format="2">
+ <advance width="400"/>
+ <unicode hex="E010"/>
+ <anchor x="0" y="910" name="U"/>
+ <outline>
+ <component base="CombTilde" xOffset="575" yOffset="-1100"/>
+ <component base="CombGrave" xOffset="550" yOffset="-725"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mJ_.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mJ_.glif
new file mode 100644
index 0000000..87f74c6
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mJ_.glif
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmJ" format="2">
+ <advance width="595"/>
+ <unicode hex="006A"/>
+ <anchor x="125" y="-500" name="L"/>
+ <anchor x="313" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="405" y="1020" type="line"/>
+ <point x="205" y="1020" type="line"/>
+ <point x="218" y="915"/>
+ <point x="220" y="725"/>
+ <point x="220" y="530" type="curve"/>
+ <point x="220" y="-25" type="line"/>
+ <point x="220" y="-222"/>
+ <point x="147" y="-300"/>
+ <point x="40" y="-300" type="curve" smooth="yes"/>
+ <point x="-16" y="-300"/>
+ <point x="-111" y="-273"/>
+ <point x="-155" y="-240" type="curve"/>
+ <point x="-190" y="-405" type="line"/>
+ <point x="-130" y="-446"/>
+ <point x="-26" y="-470"/>
+ <point x="30" y="-470" type="curve" smooth="yes"/>
+ <point x="258" y="-470"/>
+ <point x="405" y="-348"/>
+ <point x="405" y="25" type="curve" smooth="yes"/>
+ </contour>
+ <contour>
+ <point x="185" y="1345" type="curve" smooth="yes"/>
+ <point x="185" y="1271"/>
+ <point x="236" y="1210"/>
+ <point x="310" y="1210" type="curve" smooth="yes"/>
+ <point x="385" y="1210"/>
+ <point x="440" y="1271"/>
+ <point x="440" y="1345" type="curve" smooth="yes"/>
+ <point x="440" y="1419"/>
+ <point x="385" y="1480"/>
+ <point x="310" y="1480" type="curve" smooth="yes"/>
+ <point x="236" y="1480"/>
+ <point x="185" y="1419"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mK_.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mK_.glif
new file mode 100644
index 0000000..d1b00cb
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mK_.glif
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmK" format="2">
+ <advance width="1035"/>
+ <unicode hex="006B"/>
+ <guideline x="500" y="774" angle="314"/>
+ <anchor x="243" y="0" name="H"/>
+ <anchor x="572" y="-100" name="L"/>
+ <anchor x="1035" y="1000" name="R"/>
+ <anchor x="572" y="1635" name="U"/>
+ <outline>
+ <contour>
+ <point x="330" y="0" type="line"/>
+ <point x="330" y="1600" type="line"/>
+ <point x="130" y="1600" type="line"/>
+ <point x="145" y="1514"/>
+ <point x="145" y="1345"/>
+ <point x="145" y="1130" type="curve" smooth="yes"/>
+ <point x="145" y="934"/>
+ <point x="145" y="0"/>
+ <point x="145" y="0" type="curve"/>
+ </contour>
+ <contour>
+ <point x="735" y="1020" type="line"/>
+ <point x="280" y="550" type="line"/>
+ <point x="436" y="524" type="line"/>
+ <point x="985" y="1020" type="line"/>
+ </contour>
+ <contour>
+ <point x="305" y="550" type="line"/>
+ <point x="770" y="0" type="line"/>
+ <point x="1015" y="0" type="line"/>
+ <point x="410" y="660" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mL_.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mL_.glif
new file mode 100644
index 0000000..4378793
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mL_.glif
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmL" format="2">
+ <advance width="565"/>
+ <unicode hex="006C"/>
+ <guideline x="500" y="874" angle="340"/>
+ <anchor x="290" y="0" name="H"/>
+ <anchor x="290" y="-100" name="L"/>
+ <anchor x="550" y="1000" name="R"/>
+ <anchor x="282" y="1635" name="U"/>
+ <outline>
+ <contour>
+ <point x="375" y="1600" type="line"/>
+ <point x="170" y="1600" type="line"/>
+ <point x="183" y="1485"/>
+ <point x="190" y="1324"/>
+ <point x="190" y="1130" type="curve"/>
+ <point x="190" y="0" type="line"/>
+ <point x="395" y="0" type="line"/>
+ <point x="382" y="109"/>
+ <point x="375" y="346"/>
+ <point x="375" y="475" type="curve" smooth="yes"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mM_.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mM_.glif
new file mode 100644
index 0000000..4498bb1
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mM_.glif
@@ -0,0 +1,52 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmM" format="2">
+ <advance width="1685"/>
+ <unicode hex="006D"/>
+ <anchor x="1450" y="0" name="H"/>
+ <anchor x="865" y="-100" name="L"/>
+ <anchor x="865" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="945" y="660" type="line"/>
+ <point x="1003" y="785"/>
+ <point x="1102" y="865"/>
+ <point x="1200" y="865" type="curve" smooth="yes"/>
+ <point x="1312" y="865"/>
+ <point x="1345" y="808"/>
+ <point x="1345" y="550" type="curve" smooth="yes"/>
+ <point x="1345" y="0" type="line"/>
+ <point x="1530" y="0" type="line"/>
+ <point x="1530" y="660" type="line" smooth="yes"/>
+ <point x="1530" y="907"/>
+ <point x="1463" y="1040"/>
+ <point x="1260" y="1040" type="curve" smooth="yes"/>
+ <point x="1155" y="1040"/>
+ <point x="1046" y="1007"/>
+ <point x="921" y="872" type="curve"/>
+ <point x="888" y="960"/>
+ <point x="806" y="1040"/>
+ <point x="675" y="1040" type="curve" smooth="yes"/>
+ <point x="560" y="1040"/>
+ <point x="459" y="1006"/>
+ <point x="337" y="865" type="curve"/>
+ <point x="330" y="913"/>
+ <point x="320" y="978"/>
+ <point x="305" y="1020" type="curve"/>
+ <point x="125" y="1020" type="line"/>
+ <point x="146" y="951"/>
+ <point x="175" y="811"/>
+ <point x="175" y="615" type="curve" smooth="yes"/>
+ <point x="175" y="0" type="line"/>
+ <point x="360" y="0" type="line"/>
+ <point x="360" y="660" type="line"/>
+ <point x="413" y="780"/>
+ <point x="517" y="865"/>
+ <point x="615" y="865" type="curve" smooth="yes"/>
+ <point x="727" y="865"/>
+ <point x="760" y="818"/>
+ <point x="760" y="570" type="curve" smooth="yes"/>
+ <point x="760" y="0" type="line"/>
+ <point x="945" y="0" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mN_.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mN_.glif
new file mode 100644
index 0000000..5534dd8
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mN_.glif
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmN" format="2">
+ <advance width="1185"/>
+ <unicode hex="006E"/>
+ <anchor x="970" y="0" name="H"/>
+ <anchor x="600" y="-100" name="L"/>
+ <anchor x="600" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="1050" y="0" type="line"/>
+ <point x="1050" y="0"/>
+ <point x="1050" y="459"/>
+ <point x="1050" y="625" type="curve" smooth="yes"/>
+ <point x="1050" y="900"/>
+ <point x="933" y="1040"/>
+ <point x="720" y="1040" type="curve" smooth="yes"/>
+ <point x="579" y="1040"/>
+ <point x="452" y="977"/>
+ <point x="325" y="825" type="curve"/>
+ <point x="318" y="873"/>
+ <point x="300" y="978"/>
+ <point x="285" y="1020" type="curve"/>
+ <point x="105" y="1020" type="line"/>
+ <point x="127" y="951"/>
+ <point x="155" y="811"/>
+ <point x="155" y="615" type="curve" smooth="yes"/>
+ <point x="155" y="420"/>
+ <point x="155" y="0"/>
+ <point x="155" y="0" type="curve"/>
+ <point x="340" y="0" type="line"/>
+ <point x="340" y="580" type="line"/>
+ <point x="384" y="716"/>
+ <point x="521" y="865"/>
+ <point x="665" y="865" type="curve" smooth="yes"/>
+ <point x="800" y="865"/>
+ <point x="865" y="800"/>
+ <point x="865" y="550" type="curve" smooth="yes"/>
+ <point x="865" y="413"/>
+ <point x="865" y="0"/>
+ <point x="865" y="0" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mO_.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mO_.glif
new file mode 100644
index 0000000..ee9b6c6
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mO_.glif
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmO" format="2">
+ <advance width="1140"/>
+ <unicode hex="006F"/>
+ <anchor x="570" y="0" name="H"/>
+ <anchor x="570" y="-100" name="L"/>
+ <anchor x="835" y="0" name="O"/>
+ <anchor x="1140" y="1000" name="R"/>
+ <anchor x="570" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="95" y="505" type="curve" smooth="yes"/>
+ <point x="95" y="161"/>
+ <point x="286" y="-25"/>
+ <point x="560" y="-25" type="curve" smooth="yes"/>
+ <point x="823" y="-25"/>
+ <point x="1045" y="161"/>
+ <point x="1045" y="505" type="curve" smooth="yes"/>
+ <point x="1045" y="849"/>
+ <point x="855" y="1040"/>
+ <point x="580" y="1040" type="curve" smooth="yes"/>
+ <point x="317" y="1040"/>
+ <point x="95" y="849"/>
+ </contour>
+ <contour>
+ <point x="280" y="505" type="curve" smooth="yes"/>
+ <point x="280" y="739"/>
+ <point x="408" y="880"/>
+ <point x="570" y="880" type="curve" smooth="yes"/>
+ <point x="742" y="880"/>
+ <point x="860" y="739"/>
+ <point x="860" y="505" type="curve" smooth="yes"/>
+ <point x="860" y="272"/>
+ <point x="731" y="135"/>
+ <point x="570" y="135" type="curve" smooth="yes"/>
+ <point x="398" y="135"/>
+ <point x="280" y="272"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mP_.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mP_.glif
new file mode 100644
index 0000000..e960bc9
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mP_.glif
@@ -0,0 +1,56 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmP" format="2">
+ <advance width="1170"/>
+ <unicode hex="0070"/>
+ <guideline x="214" y="-490" angle="0"/>
+ <anchor x="265" y="-435" name="H"/>
+ <anchor x="590" y="-500" name="L"/>
+ <anchor x="1170" y="1000" name="R"/>
+ <anchor x="590" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="105" y="1020" type="line"/>
+ <point x="150" y="907"/>
+ <point x="155" y="734"/>
+ <point x="155" y="485" type="curve" smooth="yes"/>
+ <point x="155" y="291"/>
+ <point x="155" y="-490"/>
+ <point x="155" y="-490" type="curve"/>
+ <point x="365" y="-490" type="line"/>
+ <point x="348" y="-405"/>
+ <point x="340" y="-310"/>
+ <point x="340" y="-150" type="curve"/>
+ <point x="340" y="85" type="line"/>
+ <point x="435" y="18"/>
+ <point x="513" y="-25"/>
+ <point x="620" y="-25" type="curve" smooth="yes"/>
+ <point x="871" y="-25"/>
+ <point x="1075" y="193"/>
+ <point x="1075" y="535" type="curve" smooth="yes"/>
+ <point x="1075" y="828"/>
+ <point x="923" y="1040"/>
+ <point x="695" y="1040" type="curve" smooth="yes"/>
+ <point x="547" y="1040"/>
+ <point x="419" y="954"/>
+ <point x="325" y="830" type="curve"/>
+ <point x="316" y="922"/>
+ <point x="300" y="986"/>
+ <point x="285" y="1020" type="curve"/>
+ </contour>
+ <contour>
+ <point x="340" y="575" type="line"/>
+ <point x="414" y="768"/>
+ <point x="545" y="870"/>
+ <point x="660" y="870" type="curve" smooth="yes"/>
+ <point x="804" y="870"/>
+ <point x="890" y="727"/>
+ <point x="890" y="505" type="curve" smooth="yes"/>
+ <point x="890" y="279"/>
+ <point x="761" y="140"/>
+ <point x="620" y="140" type="curve" smooth="yes"/>
+ <point x="528" y="140"/>
+ <point x="477" y="164"/>
+ <point x="340" y="260" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mQ_.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mQ_.glif
new file mode 100644
index 0000000..1da1d6a
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mQ_.glif
@@ -0,0 +1,47 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmQ" format="2">
+ <advance width="1130"/>
+ <unicode hex="0071"/>
+ <anchor x="555" y="-500" name="L"/>
+ <anchor x="1130" y="1000" name="R"/>
+ <anchor x="555" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="795" y="-490" type="line"/>
+ <point x="1005" y="-490" type="line"/>
+ <point x="988" y="-405"/>
+ <point x="980" y="-310"/>
+ <point x="980" y="-150" type="curve" smooth="yes"/>
+ <point x="980" y="-26"/>
+ <point x="980" y="965"/>
+ <point x="980" y="965" type="curve"/>
+ <point x="872" y="1001"/>
+ <point x="746" y="1040"/>
+ <point x="625" y="1040" type="curve" smooth="yes"/>
+ <point x="260" y="1040"/>
+ <point x="105" y="742"/>
+ <point x="105" y="435" type="curve" smooth="yes"/>
+ <point x="105" y="117"/>
+ <point x="321" y="-25"/>
+ <point x="505" y="-25" type="curve" smooth="yes"/>
+ <point x="598" y="-25"/>
+ <point x="691" y="19"/>
+ <point x="795" y="140" type="curve"/>
+ </contour>
+ <contour>
+ <point x="795" y="365" type="line"/>
+ <point x="713" y="219"/>
+ <point x="612" y="145"/>
+ <point x="520" y="145" type="curve" smooth="yes"/>
+ <point x="412" y="145"/>
+ <point x="290" y="237"/>
+ <point x="290" y="485" type="curve" smooth="yes"/>
+ <point x="290" y="674"/>
+ <point x="376" y="870"/>
+ <point x="595" y="870" type="curve" smooth="yes"/>
+ <point x="656" y="870"/>
+ <point x="735" y="853"/>
+ <point x="795" y="830" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mR_.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mR_.glif
new file mode 100644
index 0000000..0f090a4
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mR_.glif
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmR" format="2">
+ <advance width="890"/>
+ <unicode hex="0072"/>
+ <guideline x="214" y="500" angle="0"/>
+ <anchor x="270" y="0" name="H"/>
+ <anchor x="255" y="-100" name="L"/>
+ <anchor x="455" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="340" y="0" type="line"/>
+ <point x="340" y="580" type="line"/>
+ <point x="384" y="716"/>
+ <point x="521" y="860"/>
+ <point x="605" y="860" type="curve" smooth="yes"/>
+ <point x="684" y="860"/>
+ <point x="720" y="770"/>
+ <point x="720" y="670" type="curve"/>
+ <point x="880" y="705" type="line"/>
+ <point x="880" y="880"/>
+ <point x="817" y="1040"/>
+ <point x="650" y="1040" type="curve" smooth="yes"/>
+ <point x="559" y="1040"/>
+ <point x="422" y="964"/>
+ <point x="325" y="825" type="curve"/>
+ <point x="318" y="873"/>
+ <point x="300" y="978"/>
+ <point x="285" y="1020" type="curve"/>
+ <point x="105" y="1020" type="line"/>
+ <point x="127" y="951"/>
+ <point x="155" y="811"/>
+ <point x="155" y="615" type="curve" smooth="yes"/>
+ <point x="155" y="0" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mS_.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mS_.glif
new file mode 100644
index 0000000..ea1e7ba
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mS_.glif
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmS" format="2">
+ <advance width="965"/>
+ <unicode hex="0073"/>
+ <anchor x="495" y="0" name="H"/>
+ <anchor x="495" y="-100" name="L"/>
+ <anchor x="495" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="835" y="960" type="line"/>
+ <point x="766" y="998"/>
+ <point x="660" y="1040"/>
+ <point x="515" y="1040" type="curve" smooth="yes"/>
+ <point x="211" y="1040"/>
+ <point x="130" y="832"/>
+ <point x="130" y="740" type="curve" smooth="yes"/>
+ <point x="130" y="616"/>
+ <point x="182" y="514"/>
+ <point x="425" y="455" type="curve" smooth="yes"/>
+ <point x="649" y="400"/>
+ <point x="700" y="345"/>
+ <point x="700" y="270" type="curve" smooth="yes"/>
+ <point x="700" y="201"/>
+ <point x="617" y="135"/>
+ <point x="500" y="135" type="curve" smooth="yes"/>
+ <point x="394" y="135"/>
+ <point x="250" y="189"/>
+ <point x="160" y="270" type="curve"/>
+ <point x="110" y="90" type="line"/>
+ <point x="189" y="28"/>
+ <point x="333" y="-25"/>
+ <point x="495" y="-25" type="curve" smooth="yes"/>
+ <point x="710" y="-25"/>
+ <point x="880" y="115"/>
+ <point x="880" y="295" type="curve" smooth="yes"/>
+ <point x="880" y="481"/>
+ <point x="731" y="559"/>
+ <point x="550" y="600" type="curve" smooth="yes"/>
+ <point x="340" y="648"/>
+ <point x="310" y="680"/>
+ <point x="310" y="750" type="curve" smooth="yes"/>
+ <point x="310" y="810"/>
+ <point x="358" y="880"/>
+ <point x="505" y="880" type="curve" smooth="yes"/>
+ <point x="629" y="880"/>
+ <point x="733" y="824"/>
+ <point x="800" y="785" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mT_.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mT_.glif
new file mode 100644
index 0000000..45d6b50
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mT_.glif
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmT" format="2">
+ <advance width="835"/>
+ <unicode hex="0074"/>
+ <anchor x="475" y="0" name="H"/>
+ <anchor x="475" y="-100" name="L"/>
+ <anchor x="835" y="1000" name="R"/>
+ <anchor x="325" y="1360" name="U"/>
+ <outline>
+ <contour>
+ <point x="760" y="215" type="line"/>
+ <point x="672" y="166"/>
+ <point x="600" y="140"/>
+ <point x="543" y="140" type="curve" smooth="yes"/>
+ <point x="453" y="140"/>
+ <point x="415" y="184"/>
+ <point x="415" y="390" type="curve" smooth="yes"/>
+ <point x="415" y="528"/>
+ <point x="415" y="1320"/>
+ <point x="415" y="1320" type="curve"/>
+ <point x="230" y="1320" type="line"/>
+ <point x="230" y="1320"/>
+ <point x="230" y="435"/>
+ <point x="230" y="270" type="curve" smooth="yes"/>
+ <point x="230" y="39"/>
+ <point x="356" y="-25"/>
+ <point x="512" y="-25" type="curve" smooth="yes"/>
+ <point x="582" y="-25"/>
+ <point x="668" y="-4"/>
+ <point x="760" y="55" type="curve"/>
+ </contour>
+ <contour>
+ <point x="30" y="850" type="line"/>
+ <point x="740" y="850" type="line"/>
+ <point x="740" y="995" type="line"/>
+ <point x="30" y="995" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mU_.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mU_.glif
new file mode 100644
index 0000000..39609ad
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mU_.glif
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmU" format="2">
+ <advance width="1185"/>
+ <unicode hex="0075"/>
+ <anchor x="589" y="0" name="H"/>
+ <anchor x="589" y="-100" name="L"/>
+ <anchor x="1192" y="0" name="O"/>
+ <anchor x="1185" y="1000" name="R"/>
+ <anchor x="589" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="1090" y="0" type="line"/>
+ <point x="1048" y="112"/>
+ <point x="1025" y="256"/>
+ <point x="1025" y="450" type="curve" smooth="yes"/>
+ <point x="1025" y="646"/>
+ <point x="1025" y="1020"/>
+ <point x="1025" y="1020" type="curve"/>
+ <point x="820" y="1020" type="line"/>
+ <point x="838" y="898"/>
+ <point x="840" y="832"/>
+ <point x="840" y="700" type="curve" smooth="yes"/>
+ <point x="840" y="420" type="line"/>
+ <point x="787" y="298"/>
+ <point x="628" y="140"/>
+ <point x="510" y="140" type="curve" smooth="yes"/>
+ <point x="383" y="140"/>
+ <point x="340" y="238"/>
+ <point x="340" y="465" type="curve" smooth="yes"/>
+ <point x="340" y="603"/>
+ <point x="340" y="1020"/>
+ <point x="340" y="1020" type="curve"/>
+ <point x="135" y="1020" type="line"/>
+ <point x="153" y="900"/>
+ <point x="155" y="827"/>
+ <point x="155" y="700" type="curve" smooth="yes"/>
+ <point x="155" y="681"/>
+ <point x="155" y="424"/>
+ <point x="155" y="405" type="curve" smooth="yes"/>
+ <point x="155" y="120"/>
+ <point x="262" y="-25"/>
+ <point x="475" y="-25" type="curve" smooth="yes"/>
+ <point x="615" y="-25"/>
+ <point x="744" y="53"/>
+ <point x="865" y="200" type="curve"/>
+ <point x="875" y="125"/>
+ <point x="901" y="46"/>
+ <point x="920" y="0" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mV_.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mV_.glif
new file mode 100644
index 0000000..3097f4b
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mV_.glif
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmV" format="2">
+ <advance width="1070"/>
+ <unicode hex="0076"/>
+ <anchor x="549" y="0" name="H"/>
+ <anchor x="535" y="-100" name="L"/>
+ <anchor x="725" y="0" name="O"/>
+ <anchor x="535" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="840" y="1020" type="line"/>
+ <point x="535" y="200" type="line"/>
+ <point x="230" y="1020" type="line"/>
+ <point x="20" y="1020" type="line"/>
+ <point x="75" y="905"/>
+ <point x="143" y="746"/>
+ <point x="175" y="665" type="curve" smooth="yes"/>
+ <point x="237" y="510"/>
+ <point x="440" y="0"/>
+ <point x="440" y="0" type="curve"/>
+ <point x="630" y="0" type="line"/>
+ <point x="630" y="0"/>
+ <point x="842" y="536"/>
+ <point x="895" y="665" type="curve" smooth="yes"/>
+ <point x="928" y="744"/>
+ <point x="993" y="905"/>
+ <point x="1050" y="1020" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mW_.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mW_.glif
new file mode 100644
index 0000000..3557415
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mW_.glif
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmW" format="2">
+ <advance width="1550"/>
+ <unicode hex="0077"/>
+ <anchor x="775" y="-100" name="L"/>
+ <anchor x="775" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="700" y="1020" type="line"/>
+ <point x="440" y="215" type="line"/>
+ <point x="230" y="1020" type="line"/>
+ <point x="45" y="1020" type="line"/>
+ <point x="92" y="867"/>
+ <point x="120" y="771"/>
+ <point x="150" y="665" type="curve" smooth="yes"/>
+ <point x="335" y="0" type="line"/>
+ <point x="525" y="0" type="line"/>
+ <point x="775" y="785" type="line"/>
+ <point x="1025" y="0" type="line"/>
+ <point x="1215" y="0" type="line"/>
+ <point x="1400" y="665" type="line" smooth="yes"/>
+ <point x="1434" y="785"/>
+ <point x="1458" y="868"/>
+ <point x="1505" y="1020" type="curve"/>
+ <point x="1320" y="1020" type="line"/>
+ <point x="1110" y="215" type="line"/>
+ <point x="850" y="1020" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mX_.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mX_.glif
new file mode 100644
index 0000000..883cba4
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mX_.glif
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmX" format="2">
+ <advance width="1085"/>
+ <unicode hex="0078"/>
+ <anchor x="900" y="0" name="H"/>
+ <anchor x="542" y="-100" name="L"/>
+ <anchor x="542" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="805" y="0" type="line"/>
+ <point x="1035" y="0" type="line"/>
+ <point x="927" y="142"/>
+ <point x="902" y="170"/>
+ <point x="830" y="270" type="curve" smooth="yes"/>
+ <point x="290" y="1020" type="line"/>
+ <point x="60" y="1020" type="line"/>
+ <point x="168" y="887"/>
+ <point x="203" y="843"/>
+ <point x="270" y="750" type="curve"/>
+ </contour>
+ <contour>
+ <point x="489" y="616" type="line"/>
+ <point x="250" y="270" type="line" smooth="yes"/>
+ <point x="189" y="182"/>
+ <point x="160" y="143"/>
+ <point x="50" y="0" type="curve"/>
+ <point x="275" y="0" type="line"/>
+ <point x="556" y="404" type="line"/>
+ </contour>
+ <contour>
+ <point x="585" y="405" type="line"/>
+ <point x="820" y="750" type="line" smooth="yes"/>
+ <point x="883" y="842"/>
+ <point x="917" y="886"/>
+ <point x="1020" y="1020" type="curve"/>
+ <point x="795" y="1020" type="line"/>
+ <point x="520" y="615" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mY_.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mY_.glif
new file mode 100644
index 0000000..cbe0f68
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/L_tnS_mY_.glif
@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmY" format="2">
+ <advance width="1060"/>
+ <unicode hex="0079"/>
+ <anchor x="795" y="-100" name="L"/>
+ <anchor x="1120" y="1000" name="R"/>
+ <anchor x="535" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="610" y="60" type="line"/>
+ <point x="230" y="1020" type="line"/>
+ <point x="30" y="1020" type="line"/>
+ <point x="107" y="864"/>
+ <point x="153" y="756"/>
+ <point x="190" y="665" type="curve" smooth="yes"/>
+ <point x="525" y="-165" type="line"/>
+ </contour>
+ <contour>
+ <point x="895" y="665" type="line"/>
+ <point x="928" y="758"/>
+ <point x="971" y="865"/>
+ <point x="1040" y="1020" type="curve"/>
+ <point x="840" y="1020" type="line"/>
+ <point x="840" y="1020"/>
+ <point x="564" y="230"/>
+ <point x="500" y="55" type="curve" smooth="yes"/>
+ <point x="391" y="-248"/>
+ <point x="315" y="-300"/>
+ <point x="225" y="-300" type="curve" smooth="yes"/>
+ <point x="159" y="-300"/>
+ <point x="82" y="-260"/>
+ <point x="40" y="-225" type="curve"/>
+ <point x="-20" y="-385" type="line"/>
+ <point x="53" y="-439"/>
+ <point x="134" y="-470"/>
+ <point x="225" y="-470" type="curve" smooth="yes"/>
+ <point x="395" y="-470"/>
+ <point x="516" y="-383"/>
+ <point x="655" y="0" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/N_onB_reakingH_yphen.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/N_onB_reakingH_yphen.glif
new file mode 100644
index 0000000..14aff81
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/N_onB_reakingH_yphen.glif
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="NonBreakingHyphen" format="2">
+ <advance width="860"/>
+ <unicode hex="2011"/>
+ <anchor x="430" y="1100" name="U"/>
+ <outline>
+ <component base="HyphenMinus"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/N_umS_gn.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/N_umS_gn.glif
new file mode 100644
index 0000000..f4625db
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/N_umS_gn.glif
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="NumSgn" format="2">
+ <advance width="1200"/>
+ <unicode hex="0023"/>
+ <outline>
+ <contour>
+ <point x="487" y="1460" type="line"/>
+ <point x="127" y="200" type="line"/>
+ <point x="277" y="200" type="line"/>
+ <point x="637" y="1460" type="line"/>
+ </contour>
+ <contour>
+ <point x="25" y="575" type="line"/>
+ <point x="1116" y="575" type="line"/>
+ <point x="1116" y="725" type="line"/>
+ <point x="25" y="725" type="line"/>
+ </contour>
+ <contour>
+ <point x="84" y="960" type="line"/>
+ <point x="1175" y="960" type="line"/>
+ <point x="1175" y="1110" type="line"/>
+ <point x="84" y="1110" type="line"/>
+ </contour>
+ <contour>
+ <point x="912" y="1460" type="line"/>
+ <point x="552" y="200" type="line"/>
+ <point x="702" y="200" type="line"/>
+ <point x="1062" y="1460" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/P_ercentS_gn.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/P_ercentS_gn.glif
new file mode 100644
index 0000000..e81f237
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/P_ercentS_gn.glif
@@ -0,0 +1,69 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="PercentSgn" format="2">
+ <advance width="1526"/>
+ <unicode hex="0025"/>
+ <outline>
+ <contour>
+ <point x="1261" y="366" type="curve" smooth="yes"/>
+ <point x="1261" y="182"/>
+ <point x="1216" y="115"/>
+ <point x="1130" y="115" type="curve" smooth="yes"/>
+ <point x="1041" y="115"/>
+ <point x="1001" y="181"/>
+ <point x="1001" y="381" type="curve" smooth="yes"/>
+ <point x="1001" y="565"/>
+ <point x="1043" y="630"/>
+ <point x="1130" y="630" type="curve" smooth="yes"/>
+ <point x="1221" y="630"/>
+ <point x="1261" y="566"/>
+ </contour>
+ <contour>
+ <point x="1426" y="379" type="curve" smooth="yes"/>
+ <point x="1426" y="652"/>
+ <point x="1310" y="770"/>
+ <point x="1135" y="770" type="curve" smooth="yes"/>
+ <point x="961" y="770"/>
+ <point x="836" y="650"/>
+ <point x="836" y="368" type="curve" smooth="yes"/>
+ <point x="836" y="86"/>
+ <point x="951" y="-25"/>
+ <point x="1126" y="-25" type="curve" smooth="yes"/>
+ <point x="1301" y="-25"/>
+ <point x="1426" y="84"/>
+ </contour>
+ <contour>
+ <point x="1073" y="1480" type="line"/>
+ <point x="291" y="-25" type="line"/>
+ <point x="459" y="-25" type="line"/>
+ <point x="1239" y="1480" type="line"/>
+ </contour>
+ <contour>
+ <point x="525" y="1076" type="curve" smooth="yes"/>
+ <point x="525" y="892"/>
+ <point x="480" y="825"/>
+ <point x="394" y="825" type="curve" smooth="yes"/>
+ <point x="305" y="825"/>
+ <point x="265" y="891"/>
+ <point x="265" y="1091" type="curve" smooth="yes"/>
+ <point x="265" y="1275"/>
+ <point x="307" y="1340"/>
+ <point x="394" y="1340" type="curve" smooth="yes"/>
+ <point x="485" y="1340"/>
+ <point x="525" y="1276"/>
+ </contour>
+ <contour>
+ <point x="690" y="1089" type="curve" smooth="yes"/>
+ <point x="690" y="1362"/>
+ <point x="574" y="1480"/>
+ <point x="399" y="1480" type="curve" smooth="yes"/>
+ <point x="225" y="1480"/>
+ <point x="100" y="1360"/>
+ <point x="100" y="1078" type="curve" smooth="yes"/>
+ <point x="100" y="796"/>
+ <point x="215" y="685"/>
+ <point x="390" y="685" type="curve" smooth="yes"/>
+ <point x="565" y="685"/>
+ <point x="690" y="794"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/P_lusS_gn.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/P_lusS_gn.glif
new file mode 100644
index 0000000..de1f259
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/P_lusS_gn.glif
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="PlusSgn" format="2">
+ <advance width="1200"/>
+ <unicode hex="002B"/>
+ <outline>
+ <contour>
+ <point x="525" y="1180" type="line"/>
+ <point x="525" y="285" type="line"/>
+ <point x="675" y="285" type="line"/>
+ <point x="675" y="1180" type="line"/>
+ </contour>
+ <contour>
+ <point x="155" y="660" type="line"/>
+ <point x="1045" y="660" type="line"/>
+ <point x="1045" y="810" type="line"/>
+ <point x="155" y="810" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/Q_stnM_rk.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/Q_stnM_rk.glif
new file mode 100644
index 0000000..5526aec
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/Q_stnM_rk.glif
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="QstnMrk" format="2">
+ <advance width="1050"/>
+ <unicode hex="003F"/>
+ <outline>
+ <contour>
+ <point x="460" y="1540" type="curve" smooth="yes"/>
+ <point x="335" y="1540"/>
+ <point x="206" y="1493"/>
+ <point x="140" y="1430" type="curve"/>
+ <point x="185" y="1251" type="line"/>
+ <point x="261" y="1330"/>
+ <point x="352" y="1365"/>
+ <point x="432" y="1365" type="curve" smooth="yes"/>
+ <point x="579" y="1365"/>
+ <point x="625" y="1289"/>
+ <point x="625" y="1230" type="curve" smooth="yes"/>
+ <point x="625" y="1159"/>
+ <point x="572" y="1092"/>
+ <point x="485" y="980" type="curve" smooth="yes"/>
+ <point x="397" y="867"/>
+ <point x="355" y="730"/>
+ <point x="355" y="440" type="curve"/>
+ <point x="540" y="440" type="line"/>
+ <point x="540" y="721"/>
+ <point x="561" y="806"/>
+ <point x="665" y="927" type="curve" smooth="yes"/>
+ <point x="753" y="1028"/>
+ <point x="830" y="1117"/>
+ <point x="830" y="1240" type="curve" smooth="yes"/>
+ <point x="830" y="1422"/>
+ <point x="697" y="1540"/>
+ </contour>
+ <contour>
+ <point x="315" y="110" type="curve" smooth="yes"/>
+ <point x="315" y="36"/>
+ <point x="376" y="-25"/>
+ <point x="450" y="-25" type="curve" smooth="yes"/>
+ <point x="524" y="-25"/>
+ <point x="585" y="36"/>
+ <point x="585" y="110" type="curve" smooth="yes"/>
+ <point x="585" y="184"/>
+ <point x="524" y="245"/>
+ <point x="450" y="245" type="curve" smooth="yes"/>
+ <point x="376" y="245"/>
+ <point x="315" y="184"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/Q_uotM_rk.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/Q_uotM_rk.glif
new file mode 100644
index 0000000..c9f06c6
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/Q_uotM_rk.glif
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="QuotMrk" format="2">
+ <advance width="1025"/>
+ <unicode hex="0022"/>
+ <outline>
+ <contour>
+ <point x="405" y="1045" type="line"/>
+ <point x="410" y="1186"/>
+ <point x="416" y="1339"/>
+ <point x="445" y="1585" type="curve"/>
+ <point x="240" y="1585" type="line"/>
+ <point x="271" y="1339"/>
+ <point x="276" y="1186"/>
+ <point x="280" y="1045" type="curve"/>
+ </contour>
+ <contour>
+ <point x="745" y="1045" type="line"/>
+ <point x="750" y="1186"/>
+ <point x="756" y="1339"/>
+ <point x="785" y="1585" type="curve"/>
+ <point x="580" y="1585" type="line"/>
+ <point x="611" y="1339"/>
+ <point x="616" y="1186"/>
+ <point x="620" y="1045" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/R_everseS_olidus.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/R_everseS_olidus.glif
new file mode 100644
index 0000000..d145f26
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/R_everseS_olidus.glif
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="ReverseSolidus" format="2">
+ <advance width="1000"/>
+ <unicode hex="005C"/>
+ <outline>
+ <contour>
+ <point x="990" y="-245" type="line"/>
+ <point x="160" y="1600" type="line"/>
+ <point x="10" y="1600" type="line"/>
+ <point x="840" y="-245" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/R_tC_urlyB_rac.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/R_tC_urlyB_rac.glif
new file mode 100644
index 0000000..288a75a
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/R_tC_urlyB_rac.glif
@@ -0,0 +1,47 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="RtCurlyBrac" format="2">
+ <advance width="1000"/>
+ <unicode hex="007D"/>
+ <outline>
+ <contour>
+ <point x="790" y="615" type="curve" smooth="yes"/>
+ <point x="790" y="647"/>
+ <point x="617" y="744"/>
+ <point x="590" y="780" type="curve" smooth="yes"/>
+ <point x="566" y="812"/>
+ <point x="576" y="1435"/>
+ <point x="505" y="1515" type="curve" smooth="yes"/>
+ <point x="465" y="1560"/>
+ <point x="304" y="1613"/>
+ <point x="200" y="1640" type="curve"/>
+ <point x="160" y="1500" type="line"/>
+ <point x="227" y="1477"/>
+ <point x="350" y="1428"/>
+ <point x="370" y="1400" type="curve" smooth="yes"/>
+ <point x="403" y="1353"/>
+ <point x="390" y="783"/>
+ <point x="410" y="745" type="curve" smooth="yes"/>
+ <point x="429" y="709"/>
+ <point x="566" y="637"/>
+ <point x="570" y="615" type="curve"/>
+ <point x="566" y="593"/>
+ <point x="429" y="521"/>
+ <point x="410" y="485" type="curve" smooth="yes"/>
+ <point x="390" y="447"/>
+ <point x="403" y="-123"/>
+ <point x="370" y="-170" type="curve" smooth="yes"/>
+ <point x="350" y="-198"/>
+ <point x="227" y="-247"/>
+ <point x="160" y="-270" type="curve"/>
+ <point x="200" y="-410" type="line"/>
+ <point x="304" y="-383"/>
+ <point x="465" y="-330"/>
+ <point x="505" y="-285" type="curve" smooth="yes"/>
+ <point x="576" y="-205"/>
+ <point x="566" y="418"/>
+ <point x="590" y="450" type="curve" smooth="yes"/>
+ <point x="617" y="486"/>
+ <point x="790" y="583"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/R_tP_aren.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/R_tP_aren.glif
new file mode 100644
index 0000000..3983f6b
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/R_tP_aren.glif
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="RtParen" format="2">
+ <advance width="795"/>
+ <unicode hex="0029"/>
+ <outline>
+ <contour>
+ <point x="680" y="625" type="curve" smooth="yes"/>
+ <point x="680" y="1062"/>
+ <point x="505" y="1444"/>
+ <point x="240" y="1640" type="curve"/>
+ <point x="165" y="1485" type="line"/>
+ <point x="390" y="1280"/>
+ <point x="490" y="962"/>
+ <point x="490" y="625" type="curve" smooth="yes"/>
+ <point x="490" y="278"/>
+ <point x="390" y="-8"/>
+ <point x="165" y="-265" type="curve"/>
+ <point x="260" y="-410" type="line"/>
+ <point x="535" y="-125"/>
+ <point x="680" y="218"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/R_tS_qrB_rac.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/R_tS_qrB_rac.glif
new file mode 100644
index 0000000..702689b
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/R_tS_qrB_rac.glif
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="RtSqrBrac" format="2">
+ <advance width="790"/>
+ <unicode hex="005D"/>
+ <outline>
+ <contour>
+ <point x="590" y="-410" type="line"/>
+ <point x="590" y="1600" type="line"/>
+ <point x="150" y="1600" type="line"/>
+ <point x="150" y="1450" type="line"/>
+ <point x="405" y="1450" type="line"/>
+ <point x="405" y="-260" type="line"/>
+ <point x="150" y="-260" type="line"/>
+ <point x="150" y="-410" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/S_emicolon.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/S_emicolon.glif
new file mode 100644
index 0000000..247bed0
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/S_emicolon.glif
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Semicolon" format="2">
+ <advance width="650"/>
+ <unicode hex="003B"/>
+ <outline>
+ <contour>
+ <point x="185" y="790" type="curve" smooth="yes"/>
+ <point x="185" y="716"/>
+ <point x="246" y="655"/>
+ <point x="320" y="655" type="curve" smooth="yes"/>
+ <point x="394" y="655"/>
+ <point x="455" y="716"/>
+ <point x="455" y="790" type="curve" smooth="yes"/>
+ <point x="455" y="864"/>
+ <point x="394" y="925"/>
+ <point x="320" y="925" type="curve" smooth="yes"/>
+ <point x="246" y="925"/>
+ <point x="185" y="864"/>
+ </contour>
+ <contour>
+ <point x="185" y="50" type="line"/>
+ <point x="325" y="50" type="line"/>
+ <point x="325" y="-51"/>
+ <point x="248" y="-172"/>
+ <point x="190" y="-230" type="curve"/>
+ <point x="290" y="-270" type="line"/>
+ <point x="407" y="-160"/>
+ <point x="465" y="-37"/>
+ <point x="465" y="85" type="curve" smooth="yes"/>
+ <point x="465" y="186"/>
+ <point x="400" y="250"/>
+ <point x="320" y="250" type="curve" smooth="yes"/>
+ <point x="263" y="250"/>
+ <point x="198" y="213"/>
+ <point x="185" y="150" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/S_olidus.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/S_olidus.glif
new file mode 100644
index 0000000..3edff5d
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/S_olidus.glif
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Solidus" format="2">
+ <advance width="1000"/>
+ <unicode hex="002F"/>
+ <outline>
+ <contour>
+ <point x="840" y="1600" type="line"/>
+ <point x="10" y="-245" type="line"/>
+ <point x="160" y="-245" type="line"/>
+ <point x="990" y="1600" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/S_pace.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/S_pace.glif
new file mode 100644
index 0000000..ef0bed7
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/S_pace.glif
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Space" format="2">
+ <advance width="550"/>
+ <unicode hex="0020"/>
+ <outline/>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/T_ilde.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/T_ilde.glif
new file mode 100644
index 0000000..60ddaa7
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/T_ilde.glif
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Tilde" format="2">
+ <advance width="1115"/>
+ <unicode hex="007E"/>
+ <outline>
+ <contour>
+ <point x="125" y="375" type="line"/>
+ <point x="130" y="424"/>
+ <point x="162" y="465"/>
+ <point x="240" y="465" type="curve" smooth="yes"/>
+ <point x="415" y="465"/>
+ <point x="615" y="360"/>
+ <point x="845" y="360" type="curve" smooth="yes"/>
+ <point x="1004" y="360"/>
+ <point x="1080" y="482"/>
+ <point x="1080" y="610" type="curve"/>
+ <point x="975" y="610" type="line"/>
+ <point x="968" y="564"/>
+ <point x="938" y="510"/>
+ <point x="855" y="510" type="curve" smooth="yes"/>
+ <point x="619" y="510"/>
+ <point x="461" y="615"/>
+ <point x="240" y="615" type="curve" smooth="yes"/>
+ <point x="94" y="615"/>
+ <point x="20" y="497"/>
+ <point x="20" y="375" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/V_ertL_ine.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/V_ertL_ine.glif
new file mode 100644
index 0000000..c73e040
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/V_ertL_ine.glif
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="VertLine" format="2">
+ <advance width="690"/>
+ <unicode hex="007C"/>
+ <outline>
+ <contour>
+ <point x="270" y="1600" type="line"/>
+ <point x="270" y="-390" type="line"/>
+ <point x="420" y="-390" type="line"/>
+ <point x="420" y="1600" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/_notdef.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/_notdef.glif
new file mode 100644
index 0000000..a3e9354
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/_notdef.glif
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name=".notdef" format="2">
+ <advance width="1400"/>
+ <outline>
+ <contour>
+ <point x="100" y="0" type="line"/>
+ <point x="1300" y="0" type="line"/>
+ <point x="1300" y="1800" type="line"/>
+ <point x="100" y="1800" type="line"/>
+ </contour>
+ <contour>
+ <point x="150" y="1750" type="line"/>
+ <point x="1250" y="1750" type="line"/>
+ <point x="1250" y="50" type="line"/>
+ <point x="150" y="50" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/_null.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/_null.glif
new file mode 100644
index 0000000..0b9caa6
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/_null.glif
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name=".null" format="2">
+ <outline/>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/contents.plist b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/contents.plist
new file mode 100644
index 0000000..6b6e31f
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/contents.plist
@@ -0,0 +1,256 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>.notdef</key>
+ <string>_notdef.glif</string>
+ <key>.null</key>
+ <string>_null.glif</string>
+ <key>Ampersand</key>
+ <string>A_mpersand.glif</string>
+ <key>Apos</key>
+ <string>A_pos.glif</string>
+ <key>Asterisk</key>
+ <string>A_sterisk.glif</string>
+ <key>AtSgn</key>
+ <string>A_tS_gn.glif</string>
+ <key>CircumAccent</key>
+ <string>C_ircumA_ccent.glif</string>
+ <key>Colon</key>
+ <string>C_olon.glif</string>
+ <key>CombAcute</key>
+ <string>C_ombA_cute.glif</string>
+ <key>CombCircum</key>
+ <string>C_ombC_ircum.glif</string>
+ <key>CombDiaer</key>
+ <string>C_ombD_iaer.glif</string>
+ <key>CombGrave</key>
+ <string>C_ombG_rave.glif</string>
+ <key>CombRingAbv</key>
+ <string>C_ombR_ingA_bv.glif</string>
+ <key>CombTilde</key>
+ <string>C_ombT_ilde.glif</string>
+ <key>Comma</key>
+ <string>C_omma.glif</string>
+ <key>DigitEight</key>
+ <string>D_igitE_ight.glif</string>
+ <key>DigitFive</key>
+ <string>D_igitF_ive.glif</string>
+ <key>DigitFour</key>
+ <string>D_igitF_our.glif</string>
+ <key>DigitNine</key>
+ <string>D_igitN_ine.glif</string>
+ <key>DigitOne</key>
+ <string>D_igitO_ne.glif</string>
+ <key>DigitSeven</key>
+ <string>D_igitS_even.glif</string>
+ <key>DigitSix</key>
+ <string>D_igitS_ix.glif</string>
+ <key>DigitThree</key>
+ <string>D_igitT_hree.glif</string>
+ <key>DigitTwo</key>
+ <string>D_igitT_wo.glif</string>
+ <key>DigitZero</key>
+ <string>D_igitZ_ero.glif</string>
+ <key>DollarSgn</key>
+ <string>D_ollarS_gn.glif</string>
+ <key>DottedCirc</key>
+ <string>D_ottedC_irc.glif</string>
+ <key>EqSgn</key>
+ <string>E_qS_gn.glif</string>
+ <key>ExclamationMrk</key>
+ <string>E_xclamationM_rk.glif</string>
+ <key>FullStop</key>
+ <string>F_ullS_top.glif</string>
+ <key>GTSgn</key>
+ <string>G_T_S_gn.glif</string>
+ <key>GraveAccent</key>
+ <string>G_raveA_ccent.glif</string>
+ <key>Hyphen</key>
+ <string>H_yphen.glif</string>
+ <key>HyphenMinus</key>
+ <string>H_yphenM_inus.glif</string>
+ <key>Hyphen_Soft</key>
+ <string>H_yphen_S_oft.glif</string>
+ <key>LTSgn</key>
+ <string>L_T_S_gn.glif</string>
+ <key>LftCurlyBrac</key>
+ <string>L_ftC_urlyB_rac.glif</string>
+ <key>LftParen</key>
+ <string>L_ftP_aren.glif</string>
+ <key>LftSqrBrac</key>
+ <string>L_ftS_qrB_rac.glif</string>
+ <key>LowLine</key>
+ <string>L_owL_ine.glif</string>
+ <key>LtnCapA</key>
+ <string>L_tnC_apA_.glif</string>
+ <key>LtnCapA.alt</key>
+ <string>L_tnC_apA_.alt.glif</string>
+ <key>LtnCapADiaer</key>
+ <string>L_tnC_apA_D_iaer.glif</string>
+ <key>LtnCapB</key>
+ <string>L_tnC_apB_.glif</string>
+ <key>LtnCapC</key>
+ <string>L_tnC_apC_.glif</string>
+ <key>LtnCapCAcute</key>
+ <string>L_tnC_apC_A_cute.glif</string>
+ <key>LtnCapCAcuteCedilla</key>
+ <string>L_tnC_apC_A_cuteC_edilla.glif</string>
+ <key>LtnCapCCircum</key>
+ <string>L_tnC_apC_C_ircum.glif</string>
+ <key>LtnCapD</key>
+ <string>L_tnC_apD_.glif</string>
+ <key>LtnCapE</key>
+ <string>L_tnC_apE_.glif</string>
+ <key>LtnCapF</key>
+ <string>L_tnC_apF_.glif</string>
+ <key>LtnCapG</key>
+ <string>L_tnC_apG_.glif</string>
+ <key>LtnCapH</key>
+ <string>L_tnC_apH_.glif</string>
+ <key>LtnCapI</key>
+ <string>L_tnC_apI_.glif</string>
+ <key>LtnCapIJ</key>
+ <string>L_tnC_apI_J_.glif</string>
+ <key>LtnCapJ</key>
+ <string>L_tnC_apJ_.glif</string>
+ <key>LtnCapK</key>
+ <string>L_tnC_apK_.glif</string>
+ <key>LtnCapL</key>
+ <string>L_tnC_apL_.glif</string>
+ <key>LtnCapM</key>
+ <string>L_tnC_apM_.glif</string>
+ <key>LtnCapN</key>
+ <string>L_tnC_apN_.glif</string>
+ <key>LtnCapO</key>
+ <string>L_tnC_apO_.glif</string>
+ <key>LtnCapP</key>
+ <string>L_tnC_apP_.glif</string>
+ <key>LtnCapQ</key>
+ <string>L_tnC_apQ_.glif</string>
+ <key>LtnCapR</key>
+ <string>L_tnC_apR_.glif</string>
+ <key>LtnCapS</key>
+ <string>L_tnC_apS_.glif</string>
+ <key>LtnCapT</key>
+ <string>L_tnC_apT_.glif</string>
+ <key>LtnCapU</key>
+ <string>L_tnC_apU_.glif</string>
+ <key>LtnCapV</key>
+ <string>L_tnC_apV_.glif</string>
+ <key>LtnCapW</key>
+ <string>L_tnC_apW_.glif</string>
+ <key>LtnCapX</key>
+ <string>L_tnC_apX_.glif</string>
+ <key>LtnCapY</key>
+ <string>L_tnC_apY_.glif</string>
+ <key>LtnSmA</key>
+ <string>L_tnS_mA_.glif</string>
+ <key>LtnSmAAcute</key>
+ <string>L_tnS_mA_A_cute.glif</string>
+ <key>LtnSmACircum</key>
+ <string>L_tnS_mA_C_ircum.glif</string>
+ <key>LtnSmADiaer</key>
+ <string>L_tnS_mA_D_iaer.glif</string>
+ <key>LtnSmAGrave</key>
+ <string>L_tnS_mA_G_rave.glif</string>
+ <key>LtnSmARingAbv</key>
+ <string>L_tnS_mA_R_ingA_bv.glif</string>
+ <key>LtnSmATilde</key>
+ <string>L_tnS_mA_T_ilde.glif</string>
+ <key>LtnSmB</key>
+ <string>L_tnS_mB_.glif</string>
+ <key>LtnSmC</key>
+ <string>L_tnS_mC_.glif</string>
+ <key>LtnSmCAcute</key>
+ <string>L_tnS_mC_A_cute.glif</string>
+ <key>LtnSmCAcuteCedilla</key>
+ <string>L_tnS_mC_A_cuteC_edilla.glif</string>
+ <key>LtnSmCCircum</key>
+ <string>L_tnS_mC_C_ircum.glif</string>
+ <key>LtnSmD</key>
+ <string>L_tnS_mD_.glif</string>
+ <key>LtnSmE</key>
+ <string>L_tnS_mE_.glif</string>
+ <key>LtnSmF</key>
+ <string>L_tnS_mF_.glif</string>
+ <key>LtnSmG</key>
+ <string>L_tnS_mG_.glif</string>
+ <key>LtnSmH</key>
+ <string>L_tnS_mH_.glif</string>
+ <key>LtnSmI</key>
+ <string>L_tnS_mI_.glif</string>
+ <key>LtnSmIJ</key>
+ <string>L_tnS_mI_J_.glif</string>
+ <key>LtnSmITilde</key>
+ <string>L_tnS_mI_T_ilde.glif</string>
+ <key>LtnSmITildeGrave</key>
+ <string>L_tnS_mI_T_ildeG_rave.glif</string>
+ <key>LtnSmITildeGraveCedilla</key>
+ <string>L_tnS_mI_T_ildeG_raveC_edilla.glif</string>
+ <key>LtnSmJ</key>
+ <string>L_tnS_mJ_.glif</string>
+ <key>LtnSmK</key>
+ <string>L_tnS_mK_.glif</string>
+ <key>LtnSmL</key>
+ <string>L_tnS_mL_.glif</string>
+ <key>LtnSmM</key>
+ <string>L_tnS_mM_.glif</string>
+ <key>LtnSmN</key>
+ <string>L_tnS_mN_.glif</string>
+ <key>LtnSmO</key>
+ <string>L_tnS_mO_.glif</string>
+ <key>LtnSmP</key>
+ <string>L_tnS_mP_.glif</string>
+ <key>LtnSmQ</key>
+ <string>L_tnS_mQ_.glif</string>
+ <key>LtnSmR</key>
+ <string>L_tnS_mR_.glif</string>
+ <key>LtnSmS</key>
+ <string>L_tnS_mS_.glif</string>
+ <key>LtnSmT</key>
+ <string>L_tnS_mT_.glif</string>
+ <key>LtnSmU</key>
+ <string>L_tnS_mU_.glif</string>
+ <key>LtnSmV</key>
+ <string>L_tnS_mV_.glif</string>
+ <key>LtnSmW</key>
+ <string>L_tnS_mW_.glif</string>
+ <key>LtnSmX</key>
+ <string>L_tnS_mX_.glif</string>
+ <key>LtnSmY</key>
+ <string>L_tnS_mY_.glif</string>
+ <key>NonBreakingHyphen</key>
+ <string>N_onB_reakingH_yphen.glif</string>
+ <key>NumSgn</key>
+ <string>N_umS_gn.glif</string>
+ <key>PercentSgn</key>
+ <string>P_ercentS_gn.glif</string>
+ <key>PlusSgn</key>
+ <string>P_lusS_gn.glif</string>
+ <key>QstnMrk</key>
+ <string>Q_stnM_rk.glif</string>
+ <key>QuotMrk</key>
+ <string>Q_uotM_rk.glif</string>
+ <key>ReverseSolidus</key>
+ <string>R_everseS_olidus.glif</string>
+ <key>RtCurlyBrac</key>
+ <string>R_tC_urlyB_rac.glif</string>
+ <key>RtParen</key>
+ <string>R_tP_aren.glif</string>
+ <key>RtSqrBrac</key>
+ <string>R_tS_qrB_rac.glif</string>
+ <key>Semicolon</key>
+ <string>S_emicolon.glif</string>
+ <key>Solidus</key>
+ <string>S_olidus.glif</string>
+ <key>Space</key>
+ <string>S_pace.glif</string>
+ <key>Tilde</key>
+ <string>T_ilde.glif</string>
+ <key>VertLine</key>
+ <string>V_ertL_ine.glif</string>
+ <key>nonmarkingreturn</key>
+ <string>nonmarkingreturn.glif</string>
+</dict>
+</plist>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/glyphs/nonmarkingreturn.glif b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/nonmarkingreturn.glif
new file mode 100644
index 0000000..ee41448
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/glyphs/nonmarkingreturn.glif
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="nonmarkingreturn" format="2">
+ <advance width="1024"/>
+ <outline/>
+</glyph>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/layercontents.plist b/tests/reference/ufo/psfbuildcomp.ufo/layercontents.plist
new file mode 100644
index 0000000..42b7482
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/layercontents.plist
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<array>
+ <array>
+ <string>public.default</string>
+ <string>glyphs</string>
+ </array>
+</array>
+</plist>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/lib.plist b/tests/reference/ufo/psfbuildcomp.ufo/lib.plist
new file mode 100644
index 0000000..8b95204
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/lib.plist
@@ -0,0 +1,536 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>com.schriftgestaltung.Glyphs.fontUserData</key>
+ <dict/>
+ <key>com.schriftgestaltung.appVersion</key>
+ <string>1161</string>
+ <key>com.schriftgestaltung.customParameter.GSFont.DisplayStrings</key>
+ <string/>
+ <key>com.schriftgestaltung.customParameter.GSFont.disablesAutomaticAlignment</key>
+ <true/>
+ <key>com.schriftgestaltung.customParameter.GSFont.disablesLastChange</key>
+ <true/>
+ <key>com.schriftgestaltung.customParameter.GSFont.useNiceNames</key>
+ <integer>0</integer>
+ <key>com.schriftgestaltung.customParameter.GSFontMaster.customValue</key>
+ <integer>0</integer>
+ <key>com.schriftgestaltung.customParameter.GSFontMaster.customValue1</key>
+ <integer>0</integer>
+ <key>com.schriftgestaltung.customParameter.GSFontMaster.customValue2</key>
+ <integer>0</integer>
+ <key>com.schriftgestaltung.customParameter.GSFontMaster.customValue3</key>
+ <integer>0</integer>
+ <key>com.schriftgestaltung.customParameter.GSFontMaster.iconName</key>
+ <string/>
+ <key>com.schriftgestaltung.customParameter.GSFontMaster.weightValue</key>
+ <integer>400</integer>
+ <key>com.schriftgestaltung.customParameter.GSFontMaster.widthValue</key>
+ <integer>100</integer>
+ <key>com.schriftgestaltung.disablesAutomaticAlignment</key>
+ <true/>
+ <key>com.schriftgestaltung.disablesLastChange</key>
+ <true/>
+ <key>com.schriftgestaltung.fontMasterOrder</key>
+ <integer>0</integer>
+ <key>com.schriftgestaltung.glyphOrder</key>
+ <array>
+ <string>.notdef</string>
+ <string>.null</string>
+ <string>nonmarkingreturn</string>
+ <string>Space</string>
+ <string>ExclamationMrk</string>
+ <string>QuotMrk</string>
+ <string>NumSgn</string>
+ <string>DollarSgn</string>
+ <string>PercentSgn</string>
+ <string>Ampersand</string>
+ <string>Apos</string>
+ <string>LftParen</string>
+ <string>RtParen</string>
+ <string>Asterisk</string>
+ <string>PlusSgn</string>
+ <string>Comma</string>
+ <string>HyphenMinus</string>
+ <string>FullStop</string>
+ <string>Solidus</string>
+ <string>DigitZero</string>
+ <string>DigitOne</string>
+ <string>DigitTwo</string>
+ <string>DigitThree</string>
+ <string>DigitFour</string>
+ <string>DigitFive</string>
+ <string>DigitSix</string>
+ <string>DigitSeven</string>
+ <string>DigitEight</string>
+ <string>DigitNine</string>
+ <string>Colon</string>
+ <string>Semicolon</string>
+ <string>LTSgn</string>
+ <string>EqSgn</string>
+ <string>GTSgn</string>
+ <string>QstnMrk</string>
+ <string>AtSgn</string>
+ <string>LtnCapA</string>
+ <string>LtnCapA.alt</string>
+ <string>LtnCapB</string>
+ <string>LtnCapC</string>
+ <string>LtnCapD</string>
+ <string>LtnCapE</string>
+ <string>LtnCapF</string>
+ <string>LtnCapG</string>
+ <string>LtnCapH</string>
+ <string>LtnCapI</string>
+ <string>LtnCapJ</string>
+ <string>LtnCapK</string>
+ <string>LtnCapL</string>
+ <string>LtnCapM</string>
+ <string>LtnCapN</string>
+ <string>LtnCapO</string>
+ <string>LtnCapP</string>
+ <string>LtnCapQ</string>
+ <string>LtnCapR</string>
+ <string>LtnCapS</string>
+ <string>LtnCapT</string>
+ <string>LtnCapU</string>
+ <string>LtnCapV</string>
+ <string>LtnCapW</string>
+ <string>LtnCapX</string>
+ <string>LtnCapY</string>
+ <string>LftSqrBrac</string>
+ <string>ReverseSolidus</string>
+ <string>RtSqrBrac</string>
+ <string>CircumAccent</string>
+ <string>LowLine</string>
+ <string>GraveAccent</string>
+ <string>LtnSmA</string>
+ <string>LtnSmB</string>
+ <string>LtnSmC</string>
+ <string>LtnSmD</string>
+ <string>LtnSmE</string>
+ <string>LtnSmF</string>
+ <string>LtnSmG</string>
+ <string>LtnSmH</string>
+ <string>LtnSmI</string>
+ <string>LtnSmJ</string>
+ <string>LtnSmK</string>
+ <string>LtnSmL</string>
+ <string>LtnSmM</string>
+ <string>LtnSmN</string>
+ <string>LtnSmO</string>
+ <string>LtnSmP</string>
+ <string>LtnSmQ</string>
+ <string>LtnSmR</string>
+ <string>LtnSmS</string>
+ <string>LtnSmT</string>
+ <string>LtnSmU</string>
+ <string>LtnSmV</string>
+ <string>LtnSmW</string>
+ <string>LtnSmX</string>
+ <string>LtnSmY</string>
+ <string>LftCurlyBrac</string>
+ <string>VertLine</string>
+ <string>RtCurlyBrac</string>
+ <string>Tilde</string>
+ <string>LtnCapADiaer</string>
+ <string>LtnSmAAcute</string>
+ <string>LtnSmAGrave</string>
+ <string>LtnSmACircum</string>
+ <string>LtnSmADiaer</string>
+ <string>LtnSmATilde</string>
+ <string>LtnSmARingAbv</string>
+ <string>DottedCirc</string>
+ <string>Hyphen</string>
+ <string>NonBreakingHyphen</string>
+ <string>Hyphen_Soft</string>
+ <string>CombAcute</string>
+ <string>CombGrave</string>
+ <string>CombCircum</string>
+ <string>CombTilde</string>
+ <string>CombDiaer</string>
+ <string>CombRingAbv</string>
+ </array>
+ <key>com.schriftgestaltung.keyboardIncrement</key>
+ <integer>1</integer>
+ <key>com.schriftgestaltung.weight</key>
+ <string>Regular</string>
+ <key>com.schriftgestaltung.weightValue</key>
+ <integer>400</integer>
+ <key>com.schriftgestaltung.width</key>
+ <string>Regular</string>
+ <key>com.schriftgestaltung.widthValue</key>
+ <integer>100</integer>
+ <key>org.sil.lcg.toneLetters</key>
+ <dict>
+ <key>contourWidth</key>
+ <integer>480</integer>
+ <key>dotSize</key>
+ <integer>180</integer>
+ <key>dotSpacing</key>
+ <integer>200</integer>
+ <key>glyphDepth</key>
+ <integer>-25</integer>
+ <key>glyphHeight</key>
+ <integer>1600</integer>
+ <key>italicAngle</key>
+ <integer>0</integer>
+ <key>marginDotLeft</key>
+ <integer>120</integer>
+ <key>marginDotRight</key>
+ <integer>160</integer>
+ <key>marginFlatLeft</key>
+ <integer>120</integer>
+ <key>marginFlatRight</key>
+ <integer>160</integer>
+ <key>marginPointLeft</key>
+ <integer>100</integer>
+ <key>marginPointRight</key>
+ <integer>140</integer>
+ <key>strokeThickness</key>
+ <integer>120</integer>
+ </dict>
+ <key>public.glyphOrder</key>
+ <array>
+ <string>.notdef</string>
+ <string>.null</string>
+ <string>nonmarkingreturn</string>
+ <string>Space</string>
+ <string>ExclamationMrk</string>
+ <string>QuotMrk</string>
+ <string>NumSgn</string>
+ <string>DollarSgn</string>
+ <string>PercentSgn</string>
+ <string>Ampersand</string>
+ <string>Apos</string>
+ <string>LftParen</string>
+ <string>RtParen</string>
+ <string>Asterisk</string>
+ <string>PlusSgn</string>
+ <string>Comma</string>
+ <string>HyphenMinus</string>
+ <string>FullStop</string>
+ <string>Solidus</string>
+ <string>DigitZero</string>
+ <string>DigitOne</string>
+ <string>DigitTwo</string>
+ <string>DigitThree</string>
+ <string>DigitFour</string>
+ <string>DigitFive</string>
+ <string>DigitSix</string>
+ <string>DigitSeven</string>
+ <string>DigitEight</string>
+ <string>DigitNine</string>
+ <string>Colon</string>
+ <string>Semicolon</string>
+ <string>LTSgn</string>
+ <string>EqSgn</string>
+ <string>GTSgn</string>
+ <string>QstnMrk</string>
+ <string>AtSgn</string>
+ <string>LtnCapA</string>
+ <string>LtnCapA.alt</string>
+ <string>LtnCapB</string>
+ <string>LtnCapC</string>
+ <string>LtnCapD</string>
+ <string>LtnCapE</string>
+ <string>LtnCapF</string>
+ <string>LtnCapG</string>
+ <string>LtnCapH</string>
+ <string>LtnCapI</string>
+ <string>LtnCapJ</string>
+ <string>LtnCapK</string>
+ <string>LtnCapL</string>
+ <string>LtnCapM</string>
+ <string>LtnCapN</string>
+ <string>LtnCapO</string>
+ <string>LtnCapP</string>
+ <string>LtnCapQ</string>
+ <string>LtnCapR</string>
+ <string>LtnCapS</string>
+ <string>LtnCapT</string>
+ <string>LtnCapU</string>
+ <string>LtnCapV</string>
+ <string>LtnCapW</string>
+ <string>LtnCapX</string>
+ <string>LtnCapY</string>
+ <string>LftSqrBrac</string>
+ <string>ReverseSolidus</string>
+ <string>RtSqrBrac</string>
+ <string>CircumAccent</string>
+ <string>LowLine</string>
+ <string>GraveAccent</string>
+ <string>LtnSmA</string>
+ <string>LtnSmB</string>
+ <string>LtnSmC</string>
+ <string>LtnSmD</string>
+ <string>LtnSmE</string>
+ <string>LtnSmF</string>
+ <string>LtnSmG</string>
+ <string>LtnSmH</string>
+ <string>LtnSmI</string>
+ <string>LtnSmJ</string>
+ <string>LtnSmK</string>
+ <string>LtnSmL</string>
+ <string>LtnSmM</string>
+ <string>LtnSmN</string>
+ <string>LtnSmO</string>
+ <string>LtnSmP</string>
+ <string>LtnSmQ</string>
+ <string>LtnSmR</string>
+ <string>LtnSmS</string>
+ <string>LtnSmT</string>
+ <string>LtnSmU</string>
+ <string>LtnSmV</string>
+ <string>LtnSmW</string>
+ <string>LtnSmX</string>
+ <string>LtnSmY</string>
+ <string>LftCurlyBrac</string>
+ <string>VertLine</string>
+ <string>RtCurlyBrac</string>
+ <string>Tilde</string>
+ <string>LtnCapADiaer</string>
+ <string>LtnSmAAcute</string>
+ <string>LtnSmAGrave</string>
+ <string>LtnSmACircum</string>
+ <string>LtnSmADiaer</string>
+ <string>LtnSmATilde</string>
+ <string>LtnSmARingAbv</string>
+ <string>DottedCirc</string>
+ <string>Hyphen</string>
+ <string>NonBreakingHyphen</string>
+ <string>Hyphen_Soft</string>
+ <string>CombAcute</string>
+ <string>CombGrave</string>
+ <string>CombCircum</string>
+ <string>CombTilde</string>
+ <string>CombDiaer</string>
+ <string>CombRingAbv</string>
+ </array>
+ <key>public.postscriptNames</key>
+ <dict>
+ <key>Ampersand</key>
+ <string>ampersand</string>
+ <key>Apos</key>
+ <string>quotesingle</string>
+ <key>Asterisk</key>
+ <string>asterisk</string>
+ <key>AtSgn</key>
+ <string>at</string>
+ <key>CircumAccent</key>
+ <string>asciicircum</string>
+ <key>Colon</key>
+ <string>colon</string>
+ <key>CombAcute</key>
+ <string>acutecomb</string>
+ <key>CombCircum</key>
+ <string>uni0302</string>
+ <key>CombDiaer</key>
+ <string>uni0308</string>
+ <key>CombGrave</key>
+ <string>gravecomb</string>
+ <key>CombRingAbv</key>
+ <string>uni030A</string>
+ <key>CombTilde</key>
+ <string>tildecomb</string>
+ <key>Comma</key>
+ <string>comma</string>
+ <key>DigitEight</key>
+ <string>eight</string>
+ <key>DigitFive</key>
+ <string>five</string>
+ <key>DigitFour</key>
+ <string>four</string>
+ <key>DigitNine</key>
+ <string>nine</string>
+ <key>DigitOne</key>
+ <string>one</string>
+ <key>DigitSeven</key>
+ <string>seven</string>
+ <key>DigitSix</key>
+ <string>six</string>
+ <key>DigitThree</key>
+ <string>three</string>
+ <key>DigitTwo</key>
+ <string>two</string>
+ <key>DigitZero</key>
+ <string>zero</string>
+ <key>DollarSgn</key>
+ <string>dollar</string>
+ <key>DottedCirc</key>
+ <string>uni25CC</string>
+ <key>EqSgn</key>
+ <string>equal</string>
+ <key>ExclamationMrk</key>
+ <string>exclam</string>
+ <key>FullStop</key>
+ <string>period</string>
+ <key>GTSgn</key>
+ <string>greater</string>
+ <key>GraveAccent</key>
+ <string>grave</string>
+ <key>Hyphen</key>
+ <string>uni2010</string>
+ <key>HyphenMinus</key>
+ <string>hyphen</string>
+ <key>Hyphen_Soft</key>
+ <string>uni00AD</string>
+ <key>LTSgn</key>
+ <string>less</string>
+ <key>LftCurlyBrac</key>
+ <string>braceleft</string>
+ <key>LftParen</key>
+ <string>parenleft</string>
+ <key>LftSqrBrac</key>
+ <string>bracketleft</string>
+ <key>LowLine</key>
+ <string>underscore</string>
+ <key>LtnCapA</key>
+ <string>A</string>
+ <key>LtnCapA.alt</key>
+ <string>A</string>
+ <key>LtnCapADiaer</key>
+ <string>Adieresis</string>
+ <key>LtnCapB</key>
+ <string>B</string>
+ <key>LtnCapC</key>
+ <string>C</string>
+ <key>LtnCapD</key>
+ <string>D</string>
+ <key>LtnCapE</key>
+ <string>E</string>
+ <key>LtnCapF</key>
+ <string>F</string>
+ <key>LtnCapG</key>
+ <string>G</string>
+ <key>LtnCapH</key>
+ <string>H</string>
+ <key>LtnCapI</key>
+ <string>I</string>
+ <key>LtnCapJ</key>
+ <string>J</string>
+ <key>LtnCapK</key>
+ <string>K</string>
+ <key>LtnCapL</key>
+ <string>L</string>
+ <key>LtnCapM</key>
+ <string>M</string>
+ <key>LtnCapN</key>
+ <string>N</string>
+ <key>LtnCapO</key>
+ <string>O</string>
+ <key>LtnCapP</key>
+ <string>P</string>
+ <key>LtnCapQ</key>
+ <string>Q</string>
+ <key>LtnCapR</key>
+ <string>R</string>
+ <key>LtnCapS</key>
+ <string>S</string>
+ <key>LtnCapT</key>
+ <string>T</string>
+ <key>LtnCapU</key>
+ <string>U</string>
+ <key>LtnCapV</key>
+ <string>V</string>
+ <key>LtnCapW</key>
+ <string>W</string>
+ <key>LtnCapX</key>
+ <string>X</string>
+ <key>LtnCapY</key>
+ <string>Y</string>
+ <key>LtnSmA</key>
+ <string>a</string>
+ <key>LtnSmAAcute</key>
+ <string>aacute</string>
+ <key>LtnSmACircum</key>
+ <string>acircumflex</string>
+ <key>LtnSmADiaer</key>
+ <string>adieresis</string>
+ <key>LtnSmAGrave</key>
+ <string>agrave</string>
+ <key>LtnSmARingAbv</key>
+ <string>aring</string>
+ <key>LtnSmATilde</key>
+ <string>atilde</string>
+ <key>LtnSmB</key>
+ <string>b</string>
+ <key>LtnSmC</key>
+ <string>c</string>
+ <key>LtnSmD</key>
+ <string>d</string>
+ <key>LtnSmE</key>
+ <string>e</string>
+ <key>LtnSmF</key>
+ <string>f</string>
+ <key>LtnSmG</key>
+ <string>g</string>
+ <key>LtnSmH</key>
+ <string>h</string>
+ <key>LtnSmI</key>
+ <string>i</string>
+ <key>LtnSmJ</key>
+ <string>j</string>
+ <key>LtnSmK</key>
+ <string>k</string>
+ <key>LtnSmL</key>
+ <string>l</string>
+ <key>LtnSmM</key>
+ <string>m</string>
+ <key>LtnSmN</key>
+ <string>n</string>
+ <key>LtnSmO</key>
+ <string>o</string>
+ <key>LtnSmP</key>
+ <string>p</string>
+ <key>LtnSmQ</key>
+ <string>q</string>
+ <key>LtnSmR</key>
+ <string>r</string>
+ <key>LtnSmS</key>
+ <string>s</string>
+ <key>LtnSmT</key>
+ <string>t</string>
+ <key>LtnSmU</key>
+ <string>u</string>
+ <key>LtnSmV</key>
+ <string>v</string>
+ <key>LtnSmW</key>
+ <string>w</string>
+ <key>LtnSmX</key>
+ <string>x</string>
+ <key>LtnSmY</key>
+ <string>y</string>
+ <key>NonBreakingHyphen</key>
+ <string>uni2011</string>
+ <key>NumSgn</key>
+ <string>numbersign</string>
+ <key>PercentSgn</key>
+ <string>percent</string>
+ <key>PlusSgn</key>
+ <string>plus</string>
+ <key>QstnMrk</key>
+ <string>question</string>
+ <key>QuotMrk</key>
+ <string>quotedbl</string>
+ <key>ReverseSolidus</key>
+ <string>backslash</string>
+ <key>RtCurlyBrac</key>
+ <string>braceright</string>
+ <key>RtParen</key>
+ <string>parenright</string>
+ <key>RtSqrBrac</key>
+ <string>bracketright</string>
+ <key>Semicolon</key>
+ <string>semicolon</string>
+ <key>Solidus</key>
+ <string>slash</string>
+ <key>Space</key>
+ <string>space</string>
+ <key>Tilde</key>
+ <string>asciitilde</string>
+ <key>VertLine</key>
+ <string>bar</string>
+ </dict>
+</dict>
+</plist>
diff --git a/tests/reference/ufo/psfbuildcomp.ufo/metainfo.plist b/tests/reference/ufo/psfbuildcomp.ufo/metainfo.plist
new file mode 100644
index 0000000..aa10c5c
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcomp.ufo/metainfo.plist
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>creator</key>
+ <string>org.sil.scripts.pysilfont</string>
+ <key>formatVersion</key>
+ <integer>3</integer>
+</dict>
+</plist>
diff --git a/tests/reference/ufo/psfbuildcompgc.lg b/tests/reference/ufo/psfbuildcompgc.lg
new file mode 100644
index 0000000..7a3797e
--- /dev/null
+++ b/tests/reference/ufo/psfbuildcompgc.lg
@@ -0,0 +1,3 @@
+2019-04-10 15:46:32 Progress: Opening file for input: tests/input/psfbuildcomp.txt
+2019-04-10 15:46:32 Error: Invalid CD line 'LtnSmITilde = LtnSmDotlessI + CombTilde@U ^200,200 | 0129' - No glyph named 'LtnSmDotlessI'.
+2019-04-10 15:46:32 Error: Invalid CD line 'LtnSmITildeGraveCedilla = LtnSmDotlessI + CombCedilla@H + CombTilde@LtnSmDotlessI:U + CombGrave@U ^200,200 | E010 # i cedilla tilde grave' - No glyph named 'LtnSmDotlessI'.
diff --git a/tests/reference/ufo/psfchangettfglyphnames.lg b/tests/reference/ufo/psfchangettfglyphnames.lg
new file mode 100644
index 0000000..c236b6f
--- /dev/null
+++ b/tests/reference/ufo/psfchangettfglyphnames.lg
@@ -0,0 +1,4 @@
+2020-07-28 14:36:06 Progress: Running: psfchangettfglyphnames tests/input/font-psf-test/source/PsfTest-Regular.ufo tests/input/PsfTest-R.ttf local/testresults/ufo/psfchangettfglyphnames.ttf -l local/testresults/ufo/psfchangettfglyphnames.log
+2020-07-28 14:36:06 Progress: Renaming the input ttf glyphs based on production names in the UFO
+2020-07-28 14:36:06 Progress: Saving the output ttf file
+2020-07-28 14:36:06 Progress: Done
diff --git a/tests/reference/ufo/psfchangettfglyphnames.ttf b/tests/reference/ufo/psfchangettfglyphnames.ttf
new file mode 100644
index 0000000..d31345b
--- /dev/null
+++ b/tests/reference/ufo/psfchangettfglyphnames.ttf
Binary files differ
diff --git a/tests/reference/ufo/psfcheckbasicchars.lg b/tests/reference/ufo/psfcheckbasicchars.lg
new file mode 100644
index 0000000..9108807
--- /dev/null
+++ b/tests/reference/ufo/psfcheckbasicchars.lg
@@ -0,0 +1,199 @@
+2022-03-08 12:00:19 Progress: Running: psfcheckbasicchars tests/input/font-psf-test/source/PsfTest-Regular.ufo -l local/testresults/ufo/psfcheckbasicchars.log
+2022-03-08 12:00:19 Progress: Reading UFO: tests/input/font-psf-test/source/PsfTest-Regular.ufo
+2022-03-08 12:00:19 Progress: Checking fontinfo.plist metadata
+2022-03-08 12:00:19 Warning: note is present - it's use is discouraged
+2022-03-08 12:00:19 Warning: openTypeOS2FamilyClass would be removed from fontinfo Old value: [0, 0]
+2022-03-08 12:00:19 Warning: openTypeOS2Selection would be added New value: [7]
+2022-03-08 12:00:19 Progress: Checking lib.plist metadata
+2022-03-08 12:00:19 Warning: com.schriftgestaltung.disablesAutomaticAlignment would be deleted - obsolete key Old value: True
+2022-03-08 12:00:19 Warning: com.schriftgestaltung.disablesLastChange would be deleted - obsolete key Old value: True
+2022-03-08 12:00:19 Progress: Check & fix results:- Errors: 0, Changes to make: 4, Other warnings: 1
+2022-03-08 12:00:19 Progress: See log file for details
+2022-03-08 12:00:19 Warning: U+005A from the basic set has no representative glyph (Z)
+2022-03-08 12:00:19 Warning: U+007A from the basic set has no representative glyph (z)
+2022-03-08 12:00:19 Warning: U+00A0 from the basic set has no representative glyph (uni00A0, nbspace)
+2022-03-08 12:00:19 Warning: U+00A1 from the basic set has no representative glyph (exclamdown)
+2022-03-08 12:00:19 Warning: U+00A2 from the basic set has no representative glyph (cent)
+2022-03-08 12:00:19 Warning: U+00A3 from the basic set has no representative glyph (sterling)
+2022-03-08 12:00:19 Warning: U+00A4 from the basic set has no representative glyph (currency)
+2022-03-08 12:00:19 Warning: U+00A5 from the basic set has no representative glyph (yen)
+2022-03-08 12:00:19 Warning: U+00A6 from the basic set has no representative glyph (brokenbar)
+2022-03-08 12:00:19 Warning: U+00A7 from the basic set has no representative glyph (section)
+2022-03-08 12:00:19 Warning: U+00A8 from the basic set has no representative glyph (dieresis)
+2022-03-08 12:00:19 Warning: U+00A9 from the basic set has no representative glyph (copyright)
+2022-03-08 12:00:19 Warning: U+00AA from the basic set has no representative glyph (ordfeminine)
+2022-03-08 12:00:19 Warning: U+00AB from the basic set has no representative glyph (guillemotleft, guillemetleft)
+2022-03-08 12:00:19 Warning: U+00AC from the basic set has no representative glyph (logicalnot)
+2022-03-08 12:00:19 Warning: U+00AE from the basic set has no representative glyph (registered)
+2022-03-08 12:00:19 Warning: U+00AF from the basic set has no representative glyph (macron)
+2022-03-08 12:00:19 Warning: U+00B0 from the basic set has no representative glyph (degree)
+2022-03-08 12:00:19 Warning: U+00B1 from the basic set has no representative glyph (plusminus)
+2022-03-08 12:00:19 Warning: U+00B2 from the basic set has no representative glyph (uni00B2, twosuperior)
+2022-03-08 12:00:19 Warning: U+00B3 from the basic set has no representative glyph (uni00B3, threesuperior)
+2022-03-08 12:00:19 Warning: U+00B4 from the basic set has no representative glyph (acute)
+2022-03-08 12:00:19 Warning: U+00B5 from the basic set has no representative glyph (mu, micro)
+2022-03-08 12:00:19 Warning: U+00B6 from the basic set has no representative glyph (paragraph)
+2022-03-08 12:00:19 Warning: U+00B7 from the basic set has no representative glyph (periodcentered)
+2022-03-08 12:00:19 Warning: U+00B8 from the basic set has no representative glyph (cedilla)
+2022-03-08 12:00:19 Warning: U+00B9 from the basic set has no representative glyph (uni00B9, onesuperior)
+2022-03-08 12:00:19 Warning: U+00BA from the basic set has no representative glyph (ordmasculine)
+2022-03-08 12:00:19 Warning: U+00BB from the basic set has no representative glyph (guillemotright, guillemetright)
+2022-03-08 12:00:19 Warning: U+00BC from the basic set has no representative glyph (onequarter)
+2022-03-08 12:00:19 Warning: U+00BD from the basic set has no representative glyph (onehalf)
+2022-03-08 12:00:19 Warning: U+00BE from the basic set has no representative glyph (threequarters)
+2022-03-08 12:00:19 Warning: U+00BF from the basic set has no representative glyph (questiondown)
+2022-03-08 12:00:19 Warning: U+00C0 from the basic set has no representative glyph (Agrave)
+2022-03-08 12:00:19 Warning: U+00C1 from the basic set has no representative glyph (Aacute)
+2022-03-08 12:00:19 Warning: U+00C2 from the basic set has no representative glyph (Acircumflex)
+2022-03-08 12:00:19 Warning: U+00C3 from the basic set has no representative glyph (Atilde)
+2022-03-08 12:00:19 Warning: U+00C5 from the basic set has no representative glyph (Aring)
+2022-03-08 12:00:19 Warning: U+00C6 from the basic set has no representative glyph (AE)
+2022-03-08 12:00:19 Warning: U+00C7 from the basic set has no representative glyph (Ccedilla)
+2022-03-08 12:00:19 Warning: U+00C8 from the basic set has no representative glyph (Egrave)
+2022-03-08 12:00:19 Warning: U+00C9 from the basic set has no representative glyph (Eacute)
+2022-03-08 12:00:19 Warning: U+00CA from the basic set has no representative glyph (Ecircumflex)
+2022-03-08 12:00:19 Warning: U+00CB from the basic set has no representative glyph (Edieresis)
+2022-03-08 12:00:19 Warning: U+00CC from the basic set has no representative glyph (Igrave)
+2022-03-08 12:00:19 Warning: U+00CD from the basic set has no representative glyph (Iacute)
+2022-03-08 12:00:19 Warning: U+00CE from the basic set has no representative glyph (Icircumflex)
+2022-03-08 12:00:19 Warning: U+00CF from the basic set has no representative glyph (Idieresis)
+2022-03-08 12:00:19 Warning: U+00D0 from the basic set has no representative glyph (Eth)
+2022-03-08 12:00:19 Warning: U+00D1 from the basic set has no representative glyph (Ntilde)
+2022-03-08 12:00:19 Warning: U+00D2 from the basic set has no representative glyph (Ograve)
+2022-03-08 12:00:19 Warning: U+00D3 from the basic set has no representative glyph (Oacute)
+2022-03-08 12:00:19 Warning: U+00D4 from the basic set has no representative glyph (Ocircumflex)
+2022-03-08 12:00:19 Warning: U+00D5 from the basic set has no representative glyph (Otilde)
+2022-03-08 12:00:19 Warning: U+00D6 from the basic set has no representative glyph (Odieresis)
+2022-03-08 12:00:19 Warning: U+00D7 from the basic set has no representative glyph (multiply)
+2022-03-08 12:00:19 Warning: U+00D8 from the basic set has no representative glyph (Oslash)
+2022-03-08 12:00:19 Warning: U+00D9 from the basic set has no representative glyph (Ugrave)
+2022-03-08 12:00:19 Warning: U+00DA from the basic set has no representative glyph (Uacute)
+2022-03-08 12:00:19 Warning: U+00DB from the basic set has no representative glyph (Ucircumflex)
+2022-03-08 12:00:19 Warning: U+00DC from the basic set has no representative glyph (Udieresis)
+2022-03-08 12:00:19 Warning: U+00DD from the basic set has no representative glyph (Yacute)
+2022-03-08 12:00:19 Warning: U+00DE from the basic set has no representative glyph (Thorn)
+2022-03-08 12:00:19 Warning: U+00DF from the basic set has no representative glyph (germandbls)
+2022-03-08 12:00:19 Warning: U+00E6 from the basic set has no representative glyph (ae)
+2022-03-08 12:00:19 Warning: U+00E7 from the basic set has no representative glyph (ccedilla)
+2022-03-08 12:00:19 Warning: U+00E8 from the basic set has no representative glyph (egrave)
+2022-03-08 12:00:19 Warning: U+00E9 from the basic set has no representative glyph (eacute)
+2022-03-08 12:00:19 Warning: U+00EA from the basic set has no representative glyph (ecircumflex)
+2022-03-08 12:00:19 Warning: U+00EB from the basic set has no representative glyph (edieresis)
+2022-03-08 12:00:19 Warning: U+00EC from the basic set has no representative glyph (igrave)
+2022-03-08 12:00:19 Warning: U+00ED from the basic set has no representative glyph (iacute)
+2022-03-08 12:00:19 Warning: U+00EE from the basic set has no representative glyph (icircumflex)
+2022-03-08 12:00:19 Warning: U+00EF from the basic set has no representative glyph (idieresis)
+2022-03-08 12:00:19 Warning: U+00F0 from the basic set has no representative glyph (eth)
+2022-03-08 12:00:19 Warning: U+00F1 from the basic set has no representative glyph (ntilde)
+2022-03-08 12:00:19 Warning: U+00F2 from the basic set has no representative glyph (ograve)
+2022-03-08 12:00:19 Warning: U+00F3 from the basic set has no representative glyph (oacute)
+2022-03-08 12:00:19 Warning: U+00F4 from the basic set has no representative glyph (ocircumflex)
+2022-03-08 12:00:19 Warning: U+00F5 from the basic set has no representative glyph (otilde)
+2022-03-08 12:00:19 Warning: U+00F6 from the basic set has no representative glyph (odieresis)
+2022-03-08 12:00:19 Warning: U+00F7 from the basic set has no representative glyph (divide)
+2022-03-08 12:00:19 Warning: U+00F8 from the basic set has no representative glyph (oslash)
+2022-03-08 12:00:19 Warning: U+00F9 from the basic set has no representative glyph (ugrave)
+2022-03-08 12:00:19 Warning: U+00FA from the basic set has no representative glyph (uacute)
+2022-03-08 12:00:19 Warning: U+00FB from the basic set has no representative glyph (ucircumflex)
+2022-03-08 12:00:19 Warning: U+00FC from the basic set has no representative glyph (udieresis)
+2022-03-08 12:00:19 Warning: U+00FD from the basic set has no representative glyph (yacute)
+2022-03-08 12:00:19 Warning: U+00FE from the basic set has no representative glyph (thorn)
+2022-03-08 12:00:19 Warning: U+00FF from the basic set has no representative glyph (ydieresis)
+2022-03-08 12:00:19 Warning: U+0131 from the basic set has no representative glyph (dotlessi, idotless)
+2022-03-08 12:00:19 Warning: U+0152 from the basic set has no representative glyph (OE)
+2022-03-08 12:00:19 Warning: U+0153 from the basic set has no representative glyph (oe)
+2022-03-08 12:00:19 Warning: U+0160 from the basic set has no representative glyph (Scaron)
+2022-03-08 12:00:19 Warning: U+0161 from the basic set has no representative glyph (scaron)
+2022-03-08 12:00:19 Warning: U+0178 from the basic set has no representative glyph (Ydieresis)
+2022-03-08 12:00:19 Warning: U+017D from the basic set has no representative glyph (Zcaron)
+2022-03-08 12:00:19 Warning: U+017E from the basic set has no representative glyph (zcaron)
+2022-03-08 12:00:19 Warning: U+0192 from the basic set has no representative glyph (florin)
+2022-03-08 12:00:19 Warning: U+02C6 from the basic set has no representative glyph (circumflex)
+2022-03-08 12:00:19 Warning: U+02C7 from the basic set has no representative glyph (caron)
+2022-03-08 12:00:19 Warning: U+02D8 from the basic set has no representative glyph (breve)
+2022-03-08 12:00:19 Warning: U+02D9 from the basic set has no representative glyph (dotaccent)
+2022-03-08 12:00:19 Warning: U+02DA from the basic set has no representative glyph (ring)
+2022-03-08 12:00:19 Warning: U+02DB from the basic set has no representative glyph (ogonek)
+2022-03-08 12:00:19 Warning: U+02DC from the basic set has no representative glyph (tilde)
+2022-03-08 12:00:19 Warning: U+02DD from the basic set has no representative glyph (hungarumlaut)
+2022-03-08 12:00:19 Warning: U+034F from the basic set has no representative glyph (uni034F, graphemejoinercomb)
+2022-03-08 12:00:19 Warning: U+03C0 from the basic set has no representative glyph (pi)
+2022-03-08 12:00:19 Warning: U+2000 from the basic set has no representative glyph (uni2000, enquad)
+2022-03-08 12:00:19 Warning: U+2001 from the basic set has no representative glyph (uni2001, emquad)
+2022-03-08 12:00:19 Warning: U+2002 from the basic set has no representative glyph (uni2002, enspace)
+2022-03-08 12:00:19 Warning: U+2003 from the basic set has no representative glyph (uni2003, emspace)
+2022-03-08 12:00:19 Warning: U+2004 from the basic set has no representative glyph (uni2004, threeperemspace)
+2022-03-08 12:00:19 Warning: U+2005 from the basic set has no representative glyph (uni2005, fourperemspace)
+2022-03-08 12:00:19 Warning: U+2006 from the basic set has no representative glyph (uni2006, sixperemspace)
+2022-03-08 12:00:19 Warning: U+2007 from the basic set has no representative glyph (uni2007, figurespace)
+2022-03-08 12:00:19 Warning: U+2008 from the basic set has no representative glyph (uni2008, punctuationspace)
+2022-03-08 12:00:19 Warning: U+2009 from the basic set has no representative glyph (uni2009, thinspace)
+2022-03-08 12:00:19 Warning: U+200A from the basic set has no representative glyph (uni200A, hairspace)
+2022-03-08 12:00:19 Warning: U+200B from the basic set has no representative glyph (uni200B, zerowidthspace)
+2022-03-08 12:00:19 Warning: U+200C from the basic set has no representative glyph (uni200C, zerowidthnonjoiner)
+2022-03-08 12:00:19 Warning: U+200D from the basic set has no representative glyph (uni200D, zerowidthjoiner)
+2022-03-08 12:00:19 Warning: U+2012 from the basic set has no representative glyph (figuredash)
+2022-03-08 12:00:19 Warning: U+2013 from the basic set has no representative glyph (endash)
+2022-03-08 12:00:19 Warning: U+2014 from the basic set has no representative glyph (emdash)
+2022-03-08 12:00:19 Warning: U+2015 from the basic set has no representative glyph (uni2015, horizontalbar)
+2022-03-08 12:00:19 Warning: U+2018 from the basic set has no representative glyph (quoteleft)
+2022-03-08 12:00:19 Warning: U+2019 from the basic set has no representative glyph (quoteright)
+2022-03-08 12:00:19 Warning: U+201A from the basic set has no representative glyph (quotesinglbase)
+2022-03-08 12:00:19 Warning: U+201C from the basic set has no representative glyph (quotedblleft)
+2022-03-08 12:00:19 Warning: U+201D from the basic set has no representative glyph (quotedblright)
+2022-03-08 12:00:19 Warning: U+201E from the basic set has no representative glyph (quotedblbase)
+2022-03-08 12:00:19 Warning: U+2020 from the basic set has no representative glyph (dagger)
+2022-03-08 12:00:19 Warning: U+2021 from the basic set has no representative glyph (daggerdbl)
+2022-03-08 12:00:19 Warning: U+2022 from the basic set has no representative glyph (bullet)
+2022-03-08 12:00:19 Warning: U+2026 from the basic set has no representative glyph (ellipsis)
+2022-03-08 12:00:19 Warning: U+2027 from the basic set has no representative glyph (uni2027, hyphenationpoint)
+2022-03-08 12:00:19 Warning: U+2028 from the basic set has no representative glyph (uni2028, lineseparator)
+2022-03-08 12:00:19 Warning: U+2029 from the basic set has no representative glyph (uni2029, paragraphseparator)
+2022-03-08 12:00:19 Warning: U+202F from the basic set has no representative glyph (uni202F, narrownbspace)
+2022-03-08 12:00:19 Warning: U+2030 from the basic set has no representative glyph (perthousand)
+2022-03-08 12:00:19 Warning: U+2039 from the basic set has no representative glyph (guilsinglleft)
+2022-03-08 12:00:19 Warning: U+203A from the basic set has no representative glyph (guilsinglright)
+2022-03-08 12:00:19 Warning: U+2044 from the basic set has no representative glyph (fraction)
+2022-03-08 12:00:19 Warning: U+2060 from the basic set has no representative glyph (uni2060, wordjoiner)
+2022-03-08 12:00:19 Warning: U+2074 from the basic set has no representative glyph (uni2074, foursuperior)
+2022-03-08 12:00:19 Warning: U+20AC from the basic set has no representative glyph (Euro, euro)
+2022-03-08 12:00:19 Warning: U+2122 from the basic set has no representative glyph (trademark)
+2022-03-08 12:00:19 Warning: U+2126 from the basic set has no representative glyph (Omega, Ohm)
+2022-03-08 12:00:19 Warning: U+2202 from the basic set has no representative glyph (partialdiff)
+2022-03-08 12:00:19 Warning: U+2206 from the basic set has no representative glyph (Delta)
+2022-03-08 12:00:19 Warning: U+220F from the basic set has no representative glyph (product)
+2022-03-08 12:00:19 Warning: U+2211 from the basic set has no representative glyph (summation)
+2022-03-08 12:00:19 Warning: U+2212 from the basic set has no representative glyph (minus)
+2022-03-08 12:00:19 Warning: U+2215 from the basic set has no representative glyph (uni2215, divisionslash)
+2022-03-08 12:00:19 Warning: U+2219 from the basic set has no representative glyph (uni2219, bulletoperator)
+2022-03-08 12:00:19 Warning: U+221A from the basic set has no representative glyph (radical)
+2022-03-08 12:00:19 Warning: U+221E from the basic set has no representative glyph (infinity)
+2022-03-08 12:00:19 Warning: U+222B from the basic set has no representative glyph (integral)
+2022-03-08 12:00:19 Warning: U+2248 from the basic set has no representative glyph (approxequal)
+2022-03-08 12:00:19 Warning: U+2260 from the basic set has no representative glyph (notequal)
+2022-03-08 12:00:19 Warning: U+2264 from the basic set has no representative glyph (lessequal)
+2022-03-08 12:00:19 Warning: U+2265 from the basic set has no representative glyph (greaterequal)
+2022-03-08 12:00:19 Warning: U+2423 from the basic set has no representative glyph (uni2423, blank)
+2022-03-08 12:00:19 Warning: U+25CA from the basic set has no representative glyph (lozenge)
+2022-03-08 12:00:19 Warning: U+FB01 from the basic set has no representative glyph (uniFB01, fi)
+2022-03-08 12:00:19 Warning: U+FB02 from the basic set has no representative glyph (uniFB02, fl)
+2022-03-08 12:00:19 Warning: U+FE00 from the basic set has no representative glyph (uniFE00, VS1)
+2022-03-08 12:00:19 Warning: U+FE01 from the basic set has no representative glyph (uniFE01, VS2)
+2022-03-08 12:00:19 Warning: U+FE02 from the basic set has no representative glyph (uniFE02, VS3)
+2022-03-08 12:00:19 Warning: U+FE03 from the basic set has no representative glyph (uniFE03, VS4)
+2022-03-08 12:00:19 Warning: U+FE04 from the basic set has no representative glyph (uniFE04, VS5)
+2022-03-08 12:00:19 Warning: U+FE05 from the basic set has no representative glyph (uniFE05, VS6)
+2022-03-08 12:00:19 Warning: U+FE06 from the basic set has no representative glyph (uniFE06, VS7)
+2022-03-08 12:00:19 Warning: U+FE07 from the basic set has no representative glyph (uniFE07, VS8)
+2022-03-08 12:00:19 Warning: U+FE08 from the basic set has no representative glyph (uniFE08, VS9)
+2022-03-08 12:00:19 Warning: U+FE09 from the basic set has no representative glyph (uniFE09, VS10)
+2022-03-08 12:00:19 Warning: U+FE0A from the basic set has no representative glyph (uniFE0A, VS11)
+2022-03-08 12:00:19 Warning: U+FE0B from the basic set has no representative glyph (uniFE0B, VS12)
+2022-03-08 12:00:19 Warning: U+FE0C from the basic set has no representative glyph (uniFE0C, VS13)
+2022-03-08 12:00:19 Warning: U+FE0D from the basic set has no representative glyph (uniFE0D, VS14)
+2022-03-08 12:00:19 Warning: U+FE0E from the basic set has no representative glyph (uniFE0E, VS15)
+2022-03-08 12:00:19 Warning: U+FE0F from the basic set has no representative glyph (uniFE0F, VS16)
+2022-03-08 12:00:19 Warning: U+FEFF from the basic set has no representative glyph (uniFEFF, zeroWidthNoBreakSpace)
+2022-03-08 12:00:19 Warning: U+FFFC from the basic set has no representative glyph (uniFFFC, objectReplacementCharacter)
+2022-03-08 12:00:19 Warning: U+FFFD from the basic set has no representative glyph (uniFFFD, replacementCharacter)
+2022-03-08 12:00:19 Error: There are 187 required characters missing
diff --git a/tests/reference/ufo/psfcopyglyphs.lg b/tests/reference/ufo/psfcopyglyphs.lg
new file mode 100644
index 0000000..a6a070b
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.lg
@@ -0,0 +1,30 @@
+2021-06-29 14:42:19 Progress: Running: psfcopyglyphs -s tests/input/font-psf-test/source/PsfTest-Regular.ufo tests/input/font-psf-test/source/PsfTest-Italic.ufo -i tests/input/psfcopyglyphs.csv -l local/testresults/ufo/psfcopyglyphs.log --rename newname --unicode usv
+2021-06-29 14:42:19 Progress: Opening file for input: tests/input/psfcopyglyphs.csv
+2021-06-29 14:42:19 Progress: Reading UFO: tests/input/font-psf-test/source/PsfTest-Italic.ufo
+2021-06-29 14:42:19 Progress: Checking fontinfo.plist metadata
+2021-06-29 14:42:19 Warning: openTypeOS2FamilyClass would be removed from fontinfo Old value: [0, 0]
+2021-06-29 14:42:19 Warning: year would be removed from fontinfo Old value: 2021
+2021-06-29 14:42:19 Warning: capHeight would be updated Old value: 1485.3, new value: 1485
+2021-06-29 14:42:19 Warning: styleMapFamilyName would be uppdated Old value: Psf test, new value: Psf Test
+2021-06-29 14:42:19 Warning: openTypeOS2TypoLineGap would be updated Old value: 1, new value: 0
+2021-06-29 14:42:19 Warning: openTypeOS2Selection would be added New value: [7]
+2021-06-29 14:42:19 Warning: openTypeNamePreferredFamilyName would be updated Old value: Psf Testing, new value: Psf Test
+2021-06-29 14:42:19 Progress: Checking lib.plist metadata
+2021-06-29 14:42:19 Warning: com.schriftgestaltung.disablesAutomaticAlignment would be deleted - obsolete key Old value: True
+2021-06-29 14:42:19 Warning: com.schriftgestaltung.disablesLastChange would be deleted - obsolete key Old value: True
+2021-06-29 14:42:19 Progress: Check & fix results:- Errors: 0, Changes to make: 9, Other warnings: 0
+2021-06-29 14:42:19 Progress: See log file for details
+2021-06-29 14:42:19 Progress: Reading UFO: tests/input/font-psf-test/source/PsfTest-Regular.ufo
+2021-06-29 14:42:19 Progress: Checking fontinfo.plist metadata
+2021-06-29 14:42:19 Warning: note is present - it's use is discouraged
+2021-06-29 14:42:19 Warning: openTypeOS2FamilyClass would be removed from fontinfo Old value: [0, 0]
+2021-06-29 14:42:19 Warning: openTypeOS2Selection would be added New value: [7]
+2021-06-29 14:42:19 Progress: Checking lib.plist metadata
+2021-06-29 14:42:19 Warning: com.schriftgestaltung.disablesAutomaticAlignment would be deleted - obsolete key Old value: True
+2021-06-29 14:42:19 Warning: com.schriftgestaltung.disablesLastChange would be deleted - obsolete key Old value: True
+2021-06-29 14:42:19 Progress: Check & fix results:- Errors: 0, Changes to make: 4, Other warnings: 1
+2021-06-29 14:42:19 Progress: See log file for details
+2021-06-29 14:42:19 Warning: Line 4: Glyph 'Colon' already present; skipping
+2021-06-29 14:42:19 Progress: Processing font for output
+2021-06-29 14:42:19 Progress: Output UFO already exists - reading for comparison
+2021-06-29 14:42:19 Progress: Writing font to local/testresults/ufo/psfcopyglyphs.ufo
diff --git a/tests/reference/ufo/psfcopyglyphs.ufo/fontinfo.plist b/tests/reference/ufo/psfcopyglyphs.ufo/fontinfo.plist
new file mode 100644
index 0000000..a4983fe
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.ufo/fontinfo.plist
@@ -0,0 +1,243 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>ascender</key>
+ <integer>2100</integer>
+ <key>capHeight</key>
+ <real>1485.3</real>
+ <key>copyright</key>
+ <string>Copyright (c) 2004-2021 SIL International</string>
+ <key>descender</key>
+ <integer>-550</integer>
+ <key>familyName</key>
+ <string>Psf Test</string>
+ <key>italicAngle</key>
+ <integer>-14</integer>
+ <key>openTypeHeadCreated</key>
+ <string>2021/01/29 10:05:04</string>
+ <key>openTypeHheaAscender</key>
+ <integer>2100</integer>
+ <key>openTypeHheaDescender</key>
+ <integer>-550</integer>
+ <key>openTypeHheaLineGap</key>
+ <integer>0</integer>
+ <key>openTypeNameDescription</key>
+ <string>Copyright (c) 2004-2021 SIL International</string>
+ <key>openTypeNameDesigner</key>
+ <string>Victor Gaultney, Annie Olsen, Julie Remington, Don Collingsworth, Eric Hays, Becca Hirsbrunner</string>
+ <key>openTypeNameDesignerURL</key>
+ <string>http://scripts.sil.org/</string>
+ <key>openTypeNameLicense</key>
+ <string>Copyright (c) 2004-2021 SIL International (http://www.sil.org/) with Reserved Font Names "Andika" and "SIL".
+
+This Font Software is licensed under the SIL Open Font License, Version 1.1. This license is copied below, and is also available with a FAQ at: http://scripts.sil.org/OFL
+
+
+-----------------------------------------------------------
+SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
+-----------------------------------------------------------
+
+PREAMBLE
+The goals of the Open Font License (OFL) are to stimulate worldwide development of collaborative font projects, to support the font creation efforts of academic and linguistic communities, and to provide a free and open framework in which fonts may be shared and improved in partnership with others.
+
+The OFL allows the licensed fonts to be used, studied, modified and redistributed freely as long as they are not sold by themselves. The fonts, including any derivative works, can be bundled, embedded, redistributed and/or sold with any software provided that any reserved names are not used by derivative works. The fonts and derivatives, however, cannot be released under any other type of license. The requirement for fonts to remain under this license does not apply to any document created using the fonts or their derivatives.
+
+DEFINITIONS
+"Font Software" refers to the set of files released by the Copyright Holder(s) under this license and clearly marked as such. This may include source files, build scripts and documentation.
+
+"Reserved Font Name" refers to any names specified as such after the copyright statement(s).
+
+"Original Version" refers to the collection of Font Software components as distributed by the Copyright Holder(s).
+
+"Modified Version" refers to any derivative made by adding to, deleting, or substituting -- in part or in whole -- any of the components of the Original Version, by changing formats or by porting the Font Software to a new environment.
+
+"Author" refers to any designer, engineer, programmer, technical writer or other person who contributed to the Font Software.
+
+PERMISSION &amp; CONDITIONS
+Permission is hereby granted, free of charge, to any person obtaining a copy of the Font Software, to use, study, copy, merge, embed, modify, redistribute, and sell modified and unmodified copies of the Font Software, subject to the following conditions:
+
+1) Neither the Font Software nor any of its individual components, in Original or Modified Versions, may be sold by itself.
+
+2) Original or Modified Versions of the Font Software may be bundled, redistributed and/or sold with any software, provided that each copy contains the above copyright notice and this license. These can be included either as stand-alone text files, human-readable headers or in the appropriate machine-readable metadata fields within text or binary files as long as those fields can be easily viewed by the user.
+
+3) No Modified Version of the Font Software may use the Reserved Font Name(s) unless explicit written permission is granted by the corresponding Copyright Holder. This restriction only applies to the primary font name as presented to the users.
+
+4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font Software shall not be used to promote, endorse or advertise any Modified Version, except to acknowledge the contribution(s) of the Copyright Holder(s) and the Author(s) or with their explicit written permission.
+
+5) The Font Software, modified or unmodified, in part or in whole, must be distributed entirely under this license, and must not be distributed under any other license. The requirement for fonts to remain under this license does not apply to any document created using the Font Software.
+
+TERMINATION
+This license becomes null and void if any of the above conditions are not met.
+
+DISCLAIMER
+THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM OTHER DEALINGS IN THE FONT SOFTWARE.</string>
+ <key>openTypeNameLicenseURL</key>
+ <string>http://scripts.sil.org/OFL</string>
+ <key>openTypeNameManufacturer</key>
+ <string>SIL International</string>
+ <key>openTypeNameManufacturerURL</key>
+ <string>http://scripts.sil.org</string>
+ <key>openTypeNamePreferredFamilyName</key>
+ <string>Psf Testing</string>
+ <key>openTypeNamePreferredSubfamilyName</key>
+ <string>Italic</string>
+ <key>openTypeNameUniqueID</key>
+ <string>SIL International: Psf Test Italic: 2022</string>
+ <key>openTypeNameVersion</key>
+ <string>Version 5.550</string>
+ <key>openTypeOS2CodePageRanges</key>
+ <array>
+ <integer>0</integer>
+ <integer>1</integer>
+ <integer>2</integer>
+ <integer>4</integer>
+ <integer>7</integer>
+ <integer>8</integer>
+ </array>
+ <key>openTypeOS2FamilyClass</key>
+ <array>
+ <integer>0</integer>
+ <integer>0</integer>
+ </array>
+ <key>openTypeOS2Panose</key>
+ <array>
+ <integer>2</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ </array>
+ <key>openTypeOS2StrikeoutPosition</key>
+ <integer>700</integer>
+ <key>openTypeOS2StrikeoutSize</key>
+ <integer>100</integer>
+ <key>openTypeOS2SubscriptXOffset</key>
+ <integer>0</integer>
+ <key>openTypeOS2SubscriptXSize</key>
+ <integer>1433</integer>
+ <key>openTypeOS2SubscriptYOffset</key>
+ <integer>286</integer>
+ <key>openTypeOS2SubscriptYSize</key>
+ <integer>1331</integer>
+ <key>openTypeOS2SuperscriptXOffset</key>
+ <integer>0</integer>
+ <key>openTypeOS2SuperscriptXSize</key>
+ <integer>1433</integer>
+ <key>openTypeOS2SuperscriptYOffset</key>
+ <integer>976</integer>
+ <key>openTypeOS2SuperscriptYSize</key>
+ <integer>1331</integer>
+ <key>openTypeOS2Type</key>
+ <array/>
+ <key>openTypeOS2TypoAscender</key>
+ <integer>2100</integer>
+ <key>openTypeOS2TypoDescender</key>
+ <integer>-550</integer>
+ <key>openTypeOS2TypoLineGap</key>
+ <integer>1</integer>
+ <key>openTypeOS2UnicodeRanges</key>
+ <array>
+ <integer>0</integer>
+ <integer>1</integer>
+ <integer>6</integer>
+ <integer>7</integer>
+ <integer>31</integer>
+ <integer>33</integer>
+ <integer>35</integer>
+ <integer>36</integer>
+ <integer>37</integer>
+ <integer>38</integer>
+ <integer>39</integer>
+ <integer>40</integer>
+ <integer>45</integer>
+ <integer>46</integer>
+ <integer>47</integer>
+ <integer>57</integer>
+ <integer>60</integer>
+ <integer>62</integer>
+ <integer>64</integer>
+ <integer>67</integer>
+ <integer>69</integer>
+ <integer>89</integer>
+ </array>
+ <key>openTypeOS2VendorID</key>
+ <string>SIL</string>
+ <key>openTypeOS2WeightClass</key>
+ <integer>400</integer>
+ <key>openTypeOS2WidthClass</key>
+ <integer>5</integer>
+ <key>openTypeOS2WinAscent</key>
+ <integer>2100</integer>
+ <key>openTypeOS2WinDescent</key>
+ <integer>550</integer>
+ <key>postscriptBlueValues</key>
+ <array>
+ <integer>-490</integer>
+ <integer>-490</integer>
+ <integer>-25</integer>
+ <integer>0</integer>
+ <integer>1020</integer>
+ <integer>1040</integer>
+ <integer>1455</integer>
+ <integer>1485</integer>
+ <integer>1600</integer>
+ <integer>1620</integer>
+ </array>
+ <key>postscriptFontName</key>
+ <string>PsfTest-Italic</string>
+ <key>postscriptFullName</key>
+ <string>Psf Test Italic</string>
+ <key>postscriptStemSnapH</key>
+ <array>
+ <integer>140</integer>
+ <integer>145</integer>
+ <integer>150</integer>
+ <integer>155</integer>
+ <integer>160</integer>
+ <integer>165</integer>
+ <integer>170</integer>
+ <integer>175</integer>
+ <integer>185</integer>
+ <integer>270</integer>
+ </array>
+ <key>postscriptStemSnapV</key>
+ <array>
+ <integer>165</integer>
+ <integer>180</integer>
+ <integer>185</integer>
+ <integer>190</integer>
+ <integer>195</integer>
+ <integer>200</integer>
+ <integer>205</integer>
+ <integer>270</integer>
+ </array>
+ <key>postscriptUnderlinePosition</key>
+ <integer>-110</integer>
+ <key>postscriptUnderlineThickness</key>
+ <integer>80</integer>
+ <key>styleMapFamilyName</key>
+ <string>Psf test</string>
+ <key>styleMapStyleName</key>
+ <string>italic</string>
+ <key>styleName</key>
+ <string>Italic</string>
+ <key>trademark</key>
+ <string>Andika is a trademark of SIL International.</string>
+ <key>unitsPerEm</key>
+ <integer>2048</integer>
+ <key>versionMajor</key>
+ <integer>5</integer>
+ <key>versionMinor</key>
+ <integer>550</integer>
+ <key>xHeight</key>
+ <integer>1040</integer>
+ <key>year</key>
+ <integer>2021</integer>
+</dict>
+</plist>
diff --git a/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/A_mpergravel.glif b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/A_mpergravel.glif
new file mode 100644
index 0000000..7995f26
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/A_mpergravel.glif
@@ -0,0 +1,61 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Ampergravel" format="2">
+ <advance width="1222"/>
+ <unicode hex="3026"/>
+ <outline>
+ <contour>
+ <point x="490" y="1485" type="curve" smooth="yes"/>
+ <point x="331" y="1485"/>
+ <point x="155" y="1412"/>
+ <point x="155" y="1190" type="curve" smooth="yes"/>
+ <point x="155" y="1010"/>
+ <point x="362" y="815"/>
+ <point x="535" y="570" type="curve" smooth="yes"/>
+ <point x="794" y="202"/>
+ <point x="973" y="-25"/>
+ <point x="1025" y="-25" type="curve" smooth="yes"/>
+ <point x="1060" y="-25"/>
+ <point x="1138" y="38"/>
+ <point x="1175" y="70" type="curve"/>
+ <point x="1080" y="110"/>
+ <point x="914" y="297"/>
+ <point x="650" y="680" type="curve" smooth="yes"/>
+ <point x="494" y="906"/>
+ <point x="315" y="1075"/>
+ <point x="315" y="1200" type="curve" smooth="yes"/>
+ <point x="315" y="1291"/>
+ <point x="398" y="1350"/>
+ <point x="475" y="1350" type="curve" smooth="yes"/>
+ <point x="555" y="1350"/>
+ <point x="630" y="1294"/>
+ <point x="630" y="1205" type="curve" smooth="yes"/>
+ <point x="630" y="1116"/>
+ <point x="523" y="1001"/>
+ <point x="350" y="840" type="curve" smooth="yes"/>
+ <point x="146" y="651"/>
+ <point x="55" y="527"/>
+ <point x="55" y="375" type="curve" smooth="yes"/>
+ <point x="55" y="151"/>
+ <point x="217" y="-25"/>
+ <point x="440" y="-25" type="curve" smooth="yes"/>
+ <point x="713" y="-25"/>
+ <point x="1002" y="274"/>
+ <point x="1080" y="435" type="curve"/>
+ <point x="975" y="570" type="line"/>
+ <point x="911" y="403"/>
+ <point x="630" y="150"/>
+ <point x="455" y="150" type="curve" smooth="yes"/>
+ <point x="310" y="150"/>
+ <point x="230" y="267"/>
+ <point x="230" y="380" type="curve" smooth="yes"/>
+ <point x="230" y="490"/>
+ <point x="296" y="587"/>
+ <point x="470" y="740" type="curve" smooth="yes"/>
+ <point x="651" y="899"/>
+ <point x="790" y="1068"/>
+ <point x="790" y="1200" type="curve" smooth="yes"/>
+ <point x="790" y="1382"/>
+ <point x="642" y="1485"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/A_mpersand.glif b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/A_mpersand.glif
new file mode 100644
index 0000000..689cb3e
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/A_mpersand.glif
@@ -0,0 +1,61 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Ampersand" format="2">
+ <advance width="1202"/>
+ <unicode hex="0026"/>
+ <outline>
+ <contour>
+ <point x="1054" y="559" type="line"/>
+ <point x="949" y="395"/>
+ <point x="616" y="147"/>
+ <point x="441" y="147" type="curve" smooth="yes"/>
+ <point x="318" y="147"/>
+ <point x="256" y="224"/>
+ <point x="256" y="314" type="curve" smooth="yes"/>
+ <point x="256" y="453"/>
+ <point x="369" y="575"/>
+ <point x="590" y="725" type="curve" smooth="yes"/>
+ <point x="836" y="892"/>
+ <point x="1022" y="1067"/>
+ <point x="1022" y="1223" type="curve" smooth="yes"/>
+ <point x="1022" y="1363"/>
+ <point x="894" y="1455"/>
+ <point x="762" y="1455" type="curve" smooth="yes"/>
+ <point x="504" y="1455"/>
+ <point x="378" y="1328"/>
+ <point x="378" y="1114" type="curve" smooth="yes"/>
+ <point x="378" y="953"/>
+ <point x="514" y="771"/>
+ <point x="614" y="559" type="curve" smooth="yes"/>
+ <point x="783" y="198"/>
+ <point x="906" y="-25"/>
+ <point x="958" y="-25" type="curve" smooth="yes"/>
+ <point x="993" y="-25"/>
+ <point x="1087" y="37"/>
+ <point x="1132" y="69" type="curve"/>
+ <point x="1046" y="108"/>
+ <point x="926" y="291"/>
+ <point x="756" y="666" type="curve" smooth="yes"/>
+ <point x="665" y="866"/>
+ <point x="544" y="1029"/>
+ <point x="544" y="1149" type="curve" smooth="yes"/>
+ <point x="544" y="1252"/>
+ <point x="632" y="1323"/>
+ <point x="724" y="1323" type="curve" smooth="yes"/>
+ <point x="794" y="1323"/>
+ <point x="858" y="1266"/>
+ <point x="858" y="1193" type="curve" smooth="yes"/>
+ <point x="858" y="1107"/>
+ <point x="743" y="1004"/>
+ <point x="492" y="826" type="curve" smooth="yes"/>
+ <point x="182" y="606"/>
+ <point x="73" y="439"/>
+ <point x="73" y="288" type="curve" smooth="yes"/>
+ <point x="73" y="113"/>
+ <point x="195" y="-25"/>
+ <point x="383" y="-25" type="curve" smooth="yes"/>
+ <point x="656" y="-25"/>
+ <point x="1009" y="269"/>
+ <point x="1126" y="426" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/A_pos.glif b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/A_pos.glif
new file mode 100644
index 0000000..deb1650
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/A_pos.glif
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Apos" format="2">
+ <advance width="585"/>
+ <unicode hex="0027"/>
+ <outline>
+ <contour>
+ <point x="560" y="1024" type="line"/>
+ <point x="599" y="1162"/>
+ <point x="643" y="1312"/>
+ <point x="732" y="1553" type="curve"/>
+ <point x="527" y="1553" type="line"/>
+ <point x="498" y="1312"/>
+ <point x="465" y="1162"/>
+ <point x="435" y="1024" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/A_sterisk.glif b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/A_sterisk.glif
new file mode 100644
index 0000000..3027a5d
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/A_sterisk.glif
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Asterisk" format="2">
+ <advance width="1008"/>
+ <unicode hex="002A"/>
+ <outline>
+ <contour>
+ <point x="745" y="1568" type="line"/>
+ <point x="733" y="1438"/>
+ <point x="725" y="1359"/>
+ <point x="707" y="1274" type="curve"/>
+ <point x="644" y="1317"/>
+ <point x="587" y="1359"/>
+ <point x="498" y="1436" type="curve"/>
+ <point x="392" y="1313" type="line"/>
+ <point x="505" y="1264"/>
+ <point x="575" y="1236"/>
+ <point x="643" y="1196" type="curve"/>
+ <point x="556" y="1153"/>
+ <point x="474" y="1117"/>
+ <point x="340" y="1063" type="curve"/>
+ <point x="379" y="941" type="line"/>
+ <point x="504" y="1021"/>
+ <point x="584" y="1072"/>
+ <point x="668" y="1117" type="curve"/>
+ <point x="645" y="1034"/>
+ <point x="619" y="954"/>
+ <point x="575" y="823" type="curve"/>
+ <point x="715" y="823" type="line"/>
+ <point x="727" y="954"/>
+ <point x="741" y="1031"/>
+ <point x="758" y="1117" type="curve"/>
+ <point x="821" y="1073"/>
+ <point x="878" y="1032"/>
+ <point x="968" y="956" type="curve"/>
+ <point x="1073" y="1078" type="line"/>
+ <point x="959" y="1126"/>
+ <point x="890" y="1155"/>
+ <point x="823" y="1196" type="curve"/>
+ <point x="909" y="1236"/>
+ <point x="990" y="1273"/>
+ <point x="1126" y="1328" type="curve"/>
+ <point x="1086" y="1450" type="line"/>
+ <point x="961" y="1368"/>
+ <point x="883" y="1321"/>
+ <point x="797" y="1274" type="curve"/>
+ <point x="819" y="1359"/>
+ <point x="845" y="1438"/>
+ <point x="890" y="1568" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/A_tS_gn.glif b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/A_tS_gn.glif
new file mode 100644
index 0000000..2cd2542
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/A_tS_gn.glif
@@ -0,0 +1,104 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="AtSgn" format="2">
+ <advance width="1682"/>
+ <unicode hex="0040"/>
+ <outline>
+ <contour>
+ <point x="1082" y="-10" type="line"/>
+ <point x="980" y="-69"/>
+ <point x="889" y="-93"/>
+ <point x="796" y="-93" type="curve" smooth="yes"/>
+ <point x="507" y="-93"/>
+ <point x="301" y="104"/>
+ <point x="301" y="414" type="curve" smooth="yes"/>
+ <point x="301" y="476"/>
+ <point x="309" y="543"/>
+ <point x="327" y="613" type="curve" smooth="yes"/>
+ <point x="425" y="1003"/>
+ <point x="782" y="1245"/>
+ <point x="1110" y="1245" type="curve" smooth="yes"/>
+ <point x="1433" y="1245"/>
+ <point x="1590" y="1060"/>
+ <point x="1590" y="813" type="curve" smooth="yes"/>
+ <point x="1590" y="760"/>
+ <point x="1582" y="705"/>
+ <point x="1568" y="647" type="curve" smooth="yes"/>
+ <point x="1510" y="413"/>
+ <point x="1365" y="309"/>
+ <point x="1297" y="309" type="curve" smooth="yes"/>
+ <point x="1261" y="309"/>
+ <point x="1238" y="344"/>
+ <point x="1238" y="420" type="curve" smooth="yes"/>
+ <point x="1238" y="468"/>
+ <point x="1247" y="533"/>
+ <point x="1268" y="617" type="curve" smooth="yes"/>
+ <point x="1354" y="960" type="line"/>
+ <point x="1276" y="995"/>
+ <point x="1155" y="1019"/>
+ <point x="1074" y="1019" type="curve" smooth="yes"/>
+ <point x="910" y="1019"/>
+ <point x="790" y="962"/>
+ <point x="673" y="828" type="curve" smooth="yes"/>
+ <point x="607" y="751"/>
+ <point x="554" y="650"/>
+ <point x="524" y="529" type="curve" smooth="yes"/>
+ <point x="514" y="488"/>
+ <point x="509" y="450"/>
+ <point x="509" y="416" type="curve" smooth="yes"/>
+ <point x="509" y="259"/>
+ <point x="609" y="179"/>
+ <point x="719" y="179" type="curve" smooth="yes"/>
+ <point x="836" y="179"/>
+ <point x="1017" y="359"/>
+ <point x="1099" y="480" type="curve"/>
+ <point x="1093" y="446"/>
+ <point x="1089" y="413"/>
+ <point x="1089" y="382" type="curve" smooth="yes"/>
+ <point x="1089" y="264"/>
+ <point x="1136" y="176"/>
+ <point x="1233" y="176" type="curve" smooth="yes"/>
+ <point x="1408" y="176"/>
+ <point x="1635" y="331"/>
+ <point x="1716" y="656" type="curve" smooth="yes"/>
+ <point x="1732" y="722"/>
+ <point x="1740" y="784"/>
+ <point x="1740" y="843" type="curve" smooth="yes"/>
+ <point x="1740" y="1161"/>
+ <point x="1513" y="1377"/>
+ <point x="1153" y="1377" type="curve" smooth="yes"/>
+ <point x="738" y="1377"/>
+ <point x="310" y="1143"/>
+ <point x="175" y="603" type="curve" smooth="yes"/>
+ <point x="155" y="522"/>
+ <point x="145" y="446"/>
+ <point x="145" y="375" type="curve" smooth="yes"/>
+ <point x="145" y="-5"/>
+ <point x="417" y="-230"/>
+ <point x="747" y="-230" type="curve" smooth="yes"/>
+ <point x="882" y="-230"/>
+ <point x="1044" y="-184"/>
+ <point x="1161" y="-116" type="curve"/>
+ </contour>
+ <contour>
+ <point x="1141" y="706" type="line"/>
+ <point x="1075" y="570"/>
+ <point x="856" y="314"/>
+ <point x="766" y="314" type="curve" smooth="yes"/>
+ <point x="712" y="314"/>
+ <point x="669" y="362"/>
+ <point x="669" y="459" type="curve" smooth="yes"/>
+ <point x="669" y="491"/>
+ <point x="674" y="530"/>
+ <point x="685" y="573" type="curve" smooth="yes"/>
+ <point x="704" y="649"/>
+ <point x="739" y="726"/>
+ <point x="780" y="774" type="curve" smooth="yes"/>
+ <point x="859" y="868"/>
+ <point x="943" y="887"/>
+ <point x="1011" y="887" type="curve" smooth="yes"/>
+ <point x="1085" y="887"/>
+ <point x="1148" y="868"/>
+ <point x="1177" y="853" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/C_ircumA_ccent.glif b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/C_ircumA_ccent.glif
new file mode 100644
index 0000000..91ab811
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/C_ircumA_ccent.glif
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="CircumAccent" format="2">
+ <advance width="830"/>
+ <unicode hex="005E"/>
+ <anchor x="705" y="1635" name="U"/>
+ <outline>
+ <contour>
+ <point x="316" y="1147" type="line"/>
+ <point x="660" y="1421" type="line"/>
+ <point x="866" y="1147" type="line"/>
+ <point x="1015" y="1147" type="line"/>
+ <point x="761" y="1568" type="line"/>
+ <point x="591" y="1568" type="line"/>
+ <point x="166" y="1147" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/C_olon.glif b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/C_olon.glif
new file mode 100644
index 0000000..bcccfc2
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/C_olon.glif
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Colon" format="2">
+ <advance width="620"/>
+ <unicode hex="003A"/>
+ <outline>
+ <contour>
+ <point x="314" y="758" type="curve" smooth="yes"/>
+ <point x="314" y="696"/>
+ <point x="365" y="642"/>
+ <point x="430" y="642" type="curve" smooth="yes"/>
+ <point x="514" y="642"/>
+ <point x="590" y="712"/>
+ <point x="590" y="792" type="curve" smooth="yes"/>
+ <point x="590" y="854"/>
+ <point x="540" y="907"/>
+ <point x="476" y="907" type="curve" smooth="yes"/>
+ <point x="393" y="907"/>
+ <point x="314" y="837"/>
+ </contour>
+ <contour>
+ <point x="148" y="90" type="curve" smooth="yes"/>
+ <point x="148" y="28"/>
+ <point x="198" y="-25"/>
+ <point x="263" y="-25" type="curve" smooth="yes"/>
+ <point x="347" y="-25"/>
+ <point x="424" y="45"/>
+ <point x="424" y="125" type="curve" smooth="yes"/>
+ <point x="424" y="186"/>
+ <point x="374" y="240"/>
+ <point x="309" y="240" type="curve" smooth="yes"/>
+ <point x="225" y="240"/>
+ <point x="148" y="170"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/C_ombA_cute.glif b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/C_ombA_cute.glif
new file mode 100644
index 0000000..a7607fe
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/C_ombA_cute.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="CombAcute" format="2">
+ <unicode hex="0301"/>
+ <anchor x="-221" y="1635" name="U"/>
+ <anchor x="-355" y="1100" name="_U"/>
+ <outline>
+ <contour>
+ <point x="-99" y="1568" type="line"/>
+ <point x="-524" y="1147" type="line"/>
+ <point x="-354" y="1147" type="line"/>
+ <point x="150" y="1568" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/C_ombC_ircum.glif b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/C_ombC_ircum.glif
new file mode 100644
index 0000000..6614f85
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/C_ombC_ircum.glif
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="CombCircum" format="2">
+ <unicode hex="0302"/>
+ <anchor x="-221" y="1635" name="U"/>
+ <anchor x="-320" y="1100" name="_U"/>
+ <outline>
+ <contour>
+ <point x="-619" y="1147" type="line"/>
+ <point x="-275" y="1421" type="line"/>
+ <point x="-69" y="1147" type="line"/>
+ <point x="80" y="1147" type="line"/>
+ <point x="-174" y="1568" type="line"/>
+ <point x="-344" y="1568" type="line"/>
+ <point x="-769" y="1147" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/C_ombD_iaer.glif b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/C_ombD_iaer.glif
new file mode 100644
index 0000000..d6b35b7
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/C_ombD_iaer.glif
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="CombDiaer" format="2">
+ <unicode hex="0308"/>
+ <anchor x="-253" y="1505" name="U"/>
+ <anchor x="-350" y="1100" name="_U"/>
+ <outline>
+ <contour>
+ <point x="39" y="1338" type="curve" smooth="yes"/>
+ <point x="39" y="1399"/>
+ <point x="-7" y="1450"/>
+ <point x="-72" y="1450" type="curve" smooth="yes"/>
+ <point x="-167" y="1450"/>
+ <point x="-229" y="1372"/>
+ <point x="-229" y="1299" type="curve" smooth="yes"/>
+ <point x="-229" y="1238"/>
+ <point x="-182" y="1186"/>
+ <point x="-118" y="1186" type="curve" smooth="yes"/>
+ <point x="-33" y="1186"/>
+ <point x="39" y="1259"/>
+ </contour>
+ <contour>
+ <point x="-381" y="1338" type="curve" smooth="yes"/>
+ <point x="-381" y="1399"/>
+ <point x="-427" y="1450"/>
+ <point x="-492" y="1450" type="curve" smooth="yes"/>
+ <point x="-587" y="1450"/>
+ <point x="-649" y="1372"/>
+ <point x="-649" y="1299" type="curve" smooth="yes"/>
+ <point x="-649" y="1238"/>
+ <point x="-602" y="1186"/>
+ <point x="-538" y="1186" type="curve" smooth="yes"/>
+ <point x="-453" y="1186"/>
+ <point x="-381" y="1259"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/C_ombG_rave.glif b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/C_ombG_rave.glif
new file mode 100644
index 0000000..8869bb9
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/C_ombG_rave.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="CombGrave" format="2">
+ <unicode hex="0300"/>
+ <anchor x="-201" y="1635" name="U"/>
+ <anchor x="-335" y="1100" name="_U"/>
+ <outline>
+ <contour>
+ <point x="-619" y="1568" type="line"/>
+ <point x="-284" y="1147" type="line"/>
+ <point x="-134" y="1147" type="line"/>
+ <point x="-409" y="1568" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/C_ombR_ingA_bv.glif b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/C_ombR_ingA_bv.glif
new file mode 100644
index 0000000..38232a0
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/C_ombR_ingA_bv.glif
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="CombRingAbv" format="2">
+ <unicode hex="030A"/>
+ <anchor x="-221" y="1635" name="U"/>
+ <anchor x="-385" y="1100" name="_U"/>
+ <outline>
+ <contour>
+ <point x="-377" y="1259" type="curve" smooth="yes"/>
+ <point x="-427" y="1259"/>
+ <point x="-456" y="1287"/>
+ <point x="-456" y="1329" type="curve" smooth="yes"/>
+ <point x="-456" y="1400"/>
+ <point x="-393" y="1455"/>
+ <point x="-328" y="1455" type="curve" smooth="yes"/>
+ <point x="-278" y="1455"/>
+ <point x="-248" y="1428"/>
+ <point x="-248" y="1385" type="curve" smooth="yes"/>
+ <point x="-248" y="1314"/>
+ <point x="-312" y="1259"/>
+ </contour>
+ <contour>
+ <point x="-573" y="1320" type="curve" smooth="yes"/>
+ <point x="-573" y="1224"/>
+ <point x="-498" y="1147"/>
+ <point x="-395" y="1147" type="curve" smooth="yes"/>
+ <point x="-257" y="1147"/>
+ <point x="-131" y="1263"/>
+ <point x="-131" y="1394" type="curve" smooth="yes"/>
+ <point x="-131" y="1491"/>
+ <point x="-206" y="1568"/>
+ <point x="-310" y="1568" type="curve" smooth="yes"/>
+ <point x="-448" y="1568"/>
+ <point x="-573" y="1451"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/C_ombT_ilde.glif b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/C_ombT_ilde.glif
new file mode 100644
index 0000000..f79322e
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/C_ombT_ilde.glif
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="CombTilde" format="2">
+ <unicode hex="0303"/>
+ <anchor x="-290" y="1475" name="U"/>
+ <anchor x="-385" y="1100" name="_U"/>
+ <outline>
+ <contour>
+ <point x="-646" y="1181" type="line"/>
+ <point x="-629" y="1229"/>
+ <point x="-589" y="1269"/>
+ <point x="-540" y="1269" type="curve" smooth="yes"/>
+ <point x="-503" y="1269"/>
+ <point x="-466" y="1253"/>
+ <point x="-398" y="1218" type="curve" smooth="yes"/>
+ <point x="-344" y="1190"/>
+ <point x="-296" y="1171"/>
+ <point x="-243" y="1171" type="curve" smooth="yes"/>
+ <point x="-120" y="1171"/>
+ <point x="-15" y="1286"/>
+ <point x="16" y="1411" type="curve"/>
+ <point x="-89" y="1411" type="line"/>
+ <point x="-107" y="1366"/>
+ <point x="-147" y="1323"/>
+ <point x="-194" y="1323" type="curve" smooth="yes"/>
+ <point x="-236" y="1323"/>
+ <point x="-273" y="1342"/>
+ <point x="-338" y="1370" type="curve" smooth="yes"/>
+ <point x="-401" y="1397"/>
+ <point x="-442" y="1421"/>
+ <point x="-498" y="1421" type="curve" smooth="yes"/>
+ <point x="-617" y="1421"/>
+ <point x="-721" y="1300"/>
+ <point x="-751" y="1181" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/C_omma.glif b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/C_omma.glif
new file mode 100644
index 0000000..eaff517
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/C_omma.glif
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Comma" format="2">
+ <advance width="630"/>
+ <unicode hex="002C"/>
+ <outline>
+ <contour>
+ <point x="137" y="49" type="line"/>
+ <point x="277" y="49" type="line"/>
+ <point x="252" y="-50"/>
+ <point x="145" y="-169"/>
+ <point x="73" y="-225" type="curve"/>
+ <point x="163" y="-265" type="line"/>
+ <point x="280" y="-175"/>
+ <point x="431" y="-28"/>
+ <point x="431" y="118" type="curve" smooth="yes"/>
+ <point x="431" y="193"/>
+ <point x="378" y="245"/>
+ <point x="311" y="245" type="curve" smooth="yes"/>
+ <point x="254" y="245"/>
+ <point x="190" y="209"/>
+ <point x="161" y="147" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/D_igitE_ight.glif b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/D_igitE_ight.glif
new file mode 100644
index 0000000..262f860
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/D_igitE_ight.glif
@@ -0,0 +1,63 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitEight" format="2">
+ <advance width="1180"/>
+ <unicode hex="0038"/>
+ <anchor x="515" y="-100" name="L"/>
+ <anchor x="922" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="542" y="-25" type="curve" smooth="yes"/>
+ <point x="839" y="-25"/>
+ <point x="1160" y="170"/>
+ <point x="1160" y="475" type="curve" smooth="yes"/>
+ <point x="1160" y="626"/>
+ <point x="1068" y="733"/>
+ <point x="988" y="779" type="curve"/>
+ <point x="1155" y="860"/>
+ <point x="1270" y="970"/>
+ <point x="1270" y="1151" type="curve" smooth="yes"/>
+ <point x="1270" y="1340"/>
+ <point x="1102" y="1455"/>
+ <point x="901" y="1455" type="curve" smooth="yes"/>
+ <point x="620" y="1455"/>
+ <point x="348" y="1292"/>
+ <point x="348" y="1018" type="curve" smooth="yes"/>
+ <point x="348" y="891"/>
+ <point x="427" y="814"/>
+ <point x="483" y="779" type="curve"/>
+ <point x="297" y="706"/>
+ <point x="115" y="549"/>
+ <point x="115" y="325" type="curve" smooth="yes"/>
+ <point x="115" y="111"/>
+ <point x="317" y="-25"/>
+ </contour>
+ <contour>
+ <point x="750" y="848" type="curve" smooth="yes"/>
+ <point x="628" y="848"/>
+ <point x="541" y="917"/>
+ <point x="541" y="1029" type="curve" smooth="yes"/>
+ <point x="541" y="1205"/>
+ <point x="704" y="1299"/>
+ <point x="862" y="1299" type="curve" smooth="yes"/>
+ <point x="985" y="1299"/>
+ <point x="1076" y="1235"/>
+ <point x="1076" y="1128" type="curve" smooth="yes"/>
+ <point x="1076" y="955"/>
+ <point x="907" y="848"/>
+ </contour>
+ <contour>
+ <point x="564" y="142" type="curve" smooth="yes"/>
+ <point x="413" y="142"/>
+ <point x="322" y="225"/>
+ <point x="322" y="350" type="curve" smooth="yes"/>
+ <point x="322" y="557"/>
+ <point x="520" y="696"/>
+ <point x="712" y="696" type="curve" smooth="yes"/>
+ <point x="864" y="696"/>
+ <point x="961" y="602"/>
+ <point x="961" y="476" type="curve" smooth="yes"/>
+ <point x="961" y="266"/>
+ <point x="753" y="142"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/D_igitF_ive.glif b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/D_igitF_ive.glif
new file mode 100644
index 0000000..a224838
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/D_igitF_ive.glif
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitFive" format="2">
+ <advance width="1180"/>
+ <unicode hex="0035"/>
+ <anchor x="515" y="-100" name="L"/>
+ <anchor x="922" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1296" y="1431" type="line"/>
+ <point x="491" y="1431" type="line"/>
+ <point x="302" y="671" type="line"/>
+ <point x="438" y="718"/>
+ <point x="537" y="735"/>
+ <point x="643" y="735" type="curve" smooth="yes"/>
+ <point x="784" y="735"/>
+ <point x="933" y="660"/>
+ <point x="933" y="508" type="curve" smooth="yes"/>
+ <point x="933" y="273"/>
+ <point x="710" y="152"/>
+ <point x="497" y="152" type="curve" smooth="yes"/>
+ <point x="357" y="152"/>
+ <point x="263" y="195"/>
+ <point x="170" y="284" type="curve"/>
+ <point x="89" y="78" type="line"/>
+ <point x="195" y="2"/>
+ <point x="326" y="-25"/>
+ <point x="481" y="-25" type="curve" smooth="yes"/>
+ <point x="807" y="-25"/>
+ <point x="1129" y="190"/>
+ <point x="1129" y="546" type="curve" smooth="yes"/>
+ <point x="1129" y="757"/>
+ <point x="951" y="911"/>
+ <point x="702" y="911" type="curve" smooth="yes"/>
+ <point x="629" y="911"/>
+ <point x="576" y="906"/>
+ <point x="544" y="902" type="curve"/>
+ <point x="635" y="1264" type="line"/>
+ <point x="1020" y="1264" type="line" smooth="yes"/>
+ <point x="1104" y="1264"/>
+ <point x="1179" y="1260"/>
+ <point x="1250" y="1245" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/D_igitF_our.glif b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/D_igitF_our.glif
new file mode 100644
index 0000000..eeccb48
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/D_igitF_our.glif
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitFour" format="2">
+ <advance width="1180"/>
+ <unicode hex="0034"/>
+ <anchor x="522" y="-100" name="L"/>
+ <anchor x="929" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1161" y="387" type="line"/>
+ <point x="1199" y="539" type="line"/>
+ <point x="1009" y="539" type="line"/>
+ <point x="1236" y="1450" type="line"/>
+ <point x="1026" y="1450" type="line"/>
+ <point x="144" y="539" type="line"/>
+ <point x="106" y="387" type="line"/>
+ <point x="781" y="387" type="line"/>
+ <point x="685" y="0" type="line"/>
+ <point x="875" y="0" type="line"/>
+ <point x="971" y="387" type="line"/>
+ </contour>
+ <contour>
+ <point x="985" y="1205" type="line"/>
+ <point x="819" y="539" type="line"/>
+ <point x="337" y="539" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/D_igitN_ine.glif b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/D_igitN_ine.glif
new file mode 100644
index 0000000..191cd79
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/D_igitN_ine.glif
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitNine" format="2">
+ <advance width="1180"/>
+ <unicode hex="0039"/>
+ <anchor x="515" y="-100" name="L"/>
+ <anchor x="922" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="157" y="94" type="line"/>
+ <point x="208" y="29"/>
+ <point x="355" y="-25"/>
+ <point x="473" y="-25" type="curve" smooth="yes"/>
+ <point x="999" y="-25"/>
+ <point x="1267" y="520"/>
+ <point x="1267" y="982" type="curve" smooth="yes"/>
+ <point x="1267" y="1248"/>
+ <point x="1127" y="1455"/>
+ <point x="866" y="1455" type="curve" smooth="yes"/>
+ <point x="596" y="1455"/>
+ <point x="303" y="1269"/>
+ <point x="303" y="932" type="curve" smooth="yes"/>
+ <point x="303" y="761"/>
+ <point x="425" y="574"/>
+ <point x="661" y="574" type="curve" smooth="yes"/>
+ <point x="852" y="574"/>
+ <point x="1036" y="683"/>
+ <point x="1172" y="840" type="curve"/>
+ <point x="1121" y="922" type="line"/>
+ <point x="1019" y="810"/>
+ <point x="872" y="745"/>
+ <point x="717" y="745" type="curve" smooth="yes"/>
+ <point x="584" y="745"/>
+ <point x="498" y="833"/>
+ <point x="498" y="956" type="curve" smooth="yes"/>
+ <point x="498" y="1146"/>
+ <point x="638" y="1284"/>
+ <point x="821" y="1284" type="curve" smooth="yes"/>
+ <point x="998" y="1284"/>
+ <point x="1073" y="1119"/>
+ <point x="1073" y="956" type="curve" smooth="yes"/>
+ <point x="1073" y="455"/>
+ <point x="760" y="147"/>
+ <point x="496" y="147" type="curve" smooth="yes"/>
+ <point x="410" y="147"/>
+ <point x="298" y="209"/>
+ <point x="249" y="285" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/D_igitO_ne.glif b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/D_igitO_ne.glif
new file mode 100644
index 0000000..a639774
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/D_igitO_ne.glif
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitOne" format="2">
+ <advance width="1180"/>
+ <unicode hex="0031"/>
+ <anchor x="515" y="-100" name="L"/>
+ <anchor x="922" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1021" y="167" type="line"/>
+ <point x="706" y="167" type="line"/>
+ <point x="1026" y="1450" type="line"/>
+ <point x="856" y="1450" type="line"/>
+ <point x="459" y="1243" type="line"/>
+ <point x="440" y="1066" type="line"/>
+ <point x="782" y="1235" type="line"/>
+ <point x="516" y="167" type="line"/>
+ <point x="201" y="167" type="line"/>
+ <point x="160" y="0" type="line"/>
+ <point x="980" y="0" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/D_igitS_even.glif b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/D_igitS_even.glif
new file mode 100644
index 0000000..68c6ef6
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/D_igitS_even.glif
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitSeven" format="2">
+ <advance width="1180"/>
+ <unicode hex="0037"/>
+ <anchor x="515" y="-100" name="L"/>
+ <anchor x="922" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="420" y="0" type="line"/>
+ <point x="661" y="450"/>
+ <point x="972" y="877"/>
+ <point x="1367" y="1274" type="curve"/>
+ <point x="1406" y="1431" type="line"/>
+ <point x="386" y="1431" type="line"/>
+ <point x="341" y="1245" type="line"/>
+ <point x="421" y="1260"/>
+ <point x="538" y="1264"/>
+ <point x="726" y="1264" type="curve" smooth="yes"/>
+ <point x="1126" y="1264" type="line"/>
+ <point x="774" y="889"/>
+ <point x="517" y="555"/>
+ <point x="215" y="0" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/D_igitS_ix.glif b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/D_igitS_ix.glif
new file mode 100644
index 0000000..b6be793
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/D_igitS_ix.glif
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitSix" format="2">
+ <advance width="1180"/>
+ <unicode hex="0036"/>
+ <anchor x="515" y="-100" name="L"/>
+ <anchor x="922" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1313" y="1347" type="line"/>
+ <point x="1248" y="1418"/>
+ <point x="1135" y="1455"/>
+ <point x="1017" y="1455" type="curve" smooth="yes"/>
+ <point x="481" y="1454"/>
+ <point x="208" y="915"/>
+ <point x="208" y="475" type="curve" smooth="yes"/>
+ <point x="208" y="167"/>
+ <point x="392" y="-25"/>
+ <point x="623" y="-25" type="curve" smooth="yes"/>
+ <point x="947" y="-25"/>
+ <point x="1183" y="169"/>
+ <point x="1183" y="517" type="curve" smooth="yes"/>
+ <point x="1183" y="709"/>
+ <point x="1029" y="887"/>
+ <point x="793" y="887" type="curve" smooth="yes"/>
+ <point x="636" y="887"/>
+ <point x="432" y="784"/>
+ <point x="317" y="633" type="curve"/>
+ <point x="364" y="559" type="line"/>
+ <point x="471" y="660"/>
+ <point x="596" y="716"/>
+ <point x="751" y="716" type="curve" smooth="yes"/>
+ <point x="898" y="716"/>
+ <point x="987" y="614"/>
+ <point x="987" y="454" type="curve" smooth="yes"/>
+ <point x="987" y="263"/>
+ <point x="816" y="147"/>
+ <point x="656" y="147" type="curve" smooth="yes"/>
+ <point x="491" y="147"/>
+ <point x="403" y="284"/>
+ <point x="403" y="472" type="curve" smooth="yes"/>
+ <point x="403" y="962"/>
+ <point x="664" y="1284"/>
+ <point x="985" y="1284" type="curve" smooth="yes"/>
+ <point x="1081" y="1284"/>
+ <point x="1174" y="1235"/>
+ <point x="1222" y="1156" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/D_igitT_hree.glif b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/D_igitT_hree.glif
new file mode 100644
index 0000000..e01df2c
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/D_igitT_hree.glif
@@ -0,0 +1,52 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitThree" format="2">
+ <advance width="1180"/>
+ <unicode hex="0033"/>
+ <anchor x="515" y="-100" name="L"/>
+ <anchor x="922" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="562" y="853" type="line"/>
+ <point x="521" y="686" type="line"/>
+ <point x="591" y="686" type="line" smooth="yes"/>
+ <point x="802" y="686"/>
+ <point x="944" y="606"/>
+ <point x="944" y="476" type="curve" smooth="yes"/>
+ <point x="944" y="268"/>
+ <point x="738" y="147"/>
+ <point x="551" y="147" type="curve" smooth="yes"/>
+ <point x="371" y="147"/>
+ <point x="260" y="227"/>
+ <point x="181" y="348" type="curve"/>
+ <point x="104" y="137" type="line"/>
+ <point x="185" y="41"/>
+ <point x="341" y="-25"/>
+ <point x="518" y="-25" type="curve" smooth="yes"/>
+ <point x="815" y="-25"/>
+ <point x="1141" y="168"/>
+ <point x="1141" y="475" type="curve" smooth="yes"/>
+ <point x="1141" y="670"/>
+ <point x="973" y="763"/>
+ <point x="855" y="784" type="curve"/>
+ <point x="1046" y="827"/>
+ <point x="1266" y="955"/>
+ <point x="1266" y="1163" type="curve" smooth="yes"/>
+ <point x="1266" y="1338"/>
+ <point x="1073" y="1455"/>
+ <point x="852" y="1455" type="curve" smooth="yes"/>
+ <point x="685" y="1455"/>
+ <point x="536" y="1388"/>
+ <point x="433" y="1299" type="curve"/>
+ <point x="427" y="1132" type="line"/>
+ <point x="568" y="1246"/>
+ <point x="696" y="1284"/>
+ <point x="850" y="1284" type="curve" smooth="yes"/>
+ <point x="957" y="1284"/>
+ <point x="1068" y="1236"/>
+ <point x="1068" y="1137" type="curve" smooth="yes"/>
+ <point x="1068" y="949"/>
+ <point x="781" y="853"/>
+ <point x="632" y="853" type="curve" smooth="yes"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/D_igitT_wo.glif b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/D_igitT_wo.glif
new file mode 100644
index 0000000..d1bbb54
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/D_igitT_wo.glif
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitTwo" format="2">
+ <advance width="1180"/>
+ <unicode hex="0032"/>
+ <anchor x="515" y="-100" name="L"/>
+ <anchor x="882" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1063" y="176" type="line"/>
+ <point x="980" y="163"/>
+ <point x="822" y="162"/>
+ <point x="625" y="162" type="curve" smooth="yes"/>
+ <point x="370" y="162" type="line"/>
+ <point x="783" y="393"/>
+ <point x="1210" y="830"/>
+ <point x="1210" y="1098" type="curve" smooth="yes"/>
+ <point x="1210" y="1296"/>
+ <point x="1075" y="1455"/>
+ <point x="842" y="1455" type="curve" smooth="yes"/>
+ <point x="673" y="1455"/>
+ <point x="488" y="1374"/>
+ <point x="380" y="1264" type="curve"/>
+ <point x="388" y="1098" type="line"/>
+ <point x="503" y="1203"/>
+ <point x="660" y="1279"/>
+ <point x="783" y="1279" type="curve" smooth="yes"/>
+ <point x="915" y="1279"/>
+ <point x="1003" y="1199"/>
+ <point x="1003" y="1063" type="curve" smooth="yes"/>
+ <point x="1003" y="848"/>
+ <point x="506" y="386"/>
+ <point x="101" y="167" type="curve"/>
+ <point x="60" y="0" type="line"/>
+ <point x="1020" y="0" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/D_igitZ_ero.glif b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/D_igitZ_ero.glif
new file mode 100644
index 0000000..5d1bf0e
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/D_igitZ_ero.glif
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitZero" format="2">
+ <advance width="1180"/>
+ <unicode hex="0030"/>
+ <anchor x="520" y="-100" name="L"/>
+ <anchor x="927" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1024" y="711" type="curve" smooth="yes"/>
+ <point x="925" y="312"/>
+ <point x="747" y="142"/>
+ <point x="565" y="142" type="curve" smooth="yes"/>
+ <point x="432" y="142"/>
+ <point x="360" y="218"/>
+ <point x="360" y="383" type="curve" smooth="yes"/>
+ <point x="360" y="468"/>
+ <point x="377" y="579"/>
+ <point x="412" y="720" type="curve" smooth="yes"/>
+ <point x="512" y="1120"/>
+ <point x="678" y="1289"/>
+ <point x="871" y="1289" type="curve" smooth="yes"/>
+ <point x="1006" y="1289"/>
+ <point x="1077" y="1223"/>
+ <point x="1077" y="1051" type="curve" smooth="yes"/>
+ <point x="1077" y="966"/>
+ <point x="1060" y="854"/>
+ </contour>
+ <contour>
+ <point x="1230" y="715" type="curve" smooth="yes"/>
+ <point x="1262" y="841"/>
+ <point x="1276" y="949"/>
+ <point x="1276" y="1040" type="curve" smooth="yes"/>
+ <point x="1276" y="1335"/>
+ <point x="1124" y="1455"/>
+ <point x="902" y="1455" type="curve" smooth="yes"/>
+ <point x="613" y="1455"/>
+ <point x="344" y="1267"/>
+ <point x="206" y="716" type="curve" smooth="yes"/>
+ <point x="173" y="584"/>
+ <point x="158" y="474"/>
+ <point x="158" y="381" type="curve" smooth="yes"/>
+ <point x="158" y="104"/>
+ <point x="313" y="-25"/>
+ <point x="533" y="-25" type="curve" smooth="yes"/>
+ <point x="804" y="-25"/>
+ <point x="1086" y="138"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/D_ollarS_gn.glif b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/D_ollarS_gn.glif
new file mode 100644
index 0000000..5c2db20
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/D_ollarS_gn.glif
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DollarSgn" format="2">
+ <advance width="1180"/>
+ <unicode hex="0024"/>
+ <outline>
+ <contour>
+ <point x="1225" y="1280" type="line"/>
+ <point x="1119" y="1337"/>
+ <point x="1023" y="1361"/>
+ <point x="882" y="1361" type="curve" smooth="yes"/>
+ <point x="513" y="1361"/>
+ <point x="354" y="1182"/>
+ <point x="354" y="992" type="curve" smooth="yes"/>
+ <point x="354" y="837"/>
+ <point x="446" y="771"/>
+ <point x="639" y="650" type="curve" smooth="yes"/>
+ <point x="844" y="521"/>
+ <point x="919" y="439"/>
+ <point x="919" y="357" type="curve" smooth="yes"/>
+ <point x="919" y="244"/>
+ <point x="826" y="158"/>
+ <point x="635" y="158" type="curve" smooth="yes"/>
+ <point x="469" y="158"/>
+ <point x="314" y="266"/>
+ <point x="251" y="347" type="curve"/>
+ <point x="163" y="162" type="line"/>
+ <point x="304" y="58"/>
+ <point x="453" y="0"/>
+ <point x="606" y="0" type="curve" smooth="yes"/>
+ <point x="872" y="0"/>
+ <point x="1102" y="119"/>
+ <point x="1102" y="381" type="curve" smooth="yes"/>
+ <point x="1102" y="528"/>
+ <point x="981" y="657"/>
+ <point x="801" y="771" type="curve" smooth="yes"/>
+ <point x="610" y="892"/>
+ <point x="535" y="943"/>
+ <point x="535" y="1024" type="curve" smooth="yes"/>
+ <point x="535" y="1116"/>
+ <point x="657" y="1203"/>
+ <point x="832" y="1203" type="curve" smooth="yes"/>
+ <point x="950" y="1203"/>
+ <point x="1031" y="1176"/>
+ <point x="1144" y="1104" type="curve"/>
+ </contour>
+ <contour>
+ <point x="878" y="1568" type="line"/>
+ <point x="434" y="-216" type="line"/>
+ <point x="574" y="-216" type="line"/>
+ <point x="1018" y="1568" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/D_ottedC_irc.glif b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/D_ottedC_irc.glif
new file mode 100644
index 0000000..2cdf8fd
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/D_ottedC_irc.glif
@@ -0,0 +1,235 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DottedCirc" format="2">
+ <advance width="1086"/>
+ <unicode hex="25CC"/>
+ <anchor x="493" y="0" name="H"/>
+ <anchor x="468" y="-100" name="L"/>
+ <anchor x="750" y="0" name="O"/>
+ <anchor x="743" y="1000" name="U"/>
+ <outline>
+ <contour>
+ <point x="588" y="834" type="curve" smooth="yes"/>
+ <point x="588" y="858"/>
+ <point x="571" y="867"/>
+ <point x="553" y="867" type="curve" smooth="yes"/>
+ <point x="521" y="867"/>
+ <point x="491" y="837"/>
+ <point x="491" y="809" type="curve" smooth="yes"/>
+ <point x="491" y="788"/>
+ <point x="508" y="773"/>
+ <point x="530" y="773" type="curve" smooth="yes"/>
+ <point x="564" y="773"/>
+ <point x="588" y="805"/>
+ </contour>
+ <contour>
+ <point x="677" y="124" type="curve" smooth="yes"/>
+ <point x="647" y="124"/>
+ <point x="620" y="93"/>
+ <point x="620" y="67" type="curve" smooth="yes"/>
+ <point x="620" y="46"/>
+ <point x="636" y="30"/>
+ <point x="657" y="30" type="curve" smooth="yes"/>
+ <point x="687" y="30"/>
+ <point x="718" y="60"/>
+ <point x="718" y="86" type="curve" smooth="yes"/>
+ <point x="718" y="109"/>
+ <point x="700" y="124"/>
+ </contour>
+ <contour>
+ <point x="396" y="780" type="curve" smooth="yes"/>
+ <point x="369" y="780"/>
+ <point x="336" y="753"/>
+ <point x="336" y="722" type="curve" smooth="yes"/>
+ <point x="336" y="702"/>
+ <point x="351" y="687"/>
+ <point x="374" y="687" type="curve" smooth="yes"/>
+ <point x="403" y="687"/>
+ <point x="434" y="711"/>
+ <point x="434" y="744" type="curve" smooth="yes"/>
+ <point x="434" y="764"/>
+ <point x="414" y="780"/>
+ </contour>
+ <contour>
+ <point x="873" y="175" type="curve" smooth="yes"/>
+ <point x="872" y="199"/>
+ <point x="854" y="211"/>
+ <point x="833" y="211" type="curve" smooth="yes"/>
+ <point x="803" y="211"/>
+ <point x="774" y="183"/>
+ <point x="774" y="153" type="curve" smooth="yes"/>
+ <point x="774" y="133"/>
+ <point x="789" y="119"/>
+ <point x="812" y="119" type="curve" smooth="yes"/>
+ <point x="843" y="119"/>
+ <point x="873" y="146"/>
+ </contour>
+ <contour>
+ <point x="313" y="612" type="curve" smooth="yes"/>
+ <point x="312" y="633"/>
+ <point x="296" y="650"/>
+ <point x="275" y="650" type="curve" smooth="yes"/>
+ <point x="247" y="650"/>
+ <point x="215" y="623"/>
+ <point x="215" y="592" type="curve" smooth="yes"/>
+ <point x="215" y="573"/>
+ <point x="227" y="556"/>
+ <point x="251" y="556" type="curve" smooth="yes"/>
+ <point x="278" y="556"/>
+ <point x="313" y="581"/>
+ </contour>
+ <contour>
+ <point x="994" y="306" type="curve" smooth="yes"/>
+ <point x="993" y="327"/>
+ <point x="978" y="341"/>
+ <point x="958" y="341" type="curve" smooth="yes"/>
+ <point x="933" y="341"/>
+ <point x="896" y="321"/>
+ <point x="896" y="284" type="curve" smooth="yes"/>
+ <point x="896" y="265"/>
+ <point x="909" y="249"/>
+ <point x="934" y="249" type="curve" smooth="yes"/>
+ <point x="963" y="249"/>
+ <point x="994" y="275"/>
+ </contour>
+ <contour>
+ <point x="205" y="495" type="curve" smooth="yes"/>
+ <point x="175" y="495"/>
+ <point x="145" y="468"/>
+ <point x="145" y="438" type="curve" smooth="yes"/>
+ <point x="145" y="418"/>
+ <point x="159" y="402"/>
+ <point x="183" y="402" type="curve" smooth="yes"/>
+ <point x="208" y="402"/>
+ <point x="244" y="428"/>
+ <point x="244" y="459" type="curve" smooth="yes"/>
+ <point x="244" y="479"/>
+ <point x="227" y="495"/>
+ </contour>
+ <contour>
+ <point x="1026" y="496" type="curve" smooth="yes"/>
+ <point x="999" y="496"/>
+ <point x="965" y="469"/>
+ <point x="965" y="438" type="curve" smooth="yes"/>
+ <point x="965" y="418"/>
+ <point x="979" y="403"/>
+ <point x="1004" y="403" type="curve" smooth="yes"/>
+ <point x="1033" y="403"/>
+ <point x="1064" y="431"/>
+ <point x="1064" y="460" type="curve" smooth="yes"/>
+ <point x="1064" y="480"/>
+ <point x="1048" y="496"/>
+ </contour>
+ <contour>
+ <point x="237" y="307" type="curve" smooth="yes"/>
+ <point x="237" y="327"/>
+ <point x="221" y="341"/>
+ <point x="199" y="341" type="curve" smooth="yes"/>
+ <point x="169" y="341"/>
+ <point x="138" y="314"/>
+ <point x="138" y="285" type="curve" smooth="yes"/>
+ <point x="138" y="263"/>
+ <point x="153" y="248"/>
+ <point x="175" y="248" type="curve" smooth="yes"/>
+ <point x="206" y="248"/>
+ <point x="237" y="278"/>
+ </contour>
+ <contour>
+ <point x="1071" y="613" type="curve" smooth="yes"/>
+ <point x="1071" y="634"/>
+ <point x="1055" y="650"/>
+ <point x="1034" y="650" type="curve" smooth="yes"/>
+ <point x="1003" y="650"/>
+ <point x="973" y="619"/>
+ <point x="973" y="590" type="curve" smooth="yes"/>
+ <point x="973" y="570"/>
+ <point x="989" y="556"/>
+ <point x="1009" y="556" type="curve" smooth="yes"/>
+ <point x="1041" y="556"/>
+ <point x="1071" y="585"/>
+ </contour>
+ <contour>
+ <point x="292" y="177" type="curve" smooth="yes"/>
+ <point x="292" y="197"/>
+ <point x="277" y="211"/>
+ <point x="253" y="211" type="curve" smooth="yes"/>
+ <point x="224" y="211"/>
+ <point x="194" y="181"/>
+ <point x="194" y="154" type="curve" smooth="yes"/>
+ <point x="194" y="134"/>
+ <point x="211" y="118"/>
+ <point x="232" y="118" type="curve" smooth="yes"/>
+ <point x="262" y="118"/>
+ <point x="292" y="148"/>
+ </contour>
+ <contour>
+ <point x="917" y="724" type="curve" smooth="yes"/>
+ <point x="917" y="704"/>
+ <point x="931" y="686"/>
+ <point x="954" y="686" type="curve" smooth="yes"/>
+ <point x="984" y="686"/>
+ <point x="1014" y="716"/>
+ <point x="1014" y="745" type="curve" smooth="yes"/>
+ <point x="1014" y="765"/>
+ <point x="1000" y="780"/>
+ <point x="977" y="780" type="curve" smooth="yes"/>
+ <point x="947" y="780"/>
+ <point x="917" y="753"/>
+ </contour>
+ <contour>
+ <point x="403" y="87" type="curve" smooth="yes"/>
+ <point x="403" y="107"/>
+ <point x="390" y="123"/>
+ <point x="367" y="123" type="curve" smooth="yes"/>
+ <point x="339" y="123"/>
+ <point x="305" y="96"/>
+ <point x="305" y="68" type="curve" smooth="yes"/>
+ <point x="305" y="49"/>
+ <point x="320" y="30"/>
+ <point x="343" y="30" type="curve" smooth="yes"/>
+ <point x="371" y="30"/>
+ <point x="403" y="56"/>
+ </contour>
+ <contour>
+ <point x="806" y="810" type="curve" smooth="yes"/>
+ <point x="806" y="791"/>
+ <point x="819" y="773"/>
+ <point x="842" y="773" type="curve" smooth="yes"/>
+ <point x="869" y="773"/>
+ <point x="903" y="799"/>
+ <point x="903" y="830" type="curve" smooth="yes"/>
+ <point x="903" y="850"/>
+ <point x="889" y="867"/>
+ <point x="866" y="867" type="curve" smooth="yes"/>
+ <point x="836" y="867"/>
+ <point x="806" y="839"/>
+ </contour>
+ <contour>
+ <point x="553" y="57" type="curve" smooth="yes"/>
+ <point x="553" y="78"/>
+ <point x="538" y="93"/>
+ <point x="516" y="93" type="curve" smooth="yes"/>
+ <point x="485" y="93"/>
+ <point x="456" y="65"/>
+ <point x="456" y="36" type="curve" smooth="yes"/>
+ <point x="456" y="16"/>
+ <point x="471" y="0"/>
+ <point x="493" y="0" type="curve" smooth="yes"/>
+ <point x="523" y="0"/>
+ <point x="553" y="27"/>
+ </contour>
+ <contour>
+ <point x="656" y="839" type="curve" smooth="yes"/>
+ <point x="656" y="819"/>
+ <point x="671" y="805"/>
+ <point x="693" y="805" type="curve" smooth="yes"/>
+ <point x="721" y="805"/>
+ <point x="754" y="830"/>
+ <point x="754" y="861" type="curve" smooth="yes"/>
+ <point x="754" y="882"/>
+ <point x="738" y="898"/>
+ <point x="716" y="898" type="curve" smooth="yes"/>
+ <point x="685" y="898"/>
+ <point x="656" y="868"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/E_qS_gn.glif b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/E_qS_gn.glif
new file mode 100644
index 0000000..3d756e8
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/E_qS_gn.glif
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="EqSgn" format="2">
+ <advance width="1180"/>
+ <unicode hex="003D"/>
+ <outline>
+ <contour>
+ <point x="177" y="470" type="line"/>
+ <point x="1137" y="470" type="line"/>
+ <point x="1173" y="617" type="line"/>
+ <point x="213" y="617" type="line"/>
+ </contour>
+ <contour>
+ <point x="262" y="813" type="line"/>
+ <point x="1222" y="813" type="line"/>
+ <point x="1259" y="960" type="line"/>
+ <point x="299" y="960" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/E_xclamationM_rk.glif b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/E_xclamationM_rk.glif
new file mode 100644
index 0000000..a1c14d9
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/E_xclamationM_rk.glif
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="ExclamationMrk" format="2">
+ <advance width="744"/>
+ <unicode hex="0021"/>
+ <outline>
+ <contour>
+ <point x="497" y="431" type="line"/>
+ <point x="574" y="715"/>
+ <point x="653" y="1054"/>
+ <point x="799" y="1480" type="curve"/>
+ <point x="544" y="1480" type="line"/>
+ <point x="475" y="1054"/>
+ <point x="386" y="715"/>
+ <point x="322" y="431" type="curve"/>
+ </contour>
+ <contour>
+ <point x="188" y="90" type="curve" smooth="yes"/>
+ <point x="188" y="28"/>
+ <point x="238" y="-25"/>
+ <point x="303" y="-25" type="curve" smooth="yes"/>
+ <point x="387" y="-25"/>
+ <point x="464" y="45"/>
+ <point x="464" y="125" type="curve" smooth="yes"/>
+ <point x="464" y="186"/>
+ <point x="414" y="240"/>
+ <point x="349" y="240" type="curve" smooth="yes"/>
+ <point x="265" y="240"/>
+ <point x="188" y="170"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/F_ullS_top.glif b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/F_ullS_top.glif
new file mode 100644
index 0000000..a6c4d08
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/F_ullS_top.glif
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="FullStop" format="2">
+ <advance width="620"/>
+ <unicode hex="002E"/>
+ <outline>
+ <contour>
+ <point x="148" y="90" type="curve" smooth="yes"/>
+ <point x="148" y="28"/>
+ <point x="198" y="-25"/>
+ <point x="263" y="-25" type="curve" smooth="yes"/>
+ <point x="347" y="-25"/>
+ <point x="424" y="45"/>
+ <point x="424" y="125" type="curve" smooth="yes"/>
+ <point x="424" y="186"/>
+ <point x="374" y="240"/>
+ <point x="309" y="240" type="curve" smooth="yes"/>
+ <point x="225" y="240"/>
+ <point x="148" y="170"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/F_ullstart.glif b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/F_ullstart.glif
new file mode 100644
index 0000000..42c72b2
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/F_ullstart.glif
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Fullstart" format="2">
+ <advance width="640"/>
+ <outline>
+ <contour>
+ <point x="185" y="110" type="curve" smooth="yes"/>
+ <point x="185" y="36"/>
+ <point x="246" y="-25"/>
+ <point x="320" y="-25" type="curve" smooth="yes"/>
+ <point x="394" y="-25"/>
+ <point x="455" y="36"/>
+ <point x="455" y="110" type="curve" smooth="yes"/>
+ <point x="455" y="184"/>
+ <point x="394" y="245"/>
+ <point x="320" y="245" type="curve" smooth="yes"/>
+ <point x="246" y="245"/>
+ <point x="185" y="184"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/G_T_S_gn.glif b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/G_T_S_gn.glif
new file mode 100644
index 0000000..12da8b3
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/G_T_S_gn.glif
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="GTSgn" format="2">
+ <advance width="1180"/>
+ <unicode hex="003E"/>
+ <outline>
+ <contour>
+ <point x="312" y="1014" type="line"/>
+ <point x="1028" y="725" type="line"/>
+ <point x="163" y="417" type="line"/>
+ <point x="119" y="240" type="line"/>
+ <point x="1197" y="632" type="line"/>
+ <point x="1239" y="799" type="line"/>
+ <point x="356" y="1191" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/G_raveA_ccent.glif b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/G_raveA_ccent.glif
new file mode 100644
index 0000000..48adfc4
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/G_raveA_ccent.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="GraveAccent" format="2">
+ <advance width="560"/>
+ <unicode hex="0060"/>
+ <anchor x="738" y="1635" name="U"/>
+ <outline>
+ <contour>
+ <point x="261" y="1568" type="line"/>
+ <point x="596" y="1147" type="line"/>
+ <point x="746" y="1147" type="line"/>
+ <point x="471" y="1568" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/H_yphen.glif b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/H_yphen.glif
new file mode 100644
index 0000000..ae8cad5
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/H_yphen.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Hyphen" format="2">
+ <advance width="840"/>
+ <unicode hex="2010"/>
+ <anchor x="645" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="155" y="544" type="line"/>
+ <point x="855" y="544" type="line"/>
+ <point x="892" y="691" type="line"/>
+ <point x="192" y="691" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/H_yphenM_inus.glif b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/H_yphenM_inus.glif
new file mode 100644
index 0000000..155b460
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/H_yphenM_inus.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="HyphenMinus" format="2">
+ <advance width="840"/>
+ <unicode hex="002D"/>
+ <anchor x="645" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="155" y="544" type="line"/>
+ <point x="855" y="544" type="line"/>
+ <point x="892" y="691" type="line"/>
+ <point x="192" y="691" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/H_yphen_S_oft.glif b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/H_yphen_S_oft.glif
new file mode 100644
index 0000000..0c7b834
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/H_yphen_S_oft.glif
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Hyphen_Soft" format="2">
+ <advance width="840"/>
+ <unicode hex="00AD"/>
+ <anchor x="645" y="1100" name="U"/>
+ <outline>
+ <component base="HyphenMinus"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_T_S_gn.glif b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_T_S_gn.glif
new file mode 100644
index 0000000..3c857a5
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_T_S_gn.glif
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LTSgn" format="2">
+ <advance width="1180"/>
+ <unicode hex="003C"/>
+ <outline>
+ <contour>
+ <point x="1123" y="417" type="line"/>
+ <point x="408" y="705" type="line"/>
+ <point x="1272" y="1014" type="line"/>
+ <point x="1316" y="1191" type="line"/>
+ <point x="239" y="799" type="line"/>
+ <point x="197" y="632" type="line"/>
+ <point x="1079" y="240" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_ftC_urlyB_rac.glif b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_ftC_urlyB_rac.glif
new file mode 100644
index 0000000..4f8c90c
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_ftC_urlyB_rac.glif
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LftCurlyBrac" format="2">
+ <advance width="980"/>
+ <unicode hex="007B"/>
+ <outline>
+ <contour>
+ <point x="713" y="-265" type="line"/>
+ <point x="660" y="-250"/>
+ <point x="526" y="-188"/>
+ <point x="526" y="-158" type="curve" smooth="yes"/>
+ <point x="526" y="-59"/>
+ <point x="649" y="404"/>
+ <point x="649" y="469" type="curve" smooth="yes"/>
+ <point x="649" y="509"/>
+ <point x="520" y="577"/>
+ <point x="520" y="602" type="curve" smooth="yes"/>
+ <point x="520" y="620"/>
+ <point x="688" y="700"/>
+ <point x="712" y="730" type="curve" smooth="yes"/>
+ <point x="741" y="767"/>
+ <point x="867" y="1326"/>
+ <point x="912" y="1372" type="curve" smooth="yes"/>
+ <point x="938" y="1399"/>
+ <point x="1073" y="1447"/>
+ <point x="1146" y="1470" type="curve"/>
+ <point x="1140" y="1607" type="line"/>
+ <point x="1030" y="1581"/>
+ <point x="856" y="1529"/>
+ <point x="805" y="1485" type="curve" smooth="yes"/>
+ <point x="714" y="1406"/>
+ <point x="572" y="796"/>
+ <point x="540" y="764" type="curve" smooth="yes"/>
+ <point x="504" y="729"/>
+ <point x="300" y="633"/>
+ <point x="300" y="601" type="curve" smooth="yes"/>
+ <point x="300" y="560"/>
+ <point x="460" y="468"/>
+ <point x="460" y="432" type="curve" smooth="yes"/>
+ <point x="460" y="362"/>
+ <point x="355" y="-53"/>
+ <point x="355" y="-219" type="curve" smooth="yes"/>
+ <point x="355" y="-247"/>
+ <point x="358" y="-268"/>
+ <point x="365" y="-279" type="curve" smooth="yes"/>
+ <point x="394" y="-323"/>
+ <point x="542" y="-375"/>
+ <point x="639" y="-402" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_ftP_aren.glif b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_ftP_aren.glif
new file mode 100644
index 0000000..bc65fc1
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_ftP_aren.glif
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LftParen" format="2">
+ <advance width="775"/>
+ <unicode hex="0028"/>
+ <outline>
+ <contour>
+ <point x="895" y="1607" type="line"/>
+ <point x="582" y="1415"/>
+ <point x="314" y="1061"/>
+ <point x="207" y="633" type="curve" smooth="yes"/>
+ <point x="176" y="508"/>
+ <point x="161" y="386"/>
+ <point x="161" y="270" type="curve" smooth="yes"/>
+ <point x="161" y="17"/>
+ <point x="233" y="-211"/>
+ <point x="374" y="-402" type="curve"/>
+ <point x="505" y="-260" type="line"/>
+ <point x="397" y="-102"/>
+ <point x="348" y="75"/>
+ <point x="348" y="270" type="curve" smooth="yes"/>
+ <point x="348" y="385"/>
+ <point x="365" y="506"/>
+ <point x="397" y="633" type="curve" smooth="yes"/>
+ <point x="484" y="982"/>
+ <point x="647" y="1254"/>
+ <point x="932" y="1455" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_ftS_qrB_rac.glif b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_ftS_qrB_rac.glif
new file mode 100644
index 0000000..6d064d1
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_ftS_qrB_rac.glif
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LftSqrBrac" format="2">
+ <advance width="770"/>
+ <unicode hex="005B"/>
+ <outline>
+ <contour>
+ <point x="484" y="-402" type="line"/>
+ <point x="521" y="-255" type="line"/>
+ <point x="266" y="-255" type="line"/>
+ <point x="679" y="1421" type="line"/>
+ <point x="934" y="1421" type="line"/>
+ <point x="970" y="1568" type="line"/>
+ <point x="530" y="1568" type="line"/>
+ <point x="44" y="-402" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_owL_ine.glif b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_owL_ine.glif
new file mode 100644
index 0000000..879d36b
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_owL_ine.glif
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LowLine" format="2">
+ <advance width="1254"/>
+ <unicode hex="005F"/>
+ <outline>
+ <contour>
+ <point x="-138" y="-314" type="line"/>
+ <point x="1135" y="-314" type="line"/>
+ <point x="1172" y="-167" type="line"/>
+ <point x="-101" y="-167" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnC_apA_.alt.glif b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnC_apA_.alt.glif
new file mode 100644
index 0000000..6cb1336
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnC_apA_.alt.glif
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapA.alt" format="2">
+ <advance width="1395"/>
+ <unicode hex="3029"/>
+ <anchor x="668" y="1460" name="H"/>
+ <anchor x="688" y="1560" name="L"/>
+ <anchor x="-75" y="1460" name="O"/>
+ <anchor x="688" y="-70" name="U"/>
+ <outline>
+ <contour>
+ <point x="1130" y="1460" type="line"/>
+ <point x="996" y="1075" type="line"/>
+ <point x="381" y="1075" type="line"/>
+ <point x="245" y="1460" type="line"/>
+ <point x="40" y="1460" type="line"/>
+ <point x="75" y="1380"/>
+ <point x="113" y="1291"/>
+ <point x="180" y="1105" type="curve" smooth="yes"/>
+ <point x="580" y="0" type="line"/>
+ <point x="795" y="0" type="line"/>
+ <point x="1195" y="1105" type="line" smooth="yes"/>
+ <point x="1263" y="1292"/>
+ <point x="1299" y="1379"/>
+ <point x="1335" y="1460" type="curve"/>
+ </contour>
+ <contour>
+ <point x="435" y="920" type="line"/>
+ <point x="942" y="920" type="line"/>
+ <point x="690" y="195" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnC_apA_.glif b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnC_apA_.glif
new file mode 100644
index 0000000..3a14b0e
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnC_apA_.glif
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapA" format="2">
+ <advance width="1395"/>
+ <unicode hex="0041"/>
+ <anchor x="1170" y="0" name="H"/>
+ <anchor x="602" y="-100" name="L"/>
+ <anchor x="1390" y="0" name="O"/>
+ <anchor x="1009" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1080" y="0" type="line"/>
+ <point x="1275" y="0" type="line"/>
+ <point x="1259" y="78"/>
+ <point x="1243" y="166"/>
+ <point x="1221" y="348" type="curve" smooth="yes"/>
+ <point x="1091" y="1431" type="line"/>
+ <point x="876" y="1431" type="line"/>
+ <point x="206" y="348" type="line" smooth="yes"/>
+ <point x="93" y="165"/>
+ <point x="35" y="79"/>
+ <point x="-20" y="0" type="curve"/>
+ <point x="195" y="0" type="line"/>
+ <point x="422" y="377" type="line"/>
+ <point x="1038" y="377" type="line"/>
+ </contour>
+ <contour>
+ <point x="944" y="1240" type="line"/>
+ <point x="1022" y="529" type="line"/>
+ <point x="514" y="529" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnC_apA_D_iaer.glif b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnC_apA_D_iaer.glif
new file mode 100644
index 0000000..6c3502c
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnC_apA_D_iaer.glif
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapADiaer" format="2">
+ <advance width="1395"/>
+ <unicode hex="00C4"/>
+ <anchor x="1170" y="0" name="H"/>
+ <anchor x="602" y="-100" name="L"/>
+ <anchor x="1390" y="0" name="O"/>
+ <anchor x="1106" y="1935" name="U"/>
+ <outline>
+ <component base="LtnCapA"/>
+ <component base="CombDiaer" xOffset="1359" yOffset="430"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnC_apB_.glif b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnC_apB_.glif
new file mode 100644
index 0000000..5445f93
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnC_apB_.glif
@@ -0,0 +1,62 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapB" format="2">
+ <advance width="1271"/>
+ <unicode hex="0042"/>
+ <anchor x="530" y="-100" name="L"/>
+ <anchor x="937" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="625" y="1284" type="line"/>
+ <point x="667" y="1286"/>
+ <point x="733" y="1289"/>
+ <point x="811" y="1289" type="curve" smooth="yes"/>
+ <point x="993" y="1289"/>
+ <point x="1080" y="1230"/>
+ <point x="1080" y="1105" type="curve" smooth="yes"/>
+ <point x="1080" y="932"/>
+ <point x="931" y="838"/>
+ <point x="698" y="838" type="curve" smooth="yes"/>
+ <point x="513" y="838" type="line"/>
+ </contour>
+ <contour>
+ <point x="226" y="446" type="line"/>
+ <point x="178" y="252"/>
+ <point x="134" y="78"/>
+ <point x="100" y="0" type="curve"/>
+ <point x="151" y="-5"/>
+ <point x="359" y="-10"/>
+ <point x="562" y="-10" type="curve" smooth="yes"/>
+ <point x="960" y="-10"/>
+ <point x="1201" y="149"/>
+ <point x="1201" y="453" type="curve" smooth="yes"/>
+ <point x="1201" y="644"/>
+ <point x="1067" y="736"/>
+ <point x="955" y="764" type="curve"/>
+ <point x="1155" y="819"/>
+ <point x="1283" y="941"/>
+ <point x="1283" y="1140" type="curve" smooth="yes"/>
+ <point x="1283" y="1310"/>
+ <point x="1136" y="1441"/>
+ <point x="869" y="1441" type="curve" smooth="yes"/>
+ <point x="700" y="1441"/>
+ <point x="546" y="1437"/>
+ <point x="456" y="1431" type="curve"/>
+ <point x="452" y="1352"/>
+ <point x="407" y="1172"/>
+ <point x="359" y="980" type="curve" smooth="yes"/>
+ </contour>
+ <contour>
+ <point x="476" y="686" type="line"/>
+ <point x="721" y="686" type="line" smooth="yes"/>
+ <point x="892" y="686"/>
+ <point x="1011" y="598"/>
+ <point x="1011" y="450" type="curve" smooth="yes"/>
+ <point x="1011" y="218"/>
+ <point x="806" y="147"/>
+ <point x="586" y="147" type="curve" smooth="yes"/>
+ <point x="474" y="147"/>
+ <point x="379" y="150"/>
+ <point x="342" y="152" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnC_apC_.glif b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnC_apC_.glif
new file mode 100644
index 0000000..c2e4948
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnC_apC_.glif
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapC" format="2">
+ <advance width="1341"/>
+ <unicode hex="0043"/>
+ <anchor x="690" y="0" name="H"/>
+ <anchor x="665" y="-100" name="L"/>
+ <anchor x="1072" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1237" y="318" type="line"/>
+ <point x="1115" y="222"/>
+ <point x="934" y="147"/>
+ <point x="752" y="147" type="curve" smooth="yes"/>
+ <point x="537" y="147"/>
+ <point x="385" y="304"/>
+ <point x="385" y="532" type="curve" smooth="yes"/>
+ <point x="385" y="964"/>
+ <point x="704" y="1289"/>
+ <point x="1037" y="1289" type="curve" smooth="yes"/>
+ <point x="1168" y="1289"/>
+ <point x="1310" y="1235"/>
+ <point x="1385" y="1132" type="curve"/>
+ <point x="1489" y="1308" type="line"/>
+ <point x="1388" y="1408"/>
+ <point x="1201" y="1455"/>
+ <point x="1058" y="1455" type="curve" smooth="yes"/>
+ <point x="645" y="1455"/>
+ <point x="185" y="1093"/>
+ <point x="185" y="513" type="curve" smooth="yes"/>
+ <point x="185" y="202"/>
+ <point x="381" y="-25"/>
+ <point x="709" y="-25" type="curve" smooth="yes"/>
+ <point x="896" y="-25"/>
+ <point x="1087" y="21"/>
+ <point x="1230" y="127" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnC_apD_.glif b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnC_apD_.glif
new file mode 100644
index 0000000..3b93811
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnC_apD_.glif
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapD" format="2">
+ <advance width="1421"/>
+ <unicode hex="0044"/>
+ <anchor x="630" y="-100" name="L"/>
+ <anchor x="1037" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="226" y="446" type="line"/>
+ <point x="176" y="252"/>
+ <point x="134" y="78"/>
+ <point x="100" y="0" type="curve"/>
+ <point x="100" y="0"/>
+ <point x="414" y="-10"/>
+ <point x="542" y="-10" type="curve" smooth="yes"/>
+ <point x="985" y="-10"/>
+ <point x="1299" y="181"/>
+ <point x="1415" y="648" type="curve" smooth="yes"/>
+ <point x="1437" y="738"/>
+ <point x="1447" y="819"/>
+ <point x="1447" y="891" type="curve" smooth="yes"/>
+ <point x="1447" y="1279"/>
+ <point x="1188" y="1441"/>
+ <point x="894" y="1441" type="curve" smooth="yes"/>
+ <point x="759" y="1441"/>
+ <point x="543" y="1437"/>
+ <point x="456" y="1431" type="curve"/>
+ <point x="452" y="1352"/>
+ <point x="407" y="1172"/>
+ <point x="359" y="980" type="curve" smooth="yes"/>
+ </contour>
+ <contour>
+ <point x="623" y="1279" type="line"/>
+ <point x="674" y="1281"/>
+ <point x="764" y="1284"/>
+ <point x="830" y="1284" type="curve" smooth="yes"/>
+ <point x="1105" y="1284"/>
+ <point x="1246" y="1140"/>
+ <point x="1246" y="850" type="curve" smooth="yes"/>
+ <point x="1246" y="784"/>
+ <point x="1236" y="710"/>
+ <point x="1216" y="629" type="curve" smooth="yes"/>
+ <point x="1134" y="300"/>
+ <point x="925" y="152"/>
+ <point x="572" y="152" type="curve" smooth="yes"/>
+ <point x="477" y="152"/>
+ <point x="391" y="158"/>
+ <point x="345" y="162" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnC_apE_.glif b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnC_apE_.glif
new file mode 100644
index 0000000..8b5f8b9
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnC_apE_.glif
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapE" format="2">
+ <advance width="1140"/>
+ <unicode hex="0045"/>
+ <anchor x="540" y="0" name="H"/>
+ <anchor x="515" y="-100" name="L"/>
+ <anchor x="857" y="0" name="O"/>
+ <anchor x="1400" y="1200" name="R"/>
+ <anchor x="922" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="511" y="828" type="line"/>
+ <point x="621" y="1269" type="line"/>
+ <point x="1266" y="1269" type="line"/>
+ <point x="1306" y="1431" type="line"/>
+ <point x="456" y="1431" type="line"/>
+ <point x="452" y="1352"/>
+ <point x="413" y="1197"/>
+ <point x="365" y="1005" type="curve" smooth="yes"/>
+ <point x="221" y="426" type="line" smooth="yes"/>
+ <point x="173" y="233"/>
+ <point x="134" y="78"/>
+ <point x="100" y="0" type="curve"/>
+ <point x="980" y="0" type="line"/>
+ <point x="1023" y="176" type="line"/>
+ <point x="940" y="163"/>
+ <point x="806" y="162"/>
+ <point x="609" y="162" type="curve" smooth="yes"/>
+ <point x="345" y="162" type="line"/>
+ <point x="472" y="671" type="line"/>
+ <point x="1042" y="671" type="line"/>
+ <point x="1081" y="828" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnC_apF_.glif b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnC_apF_.glif
new file mode 100644
index 0000000..cbc1726
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnC_apF_.glif
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapF" format="2">
+ <advance width="1130"/>
+ <unicode hex="0046"/>
+ <anchor x="510" y="-100" name="L"/>
+ <anchor x="917" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="508" y="818" type="line"/>
+ <point x="621" y="1269" type="line"/>
+ <point x="1286" y="1269" type="line"/>
+ <point x="1326" y="1431" type="line"/>
+ <point x="456" y="1431" type="line"/>
+ <point x="452" y="1352"/>
+ <point x="412" y="1193"/>
+ <point x="364" y="1000" type="curve" smooth="yes"/>
+ <point x="221" y="426" type="line" smooth="yes"/>
+ <point x="173" y="233"/>
+ <point x="134" y="78"/>
+ <point x="100" y="0" type="curve"/>
+ <point x="320" y="0" type="line"/>
+ <point x="323" y="76"/>
+ <point x="362" y="232"/>
+ <point x="411" y="426" type="curve" smooth="yes"/>
+ <point x="470" y="662" type="line"/>
+ <point x="1050" y="662" type="line"/>
+ <point x="1088" y="818" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnC_apG_.glif b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnC_apG_.glif
new file mode 100644
index 0000000..c39b75a
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnC_apG_.glif
@@ -0,0 +1,48 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapG" format="2">
+ <advance width="1406"/>
+ <unicode hex="0047"/>
+ <anchor x="685" y="0" name="H"/>
+ <anchor x="660" y="-100" name="L"/>
+ <anchor x="1067" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1403" y="710" type="line"/>
+ <point x="863" y="710" type="line"/>
+ <point x="822" y="548" type="line"/>
+ <point x="1172" y="548" type="line"/>
+ <point x="1090" y="220" type="line"/>
+ <point x="1012" y="176"/>
+ <point x="858" y="147"/>
+ <point x="739" y="147" type="curve" smooth="yes"/>
+ <point x="520" y="147"/>
+ <point x="384" y="272"/>
+ <point x="384" y="493" type="curve" smooth="yes"/>
+ <point x="384" y="560"/>
+ <point x="394" y="636"/>
+ <point x="415" y="720" type="curve" smooth="yes"/>
+ <point x="500" y="1062"/>
+ <point x="747" y="1289"/>
+ <point x="1052" y="1289" type="curve" smooth="yes"/>
+ <point x="1195" y="1289"/>
+ <point x="1335" y="1233"/>
+ <point x="1425" y="1122" type="curve"/>
+ <point x="1534" y="1298" type="line"/>
+ <point x="1409" y="1405"/>
+ <point x="1235" y="1455"/>
+ <point x="1063" y="1455" type="curve" smooth="yes"/>
+ <point x="680" y="1455"/>
+ <point x="334" y="1195"/>
+ <point x="217" y="726" type="curve" smooth="yes"/>
+ <point x="195" y="639"/>
+ <point x="185" y="559"/>
+ <point x="185" y="486" type="curve" smooth="yes"/>
+ <point x="185" y="162"/>
+ <point x="406" y="-25"/>
+ <point x="714" y="-25" type="curve" smooth="yes"/>
+ <point x="907" y="-25"/>
+ <point x="1149" y="50"/>
+ <point x="1258" y="132" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnC_apH_.glif b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnC_apH_.glif
new file mode 100644
index 0000000..f454288
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnC_apH_.glif
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapH" format="2">
+ <advance width="1455"/>
+ <unicode hex="0048"/>
+ <anchor x="225" y="0" name="H"/>
+ <anchor x="640" y="-100" name="L"/>
+ <anchor x="1047" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1230" y="0" type="line"/>
+ <point x="1234" y="78"/>
+ <point x="1273" y="233"/>
+ <point x="1321" y="426" type="curve" smooth="yes"/>
+ <point x="1465" y="1005" type="line" smooth="yes"/>
+ <point x="1513" y="1198"/>
+ <point x="1552" y="1352"/>
+ <point x="1586" y="1431" type="curve"/>
+ <point x="1381" y="1431" type="line"/>
+ <point x="1228" y="818" type="line"/>
+ <point x="508" y="818" type="line"/>
+ <point x="661" y="1431" type="line"/>
+ <point x="456" y="1431" type="line"/>
+ <point x="452" y="1352"/>
+ <point x="413" y="1197"/>
+ <point x="365" y="1005" type="curve" smooth="yes"/>
+ <point x="221" y="426" type="line" smooth="yes"/>
+ <point x="173" y="233"/>
+ <point x="134" y="78"/>
+ <point x="100" y="0" type="curve"/>
+ <point x="305" y="0" type="line"/>
+ <point x="470" y="662" type="line"/>
+ <point x="1190" y="662" type="line"/>
+ <point x="1025" y="0" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnC_apI_.glif b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnC_apI_.glif
new file mode 100644
index 0000000..78b151c
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnC_apI_.glif
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapI" format="2">
+ <advance width="955"/>
+ <unicode hex="0049"/>
+ <anchor x="417" y="0" name="H"/>
+ <anchor x="392" y="-100" name="L"/>
+ <anchor x="613" y="0" name="O"/>
+ <anchor x="1215" y="1200" name="R"/>
+ <anchor x="799" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="436" y="1431" type="line"/>
+ <point x="401" y="1289" type="line"/>
+ <point x="641" y="1289" type="line"/>
+ <point x="355" y="142" type="line"/>
+ <point x="115" y="142" type="line"/>
+ <point x="80" y="0" type="line"/>
+ <point x="755" y="0" type="line"/>
+ <point x="790" y="142" type="line"/>
+ <point x="545" y="142" type="line"/>
+ <point x="831" y="1289" type="line"/>
+ <point x="1076" y="1289" type="line"/>
+ <point x="1111" y="1431" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnC_apJ_.glif b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnC_apJ_.glif
new file mode 100644
index 0000000..417d1f8
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnC_apJ_.glif
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapJ" format="2">
+ <advance width="996"/>
+ <unicode hex="004A"/>
+ <anchor x="325" y="-100" name="L"/>
+ <anchor x="997" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="871" y="1431" type="line"/>
+ <point x="858" y="1327"/>
+ <point x="817" y="1151"/>
+ <point x="769" y="960" type="curve" smooth="yes"/>
+ <point x="648" y="475" type="line" smooth="yes"/>
+ <point x="592" y="251"/>
+ <point x="484" y="152"/>
+ <point x="337" y="152" type="curve" smooth="yes"/>
+ <point x="245" y="152"/>
+ <point x="145" y="224"/>
+ <point x="97" y="299" type="curve"/>
+ <point x="6" y="118" type="line"/>
+ <point x="58" y="39"/>
+ <point x="193" y="-25"/>
+ <point x="298" y="-25" type="curve" smooth="yes"/>
+ <point x="555" y="-25"/>
+ <point x="749" y="117"/>
+ <point x="850" y="524" type="curve" smooth="yes"/>
+ <point x="1076" y="1431" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnC_apK_.glif b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnC_apK_.glif
new file mode 100644
index 0000000..8e54a6d
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnC_apK_.glif
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapK" format="2">
+ <advance width="1261"/>
+ <unicode hex="004B"/>
+ <anchor x="210" y="0" name="H"/>
+ <anchor x="610" y="-100" name="L"/>
+ <anchor x="972" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1221" y="1431" type="line"/>
+ <point x="406" y="689" type="line"/>
+ <point x="547" y="730" type="line"/>
+ <point x="660" y="725" type="line"/>
+ <point x="1461" y="1431" type="line"/>
+ </contour>
+ <contour>
+ <point x="1170" y="0" type="line"/>
+ <point x="615" y="823" type="line"/>
+ <point x="469" y="720" type="line"/>
+ <point x="925" y="0" type="line"/>
+ </contour>
+ <contour>
+ <point x="661" y="1431" type="line"/>
+ <point x="456" y="1431" type="line"/>
+ <point x="452" y="1352"/>
+ <point x="413" y="1197"/>
+ <point x="365" y="1005" type="curve" smooth="yes"/>
+ <point x="221" y="426" type="line" smooth="yes"/>
+ <point x="173" y="233"/>
+ <point x="134" y="78"/>
+ <point x="100" y="0" type="curve"/>
+ <point x="305" y="0" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnC_apL_.glif b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnC_apL_.glif
new file mode 100644
index 0000000..d2eb932
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnC_apL_.glif
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapL" format="2">
+ <advance width="1060"/>
+ <unicode hex="004C"/>
+ <anchor x="532" y="0" name="H"/>
+ <anchor x="507" y="-100" name="L"/>
+ <anchor x="780" y="1200" name="R"/>
+ <anchor x="914" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="345" y="162" type="line"/>
+ <point x="661" y="1431" type="line"/>
+ <point x="456" y="1431" type="line"/>
+ <point x="452" y="1352"/>
+ <point x="413" y="1197"/>
+ <point x="365" y="1005" type="curve" smooth="yes"/>
+ <point x="221" y="426" type="line" smooth="yes"/>
+ <point x="173" y="233"/>
+ <point x="134" y="78"/>
+ <point x="100" y="0" type="curve"/>
+ <point x="965" y="0" type="line"/>
+ <point x="1008" y="176" type="line"/>
+ <point x="925" y="163"/>
+ <point x="766" y="162"/>
+ <point x="569" y="162" type="curve" smooth="yes"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnC_apM_.glif b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnC_apM_.glif
new file mode 100644
index 0000000..7c3c824
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnC_apM_.glif
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapM" format="2">
+ <advance width="1785"/>
+ <unicode hex="004D"/>
+ <anchor x="800" y="-100" name="L"/>
+ <anchor x="1207" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="880" y="201" type="line"/>
+ <point x="751" y="1431" type="line"/>
+ <point x="591" y="1431" type="line"/>
+ <point x="740" y="0" type="line"/>
+ <point x="935" y="0" type="line"/>
+ <point x="1793" y="1431" type="line"/>
+ <point x="1616" y="1431" type="line"/>
+ </contour>
+ <contour>
+ <point x="536" y="1431" type="line"/>
+ <point x="536" y="1431"/>
+ <point x="184" y="194"/>
+ <point x="110" y="0" type="curve"/>
+ <point x="295" y="0" type="line"/>
+ <point x="621" y="1181" type="line"/>
+ <point x="711" y="1431" type="line"/>
+ </contour>
+ <contour>
+ <point x="1560" y="0" type="line"/>
+ <point x="1579" y="194"/>
+ <point x="1846" y="1431"/>
+ <point x="1846" y="1431" type="curve"/>
+ <point x="1671" y="1431" type="line"/>
+ <point x="1641" y="1181" type="line"/>
+ <point x="1375" y="0" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnC_apN_.glif b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnC_apN_.glif
new file mode 100644
index 0000000..7306669
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnC_apN_.glif
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapN" format="2">
+ <advance width="1480"/>
+ <unicode hex="004E"/>
+ <anchor x="1170" y="0" name="H"/>
+ <anchor x="652" y="-100" name="L"/>
+ <anchor x="1059" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="491" y="1328" type="line"/>
+ <point x="1075" y="0" type="line"/>
+ <point x="1219" y="98" type="line"/>
+ <point x="636" y="1431" type="line"/>
+ </contour>
+ <contour>
+ <point x="1075" y="0" type="line"/>
+ <point x="1250" y="0" type="line"/>
+ <point x="1500" y="1005" type="line" smooth="yes"/>
+ <point x="1548" y="1198"/>
+ <point x="1588" y="1352"/>
+ <point x="1621" y="1431" type="curve"/>
+ <point x="1431" y="1431" type="line"/>
+ </contour>
+ <contour>
+ <point x="636" y="1431" type="line"/>
+ <point x="446" y="1431" type="line"/>
+ <point x="442" y="1352"/>
+ <point x="403" y="1197"/>
+ <point x="355" y="1005" type="curve" smooth="yes"/>
+ <point x="211" y="426" type="line" smooth="yes"/>
+ <point x="163" y="233"/>
+ <point x="124" y="78"/>
+ <point x="90" y="0" type="curve"/>
+ <point x="280" y="0" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnC_apO_.glif b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnC_apO_.glif
new file mode 100644
index 0000000..19c4886
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnC_apO_.glif
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapO" format="2">
+ <advance width="1447"/>
+ <unicode hex="004F"/>
+ <anchor x="657" y="0" name="H"/>
+ <anchor x="632" y="-100" name="L"/>
+ <anchor x="896" y="0" name="O"/>
+ <anchor x="1700" y="1200" name="R"/>
+ <anchor x="1039" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="719" y="147" type="curve" smooth="yes"/>
+ <point x="514" y="147"/>
+ <point x="386" y="300"/>
+ <point x="386" y="541" type="curve" smooth="yes"/>
+ <point x="386" y="871"/>
+ <point x="606" y="1284"/>
+ <point x="963" y="1284" type="curve" smooth="yes"/>
+ <point x="1164" y="1284"/>
+ <point x="1291" y="1133"/>
+ <point x="1291" y="892" type="curve" smooth="yes"/>
+ <point x="1291" y="563"/>
+ <point x="1077" y="147"/>
+ </contour>
+ <contour>
+ <point x="1492" y="931" type="curve" smooth="yes"/>
+ <point x="1492" y="1263"/>
+ <point x="1278" y="1455"/>
+ <point x="1015" y="1455" type="curve" smooth="yes"/>
+ <point x="599" y="1455"/>
+ <point x="185" y="1036"/>
+ <point x="185" y="500" type="curve" smooth="yes"/>
+ <point x="185" y="167"/>
+ <point x="400" y="-25"/>
+ <point x="666" y="-25" type="curve" smooth="yes"/>
+ <point x="1078" y="-25"/>
+ <point x="1492" y="395"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnC_apP_.glif b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnC_apP_.glif
new file mode 100644
index 0000000..5b51a57
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnC_apP_.glif
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapP" format="2">
+ <advance width="1190"/>
+ <unicode hex="0050"/>
+ <anchor x="552" y="-100" name="L"/>
+ <anchor x="959" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="443" y="554" type="line"/>
+ <point x="506" y="547"/>
+ <point x="597" y="544"/>
+ <point x="670" y="544" type="curve" smooth="yes"/>
+ <point x="1058" y="544"/>
+ <point x="1321" y="733"/>
+ <point x="1321" y="1084" type="curve" smooth="yes"/>
+ <point x="1321" y="1302"/>
+ <point x="1141" y="1441"/>
+ <point x="864" y="1441" type="curve" smooth="yes"/>
+ <point x="651" y="1441"/>
+ <point x="456" y="1431"/>
+ <point x="456" y="1431" type="curve"/>
+ <point x="452" y="1352"/>
+ <point x="407" y="1172"/>
+ <point x="359" y="980" type="curve"/>
+ <point x="221" y="426" type="line" smooth="yes"/>
+ <point x="173" y="233"/>
+ <point x="134" y="78"/>
+ <point x="100" y="0" type="curve"/>
+ <point x="320" y="0" type="line"/>
+ <point x="324" y="76"/>
+ <point x="362" y="232"/>
+ <point x="411" y="426" type="curve" smooth="yes"/>
+ </contour>
+ <contour>
+ <point x="623" y="1279" type="line"/>
+ <point x="692" y="1282"/>
+ <point x="721" y="1284"/>
+ <point x="815" y="1284" type="curve" smooth="yes"/>
+ <point x="1036" y="1284"/>
+ <point x="1121" y="1172"/>
+ <point x="1121" y="1048" type="curve" smooth="yes"/>
+ <point x="1121" y="845"/>
+ <point x="968" y="696"/>
+ <point x="693" y="696" type="curve" smooth="yes"/>
+ <point x="618" y="696"/>
+ <point x="542" y="698"/>
+ <point x="481" y="706" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnC_apQ_.glif b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnC_apQ_.glif
new file mode 100644
index 0000000..3dcbc8d
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnC_apQ_.glif
@@ -0,0 +1,52 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapQ" format="2">
+ <advance width="1459"/>
+ <unicode hex="0051"/>
+ <anchor x="589" y="-270" name="L"/>
+ <anchor x="1039" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1495" y="939" type="curve" smooth="yes"/>
+ <point x="1495" y="1266"/>
+ <point x="1306" y="1455"/>
+ <point x="1026" y="1455" type="curve" smooth="yes"/>
+ <point x="703" y="1455"/>
+ <point x="332" y="1195"/>
+ <point x="215" y="726" type="curve" smooth="yes"/>
+ <point x="194" y="642"/>
+ <point x="185" y="564"/>
+ <point x="185" y="492" type="curve" smooth="yes"/>
+ <point x="185" y="165"/>
+ <point x="388" y="-25"/>
+ <point x="652" y="-25" type="curve" smooth="yes"/>
+ <point x="714" y="-25"/>
+ <point x="781" y="-17"/>
+ <point x="829" y="0" type="curve"/>
+ <point x="898" y="0"/>
+ <point x="1133" y="-186"/>
+ <point x="1217" y="-186" type="curve" smooth="yes"/>
+ <point x="1271" y="-186"/>
+ <point x="1355" y="-79"/>
+ <point x="1388" y="-44" type="curve"/>
+ <point x="1258" y="-27"/>
+ <point x="1155" y="27"/>
+ <point x="1049" y="103" type="curve"/>
+ <point x="1253" y="217"/>
+ <point x="1495" y="528"/>
+ </contour>
+ <contour>
+ <point x="690" y="147" type="curve" smooth="yes"/>
+ <point x="492" y="147"/>
+ <point x="384" y="284"/>
+ <point x="384" y="508" type="curve" smooth="yes"/>
+ <point x="384" y="856"/>
+ <point x="609" y="1284"/>
+ <point x="994" y="1284" type="curve" smooth="yes"/>
+ <point x="1188" y="1284"/>
+ <point x="1295" y="1149"/>
+ <point x="1295" y="925" type="curve" smooth="yes"/>
+ <point x="1295" y="490"/>
+ <point x="985" y="147"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnC_apR_.glif b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnC_apR_.glif
new file mode 100644
index 0000000..c8f8186
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnC_apR_.glif
@@ -0,0 +1,55 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapR" format="2">
+ <advance width="1295"/>
+ <unicode hex="0052"/>
+ <anchor x="590" y="0" name="H"/>
+ <anchor x="525" y="-100" name="L"/>
+ <anchor x="932" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="457" y="613" type="line"/>
+ <point x="712" y="613" type="line" smooth="yes"/>
+ <point x="1010" y="613"/>
+ <point x="1303" y="784"/>
+ <point x="1303" y="1114" type="curve" smooth="yes"/>
+ <point x="1303" y="1326"/>
+ <point x="1114" y="1441"/>
+ <point x="844" y="1441" type="curve" smooth="yes"/>
+ <point x="610" y="1441"/>
+ <point x="456" y="1431"/>
+ <point x="456" y="1431" type="curve"/>
+ <point x="452" y="1352"/>
+ <point x="407" y="1172"/>
+ <point x="359" y="980" type="curve" smooth="yes"/>
+ <point x="221" y="426" type="line"/>
+ <point x="173" y="233"/>
+ <point x="134" y="78"/>
+ <point x="100" y="0" type="curve"/>
+ <point x="320" y="0" type="line"/>
+ <point x="324" y="76"/>
+ <point x="363" y="233"/>
+ <point x="411" y="426" type="curve"/>
+ </contour>
+ <contour>
+ <point x="623" y="1279" type="line"/>
+ <point x="677" y="1281"/>
+ <point x="725" y="1284"/>
+ <point x="795" y="1284" type="curve" smooth="yes"/>
+ <point x="1003" y="1284"/>
+ <point x="1104" y="1203"/>
+ <point x="1104" y="1076" type="curve" smooth="yes"/>
+ <point x="1104" y="856"/>
+ <point x="921" y="764"/>
+ <point x="685" y="764" type="curve" smooth="yes"/>
+ <point x="495" y="764" type="line"/>
+ </contour>
+ <contour>
+ <point x="656" y="622" type="line"/>
+ <point x="930" y="0" type="line"/>
+ <point x="1185" y="0" type="line"/>
+ <point x="1122" y="89"/>
+ <point x="864" y="602"/>
+ <point x="828" y="676" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnC_apS_.glif b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnC_apS_.glif
new file mode 100644
index 0000000..01e9f47
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnC_apS_.glif
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapS" format="2">
+ <advance width="1155"/>
+ <unicode hex="0053"/>
+ <anchor x="520" y="0" name="H"/>
+ <anchor x="495" y="-100" name="L"/>
+ <anchor x="902" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1260" y="1347" type="line"/>
+ <point x="1146" y="1419"/>
+ <point x="1021" y="1455"/>
+ <point x="867" y="1455" type="curve" smooth="yes"/>
+ <point x="549" y="1455"/>
+ <point x="320" y="1303"/>
+ <point x="320" y="1040" type="curve" smooth="yes"/>
+ <point x="320" y="901"/>
+ <point x="438" y="794"/>
+ <point x="622" y="691" type="curve" smooth="yes"/>
+ <point x="877" y="549"/>
+ <point x="914" y="461"/>
+ <point x="914" y="378" type="curve" smooth="yes"/>
+ <point x="914" y="256"/>
+ <point x="792" y="147"/>
+ <point x="621" y="147" type="curve" smooth="yes"/>
+ <point x="473" y="147"/>
+ <point x="278" y="235"/>
+ <point x="161" y="378" type="curve"/>
+ <point x="65" y="187" type="line"/>
+ <point x="178" y="73"/>
+ <point x="365" y="-25"/>
+ <point x="558" y="-25" type="curve" smooth="yes"/>
+ <point x="852" y="-25"/>
+ <point x="1114" y="115"/>
+ <point x="1114" y="414" type="curve" smooth="yes"/>
+ <point x="1114" y="526"/>
+ <point x="1057" y="679"/>
+ <point x="800" y="828" type="curve" smooth="yes"/>
+ <point x="597" y="946"/>
+ <point x="510" y="1005"/>
+ <point x="510" y="1079" type="curve" smooth="yes"/>
+ <point x="510" y="1210"/>
+ <point x="659" y="1284"/>
+ <point x="845" y="1284" type="curve" smooth="yes"/>
+ <point x="959" y="1284"/>
+ <point x="1075" y="1240"/>
+ <point x="1173" y="1156" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnC_apT_.glif b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnC_apT_.glif
new file mode 100644
index 0000000..0eeece4
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnC_apT_.glif
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapT" format="2">
+ <advance width="1245"/>
+ <unicode hex="0054"/>
+ <anchor x="562" y="0" name="H"/>
+ <anchor x="562" y="-100" name="L"/>
+ <anchor x="944" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="341" y="1431" type="line"/>
+ <point x="296" y="1250" type="line"/>
+ <point x="380" y="1266"/>
+ <point x="457" y="1269"/>
+ <point x="546" y="1269" type="curve" smooth="yes"/>
+ <point x="781" y="1269" type="line"/>
+ <point x="571" y="426" type="line" smooth="yes"/>
+ <point x="523" y="233"/>
+ <point x="481" y="78"/>
+ <point x="445" y="0" type="curve"/>
+ <point x="675" y="0" type="line"/>
+ <point x="677" y="78"/>
+ <point x="713" y="233"/>
+ <point x="761" y="426" type="curve" smooth="yes"/>
+ <point x="971" y="1269" type="line"/>
+ <point x="1211" y="1269" type="line" smooth="yes"/>
+ <point x="1301" y="1269"/>
+ <point x="1375" y="1266"/>
+ <point x="1451" y="1250" type="curve"/>
+ <point x="1496" y="1431" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnC_apU_.glif b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnC_apU_.glif
new file mode 100644
index 0000000..9576e20
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnC_apU_.glif
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapU" format="2">
+ <advance width="1420"/>
+ <unicode hex="0055"/>
+ <anchor x="647" y="0" name="H"/>
+ <anchor x="622" y="-100" name="L"/>
+ <anchor x="865" y="0" name="O"/>
+ <anchor x="1640" y="1200" name="R"/>
+ <anchor x="1029" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1346" y="1431" type="line"/>
+ <point x="1126" y="549" type="line" smooth="yes"/>
+ <point x="1055" y="264"/>
+ <point x="916" y="132"/>
+ <point x="682" y="132" type="curve" smooth="yes"/>
+ <point x="485" y="132"/>
+ <point x="421" y="244"/>
+ <point x="421" y="391" type="curve" smooth="yes"/>
+ <point x="421" y="451"/>
+ <point x="431" y="516"/>
+ <point x="448" y="582" type="curve" smooth="yes"/>
+ <point x="661" y="1431" type="line"/>
+ <point x="456" y="1431" type="line"/>
+ <point x="451" y="1352"/>
+ <point x="414" y="1198"/>
+ <point x="365" y="1005" type="curve" smooth="yes"/>
+ <point x="251" y="552" type="line" smooth="yes"/>
+ <point x="236" y="493"/>
+ <point x="228" y="435"/>
+ <point x="228" y="379" type="curve" smooth="yes"/>
+ <point x="228" y="157"/>
+ <point x="351" y="-25"/>
+ <point x="643" y="-25" type="curve" smooth="yes"/>
+ <point x="1020" y="-25"/>
+ <point x="1223" y="177"/>
+ <point x="1299" y="480" type="curve" smooth="yes"/>
+ <point x="1430" y="1005" type="line" smooth="yes"/>
+ <point x="1480" y="1207"/>
+ <point x="1519" y="1352"/>
+ <point x="1551" y="1431" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnC_apV_.glif b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnC_apV_.glif
new file mode 100644
index 0000000..2bf8b96
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnC_apV_.glif
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapV" format="2">
+ <advance width="1345"/>
+ <unicode hex="0056"/>
+ <anchor x="620" y="0" name="H"/>
+ <anchor x="587" y="-100" name="L"/>
+ <anchor x="820" y="0" name="O"/>
+ <anchor x="994" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1381" y="1431" type="line"/>
+ <point x="654" y="191" type="line"/>
+ <point x="536" y="1431" type="line"/>
+ <point x="331" y="1431" type="line"/>
+ <point x="344" y="1350"/>
+ <point x="355" y="1262"/>
+ <point x="377" y="1073" type="curve" smooth="yes"/>
+ <point x="500" y="0" type="line"/>
+ <point x="725" y="0" type="line"/>
+ <point x="1377" y="1073" type="line" smooth="yes"/>
+ <point x="1492" y="1263"/>
+ <point x="1550" y="1350"/>
+ <point x="1606" y="1431" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnC_apW_.glif b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnC_apW_.glif
new file mode 100644
index 0000000..553ea17
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnC_apW_.glif
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapW" format="2">
+ <advance width="2060"/>
+ <unicode hex="0057"/>
+ <anchor x="942" y="-100" name="L"/>
+ <anchor x="1349" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1535" y="0" type="line"/>
+ <point x="2107" y="1073" type="line" smooth="yes"/>
+ <point x="2208" y="1263"/>
+ <point x="2259" y="1350"/>
+ <point x="2311" y="1431" type="curve"/>
+ <point x="2081" y="1431" type="line"/>
+ <point x="1431" y="127" type="line"/>
+ <point x="1420" y="0" type="line"/>
+ </contour>
+ <contour>
+ <point x="1310" y="0" type="line"/>
+ <point x="1420" y="0" type="line"/>
+ <point x="1461" y="127" type="line"/>
+ <point x="1406" y="1431" type="line"/>
+ <point x="1231" y="1431" type="line"/>
+ <point x="1248" y="1279" type="line"/>
+ </contour>
+ <contour>
+ <point x="625" y="0" type="line"/>
+ <point x="1406" y="1431" type="line"/>
+ <point x="1221" y="1431" type="line"/>
+ <point x="521" y="127" type="line"/>
+ <point x="521" y="0" type="line"/>
+ </contour>
+ <contour>
+ <point x="546" y="1431" type="line"/>
+ <point x="336" y="1431" type="line"/>
+ <point x="348" y="1353"/>
+ <point x="355" y="1260"/>
+ <point x="362" y="1073" type="curve" smooth="yes"/>
+ <point x="400" y="0" type="line"/>
+ <point x="521" y="0" type="line"/>
+ <point x="551" y="127" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnC_apX_.glif b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnC_apX_.glif
new file mode 100644
index 0000000..2da5787
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnC_apX_.glif
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapX" format="2">
+ <advance width="1305"/>
+ <unicode hex="0058"/>
+ <anchor x="565" y="-100" name="L"/>
+ <anchor x="972" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="970" y="0" type="line"/>
+ <point x="1190" y="0" type="line"/>
+ <point x="1148" y="80"/>
+ <point x="1125" y="124"/>
+ <point x="1045" y="329" type="curve" smooth="yes"/>
+ <point x="611" y="1431" type="line"/>
+ <point x="386" y="1431" type="line"/>
+ <point x="430" y="1348"/>
+ <point x="462" y="1289"/>
+ <point x="541" y="1088" type="curve" smooth="yes"/>
+ </contour>
+ <contour>
+ <point x="752" y="872" type="line"/>
+ <point x="278" y="333" type="line" smooth="yes"/>
+ <point x="98" y="129"/>
+ <point x="53" y="84"/>
+ <point x="-30" y="0" type="curve"/>
+ <point x="210" y="0" type="line"/>
+ <point x="750" y="622" type="line"/>
+ </contour>
+ <contour>
+ <point x="765" y="622" type="line"/>
+ <point x="1183" y="1088" type="line" smooth="yes"/>
+ <point x="1360" y="1285"/>
+ <point x="1425" y="1355"/>
+ <point x="1506" y="1431" type="curve"/>
+ <point x="1261" y="1431" type="line"/>
+ <point x="767" y="872" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnC_apY_.glif b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnC_apY_.glif
new file mode 100644
index 0000000..9ec65ef
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnC_apY_.glif
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapY" format="2">
+ <advance width="1300"/>
+ <unicode hex="0059"/>
+ <anchor x="565" y="-100" name="L"/>
+ <anchor x="972" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="331" y="1431" type="line"/>
+ <point x="407" y="1285"/>
+ <point x="446" y="1173"/>
+ <point x="490" y="1044" type="curve"/>
+ <point x="661" y="549" type="line"/>
+ <point x="829" y="661" type="line"/>
+ <point x="551" y="1431" type="line"/>
+ </contour>
+ <contour>
+ <point x="1321" y="1431" type="line"/>
+ <point x="684" y="661" type="line"/>
+ <point x="796" y="549" type="line"/>
+ <point x="1215" y="1044" type="line" smooth="yes"/>
+ <point x="1322" y="1171"/>
+ <point x="1402" y="1265"/>
+ <point x="1561" y="1431" type="curve"/>
+ </contour>
+ <contour>
+ <point x="700" y="0" type="line"/>
+ <point x="704" y="78"/>
+ <point x="743" y="233"/>
+ <point x="791" y="426" type="curve" smooth="yes"/>
+ <point x="854" y="681" type="line"/>
+ <point x="664" y="681" type="line"/>
+ <point x="601" y="426" type="line" smooth="yes"/>
+ <point x="553" y="233"/>
+ <point x="514" y="78"/>
+ <point x="480" y="0" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mA_.glif b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mA_.glif
new file mode 100644
index 0000000..586e494
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mA_.glif
@@ -0,0 +1,77 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmA" format="2">
+ <advance width="1107"/>
+ <unicode hex="0061"/>
+ <anchor x="860" y="0" name="H"/>
+ <anchor x="455" y="-100" name="L"/>
+ <anchor x="1065" y="0" name="O"/>
+ <anchor x="1310" y="1000" name="R"/>
+ <anchor x="755" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="972" y="0" type="line"/>
+ <point x="965" y="48"/>
+ <point x="960" y="98"/>
+ <point x="960" y="149" type="curve" smooth="yes"/>
+ <point x="960" y="214"/>
+ <point x="967" y="284"/>
+ <point x="987" y="363" type="curve"/>
+ <point x="1077" y="726" type="line"/>
+ <point x="1081" y="744"/>
+ <point x="1084" y="762"/>
+ <point x="1084" y="779" type="curve" smooth="yes"/>
+ <point x="1084" y="912"/>
+ <point x="955" y="1019"/>
+ <point x="751" y="1019" type="curve" smooth="yes"/>
+ <point x="599" y="1019"/>
+ <point x="502" y="974"/>
+ <point x="389" y="931" type="curve"/>
+ <point x="373" y="889"/>
+ <point x="343" y="783"/>
+ <point x="331" y="740" type="curve"/>
+ <point x="468" y="820"/>
+ <point x="560" y="862"/>
+ <point x="666" y="862" type="curve" smooth="yes"/>
+ <point x="798" y="862"/>
+ <point x="885" y="810"/>
+ <point x="885" y="718" type="curve" smooth="yes"/>
+ <point x="885" y="705"/>
+ <point x="884" y="691"/>
+ <point x="880" y="677" type="curve" smooth="yes"/>
+ <point x="867" y="622" type="line"/>
+ <point x="825" y="619"/>
+ <point x="661" y="605"/>
+ <point x="591" y="598" type="curve" smooth="yes"/>
+ <point x="282" y="568"/>
+ <point x="102" y="415"/>
+ <point x="102" y="233" type="curve" smooth="yes"/>
+ <point x="102" y="103"/>
+ <point x="223" y="-25"/>
+ <point x="390" y="-25" type="curve" smooth="yes"/>
+ <point x="514" y="-25"/>
+ <point x="674" y="47"/>
+ <point x="779" y="152" type="curve"/>
+ <point x="779" y="89"/>
+ <point x="787" y="31"/>
+ <point x="792" y="0" type="curve"/>
+ </contour>
+ <contour>
+ <point x="791" y="319" type="line"/>
+ <point x="674" y="191"/>
+ <point x="553" y="137"/>
+ <point x="451" y="137" type="curve" smooth="yes"/>
+ <point x="355" y="137"/>
+ <point x="290" y="192"/>
+ <point x="290" y="264" type="curve" smooth="yes"/>
+ <point x="290" y="274"/>
+ <point x="291" y="285"/>
+ <point x="294" y="296" type="curve" smooth="yes"/>
+ <point x="315" y="380"/>
+ <point x="432" y="450"/>
+ <point x="566" y="461" type="curve" smooth="yes"/>
+ <point x="631" y="466"/>
+ <point x="782" y="483"/>
+ <point x="832" y="485" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mA_A_cute.glif b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mA_A_cute.glif
new file mode 100644
index 0000000..198d6db
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mA_A_cute.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmAAcute" format="2">
+ <advance width="1107"/>
+ <unicode hex="00E1"/>
+ <anchor x="860" y="0" name="H"/>
+ <anchor x="455" y="-100" name="L"/>
+ <anchor x="1065" y="0" name="O"/>
+ <anchor x="1310" y="1000" name="R"/>
+ <anchor x="889" y="1635" name="U"/>
+ <outline>
+ <component base="LtnSmA"/>
+ <component base="CombAcute" xOffset="1110"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mA_C_ircum.glif b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mA_C_ircum.glif
new file mode 100644
index 0000000..f5cfb16
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mA_C_ircum.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmACircum" format="2">
+ <advance width="1107"/>
+ <unicode hex="00E2"/>
+ <anchor x="860" y="0" name="H"/>
+ <anchor x="455" y="-100" name="L"/>
+ <anchor x="1065" y="0" name="O"/>
+ <anchor x="1310" y="1000" name="R"/>
+ <anchor x="854" y="1635" name="U"/>
+ <outline>
+ <component base="LtnSmA"/>
+ <component base="CombCircum" xOffset="1075"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mA_D_iaer.glif b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mA_D_iaer.glif
new file mode 100644
index 0000000..6f05301
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mA_D_iaer.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmADiaer" format="2">
+ <advance width="1107"/>
+ <unicode hex="00E4"/>
+ <anchor x="860" y="0" name="H"/>
+ <anchor x="455" y="-100" name="L"/>
+ <anchor x="1065" y="0" name="O"/>
+ <anchor x="1310" y="1000" name="R"/>
+ <anchor x="852" y="1505" name="U"/>
+ <outline>
+ <component base="LtnSmA"/>
+ <component base="CombDiaer" xOffset="1105"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mA_G_rave.glif b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mA_G_rave.glif
new file mode 100644
index 0000000..9048920
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mA_G_rave.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmAGrave" format="2">
+ <advance width="1107"/>
+ <unicode hex="00E0"/>
+ <anchor x="860" y="0" name="H"/>
+ <anchor x="455" y="-100" name="L"/>
+ <anchor x="1065" y="0" name="O"/>
+ <anchor x="1310" y="1000" name="R"/>
+ <anchor x="889" y="1635" name="U"/>
+ <outline>
+ <component base="LtnSmA"/>
+ <component base="CombGrave" xOffset="1090"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mA_R_ingA_bv.glif b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mA_R_ingA_bv.glif
new file mode 100644
index 0000000..8ada58f
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mA_R_ingA_bv.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmARingAbv" format="2">
+ <advance width="1107"/>
+ <unicode hex="00E5"/>
+ <anchor x="860" y="0" name="H"/>
+ <anchor x="455" y="-100" name="L"/>
+ <anchor x="1065" y="0" name="O"/>
+ <anchor x="1310" y="1000" name="R"/>
+ <anchor x="919" y="1635" name="U"/>
+ <outline>
+ <component base="LtnSmA"/>
+ <component base="CombRingAbv" xOffset="1140"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mA_T_ilde.glif b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mA_T_ilde.glif
new file mode 100644
index 0000000..c29348b
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mA_T_ilde.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmATilde" format="2">
+ <advance width="1107"/>
+ <unicode hex="00E3"/>
+ <anchor x="860" y="0" name="H"/>
+ <anchor x="455" y="-100" name="L"/>
+ <anchor x="1065" y="0" name="O"/>
+ <anchor x="1310" y="1000" name="R"/>
+ <anchor x="850" y="1475" name="U"/>
+ <outline>
+ <component base="LtnSmA"/>
+ <component base="CombTilde" xOffset="1140"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mB_.glif b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mB_.glif
new file mode 100644
index 0000000..b3a3696
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mB_.glif
@@ -0,0 +1,55 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmB" format="2">
+ <advance width="1144"/>
+ <unicode hex="0062"/>
+ <anchor x="530" y="0" name="H"/>
+ <anchor x="505" y="-100" name="L"/>
+ <anchor x="1345" y="1000" name="R"/>
+ <anchor x="938" y="1635" name="U"/>
+ <outline>
+ <contour>
+ <point x="437" y="1570" type="line"/>
+ <point x="437" y="1456"/>
+ <point x="402" y="1246"/>
+ <point x="367" y="1105" type="curve" smooth="yes"/>
+ <point x="110" y="85" type="line"/>
+ <point x="198" y="44"/>
+ <point x="355" y="-25"/>
+ <point x="517" y="-25" type="curve" smooth="yes"/>
+ <point x="675" y="-25"/>
+ <point x="795" y="24"/>
+ <point x="907" y="125" type="curve" smooth="yes"/>
+ <point x="1050" y="255"/>
+ <point x="1162" y="466"/>
+ <point x="1162" y="695" type="curve" smooth="yes"/>
+ <point x="1162" y="930"/>
+ <point x="1046" y="1020"/>
+ <point x="907" y="1020" type="curve" smooth="yes"/>
+ <point x="754" y="1020"/>
+ <point x="584" y="878"/>
+ <point x="456" y="719" type="curve"/>
+ <point x="552" y="1105" type="line" smooth="yes"/>
+ <point x="600" y="1296"/>
+ <point x="627" y="1508"/>
+ <point x="627" y="1570" type="curve"/>
+ </contour>
+ <contour>
+ <point x="382" y="429" type="line"/>
+ <point x="485" y="617"/>
+ <point x="708" y="850"/>
+ <point x="822" y="850" type="curve" smooth="yes"/>
+ <point x="913" y="850"/>
+ <point x="972" y="784"/>
+ <point x="972" y="635" type="curve" smooth="yes"/>
+ <point x="972" y="469"/>
+ <point x="909" y="336"/>
+ <point x="822" y="250" type="curve" smooth="yes"/>
+ <point x="741" y="169"/>
+ <point x="638" y="125"/>
+ <point x="552" y="125" type="curve" smooth="yes"/>
+ <point x="466" y="125"/>
+ <point x="376" y="167"/>
+ <point x="325" y="200" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mC_.glif b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mC_.glif
new file mode 100644
index 0000000..f54fbe9
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mC_.glif
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmC" format="2">
+ <advance width="989"/>
+ <unicode hex="0063"/>
+ <anchor x="520" y="0" name="H"/>
+ <anchor x="495" y="-100" name="L"/>
+ <anchor x="1210" y="1000" name="R"/>
+ <anchor x="785" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="917" y="255" type="line"/>
+ <point x="811" y="179"/>
+ <point x="703" y="137"/>
+ <point x="583" y="137" type="curve" smooth="yes"/>
+ <point x="427" y="137"/>
+ <point x="331" y="239"/>
+ <point x="331" y="406" type="curve" smooth="yes"/>
+ <point x="331" y="619"/>
+ <point x="499" y="858"/>
+ <point x="742" y="858" type="curve" smooth="yes"/>
+ <point x="845" y="858"/>
+ <point x="924" y="824"/>
+ <point x="998" y="760" type="curve"/>
+ <point x="1077" y="936" type="line"/>
+ <point x="1016" y="985"/>
+ <point x="902" y="1020"/>
+ <point x="789" y="1020" type="curve" smooth="yes"/>
+ <point x="420" y="1020"/>
+ <point x="139" y="737"/>
+ <point x="139" y="381" type="curve" smooth="yes"/>
+ <point x="139" y="130"/>
+ <point x="309" y="-25"/>
+ <point x="532" y="-25" type="curve" smooth="yes"/>
+ <point x="682" y="-25"/>
+ <point x="785" y="9"/>
+ <point x="904" y="83" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mD_.glif b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mD_.glif
new file mode 100644
index 0000000..4ea9ea1
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mD_.glif
@@ -0,0 +1,65 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmD" format="2">
+ <advance width="1197"/>
+ <unicode hex="0064"/>
+ <anchor x="545" y="0" name="H"/>
+ <anchor x="520" y="-100" name="L"/>
+ <anchor x="1380" y="1000" name="R"/>
+ <anchor x="953" y="1635" name="U"/>
+ <outline>
+ <contour>
+ <point x="1144" y="1570" type="line"/>
+ <point x="1144" y="1456"/>
+ <point x="1114" y="1327"/>
+ <point x="1079" y="1175" type="curve" smooth="yes"/>
+ <point x="1024" y="935" type="line"/>
+ <point x="957" y="978"/>
+ <point x="854" y="1020"/>
+ <point x="759" y="1020" type="curve" smooth="yes"/>
+ <point x="650" y="1020"/>
+ <point x="534" y="979"/>
+ <point x="429" y="895" type="curve" smooth="yes"/>
+ <point x="262" y="761"/>
+ <point x="139" y="532"/>
+ <point x="139" y="288" type="curve" smooth="yes"/>
+ <point x="139" y="94"/>
+ <point x="250" y="-25"/>
+ <point x="424" y="-25" type="curve" smooth="yes"/>
+ <point x="563" y="-25"/>
+ <point x="791" y="141"/>
+ <point x="899" y="305" type="curve"/>
+ <point x="875" y="196"/>
+ <point x="869" y="93"/>
+ <point x="869" y="0" type="curve"/>
+ <point x="1052" y="0" type="line"/>
+ <point x="1048" y="23"/>
+ <point x="1047" y="53"/>
+ <point x="1047" y="90" type="curve" smooth="yes"/>
+ <point x="1047" y="190"/>
+ <point x="1063" y="340"/>
+ <point x="1107" y="520" type="curve" smooth="yes"/>
+ <point x="1267" y="1175" type="line" smooth="yes"/>
+ <point x="1310" y="1351"/>
+ <point x="1337" y="1475"/>
+ <point x="1337" y="1570" type="curve"/>
+ </contour>
+ <contour>
+ <point x="930" y="545" type="line"/>
+ <point x="846" y="370"/>
+ <point x="592" y="130"/>
+ <point x="479" y="130" type="curve" smooth="yes"/>
+ <point x="374" y="130"/>
+ <point x="330" y="195"/>
+ <point x="330" y="316" type="curve" smooth="yes"/>
+ <point x="330" y="460"/>
+ <point x="397" y="649"/>
+ <point x="509" y="760" type="curve" smooth="yes"/>
+ <point x="572" y="822"/>
+ <point x="643" y="855"/>
+ <point x="734" y="855" type="curve" smooth="yes"/>
+ <point x="835" y="855"/>
+ <point x="898" y="832"/>
+ <point x="984" y="780" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mE_.glif b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mE_.glif
new file mode 100644
index 0000000..a3a6490
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mE_.glif
@@ -0,0 +1,52 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmE" format="2">
+ <advance width="1042"/>
+ <unicode hex="0065"/>
+ <anchor x="485" y="0" name="H"/>
+ <anchor x="484" y="-100" name="L"/>
+ <anchor x="840" y="0" name="O"/>
+ <anchor x="1285" y="1000" name="R"/>
+ <anchor x="784" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="967" y="270" type="line"/>
+ <point x="854" y="189"/>
+ <point x="700" y="135"/>
+ <point x="567" y="135" type="curve" smooth="yes"/>
+ <point x="386" y="135"/>
+ <point x="317" y="263"/>
+ <point x="317" y="420" type="curve" smooth="yes"/>
+ <point x="317" y="686"/>
+ <point x="522" y="872"/>
+ <point x="720" y="872" type="curve" smooth="yes"/>
+ <point x="813" y="872"/>
+ <point x="883" y="823"/>
+ <point x="883" y="753" type="curve" smooth="yes"/>
+ <point x="883" y="660"/>
+ <point x="766" y="590"/>
+ <point x="539" y="590" type="curve" smooth="yes"/>
+ <point x="468" y="590"/>
+ <point x="382" y="596"/>
+ <point x="279" y="610" type="curve"/>
+ <point x="279" y="477" type="line"/>
+ <point x="391" y="461"/>
+ <point x="487" y="453"/>
+ <point x="569" y="453" type="curve" smooth="yes"/>
+ <point x="931" y="453"/>
+ <point x="1077" y="609"/>
+ <point x="1077" y="791" type="curve" smooth="yes"/>
+ <point x="1077" y="899"/>
+ <point x="986" y="1020"/>
+ <point x="772" y="1020" type="curve" smooth="yes"/>
+ <point x="399" y="1020"/>
+ <point x="137" y="710"/>
+ <point x="137" y="380" type="curve" smooth="yes"/>
+ <point x="137" y="147"/>
+ <point x="258" y="-25"/>
+ <point x="523" y="-25" type="curve" smooth="yes"/>
+ <point x="689" y="-25"/>
+ <point x="849" y="26"/>
+ <point x="955" y="83" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mF_.glif b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mF_.glif
new file mode 100644
index 0000000..ede52a9
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mF_.glif
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmF" format="2">
+ <advance width="756"/>
+ <unicode hex="0066"/>
+ <anchor x="290" y="0" name="H"/>
+ <anchor x="315" y="-100" name="L"/>
+ <anchor x="908" y="1635" name="U"/>
+ <outline>
+ <contour>
+ <point x="180" y="833" type="line"/>
+ <point x="835" y="833" type="line"/>
+ <point x="871" y="975" type="line"/>
+ <point x="216" y="975" type="line"/>
+ </contour>
+ <contour>
+ <point x="1106" y="1519" type="line"/>
+ <point x="1062" y="1555"/>
+ <point x="981" y="1588"/>
+ <point x="903" y="1588" type="curve" smooth="yes"/>
+ <point x="687" y="1588"/>
+ <point x="533" y="1478"/>
+ <point x="448" y="1147" type="curve" smooth="yes"/>
+ <point x="403" y="972"/>
+ <point x="244" y="334"/>
+ <point x="223" y="0" type="curve"/>
+ <point x="436" y="0" type="line"/>
+ <point x="430" y="28"/>
+ <point x="427" y="66"/>
+ <point x="427" y="110" type="curve" smooth="yes"/>
+ <point x="427" y="213"/>
+ <point x="447" y="351"/>
+ <point x="476" y="484" type="curve" smooth="yes"/>
+ <point x="510" y="641"/>
+ <point x="558" y="846"/>
+ <point x="641" y="1186" type="curve" smooth="yes"/>
+ <point x="682" y="1353"/>
+ <point x="758" y="1421"/>
+ <point x="862" y="1421" type="curve" smooth="yes"/>
+ <point x="920" y="1421"/>
+ <point x="988" y="1392"/>
+ <point x="1022" y="1362" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mG_.glif b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mG_.glif
new file mode 100644
index 0000000..8931f8d
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mG_.glif
@@ -0,0 +1,100 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmG" format="2">
+ <advance width="1075"/>
+ <unicode hex="0067"/>
+ <anchor x="368" y="-465" name="H"/>
+ <anchor x="351" y="-535" name="L"/>
+ <anchor x="1285" y="1000" name="R"/>
+ <anchor x="730" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="360" y="389" type="line"/>
+ <point x="277" y="352"/>
+ <point x="168" y="266"/>
+ <point x="168" y="176" type="curve" smooth="yes"/>
+ <point x="168" y="96"/>
+ <point x="246" y="33"/>
+ <point x="483" y="-5" type="curve" smooth="yes"/>
+ <point x="707" y="-41"/>
+ <point x="781" y="-94"/>
+ <point x="781" y="-151" type="curve" smooth="yes"/>
+ <point x="781" y="-256"/>
+ <point x="580" y="-353"/>
+ <point x="411" y="-353" type="curve" smooth="yes"/>
+ <point x="202" y="-353"/>
+ <point x="104" y="-271"/>
+ <point x="104" y="-196" type="curve" smooth="yes"/>
+ <point x="104" y="-189"/>
+ <point x="104" y="-183"/>
+ <point x="106" y="-176" type="curve" smooth="yes"/>
+ <point x="120" y="-119"/>
+ <point x="170" y="-55"/>
+ <point x="409" y="20" type="curve"/>
+ <point x="410" y="48"/>
+ <point x="248" y="73"/>
+ <point x="248" y="73" type="curve"/>
+ <point x="53" y="12"/>
+ <point x="-51" y="-77"/>
+ <point x="-78" y="-186" type="curve" smooth="yes"/>
+ <point x="-82" y="-201"/>
+ <point x="-84" y="-217"/>
+ <point x="-84" y="-231" type="curve" smooth="yes"/>
+ <point x="-84" y="-396"/>
+ <point x="158" y="-495"/>
+ <point x="371" y="-495" type="curve" smooth="yes"/>
+ <point x="632" y="-495"/>
+ <point x="972" y="-360"/>
+ <point x="972" y="-125" type="curve" smooth="yes"/>
+ <point x="972" y="0"/>
+ <point x="849" y="90"/>
+ <point x="619" y="127" type="curve" smooth="yes"/>
+ <point x="403" y="162"/>
+ <point x="341" y="184"/>
+ <point x="341" y="218" type="curve" smooth="yes"/>
+ <point x="341" y="263"/>
+ <point x="447" y="325"/>
+ <point x="522" y="342" type="curve"/>
+ </contour>
+ <contour>
+ <point x="1244" y="1019" type="line"/>
+ <point x="1143" y="1012"/>
+ <point x="1002" y="977"/>
+ <point x="899" y="921" type="curve"/>
+ <point x="936" y="809" type="line"/>
+ <point x="1037" y="846"/>
+ <point x="1121" y="860"/>
+ <point x="1194" y="862" type="curve"/>
+ </contour>
+ <contour>
+ <point x="212" y="613" type="curve" smooth="yes"/>
+ <point x="212" y="449"/>
+ <point x="356" y="319"/>
+ <point x="554" y="319" type="curve" smooth="yes"/>
+ <point x="791" y="319"/>
+ <point x="1030" y="495"/>
+ <point x="1030" y="729" type="curve" smooth="yes"/>
+ <point x="1030" y="894"/>
+ <point x="887" y="1019"/>
+ <point x="689" y="1019" type="curve" smooth="yes"/>
+ <point x="441" y="1019"/>
+ <point x="212" y="847"/>
+ </contour>
+ <contour>
+ <point x="857" y="704" type="curve" smooth="yes"/>
+ <point x="857" y="555"/>
+ <point x="712" y="456"/>
+ <point x="578" y="456" type="curve" smooth="yes"/>
+ <point x="463" y="456"/>
+ <point x="385" y="530"/>
+ <point x="385" y="628" type="curve" smooth="yes"/>
+ <point x="385" y="643"/>
+ <point x="387" y="660"/>
+ <point x="391" y="676" type="curve" smooth="yes"/>
+ <point x="421" y="797"/>
+ <point x="530" y="877"/>
+ <point x="663" y="877" type="curve" smooth="yes"/>
+ <point x="779" y="877"/>
+ <point x="857" y="802"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mH_.glif b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mH_.glif
new file mode 100644
index 0000000..08afbac
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mH_.glif
@@ -0,0 +1,54 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmH" format="2">
+ <advance width="1185"/>
+ <unicode hex="0068"/>
+ <anchor x="190" y="0" name="H"/>
+ <anchor x="550" y="-100" name="L"/>
+ <anchor x="933" y="1635" name="U"/>
+ <outline>
+ <contour>
+ <point x="1055" y="0" type="line"/>
+ <point x="1047" y="30"/>
+ <point x="1043" y="65"/>
+ <point x="1043" y="102" type="curve" smooth="yes"/>
+ <point x="1043" y="143"/>
+ <point x="1048" y="188"/>
+ <point x="1055" y="238" type="curve" smooth="yes"/>
+ <point x="1069" y="327"/>
+ <point x="1170" y="636"/>
+ <point x="1170" y="745" type="curve" smooth="yes"/>
+ <point x="1170" y="917"/>
+ <point x="1095" y="1020"/>
+ <point x="930" y="1020" type="curve" smooth="yes"/>
+ <point x="760" y="1020"/>
+ <point x="591" y="877"/>
+ <point x="475" y="723" type="curve"/>
+ <point x="571" y="1105" type="line" smooth="yes"/>
+ <point x="609" y="1259"/>
+ <point x="645" y="1482"/>
+ <point x="645" y="1570" type="curve"/>
+ <point x="455" y="1570" type="line"/>
+ <point x="455" y="1456"/>
+ <point x="423" y="1257"/>
+ <point x="385" y="1105" type="curve" smooth="yes"/>
+ <point x="110" y="0" type="line"/>
+ <point x="295" y="0" type="line"/>
+ <point x="397" y="408" type="line"/>
+ <point x="492" y="612"/>
+ <point x="717" y="850"/>
+ <point x="840" y="850" type="curve" smooth="yes"/>
+ <point x="937" y="850"/>
+ <point x="970" y="798"/>
+ <point x="970" y="680" type="curve" smooth="yes"/>
+ <point x="970" y="592"/>
+ <point x="886" y="319"/>
+ <point x="872" y="203" type="curve" smooth="yes"/>
+ <point x="867" y="158"/>
+ <point x="864" y="115"/>
+ <point x="864" y="77" type="curve" smooth="yes"/>
+ <point x="864" y="48"/>
+ <point x="866" y="21"/>
+ <point x="870" y="0" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mI_.glif b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mI_.glif
new file mode 100644
index 0000000..65ed550
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mI_.glif
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmI" format="2">
+ <advance width="554"/>
+ <unicode hex="0069"/>
+ <anchor x="235" y="0" name="H"/>
+ <anchor x="250" y="-100" name="L"/>
+ <anchor x="455" y="0" name="O"/>
+ <anchor x="745" y="1000" name="R"/>
+ <anchor x="472" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="361" y="1297" type="curve" smooth="yes"/>
+ <point x="361" y="1237"/>
+ <point x="404" y="1186"/>
+ <point x="467" y="1186" type="curve" smooth="yes"/>
+ <point x="552" y="1186"/>
+ <point x="624" y="1259"/>
+ <point x="624" y="1338" type="curve" smooth="yes"/>
+ <point x="624" y="1399"/>
+ <point x="578" y="1450"/>
+ <point x="513" y="1450" type="curve" smooth="yes"/>
+ <point x="428" y="1450"/>
+ <point x="361" y="1375"/>
+ </contour>
+ <contour>
+ <point x="335" y="1000" type="line"/>
+ <point x="335" y="886"/>
+ <point x="286" y="688"/>
+ <point x="246" y="537" type="curve" smooth="yes"/>
+ <point x="207" y="388" type="line" smooth="yes"/>
+ <point x="180" y="284"/>
+ <point x="165" y="172"/>
+ <point x="165" y="87" type="curve" smooth="yes"/>
+ <point x="165" y="53"/>
+ <point x="167" y="24"/>
+ <point x="172" y="0" type="curve"/>
+ <point x="372" y="0" type="line"/>
+ <point x="365" y="37"/>
+ <point x="360" y="85"/>
+ <point x="360" y="136" type="curve" smooth="yes"/>
+ <point x="360" y="208"/>
+ <point x="368" y="287"/>
+ <point x="386" y="357" type="curve" smooth="yes"/>
+ <point x="431" y="536" type="line" smooth="yes"/>
+ <point x="476" y="712"/>
+ <point x="525" y="912"/>
+ <point x="525" y="1000" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mJ_.glif b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mJ_.glif
new file mode 100644
index 0000000..e9e18b8
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mJ_.glif
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmJ" format="2">
+ <advance width="602"/>
+ <unicode hex="006A"/>
+ <anchor x="-60" y="-500" name="L"/>
+ <anchor x="510" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="370" y="1000" type="line"/>
+ <point x="370" y="856"/>
+ <point x="288" y="374"/>
+ <point x="214" y="77" type="curve" smooth="yes"/>
+ <point x="152" y="-173"/>
+ <point x="29" y="-295"/>
+ <point x="-77" y="-295" type="curve" smooth="yes"/>
+ <point x="-133" y="-295"/>
+ <point x="-217" y="-264"/>
+ <point x="-253" y="-229" type="curve"/>
+ <point x="-328" y="-397" type="line"/>
+ <point x="-278" y="-437"/>
+ <point x="-170" y="-465"/>
+ <point x="-114" y="-465" type="curve" smooth="yes"/>
+ <point x="103" y="-465"/>
+ <point x="303" y="-314"/>
+ <point x="396" y="66" type="curve" smooth="yes"/>
+ <point x="455" y="307"/>
+ <point x="560" y="872"/>
+ <point x="560" y="1000" type="curve"/>
+ </contour>
+ <contour>
+ <point x="397" y="1297" type="curve" smooth="yes"/>
+ <point x="397" y="1237"/>
+ <point x="440" y="1186"/>
+ <point x="503" y="1186" type="curve" smooth="yes"/>
+ <point x="588" y="1186"/>
+ <point x="660" y="1259"/>
+ <point x="660" y="1338" type="curve" smooth="yes"/>
+ <point x="660" y="1399"/>
+ <point x="614" y="1450"/>
+ <point x="549" y="1450" type="curve" smooth="yes"/>
+ <point x="464" y="1450"/>
+ <point x="397" y="1375"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mK_.glif b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mK_.glif
new file mode 100644
index 0000000..28fbc71
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mK_.glif
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmK" format="2">
+ <advance width="1059"/>
+ <unicode hex="006B"/>
+ <anchor x="840" y="0" name="H"/>
+ <anchor x="537" y="-100" name="L"/>
+ <anchor x="1225" y="1000" name="R"/>
+ <anchor x="920" y="1635" name="U"/>
+ <outline>
+ <contour>
+ <point x="295" y="0" type="line"/>
+ <point x="570" y="1105" type="line" smooth="yes"/>
+ <point x="614" y="1280"/>
+ <point x="645" y="1482"/>
+ <point x="645" y="1570" type="curve"/>
+ <point x="455" y="1570" type="line"/>
+ <point x="455" y="1456"/>
+ <point x="424" y="1259"/>
+ <point x="386" y="1107" type="curve" smooth="yes"/>
+ <point x="338" y="915"/>
+ <point x="110" y="0"/>
+ <point x="110" y="0" type="curve"/>
+ </contour>
+ <contour>
+ <point x="909" y="1000" type="line"/>
+ <point x="885" y="863"/>
+ <point x="654" y="700"/>
+ <point x="379" y="539" type="curve"/>
+ <point x="386" y="540"/>
+ <point x="393" y="540"/>
+ <point x="400" y="540" type="curve" smooth="yes"/>
+ <point x="467" y="540"/>
+ <point x="559" y="514"/>
+ <point x="559" y="514" type="curve"/>
+ <point x="902" y="702"/>
+ <point x="1134" y="884"/>
+ <point x="1134" y="1000" type="curve"/>
+ </contour>
+ <contour>
+ <point x="1010" y="0" type="line"/>
+ <point x="863" y="238"/>
+ <point x="718" y="600"/>
+ <point x="527" y="600" type="curve"/>
+ <point x="385" y="529" type="line"/>
+ <point x="540" y="529"/>
+ <point x="667" y="246"/>
+ <point x="775" y="0" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mL_.glif b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mL_.glif
new file mode 100644
index 0000000..06d68fd
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mL_.glif
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmL" format="2">
+ <advance width="575"/>
+ <unicode hex="006C"/>
+ <anchor x="230" y="0" name="H"/>
+ <anchor x="255" y="-100" name="L"/>
+ <anchor x="740" y="1000" name="R"/>
+ <anchor x="630" y="1635" name="U"/>
+ <outline>
+ <contour>
+ <point x="465" y="1570" type="line"/>
+ <point x="465" y="1456"/>
+ <point x="434" y="1259"/>
+ <point x="396" y="1107" type="curve" smooth="yes"/>
+ <point x="241" y="489" type="line" smooth="yes"/>
+ <point x="204" y="343"/>
+ <point x="186" y="220"/>
+ <point x="186" y="104" type="curve" smooth="yes"/>
+ <point x="186" y="69"/>
+ <point x="188" y="34"/>
+ <point x="191" y="0" type="curve"/>
+ <point x="391" y="0" type="line"/>
+ <point x="386" y="32"/>
+ <point x="384" y="70"/>
+ <point x="384" y="112" type="curve" smooth="yes"/>
+ <point x="384" y="230"/>
+ <point x="402" y="380"/>
+ <point x="436" y="517" type="curve" smooth="yes"/>
+ <point x="580" y="1105" type="line" smooth="yes"/>
+ <point x="623" y="1280"/>
+ <point x="655" y="1482"/>
+ <point x="655" y="1570" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mM_.glif b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mM_.glif
new file mode 100644
index 0000000..a6b80db
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mM_.glif
@@ -0,0 +1,80 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmM" format="2">
+ <advance width="1680"/>
+ <unicode hex="006D"/>
+ <anchor x="805" y="0" name="H"/>
+ <anchor x="780" y="-100" name="L"/>
+ <anchor x="1080" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="1520" y="0" type="line"/>
+ <point x="1512" y="30"/>
+ <point x="1510" y="65"/>
+ <point x="1510" y="102" type="curve" smooth="yes"/>
+ <point x="1510" y="143"/>
+ <point x="1515" y="188"/>
+ <point x="1522" y="238" type="curve" smooth="yes"/>
+ <point x="1536" y="327"/>
+ <point x="1655" y="691"/>
+ <point x="1655" y="800" type="curve" smooth="yes"/>
+ <point x="1655" y="930"/>
+ <point x="1594" y="1020"/>
+ <point x="1445" y="1020" type="curve" smooth="yes"/>
+ <point x="1292" y="1020"/>
+ <point x="1124" y="867"/>
+ <point x="1026" y="680" type="curve"/>
+ <point x="1030" y="704"/>
+ <point x="1045" y="778"/>
+ <point x="1045" y="800" type="curve" smooth="yes"/>
+ <point x="1045" y="932"/>
+ <point x="982" y="1020"/>
+ <point x="860" y="1020" type="curve" smooth="yes"/>
+ <point x="717" y="1020"/>
+ <point x="563" y="879"/>
+ <point x="446" y="680" type="curve"/>
+ <point x="466" y="753"/>
+ <point x="476" y="880"/>
+ <point x="476" y="961" type="curve" smooth="yes"/>
+ <point x="476" y="976"/>
+ <point x="476" y="989"/>
+ <point x="475" y="1000" type="curve"/>
+ <point x="295" y="1000" type="line"/>
+ <point x="296" y="983"/>
+ <point x="296" y="964"/>
+ <point x="296" y="945" type="curve" smooth="yes"/>
+ <point x="296" y="825"/>
+ <point x="283" y="680"/>
+ <point x="262" y="595" type="curve" smooth="yes"/>
+ <point x="115" y="0" type="line"/>
+ <point x="300" y="0" type="line"/>
+ <point x="389" y="359" type="line"/>
+ <point x="475" y="573"/>
+ <point x="685" y="850"/>
+ <point x="775" y="850" type="curve" smooth="yes"/>
+ <point x="833" y="850"/>
+ <point x="865" y="813"/>
+ <point x="865" y="720" type="curve" smooth="yes"/>
+ <point x="865" y="679"/>
+ <point x="846" y="583"/>
+ <point x="822" y="486" type="curve" smooth="yes"/>
+ <point x="700" y="0" type="line"/>
+ <point x="885" y="0" type="line"/>
+ <point x="974" y="359" type="line"/>
+ <point x="1032" y="531"/>
+ <point x="1242" y="850"/>
+ <point x="1357" y="850" type="curve" smooth="yes"/>
+ <point x="1425" y="850"/>
+ <point x="1457" y="813"/>
+ <point x="1457" y="720" type="curve" smooth="yes"/>
+ <point x="1457" y="632"/>
+ <point x="1349" y="319"/>
+ <point x="1335" y="203" type="curve" smooth="yes"/>
+ <point x="1330" y="158"/>
+ <point x="1327" y="115"/>
+ <point x="1327" y="77" type="curve" smooth="yes"/>
+ <point x="1327" y="48"/>
+ <point x="1331" y="21"/>
+ <point x="1335" y="0" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mN_.glif b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mN_.glif
new file mode 100644
index 0000000..1f38f20
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mN_.glif
@@ -0,0 +1,57 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmN" format="2">
+ <advance width="1195"/>
+ <unicode hex="006E"/>
+ <anchor x="540" y="0" name="H"/>
+ <anchor x="565" y="-100" name="L"/>
+ <anchor x="815" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="1060" y="0" type="line"/>
+ <point x="1052" y="30"/>
+ <point x="1050" y="65"/>
+ <point x="1050" y="102" type="curve" smooth="yes"/>
+ <point x="1050" y="143"/>
+ <point x="1055" y="188"/>
+ <point x="1062" y="238" type="curve" smooth="yes"/>
+ <point x="1075" y="327"/>
+ <point x="1175" y="636"/>
+ <point x="1175" y="745" type="curve" smooth="yes"/>
+ <point x="1175" y="917"/>
+ <point x="1100" y="1020"/>
+ <point x="935" y="1020" type="curve" smooth="yes"/>
+ <point x="755" y="1020"/>
+ <point x="581" y="870"/>
+ <point x="445" y="672" type="curve"/>
+ <point x="463" y="740"/>
+ <point x="477" y="873"/>
+ <point x="477" y="957" type="curve" smooth="yes"/>
+ <point x="477" y="973"/>
+ <point x="476" y="988"/>
+ <point x="475" y="1000" type="curve"/>
+ <point x="295" y="1000" type="line"/>
+ <point x="295" y="961" type="line" smooth="yes"/>
+ <point x="295" y="833"/>
+ <point x="283" y="679"/>
+ <point x="262" y="595" type="curve" smooth="yes"/>
+ <point x="115" y="0" type="line"/>
+ <point x="300" y="0" type="line"/>
+ <point x="392" y="370" type="line"/>
+ <point x="478" y="573"/>
+ <point x="708" y="850"/>
+ <point x="835" y="850" type="curve" smooth="yes"/>
+ <point x="927" y="850"/>
+ <point x="975" y="798"/>
+ <point x="975" y="680" type="curve" smooth="yes"/>
+ <point x="975" y="592"/>
+ <point x="888" y="319"/>
+ <point x="875" y="203" type="curve" smooth="yes"/>
+ <point x="870" y="158"/>
+ <point x="867" y="115"/>
+ <point x="867" y="77" type="curve" smooth="yes"/>
+ <point x="867" y="48"/>
+ <point x="871" y="21"/>
+ <point x="875" y="0" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mO_.glif b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mO_.glif
new file mode 100644
index 0000000..bec7b9e
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mO_.glif
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmO" format="2">
+ <advance width="1133"/>
+ <unicode hex="006F"/>
+ <anchor x="510" y="0" name="H"/>
+ <anchor x="505" y="-100" name="L"/>
+ <anchor x="800" y="0" name="O"/>
+ <anchor x="1330" y="1000" name="R"/>
+ <anchor x="785" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="142" y="344" type="curve" smooth="yes"/>
+ <point x="142" y="114"/>
+ <point x="306" y="-25"/>
+ <point x="530" y="-25" type="curve" smooth="yes"/>
+ <point x="896" y="-25"/>
+ <point x="1138" y="314"/>
+ <point x="1138" y="648" type="curve" smooth="yes"/>
+ <point x="1138" y="879"/>
+ <point x="985" y="1020"/>
+ <point x="761" y="1020" type="curve" smooth="yes"/>
+ <point x="387" y="1020"/>
+ <point x="142" y="677"/>
+ </contour>
+ <contour>
+ <point x="721" y="862" type="curve" smooth="yes"/>
+ <point x="859" y="862"/>
+ <point x="947" y="767"/>
+ <point x="947" y="611" type="curve" smooth="yes"/>
+ <point x="947" y="391"/>
+ <point x="795" y="132"/>
+ <point x="559" y="132" type="curve" smooth="yes"/>
+ <point x="421" y="132"/>
+ <point x="333" y="226"/>
+ <point x="333" y="380" type="curve" smooth="yes"/>
+ <point x="333" y="599"/>
+ <point x="486" y="862"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mP_.glif b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mP_.glif
new file mode 100644
index 0000000..f9e06b1
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mP_.glif
@@ -0,0 +1,66 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmP" format="2">
+ <advance width="1185"/>
+ <unicode hex="0070"/>
+ <anchor x="105" y="-435" name="H"/>
+ <anchor x="405" y="-500" name="L"/>
+ <anchor x="1360" y="1000" name="R"/>
+ <anchor x="805" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="215" y="-480" type="line"/>
+ <point x="215" y="-388"/>
+ <point x="229" y="-282"/>
+ <point x="255" y="-175" type="curve" smooth="yes"/>
+ <point x="320" y="85" type="line"/>
+ <point x="399" y="20"/>
+ <point x="468" y="-25"/>
+ <point x="575" y="-25" type="curve" smooth="yes"/>
+ <point x="685" y="-25"/>
+ <point x="797" y="9"/>
+ <point x="895" y="85" type="curve" smooth="yes"/>
+ <point x="1063" y="215"/>
+ <point x="1185" y="438"/>
+ <point x="1185" y="680" type="curve" smooth="yes"/>
+ <point x="1185" y="878"/>
+ <point x="1101" y="1020"/>
+ <point x="920" y="1020" type="curve" smooth="yes"/>
+ <point x="757" y="1020"/>
+ <point x="559" y="842"/>
+ <point x="452" y="680" type="curve"/>
+ <point x="468" y="760"/>
+ <point x="477" y="860"/>
+ <point x="477" y="940" type="curve" smooth="yes"/>
+ <point x="477" y="962"/>
+ <point x="477" y="982"/>
+ <point x="475" y="1000" type="curve"/>
+ <point x="295" y="1000" type="line"/>
+ <point x="295" y="971" type="line" smooth="yes"/>
+ <point x="295" y="819"/>
+ <point x="273" y="625"/>
+ <point x="235" y="475" type="curve" smooth="yes"/>
+ <point x="70" y="-175" type="line" smooth="yes"/>
+ <point x="43" y="-281"/>
+ <point x="20" y="-398"/>
+ <point x="20" y="-480" type="curve"/>
+ </contour>
+ <contour>
+ <point x="407" y="432" type="line"/>
+ <point x="544" y="656"/>
+ <point x="732" y="850"/>
+ <point x="840" y="850" type="curve" smooth="yes"/>
+ <point x="939" y="850"/>
+ <point x="990" y="763"/>
+ <point x="990" y="630" type="curve" smooth="yes"/>
+ <point x="990" y="491"/>
+ <point x="926" y="322"/>
+ <point x="815" y="220" type="curve" smooth="yes"/>
+ <point x="759" y="168"/>
+ <point x="693" y="135"/>
+ <point x="615" y="135" type="curve" smooth="yes"/>
+ <point x="523" y="135"/>
+ <point x="479" y="161"/>
+ <point x="365" y="255" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mQ_.glif b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mQ_.glif
new file mode 100644
index 0000000..58d9f87
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mQ_.glif
@@ -0,0 +1,54 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmQ" format="2">
+ <advance width="1115"/>
+ <unicode hex="0071"/>
+ <anchor x="370" y="-500" name="L"/>
+ <anchor x="1320" y="1000" name="R"/>
+ <anchor x="770" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="843" y="-480" type="line"/>
+ <point x="843" y="-391"/>
+ <point x="858" y="-294"/>
+ <point x="885" y="-185" type="curve" smooth="yes"/>
+ <point x="1165" y="945" type="line"/>
+ <point x="1066" y="980"/>
+ <point x="946" y="1020"/>
+ <point x="825" y="1020" type="curve" smooth="yes"/>
+ <point x="675" y="1020"/>
+ <point x="550" y="977"/>
+ <point x="440" y="890" type="curve" smooth="yes"/>
+ <point x="260" y="747"/>
+ <point x="135" y="505"/>
+ <point x="135" y="285" type="curve" smooth="yes"/>
+ <point x="135" y="73"/>
+ <point x="261" y="-25"/>
+ <point x="380" y="-25" type="curve" smooth="yes"/>
+ <point x="524" y="-25"/>
+ <point x="751" y="172"/>
+ <point x="825" y="300" type="curve"/>
+ <point x="693" y="-180" type="line" smooth="yes"/>
+ <point x="662" y="-294"/>
+ <point x="648" y="-414"/>
+ <point x="648" y="-480" type="curve"/>
+ </contour>
+ <contour>
+ <point x="885" y="565" type="line"/>
+ <point x="807" y="413"/>
+ <point x="550" y="140"/>
+ <point x="455" y="140" type="curve" smooth="yes"/>
+ <point x="376" y="140"/>
+ <point x="330" y="199"/>
+ <point x="330" y="330" type="curve" smooth="yes"/>
+ <point x="330" y="481"/>
+ <point x="400" y="658"/>
+ <point x="515" y="760" type="curve" smooth="yes"/>
+ <point x="580" y="817"/>
+ <point x="658" y="855"/>
+ <point x="750" y="855" type="curve" smooth="yes"/>
+ <point x="811" y="855"/>
+ <point x="893" y="840"/>
+ <point x="947" y="817" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mR_.glif b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mR_.glif
new file mode 100644
index 0000000..8037612
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mR_.glif
@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmR" format="2">
+ <advance width="910"/>
+ <unicode hex="0072"/>
+ <anchor x="210" y="0" name="H"/>
+ <anchor x="220" y="-100" name="L"/>
+ <anchor x="670" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="300" y="0" type="line"/>
+ <point x="402" y="415" type="line"/>
+ <point x="502" y="602"/>
+ <point x="703" y="850"/>
+ <point x="785" y="850" type="curve" smooth="yes"/>
+ <point x="831" y="850"/>
+ <point x="855" y="801"/>
+ <point x="855" y="740" type="curve" smooth="yes"/>
+ <point x="855" y="715"/>
+ <point x="852" y="689"/>
+ <point x="845" y="660" type="curve"/>
+ <point x="1010" y="690" type="line"/>
+ <point x="1022" y="737"/>
+ <point x="1030" y="783"/>
+ <point x="1030" y="825" type="curve" smooth="yes"/>
+ <point x="1030" y="935"/>
+ <point x="986" y="1020"/>
+ <point x="865" y="1020" type="curve" smooth="yes"/>
+ <point x="735" y="1020"/>
+ <point x="575" y="867"/>
+ <point x="445" y="675" type="curve"/>
+ <point x="467" y="773"/>
+ <point x="475" y="929"/>
+ <point x="475" y="1000" type="curve"/>
+ <point x="295" y="1000" type="line"/>
+ <point x="295" y="961" type="line" smooth="yes"/>
+ <point x="295" y="833"/>
+ <point x="283" y="679"/>
+ <point x="262" y="595" type="curve" smooth="yes"/>
+ <point x="115" y="0" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mS_.glif b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mS_.glif
new file mode 100644
index 0000000..848ddda
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mS_.glif
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmS" format="2">
+ <advance width="945"/>
+ <unicode hex="0073"/>
+ <anchor x="435" y="0" name="H"/>
+ <anchor x="440" y="-100" name="L"/>
+ <anchor x="710" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="990" y="941" type="line"/>
+ <point x="930" y="978"/>
+ <point x="815" y="1020"/>
+ <point x="640" y="1020" type="curve" smooth="yes"/>
+ <point x="384" y="1020"/>
+ <point x="230" y="881"/>
+ <point x="230" y="716" type="curve" smooth="yes"/>
+ <point x="230" y="614"/>
+ <point x="320" y="533"/>
+ <point x="466" y="461" type="curve" smooth="yes"/>
+ <point x="638" y="376"/>
+ <point x="700" y="333"/>
+ <point x="700" y="265" type="curve" smooth="yes"/>
+ <point x="700" y="188"/>
+ <point x="621" y="132"/>
+ <point x="532" y="132" type="curve" smooth="yes"/>
+ <point x="376" y="132"/>
+ <point x="244" y="216"/>
+ <point x="159" y="325" type="curve"/>
+ <point x="71" y="158" type="line"/>
+ <point x="160" y="60"/>
+ <point x="296" y="-25"/>
+ <point x="488" y="-25" type="curve" smooth="yes"/>
+ <point x="713" y="-25"/>
+ <point x="891" y="106"/>
+ <point x="891" y="306" type="curve" smooth="yes"/>
+ <point x="891" y="432"/>
+ <point x="774" y="515"/>
+ <point x="626" y="593" type="curve" smooth="yes"/>
+ <point x="476" y="672"/>
+ <point x="418" y="695"/>
+ <point x="418" y="753" type="curve" smooth="yes"/>
+ <point x="418" y="822"/>
+ <point x="494" y="862"/>
+ <point x="619" y="862" type="curve" smooth="yes"/>
+ <point x="743" y="862"/>
+ <point x="854" y="808"/>
+ <point x="911" y="769" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mT_.glif b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mT_.glif
new file mode 100644
index 0000000..0eddfe9
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mT_.glif
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmT" format="2">
+ <advance width="815"/>
+ <unicode hex="0074"/>
+ <anchor x="455" y="0" name="H"/>
+ <anchor x="390" y="-100" name="L"/>
+ <anchor x="1025" y="1000" name="R"/>
+ <anchor x="605" y="1360" name="U"/>
+ <outline>
+ <contour>
+ <point x="752" y="211" type="line"/>
+ <point x="665" y="169"/>
+ <point x="593" y="134"/>
+ <point x="527" y="134" type="curve" smooth="yes"/>
+ <point x="448" y="134"/>
+ <point x="425" y="188"/>
+ <point x="425" y="247" type="curve" smooth="yes"/>
+ <point x="425" y="274"/>
+ <point x="429" y="301"/>
+ <point x="434" y="326" type="curve" smooth="yes"/>
+ <point x="470" y="519"/>
+ <point x="564" y="843"/>
+ <point x="677" y="1294" type="curve"/>
+ <point x="492" y="1294" type="line"/>
+ <point x="377" y="841"/>
+ <point x="263" y="429"/>
+ <point x="243" y="301" type="curve" smooth="yes"/>
+ <point x="238" y="269"/>
+ <point x="236" y="240"/>
+ <point x="236" y="213" type="curve" smooth="yes"/>
+ <point x="236" y="41"/>
+ <point x="330" y="-25"/>
+ <point x="465" y="-25" type="curve" smooth="yes"/>
+ <point x="535" y="-25"/>
+ <point x="634" y="-6"/>
+ <point x="740" y="52" type="curve"/>
+ </contour>
+ <contour>
+ <point x="177" y="833" type="line"/>
+ <point x="887" y="833" type="line"/>
+ <point x="923" y="975" type="line"/>
+ <point x="213" y="975" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mU_.glif b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mU_.glif
new file mode 100644
index 0000000..0eda3d2
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mU_.glif
@@ -0,0 +1,57 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmU" format="2">
+ <advance width="1175"/>
+ <unicode hex="0075"/>
+ <anchor x="465" y="0" name="H"/>
+ <anchor x="504" y="-100" name="L"/>
+ <anchor x="640" y="0" name="O"/>
+ <anchor x="1375" y="1000" name="R"/>
+ <anchor x="804" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="1040" y="0" type="line"/>
+ <point x="1036" y="29"/>
+ <point x="1035" y="62"/>
+ <point x="1035" y="100" type="curve" smooth="yes"/>
+ <point x="1035" y="206"/>
+ <point x="1054" y="341"/>
+ <point x="1080" y="455" type="curve" smooth="yes"/>
+ <point x="1135" y="689"/>
+ <point x="1197" y="895"/>
+ <point x="1205" y="1000" type="curve"/>
+ <point x="1010" y="1000" type="line"/>
+ <point x="1003" y="882"/>
+ <point x="971" y="769"/>
+ <point x="920" y="565" type="curve"/>
+ <point x="827" y="376"/>
+ <point x="573" y="135"/>
+ <point x="475" y="135" type="curve" smooth="yes"/>
+ <point x="409" y="135"/>
+ <point x="365" y="181"/>
+ <point x="365" y="280" type="curve" smooth="yes"/>
+ <point x="365" y="347"/>
+ <point x="407" y="500"/>
+ <point x="459" y="702" type="curve" smooth="yes"/>
+ <point x="494" y="837"/>
+ <point x="515" y="925"/>
+ <point x="520" y="1000" type="curve"/>
+ <point x="325" y="1000" type="line"/>
+ <point x="313" y="882"/>
+ <point x="295" y="809"/>
+ <point x="265" y="685" type="curve" smooth="yes"/>
+ <point x="195" y="395" type="line" smooth="yes"/>
+ <point x="179" y="330"/>
+ <point x="170" y="275"/>
+ <point x="170" y="225" type="curve" smooth="yes"/>
+ <point x="170" y="60"/>
+ <point x="257" y="-25"/>
+ <point x="410" y="-25" type="curve" smooth="yes"/>
+ <point x="551" y="-25"/>
+ <point x="745" y="118"/>
+ <point x="880" y="305" type="curve"/>
+ <point x="861" y="196"/>
+ <point x="860" y="98"/>
+ <point x="860" y="0" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mV_.glif b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mV_.glif
new file mode 100644
index 0000000..33e91d6
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mV_.glif
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmV" format="2">
+ <advance width="941"/>
+ <unicode hex="0076"/>
+ <anchor x="359" y="0" name="H"/>
+ <anchor x="350" y="-100" name="L"/>
+ <anchor x="565" y="0" name="O"/>
+ <anchor x="650" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="180" y="1000" type="line"/>
+ <point x="232" y="825"/>
+ <point x="256" y="602"/>
+ <point x="256" y="354" type="curve" smooth="yes"/>
+ <point x="256" y="241"/>
+ <point x="251" y="122"/>
+ <point x="241" y="0" type="curve"/>
+ <point x="441" y="0" type="line"/>
+ <point x="744" y="336"/>
+ <point x="1056" y="765"/>
+ <point x="1056" y="1000" type="curve"/>
+ <point x="856" y="1000" type="line"/>
+ <point x="856" y="769"/>
+ <point x="606" y="394"/>
+ <point x="404" y="176" type="curve"/>
+ <point x="421" y="277"/>
+ <point x="429" y="402"/>
+ <point x="429" y="526" type="curve" smooth="yes"/>
+ <point x="429" y="707"/>
+ <point x="412" y="887"/>
+ <point x="380" y="1000" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mW_.glif b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mW_.glif
new file mode 100644
index 0000000..1daea7c
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mW_.glif
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmW" format="2">
+ <advance width="1555"/>
+ <unicode hex="0077"/>
+ <anchor x="690" y="-100" name="L"/>
+ <anchor x="990" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="858" y="1000" type="line"/>
+ <point x="743" y="739"/>
+ <point x="588" y="466"/>
+ <point x="388" y="181" type="curve"/>
+ <point x="417" y="339"/>
+ <point x="430" y="500"/>
+ <point x="430" y="644" type="curve" smooth="yes"/>
+ <point x="430" y="784"/>
+ <point x="418" y="908"/>
+ <point x="395" y="1000" type="curve"/>
+ <point x="195" y="1000" type="line"/>
+ <point x="234" y="873"/>
+ <point x="256" y="688"/>
+ <point x="256" y="472" type="curve" smooth="yes"/>
+ <point x="256" y="326"/>
+ <point x="246" y="166"/>
+ <point x="225" y="0" type="curve"/>
+ <point x="425" y="0" type="line"/>
+ <point x="632" y="298"/>
+ <point x="825" y="583"/>
+ <point x="896" y="765" type="curve"/>
+ <point x="920" y="478"/>
+ <point x="912" y="233"/>
+ <point x="915" y="0" type="curve"/>
+ <point x="1115" y="0" type="line"/>
+ <point x="1362" y="330"/>
+ <point x="1642" y="777"/>
+ <point x="1645" y="1000" type="curve"/>
+ <point x="1445" y="1000" type="line"/>
+ <point x="1445" y="990" type="line"/>
+ <point x="1445" y="797"/>
+ <point x="1242" y="417"/>
+ <point x="1063" y="181" type="curve"/>
+ <point x="1064" y="221"/>
+ <point x="1064" y="260"/>
+ <point x="1064" y="298" type="curve" smooth="yes"/>
+ <point x="1064" y="577"/>
+ <point x="1046" y="811"/>
+ <point x="1020" y="1000" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mX_.glif b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mX_.glif
new file mode 100644
index 0000000..5508ff9
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mX_.glif
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmX" format="2">
+ <advance width="1009"/>
+ <unicode hex="0078"/>
+ <anchor x="840" y="0" name="H"/>
+ <anchor x="457" y="-100" name="L"/>
+ <anchor x="657" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="945" y="0" type="line"/>
+ <point x="765" y="133"/>
+ <point x="558" y="867"/>
+ <point x="439" y="1000" type="curve"/>
+ <point x="181" y="1000" type="line"/>
+ <point x="410" y="832"/>
+ <point x="578" y="141"/>
+ <point x="698" y="0" type="curve"/>
+ </contour>
+ <contour>
+ <point x="504" y="572" type="line"/>
+ <point x="286" y="463"/>
+ <point x="57" y="230"/>
+ <point x="30" y="0" type="curve"/>
+ <point x="230" y="0" type="line"/>
+ <point x="231" y="156"/>
+ <point x="375" y="380"/>
+ <point x="563" y="467" type="curve"/>
+ </contour>
+ <contour>
+ <point x="659" y="471" type="line"/>
+ <point x="838" y="591"/>
+ <point x="1092" y="798"/>
+ <point x="1099" y="1000" type="curve"/>
+ <point x="889" y="1000" type="line"/>
+ <point x="883" y="842"/>
+ <point x="758" y="675"/>
+ <point x="601" y="581" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mY_.glif b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mY_.glif
new file mode 100644
index 0000000..b9000c5
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/L_tnS_mY_.glif
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmY" format="2">
+ <advance width="976"/>
+ <unicode hex="0079"/>
+ <anchor x="710" y="-100" name="L"/>
+ <anchor x="1270" y="1000" name="R"/>
+ <anchor x="630" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="132" y="1000" type="line"/>
+ <point x="270" y="825"/>
+ <point x="398" y="406"/>
+ <point x="403" y="-16" type="curve"/>
+ <point x="263" y="-232"/>
+ <point x="145" y="-295"/>
+ <point x="64" y="-295" type="curve" smooth="yes"/>
+ <point x="-2" y="-295"/>
+ <point x="-69" y="-254"/>
+ <point x="-102" y="-220" type="curve"/>
+ <point x="-200" y="-377" type="line"/>
+ <point x="-141" y="-430"/>
+ <point x="-68" y="-465"/>
+ <point x="23" y="-465" type="curve" smooth="yes"/>
+ <point x="193" y="-465"/>
+ <point x="369" y="-371"/>
+ <point x="609" y="0" type="curve" smooth="yes"/>
+ <point x="877" y="414"/>
+ <point x="1056" y="808"/>
+ <point x="1056" y="964" type="curve" smooth="yes"/>
+ <point x="1056" y="978"/>
+ <point x="1055" y="990"/>
+ <point x="1052" y="1000" type="curve"/>
+ <point x="852" y="1000" type="line"/>
+ <point x="856" y="984"/>
+ <point x="858" y="967"/>
+ <point x="858" y="946" type="curve" smooth="yes"/>
+ <point x="858" y="783"/>
+ <point x="722" y="472"/>
+ <point x="548" y="189" type="curve"/>
+ <point x="548" y="484"/>
+ <point x="447" y="866"/>
+ <point x="347" y="1000" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/N_onB_reakingH_yphen.glif b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/N_onB_reakingH_yphen.glif
new file mode 100644
index 0000000..e7d9c06
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/N_onB_reakingH_yphen.glif
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="NonBreakingHyphen" format="2">
+ <advance width="840"/>
+ <unicode hex="2011"/>
+ <anchor x="645" y="1100" name="U"/>
+ <outline>
+ <component base="HyphenMinus"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/N_umS_gn.glif b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/N_umS_gn.glif
new file mode 100644
index 0000000..b7506f7
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/N_umS_gn.glif
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="NumSgn" format="2">
+ <advance width="1180"/>
+ <unicode hex="0023"/>
+ <outline>
+ <contour>
+ <point x="739" y="1333" type="line"/>
+ <point x="91" y="98" type="line"/>
+ <point x="261" y="98" type="line"/>
+ <point x="909" y="1333" type="line"/>
+ </contour>
+ <contour>
+ <point x="80" y="465" type="line"/>
+ <point x="1171" y="465" type="line"/>
+ <point x="1208" y="612" type="line"/>
+ <point x="117" y="612" type="line"/>
+ </contour>
+ <contour>
+ <point x="234" y="843" type="line"/>
+ <point x="1325" y="843" type="line"/>
+ <point x="1361" y="990" type="line"/>
+ <point x="270" y="990" type="line"/>
+ </contour>
+ <contour>
+ <point x="1164" y="1333" type="line"/>
+ <point x="516" y="98" type="line"/>
+ <point x="686" y="98" type="line"/>
+ <point x="1334" y="1333" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/P_ercentS_gn.glif b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/P_ercentS_gn.glif
new file mode 100644
index 0000000..84241ea
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/P_ercentS_gn.glif
@@ -0,0 +1,93 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="PercentSgn" format="2">
+ <advance width="1506"/>
+ <unicode hex="0025"/>
+ <outline>
+ <contour>
+ <point x="1300" y="349" type="curve" smooth="yes"/>
+ <point x="1255" y="168"/>
+ <point x="1204" y="113"/>
+ <point x="1118" y="113" type="curve" smooth="yes"/>
+ <point x="1056" y="113"/>
+ <point x="1021" y="148"/>
+ <point x="1021" y="235" type="curve" smooth="yes"/>
+ <point x="1021" y="274"/>
+ <point x="1028" y="322"/>
+ <point x="1043" y="383" type="curve" smooth="yes"/>
+ <point x="1088" y="564"/>
+ <point x="1136" y="617"/>
+ <point x="1223" y="617" type="curve" smooth="yes"/>
+ <point x="1286" y="617"/>
+ <point x="1322" y="582"/>
+ <point x="1322" y="496" type="curve" smooth="yes"/>
+ <point x="1322" y="458"/>
+ <point x="1315" y="409"/>
+ </contour>
+ <contour>
+ <point x="1468" y="361" type="curve" smooth="yes"/>
+ <point x="1483" y="419"/>
+ <point x="1489" y="470"/>
+ <point x="1489" y="515" type="curve" smooth="yes"/>
+ <point x="1489" y="677"/>
+ <point x="1400" y="755"/>
+ <point x="1263" y="755" type="curve" smooth="yes"/>
+ <point x="1089" y="755"/>
+ <point x="945" y="647"/>
+ <point x="876" y="371" type="curve" smooth="yes"/>
+ <point x="861" y="310"/>
+ <point x="854" y="256"/>
+ <point x="854" y="210" type="curve" smooth="yes"/>
+ <point x="854" y="47"/>
+ <point x="943" y="-25"/>
+ <point x="1079" y="-25" type="curve" smooth="yes"/>
+ <point x="1254" y="-25"/>
+ <point x="1396" y="72"/>
+ </contour>
+ <contour>
+ <point x="1369" y="1450" type="line"/>
+ <point x="219" y="-25" type="line"/>
+ <point x="397" y="-25" type="line"/>
+ <point x="1545" y="1450" type="line"/>
+ </contour>
+ <contour>
+ <point x="717" y="1044" type="curve" smooth="yes"/>
+ <point x="672" y="864"/>
+ <point x="621" y="809"/>
+ <point x="535" y="809" type="curve" smooth="yes"/>
+ <point x="474" y="809"/>
+ <point x="439" y="844"/>
+ <point x="439" y="930" type="curve" smooth="yes"/>
+ <point x="439" y="969"/>
+ <point x="446" y="1018"/>
+ <point x="461" y="1079" type="curve" smooth="yes"/>
+ <point x="506" y="1260"/>
+ <point x="554" y="1313"/>
+ <point x="641" y="1313" type="curve" smooth="yes"/>
+ <point x="704" y="1313"/>
+ <point x="739" y="1278"/>
+ <point x="739" y="1192" type="curve" smooth="yes"/>
+ <point x="739" y="1153"/>
+ <point x="732" y="1105"/>
+ </contour>
+ <contour>
+ <point x="886" y="1057" type="curve" smooth="yes"/>
+ <point x="900" y="1114"/>
+ <point x="907" y="1166"/>
+ <point x="907" y="1210" type="curve" smooth="yes"/>
+ <point x="907" y="1373"/>
+ <point x="817" y="1450"/>
+ <point x="680" y="1450" type="curve" smooth="yes"/>
+ <point x="506" y="1450"/>
+ <point x="362" y="1343"/>
+ <point x="293" y="1066" type="curve" smooth="yes"/>
+ <point x="278" y="1005"/>
+ <point x="271" y="952"/>
+ <point x="271" y="906" type="curve" smooth="yes"/>
+ <point x="271" y="743"/>
+ <point x="360" y="671"/>
+ <point x="497" y="671" type="curve" smooth="yes"/>
+ <point x="672" y="671"/>
+ <point x="813" y="768"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/P_lusS_gn.glif b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/P_lusS_gn.glif
new file mode 100644
index 0000000..8c4577e
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/P_lusS_gn.glif
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="PlusSgn" format="2">
+ <advance width="1180"/>
+ <unicode hex="002B"/>
+ <outline>
+ <contour>
+ <point x="748" y="1156" type="line"/>
+ <point x="529" y="279" type="line"/>
+ <point x="684" y="279" type="line"/>
+ <point x="903" y="1156" type="line"/>
+ </contour>
+ <contour>
+ <point x="256" y="647" type="line"/>
+ <point x="1146" y="647" type="line"/>
+ <point x="1182" y="794" type="line"/>
+ <point x="292" y="794" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/Q_stnM_rk.glif b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/Q_stnM_rk.glif
new file mode 100644
index 0000000..8b14a6c
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/Q_stnM_rk.glif
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="QstnMrk" format="2">
+ <advance width="1030"/>
+ <unicode hex="003F"/>
+ <outline>
+ <contour>
+ <point x="419" y="1226" type="line"/>
+ <point x="514" y="1303"/>
+ <point x="615" y="1338"/>
+ <point x="685" y="1338" type="curve" smooth="yes"/>
+ <point x="800" y="1338"/>
+ <point x="858" y="1294"/>
+ <point x="858" y="1222" type="curve" smooth="yes"/>
+ <point x="858" y="1122"/>
+ <point x="713" y="1017"/>
+ <point x="654" y="960" type="curve" smooth="yes"/>
+ <point x="538" y="850"/>
+ <point x="473" y="715"/>
+ <point x="402" y="431" type="curve"/>
+ <point x="587" y="431" type="line"/>
+ <point x="656" y="707"/>
+ <point x="697" y="778"/>
+ <point x="831" y="901" type="curve" smooth="yes"/>
+ <point x="949" y="1010"/>
+ <point x="1072" y="1146"/>
+ <point x="1072" y="1272" type="curve" smooth="yes"/>
+ <point x="1072" y="1409"/>
+ <point x="947" y="1509"/>
+ <point x="746" y="1509" type="curve" smooth="yes"/>
+ <point x="631" y="1509"/>
+ <point x="500" y="1463"/>
+ <point x="419" y="1401" type="curve"/>
+ </contour>
+ <contour>
+ <point x="278" y="90" type="curve" smooth="yes"/>
+ <point x="278" y="28"/>
+ <point x="328" y="-25"/>
+ <point x="393" y="-25" type="curve" smooth="yes"/>
+ <point x="477" y="-25"/>
+ <point x="554" y="45"/>
+ <point x="554" y="125" type="curve" smooth="yes"/>
+ <point x="554" y="186"/>
+ <point x="504" y="240"/>
+ <point x="439" y="240" type="curve" smooth="yes"/>
+ <point x="355" y="240"/>
+ <point x="278" y="170"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/Q_uotM_rk.glif b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/Q_uotM_rk.glif
new file mode 100644
index 0000000..4a8357b
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/Q_uotM_rk.glif
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="QuotMrk" format="2">
+ <advance width="1005"/>
+ <unicode hex="0022"/>
+ <outline>
+ <contour>
+ <point x="600" y="1024" type="line"/>
+ <point x="639" y="1162"/>
+ <point x="683" y="1312"/>
+ <point x="772" y="1553" type="curve"/>
+ <point x="567" y="1553" type="line"/>
+ <point x="538" y="1312"/>
+ <point x="505" y="1162"/>
+ <point x="475" y="1024" type="curve"/>
+ </contour>
+ <contour>
+ <point x="940" y="1024" type="line"/>
+ <point x="979" y="1162"/>
+ <point x="1023" y="1312"/>
+ <point x="1112" y="1553" type="curve"/>
+ <point x="907" y="1553" type="line"/>
+ <point x="878" y="1312"/>
+ <point x="845" y="1162"/>
+ <point x="815" y="1024" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/R_everseS_olidus.glif b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/R_everseS_olidus.glif
new file mode 100644
index 0000000..f146267
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/R_everseS_olidus.glif
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="ReverseSolidus" format="2">
+ <advance width="1005"/>
+ <unicode hex="005C"/>
+ <outline>
+ <contour>
+ <point x="473" y="1538" type="line"/>
+ <point x="656" y="-123" type="line"/>
+ <point x="799" y="-93" type="line"/>
+ <point x="620" y="1568" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/R_tC_urlyB_rac.glif b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/R_tC_urlyB_rac.glif
new file mode 100644
index 0000000..82df531
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/R_tC_urlyB_rac.glif
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="RtCurlyBrac" format="2">
+ <advance width="980"/>
+ <unicode hex="007D"/>
+ <outline>
+ <contour>
+ <point x="466" y="1470" type="line"/>
+ <point x="513" y="1452"/>
+ <point x="653" y="1397"/>
+ <point x="653" y="1366" type="curve" smooth="yes"/>
+ <point x="653" y="1238"/>
+ <point x="531" y="801"/>
+ <point x="531" y="737" type="curve" smooth="yes"/>
+ <point x="531" y="701"/>
+ <point x="660" y="627"/>
+ <point x="660" y="603" type="curve" smooth="yes"/>
+ <point x="660" y="585"/>
+ <point x="496" y="511"/>
+ <point x="468" y="475" type="curve" smooth="yes"/>
+ <point x="439" y="438"/>
+ <point x="312" y="-121"/>
+ <point x="268" y="-167" type="curve" smooth="yes"/>
+ <point x="241" y="-194"/>
+ <point x="106" y="-242"/>
+ <point x="33" y="-265" type="curve"/>
+ <point x="39" y="-402" type="line"/>
+ <point x="150" y="-375"/>
+ <point x="324" y="-323"/>
+ <point x="375" y="-279" type="curve" smooth="yes"/>
+ <point x="465" y="-201"/>
+ <point x="608" y="410"/>
+ <point x="639" y="441" type="curve" smooth="yes"/>
+ <point x="675" y="476"/>
+ <point x="880" y="571"/>
+ <point x="880" y="607" type="curve" smooth="yes"/>
+ <point x="880" y="639"/>
+ <point x="719" y="740"/>
+ <point x="719" y="771" type="curve" smooth="yes"/>
+ <point x="719" y="839"/>
+ <point x="825" y="1259"/>
+ <point x="825" y="1425" type="curve" smooth="yes"/>
+ <point x="825" y="1453"/>
+ <point x="822" y="1474"/>
+ <point x="815" y="1485" type="curve" smooth="yes"/>
+ <point x="786" y="1529"/>
+ <point x="638" y="1581"/>
+ <point x="540" y="1607" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/R_tP_aren.glif b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/R_tP_aren.glif
new file mode 100644
index 0000000..3950e09
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/R_tP_aren.glif
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="RtParen" format="2">
+ <advance width="775"/>
+ <unicode hex="0029"/>
+ <outline>
+ <contour>
+ <point x="467" y="1455" type="line"/>
+ <point x="578" y="1327"/>
+ <point x="628" y="1146"/>
+ <point x="628" y="946" type="curve" smooth="yes"/>
+ <point x="628" y="832"/>
+ <point x="612" y="713"/>
+ <point x="582" y="593" type="curve" smooth="yes"/>
+ <point x="497" y="252"/>
+ <point x="328" y="-8"/>
+ <point x="40" y="-260" type="curve"/>
+ <point x="99" y="-402" type="line"/>
+ <point x="444" y="-123"/>
+ <point x="673" y="194"/>
+ <point x="772" y="593" type="curve" smooth="yes"/>
+ <point x="804" y="719"/>
+ <point x="819" y="843"/>
+ <point x="819" y="959" type="curve" smooth="yes"/>
+ <point x="819" y="1236"/>
+ <point x="733" y="1472"/>
+ <point x="580" y="1607" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/R_tS_qrB_rac.glif b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/R_tS_qrB_rac.glif
new file mode 100644
index 0000000..4c13a82
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/R_tS_qrB_rac.glif
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="RtSqrBrac" format="2">
+ <advance width="770"/>
+ <unicode hex="005D"/>
+ <outline>
+ <contour>
+ <point x="434" y="-402" type="line"/>
+ <point x="920" y="1568" type="line"/>
+ <point x="480" y="1568" type="line"/>
+ <point x="444" y="1421" type="line"/>
+ <point x="699" y="1421" type="line"/>
+ <point x="286" y="-255" type="line"/>
+ <point x="31" y="-255" type="line"/>
+ <point x="-6" y="-402" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/S_emicolon.glif b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/S_emicolon.glif
new file mode 100644
index 0000000..be971ac
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/S_emicolon.glif
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Semicolon" format="2">
+ <advance width="630"/>
+ <unicode hex="003B"/>
+ <outline>
+ <contour>
+ <point x="314" y="758" type="curve" smooth="yes"/>
+ <point x="314" y="696"/>
+ <point x="365" y="642"/>
+ <point x="430" y="642" type="curve" smooth="yes"/>
+ <point x="514" y="642"/>
+ <point x="590" y="712"/>
+ <point x="590" y="792" type="curve" smooth="yes"/>
+ <point x="590" y="854"/>
+ <point x="540" y="907"/>
+ <point x="476" y="907" type="curve" smooth="yes"/>
+ <point x="393" y="907"/>
+ <point x="314" y="837"/>
+ </contour>
+ <contour>
+ <point x="137" y="49" type="line"/>
+ <point x="277" y="49" type="line"/>
+ <point x="252" y="-50"/>
+ <point x="145" y="-169"/>
+ <point x="73" y="-225" type="curve"/>
+ <point x="163" y="-265" type="line"/>
+ <point x="280" y="-175"/>
+ <point x="431" y="-28"/>
+ <point x="431" y="118" type="curve" smooth="yes"/>
+ <point x="431" y="193"/>
+ <point x="378" y="245"/>
+ <point x="311" y="245" type="curve" smooth="yes"/>
+ <point x="254" y="245"/>
+ <point x="190" y="209"/>
+ <point x="161" y="147" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/S_olidus.glif b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/S_olidus.glif
new file mode 100644
index 0000000..589697b
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/S_olidus.glif
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Solidus" format="2">
+ <advance width="980"/>
+ <unicode hex="002F"/>
+ <outline>
+ <contour>
+ <point x="1160" y="1568" type="line"/>
+ <point x="-119" y="-240" type="line"/>
+ <point x="50" y="-240" type="line"/>
+ <point x="1330" y="1568" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/S_pace.glif b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/S_pace.glif
new file mode 100644
index 0000000..c49f0f2
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/S_pace.glif
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Space" format="2">
+ <advance width="530"/>
+ <unicode hex="0020"/>
+ <outline/>
+</glyph>
diff --git a/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/S_tar.glif b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/S_tar.glif
new file mode 100644
index 0000000..1fa9f6f
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/S_tar.glif
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Star" format="2">
+ <advance width="1028"/>
+ <unicode hex="3027"/>
+ <outline>
+ <contour>
+ <point x="560" y="1600" type="curve"/>
+ <point x="415" y="1600" type="line"/>
+ <point x="434" y="1467"/>
+ <point x="447" y="1387"/>
+ <point x="450" y="1300" type="curve"/>
+ <point x="376" y="1344"/>
+ <point x="309" y="1387"/>
+ <point x="200" y="1465" type="curve"/>
+ <point x="125" y="1340" type="line"/>
+ <point x="250" y="1290"/>
+ <point x="327" y="1261"/>
+ <point x="405" y="1220" type="curve"/>
+ <point x="329" y="1177"/>
+ <point x="256" y="1140"/>
+ <point x="135" y="1085" type="curve"/>
+ <point x="205" y="960" type="line"/>
+ <point x="310" y="1042"/>
+ <point x="377" y="1094"/>
+ <point x="450" y="1140" type="curve"/>
+ <point x="448" y="1055"/>
+ <point x="442" y="973"/>
+ <point x="430" y="840" type="curve"/>
+ <point x="570" y="840" type="line"/>
+ <point x="550" y="973"/>
+ <point x="544" y="1052"/>
+ <point x="540" y="1140" type="curve"/>
+ <point x="614" y="1095"/>
+ <point x="681" y="1053"/>
+ <point x="790" y="975" type="curve"/>
+ <point x="865" y="1100" type="line"/>
+ <point x="739" y="1149"/>
+ <point x="663" y="1179"/>
+ <point x="585" y="1220" type="curve"/>
+ <point x="661" y="1261"/>
+ <point x="733" y="1299"/>
+ <point x="855" y="1355" type="curve"/>
+ <point x="785" y="1480" type="line"/>
+ <point x="680" y="1396"/>
+ <point x="614" y="1348"/>
+ <point x="540" y="1300" type="curve"/>
+ <point x="541" y="1387"/>
+ <point x="547" y="1467"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/T_ilde.glif b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/T_ilde.glif
new file mode 100644
index 0000000..bf260b8
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/T_ilde.glif
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Tilde" format="2">
+ <advance width="1095"/>
+ <unicode hex="007E"/>
+ <outline>
+ <contour>
+ <point x="156" y="368" type="line"/>
+ <point x="173" y="416"/>
+ <point x="215" y="456"/>
+ <point x="293" y="456" type="curve" smooth="yes"/>
+ <point x="468" y="456"/>
+ <point x="643" y="353"/>
+ <point x="873" y="353" type="curve" smooth="yes"/>
+ <point x="1032" y="353"/>
+ <point x="1137" y="472"/>
+ <point x="1169" y="598" type="curve"/>
+ <point x="1064" y="598" type="line"/>
+ <point x="1045" y="553"/>
+ <point x="1002" y="500"/>
+ <point x="919" y="500" type="curve" smooth="yes"/>
+ <point x="683" y="500"/>
+ <point x="551" y="603"/>
+ <point x="330" y="603" type="curve" smooth="yes"/>
+ <point x="184" y="603"/>
+ <point x="81" y="487"/>
+ <point x="51" y="368" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/V_ertL_ine.glif b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/V_ertL_ine.glif
new file mode 100644
index 0000000..445d622
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/V_ertL_ine.glif
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="VertLine" format="2">
+ <advance width="670"/>
+ <unicode hex="007C"/>
+ <outline>
+ <contour>
+ <point x="602" y="1578" type="line"/>
+ <point x="112" y="-392" type="line"/>
+ <point x="262" y="-392" type="line"/>
+ <point x="752" y="1578" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/_notdef.glif b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/_notdef.glif
new file mode 100644
index 0000000..a3e9354
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/_notdef.glif
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name=".notdef" format="2">
+ <advance width="1400"/>
+ <outline>
+ <contour>
+ <point x="100" y="0" type="line"/>
+ <point x="1300" y="0" type="line"/>
+ <point x="1300" y="1800" type="line"/>
+ <point x="100" y="1800" type="line"/>
+ </contour>
+ <contour>
+ <point x="150" y="1750" type="line"/>
+ <point x="1250" y="1750" type="line"/>
+ <point x="1250" y="50" type="line"/>
+ <point x="150" y="50" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/_null.glif b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/_null.glif
new file mode 100644
index 0000000..0b9caa6
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/_null.glif
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name=".null" format="2">
+ <outline/>
+</glyph>
diff --git a/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/contents.plist b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/contents.plist
new file mode 100644
index 0000000..733cd3b
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/contents.plist
@@ -0,0 +1,240 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>.notdef</key>
+ <string>_notdef.glif</string>
+ <key>.null</key>
+ <string>_null.glif</string>
+ <key>Ampergravel</key>
+ <string>A_mpergravel.glif</string>
+ <key>Ampersand</key>
+ <string>A_mpersand.glif</string>
+ <key>Apos</key>
+ <string>A_pos.glif</string>
+ <key>Asterisk</key>
+ <string>A_sterisk.glif</string>
+ <key>AtSgn</key>
+ <string>A_tS_gn.glif</string>
+ <key>CircumAccent</key>
+ <string>C_ircumA_ccent.glif</string>
+ <key>Colon</key>
+ <string>C_olon.glif</string>
+ <key>CombAcute</key>
+ <string>C_ombA_cute.glif</string>
+ <key>CombCircum</key>
+ <string>C_ombC_ircum.glif</string>
+ <key>CombDiaer</key>
+ <string>C_ombD_iaer.glif</string>
+ <key>CombGrave</key>
+ <string>C_ombG_rave.glif</string>
+ <key>CombRingAbv</key>
+ <string>C_ombR_ingA_bv.glif</string>
+ <key>CombTilde</key>
+ <string>C_ombT_ilde.glif</string>
+ <key>Comma</key>
+ <string>C_omma.glif</string>
+ <key>DigitEight</key>
+ <string>D_igitE_ight.glif</string>
+ <key>DigitFive</key>
+ <string>D_igitF_ive.glif</string>
+ <key>DigitFour</key>
+ <string>D_igitF_our.glif</string>
+ <key>DigitNine</key>
+ <string>D_igitN_ine.glif</string>
+ <key>DigitOne</key>
+ <string>D_igitO_ne.glif</string>
+ <key>DigitSeven</key>
+ <string>D_igitS_even.glif</string>
+ <key>DigitSix</key>
+ <string>D_igitS_ix.glif</string>
+ <key>DigitThree</key>
+ <string>D_igitT_hree.glif</string>
+ <key>DigitTwo</key>
+ <string>D_igitT_wo.glif</string>
+ <key>DigitZero</key>
+ <string>D_igitZ_ero.glif</string>
+ <key>DollarSgn</key>
+ <string>D_ollarS_gn.glif</string>
+ <key>DottedCirc</key>
+ <string>D_ottedC_irc.glif</string>
+ <key>EqSgn</key>
+ <string>E_qS_gn.glif</string>
+ <key>ExclamationMrk</key>
+ <string>E_xclamationM_rk.glif</string>
+ <key>FullStop</key>
+ <string>F_ullS_top.glif</string>
+ <key>Fullstart</key>
+ <string>F_ullstart.glif</string>
+ <key>GTSgn</key>
+ <string>G_T_S_gn.glif</string>
+ <key>GraveAccent</key>
+ <string>G_raveA_ccent.glif</string>
+ <key>Hyphen</key>
+ <string>H_yphen.glif</string>
+ <key>HyphenMinus</key>
+ <string>H_yphenM_inus.glif</string>
+ <key>Hyphen_Soft</key>
+ <string>H_yphen_S_oft.glif</string>
+ <key>LTSgn</key>
+ <string>L_T_S_gn.glif</string>
+ <key>LftCurlyBrac</key>
+ <string>L_ftC_urlyB_rac.glif</string>
+ <key>LftParen</key>
+ <string>L_ftP_aren.glif</string>
+ <key>LftSqrBrac</key>
+ <string>L_ftS_qrB_rac.glif</string>
+ <key>LowLine</key>
+ <string>L_owL_ine.glif</string>
+ <key>LtnCapA</key>
+ <string>L_tnC_apA_.glif</string>
+ <key>LtnCapA.alt</key>
+ <string>L_tnC_apA_.alt.glif</string>
+ <key>LtnCapADiaer</key>
+ <string>L_tnC_apA_D_iaer.glif</string>
+ <key>LtnCapB</key>
+ <string>L_tnC_apB_.glif</string>
+ <key>LtnCapC</key>
+ <string>L_tnC_apC_.glif</string>
+ <key>LtnCapD</key>
+ <string>L_tnC_apD_.glif</string>
+ <key>LtnCapE</key>
+ <string>L_tnC_apE_.glif</string>
+ <key>LtnCapF</key>
+ <string>L_tnC_apF_.glif</string>
+ <key>LtnCapG</key>
+ <string>L_tnC_apG_.glif</string>
+ <key>LtnCapH</key>
+ <string>L_tnC_apH_.glif</string>
+ <key>LtnCapI</key>
+ <string>L_tnC_apI_.glif</string>
+ <key>LtnCapJ</key>
+ <string>L_tnC_apJ_.glif</string>
+ <key>LtnCapK</key>
+ <string>L_tnC_apK_.glif</string>
+ <key>LtnCapL</key>
+ <string>L_tnC_apL_.glif</string>
+ <key>LtnCapM</key>
+ <string>L_tnC_apM_.glif</string>
+ <key>LtnCapN</key>
+ <string>L_tnC_apN_.glif</string>
+ <key>LtnCapO</key>
+ <string>L_tnC_apO_.glif</string>
+ <key>LtnCapP</key>
+ <string>L_tnC_apP_.glif</string>
+ <key>LtnCapQ</key>
+ <string>L_tnC_apQ_.glif</string>
+ <key>LtnCapR</key>
+ <string>L_tnC_apR_.glif</string>
+ <key>LtnCapS</key>
+ <string>L_tnC_apS_.glif</string>
+ <key>LtnCapT</key>
+ <string>L_tnC_apT_.glif</string>
+ <key>LtnCapU</key>
+ <string>L_tnC_apU_.glif</string>
+ <key>LtnCapV</key>
+ <string>L_tnC_apV_.glif</string>
+ <key>LtnCapW</key>
+ <string>L_tnC_apW_.glif</string>
+ <key>LtnCapX</key>
+ <string>L_tnC_apX_.glif</string>
+ <key>LtnCapY</key>
+ <string>L_tnC_apY_.glif</string>
+ <key>LtnSmA</key>
+ <string>L_tnS_mA_.glif</string>
+ <key>LtnSmAAcute</key>
+ <string>L_tnS_mA_A_cute.glif</string>
+ <key>LtnSmACircum</key>
+ <string>L_tnS_mA_C_ircum.glif</string>
+ <key>LtnSmADiaer</key>
+ <string>L_tnS_mA_D_iaer.glif</string>
+ <key>LtnSmAGrave</key>
+ <string>L_tnS_mA_G_rave.glif</string>
+ <key>LtnSmARingAbv</key>
+ <string>L_tnS_mA_R_ingA_bv.glif</string>
+ <key>LtnSmATilde</key>
+ <string>L_tnS_mA_T_ilde.glif</string>
+ <key>LtnSmB</key>
+ <string>L_tnS_mB_.glif</string>
+ <key>LtnSmC</key>
+ <string>L_tnS_mC_.glif</string>
+ <key>LtnSmD</key>
+ <string>L_tnS_mD_.glif</string>
+ <key>LtnSmE</key>
+ <string>L_tnS_mE_.glif</string>
+ <key>LtnSmF</key>
+ <string>L_tnS_mF_.glif</string>
+ <key>LtnSmG</key>
+ <string>L_tnS_mG_.glif</string>
+ <key>LtnSmH</key>
+ <string>L_tnS_mH_.glif</string>
+ <key>LtnSmI</key>
+ <string>L_tnS_mI_.glif</string>
+ <key>LtnSmJ</key>
+ <string>L_tnS_mJ_.glif</string>
+ <key>LtnSmK</key>
+ <string>L_tnS_mK_.glif</string>
+ <key>LtnSmL</key>
+ <string>L_tnS_mL_.glif</string>
+ <key>LtnSmM</key>
+ <string>L_tnS_mM_.glif</string>
+ <key>LtnSmN</key>
+ <string>L_tnS_mN_.glif</string>
+ <key>LtnSmO</key>
+ <string>L_tnS_mO_.glif</string>
+ <key>LtnSmP</key>
+ <string>L_tnS_mP_.glif</string>
+ <key>LtnSmQ</key>
+ <string>L_tnS_mQ_.glif</string>
+ <key>LtnSmR</key>
+ <string>L_tnS_mR_.glif</string>
+ <key>LtnSmS</key>
+ <string>L_tnS_mS_.glif</string>
+ <key>LtnSmT</key>
+ <string>L_tnS_mT_.glif</string>
+ <key>LtnSmU</key>
+ <string>L_tnS_mU_.glif</string>
+ <key>LtnSmV</key>
+ <string>L_tnS_mV_.glif</string>
+ <key>LtnSmW</key>
+ <string>L_tnS_mW_.glif</string>
+ <key>LtnSmX</key>
+ <string>L_tnS_mX_.glif</string>
+ <key>LtnSmY</key>
+ <string>L_tnS_mY_.glif</string>
+ <key>NonBreakingHyphen</key>
+ <string>N_onB_reakingH_yphen.glif</string>
+ <key>NumSgn</key>
+ <string>N_umS_gn.glif</string>
+ <key>PercentSgn</key>
+ <string>P_ercentS_gn.glif</string>
+ <key>PlusSgn</key>
+ <string>P_lusS_gn.glif</string>
+ <key>QstnMrk</key>
+ <string>Q_stnM_rk.glif</string>
+ <key>QuotMrk</key>
+ <string>Q_uotM_rk.glif</string>
+ <key>ReverseSolidus</key>
+ <string>R_everseS_olidus.glif</string>
+ <key>RtCurlyBrac</key>
+ <string>R_tC_urlyB_rac.glif</string>
+ <key>RtParen</key>
+ <string>R_tP_aren.glif</string>
+ <key>RtSqrBrac</key>
+ <string>R_tS_qrB_rac.glif</string>
+ <key>Semicolon</key>
+ <string>S_emicolon.glif</string>
+ <key>Solidus</key>
+ <string>S_olidus.glif</string>
+ <key>Space</key>
+ <string>S_pace.glif</string>
+ <key>Star</key>
+ <string>S_tar.glif</string>
+ <key>Tilde</key>
+ <string>T_ilde.glif</string>
+ <key>VertLine</key>
+ <string>V_ertL_ine.glif</string>
+ <key>nonmarkingreturn</key>
+ <string>nonmarkingreturn.glif</string>
+</dict>
+</plist>
diff --git a/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/nonmarkingreturn.glif b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/nonmarkingreturn.glif
new file mode 100644
index 0000000..9a63f06
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.ufo/glyphs/nonmarkingreturn.glif
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="nonmarkingreturn" format="2">
+ <advance width="1004"/>
+ <outline/>
+</glyph>
diff --git a/tests/reference/ufo/psfcopyglyphs.ufo/layercontents.plist b/tests/reference/ufo/psfcopyglyphs.ufo/layercontents.plist
new file mode 100644
index 0000000..42b7482
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.ufo/layercontents.plist
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<array>
+ <array>
+ <string>public.default</string>
+ <string>glyphs</string>
+ </array>
+</array>
+</plist>
diff --git a/tests/reference/ufo/psfcopyglyphs.ufo/lib.plist b/tests/reference/ufo/psfcopyglyphs.ufo/lib.plist
new file mode 100644
index 0000000..43413a8
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.ufo/lib.plist
@@ -0,0 +1,538 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>com.schriftgestaltung.Glyphs.fontUserData</key>
+ <dict/>
+ <key>com.schriftgestaltung.appVersion</key>
+ <string>1161</string>
+ <key>com.schriftgestaltung.customName</key>
+ <string>Italic</string>
+ <key>com.schriftgestaltung.customParameter.GSFont.DisplayStrings</key>
+ <string/>
+ <key>com.schriftgestaltung.customParameter.GSFont.disablesAutomaticAlignment</key>
+ <true/>
+ <key>com.schriftgestaltung.customParameter.GSFont.disablesLastChange</key>
+ <true/>
+ <key>com.schriftgestaltung.customParameter.GSFont.useNiceNames</key>
+ <integer>0</integer>
+ <key>com.schriftgestaltung.customParameter.GSFontMaster.customValue</key>
+ <integer>0</integer>
+ <key>com.schriftgestaltung.customParameter.GSFontMaster.customValue1</key>
+ <integer>0</integer>
+ <key>com.schriftgestaltung.customParameter.GSFontMaster.customValue2</key>
+ <integer>0</integer>
+ <key>com.schriftgestaltung.customParameter.GSFontMaster.customValue3</key>
+ <integer>0</integer>
+ <key>com.schriftgestaltung.customParameter.GSFontMaster.iconName</key>
+ <string/>
+ <key>com.schriftgestaltung.customParameter.GSFontMaster.weightValue</key>
+ <integer>400</integer>
+ <key>com.schriftgestaltung.customParameter.GSFontMaster.widthValue</key>
+ <integer>100</integer>
+ <key>com.schriftgestaltung.disablesAutomaticAlignment</key>
+ <true/>
+ <key>com.schriftgestaltung.disablesLastChange</key>
+ <true/>
+ <key>com.schriftgestaltung.fontMasterOrder</key>
+ <integer>0</integer>
+ <key>com.schriftgestaltung.glyphOrder</key>
+ <array>
+ <string>.notdef</string>
+ <string>.null</string>
+ <string>nonmarkingreturn</string>
+ <string>Space</string>
+ <string>ExclamationMrk</string>
+ <string>QuotMrk</string>
+ <string>NumSgn</string>
+ <string>DollarSgn</string>
+ <string>PercentSgn</string>
+ <string>Ampersand</string>
+ <string>Apos</string>
+ <string>LftParen</string>
+ <string>RtParen</string>
+ <string>Asterisk</string>
+ <string>PlusSgn</string>
+ <string>Comma</string>
+ <string>HyphenMinus</string>
+ <string>FullStop</string>
+ <string>Solidus</string>
+ <string>DigitZero</string>
+ <string>DigitOne</string>
+ <string>DigitTwo</string>
+ <string>DigitThree</string>
+ <string>DigitFour</string>
+ <string>DigitFive</string>
+ <string>DigitSix</string>
+ <string>DigitSeven</string>
+ <string>DigitEight</string>
+ <string>DigitNine</string>
+ <string>Colon</string>
+ <string>Semicolon</string>
+ <string>LTSgn</string>
+ <string>EqSgn</string>
+ <string>GTSgn</string>
+ <string>QstnMrk</string>
+ <string>AtSgn</string>
+ <string>LtnCapA</string>
+ <string>LtnCapA.alt</string>
+ <string>LtnCapB</string>
+ <string>LtnCapC</string>
+ <string>LtnCapD</string>
+ <string>LtnCapE</string>
+ <string>LtnCapF</string>
+ <string>LtnCapG</string>
+ <string>LtnCapH</string>
+ <string>LtnCapI</string>
+ <string>LtnCapJ</string>
+ <string>LtnCapK</string>
+ <string>LtnCapL</string>
+ <string>LtnCapM</string>
+ <string>LtnCapN</string>
+ <string>LtnCapO</string>
+ <string>LtnCapP</string>
+ <string>LtnCapQ</string>
+ <string>LtnCapR</string>
+ <string>LtnCapS</string>
+ <string>LtnCapT</string>
+ <string>LtnCapU</string>
+ <string>LtnCapV</string>
+ <string>LtnCapW</string>
+ <string>LtnCapX</string>
+ <string>LtnCapY</string>
+ <string>LftSqrBrac</string>
+ <string>ReverseSolidus</string>
+ <string>RtSqrBrac</string>
+ <string>CircumAccent</string>
+ <string>LowLine</string>
+ <string>GraveAccent</string>
+ <string>LtnSmA</string>
+ <string>LtnSmB</string>
+ <string>LtnSmC</string>
+ <string>LtnSmD</string>
+ <string>LtnSmE</string>
+ <string>LtnSmF</string>
+ <string>LtnSmG</string>
+ <string>LtnSmH</string>
+ <string>LtnSmI</string>
+ <string>LtnSmJ</string>
+ <string>LtnSmK</string>
+ <string>LtnSmL</string>
+ <string>LtnSmM</string>
+ <string>LtnSmN</string>
+ <string>LtnSmO</string>
+ <string>LtnSmP</string>
+ <string>LtnSmQ</string>
+ <string>LtnSmR</string>
+ <string>LtnSmS</string>
+ <string>LtnSmT</string>
+ <string>LtnSmU</string>
+ <string>LtnSmV</string>
+ <string>LtnSmW</string>
+ <string>LtnSmX</string>
+ <string>LtnSmY</string>
+ <string>LftCurlyBrac</string>
+ <string>VertLine</string>
+ <string>RtCurlyBrac</string>
+ <string>Tilde</string>
+ <string>LtnCapADiaer</string>
+ <string>LtnSmAAcute</string>
+ <string>LtnSmAGrave</string>
+ <string>LtnSmACircum</string>
+ <string>LtnSmADiaer</string>
+ <string>LtnSmATilde</string>
+ <string>LtnSmARingAbv</string>
+ <string>DottedCirc</string>
+ <string>Hyphen</string>
+ <string>NonBreakingHyphen</string>
+ <string>Hyphen_Soft</string>
+ <string>CombAcute</string>
+ <string>CombGrave</string>
+ <string>CombCircum</string>
+ <string>CombTilde</string>
+ <string>CombDiaer</string>
+ <string>CombRingAbv</string>
+ </array>
+ <key>com.schriftgestaltung.keyboardIncrement</key>
+ <integer>1</integer>
+ <key>com.schriftgestaltung.weight</key>
+ <string>Regular</string>
+ <key>com.schriftgestaltung.weightValue</key>
+ <integer>400</integer>
+ <key>com.schriftgestaltung.width</key>
+ <string>Regular</string>
+ <key>com.schriftgestaltung.widthValue</key>
+ <integer>100</integer>
+ <key>org.sil.lcg.toneLetters</key>
+ <dict>
+ <key>contourWidth</key>
+ <integer>480</integer>
+ <key>dotSize</key>
+ <integer>180</integer>
+ <key>dotSpacing</key>
+ <integer>200</integer>
+ <key>glyphDepth</key>
+ <integer>-25</integer>
+ <key>glyphHeight</key>
+ <integer>1600</integer>
+ <key>italicAngle</key>
+ <integer>14</integer>
+ <key>marginDotLeft</key>
+ <integer>120</integer>
+ <key>marginDotRight</key>
+ <integer>160</integer>
+ <key>marginFlatLeft</key>
+ <integer>120</integer>
+ <key>marginFlatRight</key>
+ <integer>160</integer>
+ <key>marginPointLeft</key>
+ <integer>100</integer>
+ <key>marginPointRight</key>
+ <integer>140</integer>
+ <key>strokeThickness</key>
+ <integer>120</integer>
+ </dict>
+ <key>public.glyphOrder</key>
+ <array>
+ <string>.notdef</string>
+ <string>.null</string>
+ <string>nonmarkingreturn</string>
+ <string>Space</string>
+ <string>ExclamationMrk</string>
+ <string>QuotMrk</string>
+ <string>NumSgn</string>
+ <string>DollarSgn</string>
+ <string>PercentSgn</string>
+ <string>Ampersand</string>
+ <string>Apos</string>
+ <string>LftParen</string>
+ <string>RtParen</string>
+ <string>Asterisk</string>
+ <string>PlusSgn</string>
+ <string>Comma</string>
+ <string>HyphenMinus</string>
+ <string>FullStop</string>
+ <string>Solidus</string>
+ <string>DigitZero</string>
+ <string>DigitOne</string>
+ <string>DigitTwo</string>
+ <string>DigitThree</string>
+ <string>DigitFour</string>
+ <string>DigitFive</string>
+ <string>DigitSix</string>
+ <string>DigitSeven</string>
+ <string>DigitEight</string>
+ <string>DigitNine</string>
+ <string>Colon</string>
+ <string>Semicolon</string>
+ <string>LTSgn</string>
+ <string>EqSgn</string>
+ <string>GTSgn</string>
+ <string>QstnMrk</string>
+ <string>AtSgn</string>
+ <string>LtnCapA</string>
+ <string>LtnCapA.alt</string>
+ <string>LtnCapB</string>
+ <string>LtnCapC</string>
+ <string>LtnCapD</string>
+ <string>LtnCapE</string>
+ <string>LtnCapF</string>
+ <string>LtnCapG</string>
+ <string>LtnCapH</string>
+ <string>LtnCapI</string>
+ <string>LtnCapJ</string>
+ <string>LtnCapK</string>
+ <string>LtnCapL</string>
+ <string>LtnCapM</string>
+ <string>LtnCapN</string>
+ <string>LtnCapO</string>
+ <string>LtnCapP</string>
+ <string>LtnCapQ</string>
+ <string>LtnCapR</string>
+ <string>LtnCapS</string>
+ <string>LtnCapT</string>
+ <string>LtnCapU</string>
+ <string>LtnCapV</string>
+ <string>LtnCapW</string>
+ <string>LtnCapX</string>
+ <string>LtnCapY</string>
+ <string>LftSqrBrac</string>
+ <string>ReverseSolidus</string>
+ <string>RtSqrBrac</string>
+ <string>CircumAccent</string>
+ <string>LowLine</string>
+ <string>GraveAccent</string>
+ <string>LtnSmA</string>
+ <string>LtnSmB</string>
+ <string>LtnSmC</string>
+ <string>LtnSmD</string>
+ <string>LtnSmE</string>
+ <string>LtnSmF</string>
+ <string>LtnSmG</string>
+ <string>LtnSmH</string>
+ <string>LtnSmI</string>
+ <string>LtnSmJ</string>
+ <string>LtnSmK</string>
+ <string>LtnSmL</string>
+ <string>LtnSmM</string>
+ <string>LtnSmN</string>
+ <string>LtnSmO</string>
+ <string>LtnSmP</string>
+ <string>LtnSmQ</string>
+ <string>LtnSmR</string>
+ <string>LtnSmS</string>
+ <string>LtnSmT</string>
+ <string>LtnSmU</string>
+ <string>LtnSmV</string>
+ <string>LtnSmW</string>
+ <string>LtnSmX</string>
+ <string>LtnSmY</string>
+ <string>LftCurlyBrac</string>
+ <string>VertLine</string>
+ <string>RtCurlyBrac</string>
+ <string>Tilde</string>
+ <string>LtnCapADiaer</string>
+ <string>LtnSmAAcute</string>
+ <string>LtnSmAGrave</string>
+ <string>LtnSmACircum</string>
+ <string>LtnSmADiaer</string>
+ <string>LtnSmATilde</string>
+ <string>LtnSmARingAbv</string>
+ <string>DottedCirc</string>
+ <string>Hyphen</string>
+ <string>NonBreakingHyphen</string>
+ <string>Hyphen_Soft</string>
+ <string>CombAcute</string>
+ <string>CombGrave</string>
+ <string>CombCircum</string>
+ <string>CombTilde</string>
+ <string>CombDiaer</string>
+ <string>CombRingAbv</string>
+ </array>
+ <key>public.postscriptNames</key>
+ <dict>
+ <key>Ampersand</key>
+ <string>ampersand</string>
+ <key>Apos</key>
+ <string>quotesingle</string>
+ <key>Asterisk</key>
+ <string>asterisk</string>
+ <key>AtSgn</key>
+ <string>at</string>
+ <key>CircumAccent</key>
+ <string>asciicircum</string>
+ <key>Colon</key>
+ <string>colon</string>
+ <key>CombAcute</key>
+ <string>acutecomb</string>
+ <key>CombCircum</key>
+ <string>uni0302</string>
+ <key>CombDiaer</key>
+ <string>uni0308</string>
+ <key>CombGrave</key>
+ <string>gravecomb</string>
+ <key>CombRingAbv</key>
+ <string>uni030A</string>
+ <key>CombTilde</key>
+ <string>tildecomb</string>
+ <key>Comma</key>
+ <string>comma</string>
+ <key>DigitEight</key>
+ <string>eight</string>
+ <key>DigitFive</key>
+ <string>five</string>
+ <key>DigitFour</key>
+ <string>four</string>
+ <key>DigitNine</key>
+ <string>nine</string>
+ <key>DigitOne</key>
+ <string>one</string>
+ <key>DigitSeven</key>
+ <string>seven</string>
+ <key>DigitSix</key>
+ <string>six</string>
+ <key>DigitThree</key>
+ <string>three</string>
+ <key>DigitTwo</key>
+ <string>two</string>
+ <key>DigitZero</key>
+ <string>zero</string>
+ <key>DollarSgn</key>
+ <string>dollar</string>
+ <key>DottedCirc</key>
+ <string>uni25CC</string>
+ <key>EqSgn</key>
+ <string>equal</string>
+ <key>ExclamationMrk</key>
+ <string>exclam</string>
+ <key>FullStop</key>
+ <string>period</string>
+ <key>GTSgn</key>
+ <string>greater</string>
+ <key>GraveAccent</key>
+ <string>grave</string>
+ <key>Hyphen</key>
+ <string>uni2010</string>
+ <key>HyphenMinus</key>
+ <string>hyphen</string>
+ <key>Hyphen_Soft</key>
+ <string>uni00AD</string>
+ <key>LTSgn</key>
+ <string>less</string>
+ <key>LftCurlyBrac</key>
+ <string>braceleft</string>
+ <key>LftParen</key>
+ <string>parenleft</string>
+ <key>LftSqrBrac</key>
+ <string>bracketleft</string>
+ <key>LowLine</key>
+ <string>underscore</string>
+ <key>LtnCapA</key>
+ <string>A</string>
+ <key>LtnCapA.alt</key>
+ <string>A</string>
+ <key>LtnCapADiaer</key>
+ <string>Adieresis</string>
+ <key>LtnCapB</key>
+ <string>B</string>
+ <key>LtnCapC</key>
+ <string>C</string>
+ <key>LtnCapD</key>
+ <string>D</string>
+ <key>LtnCapE</key>
+ <string>E</string>
+ <key>LtnCapF</key>
+ <string>F</string>
+ <key>LtnCapG</key>
+ <string>G</string>
+ <key>LtnCapH</key>
+ <string>H</string>
+ <key>LtnCapI</key>
+ <string>I</string>
+ <key>LtnCapJ</key>
+ <string>J</string>
+ <key>LtnCapK</key>
+ <string>K</string>
+ <key>LtnCapL</key>
+ <string>L</string>
+ <key>LtnCapM</key>
+ <string>M</string>
+ <key>LtnCapN</key>
+ <string>N</string>
+ <key>LtnCapO</key>
+ <string>O</string>
+ <key>LtnCapP</key>
+ <string>P</string>
+ <key>LtnCapQ</key>
+ <string>Q</string>
+ <key>LtnCapR</key>
+ <string>R</string>
+ <key>LtnCapS</key>
+ <string>S</string>
+ <key>LtnCapT</key>
+ <string>T</string>
+ <key>LtnCapU</key>
+ <string>U</string>
+ <key>LtnCapV</key>
+ <string>V</string>
+ <key>LtnCapW</key>
+ <string>W</string>
+ <key>LtnCapX</key>
+ <string>X</string>
+ <key>LtnCapY</key>
+ <string>Y</string>
+ <key>LtnSmA</key>
+ <string>a</string>
+ <key>LtnSmAAcute</key>
+ <string>aacute</string>
+ <key>LtnSmACircum</key>
+ <string>acircumflex</string>
+ <key>LtnSmADiaer</key>
+ <string>adieresis</string>
+ <key>LtnSmAGrave</key>
+ <string>agrave</string>
+ <key>LtnSmARingAbv</key>
+ <string>aring</string>
+ <key>LtnSmATilde</key>
+ <string>atilde</string>
+ <key>LtnSmB</key>
+ <string>b</string>
+ <key>LtnSmC</key>
+ <string>c</string>
+ <key>LtnSmD</key>
+ <string>d</string>
+ <key>LtnSmE</key>
+ <string>e</string>
+ <key>LtnSmF</key>
+ <string>f</string>
+ <key>LtnSmG</key>
+ <string>g</string>
+ <key>LtnSmH</key>
+ <string>h</string>
+ <key>LtnSmI</key>
+ <string>i</string>
+ <key>LtnSmJ</key>
+ <string>j</string>
+ <key>LtnSmK</key>
+ <string>k</string>
+ <key>LtnSmL</key>
+ <string>l</string>
+ <key>LtnSmM</key>
+ <string>m</string>
+ <key>LtnSmN</key>
+ <string>n</string>
+ <key>LtnSmO</key>
+ <string>o</string>
+ <key>LtnSmP</key>
+ <string>p</string>
+ <key>LtnSmQ</key>
+ <string>q</string>
+ <key>LtnSmR</key>
+ <string>r</string>
+ <key>LtnSmS</key>
+ <string>s</string>
+ <key>LtnSmT</key>
+ <string>t</string>
+ <key>LtnSmU</key>
+ <string>u</string>
+ <key>LtnSmV</key>
+ <string>v</string>
+ <key>LtnSmW</key>
+ <string>w</string>
+ <key>LtnSmX</key>
+ <string>x</string>
+ <key>LtnSmY</key>
+ <string>y</string>
+ <key>NonBreakingHyphen</key>
+ <string>uni2011</string>
+ <key>NumSgn</key>
+ <string>numbersign</string>
+ <key>PercentSgn</key>
+ <string>percent</string>
+ <key>PlusSgn</key>
+ <string>plus</string>
+ <key>QstnMrk</key>
+ <string>question</string>
+ <key>QuotMrk</key>
+ <string>quotedbl</string>
+ <key>ReverseSolidus</key>
+ <string>backslash</string>
+ <key>RtCurlyBrac</key>
+ <string>braceright</string>
+ <key>RtParen</key>
+ <string>parenright</string>
+ <key>RtSqrBrac</key>
+ <string>bracketright</string>
+ <key>Semicolon</key>
+ <string>semicolon</string>
+ <key>Solidus</key>
+ <string>slash</string>
+ <key>Space</key>
+ <string>space</string>
+ <key>Tilde</key>
+ <string>asciitilde</string>
+ <key>VertLine</key>
+ <string>bar</string>
+ </dict>
+</dict>
+</plist>
diff --git a/tests/reference/ufo/psfcopyglyphs.ufo/metainfo.plist b/tests/reference/ufo/psfcopyglyphs.ufo/metainfo.plist
new file mode 100644
index 0000000..aa10c5c
--- /dev/null
+++ b/tests/reference/ufo/psfcopyglyphs.ufo/metainfo.plist
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>creator</key>
+ <string>org.sil.scripts.pysilfont</string>
+ <key>formatVersion</key>
+ <integer>3</integer>
+</dict>
+</plist>
diff --git a/tests/reference/ufo/psfdeleteglyphs.lg b/tests/reference/ufo/psfdeleteglyphs.lg
new file mode 100644
index 0000000..b004fde
--- /dev/null
+++ b/tests/reference/ufo/psfdeleteglyphs.lg
@@ -0,0 +1,27 @@
+2021-06-29 14:42:19 Progress: Running: psfdeleteglyphs tests/input/font-psf-test/source/PsfTest-Regular.ufo -i tests/input/psfdeleteglyphs.txt -l local/testresults/ufo/psfdeleteglyphs.log -p loglevel=i -p scrlevel=w
+2021-06-29 14:42:19 Progress: Opening file for input: tests/input/psfdeleteglyphs.txt
+2021-06-29 14:42:19 Progress: Reading UFO: tests/input/font-psf-test/source/PsfTest-Regular.ufo
+2021-06-29 14:42:19 Info: Processing Glyph Layer 0: public.defaultglyphs
+2021-06-29 14:42:19 Progress: Checking fontinfo.plist metadata
+2021-06-29 14:42:19 Warning: note is present - it's use is discouraged
+2021-06-29 14:42:19 Warning: openTypeOS2FamilyClass would be removed from fontinfo Old value: [0, 0]
+2021-06-29 14:42:19 Info: Types: Old - list, New - NoneType
+2021-06-29 14:42:19 Warning: openTypeOS2Selection would be added New value: [7]
+2021-06-29 14:42:19 Info: Types: Old - NoneType, New - list
+2021-06-29 14:42:19 Progress: Checking lib.plist metadata
+2021-06-29 14:42:19 Warning: com.schriftgestaltung.disablesAutomaticAlignment would be deleted - obsolete key Old value: True
+2021-06-29 14:42:19 Info: Types: Old - bool, New - NoneType
+2021-06-29 14:42:19 Warning: com.schriftgestaltung.disablesLastChange would be deleted - obsolete key Old value: True
+2021-06-29 14:42:19 Info: Types: Old - bool, New - NoneType
+2021-06-29 14:42:19 Progress: Check & fix results:- Errors: 0, Changes to make: 4, Other warnings: 1
+2021-06-29 14:42:19 Info: Deleted glyphs:
+2021-06-29 14:42:19 Info: Apos deleted from: Default layer
+2021-06-29 14:42:19 Info: Apos is still in public.glyphOrder, public.postscriptNames, com.schriftgestaltung.glyphOrder
+2021-06-29 14:42:19 Info: Comma deleted from: Default layer
+2021-06-29 14:42:19 Info: Comma is still in public.glyphOrder, public.postscriptNames, com.schriftgestaltung.glyphOrder
+2021-06-29 14:42:19 Progress: 2 glyphs deleted. Set logging to I to see details
+2021-06-29 14:42:19 Warning: 2 of the deleted glyphs are still in some lib.plist entries.
+2021-06-29 14:42:19 Progress: Processing font for output
+2021-06-29 14:42:19 Progress: Output UFO already exists - reading for comparison
+2021-06-29 14:42:19 Progress: Writing font to local/testresults/ufo/psfdeleteglyphs.ufo
+2021-06-29 14:42:19 Info: Processing glyphs directory
diff --git a/tests/reference/ufo/psfdeleteglyphs.ufo/fontinfo.plist b/tests/reference/ufo/psfdeleteglyphs.ufo/fontinfo.plist
new file mode 100644
index 0000000..c151323
--- /dev/null
+++ b/tests/reference/ufo/psfdeleteglyphs.ufo/fontinfo.plist
@@ -0,0 +1,260 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>ascender</key>
+ <integer>2100</integer>
+ <key>capHeight</key>
+ <integer>1485</integer>
+ <key>copyright</key>
+ <string>Copyright (c) 2004-2021 SIL International</string>
+ <key>descender</key>
+ <integer>-550</integer>
+ <key>familyName</key>
+ <string>Psf Test</string>
+ <key>guidelines</key>
+ <array>
+ <dict>
+ <key>angle</key>
+ <integer>0</integer>
+ <key>x</key>
+ <integer>1084</integer>
+ <key>y</key>
+ <integer>1040</integer>
+ </dict>
+ <dict>
+ <key>y</key>
+ <integer>1250</integer>
+ </dict>
+ </array>
+ <key>note</key>
+ <string>Test note
+Second line
+
+Third line
+</string>
+ <key>openTypeHeadCreated</key>
+ <string>2021/01/29 10:05:04</string>
+ <key>openTypeHheaAscender</key>
+ <integer>2100</integer>
+ <key>openTypeHheaDescender</key>
+ <integer>-550</integer>
+ <key>openTypeHheaLineGap</key>
+ <integer>0</integer>
+ <key>openTypeNameDescription</key>
+ <string>Copyright (c) 2004-2021 SIL International</string>
+ <key>openTypeNameDesigner</key>
+ <string>Victor Gaultney, Annie Olsen, Julie Remington, Don Collingsworth, Eric Hays, Becca Hirsbrunner</string>
+ <key>openTypeNameDesignerURL</key>
+ <string>http://scripts.sil.org/</string>
+ <key>openTypeNameLicense</key>
+ <string>Copyright (c) 2004-2021 SIL International (http://www.sil.org/) with Reserved Font Names "Andika" and "SIL".
+
+This Font Software is licensed under the SIL Open Font License, Version 1.1. This license is copied below, and is also available with a FAQ at: http://scripts.sil.org/OFL
+
+
+-----------------------------------------------------------
+SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
+-----------------------------------------------------------
+
+PREAMBLE
+The goals of the Open Font License (OFL) are to stimulate worldwide development of collaborative font projects, to support the font creation efforts of academic and linguistic communities, and to provide a free and open framework in which fonts may be shared and improved in partnership with others.
+
+The OFL allows the licensed fonts to be used, studied, modified and redistributed freely as long as they are not sold by themselves. The fonts, including any derivative works, can be bundled, embedded, redistributed and/or sold with any software provided that any reserved names are not used by derivative works. The fonts and derivatives, however, cannot be released under any other type of license. The requirement for fonts to remain under this license does not apply to any document created using the fonts or their derivatives.
+
+DEFINITIONS
+"Font Software" refers to the set of files released by the Copyright Holder(s) under this license and clearly marked as such. This may include source files, build scripts and documentation.
+
+"Reserved Font Name" refers to any names specified as such after the copyright statement(s).
+
+"Original Version" refers to the collection of Font Software components as distributed by the Copyright Holder(s).
+
+"Modified Version" refers to any derivative made by adding to, deleting, or substituting -- in part or in whole -- any of the components of the Original Version, by changing formats or by porting the Font Software to a new environment.
+
+"Author" refers to any designer, engineer, programmer, technical writer or other person who contributed to the Font Software.
+
+PERMISSION &amp; CONDITIONS
+Permission is hereby granted, free of charge, to any person obtaining a copy of the Font Software, to use, study, copy, merge, embed, modify, redistribute, and sell modified and unmodified copies of the Font Software, subject to the following conditions:
+
+1) Neither the Font Software nor any of its individual components, in Original or Modified Versions, may be sold by itself.
+
+2) Original or Modified Versions of the Font Software may be bundled, redistributed and/or sold with any software, provided that each copy contains the above copyright notice and this license. These can be included either as stand-alone text files, human-readable headers or in the appropriate machine-readable metadata fields within text or binary files as long as those fields can be easily viewed by the user.
+
+3) No Modified Version of the Font Software may use the Reserved Font Name(s) unless explicit written permission is granted by the corresponding Copyright Holder. This restriction only applies to the primary font name as presented to the users.
+
+4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font Software shall not be used to promote, endorse or advertise any Modified Version, except to acknowledge the contribution(s) of the Copyright Holder(s) and the Author(s) or with their explicit written permission.
+
+5) The Font Software, modified or unmodified, in part or in whole, must be distributed entirely under this license, and must not be distributed under any other license. The requirement for fonts to remain under this license does not apply to any document created using the Font Software.
+
+TERMINATION
+This license becomes null and void if any of the above conditions are not met.
+
+DISCLAIMER
+THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM OTHER DEALINGS IN THE FONT SOFTWARE.</string>
+ <key>openTypeNameLicenseURL</key>
+ <string>http://scripts.sil.org/OFL</string>
+ <key>openTypeNameManufacturer</key>
+ <string>SIL International</string>
+ <key>openTypeNameManufacturerURL</key>
+ <string>http://scripts.sil.org</string>
+ <key>openTypeNamePreferredFamilyName</key>
+ <string>Psf Test</string>
+ <key>openTypeNamePreferredSubfamilyName</key>
+ <string>Regular</string>
+ <key>openTypeNameUniqueID</key>
+ <string>SIL International: Psf Test Regular: 2022</string>
+ <key>openTypeNameVersion</key>
+ <string>Version 5.550</string>
+ <key>openTypeOS2CodePageRanges</key>
+ <array>
+ <integer>0</integer>
+ <integer>1</integer>
+ <integer>2</integer>
+ <integer>4</integer>
+ <integer>7</integer>
+ <integer>8</integer>
+ </array>
+ <key>openTypeOS2FamilyClass</key>
+ <array>
+ <integer>0</integer>
+ <integer>0</integer>
+ </array>
+ <key>openTypeOS2Panose</key>
+ <array>
+ <integer>2</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ </array>
+ <key>openTypeOS2StrikeoutPosition</key>
+ <integer>700</integer>
+ <key>openTypeOS2StrikeoutSize</key>
+ <integer>100</integer>
+ <key>openTypeOS2SubscriptXOffset</key>
+ <integer>0</integer>
+ <key>openTypeOS2SubscriptXSize</key>
+ <integer>1433</integer>
+ <key>openTypeOS2SubscriptYOffset</key>
+ <integer>286</integer>
+ <key>openTypeOS2SubscriptYSize</key>
+ <integer>1331</integer>
+ <key>openTypeOS2SuperscriptXOffset</key>
+ <integer>0</integer>
+ <key>openTypeOS2SuperscriptXSize</key>
+ <integer>1433</integer>
+ <key>openTypeOS2SuperscriptYOffset</key>
+ <integer>976</integer>
+ <key>openTypeOS2SuperscriptYSize</key>
+ <integer>1331</integer>
+ <key>openTypeOS2Type</key>
+ <array/>
+ <key>openTypeOS2TypoAscender</key>
+ <integer>2100</integer>
+ <key>openTypeOS2TypoDescender</key>
+ <integer>-550</integer>
+ <key>openTypeOS2TypoLineGap</key>
+ <integer>0</integer>
+ <key>openTypeOS2UnicodeRanges</key>
+ <array>
+ <integer>0</integer>
+ <integer>1</integer>
+ <integer>6</integer>
+ <integer>7</integer>
+ <integer>31</integer>
+ <integer>33</integer>
+ <integer>35</integer>
+ <integer>36</integer>
+ <integer>37</integer>
+ <integer>38</integer>
+ <integer>39</integer>
+ <integer>40</integer>
+ <integer>45</integer>
+ <integer>46</integer>
+ <integer>47</integer>
+ <integer>57</integer>
+ <integer>60</integer>
+ <integer>62</integer>
+ <integer>64</integer>
+ <integer>67</integer>
+ <integer>69</integer>
+ <integer>89</integer>
+ </array>
+ <key>openTypeOS2VendorID</key>
+ <string>SIL</string>
+ <key>openTypeOS2WeightClass</key>
+ <integer>400</integer>
+ <key>openTypeOS2WidthClass</key>
+ <integer>5</integer>
+ <key>openTypeOS2WinAscent</key>
+ <integer>2100</integer>
+ <key>openTypeOS2WinDescent</key>
+ <integer>550</integer>
+ <key>postscriptBlueValues</key>
+ <array>
+ <integer>-490</integer>
+ <integer>-490</integer>
+ <integer>-25</integer>
+ <integer>0</integer>
+ <integer>1020</integer>
+ <integer>1040</integer>
+ <integer>1455</integer>
+ <integer>1485</integer>
+ <integer>1600</integer>
+ <integer>1620</integer>
+ </array>
+ <key>postscriptFontName</key>
+ <string>PsfTest-Regular</string>
+ <key>postscriptFullName</key>
+ <string>Psf Test Regular</string>
+ <key>postscriptStemSnapH</key>
+ <array>
+ <integer>140</integer>
+ <integer>145</integer>
+ <integer>150</integer>
+ <integer>155</integer>
+ <integer>160</integer>
+ <integer>165</integer>
+ <integer>170</integer>
+ <integer>175</integer>
+ <integer>185</integer>
+ <integer>270</integer>
+ </array>
+ <key>postscriptStemSnapV</key>
+ <array>
+ <integer>165</integer>
+ <integer>180</integer>
+ <integer>185</integer>
+ <integer>190</integer>
+ <integer>195</integer>
+ <integer>200</integer>
+ <integer>205</integer>
+ <integer>270</integer>
+ </array>
+ <key>postscriptUnderlinePosition</key>
+ <integer>-110</integer>
+ <key>postscriptUnderlineThickness</key>
+ <integer>80</integer>
+ <key>styleMapFamilyName</key>
+ <string>Psf Test</string>
+ <key>styleMapStyleName</key>
+ <string>regular</string>
+ <key>styleName</key>
+ <string>Regular</string>
+ <key>trademark</key>
+ <string>Andika is a trademark of SIL International.</string>
+ <key>unitsPerEm</key>
+ <integer>2048</integer>
+ <key>versionMajor</key>
+ <integer>5</integer>
+ <key>versionMinor</key>
+ <integer>550</integer>
+ <key>xHeight</key>
+ <integer>1040</integer>
+</dict>
+</plist>
diff --git a/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/A_mpersand.glif b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/A_mpersand.glif
new file mode 100644
index 0000000..c2cef04
--- /dev/null
+++ b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/A_mpersand.glif
@@ -0,0 +1,61 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Ampersand" format="2">
+ <advance width="1222"/>
+ <unicode hex="0026"/>
+ <outline>
+ <contour>
+ <point x="490" y="1485" type="curve" smooth="yes"/>
+ <point x="331" y="1485"/>
+ <point x="155" y="1412"/>
+ <point x="155" y="1190" type="curve" smooth="yes"/>
+ <point x="155" y="1010"/>
+ <point x="362" y="815"/>
+ <point x="535" y="570" type="curve" smooth="yes"/>
+ <point x="794" y="202"/>
+ <point x="973" y="-25"/>
+ <point x="1025" y="-25" type="curve" smooth="yes"/>
+ <point x="1060" y="-25"/>
+ <point x="1138" y="38"/>
+ <point x="1175" y="70" type="curve"/>
+ <point x="1080" y="110"/>
+ <point x="914" y="297"/>
+ <point x="650" y="680" type="curve" smooth="yes"/>
+ <point x="494" y="906"/>
+ <point x="315" y="1075"/>
+ <point x="315" y="1200" type="curve" smooth="yes"/>
+ <point x="315" y="1291"/>
+ <point x="398" y="1350"/>
+ <point x="475" y="1350" type="curve" smooth="yes"/>
+ <point x="555" y="1350"/>
+ <point x="630" y="1294"/>
+ <point x="630" y="1205" type="curve" smooth="yes"/>
+ <point x="630" y="1116"/>
+ <point x="523" y="1001"/>
+ <point x="350" y="840" type="curve" smooth="yes"/>
+ <point x="146" y="651"/>
+ <point x="55" y="527"/>
+ <point x="55" y="375" type="curve" smooth="yes"/>
+ <point x="55" y="151"/>
+ <point x="217" y="-25"/>
+ <point x="440" y="-25" type="curve" smooth="yes"/>
+ <point x="713" y="-25"/>
+ <point x="1002" y="274"/>
+ <point x="1080" y="435" type="curve"/>
+ <point x="975" y="570" type="line"/>
+ <point x="911" y="403"/>
+ <point x="630" y="150"/>
+ <point x="455" y="150" type="curve" smooth="yes"/>
+ <point x="310" y="150"/>
+ <point x="230" y="267"/>
+ <point x="230" y="380" type="curve" smooth="yes"/>
+ <point x="230" y="490"/>
+ <point x="296" y="587"/>
+ <point x="470" y="740" type="curve" smooth="yes"/>
+ <point x="651" y="899"/>
+ <point x="790" y="1068"/>
+ <point x="790" y="1200" type="curve" smooth="yes"/>
+ <point x="790" y="1382"/>
+ <point x="642" y="1485"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/A_sterisk.glif b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/A_sterisk.glif
new file mode 100644
index 0000000..850d344
--- /dev/null
+++ b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/A_sterisk.glif
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Asterisk" format="2">
+ <advance width="1028"/>
+ <unicode hex="002A"/>
+ <outline>
+ <contour>
+ <point x="560" y="1600" type="curve"/>
+ <point x="415" y="1600" type="line"/>
+ <point x="434" y="1467"/>
+ <point x="447" y="1387"/>
+ <point x="450" y="1300" type="curve"/>
+ <point x="376" y="1344"/>
+ <point x="309" y="1387"/>
+ <point x="200" y="1465" type="curve"/>
+ <point x="125" y="1340" type="line"/>
+ <point x="250" y="1290"/>
+ <point x="327" y="1261"/>
+ <point x="405" y="1220" type="curve"/>
+ <point x="329" y="1177"/>
+ <point x="256" y="1140"/>
+ <point x="135" y="1085" type="curve"/>
+ <point x="205" y="960" type="line"/>
+ <point x="310" y="1042"/>
+ <point x="377" y="1094"/>
+ <point x="450" y="1140" type="curve"/>
+ <point x="448" y="1055"/>
+ <point x="442" y="973"/>
+ <point x="430" y="840" type="curve"/>
+ <point x="570" y="840" type="line"/>
+ <point x="550" y="973"/>
+ <point x="544" y="1052"/>
+ <point x="540" y="1140" type="curve"/>
+ <point x="614" y="1095"/>
+ <point x="681" y="1053"/>
+ <point x="790" y="975" type="curve"/>
+ <point x="865" y="1100" type="line"/>
+ <point x="739" y="1149"/>
+ <point x="663" y="1179"/>
+ <point x="585" y="1220" type="curve"/>
+ <point x="661" y="1261"/>
+ <point x="733" y="1299"/>
+ <point x="855" y="1355" type="curve"/>
+ <point x="785" y="1480" type="line"/>
+ <point x="680" y="1396"/>
+ <point x="614" y="1348"/>
+ <point x="540" y="1300" type="curve"/>
+ <point x="541" y="1387"/>
+ <point x="547" y="1467"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/A_tS_gn.glif b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/A_tS_gn.glif
new file mode 100644
index 0000000..681014d
--- /dev/null
+++ b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/A_tS_gn.glif
@@ -0,0 +1,80 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="AtSgn" format="2">
+ <advance width="1702"/>
+ <unicode hex="0040"/>
+ <outline>
+ <contour>
+ <point x="1605" y="700" type="curve" smooth="yes"/>
+ <point x="1605" y="1127"/>
+ <point x="1307" y="1405"/>
+ <point x="880" y="1405" type="curve" smooth="yes"/>
+ <point x="465" y="1405"/>
+ <point x="95" y="1126"/>
+ <point x="95" y="575" type="curve" smooth="yes"/>
+ <point x="95" y="48"/>
+ <point x="464" y="-235"/>
+ <point x="855" y="-235" type="curve" smooth="yes"/>
+ <point x="990" y="-235"/>
+ <point x="1150" y="-188"/>
+ <point x="1250" y="-118" type="curve"/>
+ <point x="1145" y="-10" type="line"/>
+ <point x="1058" y="-70"/>
+ <point x="963" y="-95"/>
+ <point x="870" y="-95" type="curve" smooth="yes"/>
+ <point x="523" y="-95"/>
+ <point x="240" y="174"/>
+ <point x="240" y="605" type="curve" smooth="yes"/>
+ <point x="240" y="1003"/>
+ <point x="542" y="1270"/>
+ <point x="870" y="1270" type="curve" smooth="yes"/>
+ <point x="1263" y="1270"/>
+ <point x="1465" y="1002"/>
+ <point x="1465" y="670" type="curve" smooth="yes"/>
+ <point x="1465" y="432"/>
+ <point x="1348" y="315"/>
+ <point x="1280" y="315" type="curve" smooth="yes"/>
+ <point x="1221" y="315"/>
+ <point x="1175" y="410"/>
+ <point x="1175" y="630" type="curve" smooth="yes"/>
+ <point x="1175" y="980" type="line"/>
+ <point x="1088" y="1015"/>
+ <point x="961" y="1040"/>
+ <point x="880" y="1040" type="curve" smooth="yes"/>
+ <point x="716" y="1040"/>
+ <point x="613" y="971"/>
+ <point x="530" y="835" type="curve" smooth="yes"/>
+ <point x="483" y="756"/>
+ <point x="455" y="653"/>
+ <point x="455" y="530" type="curve" smooth="yes"/>
+ <point x="455" y="294"/>
+ <point x="601" y="183"/>
+ <point x="735" y="183" type="curve" smooth="yes"/>
+ <point x="852" y="183"/>
+ <point x="988" y="366"/>
+ <point x="1040" y="490" type="curve"/>
+ <point x="1050" y="322"/>
+ <point x="1128" y="180"/>
+ <point x="1250" y="180" type="curve" smooth="yes"/>
+ <point x="1425" y="180"/>
+ <point x="1605" y="368"/>
+ </contour>
+ <contour>
+ <point x="850" y="905" type="curve" smooth="yes"/>
+ <point x="924" y="905"/>
+ <point x="992" y="886"/>
+ <point x="1025" y="870" type="curve"/>
+ <point x="1025" y="720" type="line"/>
+ <point x="993" y="582"/>
+ <point x="838" y="320"/>
+ <point x="748" y="320" type="curve" smooth="yes"/>
+ <point x="676" y="320"/>
+ <point x="605" y="398"/>
+ <point x="605" y="575" type="curve" smooth="yes"/>
+ <point x="605" y="652"/>
+ <point x="621" y="731"/>
+ <point x="650" y="780" type="curve" smooth="yes"/>
+ <point x="706" y="876"/>
+ <point x="782" y="905"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/C_ircumA_ccent.glif b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/C_ircumA_ccent.glif
new file mode 100644
index 0000000..60bd1cf
--- /dev/null
+++ b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/C_ircumA_ccent.glif
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="CircumAccent" format="2">
+ <advance width="850"/>
+ <unicode hex="005E"/>
+ <outline>
+ <component base="CombCircum" xOffset="995"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/C_olon.glif b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/C_olon.glif
new file mode 100644
index 0000000..3cfbbc1
--- /dev/null
+++ b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/C_olon.glif
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Colon" format="2">
+ <advance width="640"/>
+ <unicode hex="003A"/>
+ <outline>
+ <contour>
+ <point x="185" y="790" type="curve" smooth="yes"/>
+ <point x="185" y="716"/>
+ <point x="246" y="655"/>
+ <point x="320" y="655" type="curve" smooth="yes"/>
+ <point x="394" y="655"/>
+ <point x="455" y="716"/>
+ <point x="455" y="790" type="curve" smooth="yes"/>
+ <point x="455" y="864"/>
+ <point x="394" y="925"/>
+ <point x="320" y="925" type="curve" smooth="yes"/>
+ <point x="246" y="925"/>
+ <point x="185" y="864"/>
+ </contour>
+ <contour>
+ <point x="185" y="110" type="curve" smooth="yes"/>
+ <point x="185" y="36"/>
+ <point x="246" y="-25"/>
+ <point x="320" y="-25" type="curve" smooth="yes"/>
+ <point x="394" y="-25"/>
+ <point x="455" y="36"/>
+ <point x="455" y="110" type="curve" smooth="yes"/>
+ <point x="455" y="184"/>
+ <point x="394" y="245"/>
+ <point x="320" y="245" type="curve" smooth="yes"/>
+ <point x="246" y="245"/>
+ <point x="185" y="184"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/C_ombA_cute.glif b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/C_ombA_cute.glif
new file mode 100644
index 0000000..bb13221
--- /dev/null
+++ b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/C_ombA_cute.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="CombAcute" format="2">
+ <unicode hex="0301"/>
+ <anchor x="-570" y="1635" name="U"/>
+ <anchor x="-570" y="1100" name="_U"/>
+ <outline>
+ <contour>
+ <point x="-400" y="1600" type="line"/>
+ <point x="-750" y="1170" type="line"/>
+ <point x="-590" y="1170" type="line"/>
+ <point x="-170" y="1600" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/C_ombC_ircum.glif b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/C_ombC_ircum.glif
new file mode 100644
index 0000000..fa444ec
--- /dev/null
+++ b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/C_ombC_ircum.glif
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="CombCircum" format="2">
+ <unicode hex="0302"/>
+ <anchor x="-570" y="1635" name="U"/>
+ <anchor x="-570" y="1100" name="_U"/>
+ <outline>
+ <contour>
+ <point x="-845" y="1170" type="line"/>
+ <point x="-570" y="1450" type="line"/>
+ <point x="-295" y="1170" type="line"/>
+ <point x="-145" y="1170" type="line"/>
+ <point x="-485" y="1600" type="line"/>
+ <point x="-655" y="1600" type="line"/>
+ <point x="-995" y="1170" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/C_ombD_iaer.glif b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/C_ombD_iaer.glif
new file mode 100644
index 0000000..f7540ef
--- /dev/null
+++ b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/C_ombD_iaer.glif
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="CombDiaer" format="2">
+ <unicode hex="0308"/>
+ <anchor x="-570" y="1505" name="U"/>
+ <anchor x="-570" y="1100" name="_U"/>
+ <outline>
+ <contour>
+ <point x="-490" y="1345" type="curve" smooth="yes"/>
+ <point x="-490" y="1271"/>
+ <point x="-434" y="1210"/>
+ <point x="-360" y="1210" type="curve" smooth="yes"/>
+ <point x="-285" y="1210"/>
+ <point x="-230" y="1271"/>
+ <point x="-230" y="1345" type="curve" smooth="yes"/>
+ <point x="-230" y="1419"/>
+ <point x="-285" y="1480"/>
+ <point x="-360" y="1480" type="curve" smooth="yes"/>
+ <point x="-434" y="1480"/>
+ <point x="-490" y="1419"/>
+ </contour>
+ <contour>
+ <point x="-910" y="1345" type="curve" smooth="yes"/>
+ <point x="-910" y="1271"/>
+ <point x="-854" y="1210"/>
+ <point x="-780" y="1210" type="curve" smooth="yes"/>
+ <point x="-705" y="1210"/>
+ <point x="-650" y="1271"/>
+ <point x="-650" y="1345" type="curve" smooth="yes"/>
+ <point x="-650" y="1419"/>
+ <point x="-705" y="1480"/>
+ <point x="-780" y="1480" type="curve" smooth="yes"/>
+ <point x="-854" y="1480"/>
+ <point x="-910" y="1419"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/C_ombG_rave.glif b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/C_ombG_rave.glif
new file mode 100644
index 0000000..c33b56a
--- /dev/null
+++ b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/C_ombG_rave.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="CombGrave" format="2">
+ <unicode hex="0300"/>
+ <anchor x="-550" y="1635" name="U"/>
+ <anchor x="-550" y="1100" name="_U"/>
+ <outline>
+ <contour>
+ <point x="-940" y="1600" type="line"/>
+ <point x="-520" y="1170" type="line"/>
+ <point x="-360" y="1170" type="line"/>
+ <point x="-710" y="1600" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/C_ombR_ingA_bv.glif b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/C_ombR_ingA_bv.glif
new file mode 100644
index 0000000..b019e05
--- /dev/null
+++ b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/C_ombR_ingA_bv.glif
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="CombRingAbv" format="2">
+ <unicode hex="030A"/>
+ <anchor x="-570" y="1635" name="U"/>
+ <anchor x="-572" y="1100" name="_U"/>
+ <outline>
+ <contour>
+ <point x="-470" y="1385" type="curve" smooth="yes"/>
+ <point x="-470" y="1325"/>
+ <point x="-510" y="1285"/>
+ <point x="-570" y="1285" type="curve" smooth="yes"/>
+ <point x="-630" y="1285"/>
+ <point x="-670" y="1325"/>
+ <point x="-670" y="1385" type="curve" smooth="yes"/>
+ <point x="-670" y="1445"/>
+ <point x="-630" y="1485"/>
+ <point x="-570" y="1485" type="curve" smooth="yes"/>
+ <point x="-510" y="1485"/>
+ <point x="-470" y="1445"/>
+ </contour>
+ <contour>
+ <point x="-785" y="1385" type="curve" smooth="yes"/>
+ <point x="-785" y="1265"/>
+ <point x="-690" y="1170"/>
+ <point x="-570" y="1170" type="curve" smooth="yes"/>
+ <point x="-450" y="1170"/>
+ <point x="-355" y="1265"/>
+ <point x="-355" y="1385" type="curve" smooth="yes"/>
+ <point x="-355" y="1505"/>
+ <point x="-450" y="1600"/>
+ <point x="-570" y="1600" type="curve" smooth="yes"/>
+ <point x="-690" y="1600"/>
+ <point x="-785" y="1505"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/C_ombT_ilde.glif b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/C_ombT_ilde.glif
new file mode 100644
index 0000000..88d5ca7
--- /dev/null
+++ b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/C_ombT_ilde.glif
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="CombTilde" format="2">
+ <unicode hex="0303"/>
+ <anchor x="-575" y="1475" name="U"/>
+ <anchor x="-575" y="1100" name="_U"/>
+ <outline>
+ <contour>
+ <point x="-820" y="1205" type="line"/>
+ <point x="-815" y="1254"/>
+ <point x="-784" y="1290"/>
+ <point x="-735" y="1290" type="curve" smooth="yes"/>
+ <point x="-698" y="1290"/>
+ <point x="-657" y="1274"/>
+ <point x="-580" y="1238" type="curve" smooth="yes"/>
+ <point x="-519" y="1210"/>
+ <point x="-466" y="1190"/>
+ <point x="-413" y="1190" type="curve" smooth="yes"/>
+ <point x="-290" y="1190"/>
+ <point x="-215" y="1312"/>
+ <point x="-215" y="1440" type="curve"/>
+ <point x="-320" y="1440" type="line"/>
+ <point x="-327" y="1394"/>
+ <point x="-358" y="1355"/>
+ <point x="-405" y="1355" type="curve" smooth="yes"/>
+ <point x="-447" y="1355"/>
+ <point x="-488" y="1374"/>
+ <point x="-560" y="1403" type="curve" smooth="yes"/>
+ <point x="-630" y="1431"/>
+ <point x="-677" y="1455"/>
+ <point x="-733" y="1455" type="curve" smooth="yes"/>
+ <point x="-852" y="1455"/>
+ <point x="-925" y="1327"/>
+ <point x="-925" y="1205" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/D_igitE_ight.glif b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/D_igitE_ight.glif
new file mode 100644
index 0000000..b7e540a
--- /dev/null
+++ b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/D_igitE_ight.glif
@@ -0,0 +1,63 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitEight" format="2">
+ <advance width="1200"/>
+ <unicode hex="0038"/>
+ <anchor x="600" y="-100" name="L"/>
+ <anchor x="600" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="600" y="-25" type="curve" smooth="yes"/>
+ <point x="857" y="-25"/>
+ <point x="1110" y="134"/>
+ <point x="1110" y="405" type="curve" smooth="yes"/>
+ <point x="1110" y="611"/>
+ <point x="965" y="739"/>
+ <point x="855" y="795" type="curve"/>
+ <point x="933" y="844"/>
+ <point x="1050" y="923"/>
+ <point x="1050" y="1105" type="curve" smooth="yes"/>
+ <point x="1050" y="1350"/>
+ <point x="840" y="1485"/>
+ <point x="610" y="1485" type="curve" smooth="yes"/>
+ <point x="381" y="1485"/>
+ <point x="150" y="1350"/>
+ <point x="150" y="1105" type="curve" smooth="yes"/>
+ <point x="150" y="923"/>
+ <point x="272" y="838"/>
+ <point x="350" y="795" type="curve"/>
+ <point x="221" y="725"/>
+ <point x="90" y="611"/>
+ <point x="90" y="405" type="curve" smooth="yes"/>
+ <point x="90" y="134"/>
+ <point x="344" y="-25"/>
+ </contour>
+ <contour>
+ <point x="860" y="1105" type="curve" smooth="yes"/>
+ <point x="860" y="949"/>
+ <point x="743" y="865"/>
+ <point x="600" y="865" type="curve" smooth="yes"/>
+ <point x="457" y="865"/>
+ <point x="340" y="949"/>
+ <point x="340" y="1105" type="curve" smooth="yes"/>
+ <point x="340" y="1252"/>
+ <point x="457" y="1325"/>
+ <point x="600" y="1325" type="curve" smooth="yes"/>
+ <point x="743" y="1325"/>
+ <point x="860" y="1252"/>
+ </contour>
+ <contour>
+ <point x="910" y="425" type="curve" smooth="yes"/>
+ <point x="910" y="250"/>
+ <point x="778" y="145"/>
+ <point x="600" y="145" type="curve" smooth="yes"/>
+ <point x="420" y="145"/>
+ <point x="290" y="250"/>
+ <point x="290" y="425" type="curve" smooth="yes"/>
+ <point x="290" y="592"/>
+ <point x="420" y="710"/>
+ <point x="600" y="710" type="curve" smooth="yes"/>
+ <point x="778" y="710"/>
+ <point x="910" y="592"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/D_igitF_ive.glif b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/D_igitF_ive.glif
new file mode 100644
index 0000000..cb2dd85
--- /dev/null
+++ b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/D_igitF_ive.glif
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitFive" format="2">
+ <advance width="1200"/>
+ <unicode hex="0035"/>
+ <anchor x="600" y="-100" name="L"/>
+ <anchor x="600" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="195" y="685" type="line"/>
+ <point x="319" y="733"/>
+ <point x="404" y="750"/>
+ <point x="510" y="750" type="curve" smooth="yes"/>
+ <point x="670" y="750"/>
+ <point x="870" y="672"/>
+ <point x="870" y="470" type="curve" smooth="yes"/>
+ <point x="870" y="268"/>
+ <point x="730" y="155"/>
+ <point x="530" y="155" type="curve" smooth="yes"/>
+ <point x="390" y="155"/>
+ <point x="294" y="182"/>
+ <point x="160" y="290" type="curve"/>
+ <point x="130" y="80" type="line"/>
+ <point x="255" y="2"/>
+ <point x="363" y="-25"/>
+ <point x="518" y="-25" type="curve" smooth="yes"/>
+ <point x="831" y="-25"/>
+ <point x="1060" y="163"/>
+ <point x="1060" y="475" type="curve" smooth="yes"/>
+ <point x="1060" y="742"/>
+ <point x="832" y="930"/>
+ <point x="545" y="930" type="curve" smooth="yes"/>
+ <point x="472" y="930"/>
+ <point x="411" y="924"/>
+ <point x="380" y="920" type="curve"/>
+ <point x="380" y="1290" type="line"/>
+ <point x="765" y="1290" type="line"/>
+ <point x="849" y="1290"/>
+ <point x="925" y="1286"/>
+ <point x="1000" y="1270" type="curve"/>
+ <point x="1000" y="1460" type="line"/>
+ <point x="195" y="1460" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/D_igitF_our.glif b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/D_igitF_our.glif
new file mode 100644
index 0000000..d9a5610
--- /dev/null
+++ b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/D_igitF_our.glif
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitFour" format="2">
+ <advance width="1200"/>
+ <unicode hex="0034"/>
+ <anchor x="607" y="-100" name="L"/>
+ <anchor x="607" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1125" y="395" type="line"/>
+ <point x="1125" y="550" type="line"/>
+ <point x="935" y="550" type="line"/>
+ <point x="935" y="1480" type="line"/>
+ <point x="745" y="1480" type="line"/>
+ <point x="90" y="550" type="line"/>
+ <point x="90" y="395" type="line"/>
+ <point x="745" y="395" type="line"/>
+ <point x="745" y="0" type="line"/>
+ <point x="935" y="0" type="line"/>
+ <point x="935" y="395" type="line"/>
+ </contour>
+ <contour>
+ <point x="745" y="1230" type="line"/>
+ <point x="745" y="550" type="line"/>
+ <point x="263" y="550" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/D_igitN_ine.glif b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/D_igitN_ine.glif
new file mode 100644
index 0000000..0ce656a
--- /dev/null
+++ b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/D_igitN_ine.glif
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitNine" format="2">
+ <advance width="1200"/>
+ <unicode hex="0039"/>
+ <anchor x="600" y="-100" name="L"/>
+ <anchor x="600" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="193" y="65" type="line"/>
+ <point x="297" y="-5"/>
+ <point x="383" y="-25"/>
+ <point x="501" y="-25" type="curve" smooth="yes"/>
+ <point x="976" y="-25"/>
+ <point x="1114" y="411"/>
+ <point x="1114" y="780" type="curve" smooth="yes"/>
+ <point x="1114" y="1198"/>
+ <point x="926" y="1485"/>
+ <point x="616" y="1485" type="curve" smooth="yes"/>
+ <point x="349" y="1485"/>
+ <point x="112" y="1306"/>
+ <point x="112" y="1002" type="curve" smooth="yes"/>
+ <point x="112" y="773"/>
+ <point x="281" y="586"/>
+ <point x="559" y="586" type="curve" smooth="yes"/>
+ <point x="750" y="586"/>
+ <point x="922" y="717"/>
+ <point x="1019" y="878" type="curve"/>
+ <point x="948" y="961" type="line"/>
+ <point x="874" y="847"/>
+ <point x="738" y="760"/>
+ <point x="583" y="760" type="curve" smooth="yes"/>
+ <point x="424" y="760"/>
+ <point x="306" y="860"/>
+ <point x="306" y="1036" type="curve" smooth="yes"/>
+ <point x="306" y="1196"/>
+ <point x="420" y="1310"/>
+ <point x="596" y="1310" type="curve" smooth="yes"/>
+ <point x="837" y="1310"/>
+ <point x="919" y="1065"/>
+ <point x="919" y="813" type="curve" smooth="yes"/>
+ <point x="919" y="326"/>
+ <point x="748" y="150"/>
+ <point x="511" y="150" type="curve" smooth="yes"/>
+ <point x="415" y="150"/>
+ <point x="323" y="174"/>
+ <point x="237" y="260" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/D_igitO_ne.glif b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/D_igitO_ne.glif
new file mode 100644
index 0000000..42c7708
--- /dev/null
+++ b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/D_igitO_ne.glif
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitOne" format="2">
+ <advance width="1200"/>
+ <unicode hex="0031"/>
+ <anchor x="600" y="-100" name="L"/>
+ <anchor x="600" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="535" y="170" type="line"/>
+ <point x="220" y="170" type="line"/>
+ <point x="220" y="0" type="line"/>
+ <point x="1040" y="0" type="line"/>
+ <point x="1040" y="170" type="line"/>
+ <point x="725" y="170" type="line"/>
+ <point x="725" y="1480" type="line"/>
+ <point x="555" y="1480" type="line"/>
+ <point x="210" y="1268" type="line"/>
+ <point x="235" y="1088" type="line"/>
+ <point x="535" y="1260" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/D_igitS_even.glif b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/D_igitS_even.glif
new file mode 100644
index 0000000..c9ca97e
--- /dev/null
+++ b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/D_igitS_even.glif
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitSeven" format="2">
+ <advance width="1200"/>
+ <unicode hex="0037"/>
+ <anchor x="600" y="-100" name="L"/>
+ <anchor x="600" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="460" y="0" type="line"/>
+ <point x="589" y="459"/>
+ <point x="794" y="895"/>
+ <point x="1090" y="1300" type="curve"/>
+ <point x="1090" y="1460" type="line"/>
+ <point x="100" y="1460" type="line"/>
+ <point x="100" y="1275" type="line"/>
+ <point x="176" y="1291"/>
+ <point x="292" y="1295"/>
+ <point x="480" y="1295" type="curve" smooth="yes"/>
+ <point x="870" y="1295" type="line"/>
+ <point x="612" y="912"/>
+ <point x="439" y="566"/>
+ <point x="275" y="0" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/D_igitS_ix.glif b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/D_igitS_ix.glif
new file mode 100644
index 0000000..ec0acdb
--- /dev/null
+++ b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/D_igitS_ix.glif
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitSix" format="2">
+ <advance width="1200"/>
+ <unicode hex="0036"/>
+ <anchor x="600" y="-100" name="L"/>
+ <anchor x="600" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1033" y="1395" type="line"/>
+ <point x="929" y="1465"/>
+ <point x="843" y="1485"/>
+ <point x="725" y="1485" type="curve" smooth="yes"/>
+ <point x="250" y="1485"/>
+ <point x="110" y="1049"/>
+ <point x="110" y="680" type="curve" smooth="yes"/>
+ <point x="110" y="242"/>
+ <point x="290" y="-25"/>
+ <point x="600" y="-25" type="curve" smooth="yes"/>
+ <point x="907" y="-25"/>
+ <point x="1115" y="166"/>
+ <point x="1115" y="470" type="curve" smooth="yes"/>
+ <point x="1115" y="719"/>
+ <point x="943" y="895"/>
+ <point x="665" y="895" type="curve" smooth="yes"/>
+ <point x="474" y="895"/>
+ <point x="328" y="780"/>
+ <point x="215" y="625" type="curve"/>
+ <point x="280" y="550" type="line"/>
+ <point x="362" y="653"/>
+ <point x="490" y="720"/>
+ <point x="645" y="720" type="curve" smooth="yes"/>
+ <point x="824" y="720"/>
+ <point x="920" y="611"/>
+ <point x="920" y="435" type="curve" smooth="yes"/>
+ <point x="920" y="275"/>
+ <point x="806" y="150"/>
+ <point x="630" y="150" type="curve" smooth="yes"/>
+ <point x="409" y="150"/>
+ <point x="305" y="393"/>
+ <point x="305" y="645" type="curve" smooth="yes"/>
+ <point x="305" y="1132"/>
+ <point x="478" y="1310"/>
+ <point x="715" y="1310" type="curve" smooth="yes"/>
+ <point x="811" y="1310"/>
+ <point x="903" y="1286"/>
+ <point x="989" y="1200" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/D_igitT_hree.glif b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/D_igitT_hree.glif
new file mode 100644
index 0000000..3242c12
--- /dev/null
+++ b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/D_igitT_hree.glif
@@ -0,0 +1,52 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitThree" format="2">
+ <advance width="1200"/>
+ <unicode hex="0033"/>
+ <anchor x="600" y="-100" name="L"/>
+ <anchor x="600" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="410" y="870" type="line"/>
+ <point x="410" y="700" type="line"/>
+ <point x="480" y="700" type="line"/>
+ <point x="716" y="700"/>
+ <point x="895" y="588"/>
+ <point x="895" y="425" type="curve" smooth="yes"/>
+ <point x="895" y="241"/>
+ <point x="718" y="150"/>
+ <point x="565" y="150" type="curve" smooth="yes"/>
+ <point x="385" y="150"/>
+ <point x="244" y="232"/>
+ <point x="135" y="355" type="curve"/>
+ <point x="110" y="140" type="line"/>
+ <point x="215" y="42"/>
+ <point x="368" y="-25"/>
+ <point x="545" y="-25" type="curve" smooth="yes"/>
+ <point x="834" y="-25"/>
+ <point x="1090" y="170"/>
+ <point x="1090" y="405" type="curve" smooth="yes"/>
+ <point x="1090" y="672"/>
+ <point x="862" y="776"/>
+ <point x="720" y="800" type="curve"/>
+ <point x="862" y="829"/>
+ <point x="1040" y="957"/>
+ <point x="1040" y="1140" type="curve" smooth="yes"/>
+ <point x="1040" y="1354"/>
+ <point x="828" y="1485"/>
+ <point x="580" y="1485" type="curve"/>
+ <point x="413" y="1485"/>
+ <point x="260" y="1416"/>
+ <point x="180" y="1325" type="curve"/>
+ <point x="215" y="1155" type="line"/>
+ <point x="328" y="1271"/>
+ <point x="436" y="1310"/>
+ <point x="590" y="1310" type="curve" smooth="yes"/>
+ <point x="711" y="1310"/>
+ <point x="850" y="1250"/>
+ <point x="850" y="1115" type="curve" smooth="yes"/>
+ <point x="850" y="991"/>
+ <point x="679" y="870"/>
+ <point x="480" y="870" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/D_igitT_wo.glif b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/D_igitT_wo.glif
new file mode 100644
index 0000000..c179477
--- /dev/null
+++ b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/D_igitT_wo.glif
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitTwo" format="2">
+ <advance width="1200"/>
+ <unicode hex="0032"/>
+ <anchor x="600" y="-100" name="L"/>
+ <anchor x="560" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1080" y="180" type="line"/>
+ <point x="1000" y="166"/>
+ <point x="842" y="165"/>
+ <point x="645" y="165" type="curve" smooth="yes"/>
+ <point x="390" y="165" type="line"/>
+ <point x="609" y="352"/>
+ <point x="1010" y="729"/>
+ <point x="1010" y="1065" type="curve" smooth="yes"/>
+ <point x="1010" y="1323"/>
+ <point x="800" y="1485"/>
+ <point x="560" y="1485" type="curve" smooth="yes"/>
+ <point x="391" y="1485"/>
+ <point x="206" y="1402"/>
+ <point x="125" y="1290" type="curve"/>
+ <point x="170" y="1120" type="line"/>
+ <point x="259" y="1228"/>
+ <point x="402" y="1305"/>
+ <point x="525" y="1305" type="curve" smooth="yes"/>
+ <point x="668" y="1305"/>
+ <point x="810" y="1233"/>
+ <point x="810" y="1045" type="curve" smooth="yes"/>
+ <point x="810" y="768"/>
+ <point x="391" y="365"/>
+ <point x="120" y="170" type="curve"/>
+ <point x="120" y="0" type="line"/>
+ <point x="1080" y="0" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/D_igitZ_ero.glif b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/D_igitZ_ero.glif
new file mode 100644
index 0000000..d976d0f
--- /dev/null
+++ b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/D_igitZ_ero.glif
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitZero" format="2">
+ <advance width="1200"/>
+ <unicode hex="0030"/>
+ <anchor x="605" y="-100" name="L"/>
+ <anchor x="605" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="910" y="715" type="curve" smooth="yes"/>
+ <point x="910" y="308"/>
+ <point x="792" y="145"/>
+ <point x="600" y="145" type="curve" smooth="yes"/>
+ <point x="402" y="145"/>
+ <point x="290" y="305"/>
+ <point x="290" y="745" type="curve" smooth="yes"/>
+ <point x="290" y="1153"/>
+ <point x="407" y="1315"/>
+ <point x="600" y="1315" type="curve" smooth="yes"/>
+ <point x="802" y="1315"/>
+ <point x="910" y="1156"/>
+ </contour>
+ <contour>
+ <point x="1110" y="740" type="curve" smooth="yes"/>
+ <point x="1110" y="1286"/>
+ <point x="900" y="1485"/>
+ <point x="610" y="1485" type="curve" smooth="yes"/>
+ <point x="321" y="1485"/>
+ <point x="90" y="1283"/>
+ <point x="90" y="720" type="curve" smooth="yes"/>
+ <point x="90" y="155"/>
+ <point x="301" y="-25"/>
+ <point x="590" y="-25" type="curve" smooth="yes"/>
+ <point x="881" y="-25"/>
+ <point x="1110" y="151"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/D_ollarS_gn.glif b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/D_ollarS_gn.glif
new file mode 100644
index 0000000..52136d8
--- /dev/null
+++ b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/D_ollarS_gn.glif
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DollarSgn" format="2">
+ <advance width="1200"/>
+ <unicode hex="0024"/>
+ <outline>
+ <contour>
+ <point x="553" y="1600" type="line"/>
+ <point x="553" y="-220" type="line"/>
+ <point x="683" y="-220" type="line"/>
+ <point x="683" y="1600" type="line"/>
+ </contour>
+ <contour>
+ <point x="986" y="1306" type="line"/>
+ <point x="866" y="1364"/>
+ <point x="764" y="1389"/>
+ <point x="623" y="1389" type="curve" smooth="yes"/>
+ <point x="317" y="1389"/>
+ <point x="190" y="1173"/>
+ <point x="190" y="1017" type="curve" smooth="yes"/>
+ <point x="190" y="860"/>
+ <point x="253" y="739"/>
+ <point x="540" y="653" type="curve" smooth="yes"/>
+ <point x="827" y="567"/>
+ <point x="871" y="492"/>
+ <point x="871" y="396" type="curve" smooth="yes"/>
+ <point x="871" y="247"/>
+ <point x="734" y="161"/>
+ <point x="586" y="161" type="curve" smooth="yes"/>
+ <point x="450" y="161"/>
+ <point x="316" y="207"/>
+ <point x="195" y="313" type="curve"/>
+ <point x="153" y="124" type="line"/>
+ <point x="247" y="52"/>
+ <point x="408" y="0"/>
+ <point x="586" y="0" type="curve" smooth="yes"/>
+ <point x="837" y="0"/>
+ <point x="1046" y="167"/>
+ <point x="1046" y="414" type="curve" smooth="yes"/>
+ <point x="1046" y="613"/>
+ <point x="912" y="725"/>
+ <point x="669" y="796" type="curve" smooth="yes"/>
+ <point x="406" y="873"/>
+ <point x="365" y="929"/>
+ <point x="365" y="1030" type="curve" smooth="yes"/>
+ <point x="365" y="1132"/>
+ <point x="466" y="1228"/>
+ <point x="613" y="1228" type="curve" smooth="yes"/>
+ <point x="731" y="1228"/>
+ <point x="818" y="1200"/>
+ <point x="949" y="1127" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/D_ottedC_irc.glif b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/D_ottedC_irc.glif
new file mode 100644
index 0000000..4cf5cb4
--- /dev/null
+++ b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/D_ottedC_irc.glif
@@ -0,0 +1,235 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DottedCirc" format="2">
+ <advance width="1106"/>
+ <unicode hex="25CC"/>
+ <anchor x="553" y="0" name="H"/>
+ <anchor x="553" y="-100" name="L"/>
+ <anchor x="810" y="0" name="O"/>
+ <anchor x="553" y="1000" name="U"/>
+ <outline>
+ <contour>
+ <point x="443" y="837" type="curve" smooth="yes"/>
+ <point x="443" y="864"/>
+ <point x="423" y="885"/>
+ <point x="398" y="885" type="curve" smooth="yes"/>
+ <point x="371" y="885"/>
+ <point x="348" y="861"/>
+ <point x="348" y="837" type="curve" smooth="yes"/>
+ <point x="348" y="809"/>
+ <point x="372" y="789"/>
+ <point x="398" y="789" type="curve" smooth="yes"/>
+ <point x="425" y="789"/>
+ <point x="443" y="812"/>
+ </contour>
+ <contour>
+ <point x="758" y="79" type="curve" smooth="yes"/>
+ <point x="758" y="106"/>
+ <point x="736" y="127"/>
+ <point x="710" y="127" type="curve" smooth="yes"/>
+ <point x="685" y="127"/>
+ <point x="662" y="103"/>
+ <point x="662" y="80" type="curve" smooth="yes"/>
+ <point x="662" y="52"/>
+ <point x="686" y="31"/>
+ <point x="710" y="31" type="curve" smooth="yes"/>
+ <point x="737" y="31"/>
+ <point x="758" y="55"/>
+ </contour>
+ <contour>
+ <point x="310" y="749" type="curve" smooth="yes"/>
+ <point x="310" y="775"/>
+ <point x="288" y="796"/>
+ <point x="263" y="796" type="curve" smooth="yes"/>
+ <point x="238" y="796"/>
+ <point x="215" y="774"/>
+ <point x="215" y="747" type="curve" smooth="yes"/>
+ <point x="215" y="722"/>
+ <point x="236" y="701"/>
+ <point x="263" y="701" type="curve" smooth="yes"/>
+ <point x="291" y="701"/>
+ <point x="310" y="720"/>
+ </contour>
+ <contour>
+ <point x="891" y="168" type="curve" smooth="yes"/>
+ <point x="891" y="197"/>
+ <point x="870" y="215"/>
+ <point x="843" y="215" type="curve" smooth="yes"/>
+ <point x="817" y="215"/>
+ <point x="795" y="194"/>
+ <point x="795" y="168" type="curve" smooth="yes"/>
+ <point x="795" y="143"/>
+ <point x="816" y="121"/>
+ <point x="843" y="121" type="curve" smooth="yes"/>
+ <point x="871" y="121"/>
+ <point x="891" y="143"/>
+ </contour>
+ <contour>
+ <point x="222" y="613" type="curve" smooth="yes"/>
+ <point x="222" y="640"/>
+ <point x="199" y="663"/>
+ <point x="173" y="663" type="curve" smooth="yes"/>
+ <point x="149" y="663"/>
+ <point x="126" y="642"/>
+ <point x="126" y="615" type="curve" smooth="yes"/>
+ <point x="126" y="591"/>
+ <point x="145" y="567"/>
+ <point x="173" y="567" type="curve" smooth="yes"/>
+ <point x="197" y="567"/>
+ <point x="222" y="587"/>
+ </contour>
+ <contour>
+ <point x="980" y="301" type="curve" smooth="yes"/>
+ <point x="980" y="327"/>
+ <point x="957" y="348"/>
+ <point x="932" y="348" type="curve" smooth="yes"/>
+ <point x="908" y="348"/>
+ <point x="884" y="332"/>
+ <point x="884" y="301" type="curve" smooth="yes"/>
+ <point x="884" y="277"/>
+ <point x="902" y="254"/>
+ <point x="932" y="254" type="curve" smooth="yes"/>
+ <point x="957" y="254"/>
+ <point x="980" y="274"/>
+ </contour>
+ <contour>
+ <point x="191" y="459" type="curve" smooth="yes"/>
+ <point x="191" y="484"/>
+ <point x="168" y="505"/>
+ <point x="143" y="505" type="curve" smooth="yes"/>
+ <point x="116" y="505"/>
+ <point x="95" y="484"/>
+ <point x="95" y="458" type="curve" smooth="yes"/>
+ <point x="95" y="433"/>
+ <point x="115" y="410"/>
+ <point x="143" y="410" type="curve" smooth="yes"/>
+ <point x="167" y="410"/>
+ <point x="191" y="432"/>
+ </contour>
+ <contour>
+ <point x="1011" y="458" type="curve" smooth="yes"/>
+ <point x="1011" y="484"/>
+ <point x="990" y="506"/>
+ <point x="964" y="506" type="curve" smooth="yes"/>
+ <point x="940" y="506"/>
+ <point x="915" y="484"/>
+ <point x="915" y="457" type="curve" smooth="yes"/>
+ <point x="915" y="433"/>
+ <point x="936" y="411"/>
+ <point x="964" y="411" type="curve" smooth="yes"/>
+ <point x="990" y="411"/>
+ <point x="1011" y="433"/>
+ </contour>
+ <contour>
+ <point x="222" y="302" type="curve" smooth="yes"/>
+ <point x="222" y="328"/>
+ <point x="200" y="348"/>
+ <point x="174" y="348" type="curve" smooth="yes"/>
+ <point x="147" y="348"/>
+ <point x="126" y="326"/>
+ <point x="126" y="302" type="curve" smooth="yes"/>
+ <point x="126" y="275"/>
+ <point x="149" y="253"/>
+ <point x="174" y="253" type="curve" smooth="yes"/>
+ <point x="201" y="253"/>
+ <point x="222" y="277"/>
+ </contour>
+ <contour>
+ <point x="980" y="615" type="curve" smooth="yes"/>
+ <point x="980" y="642"/>
+ <point x="955" y="663"/>
+ <point x="931" y="663" type="curve" smooth="yes"/>
+ <point x="904" y="663"/>
+ <point x="885" y="638"/>
+ <point x="885" y="614" type="curve" smooth="yes"/>
+ <point x="885" y="588"/>
+ <point x="907" y="567"/>
+ <point x="931" y="567" type="curve" smooth="yes"/>
+ <point x="959" y="567"/>
+ <point x="980" y="591"/>
+ </contour>
+ <contour>
+ <point x="310" y="168" type="curve" smooth="yes"/>
+ <point x="310" y="195"/>
+ <point x="291" y="215"/>
+ <point x="263" y="215" type="curve" smooth="yes"/>
+ <point x="238" y="215"/>
+ <point x="215" y="190"/>
+ <point x="215" y="168" type="curve" smooth="yes"/>
+ <point x="215" y="143"/>
+ <point x="238" y="120"/>
+ <point x="263" y="120" type="curve" smooth="yes"/>
+ <point x="289" y="120"/>
+ <point x="310" y="143"/>
+ </contour>
+ <contour>
+ <point x="890" y="748" type="curve" smooth="yes"/>
+ <point x="890" y="774"/>
+ <point x="870" y="796"/>
+ <point x="843" y="796" type="curve" smooth="yes"/>
+ <point x="815" y="796"/>
+ <point x="796" y="773"/>
+ <point x="796" y="748" type="curve" smooth="yes"/>
+ <point x="796" y="724"/>
+ <point x="817" y="700"/>
+ <point x="843" y="700" type="curve" smooth="yes"/>
+ <point x="869" y="700"/>
+ <point x="890" y="722"/>
+ </contour>
+ <contour>
+ <point x="444" y="78" type="curve" smooth="yes"/>
+ <point x="444" y="102"/>
+ <point x="423" y="126"/>
+ <point x="396" y="126" type="curve" smooth="yes"/>
+ <point x="370" y="126"/>
+ <point x="348" y="102"/>
+ <point x="348" y="78" type="curve" smooth="yes"/>
+ <point x="348" y="55"/>
+ <point x="370" y="31"/>
+ <point x="396" y="31" type="curve" smooth="yes"/>
+ <point x="420" y="31"/>
+ <point x="444" y="51"/>
+ </contour>
+ <contour>
+ <point x="758" y="836" type="curve" smooth="yes"/>
+ <point x="758" y="861"/>
+ <point x="737" y="885"/>
+ <point x="710" y="885" type="curve" smooth="yes"/>
+ <point x="684" y="885"/>
+ <point x="663" y="862"/>
+ <point x="663" y="838" type="curve" smooth="yes"/>
+ <point x="663" y="814"/>
+ <point x="683" y="789"/>
+ <point x="710" y="789" type="curve" smooth="yes"/>
+ <point x="734" y="789"/>
+ <point x="758" y="809"/>
+ </contour>
+ <contour>
+ <point x="601" y="47" type="curve" smooth="yes"/>
+ <point x="601" y="73"/>
+ <point x="579" y="95"/>
+ <point x="553" y="95" type="curve" smooth="yes"/>
+ <point x="527" y="95"/>
+ <point x="506" y="73"/>
+ <point x="506" y="47" type="curve" smooth="yes"/>
+ <point x="506" y="21"/>
+ <point x="527" y="0"/>
+ <point x="553" y="0" type="curve" smooth="yes"/>
+ <point x="579" y="0"/>
+ <point x="601" y="21"/>
+ </contour>
+ <contour>
+ <point x="601" y="868" type="curve" smooth="yes"/>
+ <point x="601" y="894"/>
+ <point x="579" y="916"/>
+ <point x="553" y="916" type="curve" smooth="yes"/>
+ <point x="527" y="916"/>
+ <point x="506" y="894"/>
+ <point x="506" y="868" type="curve" smooth="yes"/>
+ <point x="506" y="842"/>
+ <point x="527" y="821"/>
+ <point x="553" y="821" type="curve" smooth="yes"/>
+ <point x="579" y="821"/>
+ <point x="601" y="842"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/E_qS_gn.glif b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/E_qS_gn.glif
new file mode 100644
index 0000000..1315ffa
--- /dev/null
+++ b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/E_qS_gn.glif
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="EqSgn" format="2">
+ <advance width="1200"/>
+ <unicode hex="003D"/>
+ <outline>
+ <contour>
+ <point x="120" y="480" type="line"/>
+ <point x="1080" y="480" type="line"/>
+ <point x="1080" y="630" type="line"/>
+ <point x="120" y="630" type="line"/>
+ </contour>
+ <contour>
+ <point x="120" y="830" type="line"/>
+ <point x="1080" y="830" type="line"/>
+ <point x="1080" y="980" type="line"/>
+ <point x="120" y="980" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/E_xclamationM_rk.glif b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/E_xclamationM_rk.glif
new file mode 100644
index 0000000..e683644
--- /dev/null
+++ b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/E_xclamationM_rk.glif
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="ExclamationMrk" format="2">
+ <advance width="764"/>
+ <unicode hex="0021"/>
+ <outline>
+ <contour>
+ <point x="450" y="440" type="line"/>
+ <point x="456" y="730"/>
+ <point x="451" y="1076"/>
+ <point x="490" y="1510" type="curve"/>
+ <point x="235" y="1510" type="line"/>
+ <point x="273" y="1076"/>
+ <point x="268" y="730"/>
+ <point x="275" y="440" type="curve"/>
+ </contour>
+ <contour>
+ <point x="225" y="110" type="curve" smooth="yes"/>
+ <point x="225" y="36"/>
+ <point x="286" y="-25"/>
+ <point x="360" y="-25" type="curve" smooth="yes"/>
+ <point x="434" y="-25"/>
+ <point x="495" y="36"/>
+ <point x="495" y="110" type="curve" smooth="yes"/>
+ <point x="495" y="184"/>
+ <point x="434" y="245"/>
+ <point x="360" y="245" type="curve" smooth="yes"/>
+ <point x="286" y="245"/>
+ <point x="225" y="184"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/F_ullS_top.glif b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/F_ullS_top.glif
new file mode 100644
index 0000000..9f3a3f0
--- /dev/null
+++ b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/F_ullS_top.glif
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="FullStop" format="2">
+ <advance width="640"/>
+ <unicode hex="002E"/>
+ <outline>
+ <contour>
+ <point x="185" y="110" type="curve" smooth="yes"/>
+ <point x="185" y="36"/>
+ <point x="246" y="-25"/>
+ <point x="320" y="-25" type="curve" smooth="yes"/>
+ <point x="394" y="-25"/>
+ <point x="455" y="36"/>
+ <point x="455" y="110" type="curve" smooth="yes"/>
+ <point x="455" y="184"/>
+ <point x="394" y="245"/>
+ <point x="320" y="245" type="curve" smooth="yes"/>
+ <point x="246" y="245"/>
+ <point x="185" y="184"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/G_T_S_gn.glif b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/G_T_S_gn.glif
new file mode 100644
index 0000000..c591997
--- /dev/null
+++ b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/G_T_S_gn.glif
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="GTSgn" format="2">
+ <advance width="1200"/>
+ <unicode hex="003E"/>
+ <outline>
+ <contour>
+ <point x="120" y="1035" type="line"/>
+ <point x="910" y="730" type="line"/>
+ <point x="120" y="425" type="line"/>
+ <point x="120" y="245" type="line"/>
+ <point x="1100" y="645" type="line"/>
+ <point x="1100" y="815" type="line"/>
+ <point x="120" y="1215" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/G_raveA_ccent.glif b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/G_raveA_ccent.glif
new file mode 100644
index 0000000..a0a0004
--- /dev/null
+++ b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/G_raveA_ccent.glif
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="GraveAccent" format="2">
+ <advance width="580"/>
+ <unicode hex="0060"/>
+ <outline>
+ <component base="CombGrave" xOffset="940"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/H_yphen.glif b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/H_yphen.glif
new file mode 100644
index 0000000..fabf6ce
--- /dev/null
+++ b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/H_yphen.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Hyphen" format="2">
+ <advance width="860"/>
+ <unicode hex="2010"/>
+ <anchor x="430" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="80" y="555" type="line"/>
+ <point x="780" y="555" type="line"/>
+ <point x="780" y="705" type="line"/>
+ <point x="80" y="705" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/H_yphenM_inus.glif b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/H_yphenM_inus.glif
new file mode 100644
index 0000000..bc3f4eb
--- /dev/null
+++ b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/H_yphenM_inus.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="HyphenMinus" format="2">
+ <advance width="860"/>
+ <unicode hex="002D"/>
+ <anchor x="430" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="80" y="555" type="line"/>
+ <point x="780" y="555" type="line"/>
+ <point x="780" y="705" type="line"/>
+ <point x="80" y="705" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/H_yphen_S_oft.glif b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/H_yphen_S_oft.glif
new file mode 100644
index 0000000..293b653
--- /dev/null
+++ b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/H_yphen_S_oft.glif
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Hyphen_Soft" format="2">
+ <advance width="860"/>
+ <unicode hex="00AD"/>
+ <anchor x="430" y="1100" name="U"/>
+ <outline>
+ <component base="HyphenMinus"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_T_S_gn.glif b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_T_S_gn.glif
new file mode 100644
index 0000000..db9ae78
--- /dev/null
+++ b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_T_S_gn.glif
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LTSgn" format="2">
+ <advance width="1200"/>
+ <unicode hex="003C"/>
+ <outline>
+ <contour>
+ <point x="1080" y="425" type="line"/>
+ <point x="290" y="730" type="line"/>
+ <point x="1080" y="1035" type="line"/>
+ <point x="1080" y="1215" type="line"/>
+ <point x="100" y="815" type="line"/>
+ <point x="100" y="645" type="line"/>
+ <point x="1080" y="245" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_ftC_urlyB_rac.glif b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_ftC_urlyB_rac.glif
new file mode 100644
index 0000000..bc7ef03
--- /dev/null
+++ b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_ftC_urlyB_rac.glif
@@ -0,0 +1,47 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LftCurlyBrac" format="2">
+ <advance width="1000"/>
+ <unicode hex="007B"/>
+ <outline>
+ <contour>
+ <point x="210" y="615" type="curve" smooth="yes"/>
+ <point x="210" y="583"/>
+ <point x="383" y="486"/>
+ <point x="410" y="450" type="curve" smooth="yes"/>
+ <point x="434" y="418"/>
+ <point x="424" y="-205"/>
+ <point x="495" y="-285" type="curve" smooth="yes"/>
+ <point x="535" y="-330"/>
+ <point x="696" y="-383"/>
+ <point x="800" y="-410" type="curve"/>
+ <point x="840" y="-270" type="line"/>
+ <point x="773" y="-247"/>
+ <point x="650" y="-198"/>
+ <point x="630" y="-170" type="curve" smooth="yes"/>
+ <point x="597" y="-123"/>
+ <point x="610" y="447"/>
+ <point x="590" y="485" type="curve" smooth="yes"/>
+ <point x="571" y="521"/>
+ <point x="434" y="593"/>
+ <point x="430" y="615" type="curve"/>
+ <point x="434" y="637"/>
+ <point x="571" y="709"/>
+ <point x="590" y="745" type="curve" smooth="yes"/>
+ <point x="610" y="783"/>
+ <point x="597" y="1353"/>
+ <point x="630" y="1400" type="curve" smooth="yes"/>
+ <point x="650" y="1428"/>
+ <point x="773" y="1477"/>
+ <point x="840" y="1500" type="curve"/>
+ <point x="800" y="1640" type="line"/>
+ <point x="696" y="1613"/>
+ <point x="535" y="1560"/>
+ <point x="495" y="1515" type="curve" smooth="yes"/>
+ <point x="424" y="1435"/>
+ <point x="434" y="812"/>
+ <point x="410" y="780" type="curve" smooth="yes"/>
+ <point x="383" y="744"/>
+ <point x="210" y="647"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_ftP_aren.glif b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_ftP_aren.glif
new file mode 100644
index 0000000..a4b9814
--- /dev/null
+++ b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_ftP_aren.glif
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LftParen" format="2">
+ <advance width="795"/>
+ <unicode hex="0028"/>
+ <outline>
+ <contour>
+ <point x="115" y="625" type="curve" smooth="yes"/>
+ <point x="115" y="218"/>
+ <point x="260" y="-125"/>
+ <point x="535" y="-410" type="curve"/>
+ <point x="630" y="-265" type="line"/>
+ <point x="395" y="-8"/>
+ <point x="305" y="278"/>
+ <point x="305" y="625" type="curve" smooth="yes"/>
+ <point x="305" y="982"/>
+ <point x="395" y="1280"/>
+ <point x="630" y="1485" type="curve"/>
+ <point x="555" y="1640" type="line"/>
+ <point x="290" y="1444"/>
+ <point x="115" y="1062"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_ftS_qrB_rac.glif b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_ftS_qrB_rac.glif
new file mode 100644
index 0000000..e97ed98
--- /dev/null
+++ b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_ftS_qrB_rac.glif
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LftSqrBrac" format="2">
+ <advance width="790"/>
+ <unicode hex="005B"/>
+ <outline>
+ <contour>
+ <point x="640" y="-410" type="line"/>
+ <point x="640" y="-260" type="line"/>
+ <point x="385" y="-260" type="line"/>
+ <point x="385" y="1450" type="line"/>
+ <point x="640" y="1450" type="line"/>
+ <point x="640" y="1600" type="line"/>
+ <point x="200" y="1600" type="line"/>
+ <point x="200" y="-410" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_owL_ine.glif b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_owL_ine.glif
new file mode 100644
index 0000000..2fc71eb
--- /dev/null
+++ b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_owL_ine.glif
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LowLine" format="2">
+ <advance width="1274"/>
+ <unicode hex="005F"/>
+ <outline>
+ <contour>
+ <point x="0" y="-320" type="line"/>
+ <point x="1274" y="-320" type="line"/>
+ <point x="1274" y="-170" type="line"/>
+ <point x="0" y="-170" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnC_apA_.alt.glif b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnC_apA_.alt.glif
new file mode 100644
index 0000000..fbdfff2
--- /dev/null
+++ b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnC_apA_.alt.glif
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapA.alt" format="2">
+ <advance width="1395"/>
+ <anchor x="668" y="1460" name="H"/>
+ <anchor x="688" y="1560" name="L"/>
+ <anchor x="-75" y="1460" name="O"/>
+ <anchor x="688" y="-70" name="U"/>
+ <outline>
+ <contour>
+ <point x="1130" y="1460" type="line"/>
+ <point x="996" y="1075" type="line"/>
+ <point x="381" y="1075" type="line"/>
+ <point x="245" y="1460" type="line"/>
+ <point x="40" y="1460" type="line"/>
+ <point x="75" y="1380"/>
+ <point x="113" y="1291"/>
+ <point x="180" y="1105" type="curve" smooth="yes"/>
+ <point x="580" y="0" type="line"/>
+ <point x="795" y="0" type="line"/>
+ <point x="1195" y="1105" type="line" smooth="yes"/>
+ <point x="1263" y="1292"/>
+ <point x="1299" y="1379"/>
+ <point x="1335" y="1460" type="curve"/>
+ </contour>
+ <contour>
+ <point x="435" y="920" type="line"/>
+ <point x="942" y="920" type="line"/>
+ <point x="690" y="195" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnC_apA_.glif b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnC_apA_.glif
new file mode 100644
index 0000000..3c64e18
--- /dev/null
+++ b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnC_apA_.glif
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapA" format="2">
+ <advance width="1395"/>
+ <unicode hex="0041"/>
+ <anchor x="707" y="0" name="H"/>
+ <anchor x="687" y="-100" name="L"/>
+ <anchor x="1450" y="0" name="O"/>
+ <anchor x="687" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="245" y="0" type="line"/>
+ <point x="379" y="385" type="line"/>
+ <point x="994" y="385" type="line"/>
+ <point x="1130" y="0" type="line"/>
+ <point x="1335" y="0" type="line"/>
+ <point x="1300" y="80"/>
+ <point x="1262" y="169"/>
+ <point x="1195" y="355" type="curve" smooth="yes"/>
+ <point x="795" y="1460" type="line"/>
+ <point x="580" y="1460" type="line"/>
+ <point x="180" y="355" type="line" smooth="yes"/>
+ <point x="112" y="168"/>
+ <point x="76" y="81"/>
+ <point x="40" y="0" type="curve"/>
+ </contour>
+ <contour>
+ <point x="940" y="540" type="line"/>
+ <point x="433" y="540" type="line"/>
+ <point x="685" y="1265" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnC_apA_D_iaer.glif b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnC_apA_D_iaer.glif
new file mode 100644
index 0000000..b74cc60
--- /dev/null
+++ b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnC_apA_D_iaer.glif
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapADiaer" format="2">
+ <advance width="1395"/>
+ <unicode hex="00C4"/>
+ <anchor x="707" y="0" name="H"/>
+ <anchor x="687" y="-100" name="L"/>
+ <anchor x="1450" y="0" name="O"/>
+ <anchor x="687" y="1935" name="U"/>
+ <outline>
+ <component base="LtnCapA"/>
+ <component base="CombDiaer" xOffset="1257" yOffset="430"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnC_apB_.glif b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnC_apB_.glif
new file mode 100644
index 0000000..415122e
--- /dev/null
+++ b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnC_apB_.glif
@@ -0,0 +1,62 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapB" format="2">
+ <advance width="1285"/>
+ <unicode hex="0042"/>
+ <anchor x="615" y="-100" name="L"/>
+ <anchor x="615" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="365" y="1310" type="line"/>
+ <point x="407" y="1312"/>
+ <point x="512" y="1315"/>
+ <point x="590" y="1315" type="curve" smooth="yes"/>
+ <point x="791" y="1315"/>
+ <point x="870" y="1239"/>
+ <point x="870" y="1090" type="curve" smooth="yes"/>
+ <point x="870" y="951"/>
+ <point x="774" y="855"/>
+ <point x="560" y="855" type="curve" smooth="yes"/>
+ <point x="365" y="855" type="line"/>
+ </contour>
+ <contour>
+ <point x="175" y="455" type="line"/>
+ <point x="175" y="257"/>
+ <point x="175" y="80"/>
+ <point x="160" y="0" type="curve"/>
+ <point x="213" y="-5"/>
+ <point x="402" y="-10"/>
+ <point x="605" y="-10" type="curve" smooth="yes"/>
+ <point x="988" y="-10"/>
+ <point x="1140" y="177"/>
+ <point x="1140" y="420" type="curve" smooth="yes"/>
+ <point x="1140" y="669"/>
+ <point x="974" y="759"/>
+ <point x="820" y="800" type="curve"/>
+ <point x="956" y="852"/>
+ <point x="1065" y="952"/>
+ <point x="1065" y="1120" type="curve" smooth="yes"/>
+ <point x="1065" y="1381"/>
+ <point x="897" y="1470"/>
+ <point x="600" y="1470" type="curve" smooth="yes"/>
+ <point x="431" y="1470"/>
+ <point x="248" y="1466"/>
+ <point x="160" y="1460" type="curve"/>
+ <point x="175" y="1380"/>
+ <point x="175" y="1196"/>
+ <point x="175" y="1000" type="curve" smooth="yes"/>
+ </contour>
+ <contour>
+ <point x="365" y="700" type="line"/>
+ <point x="600" y="700" type="line" smooth="yes"/>
+ <point x="833" y="700"/>
+ <point x="945" y="604"/>
+ <point x="945" y="420" type="curve" smooth="yes"/>
+ <point x="945" y="212"/>
+ <point x="781" y="150"/>
+ <point x="610" y="150" type="curve" smooth="yes"/>
+ <point x="498" y="150"/>
+ <point x="402" y="153"/>
+ <point x="365" y="155" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnC_apC_.glif b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnC_apC_.glif
new file mode 100644
index 0000000..daf4f2d
--- /dev/null
+++ b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnC_apC_.glif
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapC" format="2">
+ <advance width="1355"/>
+ <unicode hex="0043"/>
+ <anchor x="750" y="0" name="H"/>
+ <anchor x="750" y="-100" name="L"/>
+ <anchor x="750" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1190" y="335" type="line"/>
+ <point x="1078" y="223"/>
+ <point x="912" y="150"/>
+ <point x="760" y="150" type="curve" smooth="yes"/>
+ <point x="489" y="150"/>
+ <point x="290" y="376"/>
+ <point x="290" y="735" type="curve" smooth="yes"/>
+ <point x="290" y="1119"/>
+ <point x="491" y="1315"/>
+ <point x="770" y="1315" type="curve" smooth="yes"/>
+ <point x="891" y="1315"/>
+ <point x="1030" y="1278"/>
+ <point x="1155" y="1165" type="curve"/>
+ <point x="1215" y="1345" type="line"/>
+ <point x="1072" y="1452"/>
+ <point x="913" y="1485"/>
+ <point x="770" y="1485" type="curve" smooth="yes"/>
+ <point x="418" y="1485"/>
+ <point x="95" y="1225"/>
+ <point x="95" y="710" type="curve" smooth="yes"/>
+ <point x="95" y="260"/>
+ <point x="346" y="-25"/>
+ <point x="750" y="-25" type="curve" smooth="yes"/>
+ <point x="902" y="-25"/>
+ <point x="1114" y="32"/>
+ <point x="1230" y="140" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnC_apD_.glif b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnC_apD_.glif
new file mode 100644
index 0000000..9154a06
--- /dev/null
+++ b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnC_apD_.glif
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapD" format="2">
+ <advance width="1435"/>
+ <unicode hex="0044"/>
+ <anchor x="715" y="-100" name="L"/>
+ <anchor x="715" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="175" y="455" type="line"/>
+ <point x="174" y="257"/>
+ <point x="175" y="80"/>
+ <point x="160" y="0" type="curve"/>
+ <point x="160" y="0"/>
+ <point x="467" y="-10"/>
+ <point x="595" y="-10" type="curve" smooth="yes"/>
+ <point x="888" y="-10"/>
+ <point x="1315" y="145"/>
+ <point x="1315" y="740" type="curve" smooth="yes"/>
+ <point x="1315" y="1394"/>
+ <point x="829" y="1470"/>
+ <point x="615" y="1470" type="curve" smooth="yes"/>
+ <point x="480" y="1470"/>
+ <point x="245" y="1466"/>
+ <point x="160" y="1460" type="curve"/>
+ <point x="175" y="1380"/>
+ <point x="175" y="1196"/>
+ <point x="175" y="1000" type="curve" smooth="yes"/>
+ </contour>
+ <contour>
+ <point x="365" y="1305" type="line"/>
+ <point x="415" y="1307"/>
+ <point x="524" y="1310"/>
+ <point x="590" y="1310" type="curve" smooth="yes"/>
+ <point x="878" y="1310"/>
+ <point x="1120" y="1167"/>
+ <point x="1120" y="720" type="curve" smooth="yes"/>
+ <point x="1120" y="308"/>
+ <point x="853" y="155"/>
+ <point x="585" y="155" type="curve" smooth="yes"/>
+ <point x="490" y="155"/>
+ <point x="412" y="161"/>
+ <point x="365" y="165" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnC_apE_.glif b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnC_apE_.glif
new file mode 100644
index 0000000..e5d0043
--- /dev/null
+++ b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnC_apE_.glif
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapE" format="2">
+ <advance width="1160"/>
+ <unicode hex="0045"/>
+ <anchor x="600" y="0" name="H"/>
+ <anchor x="600" y="-100" name="L"/>
+ <anchor x="917" y="0" name="O"/>
+ <anchor x="1160" y="1200" name="R"/>
+ <anchor x="600" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="365" y="845" type="line"/>
+ <point x="365" y="1295" type="line"/>
+ <point x="1010" y="1295" type="line"/>
+ <point x="1010" y="1460" type="line"/>
+ <point x="160" y="1460" type="line"/>
+ <point x="175" y="1380"/>
+ <point x="175" y="1222"/>
+ <point x="175" y="1025" type="curve" smooth="yes"/>
+ <point x="175" y="435" type="line" smooth="yes"/>
+ <point x="175" y="238"/>
+ <point x="175" y="80"/>
+ <point x="160" y="0" type="curve"/>
+ <point x="1040" y="0" type="line"/>
+ <point x="1040" y="180" type="line"/>
+ <point x="960" y="166"/>
+ <point x="826" y="165"/>
+ <point x="629" y="165" type="curve" smooth="yes"/>
+ <point x="365" y="165" type="line"/>
+ <point x="365" y="685" type="line"/>
+ <point x="935" y="685" type="line"/>
+ <point x="935" y="845" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnC_apF_.glif b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnC_apF_.glif
new file mode 100644
index 0000000..deb38fb
--- /dev/null
+++ b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnC_apF_.glif
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapF" format="2">
+ <advance width="1150"/>
+ <unicode hex="0046"/>
+ <anchor x="595" y="-100" name="L"/>
+ <anchor x="595" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="365" y="835" type="line"/>
+ <point x="365" y="1295" type="line"/>
+ <point x="1030" y="1295" type="line"/>
+ <point x="1030" y="1460" type="line"/>
+ <point x="160" y="1460" type="line"/>
+ <point x="175" y="1380"/>
+ <point x="175" y="1217"/>
+ <point x="175" y="1020" type="curve" smooth="yes"/>
+ <point x="175" y="435" type="line" smooth="yes"/>
+ <point x="175" y="238"/>
+ <point x="175" y="80"/>
+ <point x="160" y="0" type="curve"/>
+ <point x="380" y="0" type="line"/>
+ <point x="365" y="78"/>
+ <point x="365" y="237"/>
+ <point x="365" y="435" type="curve" smooth="yes"/>
+ <point x="365" y="675" type="line"/>
+ <point x="945" y="675" type="line"/>
+ <point x="945" y="835" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnC_apG_.glif b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnC_apG_.glif
new file mode 100644
index 0000000..477d223
--- /dev/null
+++ b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnC_apG_.glif
@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapG" format="2">
+ <advance width="1420"/>
+ <unicode hex="0047"/>
+ <anchor x="745" y="0" name="H"/>
+ <anchor x="745" y="-100" name="L"/>
+ <anchor x="745" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1275" y="745" type="line"/>
+ <point x="735" y="745" type="line"/>
+ <point x="735" y="580" type="line"/>
+ <point x="1085" y="580" type="line"/>
+ <point x="1085" y="245" type="line"/>
+ <point x="963" y="171"/>
+ <point x="876" y="150"/>
+ <point x="757" y="150" type="curve" smooth="yes"/>
+ <point x="471" y="150"/>
+ <point x="290" y="377"/>
+ <point x="290" y="745" type="curve" smooth="yes"/>
+ <point x="290" y="1094"/>
+ <point x="480" y="1315"/>
+ <point x="785" y="1315" type="curve" smooth="yes"/>
+ <point x="918" y="1315"/>
+ <point x="1046" y="1286"/>
+ <point x="1195" y="1165" type="curve"/>
+ <point x="1260" y="1345" type="line"/>
+ <point x="1085" y="1462"/>
+ <point x="947" y="1485"/>
+ <point x="785" y="1485" type="curve" smooth="yes"/>
+ <point x="402" y="1485"/>
+ <point x="95" y="1199"/>
+ <point x="95" y="720" type="curve" smooth="yes"/>
+ <point x="95" y="241"/>
+ <point x="367" y="-25"/>
+ <point x="745" y="-25" type="curve" smooth="yes"/>
+ <point x="918" y="-25"/>
+ <point x="1070" y="11"/>
+ <point x="1275" y="155" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnC_apH_.glif b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnC_apH_.glif
new file mode 100644
index 0000000..5924270
--- /dev/null
+++ b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnC_apH_.glif
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapH" format="2">
+ <advance width="1475"/>
+ <unicode hex="0048"/>
+ <anchor x="285" y="0" name="H"/>
+ <anchor x="725" y="-100" name="L"/>
+ <anchor x="725" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1290" y="0" type="line"/>
+ <point x="1275" y="80"/>
+ <point x="1275" y="238"/>
+ <point x="1275" y="435" type="curve" smooth="yes"/>
+ <point x="1275" y="1025" type="line" smooth="yes"/>
+ <point x="1275" y="1222"/>
+ <point x="1275" y="1380"/>
+ <point x="1290" y="1460" type="curve"/>
+ <point x="1085" y="1460" type="line"/>
+ <point x="1085" y="835" type="line"/>
+ <point x="365" y="835" type="line"/>
+ <point x="365" y="1460" type="line"/>
+ <point x="160" y="1460" type="line"/>
+ <point x="175" y="1380"/>
+ <point x="175" y="1222"/>
+ <point x="175" y="1025" type="curve" smooth="yes"/>
+ <point x="175" y="435" type="line" smooth="yes"/>
+ <point x="175" y="238"/>
+ <point x="175" y="80"/>
+ <point x="160" y="0" type="curve"/>
+ <point x="365" y="0" type="line"/>
+ <point x="365" y="675" type="line"/>
+ <point x="1085" y="675" type="line"/>
+ <point x="1085" y="0" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnC_apI_.glif b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnC_apI_.glif
new file mode 100644
index 0000000..c6001c3
--- /dev/null
+++ b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnC_apI_.glif
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapI" format="2">
+ <advance width="975"/>
+ <unicode hex="0049"/>
+ <anchor x="477" y="0" name="H"/>
+ <anchor x="477" y="-100" name="L"/>
+ <anchor x="673" y="0" name="O"/>
+ <anchor x="975" y="1200" name="R"/>
+ <anchor x="477" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="140" y="1460" type="line"/>
+ <point x="140" y="1315" type="line"/>
+ <point x="380" y="1315" type="line"/>
+ <point x="380" y="145" type="line"/>
+ <point x="140" y="145" type="line"/>
+ <point x="140" y="0" type="line"/>
+ <point x="815" y="0" type="line"/>
+ <point x="815" y="145" type="line"/>
+ <point x="570" y="145" type="line"/>
+ <point x="570" y="1315" type="line"/>
+ <point x="815" y="1315" type="line"/>
+ <point x="815" y="1460" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnC_apJ_.glif b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnC_apJ_.glif
new file mode 100644
index 0000000..457e39d
--- /dev/null
+++ b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnC_apJ_.glif
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapJ" format="2">
+ <advance width="965"/>
+ <unicode hex="004A"/>
+ <anchor x="410" y="-100" name="L"/>
+ <anchor x="675" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="575" y="1460" type="line"/>
+ <point x="588" y="1354"/>
+ <point x="590" y="1175"/>
+ <point x="590" y="980" type="curve"/>
+ <point x="590" y="485" type="line" smooth="yes"/>
+ <point x="590" y="256"/>
+ <point x="487" y="155"/>
+ <point x="340" y="155" type="curve" smooth="yes"/>
+ <point x="248" y="155"/>
+ <point x="147" y="198"/>
+ <point x="80" y="275" type="curve"/>
+ <point x="35" y="90" type="line"/>
+ <point x="106" y="9"/>
+ <point x="250" y="-25"/>
+ <point x="345" y="-25" type="curve" smooth="yes"/>
+ <point x="602" y="-25"/>
+ <point x="780" y="119"/>
+ <point x="780" y="535" type="curve" smooth="yes"/>
+ <point x="780" y="1460" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnC_apK_.glif b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnC_apK_.glif
new file mode 100644
index 0000000..b3f4cdd
--- /dev/null
+++ b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnC_apK_.glif
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapK" format="2">
+ <advance width="1310"/>
+ <unicode hex="004B"/>
+ <anchor x="270" y="0" name="H"/>
+ <anchor x="695" y="-100" name="L"/>
+ <anchor x="650" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="925" y="1460" type="line"/>
+ <point x="295" y="703" type="line"/>
+ <point x="425" y="745" type="line"/>
+ <point x="530" y="740" type="line"/>
+ <point x="1165" y="1460" type="line"/>
+ </contour>
+ <contour>
+ <point x="350" y="735" type="line"/>
+ <point x="985" y="0" type="line"/>
+ <point x="1230" y="0" type="line"/>
+ <point x="485" y="860" type="line"/>
+ </contour>
+ <contour>
+ <point x="365" y="1460" type="line"/>
+ <point x="160" y="1460" type="line"/>
+ <point x="175" y="1380"/>
+ <point x="175" y="1222"/>
+ <point x="175" y="1025" type="curve" smooth="yes"/>
+ <point x="175" y="435" type="line" smooth="yes"/>
+ <point x="175" y="238"/>
+ <point x="175" y="80"/>
+ <point x="160" y="0" type="curve"/>
+ <point x="365" y="0" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnC_apL_.glif b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnC_apL_.glif
new file mode 100644
index 0000000..3d5883a
--- /dev/null
+++ b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnC_apL_.glif
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapL" format="2">
+ <advance width="1080"/>
+ <unicode hex="004C"/>
+ <anchor x="592" y="0" name="H"/>
+ <anchor x="592" y="-100" name="L"/>
+ <anchor x="540" y="1200" name="R"/>
+ <anchor x="592" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="365" y="165" type="line"/>
+ <point x="365" y="1460" type="line"/>
+ <point x="160" y="1460" type="line"/>
+ <point x="175" y="1380"/>
+ <point x="175" y="1222"/>
+ <point x="175" y="1025" type="curve" smooth="yes"/>
+ <point x="175" y="435" type="line" smooth="yes"/>
+ <point x="175" y="238"/>
+ <point x="175" y="80"/>
+ <point x="160" y="0" type="curve"/>
+ <point x="1025" y="0" type="line"/>
+ <point x="1025" y="180" type="line"/>
+ <point x="945" y="166"/>
+ <point x="786" y="165"/>
+ <point x="589" y="165" type="curve" smooth="yes"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnC_apM_.glif b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnC_apM_.glif
new file mode 100644
index 0000000..fbdf3b1
--- /dev/null
+++ b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnC_apM_.glif
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapM" format="2">
+ <advance width="1795"/>
+ <unicode hex="004D"/>
+ <anchor x="1521" y="0" name="H"/>
+ <anchor x="885" y="-100" name="L"/>
+ <anchor x="885" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="885" y="205" type="line"/>
+ <point x="455" y="1460" type="line"/>
+ <point x="285" y="1460" type="line"/>
+ <point x="790" y="0" type="line"/>
+ <point x="985" y="0" type="line"/>
+ <point x="1487" y="1460" type="line"/>
+ <point x="1320" y="1460" type="line"/>
+ </contour>
+ <contour>
+ <point x="230" y="1460" type="line"/>
+ <point x="230" y="1460"/>
+ <point x="186" y="198"/>
+ <point x="160" y="0" type="curve"/>
+ <point x="345" y="0" type="line"/>
+ <point x="377" y="1205" type="line"/>
+ <point x="405" y="1460" type="line"/>
+ </contour>
+ <contour>
+ <point x="1610" y="0" type="line"/>
+ <point x="1581" y="198"/>
+ <point x="1540" y="1460"/>
+ <point x="1540" y="1460" type="curve"/>
+ <point x="1365" y="1460" type="line"/>
+ <point x="1397" y="1205" type="line"/>
+ <point x="1425" y="0" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnC_apN_.glif b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnC_apN_.glif
new file mode 100644
index 0000000..360e6e6
--- /dev/null
+++ b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnC_apN_.glif
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapN" format="2">
+ <advance width="1500"/>
+ <unicode hex="004E"/>
+ <anchor x="1230" y="0" name="H"/>
+ <anchor x="737" y="-100" name="L"/>
+ <anchor x="737" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="200" y="1355" type="line"/>
+ <point x="1135" y="0" type="line"/>
+ <point x="1275" y="100" type="line"/>
+ <point x="340" y="1460" type="line"/>
+ </contour>
+ <contour>
+ <point x="1135" y="0" type="line"/>
+ <point x="1300" y="0" type="line"/>
+ <point x="1300" y="1025" type="line" smooth="yes"/>
+ <point x="1300" y="1222"/>
+ <point x="1301" y="1380"/>
+ <point x="1315" y="1460" type="curve"/>
+ <point x="1135" y="1460" type="line"/>
+ </contour>
+ <contour>
+ <point x="340" y="1460" type="line"/>
+ <point x="160" y="1460" type="line"/>
+ <point x="175" y="1380"/>
+ <point x="175" y="1222"/>
+ <point x="175" y="1025" type="curve" smooth="yes"/>
+ <point x="175" y="435" type="line" smooth="yes"/>
+ <point x="175" y="238"/>
+ <point x="175" y="80"/>
+ <point x="160" y="0" type="curve"/>
+ <point x="340" y="0" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnC_apO_.glif b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnC_apO_.glif
new file mode 100644
index 0000000..e351c3d
--- /dev/null
+++ b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnC_apO_.glif
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapO" format="2">
+ <advance width="1460"/>
+ <unicode hex="004F"/>
+ <anchor x="717" y="0" name="H"/>
+ <anchor x="717" y="-100" name="L"/>
+ <anchor x="994" y="0" name="O"/>
+ <anchor x="1460" y="1200" name="R"/>
+ <anchor x="717" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1145" y="715" type="curve" smooth="yes"/>
+ <point x="1145" y="360"/>
+ <point x="965" y="150"/>
+ <point x="720" y="150" type="curve" smooth="yes"/>
+ <point x="460" y="150"/>
+ <point x="290" y="380"/>
+ <point x="290" y="745" type="curve" smooth="yes"/>
+ <point x="290" y="1091"/>
+ <point x="467" y="1310"/>
+ <point x="720" y="1310" type="curve" smooth="yes"/>
+ <point x="974" y="1310"/>
+ <point x="1145" y="1084"/>
+ </contour>
+ <contour>
+ <point x="1340" y="740" type="curve" smooth="yes"/>
+ <point x="1340" y="1219"/>
+ <point x="1048" y="1485"/>
+ <point x="730" y="1485" type="curve" smooth="yes"/>
+ <point x="407" y="1485"/>
+ <point x="95" y="1199"/>
+ <point x="95" y="720" type="curve" smooth="yes"/>
+ <point x="95" y="241"/>
+ <point x="388" y="-25"/>
+ <point x="710" y="-25" type="curve" smooth="yes"/>
+ <point x="1029" y="-25"/>
+ <point x="1340" y="260"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnC_apP_.glif b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnC_apP_.glif
new file mode 100644
index 0000000..9f29954
--- /dev/null
+++ b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnC_apP_.glif
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapP" format="2">
+ <advance width="1195"/>
+ <unicode hex="0050"/>
+ <anchor x="637" y="-100" name="L"/>
+ <anchor x="637" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="365" y="565" type="line"/>
+ <point x="430" y="558"/>
+ <point x="512" y="555"/>
+ <point x="585" y="555" type="curve" smooth="yes"/>
+ <point x="914" y="555"/>
+ <point x="1115" y="736"/>
+ <point x="1115" y="1030" type="curve" smooth="yes"/>
+ <point x="1115" y="1322"/>
+ <point x="908" y="1470"/>
+ <point x="585" y="1470" type="curve" smooth="yes"/>
+ <point x="372" y="1470"/>
+ <point x="160" y="1460"/>
+ <point x="160" y="1460" type="curve"/>
+ <point x="175" y="1380"/>
+ <point x="175" y="1196"/>
+ <point x="175" y="1000" type="curve"/>
+ <point x="175" y="435" type="line" smooth="yes"/>
+ <point x="175" y="238"/>
+ <point x="175" y="80"/>
+ <point x="160" y="0" type="curve"/>
+ <point x="380" y="0" type="line"/>
+ <point x="366" y="78"/>
+ <point x="365" y="237"/>
+ <point x="365" y="435" type="curve" smooth="yes"/>
+ </contour>
+ <contour>
+ <point x="365" y="1305" type="line"/>
+ <point x="433" y="1308"/>
+ <point x="481" y="1310"/>
+ <point x="575" y="1310" type="curve" smooth="yes"/>
+ <point x="841" y="1310"/>
+ <point x="925" y="1170"/>
+ <point x="925" y="1010" type="curve" smooth="yes"/>
+ <point x="925" y="849"/>
+ <point x="850" y="710"/>
+ <point x="570" y="710" type="curve" smooth="yes"/>
+ <point x="495" y="710"/>
+ <point x="428" y="712"/>
+ <point x="365" y="720" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnC_apQ_.glif b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnC_apQ_.glif
new file mode 100644
index 0000000..ddd0351
--- /dev/null
+++ b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnC_apQ_.glif
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapQ" format="2">
+ <advance width="1475"/>
+ <unicode hex="0051"/>
+ <anchor x="717" y="-270" name="L"/>
+ <anchor x="717" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1340" y="740" type="curve" smooth="yes"/>
+ <point x="1340" y="1219"/>
+ <point x="1053" y="1485"/>
+ <point x="730" y="1485" type="curve" smooth="yes"/>
+ <point x="407" y="1485"/>
+ <point x="95" y="1199"/>
+ <point x="95" y="720" type="curve" smooth="yes"/>
+ <point x="95" y="241"/>
+ <point x="383" y="-25"/>
+ <point x="705" y="-25" type="curve" smooth="yes"/>
+ <point x="767" y="-25"/>
+ <point x="818" y="-18"/>
+ <point x="875" y="0" type="curve"/>
+ <point x="944" y="0"/>
+ <point x="1236" y="-190"/>
+ <point x="1320" y="-190" type="curve" smooth="yes"/>
+ <point x="1374" y="-190"/>
+ <point x="1431" y="-81"/>
+ <point x="1455" y="-45" type="curve"/>
+ <point x="1321" y="-28"/>
+ <point x="1205" y="28"/>
+ <point x="1080" y="105" type="curve"/>
+ <point x="1256" y="236"/>
+ <point x="1340" y="479"/>
+ </contour>
+ <contour>
+ <point x="1145" y="715" type="curve" smooth="yes"/>
+ <point x="1145" y="360"/>
+ <point x="965" y="150"/>
+ <point x="720" y="150" type="curve" smooth="yes"/>
+ <point x="460" y="150"/>
+ <point x="290" y="380"/>
+ <point x="290" y="745" type="curve" smooth="yes"/>
+ <point x="290" y="1091"/>
+ <point x="467" y="1310"/>
+ <point x="720" y="1310" type="curve" smooth="yes"/>
+ <point x="974" y="1310"/>
+ <point x="1145" y="1084"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnC_apR_.glif b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnC_apR_.glif
new file mode 100644
index 0000000..cd9e037
--- /dev/null
+++ b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnC_apR_.glif
@@ -0,0 +1,55 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapR" format="2">
+ <advance width="1305"/>
+ <unicode hex="0052"/>
+ <anchor x="285" y="0" name="H"/>
+ <anchor x="610" y="-100" name="L"/>
+ <anchor x="610" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="365" y="625" type="line"/>
+ <point x="620" y="625" type="line"/>
+ <point x="805" y="625"/>
+ <point x="1090" y="743"/>
+ <point x="1090" y="1060" type="curve" smooth="yes"/>
+ <point x="1090" y="1349"/>
+ <point x="876" y="1470"/>
+ <point x="565" y="1470" type="curve" smooth="yes"/>
+ <point x="331" y="1470"/>
+ <point x="160" y="1460"/>
+ <point x="160" y="1460" type="curve"/>
+ <point x="175" y="1380"/>
+ <point x="175" y="1196"/>
+ <point x="175" y="1000" type="curve" smooth="yes"/>
+ <point x="175" y="435" type="line"/>
+ <point x="175" y="238"/>
+ <point x="175" y="80"/>
+ <point x="160" y="0" type="curve"/>
+ <point x="380" y="0" type="line"/>
+ <point x="366" y="78"/>
+ <point x="365" y="238"/>
+ <point x="365" y="435" type="curve"/>
+ </contour>
+ <contour>
+ <point x="365" y="1305" type="line"/>
+ <point x="418" y="1307"/>
+ <point x="485" y="1310"/>
+ <point x="555" y="1310" type="curve" smooth="yes"/>
+ <point x="800" y="1310"/>
+ <point x="900" y="1216"/>
+ <point x="900" y="1045" type="curve" smooth="yes"/>
+ <point x="900" y="879"/>
+ <point x="780" y="780"/>
+ <point x="555" y="780" type="curve"/>
+ <point x="365" y="780" type="line"/>
+ </contour>
+ <contour>
+ <point x="561" y="635" type="line"/>
+ <point x="990" y="0" type="line"/>
+ <point x="1245" y="0" type="line"/>
+ <point x="1178" y="73"/>
+ <point x="715" y="710"/>
+ <point x="715" y="710" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnC_apS_.glif b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnC_apS_.glif
new file mode 100644
index 0000000..92da6b0
--- /dev/null
+++ b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnC_apS_.glif
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapS" format="2">
+ <advance width="1175"/>
+ <unicode hex="0053"/>
+ <anchor x="580" y="0" name="H"/>
+ <anchor x="580" y="-100" name="L"/>
+ <anchor x="580" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1000" y="1395" type="line"/>
+ <point x="870" y="1458"/>
+ <point x="759" y="1485"/>
+ <point x="605" y="1485" type="curve" smooth="yes"/>
+ <point x="273" y="1485"/>
+ <point x="135" y="1250"/>
+ <point x="135" y="1080" type="curve" smooth="yes"/>
+ <point x="135" y="910"/>
+ <point x="203" y="778"/>
+ <point x="515" y="685" type="curve" smooth="yes"/>
+ <point x="827" y="591"/>
+ <point x="875" y="510"/>
+ <point x="875" y="405" type="curve" smooth="yes"/>
+ <point x="875" y="243"/>
+ <point x="726" y="150"/>
+ <point x="565" y="150" type="curve" smooth="yes"/>
+ <point x="417" y="150"/>
+ <point x="272" y="200"/>
+ <point x="140" y="315" type="curve"/>
+ <point x="95" y="110" type="line"/>
+ <point x="197" y="31"/>
+ <point x="372" y="-25"/>
+ <point x="565" y="-25" type="curve" smooth="yes"/>
+ <point x="838" y="-25"/>
+ <point x="1065" y="157"/>
+ <point x="1065" y="425" type="curve" smooth="yes"/>
+ <point x="1065" y="641"/>
+ <point x="920" y="762"/>
+ <point x="655" y="840" type="curve" smooth="yes"/>
+ <point x="370" y="923"/>
+ <point x="325" y="985"/>
+ <point x="325" y="1095" type="curve" smooth="yes"/>
+ <point x="325" y="1205"/>
+ <point x="435" y="1310"/>
+ <point x="595" y="1310" type="curve" smooth="yes"/>
+ <point x="723" y="1310"/>
+ <point x="817" y="1279"/>
+ <point x="960" y="1200" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnC_apT_.glif b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnC_apT_.glif
new file mode 100644
index 0000000..124138f
--- /dev/null
+++ b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnC_apT_.glif
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapT" format="2">
+ <advance width="1265"/>
+ <unicode hex="0054"/>
+ <anchor x="622" y="0" name="H"/>
+ <anchor x="622" y="-100" name="L"/>
+ <anchor x="622" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="45" y="1460" type="line"/>
+ <point x="45" y="1275" type="line"/>
+ <point x="125" y="1292"/>
+ <point x="201" y="1295"/>
+ <point x="290" y="1295" type="curve" smooth="yes"/>
+ <point x="525" y="1295" type="line"/>
+ <point x="525" y="435" type="line" smooth="yes"/>
+ <point x="525" y="238"/>
+ <point x="522" y="80"/>
+ <point x="505" y="0" type="curve"/>
+ <point x="735" y="0" type="line"/>
+ <point x="718" y="80"/>
+ <point x="715" y="238"/>
+ <point x="715" y="435" type="curve" smooth="yes"/>
+ <point x="715" y="1295" type="line"/>
+ <point x="955" y="1295" type="line" smooth="yes"/>
+ <point x="1045" y="1295"/>
+ <point x="1120" y="1292"/>
+ <point x="1200" y="1275" type="curve"/>
+ <point x="1200" y="1460" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnC_apU_.glif b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnC_apU_.glif
new file mode 100644
index 0000000..7afa08d
--- /dev/null
+++ b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnC_apU_.glif
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapU" format="2">
+ <advance width="1440"/>
+ <unicode hex="0055"/>
+ <anchor x="707" y="0" name="H"/>
+ <anchor x="707" y="-100" name="L"/>
+ <anchor x="1026" y="0" name="O"/>
+ <anchor x="1400" y="1200" name="R"/>
+ <anchor x="707" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1050" y="1460" type="line"/>
+ <point x="1050" y="560" type="line" smooth="yes"/>
+ <point x="1050" y="299"/>
+ <point x="968" y="135"/>
+ <point x="710" y="135" type="curve" smooth="yes"/>
+ <point x="447" y="135"/>
+ <point x="365" y="299"/>
+ <point x="365" y="560" type="curve" smooth="yes"/>
+ <point x="365" y="1460" type="line"/>
+ <point x="160" y="1460" type="line"/>
+ <point x="174" y="1380"/>
+ <point x="175" y="1222"/>
+ <point x="175" y="1025" type="curve" smooth="yes"/>
+ <point x="175" y="515" type="line"/>
+ <point x="175" y="190"/>
+ <point x="345" y="-25"/>
+ <point x="710" y="-25" type="curve" smooth="yes"/>
+ <point x="1071" y="-25"/>
+ <point x="1240" y="190"/>
+ <point x="1240" y="515" type="curve"/>
+ <point x="1240" y="1025" type="line" smooth="yes"/>
+ <point x="1240" y="1232"/>
+ <point x="1242" y="1380"/>
+ <point x="1255" y="1460" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnC_apV_.glif b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnC_apV_.glif
new file mode 100644
index 0000000..86c76b5
--- /dev/null
+++ b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnC_apV_.glif
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapV" format="2">
+ <advance width="1365"/>
+ <unicode hex="0056"/>
+ <anchor x="680" y="0" name="H"/>
+ <anchor x="672" y="-100" name="L"/>
+ <anchor x="880" y="0" name="O"/>
+ <anchor x="672" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1095" y="1460" type="line"/>
+ <point x="672" y="195" type="line"/>
+ <point x="250" y="1460" type="line"/>
+ <point x="35" y="1460" type="line"/>
+ <point x="68" y="1378"/>
+ <point x="101" y="1288"/>
+ <point x="170" y="1095" type="curve" smooth="yes"/>
+ <point x="560" y="0" type="line"/>
+ <point x="785" y="0" type="line"/>
+ <point x="1170" y="1095" type="line" smooth="yes"/>
+ <point x="1238" y="1289"/>
+ <point x="1274" y="1378"/>
+ <point x="1310" y="1460" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnC_apW_.glif b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnC_apW_.glif
new file mode 100644
index 0000000..b1f4961
--- /dev/null
+++ b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnC_apW_.glif
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapW" format="2">
+ <advance width="2080"/>
+ <unicode hex="0057"/>
+ <anchor x="1027" y="-100" name="L"/>
+ <anchor x="1027" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1480" y="0" type="line"/>
+ <point x="1595" y="0" type="line"/>
+ <point x="1900" y="1095" type="line" smooth="yes"/>
+ <point x="1954" y="1289"/>
+ <point x="1983" y="1378"/>
+ <point x="2015" y="1460" type="curve"/>
+ <point x="1795" y="1460" type="line"/>
+ <point x="1470" y="130" type="line"/>
+ </contour>
+ <contour>
+ <point x="1120" y="1460" type="line"/>
+ <point x="935" y="1460" type="line"/>
+ <point x="990" y="1305" type="line"/>
+ <point x="1370" y="0" type="line"/>
+ <point x="1480" y="0" type="line"/>
+ <point x="1500" y="130" type="line"/>
+ </contour>
+ <contour>
+ <point x="580" y="0" type="line"/>
+ <point x="685" y="0" type="line"/>
+ <point x="1065" y="1305" type="line"/>
+ <point x="1120" y="1460" type="line"/>
+ <point x="935" y="1460" type="line"/>
+ <point x="560" y="130" type="line"/>
+ </contour>
+ <contour>
+ <point x="260" y="1460" type="line"/>
+ <point x="40" y="1460" type="line"/>
+ <point x="71" y="1381"/>
+ <point x="102" y="1286"/>
+ <point x="155" y="1095" type="curve" smooth="yes"/>
+ <point x="460" y="0" type="line"/>
+ <point x="580" y="0" type="line"/>
+ <point x="590" y="130" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnC_apX_.glif b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnC_apX_.glif
new file mode 100644
index 0000000..7472407
--- /dev/null
+++ b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnC_apX_.glif
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapX" format="2">
+ <advance width="1325"/>
+ <unicode hex="0058"/>
+ <anchor x="650" y="-100" name="L"/>
+ <anchor x="650" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="537" y="781" type="line"/>
+ <point x="265" y="340" type="line" smooth="yes"/>
+ <point x="136" y="132"/>
+ <point x="103" y="86"/>
+ <point x="40" y="0" type="curve"/>
+ <point x="270" y="0" type="line"/>
+ <point x="642" y="614" type="line"/>
+ <point x="1030" y="0" type="line"/>
+ <point x="1260" y="0" type="line"/>
+ <point x="1199" y="82"/>
+ <point x="1165" y="127"/>
+ <point x="1033" y="336" type="curve" smooth="yes"/>
+ <point x="761" y="767" type="line"/>
+ <point x="972" y="1110" type="line" smooth="yes"/>
+ <point x="1097" y="1313"/>
+ <point x="1148" y="1383"/>
+ <point x="1210" y="1460" type="curve"/>
+ <point x="975" y="1460" type="line"/>
+ <point x="656" y="934" type="line"/>
+ <point x="325" y="1460" type="line"/>
+ <point x="90" y="1460" type="line"/>
+ <point x="154" y="1376"/>
+ <point x="201" y="1315"/>
+ <point x="330" y="1110" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnC_apY_.glif b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnC_apY_.glif
new file mode 100644
index 0000000..c2c5f54
--- /dev/null
+++ b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnC_apY_.glif
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapY" format="2">
+ <advance width="1320"/>
+ <unicode hex="0059"/>
+ <anchor x="650" y="-100" name="L"/>
+ <anchor x="650" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="35" y="1460" type="line"/>
+ <point x="147" y="1311"/>
+ <point x="213" y="1197"/>
+ <point x="290" y="1065" type="curve" smooth="yes"/>
+ <point x="555" y="611" type="line"/>
+ <point x="555" y="435" type="line" smooth="yes"/>
+ <point x="555" y="238"/>
+ <point x="555" y="80"/>
+ <point x="540" y="0" type="curve"/>
+ <point x="760" y="0" type="line"/>
+ <point x="745" y="80"/>
+ <point x="745" y="238"/>
+ <point x="745" y="435" type="curve" smooth="yes"/>
+ <point x="745" y="603" type="line"/>
+ <point x="1015" y="1065" type="line" smooth="yes"/>
+ <point x="1091" y="1195"/>
+ <point x="1147" y="1291"/>
+ <point x="1265" y="1460" type="curve"/>
+ <point x="1035" y="1460" type="line"/>
+ <point x="660" y="799" type="line"/>
+ <point x="265" y="1460" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mA_.glif b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mA_.glif
new file mode 100644
index 0000000..20f7261
--- /dev/null
+++ b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mA_.glif
@@ -0,0 +1,76 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmA" format="2">
+ <advance width="1120"/>
+ <unicode hex="0061"/>
+ <note>
+
+
+
+
+ GlyphNote A
+
+
+
+
+ </note>
+ <anchor x="540" y="0" name="H"/>
+ <anchor x="540" y="-100" name="L"/>
+ <anchor x="1125" y="0" name="O"/>
+ <anchor x="1120" y="1000" name="R"/>
+ <anchor x="540" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="950" y="760" type="line"/>
+ <point x="950" y="919"/>
+ <point x="800" y="1040"/>
+ <point x="570" y="1040" type="curve" smooth="yes"/>
+ <point x="418" y="1040"/>
+ <point x="312" y="994"/>
+ <point x="209" y="950" type="curve"/>
+ <point x="203" y="907"/>
+ <point x="200" y="799"/>
+ <point x="199" y="755" type="curve"/>
+ <point x="316" y="837"/>
+ <point x="419" y="880"/>
+ <point x="525" y="880" type="curve" smooth="yes"/>
+ <point x="675" y="880"/>
+ <point x="765" y="831"/>
+ <point x="765" y="710" type="curve" smooth="yes"/>
+ <point x="765" y="635" type="line"/>
+ <point x="724" y="632"/>
+ <point x="564" y="617"/>
+ <point x="495" y="610" type="curve" smooth="yes"/>
+ <point x="186" y="580"/>
+ <point x="95" y="407"/>
+ <point x="95" y="255" type="curve" smooth="yes"/>
+ <point x="95" y="107"/>
+ <point x="232" y="-25"/>
+ <point x="420" y="-25" type="curve" smooth="yes"/>
+ <point x="544" y="-25"/>
+ <point x="677" y="29"/>
+ <point x="795" y="155" type="curve"/>
+ <point x="809" y="91"/>
+ <point x="833" y="32"/>
+ <point x="845" y="0" type="curve"/>
+ <point x="1025" y="0" type="line"/>
+ <point x="981" y="112"/>
+ <point x="950" y="226"/>
+ <point x="950" y="370" type="curve"/>
+ </contour>
+ <contour>
+ <point x="765" y="325" type="line"/>
+ <point x="644" y="164"/>
+ <point x="552" y="140"/>
+ <point x="450" y="140" type="curve" smooth="yes"/>
+ <point x="340" y="140"/>
+ <point x="275" y="191"/>
+ <point x="275" y="280" type="curve" smooth="yes"/>
+ <point x="275" y="372"/>
+ <point x="335" y="450"/>
+ <point x="505" y="470" type="curve" smooth="yes"/>
+ <point x="568" y="478"/>
+ <point x="715" y="493"/>
+ <point x="765" y="495" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mA_A_cute.glif b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mA_A_cute.glif
new file mode 100644
index 0000000..2ab1b23
--- /dev/null
+++ b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mA_A_cute.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmAAcute" format="2">
+ <advance width="1120"/>
+ <unicode hex="00E1"/>
+ <anchor x="540" y="0" name="H"/>
+ <anchor x="540" y="-100" name="L"/>
+ <anchor x="1125" y="0" name="O"/>
+ <anchor x="1120" y="1000" name="R"/>
+ <anchor x="540" y="1635" name="U"/>
+ <outline>
+ <component base="LtnSmA"/>
+ <component base="CombAcute" xOffset="1110"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mA_C_ircum.glif b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mA_C_ircum.glif
new file mode 100644
index 0000000..6551c45
--- /dev/null
+++ b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mA_C_ircum.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmACircum" format="2">
+ <advance width="1120"/>
+ <unicode hex="00E2"/>
+ <anchor x="540" y="0" name="H"/>
+ <anchor x="540" y="-100" name="L"/>
+ <anchor x="1125" y="0" name="O"/>
+ <anchor x="1120" y="1000" name="R"/>
+ <anchor x="540" y="1635" name="U"/>
+ <outline>
+ <component base="LtnSmA"/>
+ <component base="CombCircum" xOffset="1110"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mA_D_iaer.glif b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mA_D_iaer.glif
new file mode 100644
index 0000000..61c5d3f
--- /dev/null
+++ b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mA_D_iaer.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmADiaer" format="2">
+ <advance width="1120"/>
+ <unicode hex="00E4"/>
+ <anchor x="540" y="0" name="H"/>
+ <anchor x="540" y="-100" name="L"/>
+ <anchor x="1125" y="0" name="O"/>
+ <anchor x="1120" y="1000" name="R"/>
+ <anchor x="540" y="1505" name="U"/>
+ <outline>
+ <component base="LtnSmA"/>
+ <component base="CombDiaer" xOffset="1110"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mA_G_rave.glif b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mA_G_rave.glif
new file mode 100644
index 0000000..9879252
--- /dev/null
+++ b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mA_G_rave.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmAGrave" format="2">
+ <advance width="1120"/>
+ <unicode hex="00E0"/>
+ <anchor x="540" y="0" name="H"/>
+ <anchor x="540" y="-100" name="L"/>
+ <anchor x="1125" y="0" name="O"/>
+ <anchor x="1120" y="1000" name="R"/>
+ <anchor x="540" y="1635" name="U"/>
+ <outline>
+ <component base="LtnSmA"/>
+ <component base="CombGrave" xOffset="1090"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mA_R_ingA_bv.glif b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mA_R_ingA_bv.glif
new file mode 100644
index 0000000..ae3b838
--- /dev/null
+++ b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mA_R_ingA_bv.glif
@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmARingAbv" format="2">
+ <advance width="1120"/>
+ <unicode hex="00E5"/>
+ <anchor x="540" y="0" name="H"/>
+ <anchor x="540" y="-100" name="L"/>
+ <anchor x="1125" y="0" name="O"/>
+ <anchor x="1120" y="1000" name="R"/>
+ <anchor x="542" y="1635" name="U"/>
+ <outline>
+ <component base="LtnSmA"/>
+ <contour>
+ <point x="642" y="1385" type="curve" smooth="yes"/>
+ <point x="642" y="1325"/>
+ <point x="602" y="1285"/>
+ <point x="542" y="1285" type="curve" smooth="yes"/>
+ <point x="482" y="1285"/>
+ <point x="442" y="1325"/>
+ <point x="442" y="1385" type="curve" smooth="yes"/>
+ <point x="442" y="1445"/>
+ <point x="482" y="1485"/>
+ <point x="542" y="1485" type="curve" smooth="yes"/>
+ <point x="602" y="1485"/>
+ <point x="642" y="1445"/>
+ </contour>
+ <contour>
+ <point x="327" y="1385" type="curve" smooth="yes"/>
+ <point x="327" y="1265"/>
+ <point x="422" y="1170"/>
+ <point x="542" y="1170" type="curve" smooth="yes"/>
+ <point x="662" y="1170"/>
+ <point x="757" y="1265"/>
+ <point x="757" y="1385" type="curve" smooth="yes"/>
+ <point x="757" y="1505"/>
+ <point x="662" y="1600"/>
+ <point x="542" y="1600" type="curve" smooth="yes"/>
+ <point x="422" y="1600"/>
+ <point x="327" y="1505"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mA_T_ilde.glif b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mA_T_ilde.glif
new file mode 100644
index 0000000..cf21919
--- /dev/null
+++ b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mA_T_ilde.glif
@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmATilde" format="2">
+ <advance width="1120"/>
+ <unicode hex="00E3"/>
+ <anchor x="540" y="0" name="H"/>
+ <anchor x="540" y="-100" name="L"/>
+ <anchor x="1125" y="0" name="O"/>
+ <anchor x="1120" y="1000" name="R"/>
+ <anchor x="540" y="1475" name="U"/>
+ <outline>
+ <component base="LtnSmA"/>
+ <contour>
+ <point x="295" y="1205" type="line"/>
+ <point x="300" y="1254"/>
+ <point x="331" y="1290"/>
+ <point x="380" y="1290" type="curve" smooth="yes"/>
+ <point x="417" y="1290"/>
+ <point x="458" y="1274"/>
+ <point x="535" y="1238" type="curve" smooth="yes"/>
+ <point x="596" y="1210"/>
+ <point x="649" y="1190"/>
+ <point x="702" y="1190" type="curve" smooth="yes"/>
+ <point x="825" y="1190"/>
+ <point x="900" y="1312"/>
+ <point x="900" y="1440" type="curve"/>
+ <point x="795" y="1440" type="line"/>
+ <point x="788" y="1394"/>
+ <point x="757" y="1355"/>
+ <point x="710" y="1355" type="curve" smooth="yes"/>
+ <point x="668" y="1355"/>
+ <point x="627" y="1374"/>
+ <point x="555" y="1403" type="curve" smooth="yes"/>
+ <point x="485" y="1431"/>
+ <point x="438" y="1455"/>
+ <point x="382" y="1455" type="curve" smooth="yes"/>
+ <point x="263" y="1455"/>
+ <point x="190" y="1327"/>
+ <point x="190" y="1205" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mB_.glif b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mB_.glif
new file mode 100644
index 0000000..67ff8ac
--- /dev/null
+++ b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mB_.glif
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmB" format="2">
+ <advance width="1155"/>
+ <unicode hex="0062"/>
+ <anchor x="590" y="0" name="H"/>
+ <anchor x="590" y="-100" name="L"/>
+ <anchor x="1155" y="1000" name="R"/>
+ <anchor x="590" y="1635" name="U"/>
+ <outline>
+ <contour>
+ <point x="130" y="1600" type="line"/>
+ <point x="145" y="1488"/>
+ <point x="145" y="1273"/>
+ <point x="145" y="1130" type="curve" smooth="yes"/>
+ <point x="145" y="936"/>
+ <point x="145" y="228"/>
+ <point x="145" y="65" type="curve"/>
+ <point x="272" y="26"/>
+ <point x="413" y="-25"/>
+ <point x="575" y="-25" type="curve" smooth="yes"/>
+ <point x="870" y="-25"/>
+ <point x="1060" y="197"/>
+ <point x="1060" y="540" type="curve" smooth="yes"/>
+ <point x="1060" y="832"/>
+ <point x="917" y="1040"/>
+ <point x="715" y="1040" type="curve" smooth="yes"/>
+ <point x="547" y="1040"/>
+ <point x="423" y="947"/>
+ <point x="330" y="825" type="curve"/>
+ <point x="330" y="916"/>
+ <point x="330" y="1600"/>
+ <point x="330" y="1600" type="curve"/>
+ </contour>
+ <contour>
+ <point x="330" y="585" type="line"/>
+ <point x="398" y="751"/>
+ <point x="531" y="865"/>
+ <point x="655" y="865" type="curve" smooth="yes"/>
+ <point x="799" y="865"/>
+ <point x="880" y="727"/>
+ <point x="880" y="505" type="curve" smooth="yes"/>
+ <point x="880" y="280"/>
+ <point x="752" y="130"/>
+ <point x="575" y="130" type="curve" smooth="yes"/>
+ <point x="489" y="130"/>
+ <point x="428" y="144"/>
+ <point x="330" y="185" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mC_.glif b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mC_.glif
new file mode 100644
index 0000000..7c403fb
--- /dev/null
+++ b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mC_.glif
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmC" format="2">
+ <advance width="1020"/>
+ <unicode hex="0063"/>
+ <anchor x="580" y="0" name="H"/>
+ <anchor x="580" y="-100" name="L"/>
+ <anchor x="1020" y="1000" name="R"/>
+ <anchor x="570" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="905" y="260" type="line"/>
+ <point x="818" y="183"/>
+ <point x="720" y="140"/>
+ <point x="600" y="140" type="curve" smooth="yes"/>
+ <point x="406" y="140"/>
+ <point x="285" y="285"/>
+ <point x="285" y="500" type="curve" smooth="yes"/>
+ <point x="285" y="736"/>
+ <point x="422" y="875"/>
+ <point x="600" y="875" type="curve" smooth="yes"/>
+ <point x="703" y="875"/>
+ <point x="790" y="841"/>
+ <point x="880" y="775" type="curve"/>
+ <point x="915" y="955" type="line"/>
+ <point x="842" y="1005"/>
+ <point x="748" y="1040"/>
+ <point x="615" y="1040" type="curve" smooth="yes"/>
+ <point x="297" y="1040"/>
+ <point x="95" y="792"/>
+ <point x="95" y="490" type="curve" smooth="yes"/>
+ <point x="95" y="171"/>
+ <point x="312" y="-25"/>
+ <point x="580" y="-25" type="curve" smooth="yes"/>
+ <point x="730" y="-25"/>
+ <point x="824" y="9"/>
+ <point x="925" y="85" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mD_.glif b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mD_.glif
new file mode 100644
index 0000000..13547d4
--- /dev/null
+++ b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mD_.glif
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmD" format="2">
+ <advance width="1190"/>
+ <unicode hex="0064"/>
+ <anchor x="605" y="0" name="H"/>
+ <anchor x="605" y="-100" name="L"/>
+ <anchor x="1190" y="1000" name="R"/>
+ <anchor x="605" y="1635" name="U"/>
+ <outline>
+ <contour>
+ <point x="1030" y="1600" type="line"/>
+ <point x="820" y="1600" type="line"/>
+ <point x="839" y="1516"/>
+ <point x="845" y="1395"/>
+ <point x="845" y="1235" type="curve"/>
+ <point x="845" y="955" type="line"/>
+ <point x="767" y="999"/>
+ <point x="665" y="1040"/>
+ <point x="580" y="1040" type="curve" smooth="yes"/>
+ <point x="312" y="1040"/>
+ <point x="105" y="814"/>
+ <point x="105" y="460" type="curve" smooth="yes"/>
+ <point x="105" y="167"/>
+ <point x="261" y="-25"/>
+ <point x="505" y="-25" type="curve" smooth="yes"/>
+ <point x="652" y="-25"/>
+ <point x="775" y="50"/>
+ <point x="870" y="185" type="curve"/>
+ <point x="887" y="111"/>
+ <point x="910" y="34"/>
+ <point x="925" y="0" type="curve"/>
+ <point x="1105" y="0" type="line"/>
+ <point x="1062" y="112"/>
+ <point x="1030" y="278"/>
+ <point x="1030" y="530" type="curve"/>
+ </contour>
+ <contour>
+ <point x="845" y="400" type="line"/>
+ <point x="790" y="268"/>
+ <point x="662" y="135"/>
+ <point x="540" y="135" type="curve" smooth="yes"/>
+ <point x="366" y="135"/>
+ <point x="290" y="258"/>
+ <point x="290" y="490" type="curve" smooth="yes"/>
+ <point x="290" y="727"/>
+ <point x="429" y="870"/>
+ <point x="580" y="870" type="curve" smooth="yes"/>
+ <point x="681" y="870"/>
+ <point x="746" y="848"/>
+ <point x="845" y="795" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mE_.glif b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mE_.glif
new file mode 100644
index 0000000..f231440
--- /dev/null
+++ b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mE_.glif
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmE" format="2">
+ <advance width="1095"/>
+ <unicode hex="0065"/>
+ <anchor x="545" y="0" name="H"/>
+ <anchor x="569" y="-100" name="L"/>
+ <anchor x="925" y="0" name="O"/>
+ <anchor x="1095" y="1000" name="R"/>
+ <anchor x="569" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="989" y="485" type="line"/>
+ <point x="990" y="503"/>
+ <point x="990" y="545"/>
+ <point x="990" y="563" type="curve" smooth="yes"/>
+ <point x="990" y="788"/>
+ <point x="905" y="1040"/>
+ <point x="575" y="1040" type="curve" smooth="yes"/>
+ <point x="279" y="1040"/>
+ <point x="95" y="826"/>
+ <point x="95" y="495" type="curve" smooth="yes"/>
+ <point x="95" y="155"/>
+ <point x="320" y="-25"/>
+ <point x="575" y="-25" type="curve" smooth="yes"/>
+ <point x="729" y="-25"/>
+ <point x="853" y="2"/>
+ <point x="995" y="75" type="curve"/>
+ <point x="975" y="240" type="line"/>
+ <point x="853" y="166"/>
+ <point x="729" y="140"/>
+ <point x="600" y="140" type="curve" smooth="yes"/>
+ <point x="414" y="140"/>
+ <point x="280" y="258"/>
+ <point x="280" y="505" type="curve" smooth="yes"/>
+ <point x="280" y="770"/>
+ <point x="385" y="890"/>
+ <point x="560" y="890" type="curve" smooth="yes"/>
+ <point x="705" y="890"/>
+ <point x="810" y="797"/>
+ <point x="810" y="625" type="curve"/>
+ <point x="245" y="625" type="line"/>
+ <point x="245" y="485" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mF_.glif b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mF_.glif
new file mode 100644
index 0000000..56c0b15
--- /dev/null
+++ b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mF_.glif
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmF" format="2">
+ <advance width="750"/>
+ <unicode hex="0066"/>
+ <anchor x="370" y="0" name="H"/>
+ <anchor x="335" y="-100" name="L"/>
+ <anchor x="560" y="1635" name="U"/>
+ <outline>
+ <contour>
+ <point x="40" y="850" type="line"/>
+ <point x="240" y="850" type="line"/>
+ <point x="240" y="0" type="line"/>
+ <point x="455" y="0" type="line"/>
+ <point x="433" y="105"/>
+ <point x="425" y="300"/>
+ <point x="425" y="494" type="curve" smooth="yes"/>
+ <point x="425" y="850" type="line"/>
+ <point x="695" y="850" type="line"/>
+ <point x="695" y="995" type="line"/>
+ <point x="425" y="995" type="line"/>
+ <point x="425" y="1210" type="line" smooth="yes"/>
+ <point x="425" y="1381"/>
+ <point x="481" y="1450"/>
+ <point x="585" y="1450" type="curve" smooth="yes"/>
+ <point x="643" y="1450"/>
+ <point x="710" y="1427"/>
+ <point x="760" y="1390" type="curve"/>
+ <point x="805" y="1550" type="line"/>
+ <point x="743" y="1594"/>
+ <point x="663" y="1620"/>
+ <point x="585" y="1620" type="curve" smooth="yes"/>
+ <point x="369" y="1620"/>
+ <point x="240" y="1470"/>
+ <point x="240" y="1170" type="curve" smooth="yes"/>
+ <point x="240" y="995" type="line"/>
+ <point x="40" y="995" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mG_.glif b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mG_.glif
new file mode 100644
index 0000000..236da64
--- /dev/null
+++ b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mG_.glif
@@ -0,0 +1,91 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmG" format="2">
+ <advance width="1095"/>
+ <unicode hex="0067"/>
+ <anchor x="545" y="-432" name="H"/>
+ <anchor x="545" y="-535" name="L"/>
+ <anchor x="1095" y="1000" name="R"/>
+ <anchor x="515" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="330" y="395" type="line"/>
+ <point x="234" y="357"/>
+ <point x="180" y="275"/>
+ <point x="180" y="215" type="curve" smooth="yes"/>
+ <point x="180" y="121"/>
+ <point x="263" y="27"/>
+ <point x="545" y="-5" type="curve" smooth="yes"/>
+ <point x="805" y="-35"/>
+ <point x="880" y="-90"/>
+ <point x="880" y="-170" type="curve" smooth="yes"/>
+ <point x="880" y="-255"/>
+ <point x="731" y="-360"/>
+ <point x="550" y="-360" type="curve" smooth="yes"/>
+ <point x="323" y="-360"/>
+ <point x="215" y="-261"/>
+ <point x="215" y="-180" type="curve" smooth="yes"/>
+ <point x="215" y="-121"/>
+ <point x="244" y="-56"/>
+ <point x="465" y="20" type="curve"/>
+ <point x="459" y="49"/>
+ <point x="290" y="75"/>
+ <point x="290" y="75" type="curve"/>
+ <point x="113" y="2"/>
+ <point x="30" y="-89"/>
+ <point x="30" y="-200" type="curve" smooth="yes"/>
+ <point x="30" y="-409"/>
+ <point x="303" y="-505"/>
+ <point x="535" y="-505" type="curve" smooth="yes"/>
+ <point x="777" y="-505"/>
+ <point x="1065" y="-375"/>
+ <point x="1065" y="-160" type="curve" smooth="yes"/>
+ <point x="1065" y="-8"/>
+ <point x="967" y="90"/>
+ <point x="670" y="125" type="curve" smooth="yes"/>
+ <point x="410" y="156"/>
+ <point x="345" y="198"/>
+ <point x="345" y="235" type="curve" smooth="yes"/>
+ <point x="345" y="271"/>
+ <point x="384" y="316"/>
+ <point x="500" y="350" type="curve"/>
+ </contour>
+ <contour>
+ <point x="1050" y="1040" type="line"/>
+ <point x="951" y="1033"/>
+ <point x="819" y="997"/>
+ <point x="730" y="940" type="curve"/>
+ <point x="795" y="825" type="line"/>
+ <point x="887" y="863"/>
+ <point x="967" y="878"/>
+ <point x="1040" y="880" type="curve"/>
+ </contour>
+ <contour>
+ <point x="115" y="680" type="curve" smooth="yes"/>
+ <point x="115" y="476"/>
+ <point x="289" y="325"/>
+ <point x="515" y="325" type="curve" smooth="yes"/>
+ <point x="742" y="325"/>
+ <point x="915" y="476"/>
+ <point x="915" y="680" type="curve" smooth="yes"/>
+ <point x="915" y="884"/>
+ <point x="742" y="1040"/>
+ <point x="515" y="1040" type="curve" smooth="yes"/>
+ <point x="289" y="1040"/>
+ <point x="115" y="884"/>
+ </contour>
+ <contour>
+ <point x="285" y="680" type="curve" smooth="yes"/>
+ <point x="285" y="803"/>
+ <point x="382" y="895"/>
+ <point x="515" y="895" type="curve" smooth="yes"/>
+ <point x="649" y="895"/>
+ <point x="745" y="803"/>
+ <point x="745" y="680" type="curve" smooth="yes"/>
+ <point x="745" y="557"/>
+ <point x="649" y="465"/>
+ <point x="515" y="465" type="curve" smooth="yes"/>
+ <point x="382" y="465"/>
+ <point x="285" y="557"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mH_.glif b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mH_.glif
new file mode 100644
index 0000000..bad060c
--- /dev/null
+++ b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mH_.glif
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmH" format="2">
+ <advance width="1175"/>
+ <unicode hex="0068"/>
+ <anchor x="250" y="0" name="H"/>
+ <anchor x="585" y="-100" name="L"/>
+ <anchor x="585" y="1635" name="U"/>
+ <outline>
+ <contour>
+ <point x="1040" y="0" type="line"/>
+ <point x="1040" y="0"/>
+ <point x="1040" y="459"/>
+ <point x="1040" y="625" type="curve" smooth="yes"/>
+ <point x="1040" y="900"/>
+ <point x="923" y="1040"/>
+ <point x="710" y="1040" type="curve" smooth="yes"/>
+ <point x="570" y="1040"/>
+ <point x="428" y="969"/>
+ <point x="330" y="830" type="curve"/>
+ <point x="330" y="877"/>
+ <point x="330" y="1600"/>
+ <point x="330" y="1600" type="curve"/>
+ <point x="130" y="1600" type="line"/>
+ <point x="145" y="1514"/>
+ <point x="145" y="1345"/>
+ <point x="145" y="1130" type="curve" smooth="yes"/>
+ <point x="145" y="935"/>
+ <point x="145" y="0"/>
+ <point x="145" y="0" type="curve"/>
+ <point x="330" y="0" type="line"/>
+ <point x="330" y="580" type="line"/>
+ <point x="374" y="716"/>
+ <point x="511" y="865"/>
+ <point x="655" y="865" type="curve" smooth="yes"/>
+ <point x="789" y="865"/>
+ <point x="855" y="800"/>
+ <point x="855" y="550" type="curve" smooth="yes"/>
+ <point x="855" y="413"/>
+ <point x="855" y="0"/>
+ <point x="855" y="0" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mI_.glif b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mI_.glif
new file mode 100644
index 0000000..369347b
--- /dev/null
+++ b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mI_.glif
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmI" format="2">
+ <advance width="565"/>
+ <unicode hex="0069"/>
+ <anchor x="282" y="0" name="H"/>
+ <anchor x="285" y="-100" name="L"/>
+ <anchor x="500" y="0" name="O"/>
+ <anchor x="555" y="1000" name="R"/>
+ <anchor x="282" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="375" y="1020" type="line"/>
+ <point x="175" y="1020" type="line"/>
+ <point x="188" y="915"/>
+ <point x="190" y="725"/>
+ <point x="190" y="530" type="curve" smooth="yes"/>
+ <point x="190" y="336"/>
+ <point x="190" y="0"/>
+ <point x="190" y="0" type="curve"/>
+ <point x="395" y="0" type="line"/>
+ <point x="382" y="107"/>
+ <point x="375" y="346"/>
+ <point x="375" y="475" type="curve" smooth="yes"/>
+ </contour>
+ <contour>
+ <point x="155" y="1345" type="curve" smooth="yes"/>
+ <point x="155" y="1271"/>
+ <point x="206" y="1210"/>
+ <point x="280" y="1210" type="curve" smooth="yes"/>
+ <point x="355" y="1210"/>
+ <point x="410" y="1271"/>
+ <point x="410" y="1345" type="curve" smooth="yes"/>
+ <point x="410" y="1419"/>
+ <point x="355" y="1480"/>
+ <point x="280" y="1480" type="curve" smooth="yes"/>
+ <point x="206" y="1480"/>
+ <point x="155" y="1419"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mJ_.glif b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mJ_.glif
new file mode 100644
index 0000000..87f74c6
--- /dev/null
+++ b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mJ_.glif
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmJ" format="2">
+ <advance width="595"/>
+ <unicode hex="006A"/>
+ <anchor x="125" y="-500" name="L"/>
+ <anchor x="313" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="405" y="1020" type="line"/>
+ <point x="205" y="1020" type="line"/>
+ <point x="218" y="915"/>
+ <point x="220" y="725"/>
+ <point x="220" y="530" type="curve"/>
+ <point x="220" y="-25" type="line"/>
+ <point x="220" y="-222"/>
+ <point x="147" y="-300"/>
+ <point x="40" y="-300" type="curve" smooth="yes"/>
+ <point x="-16" y="-300"/>
+ <point x="-111" y="-273"/>
+ <point x="-155" y="-240" type="curve"/>
+ <point x="-190" y="-405" type="line"/>
+ <point x="-130" y="-446"/>
+ <point x="-26" y="-470"/>
+ <point x="30" y="-470" type="curve" smooth="yes"/>
+ <point x="258" y="-470"/>
+ <point x="405" y="-348"/>
+ <point x="405" y="25" type="curve" smooth="yes"/>
+ </contour>
+ <contour>
+ <point x="185" y="1345" type="curve" smooth="yes"/>
+ <point x="185" y="1271"/>
+ <point x="236" y="1210"/>
+ <point x="310" y="1210" type="curve" smooth="yes"/>
+ <point x="385" y="1210"/>
+ <point x="440" y="1271"/>
+ <point x="440" y="1345" type="curve" smooth="yes"/>
+ <point x="440" y="1419"/>
+ <point x="385" y="1480"/>
+ <point x="310" y="1480" type="curve" smooth="yes"/>
+ <point x="236" y="1480"/>
+ <point x="185" y="1419"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mK_.glif b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mK_.glif
new file mode 100644
index 0000000..d1b00cb
--- /dev/null
+++ b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mK_.glif
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmK" format="2">
+ <advance width="1035"/>
+ <unicode hex="006B"/>
+ <guideline x="500" y="774" angle="314"/>
+ <anchor x="243" y="0" name="H"/>
+ <anchor x="572" y="-100" name="L"/>
+ <anchor x="1035" y="1000" name="R"/>
+ <anchor x="572" y="1635" name="U"/>
+ <outline>
+ <contour>
+ <point x="330" y="0" type="line"/>
+ <point x="330" y="1600" type="line"/>
+ <point x="130" y="1600" type="line"/>
+ <point x="145" y="1514"/>
+ <point x="145" y="1345"/>
+ <point x="145" y="1130" type="curve" smooth="yes"/>
+ <point x="145" y="934"/>
+ <point x="145" y="0"/>
+ <point x="145" y="0" type="curve"/>
+ </contour>
+ <contour>
+ <point x="735" y="1020" type="line"/>
+ <point x="280" y="550" type="line"/>
+ <point x="436" y="524" type="line"/>
+ <point x="985" y="1020" type="line"/>
+ </contour>
+ <contour>
+ <point x="305" y="550" type="line"/>
+ <point x="770" y="0" type="line"/>
+ <point x="1015" y="0" type="line"/>
+ <point x="410" y="660" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mL_.glif b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mL_.glif
new file mode 100644
index 0000000..4378793
--- /dev/null
+++ b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mL_.glif
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmL" format="2">
+ <advance width="565"/>
+ <unicode hex="006C"/>
+ <guideline x="500" y="874" angle="340"/>
+ <anchor x="290" y="0" name="H"/>
+ <anchor x="290" y="-100" name="L"/>
+ <anchor x="550" y="1000" name="R"/>
+ <anchor x="282" y="1635" name="U"/>
+ <outline>
+ <contour>
+ <point x="375" y="1600" type="line"/>
+ <point x="170" y="1600" type="line"/>
+ <point x="183" y="1485"/>
+ <point x="190" y="1324"/>
+ <point x="190" y="1130" type="curve"/>
+ <point x="190" y="0" type="line"/>
+ <point x="395" y="0" type="line"/>
+ <point x="382" y="109"/>
+ <point x="375" y="346"/>
+ <point x="375" y="475" type="curve" smooth="yes"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mM_.glif b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mM_.glif
new file mode 100644
index 0000000..4498bb1
--- /dev/null
+++ b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mM_.glif
@@ -0,0 +1,52 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmM" format="2">
+ <advance width="1685"/>
+ <unicode hex="006D"/>
+ <anchor x="1450" y="0" name="H"/>
+ <anchor x="865" y="-100" name="L"/>
+ <anchor x="865" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="945" y="660" type="line"/>
+ <point x="1003" y="785"/>
+ <point x="1102" y="865"/>
+ <point x="1200" y="865" type="curve" smooth="yes"/>
+ <point x="1312" y="865"/>
+ <point x="1345" y="808"/>
+ <point x="1345" y="550" type="curve" smooth="yes"/>
+ <point x="1345" y="0" type="line"/>
+ <point x="1530" y="0" type="line"/>
+ <point x="1530" y="660" type="line" smooth="yes"/>
+ <point x="1530" y="907"/>
+ <point x="1463" y="1040"/>
+ <point x="1260" y="1040" type="curve" smooth="yes"/>
+ <point x="1155" y="1040"/>
+ <point x="1046" y="1007"/>
+ <point x="921" y="872" type="curve"/>
+ <point x="888" y="960"/>
+ <point x="806" y="1040"/>
+ <point x="675" y="1040" type="curve" smooth="yes"/>
+ <point x="560" y="1040"/>
+ <point x="459" y="1006"/>
+ <point x="337" y="865" type="curve"/>
+ <point x="330" y="913"/>
+ <point x="320" y="978"/>
+ <point x="305" y="1020" type="curve"/>
+ <point x="125" y="1020" type="line"/>
+ <point x="146" y="951"/>
+ <point x="175" y="811"/>
+ <point x="175" y="615" type="curve" smooth="yes"/>
+ <point x="175" y="0" type="line"/>
+ <point x="360" y="0" type="line"/>
+ <point x="360" y="660" type="line"/>
+ <point x="413" y="780"/>
+ <point x="517" y="865"/>
+ <point x="615" y="865" type="curve" smooth="yes"/>
+ <point x="727" y="865"/>
+ <point x="760" y="818"/>
+ <point x="760" y="570" type="curve" smooth="yes"/>
+ <point x="760" y="0" type="line"/>
+ <point x="945" y="0" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mN_.glif b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mN_.glif
new file mode 100644
index 0000000..5534dd8
--- /dev/null
+++ b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mN_.glif
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmN" format="2">
+ <advance width="1185"/>
+ <unicode hex="006E"/>
+ <anchor x="970" y="0" name="H"/>
+ <anchor x="600" y="-100" name="L"/>
+ <anchor x="600" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="1050" y="0" type="line"/>
+ <point x="1050" y="0"/>
+ <point x="1050" y="459"/>
+ <point x="1050" y="625" type="curve" smooth="yes"/>
+ <point x="1050" y="900"/>
+ <point x="933" y="1040"/>
+ <point x="720" y="1040" type="curve" smooth="yes"/>
+ <point x="579" y="1040"/>
+ <point x="452" y="977"/>
+ <point x="325" y="825" type="curve"/>
+ <point x="318" y="873"/>
+ <point x="300" y="978"/>
+ <point x="285" y="1020" type="curve"/>
+ <point x="105" y="1020" type="line"/>
+ <point x="127" y="951"/>
+ <point x="155" y="811"/>
+ <point x="155" y="615" type="curve" smooth="yes"/>
+ <point x="155" y="420"/>
+ <point x="155" y="0"/>
+ <point x="155" y="0" type="curve"/>
+ <point x="340" y="0" type="line"/>
+ <point x="340" y="580" type="line"/>
+ <point x="384" y="716"/>
+ <point x="521" y="865"/>
+ <point x="665" y="865" type="curve" smooth="yes"/>
+ <point x="800" y="865"/>
+ <point x="865" y="800"/>
+ <point x="865" y="550" type="curve" smooth="yes"/>
+ <point x="865" y="413"/>
+ <point x="865" y="0"/>
+ <point x="865" y="0" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mO_.glif b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mO_.glif
new file mode 100644
index 0000000..ee9b6c6
--- /dev/null
+++ b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mO_.glif
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmO" format="2">
+ <advance width="1140"/>
+ <unicode hex="006F"/>
+ <anchor x="570" y="0" name="H"/>
+ <anchor x="570" y="-100" name="L"/>
+ <anchor x="835" y="0" name="O"/>
+ <anchor x="1140" y="1000" name="R"/>
+ <anchor x="570" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="95" y="505" type="curve" smooth="yes"/>
+ <point x="95" y="161"/>
+ <point x="286" y="-25"/>
+ <point x="560" y="-25" type="curve" smooth="yes"/>
+ <point x="823" y="-25"/>
+ <point x="1045" y="161"/>
+ <point x="1045" y="505" type="curve" smooth="yes"/>
+ <point x="1045" y="849"/>
+ <point x="855" y="1040"/>
+ <point x="580" y="1040" type="curve" smooth="yes"/>
+ <point x="317" y="1040"/>
+ <point x="95" y="849"/>
+ </contour>
+ <contour>
+ <point x="280" y="505" type="curve" smooth="yes"/>
+ <point x="280" y="739"/>
+ <point x="408" y="880"/>
+ <point x="570" y="880" type="curve" smooth="yes"/>
+ <point x="742" y="880"/>
+ <point x="860" y="739"/>
+ <point x="860" y="505" type="curve" smooth="yes"/>
+ <point x="860" y="272"/>
+ <point x="731" y="135"/>
+ <point x="570" y="135" type="curve" smooth="yes"/>
+ <point x="398" y="135"/>
+ <point x="280" y="272"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mP_.glif b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mP_.glif
new file mode 100644
index 0000000..e960bc9
--- /dev/null
+++ b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mP_.glif
@@ -0,0 +1,56 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmP" format="2">
+ <advance width="1170"/>
+ <unicode hex="0070"/>
+ <guideline x="214" y="-490" angle="0"/>
+ <anchor x="265" y="-435" name="H"/>
+ <anchor x="590" y="-500" name="L"/>
+ <anchor x="1170" y="1000" name="R"/>
+ <anchor x="590" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="105" y="1020" type="line"/>
+ <point x="150" y="907"/>
+ <point x="155" y="734"/>
+ <point x="155" y="485" type="curve" smooth="yes"/>
+ <point x="155" y="291"/>
+ <point x="155" y="-490"/>
+ <point x="155" y="-490" type="curve"/>
+ <point x="365" y="-490" type="line"/>
+ <point x="348" y="-405"/>
+ <point x="340" y="-310"/>
+ <point x="340" y="-150" type="curve"/>
+ <point x="340" y="85" type="line"/>
+ <point x="435" y="18"/>
+ <point x="513" y="-25"/>
+ <point x="620" y="-25" type="curve" smooth="yes"/>
+ <point x="871" y="-25"/>
+ <point x="1075" y="193"/>
+ <point x="1075" y="535" type="curve" smooth="yes"/>
+ <point x="1075" y="828"/>
+ <point x="923" y="1040"/>
+ <point x="695" y="1040" type="curve" smooth="yes"/>
+ <point x="547" y="1040"/>
+ <point x="419" y="954"/>
+ <point x="325" y="830" type="curve"/>
+ <point x="316" y="922"/>
+ <point x="300" y="986"/>
+ <point x="285" y="1020" type="curve"/>
+ </contour>
+ <contour>
+ <point x="340" y="575" type="line"/>
+ <point x="414" y="768"/>
+ <point x="545" y="870"/>
+ <point x="660" y="870" type="curve" smooth="yes"/>
+ <point x="804" y="870"/>
+ <point x="890" y="727"/>
+ <point x="890" y="505" type="curve" smooth="yes"/>
+ <point x="890" y="279"/>
+ <point x="761" y="140"/>
+ <point x="620" y="140" type="curve" smooth="yes"/>
+ <point x="528" y="140"/>
+ <point x="477" y="164"/>
+ <point x="340" y="260" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mQ_.glif b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mQ_.glif
new file mode 100644
index 0000000..1da1d6a
--- /dev/null
+++ b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mQ_.glif
@@ -0,0 +1,47 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmQ" format="2">
+ <advance width="1130"/>
+ <unicode hex="0071"/>
+ <anchor x="555" y="-500" name="L"/>
+ <anchor x="1130" y="1000" name="R"/>
+ <anchor x="555" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="795" y="-490" type="line"/>
+ <point x="1005" y="-490" type="line"/>
+ <point x="988" y="-405"/>
+ <point x="980" y="-310"/>
+ <point x="980" y="-150" type="curve" smooth="yes"/>
+ <point x="980" y="-26"/>
+ <point x="980" y="965"/>
+ <point x="980" y="965" type="curve"/>
+ <point x="872" y="1001"/>
+ <point x="746" y="1040"/>
+ <point x="625" y="1040" type="curve" smooth="yes"/>
+ <point x="260" y="1040"/>
+ <point x="105" y="742"/>
+ <point x="105" y="435" type="curve" smooth="yes"/>
+ <point x="105" y="117"/>
+ <point x="321" y="-25"/>
+ <point x="505" y="-25" type="curve" smooth="yes"/>
+ <point x="598" y="-25"/>
+ <point x="691" y="19"/>
+ <point x="795" y="140" type="curve"/>
+ </contour>
+ <contour>
+ <point x="795" y="365" type="line"/>
+ <point x="713" y="219"/>
+ <point x="612" y="145"/>
+ <point x="520" y="145" type="curve" smooth="yes"/>
+ <point x="412" y="145"/>
+ <point x="290" y="237"/>
+ <point x="290" y="485" type="curve" smooth="yes"/>
+ <point x="290" y="674"/>
+ <point x="376" y="870"/>
+ <point x="595" y="870" type="curve" smooth="yes"/>
+ <point x="656" y="870"/>
+ <point x="735" y="853"/>
+ <point x="795" y="830" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mR_.glif b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mR_.glif
new file mode 100644
index 0000000..0f090a4
--- /dev/null
+++ b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mR_.glif
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmR" format="2">
+ <advance width="890"/>
+ <unicode hex="0072"/>
+ <guideline x="214" y="500" angle="0"/>
+ <anchor x="270" y="0" name="H"/>
+ <anchor x="255" y="-100" name="L"/>
+ <anchor x="455" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="340" y="0" type="line"/>
+ <point x="340" y="580" type="line"/>
+ <point x="384" y="716"/>
+ <point x="521" y="860"/>
+ <point x="605" y="860" type="curve" smooth="yes"/>
+ <point x="684" y="860"/>
+ <point x="720" y="770"/>
+ <point x="720" y="670" type="curve"/>
+ <point x="880" y="705" type="line"/>
+ <point x="880" y="880"/>
+ <point x="817" y="1040"/>
+ <point x="650" y="1040" type="curve" smooth="yes"/>
+ <point x="559" y="1040"/>
+ <point x="422" y="964"/>
+ <point x="325" y="825" type="curve"/>
+ <point x="318" y="873"/>
+ <point x="300" y="978"/>
+ <point x="285" y="1020" type="curve"/>
+ <point x="105" y="1020" type="line"/>
+ <point x="127" y="951"/>
+ <point x="155" y="811"/>
+ <point x="155" y="615" type="curve" smooth="yes"/>
+ <point x="155" y="0" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mS_.glif b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mS_.glif
new file mode 100644
index 0000000..ea1e7ba
--- /dev/null
+++ b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mS_.glif
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmS" format="2">
+ <advance width="965"/>
+ <unicode hex="0073"/>
+ <anchor x="495" y="0" name="H"/>
+ <anchor x="495" y="-100" name="L"/>
+ <anchor x="495" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="835" y="960" type="line"/>
+ <point x="766" y="998"/>
+ <point x="660" y="1040"/>
+ <point x="515" y="1040" type="curve" smooth="yes"/>
+ <point x="211" y="1040"/>
+ <point x="130" y="832"/>
+ <point x="130" y="740" type="curve" smooth="yes"/>
+ <point x="130" y="616"/>
+ <point x="182" y="514"/>
+ <point x="425" y="455" type="curve" smooth="yes"/>
+ <point x="649" y="400"/>
+ <point x="700" y="345"/>
+ <point x="700" y="270" type="curve" smooth="yes"/>
+ <point x="700" y="201"/>
+ <point x="617" y="135"/>
+ <point x="500" y="135" type="curve" smooth="yes"/>
+ <point x="394" y="135"/>
+ <point x="250" y="189"/>
+ <point x="160" y="270" type="curve"/>
+ <point x="110" y="90" type="line"/>
+ <point x="189" y="28"/>
+ <point x="333" y="-25"/>
+ <point x="495" y="-25" type="curve" smooth="yes"/>
+ <point x="710" y="-25"/>
+ <point x="880" y="115"/>
+ <point x="880" y="295" type="curve" smooth="yes"/>
+ <point x="880" y="481"/>
+ <point x="731" y="559"/>
+ <point x="550" y="600" type="curve" smooth="yes"/>
+ <point x="340" y="648"/>
+ <point x="310" y="680"/>
+ <point x="310" y="750" type="curve" smooth="yes"/>
+ <point x="310" y="810"/>
+ <point x="358" y="880"/>
+ <point x="505" y="880" type="curve" smooth="yes"/>
+ <point x="629" y="880"/>
+ <point x="733" y="824"/>
+ <point x="800" y="785" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mT_.glif b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mT_.glif
new file mode 100644
index 0000000..45d6b50
--- /dev/null
+++ b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mT_.glif
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmT" format="2">
+ <advance width="835"/>
+ <unicode hex="0074"/>
+ <anchor x="475" y="0" name="H"/>
+ <anchor x="475" y="-100" name="L"/>
+ <anchor x="835" y="1000" name="R"/>
+ <anchor x="325" y="1360" name="U"/>
+ <outline>
+ <contour>
+ <point x="760" y="215" type="line"/>
+ <point x="672" y="166"/>
+ <point x="600" y="140"/>
+ <point x="543" y="140" type="curve" smooth="yes"/>
+ <point x="453" y="140"/>
+ <point x="415" y="184"/>
+ <point x="415" y="390" type="curve" smooth="yes"/>
+ <point x="415" y="528"/>
+ <point x="415" y="1320"/>
+ <point x="415" y="1320" type="curve"/>
+ <point x="230" y="1320" type="line"/>
+ <point x="230" y="1320"/>
+ <point x="230" y="435"/>
+ <point x="230" y="270" type="curve" smooth="yes"/>
+ <point x="230" y="39"/>
+ <point x="356" y="-25"/>
+ <point x="512" y="-25" type="curve" smooth="yes"/>
+ <point x="582" y="-25"/>
+ <point x="668" y="-4"/>
+ <point x="760" y="55" type="curve"/>
+ </contour>
+ <contour>
+ <point x="30" y="850" type="line"/>
+ <point x="740" y="850" type="line"/>
+ <point x="740" y="995" type="line"/>
+ <point x="30" y="995" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mU_.glif b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mU_.glif
new file mode 100644
index 0000000..39609ad
--- /dev/null
+++ b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mU_.glif
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmU" format="2">
+ <advance width="1185"/>
+ <unicode hex="0075"/>
+ <anchor x="589" y="0" name="H"/>
+ <anchor x="589" y="-100" name="L"/>
+ <anchor x="1192" y="0" name="O"/>
+ <anchor x="1185" y="1000" name="R"/>
+ <anchor x="589" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="1090" y="0" type="line"/>
+ <point x="1048" y="112"/>
+ <point x="1025" y="256"/>
+ <point x="1025" y="450" type="curve" smooth="yes"/>
+ <point x="1025" y="646"/>
+ <point x="1025" y="1020"/>
+ <point x="1025" y="1020" type="curve"/>
+ <point x="820" y="1020" type="line"/>
+ <point x="838" y="898"/>
+ <point x="840" y="832"/>
+ <point x="840" y="700" type="curve" smooth="yes"/>
+ <point x="840" y="420" type="line"/>
+ <point x="787" y="298"/>
+ <point x="628" y="140"/>
+ <point x="510" y="140" type="curve" smooth="yes"/>
+ <point x="383" y="140"/>
+ <point x="340" y="238"/>
+ <point x="340" y="465" type="curve" smooth="yes"/>
+ <point x="340" y="603"/>
+ <point x="340" y="1020"/>
+ <point x="340" y="1020" type="curve"/>
+ <point x="135" y="1020" type="line"/>
+ <point x="153" y="900"/>
+ <point x="155" y="827"/>
+ <point x="155" y="700" type="curve" smooth="yes"/>
+ <point x="155" y="681"/>
+ <point x="155" y="424"/>
+ <point x="155" y="405" type="curve" smooth="yes"/>
+ <point x="155" y="120"/>
+ <point x="262" y="-25"/>
+ <point x="475" y="-25" type="curve" smooth="yes"/>
+ <point x="615" y="-25"/>
+ <point x="744" y="53"/>
+ <point x="865" y="200" type="curve"/>
+ <point x="875" y="125"/>
+ <point x="901" y="46"/>
+ <point x="920" y="0" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mV_.glif b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mV_.glif
new file mode 100644
index 0000000..3097f4b
--- /dev/null
+++ b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mV_.glif
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmV" format="2">
+ <advance width="1070"/>
+ <unicode hex="0076"/>
+ <anchor x="549" y="0" name="H"/>
+ <anchor x="535" y="-100" name="L"/>
+ <anchor x="725" y="0" name="O"/>
+ <anchor x="535" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="840" y="1020" type="line"/>
+ <point x="535" y="200" type="line"/>
+ <point x="230" y="1020" type="line"/>
+ <point x="20" y="1020" type="line"/>
+ <point x="75" y="905"/>
+ <point x="143" y="746"/>
+ <point x="175" y="665" type="curve" smooth="yes"/>
+ <point x="237" y="510"/>
+ <point x="440" y="0"/>
+ <point x="440" y="0" type="curve"/>
+ <point x="630" y="0" type="line"/>
+ <point x="630" y="0"/>
+ <point x="842" y="536"/>
+ <point x="895" y="665" type="curve" smooth="yes"/>
+ <point x="928" y="744"/>
+ <point x="993" y="905"/>
+ <point x="1050" y="1020" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mW_.glif b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mW_.glif
new file mode 100644
index 0000000..3557415
--- /dev/null
+++ b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mW_.glif
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmW" format="2">
+ <advance width="1550"/>
+ <unicode hex="0077"/>
+ <anchor x="775" y="-100" name="L"/>
+ <anchor x="775" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="700" y="1020" type="line"/>
+ <point x="440" y="215" type="line"/>
+ <point x="230" y="1020" type="line"/>
+ <point x="45" y="1020" type="line"/>
+ <point x="92" y="867"/>
+ <point x="120" y="771"/>
+ <point x="150" y="665" type="curve" smooth="yes"/>
+ <point x="335" y="0" type="line"/>
+ <point x="525" y="0" type="line"/>
+ <point x="775" y="785" type="line"/>
+ <point x="1025" y="0" type="line"/>
+ <point x="1215" y="0" type="line"/>
+ <point x="1400" y="665" type="line" smooth="yes"/>
+ <point x="1434" y="785"/>
+ <point x="1458" y="868"/>
+ <point x="1505" y="1020" type="curve"/>
+ <point x="1320" y="1020" type="line"/>
+ <point x="1110" y="215" type="line"/>
+ <point x="850" y="1020" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mX_.glif b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mX_.glif
new file mode 100644
index 0000000..883cba4
--- /dev/null
+++ b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mX_.glif
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmX" format="2">
+ <advance width="1085"/>
+ <unicode hex="0078"/>
+ <anchor x="900" y="0" name="H"/>
+ <anchor x="542" y="-100" name="L"/>
+ <anchor x="542" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="805" y="0" type="line"/>
+ <point x="1035" y="0" type="line"/>
+ <point x="927" y="142"/>
+ <point x="902" y="170"/>
+ <point x="830" y="270" type="curve" smooth="yes"/>
+ <point x="290" y="1020" type="line"/>
+ <point x="60" y="1020" type="line"/>
+ <point x="168" y="887"/>
+ <point x="203" y="843"/>
+ <point x="270" y="750" type="curve"/>
+ </contour>
+ <contour>
+ <point x="489" y="616" type="line"/>
+ <point x="250" y="270" type="line" smooth="yes"/>
+ <point x="189" y="182"/>
+ <point x="160" y="143"/>
+ <point x="50" y="0" type="curve"/>
+ <point x="275" y="0" type="line"/>
+ <point x="556" y="404" type="line"/>
+ </contour>
+ <contour>
+ <point x="585" y="405" type="line"/>
+ <point x="820" y="750" type="line" smooth="yes"/>
+ <point x="883" y="842"/>
+ <point x="917" y="886"/>
+ <point x="1020" y="1020" type="curve"/>
+ <point x="795" y="1020" type="line"/>
+ <point x="520" y="615" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mY_.glif b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mY_.glif
new file mode 100644
index 0000000..cbe0f68
--- /dev/null
+++ b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/L_tnS_mY_.glif
@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmY" format="2">
+ <advance width="1060"/>
+ <unicode hex="0079"/>
+ <anchor x="795" y="-100" name="L"/>
+ <anchor x="1120" y="1000" name="R"/>
+ <anchor x="535" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="610" y="60" type="line"/>
+ <point x="230" y="1020" type="line"/>
+ <point x="30" y="1020" type="line"/>
+ <point x="107" y="864"/>
+ <point x="153" y="756"/>
+ <point x="190" y="665" type="curve" smooth="yes"/>
+ <point x="525" y="-165" type="line"/>
+ </contour>
+ <contour>
+ <point x="895" y="665" type="line"/>
+ <point x="928" y="758"/>
+ <point x="971" y="865"/>
+ <point x="1040" y="1020" type="curve"/>
+ <point x="840" y="1020" type="line"/>
+ <point x="840" y="1020"/>
+ <point x="564" y="230"/>
+ <point x="500" y="55" type="curve" smooth="yes"/>
+ <point x="391" y="-248"/>
+ <point x="315" y="-300"/>
+ <point x="225" y="-300" type="curve" smooth="yes"/>
+ <point x="159" y="-300"/>
+ <point x="82" y="-260"/>
+ <point x="40" y="-225" type="curve"/>
+ <point x="-20" y="-385" type="line"/>
+ <point x="53" y="-439"/>
+ <point x="134" y="-470"/>
+ <point x="225" y="-470" type="curve" smooth="yes"/>
+ <point x="395" y="-470"/>
+ <point x="516" y="-383"/>
+ <point x="655" y="0" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/N_onB_reakingH_yphen.glif b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/N_onB_reakingH_yphen.glif
new file mode 100644
index 0000000..14aff81
--- /dev/null
+++ b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/N_onB_reakingH_yphen.glif
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="NonBreakingHyphen" format="2">
+ <advance width="860"/>
+ <unicode hex="2011"/>
+ <anchor x="430" y="1100" name="U"/>
+ <outline>
+ <component base="HyphenMinus"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/N_umS_gn.glif b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/N_umS_gn.glif
new file mode 100644
index 0000000..f4625db
--- /dev/null
+++ b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/N_umS_gn.glif
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="NumSgn" format="2">
+ <advance width="1200"/>
+ <unicode hex="0023"/>
+ <outline>
+ <contour>
+ <point x="487" y="1460" type="line"/>
+ <point x="127" y="200" type="line"/>
+ <point x="277" y="200" type="line"/>
+ <point x="637" y="1460" type="line"/>
+ </contour>
+ <contour>
+ <point x="25" y="575" type="line"/>
+ <point x="1116" y="575" type="line"/>
+ <point x="1116" y="725" type="line"/>
+ <point x="25" y="725" type="line"/>
+ </contour>
+ <contour>
+ <point x="84" y="960" type="line"/>
+ <point x="1175" y="960" type="line"/>
+ <point x="1175" y="1110" type="line"/>
+ <point x="84" y="1110" type="line"/>
+ </contour>
+ <contour>
+ <point x="912" y="1460" type="line"/>
+ <point x="552" y="200" type="line"/>
+ <point x="702" y="200" type="line"/>
+ <point x="1062" y="1460" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/P_ercentS_gn.glif b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/P_ercentS_gn.glif
new file mode 100644
index 0000000..e81f237
--- /dev/null
+++ b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/P_ercentS_gn.glif
@@ -0,0 +1,69 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="PercentSgn" format="2">
+ <advance width="1526"/>
+ <unicode hex="0025"/>
+ <outline>
+ <contour>
+ <point x="1261" y="366" type="curve" smooth="yes"/>
+ <point x="1261" y="182"/>
+ <point x="1216" y="115"/>
+ <point x="1130" y="115" type="curve" smooth="yes"/>
+ <point x="1041" y="115"/>
+ <point x="1001" y="181"/>
+ <point x="1001" y="381" type="curve" smooth="yes"/>
+ <point x="1001" y="565"/>
+ <point x="1043" y="630"/>
+ <point x="1130" y="630" type="curve" smooth="yes"/>
+ <point x="1221" y="630"/>
+ <point x="1261" y="566"/>
+ </contour>
+ <contour>
+ <point x="1426" y="379" type="curve" smooth="yes"/>
+ <point x="1426" y="652"/>
+ <point x="1310" y="770"/>
+ <point x="1135" y="770" type="curve" smooth="yes"/>
+ <point x="961" y="770"/>
+ <point x="836" y="650"/>
+ <point x="836" y="368" type="curve" smooth="yes"/>
+ <point x="836" y="86"/>
+ <point x="951" y="-25"/>
+ <point x="1126" y="-25" type="curve" smooth="yes"/>
+ <point x="1301" y="-25"/>
+ <point x="1426" y="84"/>
+ </contour>
+ <contour>
+ <point x="1073" y="1480" type="line"/>
+ <point x="291" y="-25" type="line"/>
+ <point x="459" y="-25" type="line"/>
+ <point x="1239" y="1480" type="line"/>
+ </contour>
+ <contour>
+ <point x="525" y="1076" type="curve" smooth="yes"/>
+ <point x="525" y="892"/>
+ <point x="480" y="825"/>
+ <point x="394" y="825" type="curve" smooth="yes"/>
+ <point x="305" y="825"/>
+ <point x="265" y="891"/>
+ <point x="265" y="1091" type="curve" smooth="yes"/>
+ <point x="265" y="1275"/>
+ <point x="307" y="1340"/>
+ <point x="394" y="1340" type="curve" smooth="yes"/>
+ <point x="485" y="1340"/>
+ <point x="525" y="1276"/>
+ </contour>
+ <contour>
+ <point x="690" y="1089" type="curve" smooth="yes"/>
+ <point x="690" y="1362"/>
+ <point x="574" y="1480"/>
+ <point x="399" y="1480" type="curve" smooth="yes"/>
+ <point x="225" y="1480"/>
+ <point x="100" y="1360"/>
+ <point x="100" y="1078" type="curve" smooth="yes"/>
+ <point x="100" y="796"/>
+ <point x="215" y="685"/>
+ <point x="390" y="685" type="curve" smooth="yes"/>
+ <point x="565" y="685"/>
+ <point x="690" y="794"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/P_lusS_gn.glif b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/P_lusS_gn.glif
new file mode 100644
index 0000000..de1f259
--- /dev/null
+++ b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/P_lusS_gn.glif
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="PlusSgn" format="2">
+ <advance width="1200"/>
+ <unicode hex="002B"/>
+ <outline>
+ <contour>
+ <point x="525" y="1180" type="line"/>
+ <point x="525" y="285" type="line"/>
+ <point x="675" y="285" type="line"/>
+ <point x="675" y="1180" type="line"/>
+ </contour>
+ <contour>
+ <point x="155" y="660" type="line"/>
+ <point x="1045" y="660" type="line"/>
+ <point x="1045" y="810" type="line"/>
+ <point x="155" y="810" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/Q_stnM_rk.glif b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/Q_stnM_rk.glif
new file mode 100644
index 0000000..5526aec
--- /dev/null
+++ b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/Q_stnM_rk.glif
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="QstnMrk" format="2">
+ <advance width="1050"/>
+ <unicode hex="003F"/>
+ <outline>
+ <contour>
+ <point x="460" y="1540" type="curve" smooth="yes"/>
+ <point x="335" y="1540"/>
+ <point x="206" y="1493"/>
+ <point x="140" y="1430" type="curve"/>
+ <point x="185" y="1251" type="line"/>
+ <point x="261" y="1330"/>
+ <point x="352" y="1365"/>
+ <point x="432" y="1365" type="curve" smooth="yes"/>
+ <point x="579" y="1365"/>
+ <point x="625" y="1289"/>
+ <point x="625" y="1230" type="curve" smooth="yes"/>
+ <point x="625" y="1159"/>
+ <point x="572" y="1092"/>
+ <point x="485" y="980" type="curve" smooth="yes"/>
+ <point x="397" y="867"/>
+ <point x="355" y="730"/>
+ <point x="355" y="440" type="curve"/>
+ <point x="540" y="440" type="line"/>
+ <point x="540" y="721"/>
+ <point x="561" y="806"/>
+ <point x="665" y="927" type="curve" smooth="yes"/>
+ <point x="753" y="1028"/>
+ <point x="830" y="1117"/>
+ <point x="830" y="1240" type="curve" smooth="yes"/>
+ <point x="830" y="1422"/>
+ <point x="697" y="1540"/>
+ </contour>
+ <contour>
+ <point x="315" y="110" type="curve" smooth="yes"/>
+ <point x="315" y="36"/>
+ <point x="376" y="-25"/>
+ <point x="450" y="-25" type="curve" smooth="yes"/>
+ <point x="524" y="-25"/>
+ <point x="585" y="36"/>
+ <point x="585" y="110" type="curve" smooth="yes"/>
+ <point x="585" y="184"/>
+ <point x="524" y="245"/>
+ <point x="450" y="245" type="curve" smooth="yes"/>
+ <point x="376" y="245"/>
+ <point x="315" y="184"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/Q_uotM_rk.glif b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/Q_uotM_rk.glif
new file mode 100644
index 0000000..c9f06c6
--- /dev/null
+++ b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/Q_uotM_rk.glif
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="QuotMrk" format="2">
+ <advance width="1025"/>
+ <unicode hex="0022"/>
+ <outline>
+ <contour>
+ <point x="405" y="1045" type="line"/>
+ <point x="410" y="1186"/>
+ <point x="416" y="1339"/>
+ <point x="445" y="1585" type="curve"/>
+ <point x="240" y="1585" type="line"/>
+ <point x="271" y="1339"/>
+ <point x="276" y="1186"/>
+ <point x="280" y="1045" type="curve"/>
+ </contour>
+ <contour>
+ <point x="745" y="1045" type="line"/>
+ <point x="750" y="1186"/>
+ <point x="756" y="1339"/>
+ <point x="785" y="1585" type="curve"/>
+ <point x="580" y="1585" type="line"/>
+ <point x="611" y="1339"/>
+ <point x="616" y="1186"/>
+ <point x="620" y="1045" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/R_everseS_olidus.glif b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/R_everseS_olidus.glif
new file mode 100644
index 0000000..d145f26
--- /dev/null
+++ b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/R_everseS_olidus.glif
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="ReverseSolidus" format="2">
+ <advance width="1000"/>
+ <unicode hex="005C"/>
+ <outline>
+ <contour>
+ <point x="990" y="-245" type="line"/>
+ <point x="160" y="1600" type="line"/>
+ <point x="10" y="1600" type="line"/>
+ <point x="840" y="-245" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/R_tC_urlyB_rac.glif b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/R_tC_urlyB_rac.glif
new file mode 100644
index 0000000..288a75a
--- /dev/null
+++ b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/R_tC_urlyB_rac.glif
@@ -0,0 +1,47 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="RtCurlyBrac" format="2">
+ <advance width="1000"/>
+ <unicode hex="007D"/>
+ <outline>
+ <contour>
+ <point x="790" y="615" type="curve" smooth="yes"/>
+ <point x="790" y="647"/>
+ <point x="617" y="744"/>
+ <point x="590" y="780" type="curve" smooth="yes"/>
+ <point x="566" y="812"/>
+ <point x="576" y="1435"/>
+ <point x="505" y="1515" type="curve" smooth="yes"/>
+ <point x="465" y="1560"/>
+ <point x="304" y="1613"/>
+ <point x="200" y="1640" type="curve"/>
+ <point x="160" y="1500" type="line"/>
+ <point x="227" y="1477"/>
+ <point x="350" y="1428"/>
+ <point x="370" y="1400" type="curve" smooth="yes"/>
+ <point x="403" y="1353"/>
+ <point x="390" y="783"/>
+ <point x="410" y="745" type="curve" smooth="yes"/>
+ <point x="429" y="709"/>
+ <point x="566" y="637"/>
+ <point x="570" y="615" type="curve"/>
+ <point x="566" y="593"/>
+ <point x="429" y="521"/>
+ <point x="410" y="485" type="curve" smooth="yes"/>
+ <point x="390" y="447"/>
+ <point x="403" y="-123"/>
+ <point x="370" y="-170" type="curve" smooth="yes"/>
+ <point x="350" y="-198"/>
+ <point x="227" y="-247"/>
+ <point x="160" y="-270" type="curve"/>
+ <point x="200" y="-410" type="line"/>
+ <point x="304" y="-383"/>
+ <point x="465" y="-330"/>
+ <point x="505" y="-285" type="curve" smooth="yes"/>
+ <point x="576" y="-205"/>
+ <point x="566" y="418"/>
+ <point x="590" y="450" type="curve" smooth="yes"/>
+ <point x="617" y="486"/>
+ <point x="790" y="583"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/R_tP_aren.glif b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/R_tP_aren.glif
new file mode 100644
index 0000000..3983f6b
--- /dev/null
+++ b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/R_tP_aren.glif
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="RtParen" format="2">
+ <advance width="795"/>
+ <unicode hex="0029"/>
+ <outline>
+ <contour>
+ <point x="680" y="625" type="curve" smooth="yes"/>
+ <point x="680" y="1062"/>
+ <point x="505" y="1444"/>
+ <point x="240" y="1640" type="curve"/>
+ <point x="165" y="1485" type="line"/>
+ <point x="390" y="1280"/>
+ <point x="490" y="962"/>
+ <point x="490" y="625" type="curve" smooth="yes"/>
+ <point x="490" y="278"/>
+ <point x="390" y="-8"/>
+ <point x="165" y="-265" type="curve"/>
+ <point x="260" y="-410" type="line"/>
+ <point x="535" y="-125"/>
+ <point x="680" y="218"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/R_tS_qrB_rac.glif b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/R_tS_qrB_rac.glif
new file mode 100644
index 0000000..702689b
--- /dev/null
+++ b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/R_tS_qrB_rac.glif
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="RtSqrBrac" format="2">
+ <advance width="790"/>
+ <unicode hex="005D"/>
+ <outline>
+ <contour>
+ <point x="590" y="-410" type="line"/>
+ <point x="590" y="1600" type="line"/>
+ <point x="150" y="1600" type="line"/>
+ <point x="150" y="1450" type="line"/>
+ <point x="405" y="1450" type="line"/>
+ <point x="405" y="-260" type="line"/>
+ <point x="150" y="-260" type="line"/>
+ <point x="150" y="-410" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/S_emicolon.glif b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/S_emicolon.glif
new file mode 100644
index 0000000..247bed0
--- /dev/null
+++ b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/S_emicolon.glif
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Semicolon" format="2">
+ <advance width="650"/>
+ <unicode hex="003B"/>
+ <outline>
+ <contour>
+ <point x="185" y="790" type="curve" smooth="yes"/>
+ <point x="185" y="716"/>
+ <point x="246" y="655"/>
+ <point x="320" y="655" type="curve" smooth="yes"/>
+ <point x="394" y="655"/>
+ <point x="455" y="716"/>
+ <point x="455" y="790" type="curve" smooth="yes"/>
+ <point x="455" y="864"/>
+ <point x="394" y="925"/>
+ <point x="320" y="925" type="curve" smooth="yes"/>
+ <point x="246" y="925"/>
+ <point x="185" y="864"/>
+ </contour>
+ <contour>
+ <point x="185" y="50" type="line"/>
+ <point x="325" y="50" type="line"/>
+ <point x="325" y="-51"/>
+ <point x="248" y="-172"/>
+ <point x="190" y="-230" type="curve"/>
+ <point x="290" y="-270" type="line"/>
+ <point x="407" y="-160"/>
+ <point x="465" y="-37"/>
+ <point x="465" y="85" type="curve" smooth="yes"/>
+ <point x="465" y="186"/>
+ <point x="400" y="250"/>
+ <point x="320" y="250" type="curve" smooth="yes"/>
+ <point x="263" y="250"/>
+ <point x="198" y="213"/>
+ <point x="185" y="150" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/S_olidus.glif b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/S_olidus.glif
new file mode 100644
index 0000000..3edff5d
--- /dev/null
+++ b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/S_olidus.glif
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Solidus" format="2">
+ <advance width="1000"/>
+ <unicode hex="002F"/>
+ <outline>
+ <contour>
+ <point x="840" y="1600" type="line"/>
+ <point x="10" y="-245" type="line"/>
+ <point x="160" y="-245" type="line"/>
+ <point x="990" y="1600" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/S_pace.glif b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/S_pace.glif
new file mode 100644
index 0000000..ef0bed7
--- /dev/null
+++ b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/S_pace.glif
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Space" format="2">
+ <advance width="550"/>
+ <unicode hex="0020"/>
+ <outline/>
+</glyph>
diff --git a/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/T_ilde.glif b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/T_ilde.glif
new file mode 100644
index 0000000..60ddaa7
--- /dev/null
+++ b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/T_ilde.glif
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Tilde" format="2">
+ <advance width="1115"/>
+ <unicode hex="007E"/>
+ <outline>
+ <contour>
+ <point x="125" y="375" type="line"/>
+ <point x="130" y="424"/>
+ <point x="162" y="465"/>
+ <point x="240" y="465" type="curve" smooth="yes"/>
+ <point x="415" y="465"/>
+ <point x="615" y="360"/>
+ <point x="845" y="360" type="curve" smooth="yes"/>
+ <point x="1004" y="360"/>
+ <point x="1080" y="482"/>
+ <point x="1080" y="610" type="curve"/>
+ <point x="975" y="610" type="line"/>
+ <point x="968" y="564"/>
+ <point x="938" y="510"/>
+ <point x="855" y="510" type="curve" smooth="yes"/>
+ <point x="619" y="510"/>
+ <point x="461" y="615"/>
+ <point x="240" y="615" type="curve" smooth="yes"/>
+ <point x="94" y="615"/>
+ <point x="20" y="497"/>
+ <point x="20" y="375" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/V_ertL_ine.glif b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/V_ertL_ine.glif
new file mode 100644
index 0000000..c73e040
--- /dev/null
+++ b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/V_ertL_ine.glif
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="VertLine" format="2">
+ <advance width="690"/>
+ <unicode hex="007C"/>
+ <outline>
+ <contour>
+ <point x="270" y="1600" type="line"/>
+ <point x="270" y="-390" type="line"/>
+ <point x="420" y="-390" type="line"/>
+ <point x="420" y="1600" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/_notdef.glif b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/_notdef.glif
new file mode 100644
index 0000000..a3e9354
--- /dev/null
+++ b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/_notdef.glif
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name=".notdef" format="2">
+ <advance width="1400"/>
+ <outline>
+ <contour>
+ <point x="100" y="0" type="line"/>
+ <point x="1300" y="0" type="line"/>
+ <point x="1300" y="1800" type="line"/>
+ <point x="100" y="1800" type="line"/>
+ </contour>
+ <contour>
+ <point x="150" y="1750" type="line"/>
+ <point x="1250" y="1750" type="line"/>
+ <point x="1250" y="50" type="line"/>
+ <point x="150" y="50" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/_null.glif b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/_null.glif
new file mode 100644
index 0000000..0b9caa6
--- /dev/null
+++ b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/_null.glif
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name=".null" format="2">
+ <outline/>
+</glyph>
diff --git a/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/contents.plist b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/contents.plist
new file mode 100644
index 0000000..c440ebe
--- /dev/null
+++ b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/contents.plist
@@ -0,0 +1,230 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>.notdef</key>
+ <string>_notdef.glif</string>
+ <key>.null</key>
+ <string>_null.glif</string>
+ <key>Ampersand</key>
+ <string>A_mpersand.glif</string>
+ <key>Asterisk</key>
+ <string>A_sterisk.glif</string>
+ <key>AtSgn</key>
+ <string>A_tS_gn.glif</string>
+ <key>CircumAccent</key>
+ <string>C_ircumA_ccent.glif</string>
+ <key>Colon</key>
+ <string>C_olon.glif</string>
+ <key>CombAcute</key>
+ <string>C_ombA_cute.glif</string>
+ <key>CombCircum</key>
+ <string>C_ombC_ircum.glif</string>
+ <key>CombDiaer</key>
+ <string>C_ombD_iaer.glif</string>
+ <key>CombGrave</key>
+ <string>C_ombG_rave.glif</string>
+ <key>CombRingAbv</key>
+ <string>C_ombR_ingA_bv.glif</string>
+ <key>CombTilde</key>
+ <string>C_ombT_ilde.glif</string>
+ <key>DigitEight</key>
+ <string>D_igitE_ight.glif</string>
+ <key>DigitFive</key>
+ <string>D_igitF_ive.glif</string>
+ <key>DigitFour</key>
+ <string>D_igitF_our.glif</string>
+ <key>DigitNine</key>
+ <string>D_igitN_ine.glif</string>
+ <key>DigitOne</key>
+ <string>D_igitO_ne.glif</string>
+ <key>DigitSeven</key>
+ <string>D_igitS_even.glif</string>
+ <key>DigitSix</key>
+ <string>D_igitS_ix.glif</string>
+ <key>DigitThree</key>
+ <string>D_igitT_hree.glif</string>
+ <key>DigitTwo</key>
+ <string>D_igitT_wo.glif</string>
+ <key>DigitZero</key>
+ <string>D_igitZ_ero.glif</string>
+ <key>DollarSgn</key>
+ <string>D_ollarS_gn.glif</string>
+ <key>DottedCirc</key>
+ <string>D_ottedC_irc.glif</string>
+ <key>EqSgn</key>
+ <string>E_qS_gn.glif</string>
+ <key>ExclamationMrk</key>
+ <string>E_xclamationM_rk.glif</string>
+ <key>FullStop</key>
+ <string>F_ullS_top.glif</string>
+ <key>GTSgn</key>
+ <string>G_T_S_gn.glif</string>
+ <key>GraveAccent</key>
+ <string>G_raveA_ccent.glif</string>
+ <key>Hyphen</key>
+ <string>H_yphen.glif</string>
+ <key>HyphenMinus</key>
+ <string>H_yphenM_inus.glif</string>
+ <key>Hyphen_Soft</key>
+ <string>H_yphen_S_oft.glif</string>
+ <key>LTSgn</key>
+ <string>L_T_S_gn.glif</string>
+ <key>LftCurlyBrac</key>
+ <string>L_ftC_urlyB_rac.glif</string>
+ <key>LftParen</key>
+ <string>L_ftP_aren.glif</string>
+ <key>LftSqrBrac</key>
+ <string>L_ftS_qrB_rac.glif</string>
+ <key>LowLine</key>
+ <string>L_owL_ine.glif</string>
+ <key>LtnCapA</key>
+ <string>L_tnC_apA_.glif</string>
+ <key>LtnCapA.alt</key>
+ <string>L_tnC_apA_.alt.glif</string>
+ <key>LtnCapADiaer</key>
+ <string>L_tnC_apA_D_iaer.glif</string>
+ <key>LtnCapB</key>
+ <string>L_tnC_apB_.glif</string>
+ <key>LtnCapC</key>
+ <string>L_tnC_apC_.glif</string>
+ <key>LtnCapD</key>
+ <string>L_tnC_apD_.glif</string>
+ <key>LtnCapE</key>
+ <string>L_tnC_apE_.glif</string>
+ <key>LtnCapF</key>
+ <string>L_tnC_apF_.glif</string>
+ <key>LtnCapG</key>
+ <string>L_tnC_apG_.glif</string>
+ <key>LtnCapH</key>
+ <string>L_tnC_apH_.glif</string>
+ <key>LtnCapI</key>
+ <string>L_tnC_apI_.glif</string>
+ <key>LtnCapJ</key>
+ <string>L_tnC_apJ_.glif</string>
+ <key>LtnCapK</key>
+ <string>L_tnC_apK_.glif</string>
+ <key>LtnCapL</key>
+ <string>L_tnC_apL_.glif</string>
+ <key>LtnCapM</key>
+ <string>L_tnC_apM_.glif</string>
+ <key>LtnCapN</key>
+ <string>L_tnC_apN_.glif</string>
+ <key>LtnCapO</key>
+ <string>L_tnC_apO_.glif</string>
+ <key>LtnCapP</key>
+ <string>L_tnC_apP_.glif</string>
+ <key>LtnCapQ</key>
+ <string>L_tnC_apQ_.glif</string>
+ <key>LtnCapR</key>
+ <string>L_tnC_apR_.glif</string>
+ <key>LtnCapS</key>
+ <string>L_tnC_apS_.glif</string>
+ <key>LtnCapT</key>
+ <string>L_tnC_apT_.glif</string>
+ <key>LtnCapU</key>
+ <string>L_tnC_apU_.glif</string>
+ <key>LtnCapV</key>
+ <string>L_tnC_apV_.glif</string>
+ <key>LtnCapW</key>
+ <string>L_tnC_apW_.glif</string>
+ <key>LtnCapX</key>
+ <string>L_tnC_apX_.glif</string>
+ <key>LtnCapY</key>
+ <string>L_tnC_apY_.glif</string>
+ <key>LtnSmA</key>
+ <string>L_tnS_mA_.glif</string>
+ <key>LtnSmAAcute</key>
+ <string>L_tnS_mA_A_cute.glif</string>
+ <key>LtnSmACircum</key>
+ <string>L_tnS_mA_C_ircum.glif</string>
+ <key>LtnSmADiaer</key>
+ <string>L_tnS_mA_D_iaer.glif</string>
+ <key>LtnSmAGrave</key>
+ <string>L_tnS_mA_G_rave.glif</string>
+ <key>LtnSmARingAbv</key>
+ <string>L_tnS_mA_R_ingA_bv.glif</string>
+ <key>LtnSmATilde</key>
+ <string>L_tnS_mA_T_ilde.glif</string>
+ <key>LtnSmB</key>
+ <string>L_tnS_mB_.glif</string>
+ <key>LtnSmC</key>
+ <string>L_tnS_mC_.glif</string>
+ <key>LtnSmD</key>
+ <string>L_tnS_mD_.glif</string>
+ <key>LtnSmE</key>
+ <string>L_tnS_mE_.glif</string>
+ <key>LtnSmF</key>
+ <string>L_tnS_mF_.glif</string>
+ <key>LtnSmG</key>
+ <string>L_tnS_mG_.glif</string>
+ <key>LtnSmH</key>
+ <string>L_tnS_mH_.glif</string>
+ <key>LtnSmI</key>
+ <string>L_tnS_mI_.glif</string>
+ <key>LtnSmJ</key>
+ <string>L_tnS_mJ_.glif</string>
+ <key>LtnSmK</key>
+ <string>L_tnS_mK_.glif</string>
+ <key>LtnSmL</key>
+ <string>L_tnS_mL_.glif</string>
+ <key>LtnSmM</key>
+ <string>L_tnS_mM_.glif</string>
+ <key>LtnSmN</key>
+ <string>L_tnS_mN_.glif</string>
+ <key>LtnSmO</key>
+ <string>L_tnS_mO_.glif</string>
+ <key>LtnSmP</key>
+ <string>L_tnS_mP_.glif</string>
+ <key>LtnSmQ</key>
+ <string>L_tnS_mQ_.glif</string>
+ <key>LtnSmR</key>
+ <string>L_tnS_mR_.glif</string>
+ <key>LtnSmS</key>
+ <string>L_tnS_mS_.glif</string>
+ <key>LtnSmT</key>
+ <string>L_tnS_mT_.glif</string>
+ <key>LtnSmU</key>
+ <string>L_tnS_mU_.glif</string>
+ <key>LtnSmV</key>
+ <string>L_tnS_mV_.glif</string>
+ <key>LtnSmW</key>
+ <string>L_tnS_mW_.glif</string>
+ <key>LtnSmX</key>
+ <string>L_tnS_mX_.glif</string>
+ <key>LtnSmY</key>
+ <string>L_tnS_mY_.glif</string>
+ <key>NonBreakingHyphen</key>
+ <string>N_onB_reakingH_yphen.glif</string>
+ <key>NumSgn</key>
+ <string>N_umS_gn.glif</string>
+ <key>PercentSgn</key>
+ <string>P_ercentS_gn.glif</string>
+ <key>PlusSgn</key>
+ <string>P_lusS_gn.glif</string>
+ <key>QstnMrk</key>
+ <string>Q_stnM_rk.glif</string>
+ <key>QuotMrk</key>
+ <string>Q_uotM_rk.glif</string>
+ <key>ReverseSolidus</key>
+ <string>R_everseS_olidus.glif</string>
+ <key>RtCurlyBrac</key>
+ <string>R_tC_urlyB_rac.glif</string>
+ <key>RtParen</key>
+ <string>R_tP_aren.glif</string>
+ <key>RtSqrBrac</key>
+ <string>R_tS_qrB_rac.glif</string>
+ <key>Semicolon</key>
+ <string>S_emicolon.glif</string>
+ <key>Solidus</key>
+ <string>S_olidus.glif</string>
+ <key>Space</key>
+ <string>S_pace.glif</string>
+ <key>Tilde</key>
+ <string>T_ilde.glif</string>
+ <key>VertLine</key>
+ <string>V_ertL_ine.glif</string>
+ <key>nonmarkingreturn</key>
+ <string>nonmarkingreturn.glif</string>
+</dict>
+</plist>
diff --git a/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/nonmarkingreturn.glif b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/nonmarkingreturn.glif
new file mode 100644
index 0000000..ee41448
--- /dev/null
+++ b/tests/reference/ufo/psfdeleteglyphs.ufo/glyphs/nonmarkingreturn.glif
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="nonmarkingreturn" format="2">
+ <advance width="1024"/>
+ <outline/>
+</glyph>
diff --git a/tests/reference/ufo/psfdeleteglyphs.ufo/layercontents.plist b/tests/reference/ufo/psfdeleteglyphs.ufo/layercontents.plist
new file mode 100644
index 0000000..42b7482
--- /dev/null
+++ b/tests/reference/ufo/psfdeleteglyphs.ufo/layercontents.plist
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<array>
+ <array>
+ <string>public.default</string>
+ <string>glyphs</string>
+ </array>
+</array>
+</plist>
diff --git a/tests/reference/ufo/psfdeleteglyphs.ufo/lib.plist b/tests/reference/ufo/psfdeleteglyphs.ufo/lib.plist
new file mode 100644
index 0000000..8b95204
--- /dev/null
+++ b/tests/reference/ufo/psfdeleteglyphs.ufo/lib.plist
@@ -0,0 +1,536 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>com.schriftgestaltung.Glyphs.fontUserData</key>
+ <dict/>
+ <key>com.schriftgestaltung.appVersion</key>
+ <string>1161</string>
+ <key>com.schriftgestaltung.customParameter.GSFont.DisplayStrings</key>
+ <string/>
+ <key>com.schriftgestaltung.customParameter.GSFont.disablesAutomaticAlignment</key>
+ <true/>
+ <key>com.schriftgestaltung.customParameter.GSFont.disablesLastChange</key>
+ <true/>
+ <key>com.schriftgestaltung.customParameter.GSFont.useNiceNames</key>
+ <integer>0</integer>
+ <key>com.schriftgestaltung.customParameter.GSFontMaster.customValue</key>
+ <integer>0</integer>
+ <key>com.schriftgestaltung.customParameter.GSFontMaster.customValue1</key>
+ <integer>0</integer>
+ <key>com.schriftgestaltung.customParameter.GSFontMaster.customValue2</key>
+ <integer>0</integer>
+ <key>com.schriftgestaltung.customParameter.GSFontMaster.customValue3</key>
+ <integer>0</integer>
+ <key>com.schriftgestaltung.customParameter.GSFontMaster.iconName</key>
+ <string/>
+ <key>com.schriftgestaltung.customParameter.GSFontMaster.weightValue</key>
+ <integer>400</integer>
+ <key>com.schriftgestaltung.customParameter.GSFontMaster.widthValue</key>
+ <integer>100</integer>
+ <key>com.schriftgestaltung.disablesAutomaticAlignment</key>
+ <true/>
+ <key>com.schriftgestaltung.disablesLastChange</key>
+ <true/>
+ <key>com.schriftgestaltung.fontMasterOrder</key>
+ <integer>0</integer>
+ <key>com.schriftgestaltung.glyphOrder</key>
+ <array>
+ <string>.notdef</string>
+ <string>.null</string>
+ <string>nonmarkingreturn</string>
+ <string>Space</string>
+ <string>ExclamationMrk</string>
+ <string>QuotMrk</string>
+ <string>NumSgn</string>
+ <string>DollarSgn</string>
+ <string>PercentSgn</string>
+ <string>Ampersand</string>
+ <string>Apos</string>
+ <string>LftParen</string>
+ <string>RtParen</string>
+ <string>Asterisk</string>
+ <string>PlusSgn</string>
+ <string>Comma</string>
+ <string>HyphenMinus</string>
+ <string>FullStop</string>
+ <string>Solidus</string>
+ <string>DigitZero</string>
+ <string>DigitOne</string>
+ <string>DigitTwo</string>
+ <string>DigitThree</string>
+ <string>DigitFour</string>
+ <string>DigitFive</string>
+ <string>DigitSix</string>
+ <string>DigitSeven</string>
+ <string>DigitEight</string>
+ <string>DigitNine</string>
+ <string>Colon</string>
+ <string>Semicolon</string>
+ <string>LTSgn</string>
+ <string>EqSgn</string>
+ <string>GTSgn</string>
+ <string>QstnMrk</string>
+ <string>AtSgn</string>
+ <string>LtnCapA</string>
+ <string>LtnCapA.alt</string>
+ <string>LtnCapB</string>
+ <string>LtnCapC</string>
+ <string>LtnCapD</string>
+ <string>LtnCapE</string>
+ <string>LtnCapF</string>
+ <string>LtnCapG</string>
+ <string>LtnCapH</string>
+ <string>LtnCapI</string>
+ <string>LtnCapJ</string>
+ <string>LtnCapK</string>
+ <string>LtnCapL</string>
+ <string>LtnCapM</string>
+ <string>LtnCapN</string>
+ <string>LtnCapO</string>
+ <string>LtnCapP</string>
+ <string>LtnCapQ</string>
+ <string>LtnCapR</string>
+ <string>LtnCapS</string>
+ <string>LtnCapT</string>
+ <string>LtnCapU</string>
+ <string>LtnCapV</string>
+ <string>LtnCapW</string>
+ <string>LtnCapX</string>
+ <string>LtnCapY</string>
+ <string>LftSqrBrac</string>
+ <string>ReverseSolidus</string>
+ <string>RtSqrBrac</string>
+ <string>CircumAccent</string>
+ <string>LowLine</string>
+ <string>GraveAccent</string>
+ <string>LtnSmA</string>
+ <string>LtnSmB</string>
+ <string>LtnSmC</string>
+ <string>LtnSmD</string>
+ <string>LtnSmE</string>
+ <string>LtnSmF</string>
+ <string>LtnSmG</string>
+ <string>LtnSmH</string>
+ <string>LtnSmI</string>
+ <string>LtnSmJ</string>
+ <string>LtnSmK</string>
+ <string>LtnSmL</string>
+ <string>LtnSmM</string>
+ <string>LtnSmN</string>
+ <string>LtnSmO</string>
+ <string>LtnSmP</string>
+ <string>LtnSmQ</string>
+ <string>LtnSmR</string>
+ <string>LtnSmS</string>
+ <string>LtnSmT</string>
+ <string>LtnSmU</string>
+ <string>LtnSmV</string>
+ <string>LtnSmW</string>
+ <string>LtnSmX</string>
+ <string>LtnSmY</string>
+ <string>LftCurlyBrac</string>
+ <string>VertLine</string>
+ <string>RtCurlyBrac</string>
+ <string>Tilde</string>
+ <string>LtnCapADiaer</string>
+ <string>LtnSmAAcute</string>
+ <string>LtnSmAGrave</string>
+ <string>LtnSmACircum</string>
+ <string>LtnSmADiaer</string>
+ <string>LtnSmATilde</string>
+ <string>LtnSmARingAbv</string>
+ <string>DottedCirc</string>
+ <string>Hyphen</string>
+ <string>NonBreakingHyphen</string>
+ <string>Hyphen_Soft</string>
+ <string>CombAcute</string>
+ <string>CombGrave</string>
+ <string>CombCircum</string>
+ <string>CombTilde</string>
+ <string>CombDiaer</string>
+ <string>CombRingAbv</string>
+ </array>
+ <key>com.schriftgestaltung.keyboardIncrement</key>
+ <integer>1</integer>
+ <key>com.schriftgestaltung.weight</key>
+ <string>Regular</string>
+ <key>com.schriftgestaltung.weightValue</key>
+ <integer>400</integer>
+ <key>com.schriftgestaltung.width</key>
+ <string>Regular</string>
+ <key>com.schriftgestaltung.widthValue</key>
+ <integer>100</integer>
+ <key>org.sil.lcg.toneLetters</key>
+ <dict>
+ <key>contourWidth</key>
+ <integer>480</integer>
+ <key>dotSize</key>
+ <integer>180</integer>
+ <key>dotSpacing</key>
+ <integer>200</integer>
+ <key>glyphDepth</key>
+ <integer>-25</integer>
+ <key>glyphHeight</key>
+ <integer>1600</integer>
+ <key>italicAngle</key>
+ <integer>0</integer>
+ <key>marginDotLeft</key>
+ <integer>120</integer>
+ <key>marginDotRight</key>
+ <integer>160</integer>
+ <key>marginFlatLeft</key>
+ <integer>120</integer>
+ <key>marginFlatRight</key>
+ <integer>160</integer>
+ <key>marginPointLeft</key>
+ <integer>100</integer>
+ <key>marginPointRight</key>
+ <integer>140</integer>
+ <key>strokeThickness</key>
+ <integer>120</integer>
+ </dict>
+ <key>public.glyphOrder</key>
+ <array>
+ <string>.notdef</string>
+ <string>.null</string>
+ <string>nonmarkingreturn</string>
+ <string>Space</string>
+ <string>ExclamationMrk</string>
+ <string>QuotMrk</string>
+ <string>NumSgn</string>
+ <string>DollarSgn</string>
+ <string>PercentSgn</string>
+ <string>Ampersand</string>
+ <string>Apos</string>
+ <string>LftParen</string>
+ <string>RtParen</string>
+ <string>Asterisk</string>
+ <string>PlusSgn</string>
+ <string>Comma</string>
+ <string>HyphenMinus</string>
+ <string>FullStop</string>
+ <string>Solidus</string>
+ <string>DigitZero</string>
+ <string>DigitOne</string>
+ <string>DigitTwo</string>
+ <string>DigitThree</string>
+ <string>DigitFour</string>
+ <string>DigitFive</string>
+ <string>DigitSix</string>
+ <string>DigitSeven</string>
+ <string>DigitEight</string>
+ <string>DigitNine</string>
+ <string>Colon</string>
+ <string>Semicolon</string>
+ <string>LTSgn</string>
+ <string>EqSgn</string>
+ <string>GTSgn</string>
+ <string>QstnMrk</string>
+ <string>AtSgn</string>
+ <string>LtnCapA</string>
+ <string>LtnCapA.alt</string>
+ <string>LtnCapB</string>
+ <string>LtnCapC</string>
+ <string>LtnCapD</string>
+ <string>LtnCapE</string>
+ <string>LtnCapF</string>
+ <string>LtnCapG</string>
+ <string>LtnCapH</string>
+ <string>LtnCapI</string>
+ <string>LtnCapJ</string>
+ <string>LtnCapK</string>
+ <string>LtnCapL</string>
+ <string>LtnCapM</string>
+ <string>LtnCapN</string>
+ <string>LtnCapO</string>
+ <string>LtnCapP</string>
+ <string>LtnCapQ</string>
+ <string>LtnCapR</string>
+ <string>LtnCapS</string>
+ <string>LtnCapT</string>
+ <string>LtnCapU</string>
+ <string>LtnCapV</string>
+ <string>LtnCapW</string>
+ <string>LtnCapX</string>
+ <string>LtnCapY</string>
+ <string>LftSqrBrac</string>
+ <string>ReverseSolidus</string>
+ <string>RtSqrBrac</string>
+ <string>CircumAccent</string>
+ <string>LowLine</string>
+ <string>GraveAccent</string>
+ <string>LtnSmA</string>
+ <string>LtnSmB</string>
+ <string>LtnSmC</string>
+ <string>LtnSmD</string>
+ <string>LtnSmE</string>
+ <string>LtnSmF</string>
+ <string>LtnSmG</string>
+ <string>LtnSmH</string>
+ <string>LtnSmI</string>
+ <string>LtnSmJ</string>
+ <string>LtnSmK</string>
+ <string>LtnSmL</string>
+ <string>LtnSmM</string>
+ <string>LtnSmN</string>
+ <string>LtnSmO</string>
+ <string>LtnSmP</string>
+ <string>LtnSmQ</string>
+ <string>LtnSmR</string>
+ <string>LtnSmS</string>
+ <string>LtnSmT</string>
+ <string>LtnSmU</string>
+ <string>LtnSmV</string>
+ <string>LtnSmW</string>
+ <string>LtnSmX</string>
+ <string>LtnSmY</string>
+ <string>LftCurlyBrac</string>
+ <string>VertLine</string>
+ <string>RtCurlyBrac</string>
+ <string>Tilde</string>
+ <string>LtnCapADiaer</string>
+ <string>LtnSmAAcute</string>
+ <string>LtnSmAGrave</string>
+ <string>LtnSmACircum</string>
+ <string>LtnSmADiaer</string>
+ <string>LtnSmATilde</string>
+ <string>LtnSmARingAbv</string>
+ <string>DottedCirc</string>
+ <string>Hyphen</string>
+ <string>NonBreakingHyphen</string>
+ <string>Hyphen_Soft</string>
+ <string>CombAcute</string>
+ <string>CombGrave</string>
+ <string>CombCircum</string>
+ <string>CombTilde</string>
+ <string>CombDiaer</string>
+ <string>CombRingAbv</string>
+ </array>
+ <key>public.postscriptNames</key>
+ <dict>
+ <key>Ampersand</key>
+ <string>ampersand</string>
+ <key>Apos</key>
+ <string>quotesingle</string>
+ <key>Asterisk</key>
+ <string>asterisk</string>
+ <key>AtSgn</key>
+ <string>at</string>
+ <key>CircumAccent</key>
+ <string>asciicircum</string>
+ <key>Colon</key>
+ <string>colon</string>
+ <key>CombAcute</key>
+ <string>acutecomb</string>
+ <key>CombCircum</key>
+ <string>uni0302</string>
+ <key>CombDiaer</key>
+ <string>uni0308</string>
+ <key>CombGrave</key>
+ <string>gravecomb</string>
+ <key>CombRingAbv</key>
+ <string>uni030A</string>
+ <key>CombTilde</key>
+ <string>tildecomb</string>
+ <key>Comma</key>
+ <string>comma</string>
+ <key>DigitEight</key>
+ <string>eight</string>
+ <key>DigitFive</key>
+ <string>five</string>
+ <key>DigitFour</key>
+ <string>four</string>
+ <key>DigitNine</key>
+ <string>nine</string>
+ <key>DigitOne</key>
+ <string>one</string>
+ <key>DigitSeven</key>
+ <string>seven</string>
+ <key>DigitSix</key>
+ <string>six</string>
+ <key>DigitThree</key>
+ <string>three</string>
+ <key>DigitTwo</key>
+ <string>two</string>
+ <key>DigitZero</key>
+ <string>zero</string>
+ <key>DollarSgn</key>
+ <string>dollar</string>
+ <key>DottedCirc</key>
+ <string>uni25CC</string>
+ <key>EqSgn</key>
+ <string>equal</string>
+ <key>ExclamationMrk</key>
+ <string>exclam</string>
+ <key>FullStop</key>
+ <string>period</string>
+ <key>GTSgn</key>
+ <string>greater</string>
+ <key>GraveAccent</key>
+ <string>grave</string>
+ <key>Hyphen</key>
+ <string>uni2010</string>
+ <key>HyphenMinus</key>
+ <string>hyphen</string>
+ <key>Hyphen_Soft</key>
+ <string>uni00AD</string>
+ <key>LTSgn</key>
+ <string>less</string>
+ <key>LftCurlyBrac</key>
+ <string>braceleft</string>
+ <key>LftParen</key>
+ <string>parenleft</string>
+ <key>LftSqrBrac</key>
+ <string>bracketleft</string>
+ <key>LowLine</key>
+ <string>underscore</string>
+ <key>LtnCapA</key>
+ <string>A</string>
+ <key>LtnCapA.alt</key>
+ <string>A</string>
+ <key>LtnCapADiaer</key>
+ <string>Adieresis</string>
+ <key>LtnCapB</key>
+ <string>B</string>
+ <key>LtnCapC</key>
+ <string>C</string>
+ <key>LtnCapD</key>
+ <string>D</string>
+ <key>LtnCapE</key>
+ <string>E</string>
+ <key>LtnCapF</key>
+ <string>F</string>
+ <key>LtnCapG</key>
+ <string>G</string>
+ <key>LtnCapH</key>
+ <string>H</string>
+ <key>LtnCapI</key>
+ <string>I</string>
+ <key>LtnCapJ</key>
+ <string>J</string>
+ <key>LtnCapK</key>
+ <string>K</string>
+ <key>LtnCapL</key>
+ <string>L</string>
+ <key>LtnCapM</key>
+ <string>M</string>
+ <key>LtnCapN</key>
+ <string>N</string>
+ <key>LtnCapO</key>
+ <string>O</string>
+ <key>LtnCapP</key>
+ <string>P</string>
+ <key>LtnCapQ</key>
+ <string>Q</string>
+ <key>LtnCapR</key>
+ <string>R</string>
+ <key>LtnCapS</key>
+ <string>S</string>
+ <key>LtnCapT</key>
+ <string>T</string>
+ <key>LtnCapU</key>
+ <string>U</string>
+ <key>LtnCapV</key>
+ <string>V</string>
+ <key>LtnCapW</key>
+ <string>W</string>
+ <key>LtnCapX</key>
+ <string>X</string>
+ <key>LtnCapY</key>
+ <string>Y</string>
+ <key>LtnSmA</key>
+ <string>a</string>
+ <key>LtnSmAAcute</key>
+ <string>aacute</string>
+ <key>LtnSmACircum</key>
+ <string>acircumflex</string>
+ <key>LtnSmADiaer</key>
+ <string>adieresis</string>
+ <key>LtnSmAGrave</key>
+ <string>agrave</string>
+ <key>LtnSmARingAbv</key>
+ <string>aring</string>
+ <key>LtnSmATilde</key>
+ <string>atilde</string>
+ <key>LtnSmB</key>
+ <string>b</string>
+ <key>LtnSmC</key>
+ <string>c</string>
+ <key>LtnSmD</key>
+ <string>d</string>
+ <key>LtnSmE</key>
+ <string>e</string>
+ <key>LtnSmF</key>
+ <string>f</string>
+ <key>LtnSmG</key>
+ <string>g</string>
+ <key>LtnSmH</key>
+ <string>h</string>
+ <key>LtnSmI</key>
+ <string>i</string>
+ <key>LtnSmJ</key>
+ <string>j</string>
+ <key>LtnSmK</key>
+ <string>k</string>
+ <key>LtnSmL</key>
+ <string>l</string>
+ <key>LtnSmM</key>
+ <string>m</string>
+ <key>LtnSmN</key>
+ <string>n</string>
+ <key>LtnSmO</key>
+ <string>o</string>
+ <key>LtnSmP</key>
+ <string>p</string>
+ <key>LtnSmQ</key>
+ <string>q</string>
+ <key>LtnSmR</key>
+ <string>r</string>
+ <key>LtnSmS</key>
+ <string>s</string>
+ <key>LtnSmT</key>
+ <string>t</string>
+ <key>LtnSmU</key>
+ <string>u</string>
+ <key>LtnSmV</key>
+ <string>v</string>
+ <key>LtnSmW</key>
+ <string>w</string>
+ <key>LtnSmX</key>
+ <string>x</string>
+ <key>LtnSmY</key>
+ <string>y</string>
+ <key>NonBreakingHyphen</key>
+ <string>uni2011</string>
+ <key>NumSgn</key>
+ <string>numbersign</string>
+ <key>PercentSgn</key>
+ <string>percent</string>
+ <key>PlusSgn</key>
+ <string>plus</string>
+ <key>QstnMrk</key>
+ <string>question</string>
+ <key>QuotMrk</key>
+ <string>quotedbl</string>
+ <key>ReverseSolidus</key>
+ <string>backslash</string>
+ <key>RtCurlyBrac</key>
+ <string>braceright</string>
+ <key>RtParen</key>
+ <string>parenright</string>
+ <key>RtSqrBrac</key>
+ <string>bracketright</string>
+ <key>Semicolon</key>
+ <string>semicolon</string>
+ <key>Solidus</key>
+ <string>slash</string>
+ <key>Space</key>
+ <string>space</string>
+ <key>Tilde</key>
+ <string>asciitilde</string>
+ <key>VertLine</key>
+ <string>bar</string>
+ </dict>
+</dict>
+</plist>
diff --git a/tests/reference/ufo/psfdeleteglyphs.ufo/metainfo.plist b/tests/reference/ufo/psfdeleteglyphs.ufo/metainfo.plist
new file mode 100644
index 0000000..aa10c5c
--- /dev/null
+++ b/tests/reference/ufo/psfdeleteglyphs.ufo/metainfo.plist
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>creator</key>
+ <string>org.sil.scripts.pysilfont</string>
+ <key>formatVersion</key>
+ <integer>3</integer>
+</dict>
+</plist>
diff --git a/tests/reference/ufo/psfexportanchors.lg b/tests/reference/ufo/psfexportanchors.lg
new file mode 100644
index 0000000..4dd54bf
--- /dev/null
+++ b/tests/reference/ufo/psfexportanchors.lg
@@ -0,0 +1,17 @@
+2021-06-29 14:42:19 Progress: Running: psfexportanchors tests/input/font-psf-test/source/PsfTest-Italic.ufo local/testresults/ufo/psfexportanchors.xml -l local/testresults/ufo/psfexportanchors.log
+2021-06-29 14:42:19 Progress: Opening file for output: @cwd@/local/testresults/ufo/psfexportanchors.xml
+2021-06-29 14:42:19 Progress: Reading UFO: tests/input/font-psf-test/source/PsfTest-Italic.ufo
+2021-06-29 14:42:20 Progress: Checking fontinfo.plist metadata
+2021-06-29 14:42:20 Warning: openTypeOS2FamilyClass would be removed from fontinfo Old value: [0, 0]
+2021-06-29 14:42:20 Warning: year would be removed from fontinfo Old value: 2021
+2021-06-29 14:42:20 Warning: capHeight would be updated Old value: 1485.3, new value: 1485
+2021-06-29 14:42:20 Warning: styleMapFamilyName would be uppdated Old value: Psf test, new value: Psf Test
+2021-06-29 14:42:20 Warning: openTypeOS2TypoLineGap would be updated Old value: 1, new value: 0
+2021-06-29 14:42:20 Warning: openTypeOS2Selection would be added New value: [7]
+2021-06-29 14:42:20 Warning: openTypeNamePreferredFamilyName would be updated Old value: Psf Testing, new value: Psf Test
+2021-06-29 14:42:20 Progress: Checking lib.plist metadata
+2021-06-29 14:42:20 Warning: com.schriftgestaltung.disablesAutomaticAlignment would be deleted - obsolete key Old value: True
+2021-06-29 14:42:20 Warning: com.schriftgestaltung.disablesLastChange would be deleted - obsolete key Old value: True
+2021-06-29 14:42:20 Progress: Check & fix results:- Errors: 0, Changes to make: 9, Other warnings: 0
+2021-06-29 14:42:20 Progress: See log file for details
+2021-06-29 14:42:20 Warning: LtnCapA.alt in public.glyphOrder list but absent from UFO
diff --git a/tests/reference/ufo/psfexportanchors.xml b/tests/reference/ufo/psfexportanchors.xml
new file mode 100644
index 0000000..45d2cc3
--- /dev/null
+++ b/tests/reference/ufo/psfexportanchors.xml
@@ -0,0 +1,928 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<font name="PsfTest-Italic" upem="2048">
+<glyph PSName=".notdef"/>
+<glyph PSName=".null"/>
+<glyph PSName="nonmarkingreturn"/>
+<glyph PSName="Space" UID="0020"/>
+<glyph PSName="ExclamationMrk" UID="0021"/>
+<glyph PSName="QuotMrk" UID="0022"/>
+<glyph PSName="NumSgn" UID="0023"/>
+<glyph PSName="DollarSgn" UID="0024"/>
+<glyph PSName="PercentSgn" UID="0025"/>
+<glyph PSName="Ampersand" UID="0026"/>
+<glyph PSName="Apos" UID="0027"/>
+<glyph PSName="LftParen" UID="0028"/>
+<glyph PSName="RtParen" UID="0029"/>
+<glyph PSName="Asterisk" UID="002A"/>
+<glyph PSName="PlusSgn" UID="002B"/>
+<glyph PSName="Comma" UID="002C"/>
+<glyph PSName="HyphenMinus" UID="002D">
+ <point type="U">
+ <location x="645" y="1100"/>
+ </point>
+</glyph>
+<glyph PSName="FullStop" UID="002E"/>
+<glyph PSName="Solidus" UID="002F"/>
+<glyph PSName="DigitZero" UID="0030">
+ <point type="L">
+ <location x="520" y="-100"/>
+ </point>
+ <point type="U">
+ <location x="927" y="1530"/>
+ </point>
+</glyph>
+<glyph PSName="DigitOne" UID="0031">
+ <point type="L">
+ <location x="515" y="-100"/>
+ </point>
+ <point type="U">
+ <location x="922" y="1530"/>
+ </point>
+</glyph>
+<glyph PSName="DigitTwo" UID="0032">
+ <point type="L">
+ <location x="515" y="-100"/>
+ </point>
+ <point type="U">
+ <location x="882" y="1530"/>
+ </point>
+</glyph>
+<glyph PSName="DigitThree" UID="0033">
+ <point type="L">
+ <location x="515" y="-100"/>
+ </point>
+ <point type="U">
+ <location x="922" y="1530"/>
+ </point>
+</glyph>
+<glyph PSName="DigitFour" UID="0034">
+ <point type="L">
+ <location x="522" y="-100"/>
+ </point>
+ <point type="U">
+ <location x="929" y="1530"/>
+ </point>
+</glyph>
+<glyph PSName="DigitFive" UID="0035">
+ <point type="L">
+ <location x="515" y="-100"/>
+ </point>
+ <point type="U">
+ <location x="922" y="1530"/>
+ </point>
+</glyph>
+<glyph PSName="DigitSix" UID="0036">
+ <point type="L">
+ <location x="515" y="-100"/>
+ </point>
+ <point type="U">
+ <location x="922" y="1530"/>
+ </point>
+</glyph>
+<glyph PSName="DigitSeven" UID="0037">
+ <point type="L">
+ <location x="515" y="-100"/>
+ </point>
+ <point type="U">
+ <location x="922" y="1530"/>
+ </point>
+</glyph>
+<glyph PSName="DigitEight" UID="0038">
+ <point type="L">
+ <location x="515" y="-100"/>
+ </point>
+ <point type="U">
+ <location x="922" y="1530"/>
+ </point>
+</glyph>
+<glyph PSName="DigitNine" UID="0039">
+ <point type="L">
+ <location x="515" y="-100"/>
+ </point>
+ <point type="U">
+ <location x="922" y="1530"/>
+ </point>
+</glyph>
+<glyph PSName="Colon" UID="003A"/>
+<glyph PSName="Semicolon" UID="003B"/>
+<glyph PSName="LTSgn" UID="003C"/>
+<glyph PSName="EqSgn" UID="003D"/>
+<glyph PSName="GTSgn" UID="003E"/>
+<glyph PSName="QstnMrk" UID="003F"/>
+<glyph PSName="AtSgn" UID="0040"/>
+<glyph PSName="LtnCapA" UID="0041">
+ <point type="H">
+ <location x="1170" y="0"/>
+ </point>
+ <point type="L">
+ <location x="602" y="-100"/>
+ </point>
+ <point type="O">
+ <location x="1390" y="0"/>
+ </point>
+ <point type="U">
+ <location x="1009" y="1530"/>
+ </point>
+</glyph>
+<glyph PSName="LtnCapB" UID="0042">
+ <point type="L">
+ <location x="530" y="-100"/>
+ </point>
+ <point type="U">
+ <location x="937" y="1530"/>
+ </point>
+</glyph>
+<glyph PSName="LtnCapC" UID="0043">
+ <point type="H">
+ <location x="690" y="0"/>
+ </point>
+ <point type="L">
+ <location x="665" y="-100"/>
+ </point>
+ <point type="U">
+ <location x="1072" y="1530"/>
+ </point>
+</glyph>
+<glyph PSName="LtnCapD" UID="0044">
+ <point type="L">
+ <location x="630" y="-100"/>
+ </point>
+ <point type="U">
+ <location x="1037" y="1530"/>
+ </point>
+</glyph>
+<glyph PSName="LtnCapE" UID="0045">
+ <point type="H">
+ <location x="540" y="0"/>
+ </point>
+ <point type="L">
+ <location x="515" y="-100"/>
+ </point>
+ <point type="O">
+ <location x="857" y="0"/>
+ </point>
+ <point type="R">
+ <location x="1400" y="1200"/>
+ </point>
+ <point type="U">
+ <location x="922" y="1530"/>
+ </point>
+</glyph>
+<glyph PSName="LtnCapF" UID="0046">
+ <point type="L">
+ <location x="510" y="-100"/>
+ </point>
+ <point type="U">
+ <location x="917" y="1530"/>
+ </point>
+</glyph>
+<glyph PSName="LtnCapG" UID="0047">
+ <point type="H">
+ <location x="685" y="0"/>
+ </point>
+ <point type="L">
+ <location x="660" y="-100"/>
+ </point>
+ <point type="U">
+ <location x="1067" y="1530"/>
+ </point>
+</glyph>
+<glyph PSName="LtnCapH" UID="0048">
+ <point type="H">
+ <location x="225" y="0"/>
+ </point>
+ <point type="L">
+ <location x="640" y="-100"/>
+ </point>
+ <point type="U">
+ <location x="1047" y="1530"/>
+ </point>
+</glyph>
+<glyph PSName="LtnCapI" UID="0049">
+ <point type="H">
+ <location x="417" y="0"/>
+ </point>
+ <point type="L">
+ <location x="392" y="-100"/>
+ </point>
+ <point type="O">
+ <location x="613" y="0"/>
+ </point>
+ <point type="R">
+ <location x="1215" y="1200"/>
+ </point>
+ <point type="U">
+ <location x="799" y="1530"/>
+ </point>
+</glyph>
+<glyph PSName="LtnCapJ" UID="004A">
+ <point type="L">
+ <location x="325" y="-100"/>
+ </point>
+ <point type="U">
+ <location x="997" y="1530"/>
+ </point>
+</glyph>
+<glyph PSName="LtnCapK" UID="004B">
+ <point type="H">
+ <location x="210" y="0"/>
+ </point>
+ <point type="L">
+ <location x="610" y="-100"/>
+ </point>
+ <point type="U">
+ <location x="972" y="1530"/>
+ </point>
+</glyph>
+<glyph PSName="LtnCapL" UID="004C">
+ <point type="H">
+ <location x="532" y="0"/>
+ </point>
+ <point type="L">
+ <location x="507" y="-100"/>
+ </point>
+ <point type="R">
+ <location x="780" y="1200"/>
+ </point>
+ <point type="U">
+ <location x="914" y="1530"/>
+ </point>
+</glyph>
+<glyph PSName="LtnCapM" UID="004D">
+ <point type="L">
+ <location x="800" y="-100"/>
+ </point>
+ <point type="U">
+ <location x="1207" y="1530"/>
+ </point>
+</glyph>
+<glyph PSName="LtnCapN" UID="004E">
+ <point type="H">
+ <location x="1170" y="0"/>
+ </point>
+ <point type="L">
+ <location x="652" y="-100"/>
+ </point>
+ <point type="U">
+ <location x="1059" y="1530"/>
+ </point>
+</glyph>
+<glyph PSName="LtnCapO" UID="004F">
+ <point type="H">
+ <location x="657" y="0"/>
+ </point>
+ <point type="L">
+ <location x="632" y="-100"/>
+ </point>
+ <point type="O">
+ <location x="896" y="0"/>
+ </point>
+ <point type="R">
+ <location x="1700" y="1200"/>
+ </point>
+ <point type="U">
+ <location x="1039" y="1530"/>
+ </point>
+</glyph>
+<glyph PSName="LtnCapP" UID="0050">
+ <point type="L">
+ <location x="552" y="-100"/>
+ </point>
+ <point type="U">
+ <location x="959" y="1530"/>
+ </point>
+</glyph>
+<glyph PSName="LtnCapQ" UID="0051">
+ <point type="L">
+ <location x="589" y="-270"/>
+ </point>
+ <point type="U">
+ <location x="1039" y="1530"/>
+ </point>
+</glyph>
+<glyph PSName="LtnCapR" UID="0052">
+ <point type="H">
+ <location x="590" y="0"/>
+ </point>
+ <point type="L">
+ <location x="525" y="-100"/>
+ </point>
+ <point type="U">
+ <location x="932" y="1530"/>
+ </point>
+</glyph>
+<glyph PSName="LtnCapS" UID="0053">
+ <point type="H">
+ <location x="520" y="0"/>
+ </point>
+ <point type="L">
+ <location x="495" y="-100"/>
+ </point>
+ <point type="U">
+ <location x="902" y="1530"/>
+ </point>
+</glyph>
+<glyph PSName="LtnCapT" UID="0054">
+ <point type="H">
+ <location x="562" y="0"/>
+ </point>
+ <point type="L">
+ <location x="562" y="-100"/>
+ </point>
+ <point type="U">
+ <location x="944" y="1530"/>
+ </point>
+</glyph>
+<glyph PSName="LtnCapU" UID="0055">
+ <point type="H">
+ <location x="647" y="0"/>
+ </point>
+ <point type="L">
+ <location x="622" y="-100"/>
+ </point>
+ <point type="O">
+ <location x="865" y="0"/>
+ </point>
+ <point type="R">
+ <location x="1640" y="1200"/>
+ </point>
+ <point type="U">
+ <location x="1029" y="1530"/>
+ </point>
+</glyph>
+<glyph PSName="LtnCapV" UID="0056">
+ <point type="H">
+ <location x="620" y="0"/>
+ </point>
+ <point type="L">
+ <location x="587" y="-100"/>
+ </point>
+ <point type="O">
+ <location x="820" y="0"/>
+ </point>
+ <point type="U">
+ <location x="994" y="1530"/>
+ </point>
+</glyph>
+<glyph PSName="LtnCapW" UID="0057">
+ <point type="L">
+ <location x="942" y="-100"/>
+ </point>
+ <point type="U">
+ <location x="1349" y="1530"/>
+ </point>
+</glyph>
+<glyph PSName="LtnCapX" UID="0058">
+ <point type="L">
+ <location x="565" y="-100"/>
+ </point>
+ <point type="U">
+ <location x="972" y="1530"/>
+ </point>
+</glyph>
+<glyph PSName="LtnCapY" UID="0059">
+ <point type="L">
+ <location x="565" y="-100"/>
+ </point>
+ <point type="U">
+ <location x="972" y="1530"/>
+ </point>
+</glyph>
+<glyph PSName="LftSqrBrac" UID="005B"/>
+<glyph PSName="ReverseSolidus" UID="005C"/>
+<glyph PSName="RtSqrBrac" UID="005D"/>
+<glyph PSName="CircumAccent" UID="005E">
+ <point type="U">
+ <location x="705" y="1635"/>
+ </point>
+</glyph>
+<glyph PSName="LowLine" UID="005F"/>
+<glyph PSName="GraveAccent" UID="0060">
+ <point type="U">
+ <location x="738" y="1635"/>
+ </point>
+</glyph>
+<glyph PSName="LtnSmA" UID="0061">
+ <point type="H">
+ <location x="860" y="0"/>
+ </point>
+ <point type="L">
+ <location x="455" y="-100"/>
+ </point>
+ <point type="O">
+ <location x="1065" y="0"/>
+ </point>
+ <point type="R">
+ <location x="1310" y="1000"/>
+ </point>
+ <point type="U">
+ <location x="755" y="1100"/>
+ </point>
+</glyph>
+<glyph PSName="LtnSmB" UID="0062">
+ <point type="H">
+ <location x="530" y="0"/>
+ </point>
+ <point type="L">
+ <location x="505" y="-100"/>
+ </point>
+ <point type="R">
+ <location x="1345" y="1000"/>
+ </point>
+ <point type="U">
+ <location x="938" y="1635"/>
+ </point>
+</glyph>
+<glyph PSName="LtnSmC" UID="0063">
+ <point type="H">
+ <location x="520" y="0"/>
+ </point>
+ <point type="L">
+ <location x="495" y="-100"/>
+ </point>
+ <point type="R">
+ <location x="1210" y="1000"/>
+ </point>
+ <point type="U">
+ <location x="785" y="1100"/>
+ </point>
+</glyph>
+<glyph PSName="LtnSmD" UID="0064">
+ <point type="H">
+ <location x="545" y="0"/>
+ </point>
+ <point type="L">
+ <location x="520" y="-100"/>
+ </point>
+ <point type="R">
+ <location x="1380" y="1000"/>
+ </point>
+ <point type="U">
+ <location x="953" y="1635"/>
+ </point>
+</glyph>
+<glyph PSName="LtnSmE" UID="0065">
+ <point type="H">
+ <location x="485" y="0"/>
+ </point>
+ <point type="L">
+ <location x="484" y="-100"/>
+ </point>
+ <point type="O">
+ <location x="840" y="0"/>
+ </point>
+ <point type="R">
+ <location x="1285" y="1000"/>
+ </point>
+ <point type="U">
+ <location x="784" y="1100"/>
+ </point>
+</glyph>
+<glyph PSName="LtnSmF" UID="0066">
+ <point type="H">
+ <location x="290" y="0"/>
+ </point>
+ <point type="L">
+ <location x="315" y="-100"/>
+ </point>
+ <point type="U">
+ <location x="908" y="1635"/>
+ </point>
+</glyph>
+<glyph PSName="LtnSmG" UID="0067">
+ <point type="H">
+ <location x="368" y="-465"/>
+ </point>
+ <point type="L">
+ <location x="351" y="-535"/>
+ </point>
+ <point type="R">
+ <location x="1285" y="1000"/>
+ </point>
+ <point type="U">
+ <location x="730" y="1100"/>
+ </point>
+</glyph>
+<glyph PSName="LtnSmH" UID="0068">
+ <point type="H">
+ <location x="190" y="0"/>
+ </point>
+ <point type="L">
+ <location x="550" y="-100"/>
+ </point>
+ <point type="U">
+ <location x="933" y="1635"/>
+ </point>
+</glyph>
+<glyph PSName="LtnSmI" UID="0069">
+ <point type="H">
+ <location x="235" y="0"/>
+ </point>
+ <point type="L">
+ <location x="250" y="-100"/>
+ </point>
+ <point type="O">
+ <location x="455" y="0"/>
+ </point>
+ <point type="R">
+ <location x="745" y="1000"/>
+ </point>
+ <point type="U">
+ <location x="472" y="1100"/>
+ </point>
+</glyph>
+<glyph PSName="LtnSmJ" UID="006A">
+ <point type="L">
+ <location x="-60" y="-500"/>
+ </point>
+ <point type="U">
+ <location x="510" y="1100"/>
+ </point>
+</glyph>
+<glyph PSName="LtnSmK" UID="006B">
+ <point type="H">
+ <location x="840" y="0"/>
+ </point>
+ <point type="L">
+ <location x="537" y="-100"/>
+ </point>
+ <point type="R">
+ <location x="1225" y="1000"/>
+ </point>
+ <point type="U">
+ <location x="920" y="1635"/>
+ </point>
+</glyph>
+<glyph PSName="LtnSmL" UID="006C">
+ <point type="H">
+ <location x="230" y="0"/>
+ </point>
+ <point type="L">
+ <location x="255" y="-100"/>
+ </point>
+ <point type="R">
+ <location x="740" y="1000"/>
+ </point>
+ <point type="U">
+ <location x="630" y="1635"/>
+ </point>
+</glyph>
+<glyph PSName="LtnSmM" UID="006D">
+ <point type="H">
+ <location x="805" y="0"/>
+ </point>
+ <point type="L">
+ <location x="780" y="-100"/>
+ </point>
+ <point type="U">
+ <location x="1080" y="1100"/>
+ </point>
+</glyph>
+<glyph PSName="LtnSmN" UID="006E">
+ <point type="H">
+ <location x="540" y="0"/>
+ </point>
+ <point type="L">
+ <location x="565" y="-100"/>
+ </point>
+ <point type="U">
+ <location x="815" y="1100"/>
+ </point>
+</glyph>
+<glyph PSName="LtnSmO" UID="006F">
+ <point type="H">
+ <location x="510" y="0"/>
+ </point>
+ <point type="L">
+ <location x="505" y="-100"/>
+ </point>
+ <point type="O">
+ <location x="800" y="0"/>
+ </point>
+ <point type="R">
+ <location x="1330" y="1000"/>
+ </point>
+ <point type="U">
+ <location x="785" y="1100"/>
+ </point>
+</glyph>
+<glyph PSName="LtnSmP" UID="0070">
+ <point type="H">
+ <location x="105" y="-435"/>
+ </point>
+ <point type="L">
+ <location x="405" y="-500"/>
+ </point>
+ <point type="R">
+ <location x="1360" y="1000"/>
+ </point>
+ <point type="U">
+ <location x="805" y="1100"/>
+ </point>
+</glyph>
+<glyph PSName="LtnSmQ" UID="0071">
+ <point type="L">
+ <location x="370" y="-500"/>
+ </point>
+ <point type="R">
+ <location x="1320" y="1000"/>
+ </point>
+ <point type="U">
+ <location x="770" y="1100"/>
+ </point>
+</glyph>
+<glyph PSName="LtnSmR" UID="0072">
+ <point type="H">
+ <location x="210" y="0"/>
+ </point>
+ <point type="L">
+ <location x="220" y="-100"/>
+ </point>
+ <point type="U">
+ <location x="670" y="1100"/>
+ </point>
+</glyph>
+<glyph PSName="LtnSmS" UID="0073">
+ <point type="H">
+ <location x="435" y="0"/>
+ </point>
+ <point type="L">
+ <location x="440" y="-100"/>
+ </point>
+ <point type="U">
+ <location x="710" y="1100"/>
+ </point>
+</glyph>
+<glyph PSName="LtnSmT" UID="0074">
+ <point type="H">
+ <location x="455" y="0"/>
+ </point>
+ <point type="L">
+ <location x="390" y="-100"/>
+ </point>
+ <point type="R">
+ <location x="1025" y="1000"/>
+ </point>
+ <point type="U">
+ <location x="605" y="1360"/>
+ </point>
+</glyph>
+<glyph PSName="LtnSmU" UID="0075">
+ <point type="H">
+ <location x="465" y="0"/>
+ </point>
+ <point type="L">
+ <location x="504" y="-100"/>
+ </point>
+ <point type="O">
+ <location x="640" y="0"/>
+ </point>
+ <point type="R">
+ <location x="1375" y="1000"/>
+ </point>
+ <point type="U">
+ <location x="804" y="1100"/>
+ </point>
+</glyph>
+<glyph PSName="LtnSmV" UID="0076">
+ <point type="H">
+ <location x="359" y="0"/>
+ </point>
+ <point type="L">
+ <location x="350" y="-100"/>
+ </point>
+ <point type="O">
+ <location x="565" y="0"/>
+ </point>
+ <point type="U">
+ <location x="650" y="1100"/>
+ </point>
+</glyph>
+<glyph PSName="LtnSmW" UID="0077">
+ <point type="L">
+ <location x="690" y="-100"/>
+ </point>
+ <point type="U">
+ <location x="990" y="1100"/>
+ </point>
+</glyph>
+<glyph PSName="LtnSmX" UID="0078">
+ <point type="H">
+ <location x="840" y="0"/>
+ </point>
+ <point type="L">
+ <location x="457" y="-100"/>
+ </point>
+ <point type="U">
+ <location x="657" y="1100"/>
+ </point>
+</glyph>
+<glyph PSName="LtnSmY" UID="0079">
+ <point type="L">
+ <location x="710" y="-100"/>
+ </point>
+ <point type="R">
+ <location x="1270" y="1000"/>
+ </point>
+ <point type="U">
+ <location x="630" y="1100"/>
+ </point>
+</glyph>
+<glyph PSName="LftCurlyBrac" UID="007B"/>
+<glyph PSName="VertLine" UID="007C"/>
+<glyph PSName="RtCurlyBrac" UID="007D"/>
+<glyph PSName="Tilde" UID="007E"/>
+<glyph PSName="LtnCapADiaer" UID="00C4">
+ <point type="H">
+ <location x="1170" y="0"/>
+ </point>
+ <point type="L">
+ <location x="602" y="-100"/>
+ </point>
+ <point type="O">
+ <location x="1390" y="0"/>
+ </point>
+ <point type="U">
+ <location x="1106" y="1935"/>
+ </point>
+</glyph>
+<glyph PSName="LtnSmAAcute" UID="00E1">
+ <point type="H">
+ <location x="860" y="0"/>
+ </point>
+ <point type="L">
+ <location x="455" y="-100"/>
+ </point>
+ <point type="O">
+ <location x="1065" y="0"/>
+ </point>
+ <point type="R">
+ <location x="1310" y="1000"/>
+ </point>
+ <point type="U">
+ <location x="889" y="1635"/>
+ </point>
+</glyph>
+<glyph PSName="LtnSmAGrave" UID="00E0">
+ <point type="H">
+ <location x="860" y="0"/>
+ </point>
+ <point type="L">
+ <location x="455" y="-100"/>
+ </point>
+ <point type="O">
+ <location x="1065" y="0"/>
+ </point>
+ <point type="R">
+ <location x="1310" y="1000"/>
+ </point>
+ <point type="U">
+ <location x="889" y="1635"/>
+ </point>
+</glyph>
+<glyph PSName="LtnSmACircum" UID="00E2">
+ <point type="H">
+ <location x="860" y="0"/>
+ </point>
+ <point type="L">
+ <location x="455" y="-100"/>
+ </point>
+ <point type="O">
+ <location x="1065" y="0"/>
+ </point>
+ <point type="R">
+ <location x="1310" y="1000"/>
+ </point>
+ <point type="U">
+ <location x="854" y="1635"/>
+ </point>
+</glyph>
+<glyph PSName="LtnSmADiaer" UID="00E4">
+ <point type="H">
+ <location x="860" y="0"/>
+ </point>
+ <point type="L">
+ <location x="455" y="-100"/>
+ </point>
+ <point type="O">
+ <location x="1065" y="0"/>
+ </point>
+ <point type="R">
+ <location x="1310" y="1000"/>
+ </point>
+ <point type="U">
+ <location x="852" y="1505"/>
+ </point>
+</glyph>
+<glyph PSName="LtnSmATilde" UID="00E3">
+ <point type="H">
+ <location x="860" y="0"/>
+ </point>
+ <point type="L">
+ <location x="455" y="-100"/>
+ </point>
+ <point type="O">
+ <location x="1065" y="0"/>
+ </point>
+ <point type="R">
+ <location x="1310" y="1000"/>
+ </point>
+ <point type="U">
+ <location x="850" y="1475"/>
+ </point>
+</glyph>
+<glyph PSName="LtnSmARingAbv" UID="00E5">
+ <point type="H">
+ <location x="860" y="0"/>
+ </point>
+ <point type="L">
+ <location x="455" y="-100"/>
+ </point>
+ <point type="O">
+ <location x="1065" y="0"/>
+ </point>
+ <point type="R">
+ <location x="1310" y="1000"/>
+ </point>
+ <point type="U">
+ <location x="919" y="1635"/>
+ </point>
+</glyph>
+<glyph PSName="DottedCirc" UID="25CC">
+ <point type="H">
+ <location x="493" y="0"/>
+ </point>
+ <point type="L">
+ <location x="468" y="-100"/>
+ </point>
+ <point type="O">
+ <location x="750" y="0"/>
+ </point>
+ <point type="U">
+ <location x="743" y="1000"/>
+ </point>
+</glyph>
+<glyph PSName="Hyphen" UID="2010">
+ <point type="U">
+ <location x="645" y="1100"/>
+ </point>
+</glyph>
+<glyph PSName="NonBreakingHyphen" UID="2011">
+ <point type="U">
+ <location x="645" y="1100"/>
+ </point>
+</glyph>
+<glyph PSName="Hyphen_Soft" UID="00AD">
+ <point type="U">
+ <location x="645" y="1100"/>
+ </point>
+</glyph>
+<glyph PSName="CombAcute" UID="0301">
+ <point type="U">
+ <location x="-221" y="1635"/>
+ </point>
+ <point type="_U">
+ <location x="-355" y="1100"/>
+ </point>
+</glyph>
+<glyph PSName="CombGrave" UID="0300">
+ <point type="U">
+ <location x="-201" y="1635"/>
+ </point>
+ <point type="_U">
+ <location x="-335" y="1100"/>
+ </point>
+</glyph>
+<glyph PSName="CombCircum" UID="0302">
+ <point type="U">
+ <location x="-221" y="1635"/>
+ </point>
+ <point type="_U">
+ <location x="-320" y="1100"/>
+ </point>
+</glyph>
+<glyph PSName="CombTilde" UID="0303">
+ <point type="U">
+ <location x="-290" y="1475"/>
+ </point>
+ <point type="_U">
+ <location x="-385" y="1100"/>
+ </point>
+</glyph>
+<glyph PSName="CombDiaer" UID="0308">
+ <point type="U">
+ <location x="-253" y="1505"/>
+ </point>
+ <point type="_U">
+ <location x="-350" y="1100"/>
+ </point>
+</glyph>
+<glyph PSName="CombRingAbv" UID="030A">
+ <point type="U">
+ <location x="-221" y="1635"/>
+ </point>
+ <point type="_U">
+ <location x="-385" y="1100"/>
+ </point>
+</glyph>
+</font>
diff --git a/tests/reference/ufo/psfexportunicodes.csv b/tests/reference/ufo/psfexportunicodes.csv
new file mode 100644
index 0000000..741c210
--- /dev/null
+++ b/tests/reference/ufo/psfexportunicodes.csv
@@ -0,0 +1,113 @@
+# 2018-09-19 20:11:23 psfexportunicodes
+# tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo -o local/testresults/ufo/psfexportunicodes.csv -l local/testresults/ufo/psfexportunicodes.log
+
+Ampersand,0026
+Apos,0027
+Asterisk,002A
+AtSgn,0040
+CircumAccent,005E
+Colon,003A
+CombAcute,0301
+CombCircum,0302
+CombDiaer,0308
+CombGrave,0300
+CombRingAbv,030A
+CombTilde,0303
+Comma,002C
+DigitEight,0038
+DigitFive,0035
+DigitFour,0034
+DigitNine,0039
+DigitOne,0031
+DigitSeven,0037
+DigitSix,0036
+DigitThree,0033
+DigitTwo,0032
+DigitZero,0030
+DollarSgn,0024
+DottedCirc,25CC
+EqSgn,003D
+ExclamationMrk,0021
+FullStop,002E
+GTSgn,003E
+GraveAccent,0060
+Hyphen,2010
+HyphenMinus,002D
+Hyphen_Soft,00AD
+LTSgn,003C
+LftCurlyBrac,007B
+LftParen,0028
+LftSqrBrac,005B
+LowLine,005F
+LtnCapA,0041
+LtnCapADiaer,00C4
+LtnCapB,0042
+LtnCapC,0043
+LtnCapD,0044
+LtnCapE,0045
+LtnCapF,0046
+LtnCapG,0047
+LtnCapH,0048
+LtnCapI,0049
+LtnCapJ,004A
+LtnCapK,004B
+LtnCapL,004C
+LtnCapM,004D
+LtnCapN,004E
+LtnCapO,004F
+LtnCapP,0050
+LtnCapQ,0051
+LtnCapR,0052
+LtnCapS,0053
+LtnCapT,0054
+LtnCapU,0055
+LtnCapV,0056
+LtnCapW,0057
+LtnCapX,0058
+LtnCapY,0059
+LtnSmA,0061
+LtnSmAAcute,00E1
+LtnSmACircum,00E2
+LtnSmADiaer,00E4
+LtnSmAGrave,00E0
+LtnSmARingAbv,00E5
+LtnSmATilde,00E3
+LtnSmB,0062
+LtnSmC,0063
+LtnSmD,0064
+LtnSmE,0065
+LtnSmF,0066
+LtnSmG,0067
+LtnSmH,0068
+LtnSmI,0069
+LtnSmJ,006A
+LtnSmK,006B
+LtnSmL,006C
+LtnSmM,006D
+LtnSmN,006E
+LtnSmO,006F
+LtnSmP,0070
+LtnSmQ,0071
+LtnSmR,0072
+LtnSmS,0073
+LtnSmT,0074
+LtnSmU,0075
+LtnSmV,0076
+LtnSmW,0077
+LtnSmX,0078
+LtnSmY,0079
+NonBreakingHyphen,2011
+NumSgn,0023
+PercentSgn,0025
+PlusSgn,002B
+QstnMrk,003F
+QuotMrk,0022
+ReverseSolidus,005C
+RtCurlyBrac,007D
+RtParen,0029
+RtSqrBrac,005D
+Semicolon,003B
+Solidus,002F
+Space,0020
+Tilde,007E
+VertLine,007C
diff --git a/tests/reference/ufo/psfexportunicodes.lg b/tests/reference/ufo/psfexportunicodes.lg
new file mode 100644
index 0000000..89b9e5a
--- /dev/null
+++ b/tests/reference/ufo/psfexportunicodes.lg
@@ -0,0 +1,14 @@
+2021-06-29 14:42:20 Progress: Running: psfexportunicodes tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo -o local/testresults/ufo/psfexportunicodes.csv -l local/testresults/ufo/psfexportunicodes.log
+2021-06-29 14:42:20 Progress: Opening file for output: @cwd@/local/testresults/ufo/psfexportunicodes.csv
+2021-06-29 14:42:20 Progress: Reading UFO: tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo
+2021-06-29 14:42:20 Progress: Checking fontinfo.plist metadata
+2021-06-29 14:42:20 Warning: macintoshFONDName would be removed from fontinfo Old value: My Test
+2021-06-29 14:42:20 Warning: openTypeOS2FamilyClass would be removed from fontinfo Old value: [0, 0]
+2021-06-29 14:42:20 Warning: postscriptFamilyBlues would be removed from fontinfo Old value: []
+2021-06-29 14:42:20 Warning: openTypeOS2Selection would be added New value: [7]
+2021-06-29 14:42:20 Warning: openTypeHheaAscender would be updated Old value: 2200, new value: 2100
+2021-06-29 14:42:20 Progress: Checking lib.plist metadata
+2021-06-29 14:42:20 Warning: com.schriftgestaltung.disablesAutomaticAlignment would be deleted - obsolete key Old value: True
+2021-06-29 14:42:20 Warning: com.schriftgestaltung.disablesLastChange would be deleted - obsolete key Old value: True
+2021-06-29 14:42:20 Progress: Check & fix results:- Errors: 0, Changes to make: 7, Other warnings: 0
+2021-06-29 14:42:20 Progress: See log file for details
diff --git a/tests/reference/ufo/psfgenftml.ftml b/tests/reference/ufo/psfgenftml.ftml
new file mode 100644
index 0000000..e385e33
--- /dev/null
+++ b/tests/reference/ufo/psfgenftml.ftml
@@ -0,0 +1,66 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?xml-stylesheet href="ftml.xsl" type="text/xsl"?>
+<ftml version="1.0">
+ <head>
+ <title>ftml_builder test</title>
+ </head>
+ <testgroup background="#f0f0f0" label="Rendering Check">
+ <test label="check">
+ <string>RenderingUnknown</string>
+ </test>
+ </testgroup>
+ <testgroup label="Encoded characters">
+ <test label="U+0020">
+ <comment>Space</comment>
+ <string>\u00F130 \u00F131 ! " # $ % &amp; ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; &lt; = &gt; ? @ A B C</string>
+ </test>
+ <test label="U+0043" rtl="True">
+ <comment>LtnCapC</comment>
+ <string>C</string>
+ </test>
+ <test label="U+0044">
+ <comment>LtnCapD</comment>
+ <string>D E F G H I J K L M N O P Q R S T U V W X Y</string>
+ </test>
+ <test label="U+005B">
+ <comment>LftSqrBrac</comment>
+ <string>[ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y</string>
+ </test>
+ <test label="U+007B">
+ <comment>LftCurlyBrac</comment>
+ <string>{ | } ~</string>
+ </test>
+ <test label="U+00AD">
+ <comment>Hyphen_Soft</comment>
+ <string>\u0000AD</string>
+ </test>
+ <test label="U+00C4">
+ <comment>LtnCapADiaer</comment>
+ <string>\u0000C4</string>
+ </test>
+ <test label="U+00E0">
+ <comment>LtnSmAGrave</comment>
+ <string>\u0000E0 \u0000E1 \u0000E2 \u0000E3 \u0000E4 \u0000E5</string>
+ </test>
+ <test label="U+0300">
+ <comment>CombGrave</comment>
+ <string>\u0025CC\u000300 \u0025CC\u000301 \u0025CC\u000302 \u0025CC\u000303</string>
+ </test>
+ <test label="U+0308">
+ <comment>CombDiaer</comment>
+ <string>\u0025CC\u000308</string>
+ </test>
+ <test label="U+030A">
+ <comment>CombRingAbv</comment>
+ <string>\u0025CC\u00030A</string>
+ </test>
+ <test label="U+2010">
+ <comment>Hyphen</comment>
+ <string>\u002010 \u002011</string>
+ </test>
+ <test label="U+25CC">
+ <comment>DottedCirc</comment>
+ <string>\u0025CC</string>
+ </test>
+ </testgroup>
+</ftml>
diff --git a/tests/reference/ufo/psfgenftml.lg b/tests/reference/ufo/psfgenftml.lg
new file mode 100644
index 0000000..0f1a72c
--- /dev/null
+++ b/tests/reference/ufo/psfgenftml.lg
@@ -0,0 +1,19 @@
+2021-06-29 14:42:20 Progress: Running: psfgenftml -i tests/input/psfgenftml.csv -l local/testresults/ufo/psfgenftml.log tests/input/font-psf-test/source/PsfTest-Italic.ufo local/testresults/ufo/psfgenftml.ftml
+2021-06-29 14:42:20 Progress: Opening file for output: @cwd@/local/testresults/ufo/psfgenftml.ftml
+2021-06-29 14:42:20 Progress: Opening file for input: tests/input/psfgenftml.csv
+2021-06-29 14:42:20 Progress: Reading UFO: tests/input/font-psf-test/source/PsfTest-Italic.ufo
+2021-06-29 14:42:20 Progress: Checking fontinfo.plist metadata
+2021-06-29 14:42:20 Warning: openTypeOS2FamilyClass would be removed from fontinfo Old value: [0, 0]
+2021-06-29 14:42:20 Warning: year would be removed from fontinfo Old value: 2021
+2021-06-29 14:42:20 Warning: capHeight would be updated Old value: 1485.3, new value: 1485
+2021-06-29 14:42:20 Warning: styleMapFamilyName would be uppdated Old value: Psf test, new value: Psf Test
+2021-06-29 14:42:20 Warning: openTypeOS2TypoLineGap would be updated Old value: 1, new value: 0
+2021-06-29 14:42:20 Warning: openTypeOS2Selection would be added New value: [7]
+2021-06-29 14:42:20 Warning: openTypeNamePreferredFamilyName would be updated Old value: Psf Testing, new value: Psf Test
+2021-06-29 14:42:20 Progress: Checking lib.plist metadata
+2021-06-29 14:42:20 Warning: com.schriftgestaltung.disablesAutomaticAlignment would be deleted - obsolete key Old value: True
+2021-06-29 14:42:20 Warning: com.schriftgestaltung.disablesLastChange would be deleted - obsolete key Old value: True
+2021-06-29 14:42:20 Progress: Check & fix results:- Errors: 0, Changes to make: 9, Other warnings: 0
+2021-06-29 14:42:20 Progress: See log file for details
+2021-06-29 14:42:21 Warning: glyph_data line 39: psname A previously seen; ignored
+2021-06-29 14:42:21 Warning: glyph_data line 116: empty glyph name in glyph_data; ignored
diff --git a/tests/reference/ufo/psfglyphs2ufo.lg b/tests/reference/ufo/psfglyphs2ufo.lg
new file mode 100644
index 0000000..249bf00
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo.lg
@@ -0,0 +1,13 @@
+2020-10-22 11:30:51 Progress: Running: psfglyphs2ufo --nofea tests/input/font-psf-test/source/PsfTestRoman.glyphs local/testresults/ufo/psfglyphs2ufo -l local/testresults/ufo/psfglyphs2ufo.log
+2020-10-22 11:30:51 Progress: Fixing data in PsfTest-Regular
+2020-10-22 11:30:51 Progress: Checking lib.plist
+2020-10-22 11:30:51 Progress: Checking fontinfo.plist
+2020-10-22 11:30:51 Progress: Writing out local/testresults/ufo/psfglyphs2ufo/PsfTest-Regular.ufo
+2020-10-22 11:30:51 Progress: Fixing data in PsfTest-Bold
+2020-10-22 11:30:51 Progress: Checking lib.plist
+2020-10-22 11:30:51 Progress: Checking fontinfo.plist
+2020-10-22 11:30:51 Progress: Writing out local/testresults/ufo/psfglyphs2ufo/PsfTest-Bold.ufo
+2020-10-22 11:30:51 Error: The following obsolete keys were found. They may have been in the original UFO or you may have an old version of glyphsLib installed
+ PsfTest-Regular: com.schriftgestaltung.disablesAutomaticAlignment, com.schriftgestaltung.disablesLastChange,
+ PsfTest-Bold: com.schriftgestaltung.disablesAutomaticAlignment, com.schriftgestaltung.disablesLastChange,
+
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/fontinfo.plist b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/fontinfo.plist
new file mode 100644
index 0000000..7986300
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/fontinfo.plist
@@ -0,0 +1,245 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>ascender</key>
+ <integer>2100</integer>
+ <key>capHeight</key>
+ <integer>1485</integer>
+ <key>copyright</key>
+ <string>Copyright (c) 2004-2021 SIL International</string>
+ <key>descender</key>
+ <integer>-550</integer>
+ <key>familyName</key>
+ <string>Psf Test</string>
+ <key>note</key>
+ <string>Test note
+Second line
+
+Third line
+</string>
+ <key>openTypeHeadCreated</key>
+ <string>2021/10/22 11:32:25</string>
+ <key>openTypeHheaAscender</key>
+ <integer>2100</integer>
+ <key>openTypeHheaDescender</key>
+ <integer>-550</integer>
+ <key>openTypeHheaLineGap</key>
+ <integer>0</integer>
+ <key>openTypeNameDescription</key>
+ <string>Copyright (c) 2004-2021 SIL International</string>
+ <key>openTypeNameDesigner</key>
+ <string>Victor Gaultney, Annie Olsen, Julie Remington, Don Collingsworth, Eric Hays, Becca Hirsbrunner</string>
+ <key>openTypeNameDesignerURL</key>
+ <string>http://scripts.sil.org/</string>
+ <key>openTypeNameLicense</key>
+ <string>Copyright (c) 2004-2021 SIL International (http://www.sil.org/) with Reserved Font Names "Andika" and "SIL".
+
+This Font Software is licensed under the SIL Open Font License, Version 1.1. This license is copied below, and is also available with a FAQ at: http://scripts.sil.org/OFL
+
+
+-----------------------------------------------------------
+SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
+-----------------------------------------------------------
+
+PREAMBLE
+The goals of the Open Font License (OFL) are to stimulate worldwide development of collaborative font projects, to support the font creation efforts of academic and linguistic communities, and to provide a free and open framework in which fonts may be shared and improved in partnership with others.
+
+The OFL allows the licensed fonts to be used, studied, modified and redistributed freely as long as they are not sold by themselves. The fonts, including any derivative works, can be bundled, embedded, redistributed and/or sold with any software provided that any reserved names are not used by derivative works. The fonts and derivatives, however, cannot be released under any other type of license. The requirement for fonts to remain under this license does not apply to any document created using the fonts or their derivatives.
+
+DEFINITIONS
+"Font Software" refers to the set of files released by the Copyright Holder(s) under this license and clearly marked as such. This may include source files, build scripts and documentation.
+
+"Reserved Font Name" refers to any names specified as such after the copyright statement(s).
+
+"Original Version" refers to the collection of Font Software components as distributed by the Copyright Holder(s).
+
+"Modified Version" refers to any derivative made by adding to, deleting, or substituting -- in part or in whole -- any of the components of the Original Version, by changing formats or by porting the Font Software to a new environment.
+
+"Author" refers to any designer, engineer, programmer, technical writer or other person who contributed to the Font Software.
+
+PERMISSION &amp; CONDITIONS
+Permission is hereby granted, free of charge, to any person obtaining a copy of the Font Software, to use, study, copy, merge, embed, modify, redistribute, and sell modified and unmodified copies of the Font Software, subject to the following conditions:
+
+1) Neither the Font Software nor any of its individual components, in Original or Modified Versions, may be sold by itself.
+
+2) Original or Modified Versions of the Font Software may be bundled, redistributed and/or sold with any software, provided that each copy contains the above copyright notice and this license. These can be included either as stand-alone text files, human-readable headers or in the appropriate machine-readable metadata fields within text or binary files as long as those fields can be easily viewed by the user.
+
+3) No Modified Version of the Font Software may use the Reserved Font Name(s) unless explicit written permission is granted by the corresponding Copyright Holder. This restriction only applies to the primary font name as presented to the users.
+
+4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font Software shall not be used to promote, endorse or advertise any Modified Version, except to acknowledge the contribution(s) of the Copyright Holder(s) and the Author(s) or with their explicit written permission.
+
+5) The Font Software, modified or unmodified, in part or in whole, must be distributed entirely under this license, and must not be distributed under any other license. The requirement for fonts to remain under this license does not apply to any document created using the Font Software.
+
+TERMINATION
+This license becomes null and void if any of the above conditions are not met.
+
+DISCLAIMER
+THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM OTHER DEALINGS IN THE FONT SOFTWARE.</string>
+ <key>openTypeNameLicenseURL</key>
+ <string>http://scripts.sil.org/OFL</string>
+ <key>openTypeNameManufacturer</key>
+ <string>SIL International</string>
+ <key>openTypeNameManufacturerURL</key>
+ <string>http://scripts.sil.org</string>
+ <key>openTypeNamePreferredFamilyName</key>
+ <string>Psf Test</string>
+ <key>openTypeNamePreferredSubfamilyName</key>
+ <string>Bold</string>
+ <key>openTypeNameUniqueID</key>
+ <string>SIL International: Psf Test Bold: 2022</string>
+ <key>openTypeNameVersion</key>
+ <string>Version 5.550</string>
+ <key>openTypeOS2CodePageRanges</key>
+ <array>
+ <integer>0</integer>
+ <integer>1</integer>
+ <integer>2</integer>
+ <integer>4</integer>
+ <integer>7</integer>
+ <integer>8</integer>
+ </array>
+ <key>openTypeOS2FamilyClass</key>
+ <array>
+ <integer>0</integer>
+ <integer>0</integer>
+ </array>
+ <key>openTypeOS2Panose</key>
+ <array>
+ <integer>2</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ </array>
+ <key>openTypeOS2StrikeoutPosition</key>
+ <integer>700</integer>
+ <key>openTypeOS2StrikeoutSize</key>
+ <integer>100</integer>
+ <key>openTypeOS2SubscriptXOffset</key>
+ <integer>0</integer>
+ <key>openTypeOS2SubscriptXSize</key>
+ <integer>1433</integer>
+ <key>openTypeOS2SubscriptYOffset</key>
+ <integer>286</integer>
+ <key>openTypeOS2SubscriptYSize</key>
+ <integer>1331</integer>
+ <key>openTypeOS2SuperscriptXOffset</key>
+ <integer>0</integer>
+ <key>openTypeOS2SuperscriptXSize</key>
+ <integer>1433</integer>
+ <key>openTypeOS2SuperscriptYOffset</key>
+ <integer>976</integer>
+ <key>openTypeOS2SuperscriptYSize</key>
+ <integer>1331</integer>
+ <key>openTypeOS2Type</key>
+ <array/>
+ <key>openTypeOS2TypoAscender</key>
+ <integer>2100</integer>
+ <key>openTypeOS2TypoDescender</key>
+ <integer>-550</integer>
+ <key>openTypeOS2TypoLineGap</key>
+ <integer>0</integer>
+ <key>openTypeOS2UnicodeRanges</key>
+ <array>
+ <integer>0</integer>
+ <integer>1</integer>
+ <integer>6</integer>
+ <integer>7</integer>
+ <integer>31</integer>
+ <integer>33</integer>
+ <integer>35</integer>
+ <integer>36</integer>
+ <integer>37</integer>
+ <integer>38</integer>
+ <integer>39</integer>
+ <integer>40</integer>
+ <integer>45</integer>
+ <integer>46</integer>
+ <integer>47</integer>
+ <integer>57</integer>
+ <integer>60</integer>
+ <integer>62</integer>
+ <integer>64</integer>
+ <integer>67</integer>
+ <integer>69</integer>
+ <integer>89</integer>
+ </array>
+ <key>openTypeOS2VendorID</key>
+ <string>SIL</string>
+ <key>openTypeOS2WeightClass</key>
+ <integer>700</integer>
+ <key>openTypeOS2WidthClass</key>
+ <integer>5</integer>
+ <key>openTypeOS2WinAscent</key>
+ <integer>2100</integer>
+ <key>openTypeOS2WinDescent</key>
+ <integer>550</integer>
+ <key>postscriptBlueValues</key>
+ <array>
+ <integer>-490</integer>
+ <integer>-490</integer>
+ <integer>-25</integer>
+ <integer>0</integer>
+ <integer>1020</integer>
+ <integer>1040</integer>
+ <integer>1455</integer>
+ <integer>1485</integer>
+ <integer>1600</integer>
+ <integer>1620</integer>
+ </array>
+ <key>postscriptFontName</key>
+ <string>PsfTest-Bold</string>
+ <key>postscriptFullName</key>
+ <string>Psf Test Bold</string>
+ <key>postscriptStemSnapH</key>
+ <array>
+ <integer>140</integer>
+ <integer>145</integer>
+ <integer>150</integer>
+ <integer>155</integer>
+ <integer>160</integer>
+ <integer>165</integer>
+ <integer>170</integer>
+ <integer>175</integer>
+ <integer>185</integer>
+ <integer>270</integer>
+ </array>
+ <key>postscriptStemSnapV</key>
+ <array>
+ <integer>165</integer>
+ <integer>180</integer>
+ <integer>185</integer>
+ <integer>190</integer>
+ <integer>195</integer>
+ <integer>200</integer>
+ <integer>205</integer>
+ <integer>270</integer>
+ </array>
+ <key>postscriptUnderlinePosition</key>
+ <integer>-110</integer>
+ <key>postscriptUnderlineThickness</key>
+ <integer>80</integer>
+ <key>styleMapFamilyName</key>
+ <string>Psf Test</string>
+ <key>styleMapStyleName</key>
+ <string>bold</string>
+ <key>styleName</key>
+ <string>Bold</string>
+ <key>trademark</key>
+ <string>Andika is a trademark of SIL International.</string>
+ <key>unitsPerEm</key>
+ <integer>2048</integer>
+ <key>versionMajor</key>
+ <integer>5</integer>
+ <key>versionMinor</key>
+ <integer>550</integer>
+ <key>xHeight</key>
+ <integer>1040</integer>
+</dict>
+</plist>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/A_mpersand.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/A_mpersand.glif
new file mode 100644
index 0000000..f2749f2
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/A_mpersand.glif
@@ -0,0 +1,61 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Ampersand" format="2">
+ <advance width="1355"/>
+ <unicode hex="0026"/>
+ <outline>
+ <contour>
+ <point x="1060" y="600" type="line"/>
+ <point x="996" y="433"/>
+ <point x="715" y="190"/>
+ <point x="540" y="190" type="curve" smooth="yes"/>
+ <point x="425" y="190"/>
+ <point x="335" y="257"/>
+ <point x="335" y="370" type="curve" smooth="yes"/>
+ <point x="335" y="480"/>
+ <point x="411" y="547"/>
+ <point x="585" y="700" type="curve" smooth="yes"/>
+ <point x="766" y="859"/>
+ <point x="925" y="1048"/>
+ <point x="925" y="1190" type="curve" smooth="yes"/>
+ <point x="925" y="1372"/>
+ <point x="777" y="1485"/>
+ <point x="575" y="1485" type="curve" smooth="yes"/>
+ <point x="366" y="1485"/>
+ <point x="190" y="1372"/>
+ <point x="190" y="1160" type="curve" smooth="yes"/>
+ <point x="190" y="1000"/>
+ <point x="407" y="785"/>
+ <point x="590" y="540" type="curve" smooth="yes"/>
+ <point x="859" y="179"/>
+ <point x="1038" y="-25"/>
+ <point x="1090" y="-25" type="curve" smooth="yes"/>
+ <point x="1125" y="-25"/>
+ <point x="1253" y="58"/>
+ <point x="1290" y="90" type="curve"/>
+ <point x="1195" y="130"/>
+ <point x="1060" y="305"/>
+ <point x="785" y="680" type="curve" smooth="yes"/>
+ <point x="619" y="906"/>
+ <point x="420" y="1085"/>
+ <point x="420" y="1170" type="curve" smooth="yes"/>
+ <point x="420" y="1241"/>
+ <point x="483" y="1310"/>
+ <point x="560" y="1310" type="curve" smooth="yes"/>
+ <point x="640" y="1310"/>
+ <point x="695" y="1254"/>
+ <point x="695" y="1175" type="curve" smooth="yes"/>
+ <point x="695" y="1106"/>
+ <point x="628" y="1001"/>
+ <point x="455" y="840" type="curve" smooth="yes"/>
+ <point x="251" y="651"/>
+ <point x="90" y="527"/>
+ <point x="90" y="344" type="curve" smooth="yes"/>
+ <point x="90" y="121"/>
+ <point x="242" y="-25"/>
+ <point x="525" y="-25" type="curve" smooth="yes"/>
+ <point x="808" y="-25"/>
+ <point x="1117" y="264"/>
+ <point x="1195" y="425" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/A_pos.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/A_pos.glif
new file mode 100644
index 0000000..61494e8
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/A_pos.glif
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Apos" format="2">
+ <advance width="625"/>
+ <unicode hex="0027"/>
+ <outline>
+ <contour>
+ <point x="400" y="1045" type="line"/>
+ <point x="405" y="1186"/>
+ <point x="406" y="1339"/>
+ <point x="435" y="1585" type="curve"/>
+ <point x="190" y="1585" type="line"/>
+ <point x="221" y="1339"/>
+ <point x="221" y="1186"/>
+ <point x="225" y="1045" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/A_sterisk.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/A_sterisk.glif
new file mode 100644
index 0000000..ed9d25e
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/A_sterisk.glif
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Asterisk" format="2">
+ <advance width="1040"/>
+ <unicode hex="002A"/>
+ <outline>
+ <contour>
+ <point x="827" y="1493" type="line"/>
+ <point x="747" y="1426"/>
+ <point x="679" y="1367"/>
+ <point x="594" y="1308" type="curve"/>
+ <point x="599" y="1405"/>
+ <point x="609" y="1486"/>
+ <point x="624" y="1600" type="curve"/>
+ <point x="425" y="1600" type="line"/>
+ <point x="444" y="1497"/>
+ <point x="460" y="1412"/>
+ <point x="468" y="1308" type="curve"/>
+ <point x="383" y="1360"/>
+ <point x="312" y="1408"/>
+ <point x="228" y="1476" type="curve"/>
+ <point x="126" y="1306" type="line"/>
+ <point x="231" y="1271"/>
+ <point x="331" y="1234"/>
+ <point x="412" y="1196" type="curve"/>
+ <point x="328" y="1153"/>
+ <point x="243" y="1120"/>
+ <point x="136" y="1077" type="curve"/>
+ <point x="237" y="897" type="line"/>
+ <point x="316" y="968"/>
+ <point x="382" y="1026"/>
+ <point x="466" y="1087" type="curve"/>
+ <point x="459" y="983"/>
+ <point x="449" y="896"/>
+ <point x="431" y="793" type="curve"/>
+ <point x="632" y="793" type="line"/>
+ <point x="610" y="906"/>
+ <point x="602" y="987"/>
+ <point x="593" y="1084" type="curve"/>
+ <point x="682" y="1027"/>
+ <point x="747" y="981"/>
+ <point x="830" y="914" type="curve"/>
+ <point x="936" y="1089" type="line"/>
+ <point x="827" y="1127"/>
+ <point x="743" y="1155"/>
+ <point x="651" y="1196" type="curve"/>
+ <point x="738" y="1241"/>
+ <point x="820" y="1277"/>
+ <point x="924" y="1321" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/A_tS_gn.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/A_tS_gn.glif
new file mode 100644
index 0000000..47fee96
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/A_tS_gn.glif
@@ -0,0 +1,80 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="AtSgn" format="2">
+ <advance width="1742"/>
+ <unicode hex="0040"/>
+ <outline>
+ <contour>
+ <point x="1140" y="10" type="line"/>
+ <point x="1077" y="-34"/>
+ <point x="988" y="-60"/>
+ <point x="895" y="-60" type="curve" smooth="yes"/>
+ <point x="558" y="-60"/>
+ <point x="290" y="204"/>
+ <point x="290" y="605" type="curve" smooth="yes"/>
+ <point x="290" y="973"/>
+ <point x="557" y="1240"/>
+ <point x="895" y="1240" type="curve" smooth="yes"/>
+ <point x="1278" y="1240"/>
+ <point x="1460" y="992"/>
+ <point x="1460" y="670" type="curve" smooth="yes"/>
+ <point x="1460" y="452"/>
+ <point x="1363" y="335"/>
+ <point x="1305" y="335" type="curve" smooth="yes"/>
+ <point x="1256" y="335"/>
+ <point x="1220" y="430"/>
+ <point x="1220" y="650" type="curve" smooth="yes"/>
+ <point x="1220" y="980" type="line"/>
+ <point x="1133" y="1015"/>
+ <point x="986" y="1040"/>
+ <point x="905" y="1040" type="curve" smooth="yes"/>
+ <point x="741" y="1040"/>
+ <point x="618" y="961"/>
+ <point x="535" y="825" type="curve" smooth="yes"/>
+ <point x="488" y="746"/>
+ <point x="460" y="653"/>
+ <point x="460" y="530" type="curve" smooth="yes"/>
+ <point x="460" y="304"/>
+ <point x="606" y="163"/>
+ <point x="740" y="163" type="curve" smooth="yes"/>
+ <point x="867" y="163"/>
+ <point x="1013" y="331"/>
+ <point x="1065" y="455" type="curve"/>
+ <point x="1075" y="287"/>
+ <point x="1153" y="160"/>
+ <point x="1275" y="160" type="curve" smooth="yes"/>
+ <point x="1450" y="160"/>
+ <point x="1650" y="358"/>
+ <point x="1650" y="700" type="curve" smooth="yes"/>
+ <point x="1650" y="1137"/>
+ <point x="1342" y="1425"/>
+ <point x="905" y="1425" type="curve" smooth="yes"/>
+ <point x="480" y="1425"/>
+ <point x="90" y="1136"/>
+ <point x="90" y="575" type="curve" smooth="yes"/>
+ <point x="90" y="38"/>
+ <point x="479" y="-245"/>
+ <point x="880" y="-245" type="curve" smooth="yes"/>
+ <point x="1015" y="-245"/>
+ <point x="1175" y="-198"/>
+ <point x="1275" y="-128" type="curve"/>
+ </contour>
+ <contour>
+ <point x="1020" y="710" type="line"/>
+ <point x="988" y="572"/>
+ <point x="863" y="350"/>
+ <point x="773" y="350" type="curve" smooth="yes"/>
+ <point x="701" y="350"/>
+ <point x="660" y="428"/>
+ <point x="660" y="575" type="curve" smooth="yes"/>
+ <point x="660" y="652"/>
+ <point x="682" y="737"/>
+ <point x="720" y="786" type="curve" smooth="yes"/>
+ <point x="756" y="831"/>
+ <point x="807" y="855"/>
+ <point x="875" y="855" type="curve" smooth="yes"/>
+ <point x="949" y="855"/>
+ <point x="987" y="836"/>
+ <point x="1020" y="820" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/C_ircumA_ccent.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/C_ircumA_ccent.glif
new file mode 100644
index 0000000..7258b7d
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/C_ircumA_ccent.glif
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="CircumAccent" format="2">
+ <advance width="880"/>
+ <unicode hex="005E"/>
+ <anchor x="440" y="1635" name="U"/>
+ <outline>
+ <contour>
+ <point x="888" y="1200" type="line"/>
+ <point x="598" y="1600" type="line"/>
+ <point x="298" y="1600" type="line"/>
+ <point x="8" y="1200" type="line"/>
+ <point x="248" y="1200" type="line"/>
+ <point x="448" y="1430" type="line"/>
+ <point x="648" y="1200" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/C_olon.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/C_olon.glif
new file mode 100644
index 0000000..ae4801a
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/C_olon.glif
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Colon" format="2">
+ <advance width="710"/>
+ <unicode hex="003A"/>
+ <outline>
+ <contour>
+ <point x="200" y="150" type="curve" smooth="yes"/>
+ <point x="200" y="46"/>
+ <point x="274" y="-25"/>
+ <point x="375" y="-25" type="curve" smooth="yes"/>
+ <point x="477" y="-25"/>
+ <point x="550" y="46"/>
+ <point x="550" y="150" type="curve" smooth="yes"/>
+ <point x="550" y="252"/>
+ <point x="477" y="325"/>
+ <point x="375" y="325" type="curve" smooth="yes"/>
+ <point x="274" y="325"/>
+ <point x="200" y="252"/>
+ </contour>
+ <contour>
+ <point x="200" y="750" type="curve" smooth="yes"/>
+ <point x="200" y="646"/>
+ <point x="274" y="575"/>
+ <point x="375" y="575" type="curve" smooth="yes"/>
+ <point x="477" y="575"/>
+ <point x="550" y="646"/>
+ <point x="550" y="750" type="curve" smooth="yes"/>
+ <point x="550" y="852"/>
+ <point x="477" y="925"/>
+ <point x="375" y="925" type="curve" smooth="yes"/>
+ <point x="274" y="925"/>
+ <point x="200" y="852"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/C_ombA_cute.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/C_ombA_cute.glif
new file mode 100644
index 0000000..5574223
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/C_ombA_cute.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="CombAcute" format="2">
+ <unicode hex="0301"/>
+ <anchor x="-600" y="1635" name="U"/>
+ <anchor x="-540" y="1100" name="_U"/>
+ <outline>
+ <contour>
+ <point x="-470" y="1600" type="line"/>
+ <point x="-760" y="1200" type="line"/>
+ <point x="-520" y="1200" type="line"/>
+ <point x="-120" y="1600" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/C_ombC_ircum.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/C_ombC_ircum.glif
new file mode 100644
index 0000000..ca30491
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/C_ombC_ircum.glif
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="CombCircum" format="2">
+ <unicode hex="0302"/>
+ <anchor x="-588" y="1635" name="U"/>
+ <anchor x="-580" y="1100" name="_U"/>
+ <outline>
+ <contour>
+ <point x="-140" y="1200" type="line"/>
+ <point x="-430" y="1600" type="line"/>
+ <point x="-730" y="1600" type="line"/>
+ <point x="-1020" y="1200" type="line"/>
+ <point x="-780" y="1200" type="line"/>
+ <point x="-580" y="1430" type="line"/>
+ <point x="-380" y="1200" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/C_ombD_iaer.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/C_ombD_iaer.glif
new file mode 100644
index 0000000..5a15368
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/C_ombD_iaer.glif
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="CombDiaer" format="2">
+ <unicode hex="0308"/>
+ <anchor x="-580" y="1585" name="U"/>
+ <anchor x="-580" y="1100" name="_U"/>
+ <outline>
+ <contour>
+ <point x="-510" y="1385" type="curve" smooth="yes"/>
+ <point x="-510" y="1281"/>
+ <point x="-436" y="1210"/>
+ <point x="-335" y="1210" type="curve" smooth="yes"/>
+ <point x="-233" y="1210"/>
+ <point x="-160" y="1281"/>
+ <point x="-160" y="1385" type="curve" smooth="yes"/>
+ <point x="-160" y="1487"/>
+ <point x="-233" y="1560"/>
+ <point x="-335" y="1560" type="curve" smooth="yes"/>
+ <point x="-436" y="1560"/>
+ <point x="-510" y="1487"/>
+ </contour>
+ <contour>
+ <point x="-1000" y="1385" type="curve" smooth="yes"/>
+ <point x="-1000" y="1281"/>
+ <point x="-926" y="1210"/>
+ <point x="-825" y="1210" type="curve" smooth="yes"/>
+ <point x="-723" y="1210"/>
+ <point x="-650" y="1281"/>
+ <point x="-650" y="1385" type="curve" smooth="yes"/>
+ <point x="-650" y="1487"/>
+ <point x="-723" y="1560"/>
+ <point x="-825" y="1560" type="curve" smooth="yes"/>
+ <point x="-926" y="1560"/>
+ <point x="-1000" y="1487"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/C_ombG_rave.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/C_ombG_rave.glif
new file mode 100644
index 0000000..33bed8f
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/C_ombG_rave.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="CombGrave" format="2">
+ <unicode hex="0300"/>
+ <anchor x="-590" y="1635" name="U"/>
+ <anchor x="-630" y="1100" name="_U"/>
+ <outline>
+ <contour>
+ <point x="-1050" y="1600" type="line"/>
+ <point x="-650" y="1200" type="line"/>
+ <point x="-410" y="1200" type="line"/>
+ <point x="-700" y="1600" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/C_ombR_ingA_bv.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/C_ombR_ingA_bv.glif
new file mode 100644
index 0000000..7e03146
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/C_ombR_ingA_bv.glif
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="CombRingAbv" format="2">
+ <unicode hex="030A"/>
+ <anchor x="-570" y="1635" name="U"/>
+ <anchor x="-572" y="1100" name="_U"/>
+ <outline>
+ <contour>
+ <point x="-475" y="1400" type="curve" smooth="yes"/>
+ <point x="-475" y="1345"/>
+ <point x="-515" y="1305"/>
+ <point x="-570" y="1305" type="curve" smooth="yes"/>
+ <point x="-625" y="1305"/>
+ <point x="-665" y="1345"/>
+ <point x="-665" y="1400" type="curve" smooth="yes"/>
+ <point x="-665" y="1455"/>
+ <point x="-625" y="1495"/>
+ <point x="-570" y="1495" type="curve" smooth="yes"/>
+ <point x="-515" y="1495"/>
+ <point x="-475" y="1455"/>
+ </contour>
+ <contour>
+ <point x="-815" y="1400" type="curve" smooth="yes"/>
+ <point x="-815" y="1260"/>
+ <point x="-710" y="1160"/>
+ <point x="-570" y="1160" type="curve" smooth="yes"/>
+ <point x="-430" y="1160"/>
+ <point x="-325" y="1260"/>
+ <point x="-325" y="1400" type="curve" smooth="yes"/>
+ <point x="-325" y="1540"/>
+ <point x="-430" y="1640"/>
+ <point x="-570" y="1640" type="curve" smooth="yes"/>
+ <point x="-710" y="1640"/>
+ <point x="-815" y="1540"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/C_ombT_ilde.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/C_ombT_ilde.glif
new file mode 100644
index 0000000..ee23af5
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/C_ombT_ilde.glif
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="CombTilde" format="2">
+ <unicode hex="0303"/>
+ <anchor x="-580" y="1490" name="U"/>
+ <anchor x="-580" y="1100" name="_U"/>
+ <outline>
+ <contour>
+ <point x="-830" y="1190" type="line"/>
+ <point x="-824" y="1232"/>
+ <point x="-803" y="1280"/>
+ <point x="-753" y="1280" type="curve" smooth="yes"/>
+ <point x="-710" y="1280"/>
+ <point x="-653" y="1264"/>
+ <point x="-570" y="1229" type="curve" smooth="yes"/>
+ <point x="-500" y="1199"/>
+ <point x="-448" y="1180"/>
+ <point x="-386" y="1180" type="curve" smooth="yes"/>
+ <point x="-250" y="1180"/>
+ <point x="-155" y="1307"/>
+ <point x="-155" y="1480" type="curve"/>
+ <point x="-310" y="1480" type="line"/>
+ <point x="-318" y="1438"/>
+ <point x="-340" y="1390"/>
+ <point x="-387" y="1390" type="curve" smooth="yes"/>
+ <point x="-435" y="1390"/>
+ <point x="-472" y="1408"/>
+ <point x="-550" y="1437" type="curve" smooth="yes"/>
+ <point x="-629" y="1466"/>
+ <point x="-695" y="1490"/>
+ <point x="-760" y="1490" type="curve" smooth="yes"/>
+ <point x="-892" y="1490"/>
+ <point x="-985" y="1349"/>
+ <point x="-985" y="1190" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/C_omma.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/C_omma.glif
new file mode 100644
index 0000000..9d4845e
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/C_omma.glif
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Comma" format="2">
+ <advance width="665"/>
+ <unicode hex="002C"/>
+ <outline>
+ <contour>
+ <point x="185" y="50" type="line"/>
+ <point x="345" y="50" type="line"/>
+ <point x="345" y="-34"/>
+ <point x="290" y="-153"/>
+ <point x="185" y="-265" type="curve"/>
+ <point x="330" y="-335" type="line"/>
+ <point x="454" y="-228"/>
+ <point x="560" y="-49"/>
+ <point x="560" y="130" type="curve" smooth="yes"/>
+ <point x="560" y="254"/>
+ <point x="489" y="340"/>
+ <point x="375" y="340" type="curve" smooth="yes"/>
+ <point x="262" y="340"/>
+ <point x="185" y="255"/>
+ <point x="185" y="180" type="curve" smooth="yes"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/D_igitE_ight.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/D_igitE_ight.glif
new file mode 100644
index 0000000..a59fff4
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/D_igitE_ight.glif
@@ -0,0 +1,63 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitEight" format="2">
+ <advance width="1200"/>
+ <unicode hex="0038"/>
+ <anchor x="600" y="-100" name="L"/>
+ <anchor x="600" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="600" y="-25" type="curve" smooth="yes"/>
+ <point x="877" y="-25"/>
+ <point x="1130" y="144"/>
+ <point x="1130" y="415" type="curve" smooth="yes"/>
+ <point x="1130" y="641"/>
+ <point x="985" y="739"/>
+ <point x="875" y="795" type="curve"/>
+ <point x="953" y="841"/>
+ <point x="1060" y="923"/>
+ <point x="1060" y="1105" type="curve" smooth="yes"/>
+ <point x="1060" y="1350"/>
+ <point x="860" y="1485"/>
+ <point x="610" y="1485" type="curve" smooth="yes"/>
+ <point x="361" y="1485"/>
+ <point x="140" y="1350"/>
+ <point x="140" y="1105" type="curve" smooth="yes"/>
+ <point x="140" y="923"/>
+ <point x="252" y="838"/>
+ <point x="330" y="795" type="curve"/>
+ <point x="201" y="725"/>
+ <point x="70" y="631"/>
+ <point x="70" y="405" type="curve" smooth="yes"/>
+ <point x="70" y="134"/>
+ <point x="324" y="-25"/>
+ </contour>
+ <contour>
+ <point x="810" y="1100" type="curve" smooth="yes"/>
+ <point x="810" y="974"/>
+ <point x="733" y="895"/>
+ <point x="600" y="895" type="curve" smooth="yes"/>
+ <point x="467" y="895"/>
+ <point x="390" y="974"/>
+ <point x="390" y="1100" type="curve" smooth="yes"/>
+ <point x="390" y="1217"/>
+ <point x="477" y="1290"/>
+ <point x="600" y="1290" type="curve" smooth="yes"/>
+ <point x="743" y="1290"/>
+ <point x="810" y="1207"/>
+ </contour>
+ <contour>
+ <point x="865" y="435" type="curve" smooth="yes"/>
+ <point x="865" y="300"/>
+ <point x="768" y="185"/>
+ <point x="600" y="185" type="curve" smooth="yes"/>
+ <point x="440" y="185"/>
+ <point x="335" y="300"/>
+ <point x="335" y="435" type="curve" smooth="yes"/>
+ <point x="335" y="582"/>
+ <point x="450" y="680"/>
+ <point x="600" y="680" type="curve" smooth="yes"/>
+ <point x="748" y="680"/>
+ <point x="865" y="582"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/D_igitF_ive.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/D_igitF_ive.glif
new file mode 100644
index 0000000..102780d
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/D_igitF_ive.glif
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitFive" format="2">
+ <advance width="1200"/>
+ <unicode hex="0035"/>
+ <anchor x="600" y="-100" name="L"/>
+ <anchor x="600" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="175" y="645" type="line"/>
+ <point x="299" y="693"/>
+ <point x="404" y="710"/>
+ <point x="510" y="710" type="curve" smooth="yes"/>
+ <point x="670" y="710"/>
+ <point x="810" y="632"/>
+ <point x="810" y="470" type="curve" smooth="yes"/>
+ <point x="810" y="318"/>
+ <point x="690" y="215"/>
+ <point x="530" y="215" type="curve" smooth="yes"/>
+ <point x="390" y="215"/>
+ <point x="274" y="252"/>
+ <point x="140" y="360" type="curve"/>
+ <point x="100" y="80" type="line"/>
+ <point x="225" y="2"/>
+ <point x="365" y="-25"/>
+ <point x="520" y="-25" type="curve" smooth="yes"/>
+ <point x="833" y="-25"/>
+ <point x="1090" y="163"/>
+ <point x="1090" y="475" type="curve" smooth="yes"/>
+ <point x="1090" y="752"/>
+ <point x="882" y="930"/>
+ <point x="605" y="930" type="curve" smooth="yes"/>
+ <point x="543" y="930"/>
+ <point x="468" y="911"/>
+ <point x="435" y="895" type="curve"/>
+ <point x="435" y="1215" type="line"/>
+ <point x="765" y="1215" type="line" smooth="yes"/>
+ <point x="849" y="1215"/>
+ <point x="955" y="1211"/>
+ <point x="1030" y="1195" type="curve"/>
+ <point x="1030" y="1460" type="line"/>
+ <point x="175" y="1460" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/D_igitF_our.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/D_igitF_our.glif
new file mode 100644
index 0000000..7d2cbe6
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/D_igitF_our.glif
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitFour" format="2">
+ <advance width="1200"/>
+ <unicode hex="0034"/>
+ <anchor x="607" y="-100" name="L"/>
+ <anchor x="607" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1155" y="345" type="line"/>
+ <point x="1155" y="570" type="line"/>
+ <point x="995" y="570" type="line"/>
+ <point x="995" y="1460" type="line"/>
+ <point x="695" y="1460" type="line"/>
+ <point x="60" y="570" type="line"/>
+ <point x="60" y="345" type="line"/>
+ <point x="730" y="345" type="line"/>
+ <point x="730" y="0" type="line"/>
+ <point x="995" y="0" type="line"/>
+ <point x="995" y="345" type="line"/>
+ </contour>
+ <contour>
+ <point x="730" y="1145" type="line"/>
+ <point x="730" y="570" type="line"/>
+ <point x="305" y="570" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/D_igitN_ine.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/D_igitN_ine.glif
new file mode 100644
index 0000000..b1e153b
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/D_igitN_ine.glif
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitNine" format="2">
+ <advance width="1200"/>
+ <unicode hex="0039"/>
+ <anchor x="600" y="-100" name="L"/>
+ <anchor x="600" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="154" y="65" type="line"/>
+ <point x="248" y="5"/>
+ <point x="364" y="-25"/>
+ <point x="492" y="-25" type="curve" smooth="yes"/>
+ <point x="967" y="-25"/>
+ <point x="1135" y="411"/>
+ <point x="1135" y="780" type="curve" smooth="yes"/>
+ <point x="1135" y="1150"/>
+ <point x="977" y="1485"/>
+ <point x="589" y="1485" type="curve" smooth="yes"/>
+ <point x="310" y="1485"/>
+ <point x="70" y="1300"/>
+ <point x="70" y="1002" type="curve" smooth="yes"/>
+ <point x="70" y="763"/>
+ <point x="272" y="576"/>
+ <point x="550" y="576" type="curve" smooth="yes"/>
+ <point x="741" y="576"/>
+ <point x="913" y="707"/>
+ <point x="1010" y="868" type="curve"/>
+ <point x="939" y="991" type="line"/>
+ <point x="865" y="877"/>
+ <point x="729" y="790"/>
+ <point x="574" y="790" type="curve" smooth="yes"/>
+ <point x="425" y="790"/>
+ <point x="326" y="890"/>
+ <point x="326" y="1036" type="curve" smooth="yes"/>
+ <point x="326" y="1153"/>
+ <point x="425" y="1250"/>
+ <point x="573" y="1250" type="curve" smooth="yes"/>
+ <point x="773" y="1250"/>
+ <point x="870" y="1102"/>
+ <point x="870" y="813" type="curve" smooth="yes"/>
+ <point x="870" y="326"/>
+ <point x="699" y="210"/>
+ <point x="502" y="210" type="curve" smooth="yes"/>
+ <point x="406" y="210"/>
+ <point x="294" y="234"/>
+ <point x="208" y="320" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/D_igitO_ne.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/D_igitO_ne.glif
new file mode 100644
index 0000000..c744b9f
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/D_igitO_ne.glif
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitOne" format="2">
+ <advance width="1200"/>
+ <unicode hex="0031"/>
+ <anchor x="600" y="-100" name="L"/>
+ <anchor x="600" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1075" y="0" type="line"/>
+ <point x="1075" y="235" type="line"/>
+ <point x="767" y="235" type="line"/>
+ <point x="767" y="1460" type="line"/>
+ <point x="492" y="1460" type="line"/>
+ <point x="177" y="1278" type="line"/>
+ <point x="212" y="1018" type="line"/>
+ <point x="492" y="1170" type="line"/>
+ <point x="492" y="235" type="line"/>
+ <point x="185" y="235" type="line"/>
+ <point x="185" y="0" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/D_igitS_even.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/D_igitS_even.glif
new file mode 100644
index 0000000..63fb1c4
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/D_igitS_even.glif
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitSeven" format="2">
+ <advance width="1200"/>
+ <unicode hex="0037"/>
+ <anchor x="600" y="-100" name="L"/>
+ <anchor x="600" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="520" y="0" type="line"/>
+ <point x="649" y="459"/>
+ <point x="834" y="855"/>
+ <point x="1130" y="1260" type="curve"/>
+ <point x="1130" y="1460" type="line"/>
+ <point x="100" y="1460" type="line"/>
+ <point x="100" y="1195" type="line"/>
+ <point x="176" y="1211"/>
+ <point x="292" y="1215"/>
+ <point x="480" y="1215" type="curve" smooth="yes"/>
+ <point x="800" y="1215" type="line"/>
+ <point x="542" y="842"/>
+ <point x="409" y="566"/>
+ <point x="235" y="0" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/D_igitS_ix.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/D_igitS_ix.glif
new file mode 100644
index 0000000..7526cc6
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/D_igitS_ix.glif
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitSix" format="2">
+ <advance width="1200"/>
+ <unicode hex="0036"/>
+ <anchor x="610" y="-100" name="L"/>
+ <anchor x="610" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1073" y="1395" type="line"/>
+ <point x="969" y="1465"/>
+ <point x="873" y="1485"/>
+ <point x="735" y="1485" type="curve" smooth="yes"/>
+ <point x="260" y="1485"/>
+ <point x="90" y="1069"/>
+ <point x="90" y="680" type="curve" smooth="yes"/>
+ <point x="90" y="223"/>
+ <point x="297" y="-25"/>
+ <point x="652" y="-25" type="curve" smooth="yes"/>
+ <point x="955" y="-25"/>
+ <point x="1155" y="179"/>
+ <point x="1155" y="470" type="curve" smooth="yes"/>
+ <point x="1155" y="729"/>
+ <point x="963" y="925"/>
+ <point x="675" y="925" type="curve" smooth="yes"/>
+ <point x="484" y="925"/>
+ <point x="338" y="810"/>
+ <point x="225" y="655" type="curve"/>
+ <point x="290" y="540" type="line"/>
+ <point x="372" y="643"/>
+ <point x="500" y="710"/>
+ <point x="655" y="710" type="curve" smooth="yes"/>
+ <point x="814" y="710"/>
+ <point x="900" y="601"/>
+ <point x="900" y="455" type="curve" smooth="yes"/>
+ <point x="900" y="329"/>
+ <point x="803" y="210"/>
+ <point x="656" y="210" type="curve" smooth="yes"/>
+ <point x="474" y="210"/>
+ <point x="355" y="386"/>
+ <point x="355" y="645" type="curve" smooth="yes"/>
+ <point x="355" y="1132"/>
+ <point x="528" y="1250"/>
+ <point x="725" y="1250" type="curve" smooth="yes"/>
+ <point x="821" y="1250"/>
+ <point x="923" y="1226"/>
+ <point x="1009" y="1140" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/D_igitT_hree.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/D_igitT_hree.glif
new file mode 100644
index 0000000..883bd62
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/D_igitT_hree.glif
@@ -0,0 +1,52 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitThree" format="2">
+ <advance width="1200"/>
+ <unicode hex="0033"/>
+ <anchor x="600" y="-100" name="L"/>
+ <anchor x="600" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="390" y="885" type="line"/>
+ <point x="390" y="645" type="line"/>
+ <point x="480" y="645" type="line" smooth="yes"/>
+ <point x="706" y="645"/>
+ <point x="835" y="548"/>
+ <point x="835" y="425" type="curve" smooth="yes"/>
+ <point x="835" y="291"/>
+ <point x="708" y="210"/>
+ <point x="565" y="210" type="curve" smooth="yes"/>
+ <point x="405" y="210"/>
+ <point x="244" y="282"/>
+ <point x="135" y="405" type="curve"/>
+ <point x="100" y="130" type="line"/>
+ <point x="205" y="32"/>
+ <point x="368" y="-25"/>
+ <point x="545" y="-25" type="curve" smooth="yes"/>
+ <point x="874" y="-25"/>
+ <point x="1120" y="170"/>
+ <point x="1120" y="405" type="curve" smooth="yes"/>
+ <point x="1120" y="672"/>
+ <point x="892" y="756"/>
+ <point x="750" y="780" type="curve"/>
+ <point x="892" y="809"/>
+ <point x="1070" y="957"/>
+ <point x="1070" y="1140" type="curve" smooth="yes"/>
+ <point x="1070" y="1354"/>
+ <point x="868" y="1485"/>
+ <point x="580" y="1485" type="curve" smooth="yes"/>
+ <point x="413" y="1485"/>
+ <point x="240" y="1416"/>
+ <point x="160" y="1325" type="curve"/>
+ <point x="195" y="1095" type="line"/>
+ <point x="308" y="1211"/>
+ <point x="436" y="1250"/>
+ <point x="590" y="1250" type="curve" smooth="yes"/>
+ <point x="689" y="1250"/>
+ <point x="791" y="1193"/>
+ <point x="791" y="1102" type="curve" smooth="yes"/>
+ <point x="791" y="994"/>
+ <point x="662" y="885"/>
+ <point x="480" y="885" type="curve" smooth="yes"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/D_igitT_wo.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/D_igitT_wo.glif
new file mode 100644
index 0000000..1d73732
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/D_igitT_wo.glif
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitTwo" format="2">
+ <advance width="1200"/>
+ <unicode hex="0032"/>
+ <anchor x="600" y="-100" name="L"/>
+ <anchor x="560" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1090" y="260" type="line"/>
+ <point x="1010" y="246"/>
+ <point x="942" y="245"/>
+ <point x="745" y="245" type="curve" smooth="yes"/>
+ <point x="480" y="245" type="line"/>
+ <point x="699" y="422"/>
+ <point x="1046" y="739"/>
+ <point x="1046" y="1065" type="curve" smooth="yes"/>
+ <point x="1046" y="1323"/>
+ <point x="850" y="1485"/>
+ <point x="560" y="1485" type="curve" smooth="yes"/>
+ <point x="391" y="1485"/>
+ <point x="196" y="1402"/>
+ <point x="105" y="1290" type="curve"/>
+ <point x="170" y="1050" type="line"/>
+ <point x="259" y="1158"/>
+ <point x="412" y="1235"/>
+ <point x="535" y="1235" type="curve" smooth="yes"/>
+ <point x="688" y="1235"/>
+ <point x="758" y="1133"/>
+ <point x="758" y="1015" type="curve" smooth="yes"/>
+ <point x="758" y="758"/>
+ <point x="381" y="415"/>
+ <point x="110" y="220" type="curve"/>
+ <point x="110" y="0" type="line"/>
+ <point x="1090" y="0" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/D_igitZ_ero.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/D_igitZ_ero.glif
new file mode 100644
index 0000000..01f4532
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/D_igitZ_ero.glif
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitZero" format="2">
+ <advance width="1200"/>
+ <unicode hex="0030"/>
+ <anchor x="605" y="-100" name="L"/>
+ <anchor x="605" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="850" y="715" type="curve" smooth="yes"/>
+ <point x="850" y="368"/>
+ <point x="762" y="205"/>
+ <point x="600" y="205" type="curve" smooth="yes"/>
+ <point x="432" y="205"/>
+ <point x="350" y="375"/>
+ <point x="350" y="745" type="curve" smooth="yes"/>
+ <point x="350" y="1093"/>
+ <point x="437" y="1255"/>
+ <point x="600" y="1255" type="curve" smooth="yes"/>
+ <point x="772" y="1255"/>
+ <point x="850" y="1086"/>
+ </contour>
+ <contour>
+ <point x="1135" y="740" type="curve" smooth="yes"/>
+ <point x="1135" y="1286"/>
+ <point x="950" y="1485"/>
+ <point x="610" y="1485" type="curve" smooth="yes"/>
+ <point x="291" y="1485"/>
+ <point x="65" y="1283"/>
+ <point x="65" y="720" type="curve" smooth="yes"/>
+ <point x="65" y="165"/>
+ <point x="271" y="-25"/>
+ <point x="590" y="-25" type="curve" smooth="yes"/>
+ <point x="911" y="-25"/>
+ <point x="1135" y="161"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/D_ollarS_gn.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/D_ollarS_gn.glif
new file mode 100644
index 0000000..f8b49cd
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/D_ollarS_gn.glif
@@ -0,0 +1,57 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DollarSgn" format="2">
+ <advance width="1200"/>
+ <unicode hex="0024"/>
+ <outline>
+ <contour>
+ <point x="1006" y="1316" type="line"/>
+ <point x="886" y="1374"/>
+ <point x="764" y="1389"/>
+ <point x="623" y="1389" type="curve" smooth="yes"/>
+ <point x="317" y="1389"/>
+ <point x="150" y="1203"/>
+ <point x="150" y="1017" type="curve" smooth="yes"/>
+ <point x="150" y="830"/>
+ <point x="275" y="730"/>
+ <point x="540" y="623" type="curve" smooth="yes"/>
+ <point x="802" y="517"/>
+ <point x="851" y="472"/>
+ <point x="851" y="386" type="curve" smooth="yes"/>
+ <point x="851" y="267"/>
+ <point x="744" y="211"/>
+ <point x="586" y="211" type="curve" smooth="yes"/>
+ <point x="440" y="211"/>
+ <point x="297" y="281"/>
+ <point x="195" y="383" type="curve"/>
+ <point x="123" y="124" type="line"/>
+ <point x="216" y="49"/>
+ <point x="388" y="0"/>
+ <point x="586" y="0" type="curve" smooth="yes"/>
+ <point x="847" y="0"/>
+ <point x="1086" y="147"/>
+ <point x="1086" y="414" type="curve" smooth="yes"/>
+ <point x="1086" y="633"/>
+ <point x="927" y="723"/>
+ <point x="679" y="826" type="curve" smooth="yes"/>
+ <point x="431" y="929"/>
+ <point x="385" y="969"/>
+ <point x="385" y="1040" type="curve" smooth="yes"/>
+ <point x="385" y="1132"/>
+ <point x="466" y="1188"/>
+ <point x="613" y="1188" type="curve" smooth="yes"/>
+ <point x="741" y="1188"/>
+ <point x="876" y="1154"/>
+ <point x="949" y="1077" type="curve"/>
+ </contour>
+ <contour>
+ <point x="548" y="1600" type="line"/>
+ <point x="548" y="788" type="line"/>
+ <point x="518" y="726" type="line"/>
+ <point x="518" y="-220" type="line"/>
+ <point x="688" y="-220" type="line"/>
+ <point x="688" y="668" type="line"/>
+ <point x="718" y="734" type="line"/>
+ <point x="718" y="1600" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/D_ottedC_irc.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/D_ottedC_irc.glif
new file mode 100644
index 0000000..4cf5cb4
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/D_ottedC_irc.glif
@@ -0,0 +1,235 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DottedCirc" format="2">
+ <advance width="1106"/>
+ <unicode hex="25CC"/>
+ <anchor x="553" y="0" name="H"/>
+ <anchor x="553" y="-100" name="L"/>
+ <anchor x="810" y="0" name="O"/>
+ <anchor x="553" y="1000" name="U"/>
+ <outline>
+ <contour>
+ <point x="443" y="837" type="curve" smooth="yes"/>
+ <point x="443" y="864"/>
+ <point x="423" y="885"/>
+ <point x="398" y="885" type="curve" smooth="yes"/>
+ <point x="371" y="885"/>
+ <point x="348" y="861"/>
+ <point x="348" y="837" type="curve" smooth="yes"/>
+ <point x="348" y="809"/>
+ <point x="372" y="789"/>
+ <point x="398" y="789" type="curve" smooth="yes"/>
+ <point x="425" y="789"/>
+ <point x="443" y="812"/>
+ </contour>
+ <contour>
+ <point x="758" y="79" type="curve" smooth="yes"/>
+ <point x="758" y="106"/>
+ <point x="736" y="127"/>
+ <point x="710" y="127" type="curve" smooth="yes"/>
+ <point x="685" y="127"/>
+ <point x="662" y="103"/>
+ <point x="662" y="80" type="curve" smooth="yes"/>
+ <point x="662" y="52"/>
+ <point x="686" y="31"/>
+ <point x="710" y="31" type="curve" smooth="yes"/>
+ <point x="737" y="31"/>
+ <point x="758" y="55"/>
+ </contour>
+ <contour>
+ <point x="310" y="749" type="curve" smooth="yes"/>
+ <point x="310" y="775"/>
+ <point x="288" y="796"/>
+ <point x="263" y="796" type="curve" smooth="yes"/>
+ <point x="238" y="796"/>
+ <point x="215" y="774"/>
+ <point x="215" y="747" type="curve" smooth="yes"/>
+ <point x="215" y="722"/>
+ <point x="236" y="701"/>
+ <point x="263" y="701" type="curve" smooth="yes"/>
+ <point x="291" y="701"/>
+ <point x="310" y="720"/>
+ </contour>
+ <contour>
+ <point x="891" y="168" type="curve" smooth="yes"/>
+ <point x="891" y="197"/>
+ <point x="870" y="215"/>
+ <point x="843" y="215" type="curve" smooth="yes"/>
+ <point x="817" y="215"/>
+ <point x="795" y="194"/>
+ <point x="795" y="168" type="curve" smooth="yes"/>
+ <point x="795" y="143"/>
+ <point x="816" y="121"/>
+ <point x="843" y="121" type="curve" smooth="yes"/>
+ <point x="871" y="121"/>
+ <point x="891" y="143"/>
+ </contour>
+ <contour>
+ <point x="222" y="613" type="curve" smooth="yes"/>
+ <point x="222" y="640"/>
+ <point x="199" y="663"/>
+ <point x="173" y="663" type="curve" smooth="yes"/>
+ <point x="149" y="663"/>
+ <point x="126" y="642"/>
+ <point x="126" y="615" type="curve" smooth="yes"/>
+ <point x="126" y="591"/>
+ <point x="145" y="567"/>
+ <point x="173" y="567" type="curve" smooth="yes"/>
+ <point x="197" y="567"/>
+ <point x="222" y="587"/>
+ </contour>
+ <contour>
+ <point x="980" y="301" type="curve" smooth="yes"/>
+ <point x="980" y="327"/>
+ <point x="957" y="348"/>
+ <point x="932" y="348" type="curve" smooth="yes"/>
+ <point x="908" y="348"/>
+ <point x="884" y="332"/>
+ <point x="884" y="301" type="curve" smooth="yes"/>
+ <point x="884" y="277"/>
+ <point x="902" y="254"/>
+ <point x="932" y="254" type="curve" smooth="yes"/>
+ <point x="957" y="254"/>
+ <point x="980" y="274"/>
+ </contour>
+ <contour>
+ <point x="191" y="459" type="curve" smooth="yes"/>
+ <point x="191" y="484"/>
+ <point x="168" y="505"/>
+ <point x="143" y="505" type="curve" smooth="yes"/>
+ <point x="116" y="505"/>
+ <point x="95" y="484"/>
+ <point x="95" y="458" type="curve" smooth="yes"/>
+ <point x="95" y="433"/>
+ <point x="115" y="410"/>
+ <point x="143" y="410" type="curve" smooth="yes"/>
+ <point x="167" y="410"/>
+ <point x="191" y="432"/>
+ </contour>
+ <contour>
+ <point x="1011" y="458" type="curve" smooth="yes"/>
+ <point x="1011" y="484"/>
+ <point x="990" y="506"/>
+ <point x="964" y="506" type="curve" smooth="yes"/>
+ <point x="940" y="506"/>
+ <point x="915" y="484"/>
+ <point x="915" y="457" type="curve" smooth="yes"/>
+ <point x="915" y="433"/>
+ <point x="936" y="411"/>
+ <point x="964" y="411" type="curve" smooth="yes"/>
+ <point x="990" y="411"/>
+ <point x="1011" y="433"/>
+ </contour>
+ <contour>
+ <point x="222" y="302" type="curve" smooth="yes"/>
+ <point x="222" y="328"/>
+ <point x="200" y="348"/>
+ <point x="174" y="348" type="curve" smooth="yes"/>
+ <point x="147" y="348"/>
+ <point x="126" y="326"/>
+ <point x="126" y="302" type="curve" smooth="yes"/>
+ <point x="126" y="275"/>
+ <point x="149" y="253"/>
+ <point x="174" y="253" type="curve" smooth="yes"/>
+ <point x="201" y="253"/>
+ <point x="222" y="277"/>
+ </contour>
+ <contour>
+ <point x="980" y="615" type="curve" smooth="yes"/>
+ <point x="980" y="642"/>
+ <point x="955" y="663"/>
+ <point x="931" y="663" type="curve" smooth="yes"/>
+ <point x="904" y="663"/>
+ <point x="885" y="638"/>
+ <point x="885" y="614" type="curve" smooth="yes"/>
+ <point x="885" y="588"/>
+ <point x="907" y="567"/>
+ <point x="931" y="567" type="curve" smooth="yes"/>
+ <point x="959" y="567"/>
+ <point x="980" y="591"/>
+ </contour>
+ <contour>
+ <point x="310" y="168" type="curve" smooth="yes"/>
+ <point x="310" y="195"/>
+ <point x="291" y="215"/>
+ <point x="263" y="215" type="curve" smooth="yes"/>
+ <point x="238" y="215"/>
+ <point x="215" y="190"/>
+ <point x="215" y="168" type="curve" smooth="yes"/>
+ <point x="215" y="143"/>
+ <point x="238" y="120"/>
+ <point x="263" y="120" type="curve" smooth="yes"/>
+ <point x="289" y="120"/>
+ <point x="310" y="143"/>
+ </contour>
+ <contour>
+ <point x="890" y="748" type="curve" smooth="yes"/>
+ <point x="890" y="774"/>
+ <point x="870" y="796"/>
+ <point x="843" y="796" type="curve" smooth="yes"/>
+ <point x="815" y="796"/>
+ <point x="796" y="773"/>
+ <point x="796" y="748" type="curve" smooth="yes"/>
+ <point x="796" y="724"/>
+ <point x="817" y="700"/>
+ <point x="843" y="700" type="curve" smooth="yes"/>
+ <point x="869" y="700"/>
+ <point x="890" y="722"/>
+ </contour>
+ <contour>
+ <point x="444" y="78" type="curve" smooth="yes"/>
+ <point x="444" y="102"/>
+ <point x="423" y="126"/>
+ <point x="396" y="126" type="curve" smooth="yes"/>
+ <point x="370" y="126"/>
+ <point x="348" y="102"/>
+ <point x="348" y="78" type="curve" smooth="yes"/>
+ <point x="348" y="55"/>
+ <point x="370" y="31"/>
+ <point x="396" y="31" type="curve" smooth="yes"/>
+ <point x="420" y="31"/>
+ <point x="444" y="51"/>
+ </contour>
+ <contour>
+ <point x="758" y="836" type="curve" smooth="yes"/>
+ <point x="758" y="861"/>
+ <point x="737" y="885"/>
+ <point x="710" y="885" type="curve" smooth="yes"/>
+ <point x="684" y="885"/>
+ <point x="663" y="862"/>
+ <point x="663" y="838" type="curve" smooth="yes"/>
+ <point x="663" y="814"/>
+ <point x="683" y="789"/>
+ <point x="710" y="789" type="curve" smooth="yes"/>
+ <point x="734" y="789"/>
+ <point x="758" y="809"/>
+ </contour>
+ <contour>
+ <point x="601" y="47" type="curve" smooth="yes"/>
+ <point x="601" y="73"/>
+ <point x="579" y="95"/>
+ <point x="553" y="95" type="curve" smooth="yes"/>
+ <point x="527" y="95"/>
+ <point x="506" y="73"/>
+ <point x="506" y="47" type="curve" smooth="yes"/>
+ <point x="506" y="21"/>
+ <point x="527" y="0"/>
+ <point x="553" y="0" type="curve" smooth="yes"/>
+ <point x="579" y="0"/>
+ <point x="601" y="21"/>
+ </contour>
+ <contour>
+ <point x="601" y="868" type="curve" smooth="yes"/>
+ <point x="601" y="894"/>
+ <point x="579" y="916"/>
+ <point x="553" y="916" type="curve" smooth="yes"/>
+ <point x="527" y="916"/>
+ <point x="506" y="894"/>
+ <point x="506" y="868" type="curve" smooth="yes"/>
+ <point x="506" y="842"/>
+ <point x="527" y="821"/>
+ <point x="553" y="821" type="curve" smooth="yes"/>
+ <point x="579" y="821"/>
+ <point x="601" y="842"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/E_qS_gn.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/E_qS_gn.glif
new file mode 100644
index 0000000..9eeb2ef
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/E_qS_gn.glif
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="EqSgn" format="2">
+ <advance width="1200"/>
+ <unicode hex="003D"/>
+ <outline>
+ <contour>
+ <point x="120" y="440" type="line"/>
+ <point x="1080" y="440" type="line"/>
+ <point x="1080" y="650" type="line"/>
+ <point x="120" y="650" type="line"/>
+ </contour>
+ <contour>
+ <point x="120" y="810" type="line"/>
+ <point x="1080" y="810" type="line"/>
+ <point x="1080" y="1020" type="line"/>
+ <point x="120" y="1020" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/E_xclamationM_rk.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/E_xclamationM_rk.glif
new file mode 100644
index 0000000..cfdf1a6
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/E_xclamationM_rk.glif
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="ExclamationMrk" format="2">
+ <advance width="780"/>
+ <unicode hex="0021"/>
+ <outline>
+ <contour>
+ <point x="530" y="500" type="line"/>
+ <point x="536" y="790"/>
+ <point x="531" y="1076"/>
+ <point x="570" y="1510" type="curve"/>
+ <point x="235" y="1510" type="line"/>
+ <point x="273" y="1076"/>
+ <point x="268" y="790"/>
+ <point x="275" y="500" type="curve"/>
+ </contour>
+ <contour>
+ <point x="230" y="150" type="curve" smooth="yes"/>
+ <point x="230" y="46"/>
+ <point x="304" y="-25"/>
+ <point x="405" y="-25" type="curve" smooth="yes"/>
+ <point x="507" y="-25"/>
+ <point x="580" y="46"/>
+ <point x="580" y="150" type="curve" smooth="yes"/>
+ <point x="580" y="252"/>
+ <point x="507" y="325"/>
+ <point x="405" y="325" type="curve" smooth="yes"/>
+ <point x="304" y="325"/>
+ <point x="230" y="252"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/F_ullS_top.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/F_ullS_top.glif
new file mode 100644
index 0000000..b05d598
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/F_ullS_top.glif
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="FullStop" format="2">
+ <advance width="710"/>
+ <unicode hex="002E"/>
+ <outline>
+ <contour>
+ <point x="200" y="150" type="curve" smooth="yes"/>
+ <point x="200" y="46"/>
+ <point x="274" y="-25"/>
+ <point x="375" y="-25" type="curve" smooth="yes"/>
+ <point x="477" y="-25"/>
+ <point x="550" y="46"/>
+ <point x="550" y="150" type="curve" smooth="yes"/>
+ <point x="550" y="252"/>
+ <point x="477" y="325"/>
+ <point x="375" y="325" type="curve" smooth="yes"/>
+ <point x="274" y="325"/>
+ <point x="200" y="252"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/G_T_S_gn.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/G_T_S_gn.glif
new file mode 100644
index 0000000..650e4d2
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/G_T_S_gn.glif
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="GTSgn" format="2">
+ <advance width="1200"/>
+ <unicode hex="003E"/>
+ <outline>
+ <contour>
+ <point x="130" y="245" type="line"/>
+ <point x="1090" y="635" type="line"/>
+ <point x="1090" y="825" type="line"/>
+ <point x="130" y="1215" type="line"/>
+ <point x="130" y="985" type="line"/>
+ <point x="810" y="730" type="line"/>
+ <point x="130" y="475" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/G_raveA_ccent.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/G_raveA_ccent.glif
new file mode 100644
index 0000000..83a5f21
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/G_raveA_ccent.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="GraveAccent" format="2">
+ <advance width="640"/>
+ <unicode hex="0060"/>
+ <anchor x="500" y="1635" name="U"/>
+ <outline>
+ <contour>
+ <point x="0" y="1600" type="line"/>
+ <point x="400" y="1200" type="line"/>
+ <point x="640" y="1200" type="line"/>
+ <point x="350" y="1600" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/H_yphen.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/H_yphen.glif
new file mode 100644
index 0000000..d79c70a
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/H_yphen.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Hyphen" format="2">
+ <advance width="880"/>
+ <unicode hex="2010"/>
+ <anchor x="440" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="70" y="525" type="line"/>
+ <point x="810" y="525" type="line"/>
+ <point x="810" y="735" type="line"/>
+ <point x="70" y="735" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/H_yphenM_inus.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/H_yphenM_inus.glif
new file mode 100644
index 0000000..b88bdd4
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/H_yphenM_inus.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="HyphenMinus" format="2">
+ <advance width="895"/>
+ <unicode hex="002D"/>
+ <anchor x="450" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="80" y="525" type="line"/>
+ <point x="815" y="525" type="line"/>
+ <point x="815" y="735" type="line"/>
+ <point x="80" y="735" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/H_yphen_S_oft.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/H_yphen_S_oft.glif
new file mode 100644
index 0000000..916f8cf
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/H_yphen_S_oft.glif
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Hyphen_Soft" format="2">
+ <advance width="895"/>
+ <unicode hex="00AD"/>
+ <anchor x="450" y="1100" name="U"/>
+ <outline>
+ <component base="HyphenMinus"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_T_S_gn.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_T_S_gn.glif
new file mode 100644
index 0000000..ab92cf3
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_T_S_gn.glif
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LTSgn" format="2">
+ <advance width="1200"/>
+ <unicode hex="003C"/>
+ <outline>
+ <contour>
+ <point x="1070" y="475" type="line"/>
+ <point x="390" y="730" type="line"/>
+ <point x="1070" y="985" type="line"/>
+ <point x="1070" y="1215" type="line"/>
+ <point x="110" y="825" type="line"/>
+ <point x="110" y="635" type="line"/>
+ <point x="1070" y="245" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_ftC_urlyB_rac.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_ftC_urlyB_rac.glif
new file mode 100644
index 0000000..2370b56
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_ftC_urlyB_rac.glif
@@ -0,0 +1,47 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LftCurlyBrac" format="2">
+ <advance width="1040"/>
+ <unicode hex="007B"/>
+ <outline>
+ <contour>
+ <point x="895" y="-179" type="line"/>
+ <point x="828" y="-160"/>
+ <point x="704" y="-122"/>
+ <point x="685" y="-100" type="curve" smooth="yes"/>
+ <point x="650" y="-60"/>
+ <point x="663" y="411"/>
+ <point x="645" y="445" type="curve" smooth="yes"/>
+ <point x="621" y="491"/>
+ <point x="483" y="580"/>
+ <point x="483" y="615" type="curve" smooth="yes"/>
+ <point x="483" y="650"/>
+ <point x="620" y="740"/>
+ <point x="643" y="785" type="curve" smooth="yes"/>
+ <point x="661" y="820"/>
+ <point x="650" y="1289"/>
+ <point x="685" y="1330" type="curve" smooth="yes"/>
+ <point x="702" y="1351"/>
+ <point x="807" y="1390"/>
+ <point x="870" y="1409" type="curve"/>
+ <point x="820" y="1640" type="line"/>
+ <point x="692" y="1613"/>
+ <point x="502" y="1562"/>
+ <point x="455" y="1515" type="curve" smooth="yes"/>
+ <point x="381" y="1442"/>
+ <point x="392" y="852"/>
+ <point x="370" y="820" type="curve" smooth="yes"/>
+ <point x="340" y="777"/>
+ <point x="170" y="670"/>
+ <point x="170" y="615" type="curve" smooth="yes"/>
+ <point x="170" y="560"/>
+ <point x="340" y="453"/>
+ <point x="370" y="410" type="curve" smooth="yes"/>
+ <point x="392" y="378"/>
+ <point x="380" y="-213"/>
+ <point x="455" y="-285" type="curve" smooth="yes"/>
+ <point x="505" y="-333"/>
+ <point x="709" y="-383"/>
+ <point x="845" y="-410" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_ftP_aren.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_ftP_aren.glif
new file mode 100644
index 0000000..99e1982
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_ftP_aren.glif
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LftParen" format="2">
+ <advance width="860"/>
+ <unicode hex="0028"/>
+ <outline>
+ <contour>
+ <point x="555" y="1640" type="line"/>
+ <point x="290" y="1444"/>
+ <point x="115" y="1062"/>
+ <point x="115" y="625" type="curve" smooth="yes"/>
+ <point x="115" y="218"/>
+ <point x="260" y="-125"/>
+ <point x="535" y="-410" type="curve"/>
+ <point x="686" y="-240" type="line"/>
+ <point x="462" y="11"/>
+ <point x="376" y="335"/>
+ <point x="376" y="635" type="curve" smooth="yes"/>
+ <point x="376" y="938"/>
+ <point x="466" y="1261"/>
+ <point x="676" y="1455" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_ftS_qrB_rac.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_ftS_qrB_rac.glif
new file mode 100644
index 0000000..dcf019b
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_ftS_qrB_rac.glif
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LftSqrBrac" format="2">
+ <advance width="850"/>
+ <unicode hex="005B"/>
+ <outline>
+ <contour>
+ <point x="710" y="-410" type="line"/>
+ <point x="710" y="-200" type="line"/>
+ <point x="470" y="-200" type="line"/>
+ <point x="470" y="1390" type="line"/>
+ <point x="710" y="1390" type="line"/>
+ <point x="710" y="1600" type="line"/>
+ <point x="190" y="1600" type="line"/>
+ <point x="190" y="-410" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_owL_ine.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_owL_ine.glif
new file mode 100644
index 0000000..225c4ce
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_owL_ine.glif
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LowLine" format="2">
+ <advance width="1274"/>
+ <unicode hex="005F"/>
+ <outline>
+ <contour>
+ <point x="0" y="-350" type="line"/>
+ <point x="1274" y="-350" type="line"/>
+ <point x="1274" y="-140" type="line"/>
+ <point x="0" y="-140" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnC_apA_.alt.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnC_apA_.alt.glif
new file mode 100644
index 0000000..cf1b900
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnC_apA_.alt.glif
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapA.alt" format="2">
+ <advance width="1485"/>
+ <anchor x="1275" y="0" name="H"/>
+ <anchor x="732" y="-100" name="L"/>
+ <anchor x="1495" y="0" name="O"/>
+ <anchor x="732" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1115" y="0" type="line"/>
+ <point x="1408" y="0" type="line"/>
+ <point x="1373" y="80"/>
+ <point x="1341" y="168"/>
+ <point x="1278" y="355" type="curve" smooth="yes"/>
+ <point x="908" y="1460" type="line"/>
+ <point x="552" y="1460" type="line"/>
+ <point x="182" y="355" type="line" smooth="yes"/>
+ <point x="119" y="166"/>
+ <point x="88" y="81"/>
+ <point x="52" y="0" type="curve"/>
+ <point x="350" y="0" type="line"/>
+ <point x="460" y="355" type="line"/>
+ <point x="1004" y="355" type="line"/>
+ </contour>
+ <contour>
+ <point x="730" y="1228" type="line"/>
+ <point x="936" y="570" type="line"/>
+ <point x="526" y="570" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnC_apA_.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnC_apA_.glif
new file mode 100644
index 0000000..9fa1f45
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnC_apA_.glif
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapA" format="2">
+ <advance width="1485"/>
+ <unicode hex="0041"/>
+ <anchor x="1275" y="0" name="H"/>
+ <anchor x="732" y="-100" name="L"/>
+ <anchor x="1495" y="0" name="O"/>
+ <anchor x="732" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1115" y="0" type="line"/>
+ <point x="1408" y="0" type="line"/>
+ <point x="1373" y="80"/>
+ <point x="1341" y="168"/>
+ <point x="1278" y="355" type="curve" smooth="yes"/>
+ <point x="908" y="1460" type="line"/>
+ <point x="552" y="1460" type="line"/>
+ <point x="182" y="355" type="line" smooth="yes"/>
+ <point x="119" y="166"/>
+ <point x="88" y="81"/>
+ <point x="52" y="0" type="curve"/>
+ <point x="350" y="0" type="line"/>
+ <point x="460" y="355" type="line"/>
+ <point x="1004" y="355" type="line"/>
+ </contour>
+ <contour>
+ <point x="730" y="1228" type="line"/>
+ <point x="936" y="570" type="line"/>
+ <point x="526" y="570" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnC_apA_D_iaer.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnC_apA_D_iaer.glif
new file mode 100644
index 0000000..79101d0
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnC_apA_D_iaer.glif
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapADiaer" format="2">
+ <advance width="1485"/>
+ <unicode hex="00C4"/>
+ <anchor x="1275" y="0" name="H"/>
+ <anchor x="732" y="-100" name="L"/>
+ <anchor x="1495" y="0" name="O"/>
+ <anchor x="732" y="2015" name="U"/>
+ <outline>
+ <component base="LtnCapA"/>
+ <component base="CombDiaer" xOffset="1312" yOffset="430"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnC_apB_.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnC_apB_.glif
new file mode 100644
index 0000000..df49e47
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnC_apB_.glif
@@ -0,0 +1,62 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapB" format="2">
+ <advance width="1385"/>
+ <unicode hex="0042"/>
+ <anchor x="670" y="-100" name="L"/>
+ <anchor x="670" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="450" y="1248" type="line"/>
+ <point x="487" y="1250"/>
+ <point x="562" y="1253"/>
+ <point x="631" y="1253" type="curve" smooth="yes"/>
+ <point x="818" y="1253"/>
+ <point x="897" y="1196"/>
+ <point x="897" y="1077" type="curve" smooth="yes"/>
+ <point x="897" y="951"/>
+ <point x="794" y="875"/>
+ <point x="605" y="875" type="curve" smooth="yes"/>
+ <point x="450" y="875" type="line"/>
+ </contour>
+ <contour>
+ <point x="1245" y="430" type="curve" smooth="yes"/>
+ <point x="1245" y="672"/>
+ <point x="1084" y="760"/>
+ <point x="935" y="800" type="curve"/>
+ <point x="1065" y="850"/>
+ <point x="1170" y="947"/>
+ <point x="1170" y="1110" type="curve" smooth="yes"/>
+ <point x="1170" y="1378"/>
+ <point x="937" y="1470"/>
+ <point x="615" y="1470" type="curve" smooth="yes"/>
+ <point x="422" y="1470"/>
+ <point x="248" y="1466"/>
+ <point x="150" y="1460" type="curve"/>
+ <point x="165" y="1380"/>
+ <point x="165" y="1196"/>
+ <point x="165" y="1000" type="curve" smooth="yes"/>
+ <point x="165" y="455" type="line" smooth="yes"/>
+ <point x="165" y="257"/>
+ <point x="165" y="80"/>
+ <point x="150" y="0" type="curve"/>
+ <point x="150" y="0"/>
+ <point x="401" y="-10"/>
+ <point x="631" y="-10" type="curve" smooth="yes"/>
+ <point x="1055" y="-10"/>
+ <point x="1245" y="181"/>
+ </contour>
+ <contour>
+ <point x="450" y="658" type="line"/>
+ <point x="643" y="658" type="line" smooth="yes"/>
+ <point x="853" y="658"/>
+ <point x="972" y="587"/>
+ <point x="972" y="450" type="curve" smooth="yes"/>
+ <point x="972" y="269"/>
+ <point x="826" y="215"/>
+ <point x="652" y="215" type="curve" smooth="yes"/>
+ <point x="552" y="215"/>
+ <point x="483" y="218"/>
+ <point x="450" y="220" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnC_apC_.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnC_apC_.glif
new file mode 100644
index 0000000..78c5238
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnC_apC_.glif
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapC" format="2">
+ <advance width="1385"/>
+ <unicode hex="0043"/>
+ <anchor x="745" y="0" name="H"/>
+ <anchor x="745" y="-100" name="L"/>
+ <anchor x="745" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1215" y="405" type="line"/>
+ <point x="1105" y="293"/>
+ <point x="940" y="220"/>
+ <point x="790" y="220" type="curve" smooth="yes"/>
+ <point x="531" y="220"/>
+ <point x="375" y="413"/>
+ <point x="375" y="735" type="curve" smooth="yes"/>
+ <point x="375" y="1074"/>
+ <point x="557" y="1245"/>
+ <point x="800" y="1245" type="curve" smooth="yes"/>
+ <point x="931" y="1245"/>
+ <point x="1053" y="1205"/>
+ <point x="1180" y="1105" type="curve"/>
+ <point x="1250" y="1345" type="line"/>
+ <point x="1106" y="1449"/>
+ <point x="969" y="1485"/>
+ <point x="785" y="1485" type="curve" smooth="yes"/>
+ <point x="413" y="1485"/>
+ <point x="90" y="1225"/>
+ <point x="90" y="710" type="curve" smooth="yes"/>
+ <point x="90" y="260"/>
+ <point x="341" y="-25"/>
+ <point x="755" y="-25" type="curve" smooth="yes"/>
+ <point x="926" y="-25"/>
+ <point x="1142" y="42"/>
+ <point x="1265" y="140" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnC_apD_.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnC_apD_.glif
new file mode 100644
index 0000000..4dd3b9c
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnC_apD_.glif
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapD" format="2">
+ <advance width="1485"/>
+ <unicode hex="0044"/>
+ <anchor x="800" y="-100" name="L"/>
+ <anchor x="800" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="165" y="455" type="line"/>
+ <point x="164" y="257"/>
+ <point x="165" y="80"/>
+ <point x="150" y="0" type="curve"/>
+ <point x="150" y="0"/>
+ <point x="474" y="-10"/>
+ <point x="609" y="-10" type="curve" smooth="yes"/>
+ <point x="919" y="-10"/>
+ <point x="1370" y="145"/>
+ <point x="1370" y="740" type="curve" smooth="yes"/>
+ <point x="1370" y="1374"/>
+ <point x="906" y="1470"/>
+ <point x="630" y="1470" type="curve" smooth="yes"/>
+ <point x="487" y="1470"/>
+ <point x="239" y="1466"/>
+ <point x="150" y="1460" type="curve"/>
+ <point x="165" y="1380"/>
+ <point x="165" y="1196"/>
+ <point x="165" y="1000" type="curve" smooth="yes"/>
+ </contour>
+ <contour>
+ <point x="450" y="1241" type="line"/>
+ <point x="492" y="1243"/>
+ <point x="582" y="1246"/>
+ <point x="637" y="1246" type="curve" smooth="yes"/>
+ <point x="897" y="1246"/>
+ <point x="1078" y="1118"/>
+ <point x="1078" y="720" type="curve" smooth="yes"/>
+ <point x="1078" y="357"/>
+ <point x="856" y="221"/>
+ <point x="633" y="221" type="curve" smooth="yes"/>
+ <point x="554" y="221"/>
+ <point x="489" y="227"/>
+ <point x="450" y="231" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnC_apE_.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnC_apE_.glif
new file mode 100644
index 0000000..9572dfd
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnC_apE_.glif
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapE" format="2">
+ <advance width="1212"/>
+ <unicode hex="0045"/>
+ <anchor x="610" y="0" name="H"/>
+ <anchor x="610" y="-100" name="L"/>
+ <anchor x="1004" y="0" name="O"/>
+ <anchor x="1247" y="1200" name="R"/>
+ <anchor x="610" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="450" y="875" type="line"/>
+ <point x="450" y="1230" type="line"/>
+ <point x="1072" y="1230" type="line"/>
+ <point x="1072" y="1460" type="line"/>
+ <point x="150" y="1460" type="line"/>
+ <point x="165" y="1380"/>
+ <point x="165" y="1222"/>
+ <point x="165" y="1025" type="curve" smooth="yes"/>
+ <point x="165" y="435" type="line" smooth="yes"/>
+ <point x="165" y="238"/>
+ <point x="165" y="80"/>
+ <point x="150" y="0" type="curve"/>
+ <point x="1102" y="0" type="line"/>
+ <point x="1102" y="245" type="line"/>
+ <point x="1024" y="231"/>
+ <point x="899" y="230"/>
+ <point x="708" y="230" type="curve" smooth="yes"/>
+ <point x="450" y="230" type="line"/>
+ <point x="450" y="650" type="line"/>
+ <point x="997" y="650" type="line"/>
+ <point x="997" y="875" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnC_apF_.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnC_apF_.glif
new file mode 100644
index 0000000..9f4f14b
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnC_apF_.glif
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapF" format="2">
+ <advance width="1200"/>
+ <unicode hex="0046"/>
+ <anchor x="630" y="-100" name="L"/>
+ <anchor x="630" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="450" y="860" type="line"/>
+ <point x="450" y="1230" type="line"/>
+ <point x="1090" y="1230" type="line"/>
+ <point x="1090" y="1460" type="line"/>
+ <point x="150" y="1460" type="line"/>
+ <point x="165" y="1380"/>
+ <point x="165" y="1217"/>
+ <point x="165" y="1020" type="curve" smooth="yes"/>
+ <point x="165" y="435" type="line" smooth="yes"/>
+ <point x="165" y="238"/>
+ <point x="165" y="80"/>
+ <point x="150" y="0" type="curve"/>
+ <point x="465" y="0" type="line"/>
+ <point x="450" y="73"/>
+ <point x="450" y="222"/>
+ <point x="450" y="408" type="curve" smooth="yes"/>
+ <point x="450" y="635" type="line"/>
+ <point x="1005" y="635" type="line"/>
+ <point x="1005" y="860" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnC_apG_.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnC_apG_.glif
new file mode 100644
index 0000000..8358b8a
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnC_apG_.glif
@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapG" format="2">
+ <advance width="1472"/>
+ <unicode hex="0047"/>
+ <anchor x="807" y="0" name="H"/>
+ <anchor x="807" y="-100" name="L"/>
+ <anchor x="807" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1337" y="785" type="line"/>
+ <point x="767" y="785" type="line"/>
+ <point x="767" y="560" type="line"/>
+ <point x="1082" y="560" type="line"/>
+ <point x="1082" y="294" type="line"/>
+ <point x="966" y="236"/>
+ <point x="883" y="220"/>
+ <point x="769" y="220" type="curve" smooth="yes"/>
+ <point x="532" y="220"/>
+ <point x="375" y="420"/>
+ <point x="375" y="745" type="curve" smooth="yes"/>
+ <point x="375" y="1048"/>
+ <point x="545" y="1245"/>
+ <point x="810" y="1245" type="curve" smooth="yes"/>
+ <point x="953" y="1245"/>
+ <point x="1097" y="1205"/>
+ <point x="1236" y="1107" type="curve"/>
+ <point x="1322" y="1345" type="line"/>
+ <point x="1137" y="1462"/>
+ <point x="989" y="1485"/>
+ <point x="818" y="1485" type="curve" smooth="yes"/>
+ <point x="403" y="1485"/>
+ <point x="90" y="1199"/>
+ <point x="90" y="720" type="curve" smooth="yes"/>
+ <point x="90" y="241"/>
+ <point x="377" y="-25"/>
+ <point x="777" y="-25" type="curve" smooth="yes"/>
+ <point x="960" y="-25"/>
+ <point x="1120" y="11"/>
+ <point x="1337" y="155" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnC_apH_.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnC_apH_.glif
new file mode 100644
index 0000000..2e2e5e6
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnC_apH_.glif
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapH" format="2">
+ <advance width="1515"/>
+ <unicode hex="0048"/>
+ <anchor x="305" y="0" name="H"/>
+ <anchor x="745" y="-100" name="L"/>
+ <anchor x="745" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1040" y="1460" type="line"/>
+ <point x="1040" y="860" type="line"/>
+ <point x="450" y="860" type="line"/>
+ <point x="450" y="1460" type="line"/>
+ <point x="150" y="1460" type="line"/>
+ <point x="165" y="1380"/>
+ <point x="165" y="1227"/>
+ <point x="165" y="1030" type="curve" smooth="yes"/>
+ <point x="165" y="430" type="line" smooth="yes"/>
+ <point x="165" y="233"/>
+ <point x="165" y="80"/>
+ <point x="150" y="0" type="curve"/>
+ <point x="150" y="0"/>
+ <point x="450" y="0"/>
+ <point x="450" y="0" type="curve"/>
+ <point x="450" y="635" type="line"/>
+ <point x="1040" y="635" type="line"/>
+ <point x="1040" y="0" type="line"/>
+ <point x="1040" y="0"/>
+ <point x="1340" y="0"/>
+ <point x="1340" y="0" type="curve"/>
+ <point x="1325" y="80"/>
+ <point x="1325" y="233"/>
+ <point x="1325" y="430" type="curve" smooth="yes"/>
+ <point x="1325" y="1030" type="line" smooth="yes"/>
+ <point x="1325" y="1227"/>
+ <point x="1325" y="1380"/>
+ <point x="1340" y="1460" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnC_apI_.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnC_apI_.glif
new file mode 100644
index 0000000..388486b
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnC_apI_.glif
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapI" format="2">
+ <advance width="1045"/>
+ <unicode hex="0049"/>
+ <anchor x="520" y="0" name="H"/>
+ <anchor x="516" y="-100" name="L"/>
+ <anchor x="712" y="0" name="O"/>
+ <anchor x="1014" y="1200" name="R"/>
+ <anchor x="520" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="130" y="1460" type="line"/>
+ <point x="130" y="1255" type="line"/>
+ <point x="370" y="1255" type="line"/>
+ <point x="370" y="205" type="line"/>
+ <point x="130" y="205" type="line"/>
+ <point x="130" y="0" type="line"/>
+ <point x="895" y="0" type="line"/>
+ <point x="895" y="205" type="line"/>
+ <point x="655" y="205" type="line"/>
+ <point x="655" y="1255" type="line"/>
+ <point x="895" y="1255" type="line"/>
+ <point x="895" y="1460" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnC_apJ_.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnC_apJ_.glif
new file mode 100644
index 0000000..8ee9ce3
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnC_apJ_.glif
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapJ" format="2">
+ <advance width="1030"/>
+ <unicode hex="004A"/>
+ <anchor x="415" y="-100" name="L"/>
+ <anchor x="705" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="555" y="1460" type="line"/>
+ <point x="568" y="1354"/>
+ <point x="570" y="1175"/>
+ <point x="570" y="980" type="curve" smooth="yes"/>
+ <point x="570" y="558" type="line" smooth="yes"/>
+ <point x="570" y="383"/>
+ <point x="540" y="227"/>
+ <point x="365" y="227" type="curve" smooth="yes"/>
+ <point x="264" y="227"/>
+ <point x="153" y="270"/>
+ <point x="79" y="347" type="curve"/>
+ <point x="30" y="90" type="line"/>
+ <point x="109" y="9"/>
+ <point x="258" y="-25"/>
+ <point x="363" y="-25" type="curve" smooth="yes"/>
+ <point x="658" y="-25"/>
+ <point x="855" y="129"/>
+ <point x="855" y="535" type="curve" smooth="yes"/>
+ <point x="855" y="618"/>
+ <point x="855" y="1460"/>
+ <point x="855" y="1460" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnC_apK_.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnC_apK_.glif
new file mode 100644
index 0000000..abb6ff7
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnC_apK_.glif
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapK" format="2">
+ <advance width="1430"/>
+ <unicode hex="004B"/>
+ <anchor x="320" y="0" name="H"/>
+ <anchor x="740" y="-100" name="L"/>
+ <anchor x="725" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="944" y="1460" type="line"/>
+ <point x="371" y="732" type="line"/>
+ <point x="579" y="676" type="line"/>
+ <point x="1280" y="1460" type="line"/>
+ </contour>
+ <contour>
+ <point x="389" y="731" type="line"/>
+ <point x="990" y="0" type="line"/>
+ <point x="1360" y="0" type="line"/>
+ <point x="614" y="829" type="line"/>
+ </contour>
+ <contour>
+ <point x="450" y="1460" type="line"/>
+ <point x="150" y="1460" type="line"/>
+ <point x="165" y="1380"/>
+ <point x="165" y="1222"/>
+ <point x="165" y="1025" type="curve" smooth="yes"/>
+ <point x="165" y="435" type="line" smooth="yes"/>
+ <point x="165" y="238"/>
+ <point x="165" y="80"/>
+ <point x="150" y="0" type="curve"/>
+ <point x="450" y="0" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnC_apL_.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnC_apL_.glif
new file mode 100644
index 0000000..e1c1e2e
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnC_apL_.glif
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapL" format="2">
+ <advance width="1130"/>
+ <unicode hex="004C"/>
+ <anchor x="620" y="0" name="H"/>
+ <anchor x="620" y="-100" name="L"/>
+ <anchor x="650" y="1200" name="R"/>
+ <anchor x="620" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="450" y="230" type="line"/>
+ <point x="450" y="1460" type="line"/>
+ <point x="150" y="1460" type="line"/>
+ <point x="165" y="1380"/>
+ <point x="165" y="1222"/>
+ <point x="165" y="1025" type="curve" smooth="yes"/>
+ <point x="165" y="435" type="line" smooth="yes"/>
+ <point x="165" y="238"/>
+ <point x="165" y="80"/>
+ <point x="150" y="0" type="curve"/>
+ <point x="1085" y="0" type="line"/>
+ <point x="1085" y="245" type="line"/>
+ <point x="1008" y="231"/>
+ <point x="855" y="230"/>
+ <point x="666" y="230" type="curve" smooth="yes"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnC_apM_.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnC_apM_.glif
new file mode 100644
index 0000000..8da241e
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnC_apM_.glif
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapM" format="2">
+ <advance width="1855"/>
+ <unicode hex="004D"/>
+ <anchor x="915" y="-100" name="L"/>
+ <anchor x="915" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="917" y="275" type="line"/>
+ <point x="575" y="1460" type="line"/>
+ <point x="315" y="1460" type="line"/>
+ <point x="436" y="1170" type="line"/>
+ <point x="770" y="0" type="line"/>
+ <point x="1065" y="0" type="line"/>
+ <point x="1397" y="1170" type="line"/>
+ <point x="1517" y="1460" type="line"/>
+ <point x="1260" y="1460" type="line"/>
+ </contour>
+ <contour>
+ <point x="220" y="1460" type="line"/>
+ <point x="220" y="1460"/>
+ <point x="176" y="198"/>
+ <point x="150" y="0" type="curve"/>
+ <point x="420" y="0" type="line"/>
+ <point x="449" y="1205" type="line"/>
+ <point x="485" y="1460" type="line"/>
+ </contour>
+ <contour>
+ <point x="1680" y="0" type="line"/>
+ <point x="1651" y="198"/>
+ <point x="1610" y="1460"/>
+ <point x="1610" y="1460" type="curve"/>
+ <point x="1340" y="1460" type="line"/>
+ <point x="1385" y="1205" type="line"/>
+ <point x="1410" y="0" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnC_apN_.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnC_apN_.glif
new file mode 100644
index 0000000..aa2b5c4
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnC_apN_.glif
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapN" format="2">
+ <advance width="1545"/>
+ <unicode hex="004E"/>
+ <anchor x="1240" y="0" name="H"/>
+ <anchor x="765" y="-100" name="L"/>
+ <anchor x="765" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="223" y="1310" type="line"/>
+ <point x="1095" y="0" type="line"/>
+ <point x="1297" y="150" type="line"/>
+ <point x="425" y="1460" type="line"/>
+ </contour>
+ <contour>
+ <point x="1095" y="0" type="line"/>
+ <point x="1355" y="0" type="line"/>
+ <point x="1355" y="1025" type="line" smooth="yes"/>
+ <point x="1355" y="1222"/>
+ <point x="1356" y="1380"/>
+ <point x="1370" y="1460" type="curve"/>
+ <point x="1095" y="1460" type="line"/>
+ </contour>
+ <contour>
+ <point x="425" y="1460" type="line"/>
+ <point x="150" y="1460" type="line"/>
+ <point x="165" y="1380"/>
+ <point x="165" y="1222"/>
+ <point x="165" y="1025" type="curve" smooth="yes"/>
+ <point x="165" y="435" type="line" smooth="yes"/>
+ <point x="165" y="238"/>
+ <point x="165" y="80"/>
+ <point x="150" y="0" type="curve"/>
+ <point x="425" y="0" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnC_apO_.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnC_apO_.glif
new file mode 100644
index 0000000..10479ad
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnC_apO_.glif
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapO" format="2">
+ <advance width="1500"/>
+ <unicode hex="004F"/>
+ <anchor x="740" y="0" name="H"/>
+ <anchor x="740" y="-100" name="L"/>
+ <anchor x="976" y="0" name="O"/>
+ <anchor x="1480" y="1200" name="R"/>
+ <anchor x="740" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1100" y="715" type="curve" smooth="yes"/>
+ <point x="1100" y="404"/>
+ <point x="940" y="220"/>
+ <point x="740" y="220" type="curve" smooth="yes"/>
+ <point x="524" y="220"/>
+ <point x="375" y="423"/>
+ <point x="375" y="745" type="curve" smooth="yes"/>
+ <point x="375" y="1048"/>
+ <point x="529" y="1240"/>
+ <point x="740" y="1240" type="curve" smooth="yes"/>
+ <point x="951" y="1240"/>
+ <point x="1100" y="1041"/>
+ </contour>
+ <contour>
+ <point x="1385" y="740" type="curve" smooth="yes"/>
+ <point x="1385" y="1219"/>
+ <point x="1091" y="1485"/>
+ <point x="750" y="1485" type="curve" smooth="yes"/>
+ <point x="404" y="1485"/>
+ <point x="90" y="1199"/>
+ <point x="90" y="720" type="curve" smooth="yes"/>
+ <point x="90" y="241"/>
+ <point x="385" y="-25"/>
+ <point x="730" y="-25" type="curve" smooth="yes"/>
+ <point x="1072" y="-25"/>
+ <point x="1385" y="260"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnC_apP_.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnC_apP_.glif
new file mode 100644
index 0000000..18e9ee0
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnC_apP_.glif
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapP" format="2">
+ <advance width="1275"/>
+ <unicode hex="0050"/>
+ <anchor x="685" y="-100" name="L"/>
+ <anchor x="685" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="450" y="523" type="line"/>
+ <point x="515" y="516"/>
+ <point x="575" y="513"/>
+ <point x="648" y="513" type="curve" smooth="yes"/>
+ <point x="977" y="513"/>
+ <point x="1200" y="702"/>
+ <point x="1200" y="1010" type="curve" smooth="yes"/>
+ <point x="1200" y="1316"/>
+ <point x="981" y="1470"/>
+ <point x="658" y="1470" type="curve" smooth="yes"/>
+ <point x="445" y="1470"/>
+ <point x="150" y="1460"/>
+ <point x="150" y="1460" type="curve"/>
+ <point x="165" y="1380"/>
+ <point x="165" y="1196"/>
+ <point x="165" y="1000" type="curve" smooth="yes"/>
+ <point x="165" y="435" type="line" smooth="yes"/>
+ <point x="165" y="238"/>
+ <point x="165" y="80"/>
+ <point x="150" y="0" type="curve"/>
+ <point x="465" y="0" type="line"/>
+ <point x="451" y="78"/>
+ <point x="450" y="237"/>
+ <point x="450" y="435" type="curve" smooth="yes"/>
+ </contour>
+ <contour>
+ <point x="450" y="1240" type="line"/>
+ <point x="506" y="1243"/>
+ <point x="544" y="1245"/>
+ <point x="622" y="1245" type="curve" smooth="yes"/>
+ <point x="833" y="1245"/>
+ <point x="915" y="1145"/>
+ <point x="915" y="1000" type="curve" smooth="yes"/>
+ <point x="915" y="820"/>
+ <point x="811" y="730"/>
+ <point x="618" y="730" type="curve" smooth="yes"/>
+ <point x="556" y="730"/>
+ <point x="493" y="733"/>
+ <point x="450" y="740" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnC_apQ_.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnC_apQ_.glif
new file mode 100644
index 0000000..433087c
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnC_apQ_.glif
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapQ" format="2">
+ <advance width="1545"/>
+ <unicode hex="0051"/>
+ <anchor x="747" y="-270" name="L"/>
+ <anchor x="747" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1385" y="740" type="curve" smooth="yes"/>
+ <point x="1385" y="1219"/>
+ <point x="1091" y="1485"/>
+ <point x="750" y="1485" type="curve" smooth="yes"/>
+ <point x="404" y="1485"/>
+ <point x="90" y="1199"/>
+ <point x="90" y="720" type="curve" smooth="yes"/>
+ <point x="90" y="241"/>
+ <point x="385" y="-25"/>
+ <point x="730" y="-25" type="curve" smooth="yes"/>
+ <point x="807" y="-25"/>
+ <point x="840" y="-23"/>
+ <point x="889" y="-15" type="curve"/>
+ <point x="958" y="-15"/>
+ <point x="1266" y="-228"/>
+ <point x="1350" y="-228" type="curve" smooth="yes"/>
+ <point x="1424" y="-228"/>
+ <point x="1502" y="-68"/>
+ <point x="1535" y="-15" type="curve"/>
+ <point x="1394" y="1"/>
+ <point x="1277" y="68"/>
+ <point x="1146" y="142" type="curve"/>
+ <point x="1294" y="283"/>
+ <point x="1385" y="471"/>
+ </contour>
+ <contour>
+ <point x="1100" y="715" type="curve" smooth="yes"/>
+ <point x="1100" y="404"/>
+ <point x="943" y="220"/>
+ <point x="740" y="220" type="curve" smooth="yes"/>
+ <point x="524" y="220"/>
+ <point x="375" y="423"/>
+ <point x="375" y="745" type="curve" smooth="yes"/>
+ <point x="375" y="1048"/>
+ <point x="529" y="1240"/>
+ <point x="740" y="1240" type="curve" smooth="yes"/>
+ <point x="951" y="1240"/>
+ <point x="1100" y="1041"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnC_apR_.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnC_apR_.glif
new file mode 100644
index 0000000..6103056
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnC_apR_.glif
@@ -0,0 +1,55 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapR" format="2">
+ <advance width="1380"/>
+ <unicode hex="0052"/>
+ <anchor x="690" y="0" name="H"/>
+ <anchor x="690" y="-100" name="L"/>
+ <anchor x="660" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="450" y="585" type="line"/>
+ <point x="625" y="585" type="line" smooth="yes"/>
+ <point x="910" y="585"/>
+ <point x="1175" y="723"/>
+ <point x="1175" y="1040" type="curve" smooth="yes"/>
+ <point x="1175" y="1329"/>
+ <point x="961" y="1470"/>
+ <point x="650" y="1470" type="curve" smooth="yes"/>
+ <point x="416" y="1470"/>
+ <point x="150" y="1460"/>
+ <point x="150" y="1460" type="curve"/>
+ <point x="165" y="1380"/>
+ <point x="165" y="1196"/>
+ <point x="165" y="1000" type="curve" smooth="yes"/>
+ <point x="165" y="435" type="line" smooth="yes"/>
+ <point x="165" y="238"/>
+ <point x="165" y="80"/>
+ <point x="150" y="0" type="curve"/>
+ <point x="465" y="0" type="line"/>
+ <point x="451" y="78"/>
+ <point x="450" y="238"/>
+ <point x="450" y="435" type="curve" smooth="yes"/>
+ </contour>
+ <contour>
+ <point x="450" y="1240" type="line"/>
+ <point x="503" y="1243"/>
+ <point x="537" y="1245"/>
+ <point x="615" y="1245" type="curve" smooth="yes"/>
+ <point x="792" y="1245"/>
+ <point x="890" y="1186"/>
+ <point x="890" y="1035" type="curve" smooth="yes"/>
+ <point x="890" y="859"/>
+ <point x="780" y="800"/>
+ <point x="605" y="800" type="curve" smooth="yes"/>
+ <point x="450" y="800" type="line"/>
+ </contour>
+ <contour>
+ <point x="556" y="635" type="line"/>
+ <point x="975" y="0" type="line"/>
+ <point x="1330" y="0" type="line"/>
+ <point x="1263" y="73"/>
+ <point x="827" y="687"/>
+ <point x="827" y="687" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnC_apS_.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnC_apS_.glif
new file mode 100644
index 0000000..486ff77
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnC_apS_.glif
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapS" format="2">
+ <advance width="1243"/>
+ <unicode hex="0053"/>
+ <anchor x="616" y="0" name="H"/>
+ <anchor x="616" y="-100" name="L"/>
+ <anchor x="616" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1075" y="1395" type="line"/>
+ <point x="932" y="1458"/>
+ <point x="810" y="1485"/>
+ <point x="640" y="1485" type="curve" smooth="yes"/>
+ <point x="280" y="1485"/>
+ <point x="130" y="1239"/>
+ <point x="130" y="1060" type="curve" smooth="yes"/>
+ <point x="130" y="882"/>
+ <point x="196" y="754"/>
+ <point x="510" y="655" type="curve" smooth="yes"/>
+ <point x="800" y="563"/>
+ <point x="851" y="504"/>
+ <point x="851" y="420" type="curve" smooth="yes"/>
+ <point x="851" y="293"/>
+ <point x="730" y="220"/>
+ <point x="600" y="220" type="curve" smooth="yes"/>
+ <point x="439" y="220"/>
+ <point x="283" y="270"/>
+ <point x="140" y="385" type="curve"/>
+ <point x="90" y="110" type="line"/>
+ <point x="201" y="31"/>
+ <point x="391" y="-25"/>
+ <point x="600" y="-25" type="curve" smooth="yes"/>
+ <point x="895" y="-25"/>
+ <point x="1138" y="169"/>
+ <point x="1138" y="455" type="curve" smooth="yes"/>
+ <point x="1138" y="666"/>
+ <point x="994" y="787"/>
+ <point x="727" y="870" type="curve" smooth="yes"/>
+ <point x="464" y="952"/>
+ <point x="416" y="994"/>
+ <point x="416" y="1080" type="curve" smooth="yes"/>
+ <point x="416" y="1162"/>
+ <point x="506" y="1245"/>
+ <point x="630" y="1245" type="curve" smooth="yes"/>
+ <point x="771" y="1245"/>
+ <point x="873" y="1209"/>
+ <point x="1030" y="1130" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnC_apT_.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnC_apT_.glif
new file mode 100644
index 0000000..5f87c10
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnC_apT_.glif
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapT" format="2">
+ <advance width="1275"/>
+ <unicode hex="0054"/>
+ <anchor x="632" y="0" name="H"/>
+ <anchor x="632" y="-100" name="L"/>
+ <anchor x="632" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="45" y="1460" type="line"/>
+ <point x="45" y="1210" type="line"/>
+ <point x="117" y="1227"/>
+ <point x="196" y="1230"/>
+ <point x="276" y="1230" type="curve" smooth="yes"/>
+ <point x="488" y="1230" type="line"/>
+ <point x="488" y="413" type="line" smooth="yes"/>
+ <point x="488" y="226"/>
+ <point x="485" y="76"/>
+ <point x="468" y="0" type="curve"/>
+ <point x="793" y="0" type="line"/>
+ <point x="776" y="76"/>
+ <point x="773" y="226"/>
+ <point x="773" y="413" type="curve" smooth="yes"/>
+ <point x="773" y="1230" type="line"/>
+ <point x="989" y="1230" type="line" smooth="yes"/>
+ <point x="1070" y="1230"/>
+ <point x="1148" y="1227"/>
+ <point x="1220" y="1210" type="curve"/>
+ <point x="1220" y="1460" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnC_apU_.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnC_apU_.glif
new file mode 100644
index 0000000..b3f6b6f
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnC_apU_.glif
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapU" format="2">
+ <advance width="1490"/>
+ <unicode hex="0055"/>
+ <anchor x="732" y="0" name="H"/>
+ <anchor x="732" y="-100" name="L"/>
+ <anchor x="950" y="0" name="O"/>
+ <anchor x="1480" y="1200" name="R"/>
+ <anchor x="732" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1015" y="1460" type="line"/>
+ <point x="1015" y="560" type="line" smooth="yes"/>
+ <point x="1015" y="344"/>
+ <point x="952" y="204"/>
+ <point x="735" y="204" type="curve" smooth="yes"/>
+ <point x="513" y="204"/>
+ <point x="450" y="344"/>
+ <point x="450" y="560" type="curve" smooth="yes"/>
+ <point x="450" y="1460" type="line"/>
+ <point x="150" y="1460" type="line"/>
+ <point x="164" y="1380"/>
+ <point x="165" y="1222"/>
+ <point x="165" y="1025" type="curve" smooth="yes"/>
+ <point x="165" y="515" type="line" smooth="yes"/>
+ <point x="165" y="190"/>
+ <point x="356" y="-25"/>
+ <point x="735" y="-25" type="curve" smooth="yes"/>
+ <point x="1110" y="-25"/>
+ <point x="1300" y="190"/>
+ <point x="1300" y="515" type="curve" smooth="yes"/>
+ <point x="1300" y="1025" type="line" smooth="yes"/>
+ <point x="1300" y="1232"/>
+ <point x="1302" y="1380"/>
+ <point x="1315" y="1460" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnC_apV_.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnC_apV_.glif
new file mode 100644
index 0000000..3468784
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnC_apV_.glif
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapV" format="2">
+ <advance width="1465"/>
+ <unicode hex="0056"/>
+ <anchor x="730" y="0" name="H"/>
+ <anchor x="722" y="-100" name="L"/>
+ <anchor x="930" y="0" name="O"/>
+ <anchor x="722" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1115" y="1460" type="line"/>
+ <point x="722" y="260" type="line"/>
+ <point x="330" y="1460" type="line"/>
+ <point x="25" y="1460" type="line"/>
+ <point x="58" y="1378"/>
+ <point x="96" y="1288"/>
+ <point x="165" y="1095" type="curve" smooth="yes"/>
+ <point x="555" y="0" type="line"/>
+ <point x="890" y="0" type="line"/>
+ <point x="1280" y="1095" type="line" smooth="yes"/>
+ <point x="1348" y="1289"/>
+ <point x="1384" y="1378"/>
+ <point x="1420" y="1460" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnC_apW_.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnC_apW_.glif
new file mode 100644
index 0000000..98329a0
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnC_apW_.glif
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapW" format="2">
+ <advance width="2135"/>
+ <unicode hex="0057"/>
+ <anchor x="1052" y="-100" name="L"/>
+ <anchor x="1052" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1490" y="0" type="line"/>
+ <point x="1655" y="0" type="line"/>
+ <point x="1965" y="1095" type="line" smooth="yes"/>
+ <point x="2020" y="1289"/>
+ <point x="2048" y="1378"/>
+ <point x="2080" y="1460" type="curve"/>
+ <point x="1770" y="1460" type="line"/>
+ <point x="1470" y="130" type="line"/>
+ </contour>
+ <contour>
+ <point x="1180" y="1460" type="line"/>
+ <point x="920" y="1460" type="line"/>
+ <point x="995" y="1305" type="line"/>
+ <point x="1340" y="0" type="line"/>
+ <point x="1510" y="0" type="line"/>
+ <point x="1530" y="130" type="line"/>
+ </contour>
+ <contour>
+ <point x="600" y="0" type="line"/>
+ <point x="765" y="0" type="line"/>
+ <point x="1105" y="1305" type="line"/>
+ <point x="1180" y="1460" type="line"/>
+ <point x="920" y="1460" type="line"/>
+ <point x="580" y="130" type="line"/>
+ </contour>
+ <contour>
+ <point x="340" y="1460" type="line"/>
+ <point x="30" y="1460" type="line"/>
+ <point x="61" y="1381"/>
+ <point x="92" y="1286"/>
+ <point x="145" y="1095" type="curve" smooth="yes"/>
+ <point x="450" y="0" type="line"/>
+ <point x="620" y="0" type="line"/>
+ <point x="640" y="130" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnC_apX_.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnC_apX_.glif
new file mode 100644
index 0000000..17126dd
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnC_apX_.glif
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapX" format="2">
+ <advance width="1365"/>
+ <unicode hex="0058"/>
+ <anchor x="670" y="-100" name="L"/>
+ <anchor x="670" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="990" y="0" type="line"/>
+ <point x="1310" y="0" type="line"/>
+ <point x="1249" y="82"/>
+ <point x="1211" y="125"/>
+ <point x="1083" y="336" type="curve" smooth="yes"/>
+ <point x="400" y="1460" type="line"/>
+ <point x="75" y="1460" type="line"/>
+ <point x="139" y="1376"/>
+ <point x="189" y="1317"/>
+ <point x="315" y="1110" type="curve"/>
+ </contour>
+ <contour>
+ <point x="605" y="947" type="line"/>
+ <point x="255" y="340" type="line" smooth="yes"/>
+ <point x="133" y="128"/>
+ <point x="93" y="86"/>
+ <point x="30" y="0" type="curve"/>
+ <point x="350" y="0" type="line"/>
+ <point x="700" y="609" type="line"/>
+ </contour>
+ <contour>
+ <point x="750" y="609" type="line"/>
+ <point x="1040" y="1110" type="line" smooth="yes"/>
+ <point x="1153" y="1306"/>
+ <point x="1211" y="1383"/>
+ <point x="1275" y="1460" type="curve"/>
+ <point x="950" y="1460" type="line"/>
+ <point x="655" y="947" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnC_apY_.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnC_apY_.glif
new file mode 100644
index 0000000..a7a345d
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnC_apY_.glif
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapY" format="2">
+ <advance width="1364"/>
+ <unicode hex="0059"/>
+ <anchor x="672" y="-100" name="L"/>
+ <anchor x="672" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="575" y="560" type="line"/>
+ <point x="782" y="675" type="line"/>
+ <point x="357" y="1460" type="line"/>
+ <point x="25" y="1460" type="line"/>
+ <point x="137" y="1311"/>
+ <point x="203" y="1197"/>
+ <point x="280" y="1065" type="curve" smooth="yes"/>
+ </contour>
+ <contour>
+ <point x="770" y="560" type="line"/>
+ <point x="1069" y="1065" type="line" smooth="yes"/>
+ <point x="1145" y="1195"/>
+ <point x="1201" y="1291"/>
+ <point x="1319" y="1460" type="curve"/>
+ <point x="997" y="1460" type="line"/>
+ <point x="577" y="675" type="line"/>
+ </contour>
+ <contour>
+ <point x="530" y="695" type="line"/>
+ <point x="530" y="435" type="line" smooth="yes"/>
+ <point x="530" y="238"/>
+ <point x="530" y="80"/>
+ <point x="515" y="0" type="curve"/>
+ <point x="830" y="0" type="line"/>
+ <point x="815" y="80"/>
+ <point x="815" y="238"/>
+ <point x="815" y="435" type="curve" smooth="yes"/>
+ <point x="815" y="695" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mA_.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mA_.glif
new file mode 100644
index 0000000..f6ea8fb
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mA_.glif
@@ -0,0 +1,68 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmA" format="2">
+ <advance width="1205"/>
+ <unicode hex="0061"/>
+ <note>
+GlyphNote A
+</note>
+ <anchor x="985" y="0" name="H"/>
+ <anchor x="610" y="-100" name="L"/>
+ <anchor x="1185" y="0" name="O"/>
+ <anchor x="1145" y="1000" name="R"/>
+ <anchor x="610" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="1120" y="0" type="line"/>
+ <point x="1078" y="112"/>
+ <point x="1050" y="226"/>
+ <point x="1050" y="370" type="curve"/>
+ <point x="1050" y="760" type="line"/>
+ <point x="1050" y="919"/>
+ <point x="877" y="1040"/>
+ <point x="615" y="1040" type="curve" smooth="yes"/>
+ <point x="446" y="1040"/>
+ <point x="330" y="994"/>
+ <point x="216" y="950" type="curve"/>
+ <point x="210" y="868"/>
+ <point x="207" y="735"/>
+ <point x="206" y="691" type="curve"/>
+ <point x="323" y="773"/>
+ <point x="424" y="816"/>
+ <point x="530" y="816" type="curve" smooth="yes"/>
+ <point x="680" y="816"/>
+ <point x="770" y="785"/>
+ <point x="770" y="710" type="curve" smooth="yes"/>
+ <point x="770" y="660" type="line"/>
+ <point x="729" y="659"/>
+ <point x="569" y="649"/>
+ <point x="500" y="642" type="curve" smooth="yes"/>
+ <point x="191" y="612"/>
+ <point x="100" y="438"/>
+ <point x="100" y="285" type="curve" smooth="yes"/>
+ <point x="100" y="121"/>
+ <point x="245" y="-25"/>
+ <point x="445" y="-25" type="curve" smooth="yes"/>
+ <point x="562" y="-25"/>
+ <point x="688" y="23"/>
+ <point x="800" y="135" type="curve"/>
+ <point x="814" y="79"/>
+ <point x="838" y="28"/>
+ <point x="850" y="0" type="curve"/>
+ </contour>
+ <contour>
+ <point x="770" y="355" type="line"/>
+ <point x="674" y="225"/>
+ <point x="600" y="205"/>
+ <point x="518" y="205" type="curve" smooth="yes"/>
+ <point x="436" y="205"/>
+ <point x="380" y="256"/>
+ <point x="380" y="320" type="curve" smooth="yes"/>
+ <point x="380" y="386"/>
+ <point x="422" y="442"/>
+ <point x="560" y="457" type="curve" smooth="yes"/>
+ <point x="611" y="463"/>
+ <point x="730" y="474"/>
+ <point x="770" y="475" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mA_A_cute.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mA_A_cute.glif
new file mode 100644
index 0000000..f1c66a5
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mA_A_cute.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmAAcute" format="2">
+ <advance width="1205"/>
+ <unicode hex="00E1"/>
+ <anchor x="985" y="0" name="H"/>
+ <anchor x="610" y="-100" name="L"/>
+ <anchor x="1185" y="0" name="O"/>
+ <anchor x="1145" y="1000" name="R"/>
+ <anchor x="550" y="1635" name="U"/>
+ <outline>
+ <component base="LtnSmA"/>
+ <component base="CombAcute" xOffset="1150"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mA_C_ircum.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mA_C_ircum.glif
new file mode 100644
index 0000000..218d694
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mA_C_ircum.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmACircum" format="2">
+ <advance width="1205"/>
+ <unicode hex="00E2"/>
+ <anchor x="985" y="0" name="H"/>
+ <anchor x="610" y="-100" name="L"/>
+ <anchor x="1185" y="0" name="O"/>
+ <anchor x="1145" y="1000" name="R"/>
+ <anchor x="602" y="1635" name="U"/>
+ <outline>
+ <component base="LtnSmA"/>
+ <component base="CombCircum" xOffset="1190"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mA_D_iaer.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mA_D_iaer.glif
new file mode 100644
index 0000000..bb0ea2c
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mA_D_iaer.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmADiaer" format="2">
+ <advance width="1205"/>
+ <unicode hex="00E4"/>
+ <anchor x="985" y="0" name="H"/>
+ <anchor x="610" y="-100" name="L"/>
+ <anchor x="1185" y="0" name="O"/>
+ <anchor x="1145" y="1000" name="R"/>
+ <anchor x="610" y="1585" name="U"/>
+ <outline>
+ <component base="LtnSmA"/>
+ <component base="CombDiaer" xOffset="1190"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mA_G_rave.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mA_G_rave.glif
new file mode 100644
index 0000000..3153364
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mA_G_rave.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmAGrave" format="2">
+ <advance width="1205"/>
+ <unicode hex="00E0"/>
+ <anchor x="985" y="0" name="H"/>
+ <anchor x="610" y="-100" name="L"/>
+ <anchor x="1185" y="0" name="O"/>
+ <anchor x="1145" y="1000" name="R"/>
+ <anchor x="650" y="1635" name="U"/>
+ <outline>
+ <component base="LtnSmA"/>
+ <component base="CombGrave" xOffset="1240"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mA_R_ingA_bv.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mA_R_ingA_bv.glif
new file mode 100644
index 0000000..3b8da5a
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mA_R_ingA_bv.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmARingAbv" format="2">
+ <advance width="1205"/>
+ <unicode hex="00E5"/>
+ <anchor x="985" y="0" name="H"/>
+ <anchor x="610" y="-100" name="L"/>
+ <anchor x="1185" y="0" name="O"/>
+ <anchor x="1145" y="1000" name="R"/>
+ <anchor x="612" y="1635" name="U"/>
+ <outline>
+ <component base="LtnSmA"/>
+ <component base="CombRingAbv" xOffset="1182"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mA_T_ilde.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mA_T_ilde.glif
new file mode 100644
index 0000000..b3a8515
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mA_T_ilde.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmATilde" format="2">
+ <advance width="1205"/>
+ <unicode hex="00E3"/>
+ <anchor x="985" y="0" name="H"/>
+ <anchor x="610" y="-100" name="L"/>
+ <anchor x="1185" y="0" name="O"/>
+ <anchor x="1145" y="1000" name="R"/>
+ <anchor x="610" y="1490" name="U"/>
+ <outline>
+ <component base="LtnSmA"/>
+ <component base="CombTilde" xOffset="1190"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mB_.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mB_.glif
new file mode 100644
index 0000000..6cc6671
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mB_.glif
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmB" format="2">
+ <advance width="1215"/>
+ <unicode hex="0062"/>
+ <anchor x="610" y="0" name="H"/>
+ <anchor x="610" y="-100" name="L"/>
+ <anchor x="1215" y="1000" name="R"/>
+ <anchor x="610" y="1635" name="U"/>
+ <outline>
+ <contour>
+ <point x="120" y="1600" type="line"/>
+ <point x="135" y="1488"/>
+ <point x="135" y="1273"/>
+ <point x="135" y="1130" type="curve" smooth="yes"/>
+ <point x="135" y="936"/>
+ <point x="135" y="228"/>
+ <point x="135" y="65" type="curve"/>
+ <point x="286" y="26"/>
+ <point x="457" y="-25"/>
+ <point x="650" y="-25" type="curve" smooth="yes"/>
+ <point x="939" y="-25"/>
+ <point x="1125" y="197"/>
+ <point x="1125" y="540" type="curve" smooth="yes"/>
+ <point x="1125" y="832"/>
+ <point x="986" y="1040"/>
+ <point x="789" y="1040" type="curve" smooth="yes"/>
+ <point x="626" y="1040"/>
+ <point x="505" y="956"/>
+ <point x="415" y="845" type="curve"/>
+ <point x="415" y="934"/>
+ <point x="415" y="1600"/>
+ <point x="415" y="1600" type="curve"/>
+ </contour>
+ <contour>
+ <point x="415" y="585" type="line"/>
+ <point x="471" y="709"/>
+ <point x="580" y="795"/>
+ <point x="683" y="795" type="curve" smooth="yes"/>
+ <point x="793" y="795"/>
+ <point x="855" y="684"/>
+ <point x="855" y="505" type="curve" smooth="yes"/>
+ <point x="855" y="317"/>
+ <point x="750" y="190"/>
+ <point x="605" y="190" type="curve" smooth="yes"/>
+ <point x="538" y="190"/>
+ <point x="492" y="204"/>
+ <point x="415" y="240" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mC_.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mC_.glif
new file mode 100644
index 0000000..19a8a6d
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mC_.glif
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmC" format="2">
+ <advance width="1022"/>
+ <unicode hex="0063"/>
+ <anchor x="555" y="0" name="H"/>
+ <anchor x="575" y="-100" name="L"/>
+ <anchor x="1020" y="1000" name="R"/>
+ <anchor x="575" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="922" y="969" type="line"/>
+ <point x="849" y="1007"/>
+ <point x="744" y="1040"/>
+ <point x="612" y="1040" type="curve" smooth="yes"/>
+ <point x="295" y="1040"/>
+ <point x="90" y="802"/>
+ <point x="90" y="490" type="curve" smooth="yes"/>
+ <point x="90" y="161"/>
+ <point x="309" y="-25"/>
+ <point x="578" y="-25" type="curve" smooth="yes"/>
+ <point x="727" y="-25"/>
+ <point x="831" y="8"/>
+ <point x="932" y="70" type="curve"/>
+ <point x="902" y="314" type="line"/>
+ <point x="815" y="245"/>
+ <point x="737" y="205"/>
+ <point x="617" y="205" type="curve" smooth="yes"/>
+ <point x="467" y="205"/>
+ <point x="370" y="324"/>
+ <point x="370" y="500" type="curve" smooth="yes"/>
+ <point x="370" y="694"/>
+ <point x="478" y="810"/>
+ <point x="617" y="810" type="curve" smooth="yes"/>
+ <point x="720" y="810"/>
+ <point x="788" y="779"/>
+ <point x="878" y="717" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mD_.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mD_.glif
new file mode 100644
index 0000000..fc1cc76
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mD_.glif
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmD" format="2">
+ <advance width="1265"/>
+ <unicode hex="0064"/>
+ <anchor x="595" y="0" name="H"/>
+ <anchor x="595" y="-100" name="L"/>
+ <anchor x="1285" y="1000" name="R"/>
+ <anchor x="610" y="1635" name="U"/>
+ <outline>
+ <contour>
+ <point x="1115" y="1600" type="line"/>
+ <point x="810" y="1600" type="line"/>
+ <point x="829" y="1516"/>
+ <point x="835" y="1395"/>
+ <point x="835" y="1235" type="curve" smooth="yes"/>
+ <point x="835" y="955" type="line"/>
+ <point x="763" y="999"/>
+ <point x="669" y="1040"/>
+ <point x="590" y="1040" type="curve" smooth="yes"/>
+ <point x="319" y="1040"/>
+ <point x="100" y="814"/>
+ <point x="100" y="460" type="curve" smooth="yes"/>
+ <point x="100" y="167"/>
+ <point x="268" y="-25"/>
+ <point x="515" y="-25" type="curve" smooth="yes"/>
+ <point x="654" y="-25"/>
+ <point x="770" y="47"/>
+ <point x="860" y="175" type="curve"/>
+ <point x="877" y="105"/>
+ <point x="900" y="32"/>
+ <point x="915" y="0" type="curve"/>
+ <point x="1190" y="0" type="line"/>
+ <point x="1147" y="112"/>
+ <point x="1115" y="278"/>
+ <point x="1115" y="530" type="curve" smooth="yes"/>
+ </contour>
+ <contour>
+ <point x="835" y="400" type="line"/>
+ <point x="787" y="300"/>
+ <point x="676" y="200"/>
+ <point x="570" y="200" type="curve" smooth="yes"/>
+ <point x="443" y="200"/>
+ <point x="380" y="300"/>
+ <point x="380" y="490" type="curve" smooth="yes"/>
+ <point x="380" y="685"/>
+ <point x="485" y="800"/>
+ <point x="590" y="800" type="curve" smooth="yes"/>
+ <point x="683" y="800"/>
+ <point x="743" y="783"/>
+ <point x="835" y="738" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mE_.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mE_.glif
new file mode 100644
index 0000000..5c67455
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mE_.glif
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmE" format="2">
+ <advance width="1110"/>
+ <unicode hex="0065"/>
+ <anchor x="569" y="0" name="H"/>
+ <anchor x="589" y="-100" name="L"/>
+ <anchor x="900" y="0" name="O"/>
+ <anchor x="1130" y="1000" name="R"/>
+ <anchor x="537" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="1010" y="450" type="line"/>
+ <point x="1010" y="469"/>
+ <point x="1009" y="513"/>
+ <point x="1009" y="532" type="curve" smooth="yes"/>
+ <point x="1009" y="782"/>
+ <point x="924" y="1040"/>
+ <point x="589" y="1040" type="curve" smooth="yes"/>
+ <point x="281" y="1040"/>
+ <point x="90" y="826"/>
+ <point x="90" y="495" type="curve" smooth="yes"/>
+ <point x="90" y="155"/>
+ <point x="324" y="-25"/>
+ <point x="589" y="-25" type="curve" smooth="yes"/>
+ <point x="745" y="-25"/>
+ <point x="871" y="2"/>
+ <point x="1015" y="75" type="curve"/>
+ <point x="994" y="306" type="line"/>
+ <point x="870" y="232"/>
+ <point x="745" y="205"/>
+ <point x="614" y="205" type="curve" smooth="yes"/>
+ <point x="448" y="205"/>
+ <point x="362" y="293"/>
+ <point x="362" y="505" type="curve" smooth="yes"/>
+ <point x="362" y="739"/>
+ <point x="431" y="830"/>
+ <point x="575" y="830" type="curve" smooth="yes"/>
+ <point x="693" y="830"/>
+ <point x="755" y="770"/>
+ <point x="755" y="630" type="curve"/>
+ <point x="242" y="630" type="line"/>
+ <point x="242" y="450" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mF_.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mF_.glif
new file mode 100644
index 0000000..8a5996d
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mF_.glif
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmF" format="2">
+ <advance width="800"/>
+ <unicode hex="0066"/>
+ <anchor x="380" y="0" name="H"/>
+ <anchor x="400" y="-100" name="L"/>
+ <anchor x="600" y="1635" name="U"/>
+ <outline>
+ <contour>
+ <point x="30" y="805" type="line"/>
+ <point x="230" y="805" type="line"/>
+ <point x="230" y="0" type="line"/>
+ <point x="540" y="0" type="line"/>
+ <point x="518" y="105"/>
+ <point x="510" y="300"/>
+ <point x="510" y="494" type="curve" smooth="yes"/>
+ <point x="510" y="805" type="line"/>
+ <point x="765" y="805" type="line"/>
+ <point x="765" y="1005" type="line"/>
+ <point x="510" y="1005" type="line"/>
+ <point x="510" y="1159" type="line" smooth="yes"/>
+ <point x="510" y="1322"/>
+ <point x="552" y="1387"/>
+ <point x="648" y="1387" type="curve" smooth="yes"/>
+ <point x="697" y="1387"/>
+ <point x="765" y="1362"/>
+ <point x="808" y="1322" type="curve"/>
+ <point x="865" y="1550" type="line"/>
+ <point x="806" y="1588"/>
+ <point x="699" y="1620"/>
+ <point x="625" y="1620" type="curve" smooth="yes"/>
+ <point x="378" y="1620"/>
+ <point x="230" y="1470"/>
+ <point x="230" y="1170" type="curve" smooth="yes"/>
+ <point x="230" y="1005" type="line"/>
+ <point x="30" y="1005" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mG_.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mG_.glif
new file mode 100644
index 0000000..871e4e9
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mG_.glif
@@ -0,0 +1,91 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmG" format="2">
+ <advance width="1170"/>
+ <unicode hex="0067"/>
+ <anchor x="597" y="-465" name="H"/>
+ <anchor x="597" y="-535" name="L"/>
+ <anchor x="1187" y="1000" name="R"/>
+ <anchor x="567" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="352" y="395" type="line"/>
+ <point x="256" y="357"/>
+ <point x="202" y="275"/>
+ <point x="202" y="215" type="curve" smooth="yes"/>
+ <point x="202" y="113"/>
+ <point x="280" y="12"/>
+ <point x="547" y="-23" type="curve" smooth="yes"/>
+ <point x="797" y="-50"/>
+ <point x="870" y="-99"/>
+ <point x="870" y="-170" type="curve" smooth="yes"/>
+ <point x="870" y="-229"/>
+ <point x="748" y="-302"/>
+ <point x="602" y="-302" type="curve" smooth="yes"/>
+ <point x="418" y="-302"/>
+ <point x="330" y="-235"/>
+ <point x="330" y="-180" type="curve" smooth="yes"/>
+ <point x="330" y="-121"/>
+ <point x="357" y="-56"/>
+ <point x="562" y="20" type="curve"/>
+ <point x="554" y="49"/>
+ <point x="322" y="75"/>
+ <point x="322" y="75" type="curve"/>
+ <point x="138" y="2"/>
+ <point x="50" y="-89"/>
+ <point x="50" y="-200" type="curve" smooth="yes"/>
+ <point x="50" y="-409"/>
+ <point x="341" y="-505"/>
+ <point x="587" y="-505" type="curve" smooth="yes"/>
+ <point x="843" y="-505"/>
+ <point x="1150" y="-375"/>
+ <point x="1150" y="-160" type="curve" smooth="yes"/>
+ <point x="1150" y="13"/>
+ <point x="1049" y="125"/>
+ <point x="752" y="165" type="curve" smooth="yes"/>
+ <point x="497" y="191"/>
+ <point x="433" y="216"/>
+ <point x="433" y="255" type="curve" smooth="yes"/>
+ <point x="433" y="285"/>
+ <point x="472" y="322"/>
+ <point x="588" y="350" type="curve"/>
+ </contour>
+ <contour>
+ <point x="1102" y="1040" type="line"/>
+ <point x="1003" y="1033"/>
+ <point x="871" y="997"/>
+ <point x="782" y="940" type="curve"/>
+ <point x="847" y="770" type="line"/>
+ <point x="939" y="808"/>
+ <point x="1019" y="823"/>
+ <point x="1092" y="825" type="curve"/>
+ </contour>
+ <contour>
+ <point x="122" y="670" type="curve" smooth="yes"/>
+ <point x="122" y="455"/>
+ <point x="316" y="305"/>
+ <point x="567" y="305" type="curve" smooth="yes"/>
+ <point x="820" y="305"/>
+ <point x="1012" y="465"/>
+ <point x="1012" y="680" type="curve" smooth="yes"/>
+ <point x="1012" y="884"/>
+ <point x="820" y="1040"/>
+ <point x="567" y="1040" type="curve" smooth="yes"/>
+ <point x="316" y="1040"/>
+ <point x="122" y="874"/>
+ </contour>
+ <contour>
+ <point x="377" y="680" type="curve" smooth="yes"/>
+ <point x="377" y="770"/>
+ <point x="457" y="847"/>
+ <point x="567" y="847" type="curve" smooth="yes"/>
+ <point x="678" y="847"/>
+ <point x="757" y="770"/>
+ <point x="757" y="680" type="curve" smooth="yes"/>
+ <point x="757" y="578"/>
+ <point x="678" y="501"/>
+ <point x="567" y="501" type="curve" smooth="yes"/>
+ <point x="457" y="501"/>
+ <point x="377" y="578"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mH_.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mH_.glif
new file mode 100644
index 0000000..15fc451
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mH_.glif
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmH" format="2">
+ <advance width="1235"/>
+ <unicode hex="0068"/>
+ <anchor x="280" y="0" name="H"/>
+ <anchor x="620" y="-100" name="L"/>
+ <anchor x="620" y="1635" name="U"/>
+ <outline>
+ <contour>
+ <point x="415" y="580" type="line"/>
+ <point x="450" y="683"/>
+ <point x="560" y="795"/>
+ <point x="675" y="795" type="curve" smooth="yes"/>
+ <point x="782" y="795"/>
+ <point x="830" y="744"/>
+ <point x="830" y="550" type="curve" smooth="yes"/>
+ <point x="830" y="413"/>
+ <point x="830" y="0"/>
+ <point x="830" y="0" type="curve"/>
+ <point x="1110" y="0" type="line"/>
+ <point x="1110" y="0"/>
+ <point x="1110" y="459"/>
+ <point x="1110" y="625" type="curve" smooth="yes"/>
+ <point x="1110" y="900"/>
+ <point x="1008" y="1040"/>
+ <point x="805" y="1040" type="curve" smooth="yes"/>
+ <point x="662" y="1040"/>
+ <point x="513" y="976"/>
+ <point x="415" y="850" type="curve"/>
+ <point x="415" y="894"/>
+ <point x="415" y="1600"/>
+ <point x="415" y="1600" type="curve"/>
+ <point x="120" y="1600" type="line"/>
+ <point x="135" y="1514"/>
+ <point x="135" y="1345"/>
+ <point x="135" y="1130" type="curve" smooth="yes"/>
+ <point x="135" y="935"/>
+ <point x="135" y="0"/>
+ <point x="135" y="0" type="curve"/>
+ <point x="415" y="0" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mI_.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mI_.glif
new file mode 100644
index 0000000..05022d4
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mI_.glif
@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmI" format="2">
+ <advance width="640"/>
+ <unicode hex="0069"/>
+ <anchor x="320" y="0" name="H"/>
+ <anchor x="320" y="-100" name="L"/>
+ <anchor x="580" y="0" name="O"/>
+ <anchor x="640" y="1000" name="R"/>
+ <anchor x="320" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="165" y="1020" type="line"/>
+ <point x="178" y="915"/>
+ <point x="180" y="725"/>
+ <point x="180" y="530" type="curve" smooth="yes"/>
+ <point x="180" y="336"/>
+ <point x="180" y="0"/>
+ <point x="180" y="0" type="curve"/>
+ <point x="480" y="0" type="line"/>
+ <point x="467" y="107"/>
+ <point x="460" y="346"/>
+ <point x="460" y="475" type="curve" smooth="yes"/>
+ <point x="460" y="558"/>
+ <point x="460" y="1020"/>
+ <point x="460" y="1020" type="curve"/>
+ </contour>
+ <contour>
+ <point x="145" y="1385" type="curve" smooth="yes"/>
+ <point x="145" y="1281"/>
+ <point x="219" y="1210"/>
+ <point x="320" y="1210" type="curve" smooth="yes"/>
+ <point x="422" y="1210"/>
+ <point x="495" y="1281"/>
+ <point x="495" y="1385" type="curve" smooth="yes"/>
+ <point x="495" y="1487"/>
+ <point x="422" y="1560"/>
+ <point x="320" y="1560" type="curve" smooth="yes"/>
+ <point x="219" y="1560"/>
+ <point x="145" y="1487"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mJ_.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mJ_.glif
new file mode 100644
index 0000000..6e044af
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mJ_.glif
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmJ" format="2">
+ <advance width="670"/>
+ <unicode hex="006A"/>
+ <anchor x="140" y="-500" name="L"/>
+ <anchor x="355" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="185" y="1385" type="curve" smooth="yes"/>
+ <point x="185" y="1281"/>
+ <point x="259" y="1210"/>
+ <point x="360" y="1210" type="curve" smooth="yes"/>
+ <point x="462" y="1210"/>
+ <point x="535" y="1281"/>
+ <point x="535" y="1385" type="curve" smooth="yes"/>
+ <point x="535" y="1487"/>
+ <point x="462" y="1560"/>
+ <point x="360" y="1560" type="curve" smooth="yes"/>
+ <point x="259" y="1560"/>
+ <point x="185" y="1487"/>
+ </contour>
+ <contour>
+ <point x="500" y="1020" type="line"/>
+ <point x="205" y="1020" type="line"/>
+ <point x="218" y="915"/>
+ <point x="220" y="725"/>
+ <point x="220" y="530" type="curve"/>
+ <point x="220" y="20" type="line"/>
+ <point x="220" y="-150"/>
+ <point x="165" y="-232"/>
+ <point x="48" y="-232" type="curve" smooth="yes"/>
+ <point x="-20" y="-232"/>
+ <point x="-101" y="-195"/>
+ <point x="-145" y="-152" type="curve"/>
+ <point x="-190" y="-389" type="line"/>
+ <point x="-148" y="-421"/>
+ <point x="-37" y="-470"/>
+ <point x="56" y="-470" type="curve" smooth="yes"/>
+ <point x="306" y="-470"/>
+ <point x="500" y="-348"/>
+ <point x="500" y="25" type="curve" smooth="yes"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mK_.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mK_.glif
new file mode 100644
index 0000000..529f7dd
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mK_.glif
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmK" format="2">
+ <advance width="1138"/>
+ <unicode hex="006B"/>
+ <anchor x="940" y="0" name="H"/>
+ <anchor x="585" y="-100" name="L"/>
+ <anchor x="1140" y="1000" name="R"/>
+ <anchor x="595" y="1635" name="U"/>
+ <outline>
+ <contour>
+ <point x="415" y="0" type="line"/>
+ <point x="415" y="1600" type="line"/>
+ <point x="120" y="1600" type="line"/>
+ <point x="135" y="1514"/>
+ <point x="135" y="1345"/>
+ <point x="135" y="1130" type="curve" smooth="yes"/>
+ <point x="135" y="934"/>
+ <point x="135" y="0"/>
+ <point x="135" y="0" type="curve"/>
+ </contour>
+ <contour>
+ <point x="723" y="1020" type="line"/>
+ <point x="353" y="570" type="line"/>
+ <point x="572" y="528" type="line"/>
+ <point x="1098" y="1020" type="line"/>
+ </contour>
+ <contour>
+ <point x="350" y="570" type="line"/>
+ <point x="761" y="0" type="line"/>
+ <point x="1128" y="0" type="line"/>
+ <point x="540" y="664" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mL_.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mL_.glif
new file mode 100644
index 0000000..0b21294
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mL_.glif
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmL" format="2">
+ <advance width="640"/>
+ <unicode hex="006C"/>
+ <anchor x="335" y="0" name="H"/>
+ <anchor x="335" y="-100" name="L"/>
+ <anchor x="660" y="1000" name="R"/>
+ <anchor x="320" y="1635" name="U"/>
+ <outline>
+ <contour>
+ <point x="460" y="1600" type="line"/>
+ <point x="160" y="1600" type="line"/>
+ <point x="173" y="1485"/>
+ <point x="180" y="1324"/>
+ <point x="180" y="1130" type="curve" smooth="yes"/>
+ <point x="180" y="0" type="line"/>
+ <point x="480" y="0" type="line"/>
+ <point x="467" y="109"/>
+ <point x="460" y="346"/>
+ <point x="460" y="475" type="curve" smooth="yes"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mM_.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mM_.glif
new file mode 100644
index 0000000..eace489
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mM_.glif
@@ -0,0 +1,52 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmM" format="2">
+ <advance width="1760"/>
+ <unicode hex="006D"/>
+ <anchor x="890" y="0" name="H"/>
+ <anchor x="890" y="-100" name="L"/>
+ <anchor x="890" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="115" y="1020" type="line"/>
+ <point x="136" y="951"/>
+ <point x="165" y="811"/>
+ <point x="165" y="615" type="curve" smooth="yes"/>
+ <point x="165" y="0" type="line"/>
+ <point x="445" y="0" type="line"/>
+ <point x="445" y="640" type="line"/>
+ <point x="484" y="731"/>
+ <point x="560" y="795"/>
+ <point x="635" y="795" type="curve" smooth="yes"/>
+ <point x="723" y="795"/>
+ <point x="750" y="759"/>
+ <point x="750" y="570" type="curve" smooth="yes"/>
+ <point x="750" y="0" type="line"/>
+ <point x="1030" y="0" type="line"/>
+ <point x="1030" y="660" type="line"/>
+ <point x="1073" y="742"/>
+ <point x="1147" y="795"/>
+ <point x="1220" y="795" type="curve" smooth="yes"/>
+ <point x="1310" y="795"/>
+ <point x="1335" y="751"/>
+ <point x="1335" y="550" type="curve" smooth="yes"/>
+ <point x="1335" y="0" type="line"/>
+ <point x="1615" y="0" type="line"/>
+ <point x="1615" y="660" type="line" smooth="yes"/>
+ <point x="1615" y="907"/>
+ <point x="1548" y="1040"/>
+ <point x="1345" y="1040" type="curve" smooth="yes"/>
+ <point x="1240" y="1040"/>
+ <point x="1131" y="1007"/>
+ <point x="1006" y="872" type="curve"/>
+ <point x="973" y="960"/>
+ <point x="891" y="1040"/>
+ <point x="760" y="1040" type="curve" smooth="yes"/>
+ <point x="644" y="1040"/>
+ <point x="544" y="1008"/>
+ <point x="422" y="875" type="curve"/>
+ <point x="412" y="920"/>
+ <point x="397" y="981"/>
+ <point x="375" y="1020" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mN_.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mN_.glif
new file mode 100644
index 0000000..f7abb6f
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mN_.glif
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmN" format="2">
+ <advance width="1245"/>
+ <unicode hex="006E"/>
+ <anchor x="620" y="0" name="H"/>
+ <anchor x="620" y="-100" name="L"/>
+ <anchor x="620" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="1120" y="0" type="line"/>
+ <point x="1120" y="0"/>
+ <point x="1120" y="459"/>
+ <point x="1120" y="625" type="curve" smooth="yes"/>
+ <point x="1120" y="900"/>
+ <point x="998" y="1040"/>
+ <point x="795" y="1040" type="curve" smooth="yes"/>
+ <point x="654" y="1040"/>
+ <point x="537" y="980"/>
+ <point x="410" y="835" type="curve"/>
+ <point x="403" y="881"/>
+ <point x="385" y="980"/>
+ <point x="370" y="1020" type="curve"/>
+ <point x="95" y="1020" type="line"/>
+ <point x="117" y="951"/>
+ <point x="145" y="811"/>
+ <point x="145" y="615" type="curve" smooth="yes"/>
+ <point x="145" y="420"/>
+ <point x="145" y="0"/>
+ <point x="145" y="0" type="curve"/>
+ <point x="425" y="0" type="line"/>
+ <point x="425" y="580" type="line"/>
+ <point x="460" y="683"/>
+ <point x="570" y="795"/>
+ <point x="685" y="795" type="curve" smooth="yes"/>
+ <point x="792" y="795"/>
+ <point x="840" y="734"/>
+ <point x="840" y="550" type="curve" smooth="yes"/>
+ <point x="840" y="413"/>
+ <point x="840" y="0"/>
+ <point x="840" y="0" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mO_.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mO_.glif
new file mode 100644
index 0000000..063c297
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mO_.glif
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmO" format="2">
+ <advance width="1160"/>
+ <unicode hex="006F"/>
+ <anchor x="578" y="0" name="H"/>
+ <anchor x="580" y="-100" name="L"/>
+ <anchor x="790" y="0" name="O"/>
+ <anchor x="1160" y="1000" name="R"/>
+ <anchor x="580" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="90" y="507" type="curve" smooth="yes"/>
+ <point x="90" y="163"/>
+ <point x="288" y="-25"/>
+ <point x="570" y="-25" type="curve" smooth="yes"/>
+ <point x="840" y="-25"/>
+ <point x="1070" y="163"/>
+ <point x="1070" y="507" type="curve" smooth="yes"/>
+ <point x="1070" y="851"/>
+ <point x="873" y="1040"/>
+ <point x="590" y="1040" type="curve" smooth="yes"/>
+ <point x="320" y="1040"/>
+ <point x="90" y="851"/>
+ </contour>
+ <contour>
+ <point x="370" y="507" type="curve" smooth="yes"/>
+ <point x="370" y="699"/>
+ <point x="451" y="815"/>
+ <point x="580" y="815" type="curve" smooth="yes"/>
+ <point x="717" y="815"/>
+ <point x="790" y="699"/>
+ <point x="790" y="507" type="curve" smooth="yes"/>
+ <point x="790" y="316"/>
+ <point x="709" y="200"/>
+ <point x="580" y="200" type="curve" smooth="yes"/>
+ <point x="443" y="200"/>
+ <point x="370" y="316"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mP_.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mP_.glif
new file mode 100644
index 0000000..4fe224b
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mP_.glif
@@ -0,0 +1,59 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmP" format="2">
+ <advance width="1235"/>
+ <unicode hex="0070"/>
+ <anchor x="290" y="-435" name="H"/>
+ <anchor x="640" y="-500" name="L"/>
+ <anchor x="1235" y="1000" name="R"/>
+ <anchor x="640" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="450" y="-490" type="line"/>
+ <point x="433" y="-405"/>
+ <point x="425" y="-310"/>
+ <point x="425" y="-150" type="curve" smooth="yes"/>
+ <point x="425" y="-71"/>
+ <point x="425" y="-41"/>
+ <point x="425" y="65" type="curve"/>
+ <point x="518" y="10"/>
+ <point x="594" y="-25"/>
+ <point x="699" y="-25" type="curve" smooth="yes"/>
+ <point x="945" y="-25"/>
+ <point x="1145" y="193"/>
+ <point x="1145" y="535" type="curve" smooth="yes"/>
+ <point x="1145" y="828"/>
+ <point x="996" y="1040"/>
+ <point x="773" y="1040" type="curve" smooth="yes"/>
+ <point x="628" y="1040"/>
+ <point x="502" y="962"/>
+ <point x="410" y="850" type="curve"/>
+ <point x="401" y="932"/>
+ <point x="385" y="990"/>
+ <point x="370" y="1020" type="curve"/>
+ <point x="95" y="1020" type="line"/>
+ <point x="140" y="907"/>
+ <point x="145" y="734"/>
+ <point x="145" y="485" type="curve" smooth="yes"/>
+ <point x="145" y="291"/>
+ <point x="145" y="-345"/>
+ <point x="145" y="-490" type="curve"/>
+ </contour>
+ <contour>
+ <point x="633" y="206" type="curve" smooth="yes"/>
+ <point x="564" y="206"/>
+ <point x="527" y="225"/>
+ <point x="425" y="300" type="curve"/>
+ <point x="425" y="390"/>
+ <point x="425" y="507"/>
+ <point x="425" y="585" type="curve"/>
+ <point x="482" y="726"/>
+ <point x="583" y="802"/>
+ <point x="672" y="802" type="curve" smooth="yes"/>
+ <point x="793" y="802"/>
+ <point x="865" y="686"/>
+ <point x="865" y="505" type="curve" smooth="yes"/>
+ <point x="865" y="320"/>
+ <point x="755" y="206"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mQ_.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mQ_.glif
new file mode 100644
index 0000000..9727ad7
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mQ_.glif
@@ -0,0 +1,47 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmQ" format="2">
+ <advance width="1210"/>
+ <unicode hex="0071"/>
+ <anchor x="600" y="-500" name="L"/>
+ <anchor x="1210" y="1000" name="R"/>
+ <anchor x="600" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="790" y="-490" type="line"/>
+ <point x="1095" y="-490" type="line"/>
+ <point x="1078" y="-405"/>
+ <point x="1070" y="-310"/>
+ <point x="1070" y="-150" type="curve" smooth="yes"/>
+ <point x="1070" y="-26"/>
+ <point x="1070" y="965"/>
+ <point x="1070" y="965" type="curve"/>
+ <point x="934" y="1001"/>
+ <point x="773" y="1040"/>
+ <point x="620" y="1040" type="curve" smooth="yes"/>
+ <point x="255" y="1040"/>
+ <point x="100" y="742"/>
+ <point x="100" y="435" type="curve" smooth="yes"/>
+ <point x="100" y="117"/>
+ <point x="316" y="-25"/>
+ <point x="500" y="-25" type="curve" smooth="yes"/>
+ <point x="593" y="-25"/>
+ <point x="686" y="14"/>
+ <point x="790" y="120" type="curve"/>
+ </contour>
+ <contour>
+ <point x="790" y="368" type="line"/>
+ <point x="727" y="258"/>
+ <point x="650" y="203"/>
+ <point x="580" y="203" type="curve" smooth="yes"/>
+ <point x="475" y="203"/>
+ <point x="380" y="287"/>
+ <point x="380" y="485" type="curve" smooth="yes"/>
+ <point x="380" y="641"/>
+ <point x="456" y="802"/>
+ <point x="655" y="802" type="curve" smooth="yes"/>
+ <point x="696" y="802"/>
+ <point x="749" y="789"/>
+ <point x="790" y="770" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mR_.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mR_.glif
new file mode 100644
index 0000000..8a81116
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mR_.glif
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmR" format="2">
+ <advance width="995"/>
+ <unicode hex="0072"/>
+ <anchor x="285" y="0" name="H"/>
+ <anchor x="275" y="-100" name="L"/>
+ <anchor x="550" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="425" y="0" type="line"/>
+ <point x="425" y="530" type="line"/>
+ <point x="460" y="654"/>
+ <point x="570" y="781"/>
+ <point x="637" y="781" type="curve" smooth="yes"/>
+ <point x="722" y="781"/>
+ <point x="755" y="721"/>
+ <point x="762" y="630" type="curve"/>
+ <point x="985" y="665" type="line"/>
+ <point x="985" y="868"/>
+ <point x="913" y="1040"/>
+ <point x="725" y="1040" type="curve" smooth="yes"/>
+ <point x="634" y="1040"/>
+ <point x="507" y="964"/>
+ <point x="410" y="825" type="curve"/>
+ <point x="403" y="873"/>
+ <point x="385" y="978"/>
+ <point x="370" y="1020" type="curve"/>
+ <point x="95" y="1020" type="line"/>
+ <point x="117" y="951"/>
+ <point x="145" y="811"/>
+ <point x="145" y="615" type="curve" smooth="yes"/>
+ <point x="145" y="0" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mS_.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mS_.glif
new file mode 100644
index 0000000..06b1a9a
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mS_.glif
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmS" format="2">
+ <advance width="1035"/>
+ <unicode hex="0073"/>
+ <anchor x="515" y="0" name="H"/>
+ <anchor x="515" y="-100" name="L"/>
+ <anchor x="530" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="905" y="960" type="line"/>
+ <point x="827" y="998"/>
+ <point x="708" y="1040"/>
+ <point x="545" y="1040" type="curve" smooth="yes"/>
+ <point x="202" y="1040"/>
+ <point x="110" y="818"/>
+ <point x="110" y="720" type="curve" smooth="yes"/>
+ <point x="110" y="594"/>
+ <point x="171" y="491"/>
+ <point x="455" y="432" type="curve" smooth="yes"/>
+ <point x="646" y="390"/>
+ <point x="690" y="348"/>
+ <point x="690" y="290" type="curve" smooth="yes"/>
+ <point x="690" y="243"/>
+ <point x="624" y="199"/>
+ <point x="530" y="199" type="curve" smooth="yes"/>
+ <point x="413" y="199"/>
+ <point x="254" y="253"/>
+ <point x="155" y="334" type="curve"/>
+ <point x="100" y="90" type="line"/>
+ <point x="187" y="28"/>
+ <point x="346" y="-25"/>
+ <point x="525" y="-25" type="curve" smooth="yes"/>
+ <point x="768" y="-25"/>
+ <point x="960" y="123"/>
+ <point x="960" y="315" type="curve" smooth="yes"/>
+ <point x="960" y="504"/>
+ <point x="788" y="583"/>
+ <point x="580" y="625" type="curve" smooth="yes"/>
+ <point x="405" y="659"/>
+ <point x="380" y="681"/>
+ <point x="380" y="730" type="curve" smooth="yes"/>
+ <point x="380" y="770"/>
+ <point x="418" y="816"/>
+ <point x="535" y="816" type="curve" smooth="yes"/>
+ <point x="674" y="816"/>
+ <point x="791" y="760"/>
+ <point x="866" y="721" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mT_.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mT_.glif
new file mode 100644
index 0000000..d4123c7
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mT_.glif
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmT" format="2">
+ <advance width="885"/>
+ <unicode hex="0074"/>
+ <anchor x="530" y="0" name="H"/>
+ <anchor x="530" y="-100" name="L"/>
+ <anchor x="885" y="1000" name="R"/>
+ <anchor x="360" y="1360" name="U"/>
+ <outline>
+ <contour>
+ <point x="220" y="270" type="line"/>
+ <point x="220" y="39"/>
+ <point x="374" y="-25"/>
+ <point x="563" y="-25" type="curve" smooth="yes"/>
+ <point x="635" y="-25"/>
+ <point x="725" y="-3"/>
+ <point x="820" y="57" type="curve"/>
+ <point x="820" y="281" type="line"/>
+ <point x="741" y="232"/>
+ <point x="678" y="206"/>
+ <point x="627" y="206" type="curve" smooth="yes"/>
+ <point x="537" y="206"/>
+ <point x="500" y="235"/>
+ <point x="500" y="462" type="curve" smooth="yes"/>
+ <point x="500" y="1320" type="line"/>
+ <point x="220" y="1320" type="line"/>
+ </contour>
+ <contour>
+ <point x="805" y="805" type="line"/>
+ <point x="805" y="1005" type="line"/>
+ <point x="30" y="1005" type="line"/>
+ <point x="30" y="805" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mU_.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mU_.glif
new file mode 100644
index 0000000..5b8d434
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mU_.glif
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmU" format="2">
+ <advance width="1245"/>
+ <unicode hex="0075"/>
+ <anchor x="515" y="0" name="H"/>
+ <anchor x="615" y="-100" name="L"/>
+ <anchor x="690" y="0" name="O"/>
+ <anchor x="1258" y="1000" name="R"/>
+ <anchor x="615" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="1160" y="0" type="line"/>
+ <point x="1118" y="112"/>
+ <point x="1095" y="256"/>
+ <point x="1095" y="450" type="curve" smooth="yes"/>
+ <point x="1095" y="646"/>
+ <point x="1095" y="1020"/>
+ <point x="1095" y="1020" type="curve"/>
+ <point x="795" y="1020" type="line"/>
+ <point x="813" y="898"/>
+ <point x="815" y="832"/>
+ <point x="815" y="700" type="curve" smooth="yes"/>
+ <point x="815" y="418" type="line"/>
+ <point x="774" y="326"/>
+ <point x="651" y="206"/>
+ <point x="560" y="206" type="curve" smooth="yes"/>
+ <point x="458" y="206"/>
+ <point x="425" y="284"/>
+ <point x="425" y="465" type="curve" smooth="yes"/>
+ <point x="425" y="603"/>
+ <point x="425" y="1020"/>
+ <point x="425" y="1020" type="curve"/>
+ <point x="125" y="1020" type="line"/>
+ <point x="143" y="900"/>
+ <point x="145" y="827"/>
+ <point x="145" y="700" type="curve" smooth="yes"/>
+ <point x="145" y="681"/>
+ <point x="145" y="424"/>
+ <point x="145" y="405" type="curve" smooth="yes"/>
+ <point x="145" y="120"/>
+ <point x="250" y="-25"/>
+ <point x="458" y="-25" type="curve" smooth="yes"/>
+ <point x="595" y="-25"/>
+ <point x="722" y="48"/>
+ <point x="840" y="185" type="curve"/>
+ <point x="850" y="116"/>
+ <point x="876" y="43"/>
+ <point x="895" y="0" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mV_.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mV_.glif
new file mode 100644
index 0000000..daf1468
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mV_.glif
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmV" format="2">
+ <advance width="1104"/>
+ <unicode hex="0076"/>
+ <anchor x="565" y="0" name="H"/>
+ <anchor x="565" y="-100" name="L"/>
+ <anchor x="750" y="0" name="O"/>
+ <anchor x="565" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="786" y="1020" type="line"/>
+ <point x="556" y="290" type="line"/>
+ <point x="322" y="1020" type="line"/>
+ <point x="10" y="1020" type="line"/>
+ <point x="65" y="905"/>
+ <point x="133" y="746"/>
+ <point x="165" y="665" type="curve" smooth="yes"/>
+ <point x="227" y="510"/>
+ <point x="430" y="0"/>
+ <point x="430" y="0" type="curve"/>
+ <point x="674" y="0" type="line"/>
+ <point x="674" y="0"/>
+ <point x="886" y="536"/>
+ <point x="939" y="665" type="curve" smooth="yes"/>
+ <point x="972" y="744"/>
+ <point x="1037" y="905"/>
+ <point x="1094" y="1020" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mW_.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mW_.glif
new file mode 100644
index 0000000..1ca1ec4
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mW_.glif
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmW" format="2">
+ <advance width="1570"/>
+ <unicode hex="0077"/>
+ <anchor x="785" y="-100" name="L"/>
+ <anchor x="785" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="665" y="1020" type="line"/>
+ <point x="480" y="285" type="line"/>
+ <point x="323" y="1020" type="line"/>
+ <point x="35" y="1020" type="line"/>
+ <point x="82" y="867"/>
+ <point x="110" y="771"/>
+ <point x="140" y="665" type="curve" smooth="yes"/>
+ <point x="325" y="0" type="line"/>
+ <point x="615" y="0" type="line"/>
+ <point x="785" y="695" type="line"/>
+ <point x="955" y="0" type="line"/>
+ <point x="1245" y="0" type="line"/>
+ <point x="1430" y="665" type="line" smooth="yes"/>
+ <point x="1464" y="785"/>
+ <point x="1488" y="868"/>
+ <point x="1535" y="1020" type="curve"/>
+ <point x="1247" y="1020" type="line"/>
+ <point x="1090" y="285" type="line"/>
+ <point x="905" y="1020" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mX_.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mX_.glif
new file mode 100644
index 0000000..971c129
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mX_.glif
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmX" format="2">
+ <advance width="1185"/>
+ <unicode hex="0078"/>
+ <anchor x="960" y="0" name="H"/>
+ <anchor x="590" y="-100" name="L"/>
+ <anchor x="615" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="815" y="0" type="line"/>
+ <point x="1145" y="0" type="line"/>
+ <point x="1037" y="129"/>
+ <point x="989" y="190"/>
+ <point x="930" y="270" type="curve" smooth="yes"/>
+ <point x="380" y="1020" type="line"/>
+ <point x="50" y="1020" type="line"/>
+ <point x="158" y="887"/>
+ <point x="192" y="842"/>
+ <point x="260" y="750" type="curve" smooth="yes"/>
+ </contour>
+ <contour>
+ <point x="499" y="616" type="line"/>
+ <point x="245" y="270" type="line" smooth="yes"/>
+ <point x="195" y="201"/>
+ <point x="150" y="143"/>
+ <point x="40" y="0" type="curve"/>
+ <point x="345" y="0" type="line"/>
+ <point x="584" y="359" type="line"/>
+ </contour>
+ <contour>
+ <point x="675" y="405" type="line"/>
+ <point x="925" y="750" type="line" smooth="yes"/>
+ <point x="980" y="826"/>
+ <point x="1027" y="886"/>
+ <point x="1130" y="1020" type="curve"/>
+ <point x="825" y="1020" type="line"/>
+ <point x="595" y="668" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mY_.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mY_.glif
new file mode 100644
index 0000000..ea8d25e
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/L_tnS_mY_.glif
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmY" format="2">
+ <advance width="1100"/>
+ <unicode hex="0079"/>
+ <anchor x="845" y="-100" name="L"/>
+ <anchor x="1155" y="1000" name="R"/>
+ <anchor x="565" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="945" y="665" type="line" smooth="yes"/>
+ <point x="978" y="758"/>
+ <point x="1021" y="865"/>
+ <point x="1090" y="1020" type="curve"/>
+ <point x="777" y="1020" type="line"/>
+ <point x="777" y="1020"/>
+ <point x="646" y="549"/>
+ <point x="573" y="293" type="curve"/>
+ <point x="333" y="1020" type="line"/>
+ <point x="20" y="1020" type="line"/>
+ <point x="97" y="864"/>
+ <point x="144" y="757"/>
+ <point x="180" y="665" type="curve" smooth="yes"/>
+ <point x="445" y="-18" type="line"/>
+ <point x="366" y="-209"/>
+ <point x="304" y="-242"/>
+ <point x="245" y="-242" type="curve" smooth="yes"/>
+ <point x="179" y="-242"/>
+ <point x="102" y="-202"/>
+ <point x="60" y="-167" type="curve"/>
+ <point x="-10" y="-385" type="line"/>
+ <point x="63" y="-439"/>
+ <point x="154" y="-470"/>
+ <point x="245" y="-470" type="curve" smooth="yes"/>
+ <point x="427" y="-470"/>
+ <point x="565" y="-387"/>
+ <point x="705" y="0" type="curve" smooth="yes"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/N_onB_reakingH_yphen.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/N_onB_reakingH_yphen.glif
new file mode 100644
index 0000000..7dc67c0
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/N_onB_reakingH_yphen.glif
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="NonBreakingHyphen" format="2">
+ <advance width="895"/>
+ <unicode hex="2011"/>
+ <anchor x="450" y="1100" name="U"/>
+ <outline>
+ <component base="HyphenMinus"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/N_umS_gn.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/N_umS_gn.glif
new file mode 100644
index 0000000..54b82cb
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/N_umS_gn.glif
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="NumSgn" format="2">
+ <advance width="1200"/>
+ <unicode hex="0023"/>
+ <outline>
+ <contour>
+ <point x="412" y="1360" type="line"/>
+ <point x="52" y="100" type="line"/>
+ <point x="272" y="100" type="line"/>
+ <point x="632" y="1360" type="line"/>
+ </contour>
+ <contour>
+ <point x="10" y="425" type="line"/>
+ <point x="1101" y="425" type="line"/>
+ <point x="1101" y="635" type="line"/>
+ <point x="10" y="635" type="line"/>
+ </contour>
+ <contour>
+ <point x="69" y="850" type="line"/>
+ <point x="1160" y="850" type="line"/>
+ <point x="1160" y="1060" type="line"/>
+ <point x="69" y="1060" type="line"/>
+ </contour>
+ <contour>
+ <point x="887" y="1360" type="line"/>
+ <point x="527" y="100" type="line"/>
+ <point x="747" y="100" type="line"/>
+ <point x="1107" y="1360" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/P_ercentS_gn.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/P_ercentS_gn.glif
new file mode 100644
index 0000000..5017543
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/P_ercentS_gn.glif
@@ -0,0 +1,69 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="PercentSgn" format="2">
+ <advance width="1565"/>
+ <unicode hex="0025"/>
+ <outline>
+ <contour>
+ <point x="1073" y="1480" type="line"/>
+ <point x="291" y="-25" type="line"/>
+ <point x="499" y="-25" type="line"/>
+ <point x="1279" y="1480" type="line"/>
+ </contour>
+ <contour>
+ <point x="511" y="1076" type="curve" smooth="yes"/>
+ <point x="511" y="892"/>
+ <point x="470" y="815"/>
+ <point x="394" y="815" type="curve" smooth="yes"/>
+ <point x="315" y="815"/>
+ <point x="279" y="891"/>
+ <point x="279" y="1091" type="curve" smooth="yes"/>
+ <point x="279" y="1275"/>
+ <point x="317" y="1350"/>
+ <point x="394" y="1350" type="curve" smooth="yes"/>
+ <point x="475" y="1350"/>
+ <point x="511" y="1276"/>
+ </contour>
+ <contour>
+ <point x="721" y="1089" type="curve" smooth="yes"/>
+ <point x="721" y="1362"/>
+ <point x="584" y="1480"/>
+ <point x="399" y="1480" type="curve" smooth="yes"/>
+ <point x="215" y="1480"/>
+ <point x="69" y="1360"/>
+ <point x="69" y="1078" type="curve" smooth="yes"/>
+ <point x="69" y="796"/>
+ <point x="205" y="685"/>
+ <point x="390" y="685" type="curve" smooth="yes"/>
+ <point x="575" y="685"/>
+ <point x="721" y="794"/>
+ </contour>
+ <contour>
+ <point x="1286" y="366" type="curve" smooth="yes"/>
+ <point x="1286" y="182"/>
+ <point x="1245" y="105"/>
+ <point x="1169" y="105" type="curve" smooth="yes"/>
+ <point x="1090" y="105"/>
+ <point x="1054" y="181"/>
+ <point x="1054" y="381" type="curve" smooth="yes"/>
+ <point x="1054" y="565"/>
+ <point x="1092" y="640"/>
+ <point x="1169" y="640" type="curve" smooth="yes"/>
+ <point x="1250" y="640"/>
+ <point x="1286" y="566"/>
+ </contour>
+ <contour>
+ <point x="1496" y="379" type="curve" smooth="yes"/>
+ <point x="1496" y="652"/>
+ <point x="1359" y="770"/>
+ <point x="1174" y="770" type="curve" smooth="yes"/>
+ <point x="990" y="770"/>
+ <point x="844" y="650"/>
+ <point x="844" y="368" type="curve" smooth="yes"/>
+ <point x="844" y="86"/>
+ <point x="980" y="-25"/>
+ <point x="1165" y="-25" type="curve" smooth="yes"/>
+ <point x="1350" y="-25"/>
+ <point x="1496" y="84"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/P_lusS_gn.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/P_lusS_gn.glif
new file mode 100644
index 0000000..a1a4c93
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/P_lusS_gn.glif
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="PlusSgn" format="2">
+ <advance width="1200"/>
+ <unicode hex="002B"/>
+ <outline>
+ <contour>
+ <point x="495" y="1180" type="line"/>
+ <point x="495" y="285" type="line"/>
+ <point x="705" y="285" type="line"/>
+ <point x="705" y="1180" type="line"/>
+ </contour>
+ <contour>
+ <point x="155" y="630" type="line"/>
+ <point x="1045" y="630" type="line"/>
+ <point x="1045" y="840" type="line"/>
+ <point x="155" y="840" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/Q_stnM_rk.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/Q_stnM_rk.glif
new file mode 100644
index 0000000..c9bbb28
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/Q_stnM_rk.glif
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="QstnMrk" format="2">
+ <advance width="1090"/>
+ <unicode hex="003F"/>
+ <outline>
+ <contour>
+ <point x="640" y="500" type="line"/>
+ <point x="640" y="671"/>
+ <point x="668" y="805"/>
+ <point x="767" y="956" type="curve" smooth="yes"/>
+ <point x="837" y="1063"/>
+ <point x="900" y="1117"/>
+ <point x="900" y="1220" type="curve" smooth="yes"/>
+ <point x="900" y="1402"/>
+ <point x="757" y="1540"/>
+ <point x="500" y="1540" type="curve" smooth="yes"/>
+ <point x="355" y="1540"/>
+ <point x="206" y="1470"/>
+ <point x="140" y="1407" type="curve"/>
+ <point x="185" y="1168" type="line"/>
+ <point x="261" y="1247"/>
+ <point x="372" y="1295"/>
+ <point x="472" y="1295" type="curve" smooth="yes"/>
+ <point x="569" y="1295"/>
+ <point x="615" y="1249"/>
+ <point x="615" y="1190" type="curve" smooth="yes"/>
+ <point x="615" y="1139"/>
+ <point x="565" y="1096"/>
+ <point x="495" y="980" type="curve" smooth="yes"/>
+ <point x="434" y="879"/>
+ <point x="375" y="710"/>
+ <point x="375" y="500" type="curve"/>
+ </contour>
+ <contour>
+ <point x="335" y="150" type="curve" smooth="yes"/>
+ <point x="335" y="46"/>
+ <point x="409" y="-25"/>
+ <point x="510" y="-25" type="curve" smooth="yes"/>
+ <point x="612" y="-25"/>
+ <point x="685" y="46"/>
+ <point x="685" y="150" type="curve" smooth="yes"/>
+ <point x="685" y="252"/>
+ <point x="612" y="325"/>
+ <point x="510" y="325" type="curve" smooth="yes"/>
+ <point x="409" y="325"/>
+ <point x="335" y="252"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/Q_uotM_rk.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/Q_uotM_rk.glif
new file mode 100644
index 0000000..794a655
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/Q_uotM_rk.glif
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="QuotMrk" format="2">
+ <advance width="1085"/>
+ <unicode hex="0022"/>
+ <outline>
+ <contour>
+ <point x="450" y="1045" type="line"/>
+ <point x="455" y="1186"/>
+ <point x="456" y="1339"/>
+ <point x="485" y="1585" type="curve"/>
+ <point x="240" y="1585" type="line"/>
+ <point x="271" y="1339"/>
+ <point x="271" y="1186"/>
+ <point x="275" y="1045" type="curve"/>
+ </contour>
+ <contour>
+ <point x="810" y="1045" type="line"/>
+ <point x="815" y="1186"/>
+ <point x="816" y="1339"/>
+ <point x="845" y="1585" type="curve"/>
+ <point x="600" y="1585" type="line"/>
+ <point x="631" y="1339"/>
+ <point x="631" y="1186"/>
+ <point x="635" y="1045" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/R_everseS_olidus.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/R_everseS_olidus.glif
new file mode 100644
index 0000000..799c999
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/R_everseS_olidus.glif
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="ReverseSolidus" format="2">
+ <advance width="1080"/>
+ <unicode hex="005C"/>
+ <outline>
+ <contour>
+ <point x="10" y="1600" type="line"/>
+ <point x="840" y="-245" type="line"/>
+ <point x="1070" y="-245" type="line"/>
+ <point x="240" y="1600" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/R_tC_urlyB_rac.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/R_tC_urlyB_rac.glif
new file mode 100644
index 0000000..48383fb
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/R_tC_urlyB_rac.glif
@@ -0,0 +1,47 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="RtCurlyBrac" format="2">
+ <advance width="1040"/>
+ <unicode hex="007D"/>
+ <outline>
+ <contour>
+ <point x="180" y="-410" type="line"/>
+ <point x="316" y="-383"/>
+ <point x="520" y="-333"/>
+ <point x="570" y="-285" type="curve" smooth="yes"/>
+ <point x="645" y="-213"/>
+ <point x="633" y="378"/>
+ <point x="655" y="410" type="curve" smooth="yes"/>
+ <point x="685" y="453"/>
+ <point x="855" y="560"/>
+ <point x="855" y="615" type="curve" smooth="yes"/>
+ <point x="855" y="670"/>
+ <point x="685" y="777"/>
+ <point x="655" y="820" type="curve" smooth="yes"/>
+ <point x="633" y="852"/>
+ <point x="644" y="1442"/>
+ <point x="570" y="1515" type="curve" smooth="yes"/>
+ <point x="523" y="1562"/>
+ <point x="333" y="1613"/>
+ <point x="205" y="1640" type="curve"/>
+ <point x="155" y="1409" type="line"/>
+ <point x="218" y="1390"/>
+ <point x="323" y="1351"/>
+ <point x="340" y="1330" type="curve" smooth="yes"/>
+ <point x="375" y="1289"/>
+ <point x="364" y="820"/>
+ <point x="382" y="785" type="curve" smooth="yes"/>
+ <point x="405" y="740"/>
+ <point x="542" y="650"/>
+ <point x="542" y="615" type="curve" smooth="yes"/>
+ <point x="542" y="580"/>
+ <point x="404" y="491"/>
+ <point x="380" y="445" type="curve" smooth="yes"/>
+ <point x="362" y="411"/>
+ <point x="375" y="-60"/>
+ <point x="340" y="-100" type="curve" smooth="yes"/>
+ <point x="321" y="-122"/>
+ <point x="197" y="-160"/>
+ <point x="130" y="-179" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/R_tP_aren.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/R_tP_aren.glif
new file mode 100644
index 0000000..ae49fca
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/R_tP_aren.glif
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="RtParen" format="2">
+ <advance width="860"/>
+ <unicode hex="0029"/>
+ <outline>
+ <contour>
+ <point x="185" y="1455" type="line"/>
+ <point x="395" y="1261"/>
+ <point x="485" y="938"/>
+ <point x="485" y="635" type="curve" smooth="yes"/>
+ <point x="485" y="335"/>
+ <point x="399" y="11"/>
+ <point x="175" y="-240" type="curve"/>
+ <point x="326" y="-410" type="line"/>
+ <point x="601" y="-125"/>
+ <point x="746" y="218"/>
+ <point x="746" y="625" type="curve" smooth="yes"/>
+ <point x="746" y="1062"/>
+ <point x="571" y="1444"/>
+ <point x="306" y="1640" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/R_tS_qrB_rac.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/R_tS_qrB_rac.glif
new file mode 100644
index 0000000..325e575
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/R_tS_qrB_rac.glif
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="RtSqrBrac" format="2">
+ <advance width="850"/>
+ <unicode hex="005D"/>
+ <outline>
+ <contour>
+ <point x="660" y="-410" type="line"/>
+ <point x="660" y="1600" type="line"/>
+ <point x="140" y="1600" type="line"/>
+ <point x="140" y="1390" type="line"/>
+ <point x="380" y="1390" type="line"/>
+ <point x="380" y="-200" type="line"/>
+ <point x="140" y="-200" type="line"/>
+ <point x="140" y="-410" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/S_emicolon.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/S_emicolon.glif
new file mode 100644
index 0000000..ae95657
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/S_emicolon.glif
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Semicolon" format="2">
+ <advance width="710"/>
+ <unicode hex="003B"/>
+ <outline>
+ <contour>
+ <point x="200" y="750" type="curve" smooth="yes"/>
+ <point x="200" y="646"/>
+ <point x="274" y="575"/>
+ <point x="375" y="575" type="curve" smooth="yes"/>
+ <point x="477" y="575"/>
+ <point x="550" y="646"/>
+ <point x="550" y="750" type="curve" smooth="yes"/>
+ <point x="550" y="852"/>
+ <point x="477" y="925"/>
+ <point x="375" y="925" type="curve" smooth="yes"/>
+ <point x="274" y="925"/>
+ <point x="200" y="852"/>
+ </contour>
+ <contour>
+ <point x="185" y="50" type="line"/>
+ <point x="345" y="50" type="line"/>
+ <point x="345" y="-34"/>
+ <point x="290" y="-153"/>
+ <point x="185" y="-265" type="curve"/>
+ <point x="330" y="-335" type="line"/>
+ <point x="454" y="-228"/>
+ <point x="560" y="-49"/>
+ <point x="560" y="130" type="curve" smooth="yes"/>
+ <point x="560" y="254"/>
+ <point x="489" y="340"/>
+ <point x="375" y="340" type="curve" smooth="yes"/>
+ <point x="262" y="340"/>
+ <point x="185" y="255"/>
+ <point x="185" y="180" type="curve" smooth="yes"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/S_olidus.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/S_olidus.glif
new file mode 100644
index 0000000..1e33c05
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/S_olidus.glif
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Solidus" format="2">
+ <advance width="1080"/>
+ <unicode hex="002F"/>
+ <outline>
+ <contour>
+ <point x="840" y="1600" type="line"/>
+ <point x="10" y="-245" type="line"/>
+ <point x="240" y="-245" type="line"/>
+ <point x="1070" y="1600" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/S_pace.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/S_pace.glif
new file mode 100644
index 0000000..ef0bed7
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/S_pace.glif
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Space" format="2">
+ <advance width="550"/>
+ <unicode hex="0020"/>
+ <outline/>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/T_ilde.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/T_ilde.glif
new file mode 100644
index 0000000..ec9fc73
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/T_ilde.glif
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Tilde" format="2">
+ <advance width="1115"/>
+ <unicode hex="007E"/>
+ <outline>
+ <contour>
+ <point x="165" y="345" type="line"/>
+ <point x="170" y="394"/>
+ <point x="202" y="435"/>
+ <point x="280" y="435" type="curve" smooth="yes"/>
+ <point x="435" y="435"/>
+ <point x="615" y="330"/>
+ <point x="825" y="330" type="curve" smooth="yes"/>
+ <point x="984" y="330"/>
+ <point x="1080" y="512"/>
+ <point x="1080" y="640" type="curve"/>
+ <point x="935" y="640" type="line"/>
+ <point x="928" y="594"/>
+ <point x="898" y="540"/>
+ <point x="815" y="540" type="curve" smooth="yes"/>
+ <point x="599" y="540"/>
+ <point x="461" y="645"/>
+ <point x="260" y="645" type="curve" smooth="yes"/>
+ <point x="104" y="645"/>
+ <point x="20" y="467"/>
+ <point x="20" y="345" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/V_ertL_ine.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/V_ertL_ine.glif
new file mode 100644
index 0000000..d7caa84
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/V_ertL_ine.glif
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="VertLine" format="2">
+ <advance width="690"/>
+ <unicode hex="007C"/>
+ <outline>
+ <contour>
+ <point x="240" y="1600" type="line"/>
+ <point x="240" y="-390" type="line"/>
+ <point x="450" y="-390" type="line"/>
+ <point x="450" y="1600" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/_notdef.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/_notdef.glif
new file mode 100644
index 0000000..a3e9354
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/_notdef.glif
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name=".notdef" format="2">
+ <advance width="1400"/>
+ <outline>
+ <contour>
+ <point x="100" y="0" type="line"/>
+ <point x="1300" y="0" type="line"/>
+ <point x="1300" y="1800" type="line"/>
+ <point x="100" y="1800" type="line"/>
+ </contour>
+ <contour>
+ <point x="150" y="1750" type="line"/>
+ <point x="1250" y="1750" type="line"/>
+ <point x="1250" y="50" type="line"/>
+ <point x="150" y="50" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/_null.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/_null.glif
new file mode 100644
index 0000000..0b9caa6
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/_null.glif
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name=".null" format="2">
+ <outline/>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/contents.plist b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/contents.plist
new file mode 100644
index 0000000..de3c0b3
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/contents.plist
@@ -0,0 +1,234 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>.notdef</key>
+ <string>_notdef.glif</string>
+ <key>.null</key>
+ <string>_null.glif</string>
+ <key>Ampersand</key>
+ <string>A_mpersand.glif</string>
+ <key>Apos</key>
+ <string>A_pos.glif</string>
+ <key>Asterisk</key>
+ <string>A_sterisk.glif</string>
+ <key>AtSgn</key>
+ <string>A_tS_gn.glif</string>
+ <key>CircumAccent</key>
+ <string>C_ircumA_ccent.glif</string>
+ <key>Colon</key>
+ <string>C_olon.glif</string>
+ <key>CombAcute</key>
+ <string>C_ombA_cute.glif</string>
+ <key>CombCircum</key>
+ <string>C_ombC_ircum.glif</string>
+ <key>CombDiaer</key>
+ <string>C_ombD_iaer.glif</string>
+ <key>CombGrave</key>
+ <string>C_ombG_rave.glif</string>
+ <key>CombRingAbv</key>
+ <string>C_ombR_ingA_bv.glif</string>
+ <key>CombTilde</key>
+ <string>C_ombT_ilde.glif</string>
+ <key>Comma</key>
+ <string>C_omma.glif</string>
+ <key>DigitEight</key>
+ <string>D_igitE_ight.glif</string>
+ <key>DigitFive</key>
+ <string>D_igitF_ive.glif</string>
+ <key>DigitFour</key>
+ <string>D_igitF_our.glif</string>
+ <key>DigitNine</key>
+ <string>D_igitN_ine.glif</string>
+ <key>DigitOne</key>
+ <string>D_igitO_ne.glif</string>
+ <key>DigitSeven</key>
+ <string>D_igitS_even.glif</string>
+ <key>DigitSix</key>
+ <string>D_igitS_ix.glif</string>
+ <key>DigitThree</key>
+ <string>D_igitT_hree.glif</string>
+ <key>DigitTwo</key>
+ <string>D_igitT_wo.glif</string>
+ <key>DigitZero</key>
+ <string>D_igitZ_ero.glif</string>
+ <key>DollarSgn</key>
+ <string>D_ollarS_gn.glif</string>
+ <key>DottedCirc</key>
+ <string>D_ottedC_irc.glif</string>
+ <key>EqSgn</key>
+ <string>E_qS_gn.glif</string>
+ <key>ExclamationMrk</key>
+ <string>E_xclamationM_rk.glif</string>
+ <key>FullStop</key>
+ <string>F_ullS_top.glif</string>
+ <key>GTSgn</key>
+ <string>G_T_S_gn.glif</string>
+ <key>GraveAccent</key>
+ <string>G_raveA_ccent.glif</string>
+ <key>Hyphen</key>
+ <string>H_yphen.glif</string>
+ <key>HyphenMinus</key>
+ <string>H_yphenM_inus.glif</string>
+ <key>Hyphen_Soft</key>
+ <string>H_yphen_S_oft.glif</string>
+ <key>LTSgn</key>
+ <string>L_T_S_gn.glif</string>
+ <key>LftCurlyBrac</key>
+ <string>L_ftC_urlyB_rac.glif</string>
+ <key>LftParen</key>
+ <string>L_ftP_aren.glif</string>
+ <key>LftSqrBrac</key>
+ <string>L_ftS_qrB_rac.glif</string>
+ <key>LowLine</key>
+ <string>L_owL_ine.glif</string>
+ <key>LtnCapA</key>
+ <string>L_tnC_apA_.glif</string>
+ <key>LtnCapA.alt</key>
+ <string>L_tnC_apA_.alt.glif</string>
+ <key>LtnCapADiaer</key>
+ <string>L_tnC_apA_D_iaer.glif</string>
+ <key>LtnCapB</key>
+ <string>L_tnC_apB_.glif</string>
+ <key>LtnCapC</key>
+ <string>L_tnC_apC_.glif</string>
+ <key>LtnCapD</key>
+ <string>L_tnC_apD_.glif</string>
+ <key>LtnCapE</key>
+ <string>L_tnC_apE_.glif</string>
+ <key>LtnCapF</key>
+ <string>L_tnC_apF_.glif</string>
+ <key>LtnCapG</key>
+ <string>L_tnC_apG_.glif</string>
+ <key>LtnCapH</key>
+ <string>L_tnC_apH_.glif</string>
+ <key>LtnCapI</key>
+ <string>L_tnC_apI_.glif</string>
+ <key>LtnCapJ</key>
+ <string>L_tnC_apJ_.glif</string>
+ <key>LtnCapK</key>
+ <string>L_tnC_apK_.glif</string>
+ <key>LtnCapL</key>
+ <string>L_tnC_apL_.glif</string>
+ <key>LtnCapM</key>
+ <string>L_tnC_apM_.glif</string>
+ <key>LtnCapN</key>
+ <string>L_tnC_apN_.glif</string>
+ <key>LtnCapO</key>
+ <string>L_tnC_apO_.glif</string>
+ <key>LtnCapP</key>
+ <string>L_tnC_apP_.glif</string>
+ <key>LtnCapQ</key>
+ <string>L_tnC_apQ_.glif</string>
+ <key>LtnCapR</key>
+ <string>L_tnC_apR_.glif</string>
+ <key>LtnCapS</key>
+ <string>L_tnC_apS_.glif</string>
+ <key>LtnCapT</key>
+ <string>L_tnC_apT_.glif</string>
+ <key>LtnCapU</key>
+ <string>L_tnC_apU_.glif</string>
+ <key>LtnCapV</key>
+ <string>L_tnC_apV_.glif</string>
+ <key>LtnCapW</key>
+ <string>L_tnC_apW_.glif</string>
+ <key>LtnCapX</key>
+ <string>L_tnC_apX_.glif</string>
+ <key>LtnCapY</key>
+ <string>L_tnC_apY_.glif</string>
+ <key>LtnSmA</key>
+ <string>L_tnS_mA_.glif</string>
+ <key>LtnSmAAcute</key>
+ <string>L_tnS_mA_A_cute.glif</string>
+ <key>LtnSmACircum</key>
+ <string>L_tnS_mA_C_ircum.glif</string>
+ <key>LtnSmADiaer</key>
+ <string>L_tnS_mA_D_iaer.glif</string>
+ <key>LtnSmAGrave</key>
+ <string>L_tnS_mA_G_rave.glif</string>
+ <key>LtnSmARingAbv</key>
+ <string>L_tnS_mA_R_ingA_bv.glif</string>
+ <key>LtnSmATilde</key>
+ <string>L_tnS_mA_T_ilde.glif</string>
+ <key>LtnSmB</key>
+ <string>L_tnS_mB_.glif</string>
+ <key>LtnSmC</key>
+ <string>L_tnS_mC_.glif</string>
+ <key>LtnSmD</key>
+ <string>L_tnS_mD_.glif</string>
+ <key>LtnSmE</key>
+ <string>L_tnS_mE_.glif</string>
+ <key>LtnSmF</key>
+ <string>L_tnS_mF_.glif</string>
+ <key>LtnSmG</key>
+ <string>L_tnS_mG_.glif</string>
+ <key>LtnSmH</key>
+ <string>L_tnS_mH_.glif</string>
+ <key>LtnSmI</key>
+ <string>L_tnS_mI_.glif</string>
+ <key>LtnSmJ</key>
+ <string>L_tnS_mJ_.glif</string>
+ <key>LtnSmK</key>
+ <string>L_tnS_mK_.glif</string>
+ <key>LtnSmL</key>
+ <string>L_tnS_mL_.glif</string>
+ <key>LtnSmM</key>
+ <string>L_tnS_mM_.glif</string>
+ <key>LtnSmN</key>
+ <string>L_tnS_mN_.glif</string>
+ <key>LtnSmO</key>
+ <string>L_tnS_mO_.glif</string>
+ <key>LtnSmP</key>
+ <string>L_tnS_mP_.glif</string>
+ <key>LtnSmQ</key>
+ <string>L_tnS_mQ_.glif</string>
+ <key>LtnSmR</key>
+ <string>L_tnS_mR_.glif</string>
+ <key>LtnSmS</key>
+ <string>L_tnS_mS_.glif</string>
+ <key>LtnSmT</key>
+ <string>L_tnS_mT_.glif</string>
+ <key>LtnSmU</key>
+ <string>L_tnS_mU_.glif</string>
+ <key>LtnSmV</key>
+ <string>L_tnS_mV_.glif</string>
+ <key>LtnSmW</key>
+ <string>L_tnS_mW_.glif</string>
+ <key>LtnSmX</key>
+ <string>L_tnS_mX_.glif</string>
+ <key>LtnSmY</key>
+ <string>L_tnS_mY_.glif</string>
+ <key>NonBreakingHyphen</key>
+ <string>N_onB_reakingH_yphen.glif</string>
+ <key>NumSgn</key>
+ <string>N_umS_gn.glif</string>
+ <key>PercentSgn</key>
+ <string>P_ercentS_gn.glif</string>
+ <key>PlusSgn</key>
+ <string>P_lusS_gn.glif</string>
+ <key>QstnMrk</key>
+ <string>Q_stnM_rk.glif</string>
+ <key>QuotMrk</key>
+ <string>Q_uotM_rk.glif</string>
+ <key>ReverseSolidus</key>
+ <string>R_everseS_olidus.glif</string>
+ <key>RtCurlyBrac</key>
+ <string>R_tC_urlyB_rac.glif</string>
+ <key>RtParen</key>
+ <string>R_tP_aren.glif</string>
+ <key>RtSqrBrac</key>
+ <string>R_tS_qrB_rac.glif</string>
+ <key>Semicolon</key>
+ <string>S_emicolon.glif</string>
+ <key>Solidus</key>
+ <string>S_olidus.glif</string>
+ <key>Space</key>
+ <string>S_pace.glif</string>
+ <key>Tilde</key>
+ <string>T_ilde.glif</string>
+ <key>VertLine</key>
+ <string>V_ertL_ine.glif</string>
+ <key>nonmarkingreturn</key>
+ <string>nonmarkingreturn.glif</string>
+</dict>
+</plist>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/nonmarkingreturn.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/nonmarkingreturn.glif
new file mode 100644
index 0000000..ee41448
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/glyphs/nonmarkingreturn.glif
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="nonmarkingreturn" format="2">
+ <advance width="1024"/>
+ <outline/>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/layercontents.plist b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/layercontents.plist
new file mode 100644
index 0000000..42b7482
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/layercontents.plist
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<array>
+ <array>
+ <string>public.default</string>
+ <string>glyphs</string>
+ </array>
+</array>
+</plist>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/lib.plist b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/lib.plist
new file mode 100644
index 0000000..e2b5315
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/lib.plist
@@ -0,0 +1,417 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>com.schriftgestaltung.Glyphs.fontUserData</key>
+ <dict/>
+ <key>com.schriftgestaltung.appVersion</key>
+ <string>1165</string>
+ <key>com.schriftgestaltung.customParameter.GSFont.disablesAutomaticAlignment</key>
+ <true/>
+ <key>com.schriftgestaltung.customParameter.GSFont.disablesLastChange</key>
+ <true/>
+ <key>com.schriftgestaltung.customParameter.GSFont.useNiceNames</key>
+ <integer>0</integer>
+ <key>com.schriftgestaltung.customParameter.GSFontMaster.customValue</key>
+ <integer>0</integer>
+ <key>com.schriftgestaltung.customParameter.GSFontMaster.customValue1</key>
+ <integer>0</integer>
+ <key>com.schriftgestaltung.customParameter.GSFontMaster.customValue2</key>
+ <integer>0</integer>
+ <key>com.schriftgestaltung.customParameter.GSFontMaster.customValue3</key>
+ <integer>0</integer>
+ <key>com.schriftgestaltung.customParameter.GSFontMaster.iconName</key>
+ <string/>
+ <key>com.schriftgestaltung.customParameter.GSFontMaster.weightValue</key>
+ <integer>700</integer>
+ <key>com.schriftgestaltung.customParameter.GSFontMaster.widthValue</key>
+ <integer>100</integer>
+ <key>com.schriftgestaltung.disablesAutomaticAlignment</key>
+ <true/>
+ <key>com.schriftgestaltung.disablesLastChange</key>
+ <true/>
+ <key>com.schriftgestaltung.fontMasterOrder</key>
+ <integer>1</integer>
+ <key>com.schriftgestaltung.keyboardIncrement</key>
+ <integer>1</integer>
+ <key>com.schriftgestaltung.weight</key>
+ <string>Bold</string>
+ <key>com.schriftgestaltung.weightValue</key>
+ <integer>700</integer>
+ <key>com.schriftgestaltung.width</key>
+ <string>Regular</string>
+ <key>com.schriftgestaltung.widthValue</key>
+ <integer>100</integer>
+ <key>org.sil.lcg.toneLetters</key>
+ <dict>
+ <key>contourWidth</key>
+ <integer>540</integer>
+ <key>dotSize</key>
+ <integer>280</integer>
+ <key>dotSpacing</key>
+ <integer>200</integer>
+ <key>glyphDepth</key>
+ <integer>-25</integer>
+ <key>glyphHeight</key>
+ <integer>1600</integer>
+ <key>italicAngle</key>
+ <integer>0</integer>
+ <key>marginDotLeft</key>
+ <integer>100</integer>
+ <key>marginDotRight</key>
+ <integer>140</integer>
+ <key>marginFlatLeft</key>
+ <integer>100</integer>
+ <key>marginFlatRight</key>
+ <integer>140</integer>
+ <key>marginPointLeft</key>
+ <integer>80</integer>
+ <key>marginPointRight</key>
+ <integer>120</integer>
+ <key>strokeThickness</key>
+ <integer>200</integer>
+ </dict>
+ <key>public.glyphOrder</key>
+ <array>
+ <string>.notdef</string>
+ <string>.null</string>
+ <string>nonmarkingreturn</string>
+ <string>Space</string>
+ <string>ExclamationMrk</string>
+ <string>QuotMrk</string>
+ <string>NumSgn</string>
+ <string>DollarSgn</string>
+ <string>PercentSgn</string>
+ <string>Ampersand</string>
+ <string>Apos</string>
+ <string>LftParen</string>
+ <string>RtParen</string>
+ <string>Asterisk</string>
+ <string>PlusSgn</string>
+ <string>Comma</string>
+ <string>HyphenMinus</string>
+ <string>FullStop</string>
+ <string>Solidus</string>
+ <string>DigitZero</string>
+ <string>DigitOne</string>
+ <string>DigitTwo</string>
+ <string>DigitThree</string>
+ <string>DigitFour</string>
+ <string>DigitFive</string>
+ <string>DigitSix</string>
+ <string>DigitSeven</string>
+ <string>DigitEight</string>
+ <string>DigitNine</string>
+ <string>Colon</string>
+ <string>Semicolon</string>
+ <string>LTSgn</string>
+ <string>EqSgn</string>
+ <string>GTSgn</string>
+ <string>QstnMrk</string>
+ <string>AtSgn</string>
+ <string>LtnCapA</string>
+ <string>LtnCapA.alt</string>
+ <string>LtnCapB</string>
+ <string>LtnCapC</string>
+ <string>LtnCapD</string>
+ <string>LtnCapE</string>
+ <string>LtnCapF</string>
+ <string>LtnCapG</string>
+ <string>LtnCapH</string>
+ <string>LtnCapI</string>
+ <string>LtnCapJ</string>
+ <string>LtnCapK</string>
+ <string>LtnCapL</string>
+ <string>LtnCapM</string>
+ <string>LtnCapN</string>
+ <string>LtnCapO</string>
+ <string>LtnCapP</string>
+ <string>LtnCapQ</string>
+ <string>LtnCapR</string>
+ <string>LtnCapS</string>
+ <string>LtnCapT</string>
+ <string>LtnCapU</string>
+ <string>LtnCapV</string>
+ <string>LtnCapW</string>
+ <string>LtnCapX</string>
+ <string>LtnCapY</string>
+ <string>LftSqrBrac</string>
+ <string>ReverseSolidus</string>
+ <string>RtSqrBrac</string>
+ <string>CircumAccent</string>
+ <string>LowLine</string>
+ <string>GraveAccent</string>
+ <string>LtnSmA</string>
+ <string>LtnSmB</string>
+ <string>LtnSmC</string>
+ <string>LtnSmD</string>
+ <string>LtnSmE</string>
+ <string>LtnSmF</string>
+ <string>LtnSmG</string>
+ <string>LtnSmH</string>
+ <string>LtnSmI</string>
+ <string>LtnSmJ</string>
+ <string>LtnSmK</string>
+ <string>LtnSmL</string>
+ <string>LtnSmM</string>
+ <string>LtnSmN</string>
+ <string>LtnSmO</string>
+ <string>LtnSmP</string>
+ <string>LtnSmQ</string>
+ <string>LtnSmR</string>
+ <string>LtnSmS</string>
+ <string>LtnSmT</string>
+ <string>LtnSmU</string>
+ <string>LtnSmV</string>
+ <string>LtnSmW</string>
+ <string>LtnSmX</string>
+ <string>LtnSmY</string>
+ <string>LftCurlyBrac</string>
+ <string>VertLine</string>
+ <string>RtCurlyBrac</string>
+ <string>Tilde</string>
+ <string>LtnCapADiaer</string>
+ <string>LtnSmAAcute</string>
+ <string>LtnSmAGrave</string>
+ <string>LtnSmACircum</string>
+ <string>LtnSmADiaer</string>
+ <string>LtnSmATilde</string>
+ <string>LtnSmARingAbv</string>
+ <string>DottedCirc</string>
+ <string>Hyphen</string>
+ <string>NonBreakingHyphen</string>
+ <string>Hyphen_Soft</string>
+ <string>CombAcute</string>
+ <string>CombGrave</string>
+ <string>CombCircum</string>
+ <string>CombTilde</string>
+ <string>CombDiaer</string>
+ <string>CombRingAbv</string>
+ </array>
+ <key>public.postscriptNames</key>
+ <dict>
+ <key>Ampersand</key>
+ <string>ampersand</string>
+ <key>Apos</key>
+ <string>quotesingle</string>
+ <key>Asterisk</key>
+ <string>asterisk</string>
+ <key>AtSgn</key>
+ <string>at</string>
+ <key>CircumAccent</key>
+ <string>asciicircum</string>
+ <key>Colon</key>
+ <string>colon</string>
+ <key>CombAcute</key>
+ <string>acutecomb</string>
+ <key>CombCircum</key>
+ <string>uni0302</string>
+ <key>CombDiaer</key>
+ <string>uni0308</string>
+ <key>CombGrave</key>
+ <string>gravecomb</string>
+ <key>CombRingAbv</key>
+ <string>uni030A</string>
+ <key>CombTilde</key>
+ <string>tildecomb</string>
+ <key>Comma</key>
+ <string>comma</string>
+ <key>DigitEight</key>
+ <string>eight</string>
+ <key>DigitFive</key>
+ <string>five</string>
+ <key>DigitFour</key>
+ <string>four</string>
+ <key>DigitNine</key>
+ <string>nine</string>
+ <key>DigitOne</key>
+ <string>one</string>
+ <key>DigitSeven</key>
+ <string>seven</string>
+ <key>DigitSix</key>
+ <string>six</string>
+ <key>DigitThree</key>
+ <string>three</string>
+ <key>DigitTwo</key>
+ <string>two</string>
+ <key>DigitZero</key>
+ <string>zero</string>
+ <key>DollarSgn</key>
+ <string>dollar</string>
+ <key>DottedCirc</key>
+ <string>uni25CC</string>
+ <key>EqSgn</key>
+ <string>equal</string>
+ <key>ExclamationMrk</key>
+ <string>exclam</string>
+ <key>FullStop</key>
+ <string>period</string>
+ <key>GTSgn</key>
+ <string>greater</string>
+ <key>GraveAccent</key>
+ <string>grave</string>
+ <key>Hyphen</key>
+ <string>uni2010</string>
+ <key>HyphenMinus</key>
+ <string>hyphen</string>
+ <key>Hyphen_Soft</key>
+ <string>uni00AD</string>
+ <key>LTSgn</key>
+ <string>less</string>
+ <key>LftCurlyBrac</key>
+ <string>braceleft</string>
+ <key>LftParen</key>
+ <string>parenleft</string>
+ <key>LftSqrBrac</key>
+ <string>bracketleft</string>
+ <key>LowLine</key>
+ <string>underscore</string>
+ <key>LtnCapA</key>
+ <string>A</string>
+ <key>LtnCapA.alt</key>
+ <string>A</string>
+ <key>LtnCapADiaer</key>
+ <string>Adieresis</string>
+ <key>LtnCapB</key>
+ <string>B</string>
+ <key>LtnCapC</key>
+ <string>C</string>
+ <key>LtnCapD</key>
+ <string>D</string>
+ <key>LtnCapE</key>
+ <string>E</string>
+ <key>LtnCapF</key>
+ <string>F</string>
+ <key>LtnCapG</key>
+ <string>G</string>
+ <key>LtnCapH</key>
+ <string>H</string>
+ <key>LtnCapI</key>
+ <string>I</string>
+ <key>LtnCapJ</key>
+ <string>J</string>
+ <key>LtnCapK</key>
+ <string>K</string>
+ <key>LtnCapL</key>
+ <string>L</string>
+ <key>LtnCapM</key>
+ <string>M</string>
+ <key>LtnCapN</key>
+ <string>N</string>
+ <key>LtnCapO</key>
+ <string>O</string>
+ <key>LtnCapP</key>
+ <string>P</string>
+ <key>LtnCapQ</key>
+ <string>Q</string>
+ <key>LtnCapR</key>
+ <string>R</string>
+ <key>LtnCapS</key>
+ <string>S</string>
+ <key>LtnCapT</key>
+ <string>T</string>
+ <key>LtnCapU</key>
+ <string>U</string>
+ <key>LtnCapV</key>
+ <string>V</string>
+ <key>LtnCapW</key>
+ <string>W</string>
+ <key>LtnCapX</key>
+ <string>X</string>
+ <key>LtnCapY</key>
+ <string>Y</string>
+ <key>LtnSmA</key>
+ <string>a</string>
+ <key>LtnSmAAcute</key>
+ <string>aacute</string>
+ <key>LtnSmACircum</key>
+ <string>acircumflex</string>
+ <key>LtnSmADiaer</key>
+ <string>adieresis</string>
+ <key>LtnSmAGrave</key>
+ <string>agrave</string>
+ <key>LtnSmARingAbv</key>
+ <string>aring</string>
+ <key>LtnSmATilde</key>
+ <string>atilde</string>
+ <key>LtnSmB</key>
+ <string>b</string>
+ <key>LtnSmC</key>
+ <string>c</string>
+ <key>LtnSmD</key>
+ <string>d</string>
+ <key>LtnSmE</key>
+ <string>e</string>
+ <key>LtnSmF</key>
+ <string>f</string>
+ <key>LtnSmG</key>
+ <string>g</string>
+ <key>LtnSmH</key>
+ <string>h</string>
+ <key>LtnSmI</key>
+ <string>i</string>
+ <key>LtnSmJ</key>
+ <string>j</string>
+ <key>LtnSmK</key>
+ <string>k</string>
+ <key>LtnSmL</key>
+ <string>l</string>
+ <key>LtnSmM</key>
+ <string>m</string>
+ <key>LtnSmN</key>
+ <string>n</string>
+ <key>LtnSmO</key>
+ <string>o</string>
+ <key>LtnSmP</key>
+ <string>p</string>
+ <key>LtnSmQ</key>
+ <string>q</string>
+ <key>LtnSmR</key>
+ <string>r</string>
+ <key>LtnSmS</key>
+ <string>s</string>
+ <key>LtnSmT</key>
+ <string>t</string>
+ <key>LtnSmU</key>
+ <string>u</string>
+ <key>LtnSmV</key>
+ <string>v</string>
+ <key>LtnSmW</key>
+ <string>w</string>
+ <key>LtnSmX</key>
+ <string>x</string>
+ <key>LtnSmY</key>
+ <string>y</string>
+ <key>NonBreakingHyphen</key>
+ <string>uni2011</string>
+ <key>NumSgn</key>
+ <string>numbersign</string>
+ <key>PercentSgn</key>
+ <string>percent</string>
+ <key>PlusSgn</key>
+ <string>plus</string>
+ <key>QstnMrk</key>
+ <string>question</string>
+ <key>QuotMrk</key>
+ <string>quotedbl</string>
+ <key>ReverseSolidus</key>
+ <string>backslash</string>
+ <key>RtCurlyBrac</key>
+ <string>braceright</string>
+ <key>RtParen</key>
+ <string>parenright</string>
+ <key>RtSqrBrac</key>
+ <string>bracketright</string>
+ <key>Semicolon</key>
+ <string>semicolon</string>
+ <key>Solidus</key>
+ <string>slash</string>
+ <key>Space</key>
+ <string>space</string>
+ <key>Tilde</key>
+ <string>asciitilde</string>
+ <key>VertLine</key>
+ <string>bar</string>
+ </dict>
+</dict>
+</plist>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/metainfo.plist b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/metainfo.plist
new file mode 100644
index 0000000..aa10c5c
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Bold.ufo/metainfo.plist
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>creator</key>
+ <string>org.sil.scripts.pysilfont</string>
+ <key>formatVersion</key>
+ <integer>3</integer>
+</dict>
+</plist>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/fontinfo.plist b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/fontinfo.plist
new file mode 100644
index 0000000..ca97ce8
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/fontinfo.plist
@@ -0,0 +1,260 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>ascender</key>
+ <integer>2100</integer>
+ <key>capHeight</key>
+ <integer>1485</integer>
+ <key>copyright</key>
+ <string>Copyright (c) 2004-2021 SIL International</string>
+ <key>descender</key>
+ <integer>-550</integer>
+ <key>familyName</key>
+ <string>Psf Test</string>
+ <key>guidelines</key>
+ <array>
+ <dict>
+ <key>angle</key>
+ <integer>0</integer>
+ <key>x</key>
+ <integer>1084</integer>
+ <key>y</key>
+ <integer>1040</integer>
+ </dict>
+ <dict>
+ <key>y</key>
+ <integer>1250</integer>
+ </dict>
+ </array>
+ <key>note</key>
+ <string>Test note
+Second line
+
+Third line
+</string>
+ <key>openTypeHeadCreated</key>
+ <string>2021/10/22 11:32:25</string>
+ <key>openTypeHheaAscender</key>
+ <integer>2100</integer>
+ <key>openTypeHheaDescender</key>
+ <integer>-550</integer>
+ <key>openTypeHheaLineGap</key>
+ <integer>0</integer>
+ <key>openTypeNameDescription</key>
+ <string>Copyright (c) 2004-2021 SIL International</string>
+ <key>openTypeNameDesigner</key>
+ <string>Victor Gaultney, Annie Olsen, Julie Remington, Don Collingsworth, Eric Hays, Becca Hirsbrunner</string>
+ <key>openTypeNameDesignerURL</key>
+ <string>http://scripts.sil.org/</string>
+ <key>openTypeNameLicense</key>
+ <string>Copyright (c) 2004-2021 SIL International (http://www.sil.org/) with Reserved Font Names "Andika" and "SIL".
+
+This Font Software is licensed under the SIL Open Font License, Version 1.1. This license is copied below, and is also available with a FAQ at: http://scripts.sil.org/OFL
+
+
+-----------------------------------------------------------
+SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
+-----------------------------------------------------------
+
+PREAMBLE
+The goals of the Open Font License (OFL) are to stimulate worldwide development of collaborative font projects, to support the font creation efforts of academic and linguistic communities, and to provide a free and open framework in which fonts may be shared and improved in partnership with others.
+
+The OFL allows the licensed fonts to be used, studied, modified and redistributed freely as long as they are not sold by themselves. The fonts, including any derivative works, can be bundled, embedded, redistributed and/or sold with any software provided that any reserved names are not used by derivative works. The fonts and derivatives, however, cannot be released under any other type of license. The requirement for fonts to remain under this license does not apply to any document created using the fonts or their derivatives.
+
+DEFINITIONS
+"Font Software" refers to the set of files released by the Copyright Holder(s) under this license and clearly marked as such. This may include source files, build scripts and documentation.
+
+"Reserved Font Name" refers to any names specified as such after the copyright statement(s).
+
+"Original Version" refers to the collection of Font Software components as distributed by the Copyright Holder(s).
+
+"Modified Version" refers to any derivative made by adding to, deleting, or substituting -- in part or in whole -- any of the components of the Original Version, by changing formats or by porting the Font Software to a new environment.
+
+"Author" refers to any designer, engineer, programmer, technical writer or other person who contributed to the Font Software.
+
+PERMISSION &amp; CONDITIONS
+Permission is hereby granted, free of charge, to any person obtaining a copy of the Font Software, to use, study, copy, merge, embed, modify, redistribute, and sell modified and unmodified copies of the Font Software, subject to the following conditions:
+
+1) Neither the Font Software nor any of its individual components, in Original or Modified Versions, may be sold by itself.
+
+2) Original or Modified Versions of the Font Software may be bundled, redistributed and/or sold with any software, provided that each copy contains the above copyright notice and this license. These can be included either as stand-alone text files, human-readable headers or in the appropriate machine-readable metadata fields within text or binary files as long as those fields can be easily viewed by the user.
+
+3) No Modified Version of the Font Software may use the Reserved Font Name(s) unless explicit written permission is granted by the corresponding Copyright Holder. This restriction only applies to the primary font name as presented to the users.
+
+4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font Software shall not be used to promote, endorse or advertise any Modified Version, except to acknowledge the contribution(s) of the Copyright Holder(s) and the Author(s) or with their explicit written permission.
+
+5) The Font Software, modified or unmodified, in part or in whole, must be distributed entirely under this license, and must not be distributed under any other license. The requirement for fonts to remain under this license does not apply to any document created using the Font Software.
+
+TERMINATION
+This license becomes null and void if any of the above conditions are not met.
+
+DISCLAIMER
+THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM OTHER DEALINGS IN THE FONT SOFTWARE.</string>
+ <key>openTypeNameLicenseURL</key>
+ <string>http://scripts.sil.org/OFL</string>
+ <key>openTypeNameManufacturer</key>
+ <string>SIL International</string>
+ <key>openTypeNameManufacturerURL</key>
+ <string>http://scripts.sil.org</string>
+ <key>openTypeNamePreferredFamilyName</key>
+ <string>Psf Test</string>
+ <key>openTypeNamePreferredSubfamilyName</key>
+ <string>Regular</string>
+ <key>openTypeNameUniqueID</key>
+ <string>SIL International: Psf Test Regular: 2022</string>
+ <key>openTypeNameVersion</key>
+ <string>Version 5.550</string>
+ <key>openTypeOS2CodePageRanges</key>
+ <array>
+ <integer>0</integer>
+ <integer>1</integer>
+ <integer>2</integer>
+ <integer>4</integer>
+ <integer>7</integer>
+ <integer>8</integer>
+ </array>
+ <key>openTypeOS2FamilyClass</key>
+ <array>
+ <integer>0</integer>
+ <integer>0</integer>
+ </array>
+ <key>openTypeOS2Panose</key>
+ <array>
+ <integer>2</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ </array>
+ <key>openTypeOS2StrikeoutPosition</key>
+ <integer>700</integer>
+ <key>openTypeOS2StrikeoutSize</key>
+ <integer>100</integer>
+ <key>openTypeOS2SubscriptXOffset</key>
+ <integer>0</integer>
+ <key>openTypeOS2SubscriptXSize</key>
+ <integer>1433</integer>
+ <key>openTypeOS2SubscriptYOffset</key>
+ <integer>286</integer>
+ <key>openTypeOS2SubscriptYSize</key>
+ <integer>1331</integer>
+ <key>openTypeOS2SuperscriptXOffset</key>
+ <integer>0</integer>
+ <key>openTypeOS2SuperscriptXSize</key>
+ <integer>1433</integer>
+ <key>openTypeOS2SuperscriptYOffset</key>
+ <integer>976</integer>
+ <key>openTypeOS2SuperscriptYSize</key>
+ <integer>1331</integer>
+ <key>openTypeOS2Type</key>
+ <array/>
+ <key>openTypeOS2TypoAscender</key>
+ <integer>2100</integer>
+ <key>openTypeOS2TypoDescender</key>
+ <integer>-550</integer>
+ <key>openTypeOS2TypoLineGap</key>
+ <integer>0</integer>
+ <key>openTypeOS2UnicodeRanges</key>
+ <array>
+ <integer>0</integer>
+ <integer>1</integer>
+ <integer>6</integer>
+ <integer>7</integer>
+ <integer>31</integer>
+ <integer>33</integer>
+ <integer>35</integer>
+ <integer>36</integer>
+ <integer>37</integer>
+ <integer>38</integer>
+ <integer>39</integer>
+ <integer>40</integer>
+ <integer>45</integer>
+ <integer>46</integer>
+ <integer>47</integer>
+ <integer>57</integer>
+ <integer>60</integer>
+ <integer>62</integer>
+ <integer>64</integer>
+ <integer>67</integer>
+ <integer>69</integer>
+ <integer>89</integer>
+ </array>
+ <key>openTypeOS2VendorID</key>
+ <string>SIL</string>
+ <key>openTypeOS2WeightClass</key>
+ <integer>400</integer>
+ <key>openTypeOS2WidthClass</key>
+ <integer>5</integer>
+ <key>openTypeOS2WinAscent</key>
+ <integer>2100</integer>
+ <key>openTypeOS2WinDescent</key>
+ <integer>550</integer>
+ <key>postscriptBlueValues</key>
+ <array>
+ <integer>-490</integer>
+ <integer>-490</integer>
+ <integer>-25</integer>
+ <integer>0</integer>
+ <integer>1020</integer>
+ <integer>1040</integer>
+ <integer>1455</integer>
+ <integer>1485</integer>
+ <integer>1600</integer>
+ <integer>1620</integer>
+ </array>
+ <key>postscriptFontName</key>
+ <string>PsfTest-Regular</string>
+ <key>postscriptFullName</key>
+ <string>Psf Test Regular</string>
+ <key>postscriptStemSnapH</key>
+ <array>
+ <integer>140</integer>
+ <integer>145</integer>
+ <integer>150</integer>
+ <integer>155</integer>
+ <integer>160</integer>
+ <integer>165</integer>
+ <integer>170</integer>
+ <integer>175</integer>
+ <integer>185</integer>
+ <integer>270</integer>
+ </array>
+ <key>postscriptStemSnapV</key>
+ <array>
+ <integer>165</integer>
+ <integer>180</integer>
+ <integer>185</integer>
+ <integer>190</integer>
+ <integer>195</integer>
+ <integer>200</integer>
+ <integer>205</integer>
+ <integer>270</integer>
+ </array>
+ <key>postscriptUnderlinePosition</key>
+ <integer>-110</integer>
+ <key>postscriptUnderlineThickness</key>
+ <integer>80</integer>
+ <key>styleMapFamilyName</key>
+ <string>Psf Test</string>
+ <key>styleMapStyleName</key>
+ <string>regular</string>
+ <key>styleName</key>
+ <string>Regular</string>
+ <key>trademark</key>
+ <string>Andika is a trademark of SIL International.</string>
+ <key>unitsPerEm</key>
+ <integer>2048</integer>
+ <key>versionMajor</key>
+ <integer>5</integer>
+ <key>versionMinor</key>
+ <integer>550</integer>
+ <key>xHeight</key>
+ <integer>1040</integer>
+</dict>
+</plist>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/A_mpersand.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/A_mpersand.glif
new file mode 100644
index 0000000..c2cef04
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/A_mpersand.glif
@@ -0,0 +1,61 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Ampersand" format="2">
+ <advance width="1222"/>
+ <unicode hex="0026"/>
+ <outline>
+ <contour>
+ <point x="490" y="1485" type="curve" smooth="yes"/>
+ <point x="331" y="1485"/>
+ <point x="155" y="1412"/>
+ <point x="155" y="1190" type="curve" smooth="yes"/>
+ <point x="155" y="1010"/>
+ <point x="362" y="815"/>
+ <point x="535" y="570" type="curve" smooth="yes"/>
+ <point x="794" y="202"/>
+ <point x="973" y="-25"/>
+ <point x="1025" y="-25" type="curve" smooth="yes"/>
+ <point x="1060" y="-25"/>
+ <point x="1138" y="38"/>
+ <point x="1175" y="70" type="curve"/>
+ <point x="1080" y="110"/>
+ <point x="914" y="297"/>
+ <point x="650" y="680" type="curve" smooth="yes"/>
+ <point x="494" y="906"/>
+ <point x="315" y="1075"/>
+ <point x="315" y="1200" type="curve" smooth="yes"/>
+ <point x="315" y="1291"/>
+ <point x="398" y="1350"/>
+ <point x="475" y="1350" type="curve" smooth="yes"/>
+ <point x="555" y="1350"/>
+ <point x="630" y="1294"/>
+ <point x="630" y="1205" type="curve" smooth="yes"/>
+ <point x="630" y="1116"/>
+ <point x="523" y="1001"/>
+ <point x="350" y="840" type="curve" smooth="yes"/>
+ <point x="146" y="651"/>
+ <point x="55" y="527"/>
+ <point x="55" y="375" type="curve" smooth="yes"/>
+ <point x="55" y="151"/>
+ <point x="217" y="-25"/>
+ <point x="440" y="-25" type="curve" smooth="yes"/>
+ <point x="713" y="-25"/>
+ <point x="1002" y="274"/>
+ <point x="1080" y="435" type="curve"/>
+ <point x="975" y="570" type="line"/>
+ <point x="911" y="403"/>
+ <point x="630" y="150"/>
+ <point x="455" y="150" type="curve" smooth="yes"/>
+ <point x="310" y="150"/>
+ <point x="230" y="267"/>
+ <point x="230" y="380" type="curve" smooth="yes"/>
+ <point x="230" y="490"/>
+ <point x="296" y="587"/>
+ <point x="470" y="740" type="curve" smooth="yes"/>
+ <point x="651" y="899"/>
+ <point x="790" y="1068"/>
+ <point x="790" y="1200" type="curve" smooth="yes"/>
+ <point x="790" y="1382"/>
+ <point x="642" y="1485"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/A_pos.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/A_pos.glif
new file mode 100644
index 0000000..5042901
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/A_pos.glif
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Apos" format="2">
+ <advance width="605"/>
+ <unicode hex="0027"/>
+ <outline>
+ <contour>
+ <point x="365" y="1045" type="line"/>
+ <point x="370" y="1186"/>
+ <point x="376" y="1339"/>
+ <point x="405" y="1585" type="curve"/>
+ <point x="200" y="1585" type="line"/>
+ <point x="231" y="1339"/>
+ <point x="236" y="1186"/>
+ <point x="240" y="1045" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/A_sterisk.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/A_sterisk.glif
new file mode 100644
index 0000000..850d344
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/A_sterisk.glif
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Asterisk" format="2">
+ <advance width="1028"/>
+ <unicode hex="002A"/>
+ <outline>
+ <contour>
+ <point x="560" y="1600" type="curve"/>
+ <point x="415" y="1600" type="line"/>
+ <point x="434" y="1467"/>
+ <point x="447" y="1387"/>
+ <point x="450" y="1300" type="curve"/>
+ <point x="376" y="1344"/>
+ <point x="309" y="1387"/>
+ <point x="200" y="1465" type="curve"/>
+ <point x="125" y="1340" type="line"/>
+ <point x="250" y="1290"/>
+ <point x="327" y="1261"/>
+ <point x="405" y="1220" type="curve"/>
+ <point x="329" y="1177"/>
+ <point x="256" y="1140"/>
+ <point x="135" y="1085" type="curve"/>
+ <point x="205" y="960" type="line"/>
+ <point x="310" y="1042"/>
+ <point x="377" y="1094"/>
+ <point x="450" y="1140" type="curve"/>
+ <point x="448" y="1055"/>
+ <point x="442" y="973"/>
+ <point x="430" y="840" type="curve"/>
+ <point x="570" y="840" type="line"/>
+ <point x="550" y="973"/>
+ <point x="544" y="1052"/>
+ <point x="540" y="1140" type="curve"/>
+ <point x="614" y="1095"/>
+ <point x="681" y="1053"/>
+ <point x="790" y="975" type="curve"/>
+ <point x="865" y="1100" type="line"/>
+ <point x="739" y="1149"/>
+ <point x="663" y="1179"/>
+ <point x="585" y="1220" type="curve"/>
+ <point x="661" y="1261"/>
+ <point x="733" y="1299"/>
+ <point x="855" y="1355" type="curve"/>
+ <point x="785" y="1480" type="line"/>
+ <point x="680" y="1396"/>
+ <point x="614" y="1348"/>
+ <point x="540" y="1300" type="curve"/>
+ <point x="541" y="1387"/>
+ <point x="547" y="1467"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/A_tS_gn.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/A_tS_gn.glif
new file mode 100644
index 0000000..681014d
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/A_tS_gn.glif
@@ -0,0 +1,80 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="AtSgn" format="2">
+ <advance width="1702"/>
+ <unicode hex="0040"/>
+ <outline>
+ <contour>
+ <point x="1605" y="700" type="curve" smooth="yes"/>
+ <point x="1605" y="1127"/>
+ <point x="1307" y="1405"/>
+ <point x="880" y="1405" type="curve" smooth="yes"/>
+ <point x="465" y="1405"/>
+ <point x="95" y="1126"/>
+ <point x="95" y="575" type="curve" smooth="yes"/>
+ <point x="95" y="48"/>
+ <point x="464" y="-235"/>
+ <point x="855" y="-235" type="curve" smooth="yes"/>
+ <point x="990" y="-235"/>
+ <point x="1150" y="-188"/>
+ <point x="1250" y="-118" type="curve"/>
+ <point x="1145" y="-10" type="line"/>
+ <point x="1058" y="-70"/>
+ <point x="963" y="-95"/>
+ <point x="870" y="-95" type="curve" smooth="yes"/>
+ <point x="523" y="-95"/>
+ <point x="240" y="174"/>
+ <point x="240" y="605" type="curve" smooth="yes"/>
+ <point x="240" y="1003"/>
+ <point x="542" y="1270"/>
+ <point x="870" y="1270" type="curve" smooth="yes"/>
+ <point x="1263" y="1270"/>
+ <point x="1465" y="1002"/>
+ <point x="1465" y="670" type="curve" smooth="yes"/>
+ <point x="1465" y="432"/>
+ <point x="1348" y="315"/>
+ <point x="1280" y="315" type="curve" smooth="yes"/>
+ <point x="1221" y="315"/>
+ <point x="1175" y="410"/>
+ <point x="1175" y="630" type="curve" smooth="yes"/>
+ <point x="1175" y="980" type="line"/>
+ <point x="1088" y="1015"/>
+ <point x="961" y="1040"/>
+ <point x="880" y="1040" type="curve" smooth="yes"/>
+ <point x="716" y="1040"/>
+ <point x="613" y="971"/>
+ <point x="530" y="835" type="curve" smooth="yes"/>
+ <point x="483" y="756"/>
+ <point x="455" y="653"/>
+ <point x="455" y="530" type="curve" smooth="yes"/>
+ <point x="455" y="294"/>
+ <point x="601" y="183"/>
+ <point x="735" y="183" type="curve" smooth="yes"/>
+ <point x="852" y="183"/>
+ <point x="988" y="366"/>
+ <point x="1040" y="490" type="curve"/>
+ <point x="1050" y="322"/>
+ <point x="1128" y="180"/>
+ <point x="1250" y="180" type="curve" smooth="yes"/>
+ <point x="1425" y="180"/>
+ <point x="1605" y="368"/>
+ </contour>
+ <contour>
+ <point x="850" y="905" type="curve" smooth="yes"/>
+ <point x="924" y="905"/>
+ <point x="992" y="886"/>
+ <point x="1025" y="870" type="curve"/>
+ <point x="1025" y="720" type="line"/>
+ <point x="993" y="582"/>
+ <point x="838" y="320"/>
+ <point x="748" y="320" type="curve" smooth="yes"/>
+ <point x="676" y="320"/>
+ <point x="605" y="398"/>
+ <point x="605" y="575" type="curve" smooth="yes"/>
+ <point x="605" y="652"/>
+ <point x="621" y="731"/>
+ <point x="650" y="780" type="curve" smooth="yes"/>
+ <point x="706" y="876"/>
+ <point x="782" y="905"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/C_ircumA_ccent.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/C_ircumA_ccent.glif
new file mode 100644
index 0000000..60bd1cf
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/C_ircumA_ccent.glif
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="CircumAccent" format="2">
+ <advance width="850"/>
+ <unicode hex="005E"/>
+ <outline>
+ <component base="CombCircum" xOffset="995"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/C_olon.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/C_olon.glif
new file mode 100644
index 0000000..3cfbbc1
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/C_olon.glif
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Colon" format="2">
+ <advance width="640"/>
+ <unicode hex="003A"/>
+ <outline>
+ <contour>
+ <point x="185" y="790" type="curve" smooth="yes"/>
+ <point x="185" y="716"/>
+ <point x="246" y="655"/>
+ <point x="320" y="655" type="curve" smooth="yes"/>
+ <point x="394" y="655"/>
+ <point x="455" y="716"/>
+ <point x="455" y="790" type="curve" smooth="yes"/>
+ <point x="455" y="864"/>
+ <point x="394" y="925"/>
+ <point x="320" y="925" type="curve" smooth="yes"/>
+ <point x="246" y="925"/>
+ <point x="185" y="864"/>
+ </contour>
+ <contour>
+ <point x="185" y="110" type="curve" smooth="yes"/>
+ <point x="185" y="36"/>
+ <point x="246" y="-25"/>
+ <point x="320" y="-25" type="curve" smooth="yes"/>
+ <point x="394" y="-25"/>
+ <point x="455" y="36"/>
+ <point x="455" y="110" type="curve" smooth="yes"/>
+ <point x="455" y="184"/>
+ <point x="394" y="245"/>
+ <point x="320" y="245" type="curve" smooth="yes"/>
+ <point x="246" y="245"/>
+ <point x="185" y="184"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/C_ombA_cute.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/C_ombA_cute.glif
new file mode 100644
index 0000000..bb13221
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/C_ombA_cute.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="CombAcute" format="2">
+ <unicode hex="0301"/>
+ <anchor x="-570" y="1635" name="U"/>
+ <anchor x="-570" y="1100" name="_U"/>
+ <outline>
+ <contour>
+ <point x="-400" y="1600" type="line"/>
+ <point x="-750" y="1170" type="line"/>
+ <point x="-590" y="1170" type="line"/>
+ <point x="-170" y="1600" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/C_ombC_ircum.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/C_ombC_ircum.glif
new file mode 100644
index 0000000..fa444ec
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/C_ombC_ircum.glif
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="CombCircum" format="2">
+ <unicode hex="0302"/>
+ <anchor x="-570" y="1635" name="U"/>
+ <anchor x="-570" y="1100" name="_U"/>
+ <outline>
+ <contour>
+ <point x="-845" y="1170" type="line"/>
+ <point x="-570" y="1450" type="line"/>
+ <point x="-295" y="1170" type="line"/>
+ <point x="-145" y="1170" type="line"/>
+ <point x="-485" y="1600" type="line"/>
+ <point x="-655" y="1600" type="line"/>
+ <point x="-995" y="1170" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/C_ombD_iaer.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/C_ombD_iaer.glif
new file mode 100644
index 0000000..f7540ef
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/C_ombD_iaer.glif
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="CombDiaer" format="2">
+ <unicode hex="0308"/>
+ <anchor x="-570" y="1505" name="U"/>
+ <anchor x="-570" y="1100" name="_U"/>
+ <outline>
+ <contour>
+ <point x="-490" y="1345" type="curve" smooth="yes"/>
+ <point x="-490" y="1271"/>
+ <point x="-434" y="1210"/>
+ <point x="-360" y="1210" type="curve" smooth="yes"/>
+ <point x="-285" y="1210"/>
+ <point x="-230" y="1271"/>
+ <point x="-230" y="1345" type="curve" smooth="yes"/>
+ <point x="-230" y="1419"/>
+ <point x="-285" y="1480"/>
+ <point x="-360" y="1480" type="curve" smooth="yes"/>
+ <point x="-434" y="1480"/>
+ <point x="-490" y="1419"/>
+ </contour>
+ <contour>
+ <point x="-910" y="1345" type="curve" smooth="yes"/>
+ <point x="-910" y="1271"/>
+ <point x="-854" y="1210"/>
+ <point x="-780" y="1210" type="curve" smooth="yes"/>
+ <point x="-705" y="1210"/>
+ <point x="-650" y="1271"/>
+ <point x="-650" y="1345" type="curve" smooth="yes"/>
+ <point x="-650" y="1419"/>
+ <point x="-705" y="1480"/>
+ <point x="-780" y="1480" type="curve" smooth="yes"/>
+ <point x="-854" y="1480"/>
+ <point x="-910" y="1419"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/C_ombG_rave.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/C_ombG_rave.glif
new file mode 100644
index 0000000..c33b56a
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/C_ombG_rave.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="CombGrave" format="2">
+ <unicode hex="0300"/>
+ <anchor x="-550" y="1635" name="U"/>
+ <anchor x="-550" y="1100" name="_U"/>
+ <outline>
+ <contour>
+ <point x="-940" y="1600" type="line"/>
+ <point x="-520" y="1170" type="line"/>
+ <point x="-360" y="1170" type="line"/>
+ <point x="-710" y="1600" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/C_ombR_ingA_bv.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/C_ombR_ingA_bv.glif
new file mode 100644
index 0000000..b019e05
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/C_ombR_ingA_bv.glif
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="CombRingAbv" format="2">
+ <unicode hex="030A"/>
+ <anchor x="-570" y="1635" name="U"/>
+ <anchor x="-572" y="1100" name="_U"/>
+ <outline>
+ <contour>
+ <point x="-470" y="1385" type="curve" smooth="yes"/>
+ <point x="-470" y="1325"/>
+ <point x="-510" y="1285"/>
+ <point x="-570" y="1285" type="curve" smooth="yes"/>
+ <point x="-630" y="1285"/>
+ <point x="-670" y="1325"/>
+ <point x="-670" y="1385" type="curve" smooth="yes"/>
+ <point x="-670" y="1445"/>
+ <point x="-630" y="1485"/>
+ <point x="-570" y="1485" type="curve" smooth="yes"/>
+ <point x="-510" y="1485"/>
+ <point x="-470" y="1445"/>
+ </contour>
+ <contour>
+ <point x="-785" y="1385" type="curve" smooth="yes"/>
+ <point x="-785" y="1265"/>
+ <point x="-690" y="1170"/>
+ <point x="-570" y="1170" type="curve" smooth="yes"/>
+ <point x="-450" y="1170"/>
+ <point x="-355" y="1265"/>
+ <point x="-355" y="1385" type="curve" smooth="yes"/>
+ <point x="-355" y="1505"/>
+ <point x="-450" y="1600"/>
+ <point x="-570" y="1600" type="curve" smooth="yes"/>
+ <point x="-690" y="1600"/>
+ <point x="-785" y="1505"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/C_ombT_ilde.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/C_ombT_ilde.glif
new file mode 100644
index 0000000..88d5ca7
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/C_ombT_ilde.glif
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="CombTilde" format="2">
+ <unicode hex="0303"/>
+ <anchor x="-575" y="1475" name="U"/>
+ <anchor x="-575" y="1100" name="_U"/>
+ <outline>
+ <contour>
+ <point x="-820" y="1205" type="line"/>
+ <point x="-815" y="1254"/>
+ <point x="-784" y="1290"/>
+ <point x="-735" y="1290" type="curve" smooth="yes"/>
+ <point x="-698" y="1290"/>
+ <point x="-657" y="1274"/>
+ <point x="-580" y="1238" type="curve" smooth="yes"/>
+ <point x="-519" y="1210"/>
+ <point x="-466" y="1190"/>
+ <point x="-413" y="1190" type="curve" smooth="yes"/>
+ <point x="-290" y="1190"/>
+ <point x="-215" y="1312"/>
+ <point x="-215" y="1440" type="curve"/>
+ <point x="-320" y="1440" type="line"/>
+ <point x="-327" y="1394"/>
+ <point x="-358" y="1355"/>
+ <point x="-405" y="1355" type="curve" smooth="yes"/>
+ <point x="-447" y="1355"/>
+ <point x="-488" y="1374"/>
+ <point x="-560" y="1403" type="curve" smooth="yes"/>
+ <point x="-630" y="1431"/>
+ <point x="-677" y="1455"/>
+ <point x="-733" y="1455" type="curve" smooth="yes"/>
+ <point x="-852" y="1455"/>
+ <point x="-925" y="1327"/>
+ <point x="-925" y="1205" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/C_omma.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/C_omma.glif
new file mode 100644
index 0000000..6e8f5a3
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/C_omma.glif
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Comma" format="2">
+ <advance width="650"/>
+ <unicode hex="002C"/>
+ <outline>
+ <contour>
+ <point x="185" y="50" type="line"/>
+ <point x="325" y="50" type="line"/>
+ <point x="325" y="-51"/>
+ <point x="248" y="-172"/>
+ <point x="190" y="-230" type="curve"/>
+ <point x="290" y="-270" type="line"/>
+ <point x="407" y="-160"/>
+ <point x="465" y="-37"/>
+ <point x="465" y="85" type="curve" smooth="yes"/>
+ <point x="465" y="186"/>
+ <point x="400" y="250"/>
+ <point x="320" y="250" type="curve" smooth="yes"/>
+ <point x="263" y="250"/>
+ <point x="198" y="213"/>
+ <point x="185" y="150" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/D_igitE_ight.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/D_igitE_ight.glif
new file mode 100644
index 0000000..b7e540a
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/D_igitE_ight.glif
@@ -0,0 +1,63 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitEight" format="2">
+ <advance width="1200"/>
+ <unicode hex="0038"/>
+ <anchor x="600" y="-100" name="L"/>
+ <anchor x="600" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="600" y="-25" type="curve" smooth="yes"/>
+ <point x="857" y="-25"/>
+ <point x="1110" y="134"/>
+ <point x="1110" y="405" type="curve" smooth="yes"/>
+ <point x="1110" y="611"/>
+ <point x="965" y="739"/>
+ <point x="855" y="795" type="curve"/>
+ <point x="933" y="844"/>
+ <point x="1050" y="923"/>
+ <point x="1050" y="1105" type="curve" smooth="yes"/>
+ <point x="1050" y="1350"/>
+ <point x="840" y="1485"/>
+ <point x="610" y="1485" type="curve" smooth="yes"/>
+ <point x="381" y="1485"/>
+ <point x="150" y="1350"/>
+ <point x="150" y="1105" type="curve" smooth="yes"/>
+ <point x="150" y="923"/>
+ <point x="272" y="838"/>
+ <point x="350" y="795" type="curve"/>
+ <point x="221" y="725"/>
+ <point x="90" y="611"/>
+ <point x="90" y="405" type="curve" smooth="yes"/>
+ <point x="90" y="134"/>
+ <point x="344" y="-25"/>
+ </contour>
+ <contour>
+ <point x="860" y="1105" type="curve" smooth="yes"/>
+ <point x="860" y="949"/>
+ <point x="743" y="865"/>
+ <point x="600" y="865" type="curve" smooth="yes"/>
+ <point x="457" y="865"/>
+ <point x="340" y="949"/>
+ <point x="340" y="1105" type="curve" smooth="yes"/>
+ <point x="340" y="1252"/>
+ <point x="457" y="1325"/>
+ <point x="600" y="1325" type="curve" smooth="yes"/>
+ <point x="743" y="1325"/>
+ <point x="860" y="1252"/>
+ </contour>
+ <contour>
+ <point x="910" y="425" type="curve" smooth="yes"/>
+ <point x="910" y="250"/>
+ <point x="778" y="145"/>
+ <point x="600" y="145" type="curve" smooth="yes"/>
+ <point x="420" y="145"/>
+ <point x="290" y="250"/>
+ <point x="290" y="425" type="curve" smooth="yes"/>
+ <point x="290" y="592"/>
+ <point x="420" y="710"/>
+ <point x="600" y="710" type="curve" smooth="yes"/>
+ <point x="778" y="710"/>
+ <point x="910" y="592"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/D_igitF_ive.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/D_igitF_ive.glif
new file mode 100644
index 0000000..cb2dd85
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/D_igitF_ive.glif
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitFive" format="2">
+ <advance width="1200"/>
+ <unicode hex="0035"/>
+ <anchor x="600" y="-100" name="L"/>
+ <anchor x="600" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="195" y="685" type="line"/>
+ <point x="319" y="733"/>
+ <point x="404" y="750"/>
+ <point x="510" y="750" type="curve" smooth="yes"/>
+ <point x="670" y="750"/>
+ <point x="870" y="672"/>
+ <point x="870" y="470" type="curve" smooth="yes"/>
+ <point x="870" y="268"/>
+ <point x="730" y="155"/>
+ <point x="530" y="155" type="curve" smooth="yes"/>
+ <point x="390" y="155"/>
+ <point x="294" y="182"/>
+ <point x="160" y="290" type="curve"/>
+ <point x="130" y="80" type="line"/>
+ <point x="255" y="2"/>
+ <point x="363" y="-25"/>
+ <point x="518" y="-25" type="curve" smooth="yes"/>
+ <point x="831" y="-25"/>
+ <point x="1060" y="163"/>
+ <point x="1060" y="475" type="curve" smooth="yes"/>
+ <point x="1060" y="742"/>
+ <point x="832" y="930"/>
+ <point x="545" y="930" type="curve" smooth="yes"/>
+ <point x="472" y="930"/>
+ <point x="411" y="924"/>
+ <point x="380" y="920" type="curve"/>
+ <point x="380" y="1290" type="line"/>
+ <point x="765" y="1290" type="line"/>
+ <point x="849" y="1290"/>
+ <point x="925" y="1286"/>
+ <point x="1000" y="1270" type="curve"/>
+ <point x="1000" y="1460" type="line"/>
+ <point x="195" y="1460" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/D_igitF_our.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/D_igitF_our.glif
new file mode 100644
index 0000000..d9a5610
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/D_igitF_our.glif
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitFour" format="2">
+ <advance width="1200"/>
+ <unicode hex="0034"/>
+ <anchor x="607" y="-100" name="L"/>
+ <anchor x="607" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1125" y="395" type="line"/>
+ <point x="1125" y="550" type="line"/>
+ <point x="935" y="550" type="line"/>
+ <point x="935" y="1480" type="line"/>
+ <point x="745" y="1480" type="line"/>
+ <point x="90" y="550" type="line"/>
+ <point x="90" y="395" type="line"/>
+ <point x="745" y="395" type="line"/>
+ <point x="745" y="0" type="line"/>
+ <point x="935" y="0" type="line"/>
+ <point x="935" y="395" type="line"/>
+ </contour>
+ <contour>
+ <point x="745" y="1230" type="line"/>
+ <point x="745" y="550" type="line"/>
+ <point x="263" y="550" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/D_igitN_ine.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/D_igitN_ine.glif
new file mode 100644
index 0000000..0ce656a
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/D_igitN_ine.glif
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitNine" format="2">
+ <advance width="1200"/>
+ <unicode hex="0039"/>
+ <anchor x="600" y="-100" name="L"/>
+ <anchor x="600" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="193" y="65" type="line"/>
+ <point x="297" y="-5"/>
+ <point x="383" y="-25"/>
+ <point x="501" y="-25" type="curve" smooth="yes"/>
+ <point x="976" y="-25"/>
+ <point x="1114" y="411"/>
+ <point x="1114" y="780" type="curve" smooth="yes"/>
+ <point x="1114" y="1198"/>
+ <point x="926" y="1485"/>
+ <point x="616" y="1485" type="curve" smooth="yes"/>
+ <point x="349" y="1485"/>
+ <point x="112" y="1306"/>
+ <point x="112" y="1002" type="curve" smooth="yes"/>
+ <point x="112" y="773"/>
+ <point x="281" y="586"/>
+ <point x="559" y="586" type="curve" smooth="yes"/>
+ <point x="750" y="586"/>
+ <point x="922" y="717"/>
+ <point x="1019" y="878" type="curve"/>
+ <point x="948" y="961" type="line"/>
+ <point x="874" y="847"/>
+ <point x="738" y="760"/>
+ <point x="583" y="760" type="curve" smooth="yes"/>
+ <point x="424" y="760"/>
+ <point x="306" y="860"/>
+ <point x="306" y="1036" type="curve" smooth="yes"/>
+ <point x="306" y="1196"/>
+ <point x="420" y="1310"/>
+ <point x="596" y="1310" type="curve" smooth="yes"/>
+ <point x="837" y="1310"/>
+ <point x="919" y="1065"/>
+ <point x="919" y="813" type="curve" smooth="yes"/>
+ <point x="919" y="326"/>
+ <point x="748" y="150"/>
+ <point x="511" y="150" type="curve" smooth="yes"/>
+ <point x="415" y="150"/>
+ <point x="323" y="174"/>
+ <point x="237" y="260" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/D_igitO_ne.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/D_igitO_ne.glif
new file mode 100644
index 0000000..42c7708
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/D_igitO_ne.glif
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitOne" format="2">
+ <advance width="1200"/>
+ <unicode hex="0031"/>
+ <anchor x="600" y="-100" name="L"/>
+ <anchor x="600" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="535" y="170" type="line"/>
+ <point x="220" y="170" type="line"/>
+ <point x="220" y="0" type="line"/>
+ <point x="1040" y="0" type="line"/>
+ <point x="1040" y="170" type="line"/>
+ <point x="725" y="170" type="line"/>
+ <point x="725" y="1480" type="line"/>
+ <point x="555" y="1480" type="line"/>
+ <point x="210" y="1268" type="line"/>
+ <point x="235" y="1088" type="line"/>
+ <point x="535" y="1260" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/D_igitS_even.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/D_igitS_even.glif
new file mode 100644
index 0000000..c9ca97e
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/D_igitS_even.glif
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitSeven" format="2">
+ <advance width="1200"/>
+ <unicode hex="0037"/>
+ <anchor x="600" y="-100" name="L"/>
+ <anchor x="600" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="460" y="0" type="line"/>
+ <point x="589" y="459"/>
+ <point x="794" y="895"/>
+ <point x="1090" y="1300" type="curve"/>
+ <point x="1090" y="1460" type="line"/>
+ <point x="100" y="1460" type="line"/>
+ <point x="100" y="1275" type="line"/>
+ <point x="176" y="1291"/>
+ <point x="292" y="1295"/>
+ <point x="480" y="1295" type="curve" smooth="yes"/>
+ <point x="870" y="1295" type="line"/>
+ <point x="612" y="912"/>
+ <point x="439" y="566"/>
+ <point x="275" y="0" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/D_igitS_ix.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/D_igitS_ix.glif
new file mode 100644
index 0000000..ec0acdb
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/D_igitS_ix.glif
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitSix" format="2">
+ <advance width="1200"/>
+ <unicode hex="0036"/>
+ <anchor x="600" y="-100" name="L"/>
+ <anchor x="600" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1033" y="1395" type="line"/>
+ <point x="929" y="1465"/>
+ <point x="843" y="1485"/>
+ <point x="725" y="1485" type="curve" smooth="yes"/>
+ <point x="250" y="1485"/>
+ <point x="110" y="1049"/>
+ <point x="110" y="680" type="curve" smooth="yes"/>
+ <point x="110" y="242"/>
+ <point x="290" y="-25"/>
+ <point x="600" y="-25" type="curve" smooth="yes"/>
+ <point x="907" y="-25"/>
+ <point x="1115" y="166"/>
+ <point x="1115" y="470" type="curve" smooth="yes"/>
+ <point x="1115" y="719"/>
+ <point x="943" y="895"/>
+ <point x="665" y="895" type="curve" smooth="yes"/>
+ <point x="474" y="895"/>
+ <point x="328" y="780"/>
+ <point x="215" y="625" type="curve"/>
+ <point x="280" y="550" type="line"/>
+ <point x="362" y="653"/>
+ <point x="490" y="720"/>
+ <point x="645" y="720" type="curve" smooth="yes"/>
+ <point x="824" y="720"/>
+ <point x="920" y="611"/>
+ <point x="920" y="435" type="curve" smooth="yes"/>
+ <point x="920" y="275"/>
+ <point x="806" y="150"/>
+ <point x="630" y="150" type="curve" smooth="yes"/>
+ <point x="409" y="150"/>
+ <point x="305" y="393"/>
+ <point x="305" y="645" type="curve" smooth="yes"/>
+ <point x="305" y="1132"/>
+ <point x="478" y="1310"/>
+ <point x="715" y="1310" type="curve" smooth="yes"/>
+ <point x="811" y="1310"/>
+ <point x="903" y="1286"/>
+ <point x="989" y="1200" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/D_igitT_hree.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/D_igitT_hree.glif
new file mode 100644
index 0000000..3242c12
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/D_igitT_hree.glif
@@ -0,0 +1,52 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitThree" format="2">
+ <advance width="1200"/>
+ <unicode hex="0033"/>
+ <anchor x="600" y="-100" name="L"/>
+ <anchor x="600" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="410" y="870" type="line"/>
+ <point x="410" y="700" type="line"/>
+ <point x="480" y="700" type="line"/>
+ <point x="716" y="700"/>
+ <point x="895" y="588"/>
+ <point x="895" y="425" type="curve" smooth="yes"/>
+ <point x="895" y="241"/>
+ <point x="718" y="150"/>
+ <point x="565" y="150" type="curve" smooth="yes"/>
+ <point x="385" y="150"/>
+ <point x="244" y="232"/>
+ <point x="135" y="355" type="curve"/>
+ <point x="110" y="140" type="line"/>
+ <point x="215" y="42"/>
+ <point x="368" y="-25"/>
+ <point x="545" y="-25" type="curve" smooth="yes"/>
+ <point x="834" y="-25"/>
+ <point x="1090" y="170"/>
+ <point x="1090" y="405" type="curve" smooth="yes"/>
+ <point x="1090" y="672"/>
+ <point x="862" y="776"/>
+ <point x="720" y="800" type="curve"/>
+ <point x="862" y="829"/>
+ <point x="1040" y="957"/>
+ <point x="1040" y="1140" type="curve" smooth="yes"/>
+ <point x="1040" y="1354"/>
+ <point x="828" y="1485"/>
+ <point x="580" y="1485" type="curve"/>
+ <point x="413" y="1485"/>
+ <point x="260" y="1416"/>
+ <point x="180" y="1325" type="curve"/>
+ <point x="215" y="1155" type="line"/>
+ <point x="328" y="1271"/>
+ <point x="436" y="1310"/>
+ <point x="590" y="1310" type="curve" smooth="yes"/>
+ <point x="711" y="1310"/>
+ <point x="850" y="1250"/>
+ <point x="850" y="1115" type="curve" smooth="yes"/>
+ <point x="850" y="991"/>
+ <point x="679" y="870"/>
+ <point x="480" y="870" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/D_igitT_wo.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/D_igitT_wo.glif
new file mode 100644
index 0000000..c179477
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/D_igitT_wo.glif
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitTwo" format="2">
+ <advance width="1200"/>
+ <unicode hex="0032"/>
+ <anchor x="600" y="-100" name="L"/>
+ <anchor x="560" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1080" y="180" type="line"/>
+ <point x="1000" y="166"/>
+ <point x="842" y="165"/>
+ <point x="645" y="165" type="curve" smooth="yes"/>
+ <point x="390" y="165" type="line"/>
+ <point x="609" y="352"/>
+ <point x="1010" y="729"/>
+ <point x="1010" y="1065" type="curve" smooth="yes"/>
+ <point x="1010" y="1323"/>
+ <point x="800" y="1485"/>
+ <point x="560" y="1485" type="curve" smooth="yes"/>
+ <point x="391" y="1485"/>
+ <point x="206" y="1402"/>
+ <point x="125" y="1290" type="curve"/>
+ <point x="170" y="1120" type="line"/>
+ <point x="259" y="1228"/>
+ <point x="402" y="1305"/>
+ <point x="525" y="1305" type="curve" smooth="yes"/>
+ <point x="668" y="1305"/>
+ <point x="810" y="1233"/>
+ <point x="810" y="1045" type="curve" smooth="yes"/>
+ <point x="810" y="768"/>
+ <point x="391" y="365"/>
+ <point x="120" y="170" type="curve"/>
+ <point x="120" y="0" type="line"/>
+ <point x="1080" y="0" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/D_igitZ_ero.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/D_igitZ_ero.glif
new file mode 100644
index 0000000..d976d0f
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/D_igitZ_ero.glif
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitZero" format="2">
+ <advance width="1200"/>
+ <unicode hex="0030"/>
+ <anchor x="605" y="-100" name="L"/>
+ <anchor x="605" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="910" y="715" type="curve" smooth="yes"/>
+ <point x="910" y="308"/>
+ <point x="792" y="145"/>
+ <point x="600" y="145" type="curve" smooth="yes"/>
+ <point x="402" y="145"/>
+ <point x="290" y="305"/>
+ <point x="290" y="745" type="curve" smooth="yes"/>
+ <point x="290" y="1153"/>
+ <point x="407" y="1315"/>
+ <point x="600" y="1315" type="curve" smooth="yes"/>
+ <point x="802" y="1315"/>
+ <point x="910" y="1156"/>
+ </contour>
+ <contour>
+ <point x="1110" y="740" type="curve" smooth="yes"/>
+ <point x="1110" y="1286"/>
+ <point x="900" y="1485"/>
+ <point x="610" y="1485" type="curve" smooth="yes"/>
+ <point x="321" y="1485"/>
+ <point x="90" y="1283"/>
+ <point x="90" y="720" type="curve" smooth="yes"/>
+ <point x="90" y="155"/>
+ <point x="301" y="-25"/>
+ <point x="590" y="-25" type="curve" smooth="yes"/>
+ <point x="881" y="-25"/>
+ <point x="1110" y="151"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/D_ollarS_gn.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/D_ollarS_gn.glif
new file mode 100644
index 0000000..52136d8
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/D_ollarS_gn.glif
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DollarSgn" format="2">
+ <advance width="1200"/>
+ <unicode hex="0024"/>
+ <outline>
+ <contour>
+ <point x="553" y="1600" type="line"/>
+ <point x="553" y="-220" type="line"/>
+ <point x="683" y="-220" type="line"/>
+ <point x="683" y="1600" type="line"/>
+ </contour>
+ <contour>
+ <point x="986" y="1306" type="line"/>
+ <point x="866" y="1364"/>
+ <point x="764" y="1389"/>
+ <point x="623" y="1389" type="curve" smooth="yes"/>
+ <point x="317" y="1389"/>
+ <point x="190" y="1173"/>
+ <point x="190" y="1017" type="curve" smooth="yes"/>
+ <point x="190" y="860"/>
+ <point x="253" y="739"/>
+ <point x="540" y="653" type="curve" smooth="yes"/>
+ <point x="827" y="567"/>
+ <point x="871" y="492"/>
+ <point x="871" y="396" type="curve" smooth="yes"/>
+ <point x="871" y="247"/>
+ <point x="734" y="161"/>
+ <point x="586" y="161" type="curve" smooth="yes"/>
+ <point x="450" y="161"/>
+ <point x="316" y="207"/>
+ <point x="195" y="313" type="curve"/>
+ <point x="153" y="124" type="line"/>
+ <point x="247" y="52"/>
+ <point x="408" y="0"/>
+ <point x="586" y="0" type="curve" smooth="yes"/>
+ <point x="837" y="0"/>
+ <point x="1046" y="167"/>
+ <point x="1046" y="414" type="curve" smooth="yes"/>
+ <point x="1046" y="613"/>
+ <point x="912" y="725"/>
+ <point x="669" y="796" type="curve" smooth="yes"/>
+ <point x="406" y="873"/>
+ <point x="365" y="929"/>
+ <point x="365" y="1030" type="curve" smooth="yes"/>
+ <point x="365" y="1132"/>
+ <point x="466" y="1228"/>
+ <point x="613" y="1228" type="curve" smooth="yes"/>
+ <point x="731" y="1228"/>
+ <point x="818" y="1200"/>
+ <point x="949" y="1127" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/D_ottedC_irc.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/D_ottedC_irc.glif
new file mode 100644
index 0000000..4cf5cb4
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/D_ottedC_irc.glif
@@ -0,0 +1,235 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DottedCirc" format="2">
+ <advance width="1106"/>
+ <unicode hex="25CC"/>
+ <anchor x="553" y="0" name="H"/>
+ <anchor x="553" y="-100" name="L"/>
+ <anchor x="810" y="0" name="O"/>
+ <anchor x="553" y="1000" name="U"/>
+ <outline>
+ <contour>
+ <point x="443" y="837" type="curve" smooth="yes"/>
+ <point x="443" y="864"/>
+ <point x="423" y="885"/>
+ <point x="398" y="885" type="curve" smooth="yes"/>
+ <point x="371" y="885"/>
+ <point x="348" y="861"/>
+ <point x="348" y="837" type="curve" smooth="yes"/>
+ <point x="348" y="809"/>
+ <point x="372" y="789"/>
+ <point x="398" y="789" type="curve" smooth="yes"/>
+ <point x="425" y="789"/>
+ <point x="443" y="812"/>
+ </contour>
+ <contour>
+ <point x="758" y="79" type="curve" smooth="yes"/>
+ <point x="758" y="106"/>
+ <point x="736" y="127"/>
+ <point x="710" y="127" type="curve" smooth="yes"/>
+ <point x="685" y="127"/>
+ <point x="662" y="103"/>
+ <point x="662" y="80" type="curve" smooth="yes"/>
+ <point x="662" y="52"/>
+ <point x="686" y="31"/>
+ <point x="710" y="31" type="curve" smooth="yes"/>
+ <point x="737" y="31"/>
+ <point x="758" y="55"/>
+ </contour>
+ <contour>
+ <point x="310" y="749" type="curve" smooth="yes"/>
+ <point x="310" y="775"/>
+ <point x="288" y="796"/>
+ <point x="263" y="796" type="curve" smooth="yes"/>
+ <point x="238" y="796"/>
+ <point x="215" y="774"/>
+ <point x="215" y="747" type="curve" smooth="yes"/>
+ <point x="215" y="722"/>
+ <point x="236" y="701"/>
+ <point x="263" y="701" type="curve" smooth="yes"/>
+ <point x="291" y="701"/>
+ <point x="310" y="720"/>
+ </contour>
+ <contour>
+ <point x="891" y="168" type="curve" smooth="yes"/>
+ <point x="891" y="197"/>
+ <point x="870" y="215"/>
+ <point x="843" y="215" type="curve" smooth="yes"/>
+ <point x="817" y="215"/>
+ <point x="795" y="194"/>
+ <point x="795" y="168" type="curve" smooth="yes"/>
+ <point x="795" y="143"/>
+ <point x="816" y="121"/>
+ <point x="843" y="121" type="curve" smooth="yes"/>
+ <point x="871" y="121"/>
+ <point x="891" y="143"/>
+ </contour>
+ <contour>
+ <point x="222" y="613" type="curve" smooth="yes"/>
+ <point x="222" y="640"/>
+ <point x="199" y="663"/>
+ <point x="173" y="663" type="curve" smooth="yes"/>
+ <point x="149" y="663"/>
+ <point x="126" y="642"/>
+ <point x="126" y="615" type="curve" smooth="yes"/>
+ <point x="126" y="591"/>
+ <point x="145" y="567"/>
+ <point x="173" y="567" type="curve" smooth="yes"/>
+ <point x="197" y="567"/>
+ <point x="222" y="587"/>
+ </contour>
+ <contour>
+ <point x="980" y="301" type="curve" smooth="yes"/>
+ <point x="980" y="327"/>
+ <point x="957" y="348"/>
+ <point x="932" y="348" type="curve" smooth="yes"/>
+ <point x="908" y="348"/>
+ <point x="884" y="332"/>
+ <point x="884" y="301" type="curve" smooth="yes"/>
+ <point x="884" y="277"/>
+ <point x="902" y="254"/>
+ <point x="932" y="254" type="curve" smooth="yes"/>
+ <point x="957" y="254"/>
+ <point x="980" y="274"/>
+ </contour>
+ <contour>
+ <point x="191" y="459" type="curve" smooth="yes"/>
+ <point x="191" y="484"/>
+ <point x="168" y="505"/>
+ <point x="143" y="505" type="curve" smooth="yes"/>
+ <point x="116" y="505"/>
+ <point x="95" y="484"/>
+ <point x="95" y="458" type="curve" smooth="yes"/>
+ <point x="95" y="433"/>
+ <point x="115" y="410"/>
+ <point x="143" y="410" type="curve" smooth="yes"/>
+ <point x="167" y="410"/>
+ <point x="191" y="432"/>
+ </contour>
+ <contour>
+ <point x="1011" y="458" type="curve" smooth="yes"/>
+ <point x="1011" y="484"/>
+ <point x="990" y="506"/>
+ <point x="964" y="506" type="curve" smooth="yes"/>
+ <point x="940" y="506"/>
+ <point x="915" y="484"/>
+ <point x="915" y="457" type="curve" smooth="yes"/>
+ <point x="915" y="433"/>
+ <point x="936" y="411"/>
+ <point x="964" y="411" type="curve" smooth="yes"/>
+ <point x="990" y="411"/>
+ <point x="1011" y="433"/>
+ </contour>
+ <contour>
+ <point x="222" y="302" type="curve" smooth="yes"/>
+ <point x="222" y="328"/>
+ <point x="200" y="348"/>
+ <point x="174" y="348" type="curve" smooth="yes"/>
+ <point x="147" y="348"/>
+ <point x="126" y="326"/>
+ <point x="126" y="302" type="curve" smooth="yes"/>
+ <point x="126" y="275"/>
+ <point x="149" y="253"/>
+ <point x="174" y="253" type="curve" smooth="yes"/>
+ <point x="201" y="253"/>
+ <point x="222" y="277"/>
+ </contour>
+ <contour>
+ <point x="980" y="615" type="curve" smooth="yes"/>
+ <point x="980" y="642"/>
+ <point x="955" y="663"/>
+ <point x="931" y="663" type="curve" smooth="yes"/>
+ <point x="904" y="663"/>
+ <point x="885" y="638"/>
+ <point x="885" y="614" type="curve" smooth="yes"/>
+ <point x="885" y="588"/>
+ <point x="907" y="567"/>
+ <point x="931" y="567" type="curve" smooth="yes"/>
+ <point x="959" y="567"/>
+ <point x="980" y="591"/>
+ </contour>
+ <contour>
+ <point x="310" y="168" type="curve" smooth="yes"/>
+ <point x="310" y="195"/>
+ <point x="291" y="215"/>
+ <point x="263" y="215" type="curve" smooth="yes"/>
+ <point x="238" y="215"/>
+ <point x="215" y="190"/>
+ <point x="215" y="168" type="curve" smooth="yes"/>
+ <point x="215" y="143"/>
+ <point x="238" y="120"/>
+ <point x="263" y="120" type="curve" smooth="yes"/>
+ <point x="289" y="120"/>
+ <point x="310" y="143"/>
+ </contour>
+ <contour>
+ <point x="890" y="748" type="curve" smooth="yes"/>
+ <point x="890" y="774"/>
+ <point x="870" y="796"/>
+ <point x="843" y="796" type="curve" smooth="yes"/>
+ <point x="815" y="796"/>
+ <point x="796" y="773"/>
+ <point x="796" y="748" type="curve" smooth="yes"/>
+ <point x="796" y="724"/>
+ <point x="817" y="700"/>
+ <point x="843" y="700" type="curve" smooth="yes"/>
+ <point x="869" y="700"/>
+ <point x="890" y="722"/>
+ </contour>
+ <contour>
+ <point x="444" y="78" type="curve" smooth="yes"/>
+ <point x="444" y="102"/>
+ <point x="423" y="126"/>
+ <point x="396" y="126" type="curve" smooth="yes"/>
+ <point x="370" y="126"/>
+ <point x="348" y="102"/>
+ <point x="348" y="78" type="curve" smooth="yes"/>
+ <point x="348" y="55"/>
+ <point x="370" y="31"/>
+ <point x="396" y="31" type="curve" smooth="yes"/>
+ <point x="420" y="31"/>
+ <point x="444" y="51"/>
+ </contour>
+ <contour>
+ <point x="758" y="836" type="curve" smooth="yes"/>
+ <point x="758" y="861"/>
+ <point x="737" y="885"/>
+ <point x="710" y="885" type="curve" smooth="yes"/>
+ <point x="684" y="885"/>
+ <point x="663" y="862"/>
+ <point x="663" y="838" type="curve" smooth="yes"/>
+ <point x="663" y="814"/>
+ <point x="683" y="789"/>
+ <point x="710" y="789" type="curve" smooth="yes"/>
+ <point x="734" y="789"/>
+ <point x="758" y="809"/>
+ </contour>
+ <contour>
+ <point x="601" y="47" type="curve" smooth="yes"/>
+ <point x="601" y="73"/>
+ <point x="579" y="95"/>
+ <point x="553" y="95" type="curve" smooth="yes"/>
+ <point x="527" y="95"/>
+ <point x="506" y="73"/>
+ <point x="506" y="47" type="curve" smooth="yes"/>
+ <point x="506" y="21"/>
+ <point x="527" y="0"/>
+ <point x="553" y="0" type="curve" smooth="yes"/>
+ <point x="579" y="0"/>
+ <point x="601" y="21"/>
+ </contour>
+ <contour>
+ <point x="601" y="868" type="curve" smooth="yes"/>
+ <point x="601" y="894"/>
+ <point x="579" y="916"/>
+ <point x="553" y="916" type="curve" smooth="yes"/>
+ <point x="527" y="916"/>
+ <point x="506" y="894"/>
+ <point x="506" y="868" type="curve" smooth="yes"/>
+ <point x="506" y="842"/>
+ <point x="527" y="821"/>
+ <point x="553" y="821" type="curve" smooth="yes"/>
+ <point x="579" y="821"/>
+ <point x="601" y="842"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/E_qS_gn.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/E_qS_gn.glif
new file mode 100644
index 0000000..1315ffa
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/E_qS_gn.glif
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="EqSgn" format="2">
+ <advance width="1200"/>
+ <unicode hex="003D"/>
+ <outline>
+ <contour>
+ <point x="120" y="480" type="line"/>
+ <point x="1080" y="480" type="line"/>
+ <point x="1080" y="630" type="line"/>
+ <point x="120" y="630" type="line"/>
+ </contour>
+ <contour>
+ <point x="120" y="830" type="line"/>
+ <point x="1080" y="830" type="line"/>
+ <point x="1080" y="980" type="line"/>
+ <point x="120" y="980" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/E_xclamationM_rk.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/E_xclamationM_rk.glif
new file mode 100644
index 0000000..e683644
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/E_xclamationM_rk.glif
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="ExclamationMrk" format="2">
+ <advance width="764"/>
+ <unicode hex="0021"/>
+ <outline>
+ <contour>
+ <point x="450" y="440" type="line"/>
+ <point x="456" y="730"/>
+ <point x="451" y="1076"/>
+ <point x="490" y="1510" type="curve"/>
+ <point x="235" y="1510" type="line"/>
+ <point x="273" y="1076"/>
+ <point x="268" y="730"/>
+ <point x="275" y="440" type="curve"/>
+ </contour>
+ <contour>
+ <point x="225" y="110" type="curve" smooth="yes"/>
+ <point x="225" y="36"/>
+ <point x="286" y="-25"/>
+ <point x="360" y="-25" type="curve" smooth="yes"/>
+ <point x="434" y="-25"/>
+ <point x="495" y="36"/>
+ <point x="495" y="110" type="curve" smooth="yes"/>
+ <point x="495" y="184"/>
+ <point x="434" y="245"/>
+ <point x="360" y="245" type="curve" smooth="yes"/>
+ <point x="286" y="245"/>
+ <point x="225" y="184"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/F_ullS_top.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/F_ullS_top.glif
new file mode 100644
index 0000000..9f3a3f0
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/F_ullS_top.glif
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="FullStop" format="2">
+ <advance width="640"/>
+ <unicode hex="002E"/>
+ <outline>
+ <contour>
+ <point x="185" y="110" type="curve" smooth="yes"/>
+ <point x="185" y="36"/>
+ <point x="246" y="-25"/>
+ <point x="320" y="-25" type="curve" smooth="yes"/>
+ <point x="394" y="-25"/>
+ <point x="455" y="36"/>
+ <point x="455" y="110" type="curve" smooth="yes"/>
+ <point x="455" y="184"/>
+ <point x="394" y="245"/>
+ <point x="320" y="245" type="curve" smooth="yes"/>
+ <point x="246" y="245"/>
+ <point x="185" y="184"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/G_T_S_gn.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/G_T_S_gn.glif
new file mode 100644
index 0000000..c591997
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/G_T_S_gn.glif
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="GTSgn" format="2">
+ <advance width="1200"/>
+ <unicode hex="003E"/>
+ <outline>
+ <contour>
+ <point x="120" y="1035" type="line"/>
+ <point x="910" y="730" type="line"/>
+ <point x="120" y="425" type="line"/>
+ <point x="120" y="245" type="line"/>
+ <point x="1100" y="645" type="line"/>
+ <point x="1100" y="815" type="line"/>
+ <point x="120" y="1215" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/G_raveA_ccent.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/G_raveA_ccent.glif
new file mode 100644
index 0000000..a0a0004
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/G_raveA_ccent.glif
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="GraveAccent" format="2">
+ <advance width="580"/>
+ <unicode hex="0060"/>
+ <outline>
+ <component base="CombGrave" xOffset="940"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/H_yphen.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/H_yphen.glif
new file mode 100644
index 0000000..fabf6ce
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/H_yphen.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Hyphen" format="2">
+ <advance width="860"/>
+ <unicode hex="2010"/>
+ <anchor x="430" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="80" y="555" type="line"/>
+ <point x="780" y="555" type="line"/>
+ <point x="780" y="705" type="line"/>
+ <point x="80" y="705" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/H_yphenM_inus.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/H_yphenM_inus.glif
new file mode 100644
index 0000000..bc3f4eb
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/H_yphenM_inus.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="HyphenMinus" format="2">
+ <advance width="860"/>
+ <unicode hex="002D"/>
+ <anchor x="430" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="80" y="555" type="line"/>
+ <point x="780" y="555" type="line"/>
+ <point x="780" y="705" type="line"/>
+ <point x="80" y="705" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/H_yphen_S_oft.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/H_yphen_S_oft.glif
new file mode 100644
index 0000000..293b653
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/H_yphen_S_oft.glif
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Hyphen_Soft" format="2">
+ <advance width="860"/>
+ <unicode hex="00AD"/>
+ <anchor x="430" y="1100" name="U"/>
+ <outline>
+ <component base="HyphenMinus"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_T_S_gn.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_T_S_gn.glif
new file mode 100644
index 0000000..db9ae78
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_T_S_gn.glif
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LTSgn" format="2">
+ <advance width="1200"/>
+ <unicode hex="003C"/>
+ <outline>
+ <contour>
+ <point x="1080" y="425" type="line"/>
+ <point x="290" y="730" type="line"/>
+ <point x="1080" y="1035" type="line"/>
+ <point x="1080" y="1215" type="line"/>
+ <point x="100" y="815" type="line"/>
+ <point x="100" y="645" type="line"/>
+ <point x="1080" y="245" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_ftC_urlyB_rac.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_ftC_urlyB_rac.glif
new file mode 100644
index 0000000..bc7ef03
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_ftC_urlyB_rac.glif
@@ -0,0 +1,47 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LftCurlyBrac" format="2">
+ <advance width="1000"/>
+ <unicode hex="007B"/>
+ <outline>
+ <contour>
+ <point x="210" y="615" type="curve" smooth="yes"/>
+ <point x="210" y="583"/>
+ <point x="383" y="486"/>
+ <point x="410" y="450" type="curve" smooth="yes"/>
+ <point x="434" y="418"/>
+ <point x="424" y="-205"/>
+ <point x="495" y="-285" type="curve" smooth="yes"/>
+ <point x="535" y="-330"/>
+ <point x="696" y="-383"/>
+ <point x="800" y="-410" type="curve"/>
+ <point x="840" y="-270" type="line"/>
+ <point x="773" y="-247"/>
+ <point x="650" y="-198"/>
+ <point x="630" y="-170" type="curve" smooth="yes"/>
+ <point x="597" y="-123"/>
+ <point x="610" y="447"/>
+ <point x="590" y="485" type="curve" smooth="yes"/>
+ <point x="571" y="521"/>
+ <point x="434" y="593"/>
+ <point x="430" y="615" type="curve"/>
+ <point x="434" y="637"/>
+ <point x="571" y="709"/>
+ <point x="590" y="745" type="curve" smooth="yes"/>
+ <point x="610" y="783"/>
+ <point x="597" y="1353"/>
+ <point x="630" y="1400" type="curve" smooth="yes"/>
+ <point x="650" y="1428"/>
+ <point x="773" y="1477"/>
+ <point x="840" y="1500" type="curve"/>
+ <point x="800" y="1640" type="line"/>
+ <point x="696" y="1613"/>
+ <point x="535" y="1560"/>
+ <point x="495" y="1515" type="curve" smooth="yes"/>
+ <point x="424" y="1435"/>
+ <point x="434" y="812"/>
+ <point x="410" y="780" type="curve" smooth="yes"/>
+ <point x="383" y="744"/>
+ <point x="210" y="647"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_ftP_aren.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_ftP_aren.glif
new file mode 100644
index 0000000..a4b9814
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_ftP_aren.glif
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LftParen" format="2">
+ <advance width="795"/>
+ <unicode hex="0028"/>
+ <outline>
+ <contour>
+ <point x="115" y="625" type="curve" smooth="yes"/>
+ <point x="115" y="218"/>
+ <point x="260" y="-125"/>
+ <point x="535" y="-410" type="curve"/>
+ <point x="630" y="-265" type="line"/>
+ <point x="395" y="-8"/>
+ <point x="305" y="278"/>
+ <point x="305" y="625" type="curve" smooth="yes"/>
+ <point x="305" y="982"/>
+ <point x="395" y="1280"/>
+ <point x="630" y="1485" type="curve"/>
+ <point x="555" y="1640" type="line"/>
+ <point x="290" y="1444"/>
+ <point x="115" y="1062"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_ftS_qrB_rac.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_ftS_qrB_rac.glif
new file mode 100644
index 0000000..e97ed98
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_ftS_qrB_rac.glif
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LftSqrBrac" format="2">
+ <advance width="790"/>
+ <unicode hex="005B"/>
+ <outline>
+ <contour>
+ <point x="640" y="-410" type="line"/>
+ <point x="640" y="-260" type="line"/>
+ <point x="385" y="-260" type="line"/>
+ <point x="385" y="1450" type="line"/>
+ <point x="640" y="1450" type="line"/>
+ <point x="640" y="1600" type="line"/>
+ <point x="200" y="1600" type="line"/>
+ <point x="200" y="-410" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_owL_ine.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_owL_ine.glif
new file mode 100644
index 0000000..2fc71eb
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_owL_ine.glif
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LowLine" format="2">
+ <advance width="1274"/>
+ <unicode hex="005F"/>
+ <outline>
+ <contour>
+ <point x="0" y="-320" type="line"/>
+ <point x="1274" y="-320" type="line"/>
+ <point x="1274" y="-170" type="line"/>
+ <point x="0" y="-170" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnC_apA_.alt.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnC_apA_.alt.glif
new file mode 100644
index 0000000..fbdfff2
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnC_apA_.alt.glif
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapA.alt" format="2">
+ <advance width="1395"/>
+ <anchor x="668" y="1460" name="H"/>
+ <anchor x="688" y="1560" name="L"/>
+ <anchor x="-75" y="1460" name="O"/>
+ <anchor x="688" y="-70" name="U"/>
+ <outline>
+ <contour>
+ <point x="1130" y="1460" type="line"/>
+ <point x="996" y="1075" type="line"/>
+ <point x="381" y="1075" type="line"/>
+ <point x="245" y="1460" type="line"/>
+ <point x="40" y="1460" type="line"/>
+ <point x="75" y="1380"/>
+ <point x="113" y="1291"/>
+ <point x="180" y="1105" type="curve" smooth="yes"/>
+ <point x="580" y="0" type="line"/>
+ <point x="795" y="0" type="line"/>
+ <point x="1195" y="1105" type="line" smooth="yes"/>
+ <point x="1263" y="1292"/>
+ <point x="1299" y="1379"/>
+ <point x="1335" y="1460" type="curve"/>
+ </contour>
+ <contour>
+ <point x="435" y="920" type="line"/>
+ <point x="942" y="920" type="line"/>
+ <point x="690" y="195" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnC_apA_.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnC_apA_.glif
new file mode 100644
index 0000000..3c64e18
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnC_apA_.glif
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapA" format="2">
+ <advance width="1395"/>
+ <unicode hex="0041"/>
+ <anchor x="707" y="0" name="H"/>
+ <anchor x="687" y="-100" name="L"/>
+ <anchor x="1450" y="0" name="O"/>
+ <anchor x="687" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="245" y="0" type="line"/>
+ <point x="379" y="385" type="line"/>
+ <point x="994" y="385" type="line"/>
+ <point x="1130" y="0" type="line"/>
+ <point x="1335" y="0" type="line"/>
+ <point x="1300" y="80"/>
+ <point x="1262" y="169"/>
+ <point x="1195" y="355" type="curve" smooth="yes"/>
+ <point x="795" y="1460" type="line"/>
+ <point x="580" y="1460" type="line"/>
+ <point x="180" y="355" type="line" smooth="yes"/>
+ <point x="112" y="168"/>
+ <point x="76" y="81"/>
+ <point x="40" y="0" type="curve"/>
+ </contour>
+ <contour>
+ <point x="940" y="540" type="line"/>
+ <point x="433" y="540" type="line"/>
+ <point x="685" y="1265" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnC_apA_D_iaer.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnC_apA_D_iaer.glif
new file mode 100644
index 0000000..b74cc60
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnC_apA_D_iaer.glif
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapADiaer" format="2">
+ <advance width="1395"/>
+ <unicode hex="00C4"/>
+ <anchor x="707" y="0" name="H"/>
+ <anchor x="687" y="-100" name="L"/>
+ <anchor x="1450" y="0" name="O"/>
+ <anchor x="687" y="1935" name="U"/>
+ <outline>
+ <component base="LtnCapA"/>
+ <component base="CombDiaer" xOffset="1257" yOffset="430"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnC_apB_.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnC_apB_.glif
new file mode 100644
index 0000000..415122e
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnC_apB_.glif
@@ -0,0 +1,62 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapB" format="2">
+ <advance width="1285"/>
+ <unicode hex="0042"/>
+ <anchor x="615" y="-100" name="L"/>
+ <anchor x="615" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="365" y="1310" type="line"/>
+ <point x="407" y="1312"/>
+ <point x="512" y="1315"/>
+ <point x="590" y="1315" type="curve" smooth="yes"/>
+ <point x="791" y="1315"/>
+ <point x="870" y="1239"/>
+ <point x="870" y="1090" type="curve" smooth="yes"/>
+ <point x="870" y="951"/>
+ <point x="774" y="855"/>
+ <point x="560" y="855" type="curve" smooth="yes"/>
+ <point x="365" y="855" type="line"/>
+ </contour>
+ <contour>
+ <point x="175" y="455" type="line"/>
+ <point x="175" y="257"/>
+ <point x="175" y="80"/>
+ <point x="160" y="0" type="curve"/>
+ <point x="213" y="-5"/>
+ <point x="402" y="-10"/>
+ <point x="605" y="-10" type="curve" smooth="yes"/>
+ <point x="988" y="-10"/>
+ <point x="1140" y="177"/>
+ <point x="1140" y="420" type="curve" smooth="yes"/>
+ <point x="1140" y="669"/>
+ <point x="974" y="759"/>
+ <point x="820" y="800" type="curve"/>
+ <point x="956" y="852"/>
+ <point x="1065" y="952"/>
+ <point x="1065" y="1120" type="curve" smooth="yes"/>
+ <point x="1065" y="1381"/>
+ <point x="897" y="1470"/>
+ <point x="600" y="1470" type="curve" smooth="yes"/>
+ <point x="431" y="1470"/>
+ <point x="248" y="1466"/>
+ <point x="160" y="1460" type="curve"/>
+ <point x="175" y="1380"/>
+ <point x="175" y="1196"/>
+ <point x="175" y="1000" type="curve" smooth="yes"/>
+ </contour>
+ <contour>
+ <point x="365" y="700" type="line"/>
+ <point x="600" y="700" type="line" smooth="yes"/>
+ <point x="833" y="700"/>
+ <point x="945" y="604"/>
+ <point x="945" y="420" type="curve" smooth="yes"/>
+ <point x="945" y="212"/>
+ <point x="781" y="150"/>
+ <point x="610" y="150" type="curve" smooth="yes"/>
+ <point x="498" y="150"/>
+ <point x="402" y="153"/>
+ <point x="365" y="155" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnC_apC_.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnC_apC_.glif
new file mode 100644
index 0000000..daf4f2d
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnC_apC_.glif
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapC" format="2">
+ <advance width="1355"/>
+ <unicode hex="0043"/>
+ <anchor x="750" y="0" name="H"/>
+ <anchor x="750" y="-100" name="L"/>
+ <anchor x="750" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1190" y="335" type="line"/>
+ <point x="1078" y="223"/>
+ <point x="912" y="150"/>
+ <point x="760" y="150" type="curve" smooth="yes"/>
+ <point x="489" y="150"/>
+ <point x="290" y="376"/>
+ <point x="290" y="735" type="curve" smooth="yes"/>
+ <point x="290" y="1119"/>
+ <point x="491" y="1315"/>
+ <point x="770" y="1315" type="curve" smooth="yes"/>
+ <point x="891" y="1315"/>
+ <point x="1030" y="1278"/>
+ <point x="1155" y="1165" type="curve"/>
+ <point x="1215" y="1345" type="line"/>
+ <point x="1072" y="1452"/>
+ <point x="913" y="1485"/>
+ <point x="770" y="1485" type="curve" smooth="yes"/>
+ <point x="418" y="1485"/>
+ <point x="95" y="1225"/>
+ <point x="95" y="710" type="curve" smooth="yes"/>
+ <point x="95" y="260"/>
+ <point x="346" y="-25"/>
+ <point x="750" y="-25" type="curve" smooth="yes"/>
+ <point x="902" y="-25"/>
+ <point x="1114" y="32"/>
+ <point x="1230" y="140" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnC_apD_.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnC_apD_.glif
new file mode 100644
index 0000000..9154a06
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnC_apD_.glif
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapD" format="2">
+ <advance width="1435"/>
+ <unicode hex="0044"/>
+ <anchor x="715" y="-100" name="L"/>
+ <anchor x="715" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="175" y="455" type="line"/>
+ <point x="174" y="257"/>
+ <point x="175" y="80"/>
+ <point x="160" y="0" type="curve"/>
+ <point x="160" y="0"/>
+ <point x="467" y="-10"/>
+ <point x="595" y="-10" type="curve" smooth="yes"/>
+ <point x="888" y="-10"/>
+ <point x="1315" y="145"/>
+ <point x="1315" y="740" type="curve" smooth="yes"/>
+ <point x="1315" y="1394"/>
+ <point x="829" y="1470"/>
+ <point x="615" y="1470" type="curve" smooth="yes"/>
+ <point x="480" y="1470"/>
+ <point x="245" y="1466"/>
+ <point x="160" y="1460" type="curve"/>
+ <point x="175" y="1380"/>
+ <point x="175" y="1196"/>
+ <point x="175" y="1000" type="curve" smooth="yes"/>
+ </contour>
+ <contour>
+ <point x="365" y="1305" type="line"/>
+ <point x="415" y="1307"/>
+ <point x="524" y="1310"/>
+ <point x="590" y="1310" type="curve" smooth="yes"/>
+ <point x="878" y="1310"/>
+ <point x="1120" y="1167"/>
+ <point x="1120" y="720" type="curve" smooth="yes"/>
+ <point x="1120" y="308"/>
+ <point x="853" y="155"/>
+ <point x="585" y="155" type="curve" smooth="yes"/>
+ <point x="490" y="155"/>
+ <point x="412" y="161"/>
+ <point x="365" y="165" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnC_apE_.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnC_apE_.glif
new file mode 100644
index 0000000..e5d0043
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnC_apE_.glif
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapE" format="2">
+ <advance width="1160"/>
+ <unicode hex="0045"/>
+ <anchor x="600" y="0" name="H"/>
+ <anchor x="600" y="-100" name="L"/>
+ <anchor x="917" y="0" name="O"/>
+ <anchor x="1160" y="1200" name="R"/>
+ <anchor x="600" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="365" y="845" type="line"/>
+ <point x="365" y="1295" type="line"/>
+ <point x="1010" y="1295" type="line"/>
+ <point x="1010" y="1460" type="line"/>
+ <point x="160" y="1460" type="line"/>
+ <point x="175" y="1380"/>
+ <point x="175" y="1222"/>
+ <point x="175" y="1025" type="curve" smooth="yes"/>
+ <point x="175" y="435" type="line" smooth="yes"/>
+ <point x="175" y="238"/>
+ <point x="175" y="80"/>
+ <point x="160" y="0" type="curve"/>
+ <point x="1040" y="0" type="line"/>
+ <point x="1040" y="180" type="line"/>
+ <point x="960" y="166"/>
+ <point x="826" y="165"/>
+ <point x="629" y="165" type="curve" smooth="yes"/>
+ <point x="365" y="165" type="line"/>
+ <point x="365" y="685" type="line"/>
+ <point x="935" y="685" type="line"/>
+ <point x="935" y="845" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnC_apF_.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnC_apF_.glif
new file mode 100644
index 0000000..deb38fb
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnC_apF_.glif
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapF" format="2">
+ <advance width="1150"/>
+ <unicode hex="0046"/>
+ <anchor x="595" y="-100" name="L"/>
+ <anchor x="595" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="365" y="835" type="line"/>
+ <point x="365" y="1295" type="line"/>
+ <point x="1030" y="1295" type="line"/>
+ <point x="1030" y="1460" type="line"/>
+ <point x="160" y="1460" type="line"/>
+ <point x="175" y="1380"/>
+ <point x="175" y="1217"/>
+ <point x="175" y="1020" type="curve" smooth="yes"/>
+ <point x="175" y="435" type="line" smooth="yes"/>
+ <point x="175" y="238"/>
+ <point x="175" y="80"/>
+ <point x="160" y="0" type="curve"/>
+ <point x="380" y="0" type="line"/>
+ <point x="365" y="78"/>
+ <point x="365" y="237"/>
+ <point x="365" y="435" type="curve" smooth="yes"/>
+ <point x="365" y="675" type="line"/>
+ <point x="945" y="675" type="line"/>
+ <point x="945" y="835" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnC_apG_.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnC_apG_.glif
new file mode 100644
index 0000000..477d223
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnC_apG_.glif
@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapG" format="2">
+ <advance width="1420"/>
+ <unicode hex="0047"/>
+ <anchor x="745" y="0" name="H"/>
+ <anchor x="745" y="-100" name="L"/>
+ <anchor x="745" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1275" y="745" type="line"/>
+ <point x="735" y="745" type="line"/>
+ <point x="735" y="580" type="line"/>
+ <point x="1085" y="580" type="line"/>
+ <point x="1085" y="245" type="line"/>
+ <point x="963" y="171"/>
+ <point x="876" y="150"/>
+ <point x="757" y="150" type="curve" smooth="yes"/>
+ <point x="471" y="150"/>
+ <point x="290" y="377"/>
+ <point x="290" y="745" type="curve" smooth="yes"/>
+ <point x="290" y="1094"/>
+ <point x="480" y="1315"/>
+ <point x="785" y="1315" type="curve" smooth="yes"/>
+ <point x="918" y="1315"/>
+ <point x="1046" y="1286"/>
+ <point x="1195" y="1165" type="curve"/>
+ <point x="1260" y="1345" type="line"/>
+ <point x="1085" y="1462"/>
+ <point x="947" y="1485"/>
+ <point x="785" y="1485" type="curve" smooth="yes"/>
+ <point x="402" y="1485"/>
+ <point x="95" y="1199"/>
+ <point x="95" y="720" type="curve" smooth="yes"/>
+ <point x="95" y="241"/>
+ <point x="367" y="-25"/>
+ <point x="745" y="-25" type="curve" smooth="yes"/>
+ <point x="918" y="-25"/>
+ <point x="1070" y="11"/>
+ <point x="1275" y="155" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnC_apH_.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnC_apH_.glif
new file mode 100644
index 0000000..5924270
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnC_apH_.glif
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapH" format="2">
+ <advance width="1475"/>
+ <unicode hex="0048"/>
+ <anchor x="285" y="0" name="H"/>
+ <anchor x="725" y="-100" name="L"/>
+ <anchor x="725" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1290" y="0" type="line"/>
+ <point x="1275" y="80"/>
+ <point x="1275" y="238"/>
+ <point x="1275" y="435" type="curve" smooth="yes"/>
+ <point x="1275" y="1025" type="line" smooth="yes"/>
+ <point x="1275" y="1222"/>
+ <point x="1275" y="1380"/>
+ <point x="1290" y="1460" type="curve"/>
+ <point x="1085" y="1460" type="line"/>
+ <point x="1085" y="835" type="line"/>
+ <point x="365" y="835" type="line"/>
+ <point x="365" y="1460" type="line"/>
+ <point x="160" y="1460" type="line"/>
+ <point x="175" y="1380"/>
+ <point x="175" y="1222"/>
+ <point x="175" y="1025" type="curve" smooth="yes"/>
+ <point x="175" y="435" type="line" smooth="yes"/>
+ <point x="175" y="238"/>
+ <point x="175" y="80"/>
+ <point x="160" y="0" type="curve"/>
+ <point x="365" y="0" type="line"/>
+ <point x="365" y="675" type="line"/>
+ <point x="1085" y="675" type="line"/>
+ <point x="1085" y="0" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnC_apI_.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnC_apI_.glif
new file mode 100644
index 0000000..c6001c3
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnC_apI_.glif
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapI" format="2">
+ <advance width="975"/>
+ <unicode hex="0049"/>
+ <anchor x="477" y="0" name="H"/>
+ <anchor x="477" y="-100" name="L"/>
+ <anchor x="673" y="0" name="O"/>
+ <anchor x="975" y="1200" name="R"/>
+ <anchor x="477" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="140" y="1460" type="line"/>
+ <point x="140" y="1315" type="line"/>
+ <point x="380" y="1315" type="line"/>
+ <point x="380" y="145" type="line"/>
+ <point x="140" y="145" type="line"/>
+ <point x="140" y="0" type="line"/>
+ <point x="815" y="0" type="line"/>
+ <point x="815" y="145" type="line"/>
+ <point x="570" y="145" type="line"/>
+ <point x="570" y="1315" type="line"/>
+ <point x="815" y="1315" type="line"/>
+ <point x="815" y="1460" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnC_apJ_.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnC_apJ_.glif
new file mode 100644
index 0000000..457e39d
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnC_apJ_.glif
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapJ" format="2">
+ <advance width="965"/>
+ <unicode hex="004A"/>
+ <anchor x="410" y="-100" name="L"/>
+ <anchor x="675" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="575" y="1460" type="line"/>
+ <point x="588" y="1354"/>
+ <point x="590" y="1175"/>
+ <point x="590" y="980" type="curve"/>
+ <point x="590" y="485" type="line" smooth="yes"/>
+ <point x="590" y="256"/>
+ <point x="487" y="155"/>
+ <point x="340" y="155" type="curve" smooth="yes"/>
+ <point x="248" y="155"/>
+ <point x="147" y="198"/>
+ <point x="80" y="275" type="curve"/>
+ <point x="35" y="90" type="line"/>
+ <point x="106" y="9"/>
+ <point x="250" y="-25"/>
+ <point x="345" y="-25" type="curve" smooth="yes"/>
+ <point x="602" y="-25"/>
+ <point x="780" y="119"/>
+ <point x="780" y="535" type="curve" smooth="yes"/>
+ <point x="780" y="1460" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnC_apK_.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnC_apK_.glif
new file mode 100644
index 0000000..b3f4cdd
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnC_apK_.glif
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapK" format="2">
+ <advance width="1310"/>
+ <unicode hex="004B"/>
+ <anchor x="270" y="0" name="H"/>
+ <anchor x="695" y="-100" name="L"/>
+ <anchor x="650" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="925" y="1460" type="line"/>
+ <point x="295" y="703" type="line"/>
+ <point x="425" y="745" type="line"/>
+ <point x="530" y="740" type="line"/>
+ <point x="1165" y="1460" type="line"/>
+ </contour>
+ <contour>
+ <point x="350" y="735" type="line"/>
+ <point x="985" y="0" type="line"/>
+ <point x="1230" y="0" type="line"/>
+ <point x="485" y="860" type="line"/>
+ </contour>
+ <contour>
+ <point x="365" y="1460" type="line"/>
+ <point x="160" y="1460" type="line"/>
+ <point x="175" y="1380"/>
+ <point x="175" y="1222"/>
+ <point x="175" y="1025" type="curve" smooth="yes"/>
+ <point x="175" y="435" type="line" smooth="yes"/>
+ <point x="175" y="238"/>
+ <point x="175" y="80"/>
+ <point x="160" y="0" type="curve"/>
+ <point x="365" y="0" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnC_apL_.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnC_apL_.glif
new file mode 100644
index 0000000..3d5883a
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnC_apL_.glif
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapL" format="2">
+ <advance width="1080"/>
+ <unicode hex="004C"/>
+ <anchor x="592" y="0" name="H"/>
+ <anchor x="592" y="-100" name="L"/>
+ <anchor x="540" y="1200" name="R"/>
+ <anchor x="592" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="365" y="165" type="line"/>
+ <point x="365" y="1460" type="line"/>
+ <point x="160" y="1460" type="line"/>
+ <point x="175" y="1380"/>
+ <point x="175" y="1222"/>
+ <point x="175" y="1025" type="curve" smooth="yes"/>
+ <point x="175" y="435" type="line" smooth="yes"/>
+ <point x="175" y="238"/>
+ <point x="175" y="80"/>
+ <point x="160" y="0" type="curve"/>
+ <point x="1025" y="0" type="line"/>
+ <point x="1025" y="180" type="line"/>
+ <point x="945" y="166"/>
+ <point x="786" y="165"/>
+ <point x="589" y="165" type="curve" smooth="yes"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnC_apM_.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnC_apM_.glif
new file mode 100644
index 0000000..fbdf3b1
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnC_apM_.glif
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapM" format="2">
+ <advance width="1795"/>
+ <unicode hex="004D"/>
+ <anchor x="1521" y="0" name="H"/>
+ <anchor x="885" y="-100" name="L"/>
+ <anchor x="885" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="885" y="205" type="line"/>
+ <point x="455" y="1460" type="line"/>
+ <point x="285" y="1460" type="line"/>
+ <point x="790" y="0" type="line"/>
+ <point x="985" y="0" type="line"/>
+ <point x="1487" y="1460" type="line"/>
+ <point x="1320" y="1460" type="line"/>
+ </contour>
+ <contour>
+ <point x="230" y="1460" type="line"/>
+ <point x="230" y="1460"/>
+ <point x="186" y="198"/>
+ <point x="160" y="0" type="curve"/>
+ <point x="345" y="0" type="line"/>
+ <point x="377" y="1205" type="line"/>
+ <point x="405" y="1460" type="line"/>
+ </contour>
+ <contour>
+ <point x="1610" y="0" type="line"/>
+ <point x="1581" y="198"/>
+ <point x="1540" y="1460"/>
+ <point x="1540" y="1460" type="curve"/>
+ <point x="1365" y="1460" type="line"/>
+ <point x="1397" y="1205" type="line"/>
+ <point x="1425" y="0" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnC_apN_.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnC_apN_.glif
new file mode 100644
index 0000000..360e6e6
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnC_apN_.glif
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapN" format="2">
+ <advance width="1500"/>
+ <unicode hex="004E"/>
+ <anchor x="1230" y="0" name="H"/>
+ <anchor x="737" y="-100" name="L"/>
+ <anchor x="737" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="200" y="1355" type="line"/>
+ <point x="1135" y="0" type="line"/>
+ <point x="1275" y="100" type="line"/>
+ <point x="340" y="1460" type="line"/>
+ </contour>
+ <contour>
+ <point x="1135" y="0" type="line"/>
+ <point x="1300" y="0" type="line"/>
+ <point x="1300" y="1025" type="line" smooth="yes"/>
+ <point x="1300" y="1222"/>
+ <point x="1301" y="1380"/>
+ <point x="1315" y="1460" type="curve"/>
+ <point x="1135" y="1460" type="line"/>
+ </contour>
+ <contour>
+ <point x="340" y="1460" type="line"/>
+ <point x="160" y="1460" type="line"/>
+ <point x="175" y="1380"/>
+ <point x="175" y="1222"/>
+ <point x="175" y="1025" type="curve" smooth="yes"/>
+ <point x="175" y="435" type="line" smooth="yes"/>
+ <point x="175" y="238"/>
+ <point x="175" y="80"/>
+ <point x="160" y="0" type="curve"/>
+ <point x="340" y="0" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnC_apO_.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnC_apO_.glif
new file mode 100644
index 0000000..e351c3d
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnC_apO_.glif
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapO" format="2">
+ <advance width="1460"/>
+ <unicode hex="004F"/>
+ <anchor x="717" y="0" name="H"/>
+ <anchor x="717" y="-100" name="L"/>
+ <anchor x="994" y="0" name="O"/>
+ <anchor x="1460" y="1200" name="R"/>
+ <anchor x="717" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1145" y="715" type="curve" smooth="yes"/>
+ <point x="1145" y="360"/>
+ <point x="965" y="150"/>
+ <point x="720" y="150" type="curve" smooth="yes"/>
+ <point x="460" y="150"/>
+ <point x="290" y="380"/>
+ <point x="290" y="745" type="curve" smooth="yes"/>
+ <point x="290" y="1091"/>
+ <point x="467" y="1310"/>
+ <point x="720" y="1310" type="curve" smooth="yes"/>
+ <point x="974" y="1310"/>
+ <point x="1145" y="1084"/>
+ </contour>
+ <contour>
+ <point x="1340" y="740" type="curve" smooth="yes"/>
+ <point x="1340" y="1219"/>
+ <point x="1048" y="1485"/>
+ <point x="730" y="1485" type="curve" smooth="yes"/>
+ <point x="407" y="1485"/>
+ <point x="95" y="1199"/>
+ <point x="95" y="720" type="curve" smooth="yes"/>
+ <point x="95" y="241"/>
+ <point x="388" y="-25"/>
+ <point x="710" y="-25" type="curve" smooth="yes"/>
+ <point x="1029" y="-25"/>
+ <point x="1340" y="260"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnC_apP_.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnC_apP_.glif
new file mode 100644
index 0000000..9f29954
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnC_apP_.glif
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapP" format="2">
+ <advance width="1195"/>
+ <unicode hex="0050"/>
+ <anchor x="637" y="-100" name="L"/>
+ <anchor x="637" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="365" y="565" type="line"/>
+ <point x="430" y="558"/>
+ <point x="512" y="555"/>
+ <point x="585" y="555" type="curve" smooth="yes"/>
+ <point x="914" y="555"/>
+ <point x="1115" y="736"/>
+ <point x="1115" y="1030" type="curve" smooth="yes"/>
+ <point x="1115" y="1322"/>
+ <point x="908" y="1470"/>
+ <point x="585" y="1470" type="curve" smooth="yes"/>
+ <point x="372" y="1470"/>
+ <point x="160" y="1460"/>
+ <point x="160" y="1460" type="curve"/>
+ <point x="175" y="1380"/>
+ <point x="175" y="1196"/>
+ <point x="175" y="1000" type="curve"/>
+ <point x="175" y="435" type="line" smooth="yes"/>
+ <point x="175" y="238"/>
+ <point x="175" y="80"/>
+ <point x="160" y="0" type="curve"/>
+ <point x="380" y="0" type="line"/>
+ <point x="366" y="78"/>
+ <point x="365" y="237"/>
+ <point x="365" y="435" type="curve" smooth="yes"/>
+ </contour>
+ <contour>
+ <point x="365" y="1305" type="line"/>
+ <point x="433" y="1308"/>
+ <point x="481" y="1310"/>
+ <point x="575" y="1310" type="curve" smooth="yes"/>
+ <point x="841" y="1310"/>
+ <point x="925" y="1170"/>
+ <point x="925" y="1010" type="curve" smooth="yes"/>
+ <point x="925" y="849"/>
+ <point x="850" y="710"/>
+ <point x="570" y="710" type="curve" smooth="yes"/>
+ <point x="495" y="710"/>
+ <point x="428" y="712"/>
+ <point x="365" y="720" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnC_apQ_.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnC_apQ_.glif
new file mode 100644
index 0000000..ddd0351
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnC_apQ_.glif
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapQ" format="2">
+ <advance width="1475"/>
+ <unicode hex="0051"/>
+ <anchor x="717" y="-270" name="L"/>
+ <anchor x="717" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1340" y="740" type="curve" smooth="yes"/>
+ <point x="1340" y="1219"/>
+ <point x="1053" y="1485"/>
+ <point x="730" y="1485" type="curve" smooth="yes"/>
+ <point x="407" y="1485"/>
+ <point x="95" y="1199"/>
+ <point x="95" y="720" type="curve" smooth="yes"/>
+ <point x="95" y="241"/>
+ <point x="383" y="-25"/>
+ <point x="705" y="-25" type="curve" smooth="yes"/>
+ <point x="767" y="-25"/>
+ <point x="818" y="-18"/>
+ <point x="875" y="0" type="curve"/>
+ <point x="944" y="0"/>
+ <point x="1236" y="-190"/>
+ <point x="1320" y="-190" type="curve" smooth="yes"/>
+ <point x="1374" y="-190"/>
+ <point x="1431" y="-81"/>
+ <point x="1455" y="-45" type="curve"/>
+ <point x="1321" y="-28"/>
+ <point x="1205" y="28"/>
+ <point x="1080" y="105" type="curve"/>
+ <point x="1256" y="236"/>
+ <point x="1340" y="479"/>
+ </contour>
+ <contour>
+ <point x="1145" y="715" type="curve" smooth="yes"/>
+ <point x="1145" y="360"/>
+ <point x="965" y="150"/>
+ <point x="720" y="150" type="curve" smooth="yes"/>
+ <point x="460" y="150"/>
+ <point x="290" y="380"/>
+ <point x="290" y="745" type="curve" smooth="yes"/>
+ <point x="290" y="1091"/>
+ <point x="467" y="1310"/>
+ <point x="720" y="1310" type="curve" smooth="yes"/>
+ <point x="974" y="1310"/>
+ <point x="1145" y="1084"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnC_apR_.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnC_apR_.glif
new file mode 100644
index 0000000..cd9e037
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnC_apR_.glif
@@ -0,0 +1,55 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapR" format="2">
+ <advance width="1305"/>
+ <unicode hex="0052"/>
+ <anchor x="285" y="0" name="H"/>
+ <anchor x="610" y="-100" name="L"/>
+ <anchor x="610" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="365" y="625" type="line"/>
+ <point x="620" y="625" type="line"/>
+ <point x="805" y="625"/>
+ <point x="1090" y="743"/>
+ <point x="1090" y="1060" type="curve" smooth="yes"/>
+ <point x="1090" y="1349"/>
+ <point x="876" y="1470"/>
+ <point x="565" y="1470" type="curve" smooth="yes"/>
+ <point x="331" y="1470"/>
+ <point x="160" y="1460"/>
+ <point x="160" y="1460" type="curve"/>
+ <point x="175" y="1380"/>
+ <point x="175" y="1196"/>
+ <point x="175" y="1000" type="curve" smooth="yes"/>
+ <point x="175" y="435" type="line"/>
+ <point x="175" y="238"/>
+ <point x="175" y="80"/>
+ <point x="160" y="0" type="curve"/>
+ <point x="380" y="0" type="line"/>
+ <point x="366" y="78"/>
+ <point x="365" y="238"/>
+ <point x="365" y="435" type="curve"/>
+ </contour>
+ <contour>
+ <point x="365" y="1305" type="line"/>
+ <point x="418" y="1307"/>
+ <point x="485" y="1310"/>
+ <point x="555" y="1310" type="curve" smooth="yes"/>
+ <point x="800" y="1310"/>
+ <point x="900" y="1216"/>
+ <point x="900" y="1045" type="curve" smooth="yes"/>
+ <point x="900" y="879"/>
+ <point x="780" y="780"/>
+ <point x="555" y="780" type="curve"/>
+ <point x="365" y="780" type="line"/>
+ </contour>
+ <contour>
+ <point x="561" y="635" type="line"/>
+ <point x="990" y="0" type="line"/>
+ <point x="1245" y="0" type="line"/>
+ <point x="1178" y="73"/>
+ <point x="715" y="710"/>
+ <point x="715" y="710" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnC_apS_.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnC_apS_.glif
new file mode 100644
index 0000000..92da6b0
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnC_apS_.glif
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapS" format="2">
+ <advance width="1175"/>
+ <unicode hex="0053"/>
+ <anchor x="580" y="0" name="H"/>
+ <anchor x="580" y="-100" name="L"/>
+ <anchor x="580" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1000" y="1395" type="line"/>
+ <point x="870" y="1458"/>
+ <point x="759" y="1485"/>
+ <point x="605" y="1485" type="curve" smooth="yes"/>
+ <point x="273" y="1485"/>
+ <point x="135" y="1250"/>
+ <point x="135" y="1080" type="curve" smooth="yes"/>
+ <point x="135" y="910"/>
+ <point x="203" y="778"/>
+ <point x="515" y="685" type="curve" smooth="yes"/>
+ <point x="827" y="591"/>
+ <point x="875" y="510"/>
+ <point x="875" y="405" type="curve" smooth="yes"/>
+ <point x="875" y="243"/>
+ <point x="726" y="150"/>
+ <point x="565" y="150" type="curve" smooth="yes"/>
+ <point x="417" y="150"/>
+ <point x="272" y="200"/>
+ <point x="140" y="315" type="curve"/>
+ <point x="95" y="110" type="line"/>
+ <point x="197" y="31"/>
+ <point x="372" y="-25"/>
+ <point x="565" y="-25" type="curve" smooth="yes"/>
+ <point x="838" y="-25"/>
+ <point x="1065" y="157"/>
+ <point x="1065" y="425" type="curve" smooth="yes"/>
+ <point x="1065" y="641"/>
+ <point x="920" y="762"/>
+ <point x="655" y="840" type="curve" smooth="yes"/>
+ <point x="370" y="923"/>
+ <point x="325" y="985"/>
+ <point x="325" y="1095" type="curve" smooth="yes"/>
+ <point x="325" y="1205"/>
+ <point x="435" y="1310"/>
+ <point x="595" y="1310" type="curve" smooth="yes"/>
+ <point x="723" y="1310"/>
+ <point x="817" y="1279"/>
+ <point x="960" y="1200" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnC_apT_.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnC_apT_.glif
new file mode 100644
index 0000000..124138f
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnC_apT_.glif
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapT" format="2">
+ <advance width="1265"/>
+ <unicode hex="0054"/>
+ <anchor x="622" y="0" name="H"/>
+ <anchor x="622" y="-100" name="L"/>
+ <anchor x="622" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="45" y="1460" type="line"/>
+ <point x="45" y="1275" type="line"/>
+ <point x="125" y="1292"/>
+ <point x="201" y="1295"/>
+ <point x="290" y="1295" type="curve" smooth="yes"/>
+ <point x="525" y="1295" type="line"/>
+ <point x="525" y="435" type="line" smooth="yes"/>
+ <point x="525" y="238"/>
+ <point x="522" y="80"/>
+ <point x="505" y="0" type="curve"/>
+ <point x="735" y="0" type="line"/>
+ <point x="718" y="80"/>
+ <point x="715" y="238"/>
+ <point x="715" y="435" type="curve" smooth="yes"/>
+ <point x="715" y="1295" type="line"/>
+ <point x="955" y="1295" type="line" smooth="yes"/>
+ <point x="1045" y="1295"/>
+ <point x="1120" y="1292"/>
+ <point x="1200" y="1275" type="curve"/>
+ <point x="1200" y="1460" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnC_apU_.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnC_apU_.glif
new file mode 100644
index 0000000..7afa08d
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnC_apU_.glif
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapU" format="2">
+ <advance width="1440"/>
+ <unicode hex="0055"/>
+ <anchor x="707" y="0" name="H"/>
+ <anchor x="707" y="-100" name="L"/>
+ <anchor x="1026" y="0" name="O"/>
+ <anchor x="1400" y="1200" name="R"/>
+ <anchor x="707" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1050" y="1460" type="line"/>
+ <point x="1050" y="560" type="line" smooth="yes"/>
+ <point x="1050" y="299"/>
+ <point x="968" y="135"/>
+ <point x="710" y="135" type="curve" smooth="yes"/>
+ <point x="447" y="135"/>
+ <point x="365" y="299"/>
+ <point x="365" y="560" type="curve" smooth="yes"/>
+ <point x="365" y="1460" type="line"/>
+ <point x="160" y="1460" type="line"/>
+ <point x="174" y="1380"/>
+ <point x="175" y="1222"/>
+ <point x="175" y="1025" type="curve" smooth="yes"/>
+ <point x="175" y="515" type="line"/>
+ <point x="175" y="190"/>
+ <point x="345" y="-25"/>
+ <point x="710" y="-25" type="curve" smooth="yes"/>
+ <point x="1071" y="-25"/>
+ <point x="1240" y="190"/>
+ <point x="1240" y="515" type="curve"/>
+ <point x="1240" y="1025" type="line" smooth="yes"/>
+ <point x="1240" y="1232"/>
+ <point x="1242" y="1380"/>
+ <point x="1255" y="1460" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnC_apV_.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnC_apV_.glif
new file mode 100644
index 0000000..86c76b5
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnC_apV_.glif
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapV" format="2">
+ <advance width="1365"/>
+ <unicode hex="0056"/>
+ <anchor x="680" y="0" name="H"/>
+ <anchor x="672" y="-100" name="L"/>
+ <anchor x="880" y="0" name="O"/>
+ <anchor x="672" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1095" y="1460" type="line"/>
+ <point x="672" y="195" type="line"/>
+ <point x="250" y="1460" type="line"/>
+ <point x="35" y="1460" type="line"/>
+ <point x="68" y="1378"/>
+ <point x="101" y="1288"/>
+ <point x="170" y="1095" type="curve" smooth="yes"/>
+ <point x="560" y="0" type="line"/>
+ <point x="785" y="0" type="line"/>
+ <point x="1170" y="1095" type="line" smooth="yes"/>
+ <point x="1238" y="1289"/>
+ <point x="1274" y="1378"/>
+ <point x="1310" y="1460" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnC_apW_.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnC_apW_.glif
new file mode 100644
index 0000000..b1f4961
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnC_apW_.glif
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapW" format="2">
+ <advance width="2080"/>
+ <unicode hex="0057"/>
+ <anchor x="1027" y="-100" name="L"/>
+ <anchor x="1027" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1480" y="0" type="line"/>
+ <point x="1595" y="0" type="line"/>
+ <point x="1900" y="1095" type="line" smooth="yes"/>
+ <point x="1954" y="1289"/>
+ <point x="1983" y="1378"/>
+ <point x="2015" y="1460" type="curve"/>
+ <point x="1795" y="1460" type="line"/>
+ <point x="1470" y="130" type="line"/>
+ </contour>
+ <contour>
+ <point x="1120" y="1460" type="line"/>
+ <point x="935" y="1460" type="line"/>
+ <point x="990" y="1305" type="line"/>
+ <point x="1370" y="0" type="line"/>
+ <point x="1480" y="0" type="line"/>
+ <point x="1500" y="130" type="line"/>
+ </contour>
+ <contour>
+ <point x="580" y="0" type="line"/>
+ <point x="685" y="0" type="line"/>
+ <point x="1065" y="1305" type="line"/>
+ <point x="1120" y="1460" type="line"/>
+ <point x="935" y="1460" type="line"/>
+ <point x="560" y="130" type="line"/>
+ </contour>
+ <contour>
+ <point x="260" y="1460" type="line"/>
+ <point x="40" y="1460" type="line"/>
+ <point x="71" y="1381"/>
+ <point x="102" y="1286"/>
+ <point x="155" y="1095" type="curve" smooth="yes"/>
+ <point x="460" y="0" type="line"/>
+ <point x="580" y="0" type="line"/>
+ <point x="590" y="130" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnC_apX_.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnC_apX_.glif
new file mode 100644
index 0000000..7472407
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnC_apX_.glif
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapX" format="2">
+ <advance width="1325"/>
+ <unicode hex="0058"/>
+ <anchor x="650" y="-100" name="L"/>
+ <anchor x="650" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="537" y="781" type="line"/>
+ <point x="265" y="340" type="line" smooth="yes"/>
+ <point x="136" y="132"/>
+ <point x="103" y="86"/>
+ <point x="40" y="0" type="curve"/>
+ <point x="270" y="0" type="line"/>
+ <point x="642" y="614" type="line"/>
+ <point x="1030" y="0" type="line"/>
+ <point x="1260" y="0" type="line"/>
+ <point x="1199" y="82"/>
+ <point x="1165" y="127"/>
+ <point x="1033" y="336" type="curve" smooth="yes"/>
+ <point x="761" y="767" type="line"/>
+ <point x="972" y="1110" type="line" smooth="yes"/>
+ <point x="1097" y="1313"/>
+ <point x="1148" y="1383"/>
+ <point x="1210" y="1460" type="curve"/>
+ <point x="975" y="1460" type="line"/>
+ <point x="656" y="934" type="line"/>
+ <point x="325" y="1460" type="line"/>
+ <point x="90" y="1460" type="line"/>
+ <point x="154" y="1376"/>
+ <point x="201" y="1315"/>
+ <point x="330" y="1110" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnC_apY_.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnC_apY_.glif
new file mode 100644
index 0000000..c2c5f54
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnC_apY_.glif
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapY" format="2">
+ <advance width="1320"/>
+ <unicode hex="0059"/>
+ <anchor x="650" y="-100" name="L"/>
+ <anchor x="650" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="35" y="1460" type="line"/>
+ <point x="147" y="1311"/>
+ <point x="213" y="1197"/>
+ <point x="290" y="1065" type="curve" smooth="yes"/>
+ <point x="555" y="611" type="line"/>
+ <point x="555" y="435" type="line" smooth="yes"/>
+ <point x="555" y="238"/>
+ <point x="555" y="80"/>
+ <point x="540" y="0" type="curve"/>
+ <point x="760" y="0" type="line"/>
+ <point x="745" y="80"/>
+ <point x="745" y="238"/>
+ <point x="745" y="435" type="curve" smooth="yes"/>
+ <point x="745" y="603" type="line"/>
+ <point x="1015" y="1065" type="line" smooth="yes"/>
+ <point x="1091" y="1195"/>
+ <point x="1147" y="1291"/>
+ <point x="1265" y="1460" type="curve"/>
+ <point x="1035" y="1460" type="line"/>
+ <point x="660" y="799" type="line"/>
+ <point x="265" y="1460" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mA_.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mA_.glif
new file mode 100644
index 0000000..4f0d667
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mA_.glif
@@ -0,0 +1,68 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmA" format="2">
+ <advance width="1120"/>
+ <unicode hex="0061"/>
+ <note>
+GlyphNote A
+</note>
+ <anchor x="540" y="0" name="H"/>
+ <anchor x="540" y="-100" name="L"/>
+ <anchor x="1125" y="0" name="O"/>
+ <anchor x="1120" y="1000" name="R"/>
+ <anchor x="540" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="950" y="760" type="line"/>
+ <point x="950" y="919"/>
+ <point x="800" y="1040"/>
+ <point x="570" y="1040" type="curve" smooth="yes"/>
+ <point x="418" y="1040"/>
+ <point x="312" y="994"/>
+ <point x="209" y="950" type="curve"/>
+ <point x="203" y="907"/>
+ <point x="200" y="799"/>
+ <point x="199" y="755" type="curve"/>
+ <point x="316" y="837"/>
+ <point x="419" y="880"/>
+ <point x="525" y="880" type="curve" smooth="yes"/>
+ <point x="675" y="880"/>
+ <point x="765" y="831"/>
+ <point x="765" y="710" type="curve" smooth="yes"/>
+ <point x="765" y="635" type="line"/>
+ <point x="724" y="632"/>
+ <point x="564" y="617"/>
+ <point x="495" y="610" type="curve" smooth="yes"/>
+ <point x="186" y="580"/>
+ <point x="95" y="407"/>
+ <point x="95" y="255" type="curve" smooth="yes"/>
+ <point x="95" y="107"/>
+ <point x="232" y="-25"/>
+ <point x="420" y="-25" type="curve" smooth="yes"/>
+ <point x="544" y="-25"/>
+ <point x="677" y="29"/>
+ <point x="795" y="155" type="curve"/>
+ <point x="809" y="91"/>
+ <point x="833" y="32"/>
+ <point x="845" y="0" type="curve"/>
+ <point x="1025" y="0" type="line"/>
+ <point x="981" y="112"/>
+ <point x="950" y="226"/>
+ <point x="950" y="370" type="curve"/>
+ </contour>
+ <contour>
+ <point x="765" y="325" type="line"/>
+ <point x="644" y="164"/>
+ <point x="552" y="140"/>
+ <point x="450" y="140" type="curve" smooth="yes"/>
+ <point x="340" y="140"/>
+ <point x="275" y="191"/>
+ <point x="275" y="280" type="curve" smooth="yes"/>
+ <point x="275" y="372"/>
+ <point x="335" y="450"/>
+ <point x="505" y="470" type="curve" smooth="yes"/>
+ <point x="568" y="478"/>
+ <point x="715" y="493"/>
+ <point x="765" y="495" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mA_A_cute.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mA_A_cute.glif
new file mode 100644
index 0000000..2ab1b23
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mA_A_cute.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmAAcute" format="2">
+ <advance width="1120"/>
+ <unicode hex="00E1"/>
+ <anchor x="540" y="0" name="H"/>
+ <anchor x="540" y="-100" name="L"/>
+ <anchor x="1125" y="0" name="O"/>
+ <anchor x="1120" y="1000" name="R"/>
+ <anchor x="540" y="1635" name="U"/>
+ <outline>
+ <component base="LtnSmA"/>
+ <component base="CombAcute" xOffset="1110"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mA_C_ircum.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mA_C_ircum.glif
new file mode 100644
index 0000000..6551c45
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mA_C_ircum.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmACircum" format="2">
+ <advance width="1120"/>
+ <unicode hex="00E2"/>
+ <anchor x="540" y="0" name="H"/>
+ <anchor x="540" y="-100" name="L"/>
+ <anchor x="1125" y="0" name="O"/>
+ <anchor x="1120" y="1000" name="R"/>
+ <anchor x="540" y="1635" name="U"/>
+ <outline>
+ <component base="LtnSmA"/>
+ <component base="CombCircum" xOffset="1110"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mA_D_iaer.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mA_D_iaer.glif
new file mode 100644
index 0000000..61c5d3f
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mA_D_iaer.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmADiaer" format="2">
+ <advance width="1120"/>
+ <unicode hex="00E4"/>
+ <anchor x="540" y="0" name="H"/>
+ <anchor x="540" y="-100" name="L"/>
+ <anchor x="1125" y="0" name="O"/>
+ <anchor x="1120" y="1000" name="R"/>
+ <anchor x="540" y="1505" name="U"/>
+ <outline>
+ <component base="LtnSmA"/>
+ <component base="CombDiaer" xOffset="1110"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mA_G_rave.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mA_G_rave.glif
new file mode 100644
index 0000000..9879252
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mA_G_rave.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmAGrave" format="2">
+ <advance width="1120"/>
+ <unicode hex="00E0"/>
+ <anchor x="540" y="0" name="H"/>
+ <anchor x="540" y="-100" name="L"/>
+ <anchor x="1125" y="0" name="O"/>
+ <anchor x="1120" y="1000" name="R"/>
+ <anchor x="540" y="1635" name="U"/>
+ <outline>
+ <component base="LtnSmA"/>
+ <component base="CombGrave" xOffset="1090"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mA_R_ingA_bv.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mA_R_ingA_bv.glif
new file mode 100644
index 0000000..ae3b838
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mA_R_ingA_bv.glif
@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmARingAbv" format="2">
+ <advance width="1120"/>
+ <unicode hex="00E5"/>
+ <anchor x="540" y="0" name="H"/>
+ <anchor x="540" y="-100" name="L"/>
+ <anchor x="1125" y="0" name="O"/>
+ <anchor x="1120" y="1000" name="R"/>
+ <anchor x="542" y="1635" name="U"/>
+ <outline>
+ <component base="LtnSmA"/>
+ <contour>
+ <point x="642" y="1385" type="curve" smooth="yes"/>
+ <point x="642" y="1325"/>
+ <point x="602" y="1285"/>
+ <point x="542" y="1285" type="curve" smooth="yes"/>
+ <point x="482" y="1285"/>
+ <point x="442" y="1325"/>
+ <point x="442" y="1385" type="curve" smooth="yes"/>
+ <point x="442" y="1445"/>
+ <point x="482" y="1485"/>
+ <point x="542" y="1485" type="curve" smooth="yes"/>
+ <point x="602" y="1485"/>
+ <point x="642" y="1445"/>
+ </contour>
+ <contour>
+ <point x="327" y="1385" type="curve" smooth="yes"/>
+ <point x="327" y="1265"/>
+ <point x="422" y="1170"/>
+ <point x="542" y="1170" type="curve" smooth="yes"/>
+ <point x="662" y="1170"/>
+ <point x="757" y="1265"/>
+ <point x="757" y="1385" type="curve" smooth="yes"/>
+ <point x="757" y="1505"/>
+ <point x="662" y="1600"/>
+ <point x="542" y="1600" type="curve" smooth="yes"/>
+ <point x="422" y="1600"/>
+ <point x="327" y="1505"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mA_T_ilde.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mA_T_ilde.glif
new file mode 100644
index 0000000..cf21919
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mA_T_ilde.glif
@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmATilde" format="2">
+ <advance width="1120"/>
+ <unicode hex="00E3"/>
+ <anchor x="540" y="0" name="H"/>
+ <anchor x="540" y="-100" name="L"/>
+ <anchor x="1125" y="0" name="O"/>
+ <anchor x="1120" y="1000" name="R"/>
+ <anchor x="540" y="1475" name="U"/>
+ <outline>
+ <component base="LtnSmA"/>
+ <contour>
+ <point x="295" y="1205" type="line"/>
+ <point x="300" y="1254"/>
+ <point x="331" y="1290"/>
+ <point x="380" y="1290" type="curve" smooth="yes"/>
+ <point x="417" y="1290"/>
+ <point x="458" y="1274"/>
+ <point x="535" y="1238" type="curve" smooth="yes"/>
+ <point x="596" y="1210"/>
+ <point x="649" y="1190"/>
+ <point x="702" y="1190" type="curve" smooth="yes"/>
+ <point x="825" y="1190"/>
+ <point x="900" y="1312"/>
+ <point x="900" y="1440" type="curve"/>
+ <point x="795" y="1440" type="line"/>
+ <point x="788" y="1394"/>
+ <point x="757" y="1355"/>
+ <point x="710" y="1355" type="curve" smooth="yes"/>
+ <point x="668" y="1355"/>
+ <point x="627" y="1374"/>
+ <point x="555" y="1403" type="curve" smooth="yes"/>
+ <point x="485" y="1431"/>
+ <point x="438" y="1455"/>
+ <point x="382" y="1455" type="curve" smooth="yes"/>
+ <point x="263" y="1455"/>
+ <point x="190" y="1327"/>
+ <point x="190" y="1205" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mB_.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mB_.glif
new file mode 100644
index 0000000..67ff8ac
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mB_.glif
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmB" format="2">
+ <advance width="1155"/>
+ <unicode hex="0062"/>
+ <anchor x="590" y="0" name="H"/>
+ <anchor x="590" y="-100" name="L"/>
+ <anchor x="1155" y="1000" name="R"/>
+ <anchor x="590" y="1635" name="U"/>
+ <outline>
+ <contour>
+ <point x="130" y="1600" type="line"/>
+ <point x="145" y="1488"/>
+ <point x="145" y="1273"/>
+ <point x="145" y="1130" type="curve" smooth="yes"/>
+ <point x="145" y="936"/>
+ <point x="145" y="228"/>
+ <point x="145" y="65" type="curve"/>
+ <point x="272" y="26"/>
+ <point x="413" y="-25"/>
+ <point x="575" y="-25" type="curve" smooth="yes"/>
+ <point x="870" y="-25"/>
+ <point x="1060" y="197"/>
+ <point x="1060" y="540" type="curve" smooth="yes"/>
+ <point x="1060" y="832"/>
+ <point x="917" y="1040"/>
+ <point x="715" y="1040" type="curve" smooth="yes"/>
+ <point x="547" y="1040"/>
+ <point x="423" y="947"/>
+ <point x="330" y="825" type="curve"/>
+ <point x="330" y="916"/>
+ <point x="330" y="1600"/>
+ <point x="330" y="1600" type="curve"/>
+ </contour>
+ <contour>
+ <point x="330" y="585" type="line"/>
+ <point x="398" y="751"/>
+ <point x="531" y="865"/>
+ <point x="655" y="865" type="curve" smooth="yes"/>
+ <point x="799" y="865"/>
+ <point x="880" y="727"/>
+ <point x="880" y="505" type="curve" smooth="yes"/>
+ <point x="880" y="280"/>
+ <point x="752" y="130"/>
+ <point x="575" y="130" type="curve" smooth="yes"/>
+ <point x="489" y="130"/>
+ <point x="428" y="144"/>
+ <point x="330" y="185" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mC_.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mC_.glif
new file mode 100644
index 0000000..7c403fb
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mC_.glif
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmC" format="2">
+ <advance width="1020"/>
+ <unicode hex="0063"/>
+ <anchor x="580" y="0" name="H"/>
+ <anchor x="580" y="-100" name="L"/>
+ <anchor x="1020" y="1000" name="R"/>
+ <anchor x="570" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="905" y="260" type="line"/>
+ <point x="818" y="183"/>
+ <point x="720" y="140"/>
+ <point x="600" y="140" type="curve" smooth="yes"/>
+ <point x="406" y="140"/>
+ <point x="285" y="285"/>
+ <point x="285" y="500" type="curve" smooth="yes"/>
+ <point x="285" y="736"/>
+ <point x="422" y="875"/>
+ <point x="600" y="875" type="curve" smooth="yes"/>
+ <point x="703" y="875"/>
+ <point x="790" y="841"/>
+ <point x="880" y="775" type="curve"/>
+ <point x="915" y="955" type="line"/>
+ <point x="842" y="1005"/>
+ <point x="748" y="1040"/>
+ <point x="615" y="1040" type="curve" smooth="yes"/>
+ <point x="297" y="1040"/>
+ <point x="95" y="792"/>
+ <point x="95" y="490" type="curve" smooth="yes"/>
+ <point x="95" y="171"/>
+ <point x="312" y="-25"/>
+ <point x="580" y="-25" type="curve" smooth="yes"/>
+ <point x="730" y="-25"/>
+ <point x="824" y="9"/>
+ <point x="925" y="85" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mD_.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mD_.glif
new file mode 100644
index 0000000..13547d4
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mD_.glif
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmD" format="2">
+ <advance width="1190"/>
+ <unicode hex="0064"/>
+ <anchor x="605" y="0" name="H"/>
+ <anchor x="605" y="-100" name="L"/>
+ <anchor x="1190" y="1000" name="R"/>
+ <anchor x="605" y="1635" name="U"/>
+ <outline>
+ <contour>
+ <point x="1030" y="1600" type="line"/>
+ <point x="820" y="1600" type="line"/>
+ <point x="839" y="1516"/>
+ <point x="845" y="1395"/>
+ <point x="845" y="1235" type="curve"/>
+ <point x="845" y="955" type="line"/>
+ <point x="767" y="999"/>
+ <point x="665" y="1040"/>
+ <point x="580" y="1040" type="curve" smooth="yes"/>
+ <point x="312" y="1040"/>
+ <point x="105" y="814"/>
+ <point x="105" y="460" type="curve" smooth="yes"/>
+ <point x="105" y="167"/>
+ <point x="261" y="-25"/>
+ <point x="505" y="-25" type="curve" smooth="yes"/>
+ <point x="652" y="-25"/>
+ <point x="775" y="50"/>
+ <point x="870" y="185" type="curve"/>
+ <point x="887" y="111"/>
+ <point x="910" y="34"/>
+ <point x="925" y="0" type="curve"/>
+ <point x="1105" y="0" type="line"/>
+ <point x="1062" y="112"/>
+ <point x="1030" y="278"/>
+ <point x="1030" y="530" type="curve"/>
+ </contour>
+ <contour>
+ <point x="845" y="400" type="line"/>
+ <point x="790" y="268"/>
+ <point x="662" y="135"/>
+ <point x="540" y="135" type="curve" smooth="yes"/>
+ <point x="366" y="135"/>
+ <point x="290" y="258"/>
+ <point x="290" y="490" type="curve" smooth="yes"/>
+ <point x="290" y="727"/>
+ <point x="429" y="870"/>
+ <point x="580" y="870" type="curve" smooth="yes"/>
+ <point x="681" y="870"/>
+ <point x="746" y="848"/>
+ <point x="845" y="795" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mE_.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mE_.glif
new file mode 100644
index 0000000..f231440
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mE_.glif
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmE" format="2">
+ <advance width="1095"/>
+ <unicode hex="0065"/>
+ <anchor x="545" y="0" name="H"/>
+ <anchor x="569" y="-100" name="L"/>
+ <anchor x="925" y="0" name="O"/>
+ <anchor x="1095" y="1000" name="R"/>
+ <anchor x="569" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="989" y="485" type="line"/>
+ <point x="990" y="503"/>
+ <point x="990" y="545"/>
+ <point x="990" y="563" type="curve" smooth="yes"/>
+ <point x="990" y="788"/>
+ <point x="905" y="1040"/>
+ <point x="575" y="1040" type="curve" smooth="yes"/>
+ <point x="279" y="1040"/>
+ <point x="95" y="826"/>
+ <point x="95" y="495" type="curve" smooth="yes"/>
+ <point x="95" y="155"/>
+ <point x="320" y="-25"/>
+ <point x="575" y="-25" type="curve" smooth="yes"/>
+ <point x="729" y="-25"/>
+ <point x="853" y="2"/>
+ <point x="995" y="75" type="curve"/>
+ <point x="975" y="240" type="line"/>
+ <point x="853" y="166"/>
+ <point x="729" y="140"/>
+ <point x="600" y="140" type="curve" smooth="yes"/>
+ <point x="414" y="140"/>
+ <point x="280" y="258"/>
+ <point x="280" y="505" type="curve" smooth="yes"/>
+ <point x="280" y="770"/>
+ <point x="385" y="890"/>
+ <point x="560" y="890" type="curve" smooth="yes"/>
+ <point x="705" y="890"/>
+ <point x="810" y="797"/>
+ <point x="810" y="625" type="curve"/>
+ <point x="245" y="625" type="line"/>
+ <point x="245" y="485" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mF_.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mF_.glif
new file mode 100644
index 0000000..56c0b15
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mF_.glif
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmF" format="2">
+ <advance width="750"/>
+ <unicode hex="0066"/>
+ <anchor x="370" y="0" name="H"/>
+ <anchor x="335" y="-100" name="L"/>
+ <anchor x="560" y="1635" name="U"/>
+ <outline>
+ <contour>
+ <point x="40" y="850" type="line"/>
+ <point x="240" y="850" type="line"/>
+ <point x="240" y="0" type="line"/>
+ <point x="455" y="0" type="line"/>
+ <point x="433" y="105"/>
+ <point x="425" y="300"/>
+ <point x="425" y="494" type="curve" smooth="yes"/>
+ <point x="425" y="850" type="line"/>
+ <point x="695" y="850" type="line"/>
+ <point x="695" y="995" type="line"/>
+ <point x="425" y="995" type="line"/>
+ <point x="425" y="1210" type="line" smooth="yes"/>
+ <point x="425" y="1381"/>
+ <point x="481" y="1450"/>
+ <point x="585" y="1450" type="curve" smooth="yes"/>
+ <point x="643" y="1450"/>
+ <point x="710" y="1427"/>
+ <point x="760" y="1390" type="curve"/>
+ <point x="805" y="1550" type="line"/>
+ <point x="743" y="1594"/>
+ <point x="663" y="1620"/>
+ <point x="585" y="1620" type="curve" smooth="yes"/>
+ <point x="369" y="1620"/>
+ <point x="240" y="1470"/>
+ <point x="240" y="1170" type="curve" smooth="yes"/>
+ <point x="240" y="995" type="line"/>
+ <point x="40" y="995" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mG_.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mG_.glif
new file mode 100644
index 0000000..236da64
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mG_.glif
@@ -0,0 +1,91 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmG" format="2">
+ <advance width="1095"/>
+ <unicode hex="0067"/>
+ <anchor x="545" y="-432" name="H"/>
+ <anchor x="545" y="-535" name="L"/>
+ <anchor x="1095" y="1000" name="R"/>
+ <anchor x="515" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="330" y="395" type="line"/>
+ <point x="234" y="357"/>
+ <point x="180" y="275"/>
+ <point x="180" y="215" type="curve" smooth="yes"/>
+ <point x="180" y="121"/>
+ <point x="263" y="27"/>
+ <point x="545" y="-5" type="curve" smooth="yes"/>
+ <point x="805" y="-35"/>
+ <point x="880" y="-90"/>
+ <point x="880" y="-170" type="curve" smooth="yes"/>
+ <point x="880" y="-255"/>
+ <point x="731" y="-360"/>
+ <point x="550" y="-360" type="curve" smooth="yes"/>
+ <point x="323" y="-360"/>
+ <point x="215" y="-261"/>
+ <point x="215" y="-180" type="curve" smooth="yes"/>
+ <point x="215" y="-121"/>
+ <point x="244" y="-56"/>
+ <point x="465" y="20" type="curve"/>
+ <point x="459" y="49"/>
+ <point x="290" y="75"/>
+ <point x="290" y="75" type="curve"/>
+ <point x="113" y="2"/>
+ <point x="30" y="-89"/>
+ <point x="30" y="-200" type="curve" smooth="yes"/>
+ <point x="30" y="-409"/>
+ <point x="303" y="-505"/>
+ <point x="535" y="-505" type="curve" smooth="yes"/>
+ <point x="777" y="-505"/>
+ <point x="1065" y="-375"/>
+ <point x="1065" y="-160" type="curve" smooth="yes"/>
+ <point x="1065" y="-8"/>
+ <point x="967" y="90"/>
+ <point x="670" y="125" type="curve" smooth="yes"/>
+ <point x="410" y="156"/>
+ <point x="345" y="198"/>
+ <point x="345" y="235" type="curve" smooth="yes"/>
+ <point x="345" y="271"/>
+ <point x="384" y="316"/>
+ <point x="500" y="350" type="curve"/>
+ </contour>
+ <contour>
+ <point x="1050" y="1040" type="line"/>
+ <point x="951" y="1033"/>
+ <point x="819" y="997"/>
+ <point x="730" y="940" type="curve"/>
+ <point x="795" y="825" type="line"/>
+ <point x="887" y="863"/>
+ <point x="967" y="878"/>
+ <point x="1040" y="880" type="curve"/>
+ </contour>
+ <contour>
+ <point x="115" y="680" type="curve" smooth="yes"/>
+ <point x="115" y="476"/>
+ <point x="289" y="325"/>
+ <point x="515" y="325" type="curve" smooth="yes"/>
+ <point x="742" y="325"/>
+ <point x="915" y="476"/>
+ <point x="915" y="680" type="curve" smooth="yes"/>
+ <point x="915" y="884"/>
+ <point x="742" y="1040"/>
+ <point x="515" y="1040" type="curve" smooth="yes"/>
+ <point x="289" y="1040"/>
+ <point x="115" y="884"/>
+ </contour>
+ <contour>
+ <point x="285" y="680" type="curve" smooth="yes"/>
+ <point x="285" y="803"/>
+ <point x="382" y="895"/>
+ <point x="515" y="895" type="curve" smooth="yes"/>
+ <point x="649" y="895"/>
+ <point x="745" y="803"/>
+ <point x="745" y="680" type="curve" smooth="yes"/>
+ <point x="745" y="557"/>
+ <point x="649" y="465"/>
+ <point x="515" y="465" type="curve" smooth="yes"/>
+ <point x="382" y="465"/>
+ <point x="285" y="557"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mH_.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mH_.glif
new file mode 100644
index 0000000..bad060c
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mH_.glif
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmH" format="2">
+ <advance width="1175"/>
+ <unicode hex="0068"/>
+ <anchor x="250" y="0" name="H"/>
+ <anchor x="585" y="-100" name="L"/>
+ <anchor x="585" y="1635" name="U"/>
+ <outline>
+ <contour>
+ <point x="1040" y="0" type="line"/>
+ <point x="1040" y="0"/>
+ <point x="1040" y="459"/>
+ <point x="1040" y="625" type="curve" smooth="yes"/>
+ <point x="1040" y="900"/>
+ <point x="923" y="1040"/>
+ <point x="710" y="1040" type="curve" smooth="yes"/>
+ <point x="570" y="1040"/>
+ <point x="428" y="969"/>
+ <point x="330" y="830" type="curve"/>
+ <point x="330" y="877"/>
+ <point x="330" y="1600"/>
+ <point x="330" y="1600" type="curve"/>
+ <point x="130" y="1600" type="line"/>
+ <point x="145" y="1514"/>
+ <point x="145" y="1345"/>
+ <point x="145" y="1130" type="curve" smooth="yes"/>
+ <point x="145" y="935"/>
+ <point x="145" y="0"/>
+ <point x="145" y="0" type="curve"/>
+ <point x="330" y="0" type="line"/>
+ <point x="330" y="580" type="line"/>
+ <point x="374" y="716"/>
+ <point x="511" y="865"/>
+ <point x="655" y="865" type="curve" smooth="yes"/>
+ <point x="789" y="865"/>
+ <point x="855" y="800"/>
+ <point x="855" y="550" type="curve" smooth="yes"/>
+ <point x="855" y="413"/>
+ <point x="855" y="0"/>
+ <point x="855" y="0" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mI_.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mI_.glif
new file mode 100644
index 0000000..369347b
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mI_.glif
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmI" format="2">
+ <advance width="565"/>
+ <unicode hex="0069"/>
+ <anchor x="282" y="0" name="H"/>
+ <anchor x="285" y="-100" name="L"/>
+ <anchor x="500" y="0" name="O"/>
+ <anchor x="555" y="1000" name="R"/>
+ <anchor x="282" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="375" y="1020" type="line"/>
+ <point x="175" y="1020" type="line"/>
+ <point x="188" y="915"/>
+ <point x="190" y="725"/>
+ <point x="190" y="530" type="curve" smooth="yes"/>
+ <point x="190" y="336"/>
+ <point x="190" y="0"/>
+ <point x="190" y="0" type="curve"/>
+ <point x="395" y="0" type="line"/>
+ <point x="382" y="107"/>
+ <point x="375" y="346"/>
+ <point x="375" y="475" type="curve" smooth="yes"/>
+ </contour>
+ <contour>
+ <point x="155" y="1345" type="curve" smooth="yes"/>
+ <point x="155" y="1271"/>
+ <point x="206" y="1210"/>
+ <point x="280" y="1210" type="curve" smooth="yes"/>
+ <point x="355" y="1210"/>
+ <point x="410" y="1271"/>
+ <point x="410" y="1345" type="curve" smooth="yes"/>
+ <point x="410" y="1419"/>
+ <point x="355" y="1480"/>
+ <point x="280" y="1480" type="curve" smooth="yes"/>
+ <point x="206" y="1480"/>
+ <point x="155" y="1419"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mJ_.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mJ_.glif
new file mode 100644
index 0000000..87f74c6
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mJ_.glif
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmJ" format="2">
+ <advance width="595"/>
+ <unicode hex="006A"/>
+ <anchor x="125" y="-500" name="L"/>
+ <anchor x="313" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="405" y="1020" type="line"/>
+ <point x="205" y="1020" type="line"/>
+ <point x="218" y="915"/>
+ <point x="220" y="725"/>
+ <point x="220" y="530" type="curve"/>
+ <point x="220" y="-25" type="line"/>
+ <point x="220" y="-222"/>
+ <point x="147" y="-300"/>
+ <point x="40" y="-300" type="curve" smooth="yes"/>
+ <point x="-16" y="-300"/>
+ <point x="-111" y="-273"/>
+ <point x="-155" y="-240" type="curve"/>
+ <point x="-190" y="-405" type="line"/>
+ <point x="-130" y="-446"/>
+ <point x="-26" y="-470"/>
+ <point x="30" y="-470" type="curve" smooth="yes"/>
+ <point x="258" y="-470"/>
+ <point x="405" y="-348"/>
+ <point x="405" y="25" type="curve" smooth="yes"/>
+ </contour>
+ <contour>
+ <point x="185" y="1345" type="curve" smooth="yes"/>
+ <point x="185" y="1271"/>
+ <point x="236" y="1210"/>
+ <point x="310" y="1210" type="curve" smooth="yes"/>
+ <point x="385" y="1210"/>
+ <point x="440" y="1271"/>
+ <point x="440" y="1345" type="curve" smooth="yes"/>
+ <point x="440" y="1419"/>
+ <point x="385" y="1480"/>
+ <point x="310" y="1480" type="curve" smooth="yes"/>
+ <point x="236" y="1480"/>
+ <point x="185" y="1419"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mK_.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mK_.glif
new file mode 100644
index 0000000..d1b00cb
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mK_.glif
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmK" format="2">
+ <advance width="1035"/>
+ <unicode hex="006B"/>
+ <guideline x="500" y="774" angle="314"/>
+ <anchor x="243" y="0" name="H"/>
+ <anchor x="572" y="-100" name="L"/>
+ <anchor x="1035" y="1000" name="R"/>
+ <anchor x="572" y="1635" name="U"/>
+ <outline>
+ <contour>
+ <point x="330" y="0" type="line"/>
+ <point x="330" y="1600" type="line"/>
+ <point x="130" y="1600" type="line"/>
+ <point x="145" y="1514"/>
+ <point x="145" y="1345"/>
+ <point x="145" y="1130" type="curve" smooth="yes"/>
+ <point x="145" y="934"/>
+ <point x="145" y="0"/>
+ <point x="145" y="0" type="curve"/>
+ </contour>
+ <contour>
+ <point x="735" y="1020" type="line"/>
+ <point x="280" y="550" type="line"/>
+ <point x="436" y="524" type="line"/>
+ <point x="985" y="1020" type="line"/>
+ </contour>
+ <contour>
+ <point x="305" y="550" type="line"/>
+ <point x="770" y="0" type="line"/>
+ <point x="1015" y="0" type="line"/>
+ <point x="410" y="660" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mL_.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mL_.glif
new file mode 100644
index 0000000..4378793
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mL_.glif
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmL" format="2">
+ <advance width="565"/>
+ <unicode hex="006C"/>
+ <guideline x="500" y="874" angle="340"/>
+ <anchor x="290" y="0" name="H"/>
+ <anchor x="290" y="-100" name="L"/>
+ <anchor x="550" y="1000" name="R"/>
+ <anchor x="282" y="1635" name="U"/>
+ <outline>
+ <contour>
+ <point x="375" y="1600" type="line"/>
+ <point x="170" y="1600" type="line"/>
+ <point x="183" y="1485"/>
+ <point x="190" y="1324"/>
+ <point x="190" y="1130" type="curve"/>
+ <point x="190" y="0" type="line"/>
+ <point x="395" y="0" type="line"/>
+ <point x="382" y="109"/>
+ <point x="375" y="346"/>
+ <point x="375" y="475" type="curve" smooth="yes"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mM_.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mM_.glif
new file mode 100644
index 0000000..4498bb1
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mM_.glif
@@ -0,0 +1,52 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmM" format="2">
+ <advance width="1685"/>
+ <unicode hex="006D"/>
+ <anchor x="1450" y="0" name="H"/>
+ <anchor x="865" y="-100" name="L"/>
+ <anchor x="865" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="945" y="660" type="line"/>
+ <point x="1003" y="785"/>
+ <point x="1102" y="865"/>
+ <point x="1200" y="865" type="curve" smooth="yes"/>
+ <point x="1312" y="865"/>
+ <point x="1345" y="808"/>
+ <point x="1345" y="550" type="curve" smooth="yes"/>
+ <point x="1345" y="0" type="line"/>
+ <point x="1530" y="0" type="line"/>
+ <point x="1530" y="660" type="line" smooth="yes"/>
+ <point x="1530" y="907"/>
+ <point x="1463" y="1040"/>
+ <point x="1260" y="1040" type="curve" smooth="yes"/>
+ <point x="1155" y="1040"/>
+ <point x="1046" y="1007"/>
+ <point x="921" y="872" type="curve"/>
+ <point x="888" y="960"/>
+ <point x="806" y="1040"/>
+ <point x="675" y="1040" type="curve" smooth="yes"/>
+ <point x="560" y="1040"/>
+ <point x="459" y="1006"/>
+ <point x="337" y="865" type="curve"/>
+ <point x="330" y="913"/>
+ <point x="320" y="978"/>
+ <point x="305" y="1020" type="curve"/>
+ <point x="125" y="1020" type="line"/>
+ <point x="146" y="951"/>
+ <point x="175" y="811"/>
+ <point x="175" y="615" type="curve" smooth="yes"/>
+ <point x="175" y="0" type="line"/>
+ <point x="360" y="0" type="line"/>
+ <point x="360" y="660" type="line"/>
+ <point x="413" y="780"/>
+ <point x="517" y="865"/>
+ <point x="615" y="865" type="curve" smooth="yes"/>
+ <point x="727" y="865"/>
+ <point x="760" y="818"/>
+ <point x="760" y="570" type="curve" smooth="yes"/>
+ <point x="760" y="0" type="line"/>
+ <point x="945" y="0" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mN_.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mN_.glif
new file mode 100644
index 0000000..5534dd8
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mN_.glif
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmN" format="2">
+ <advance width="1185"/>
+ <unicode hex="006E"/>
+ <anchor x="970" y="0" name="H"/>
+ <anchor x="600" y="-100" name="L"/>
+ <anchor x="600" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="1050" y="0" type="line"/>
+ <point x="1050" y="0"/>
+ <point x="1050" y="459"/>
+ <point x="1050" y="625" type="curve" smooth="yes"/>
+ <point x="1050" y="900"/>
+ <point x="933" y="1040"/>
+ <point x="720" y="1040" type="curve" smooth="yes"/>
+ <point x="579" y="1040"/>
+ <point x="452" y="977"/>
+ <point x="325" y="825" type="curve"/>
+ <point x="318" y="873"/>
+ <point x="300" y="978"/>
+ <point x="285" y="1020" type="curve"/>
+ <point x="105" y="1020" type="line"/>
+ <point x="127" y="951"/>
+ <point x="155" y="811"/>
+ <point x="155" y="615" type="curve" smooth="yes"/>
+ <point x="155" y="420"/>
+ <point x="155" y="0"/>
+ <point x="155" y="0" type="curve"/>
+ <point x="340" y="0" type="line"/>
+ <point x="340" y="580" type="line"/>
+ <point x="384" y="716"/>
+ <point x="521" y="865"/>
+ <point x="665" y="865" type="curve" smooth="yes"/>
+ <point x="800" y="865"/>
+ <point x="865" y="800"/>
+ <point x="865" y="550" type="curve" smooth="yes"/>
+ <point x="865" y="413"/>
+ <point x="865" y="0"/>
+ <point x="865" y="0" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mO_.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mO_.glif
new file mode 100644
index 0000000..ee9b6c6
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mO_.glif
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmO" format="2">
+ <advance width="1140"/>
+ <unicode hex="006F"/>
+ <anchor x="570" y="0" name="H"/>
+ <anchor x="570" y="-100" name="L"/>
+ <anchor x="835" y="0" name="O"/>
+ <anchor x="1140" y="1000" name="R"/>
+ <anchor x="570" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="95" y="505" type="curve" smooth="yes"/>
+ <point x="95" y="161"/>
+ <point x="286" y="-25"/>
+ <point x="560" y="-25" type="curve" smooth="yes"/>
+ <point x="823" y="-25"/>
+ <point x="1045" y="161"/>
+ <point x="1045" y="505" type="curve" smooth="yes"/>
+ <point x="1045" y="849"/>
+ <point x="855" y="1040"/>
+ <point x="580" y="1040" type="curve" smooth="yes"/>
+ <point x="317" y="1040"/>
+ <point x="95" y="849"/>
+ </contour>
+ <contour>
+ <point x="280" y="505" type="curve" smooth="yes"/>
+ <point x="280" y="739"/>
+ <point x="408" y="880"/>
+ <point x="570" y="880" type="curve" smooth="yes"/>
+ <point x="742" y="880"/>
+ <point x="860" y="739"/>
+ <point x="860" y="505" type="curve" smooth="yes"/>
+ <point x="860" y="272"/>
+ <point x="731" y="135"/>
+ <point x="570" y="135" type="curve" smooth="yes"/>
+ <point x="398" y="135"/>
+ <point x="280" y="272"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mP_.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mP_.glif
new file mode 100644
index 0000000..e960bc9
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mP_.glif
@@ -0,0 +1,56 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmP" format="2">
+ <advance width="1170"/>
+ <unicode hex="0070"/>
+ <guideline x="214" y="-490" angle="0"/>
+ <anchor x="265" y="-435" name="H"/>
+ <anchor x="590" y="-500" name="L"/>
+ <anchor x="1170" y="1000" name="R"/>
+ <anchor x="590" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="105" y="1020" type="line"/>
+ <point x="150" y="907"/>
+ <point x="155" y="734"/>
+ <point x="155" y="485" type="curve" smooth="yes"/>
+ <point x="155" y="291"/>
+ <point x="155" y="-490"/>
+ <point x="155" y="-490" type="curve"/>
+ <point x="365" y="-490" type="line"/>
+ <point x="348" y="-405"/>
+ <point x="340" y="-310"/>
+ <point x="340" y="-150" type="curve"/>
+ <point x="340" y="85" type="line"/>
+ <point x="435" y="18"/>
+ <point x="513" y="-25"/>
+ <point x="620" y="-25" type="curve" smooth="yes"/>
+ <point x="871" y="-25"/>
+ <point x="1075" y="193"/>
+ <point x="1075" y="535" type="curve" smooth="yes"/>
+ <point x="1075" y="828"/>
+ <point x="923" y="1040"/>
+ <point x="695" y="1040" type="curve" smooth="yes"/>
+ <point x="547" y="1040"/>
+ <point x="419" y="954"/>
+ <point x="325" y="830" type="curve"/>
+ <point x="316" y="922"/>
+ <point x="300" y="986"/>
+ <point x="285" y="1020" type="curve"/>
+ </contour>
+ <contour>
+ <point x="340" y="575" type="line"/>
+ <point x="414" y="768"/>
+ <point x="545" y="870"/>
+ <point x="660" y="870" type="curve" smooth="yes"/>
+ <point x="804" y="870"/>
+ <point x="890" y="727"/>
+ <point x="890" y="505" type="curve" smooth="yes"/>
+ <point x="890" y="279"/>
+ <point x="761" y="140"/>
+ <point x="620" y="140" type="curve" smooth="yes"/>
+ <point x="528" y="140"/>
+ <point x="477" y="164"/>
+ <point x="340" y="260" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mQ_.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mQ_.glif
new file mode 100644
index 0000000..1da1d6a
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mQ_.glif
@@ -0,0 +1,47 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmQ" format="2">
+ <advance width="1130"/>
+ <unicode hex="0071"/>
+ <anchor x="555" y="-500" name="L"/>
+ <anchor x="1130" y="1000" name="R"/>
+ <anchor x="555" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="795" y="-490" type="line"/>
+ <point x="1005" y="-490" type="line"/>
+ <point x="988" y="-405"/>
+ <point x="980" y="-310"/>
+ <point x="980" y="-150" type="curve" smooth="yes"/>
+ <point x="980" y="-26"/>
+ <point x="980" y="965"/>
+ <point x="980" y="965" type="curve"/>
+ <point x="872" y="1001"/>
+ <point x="746" y="1040"/>
+ <point x="625" y="1040" type="curve" smooth="yes"/>
+ <point x="260" y="1040"/>
+ <point x="105" y="742"/>
+ <point x="105" y="435" type="curve" smooth="yes"/>
+ <point x="105" y="117"/>
+ <point x="321" y="-25"/>
+ <point x="505" y="-25" type="curve" smooth="yes"/>
+ <point x="598" y="-25"/>
+ <point x="691" y="19"/>
+ <point x="795" y="140" type="curve"/>
+ </contour>
+ <contour>
+ <point x="795" y="365" type="line"/>
+ <point x="713" y="219"/>
+ <point x="612" y="145"/>
+ <point x="520" y="145" type="curve" smooth="yes"/>
+ <point x="412" y="145"/>
+ <point x="290" y="237"/>
+ <point x="290" y="485" type="curve" smooth="yes"/>
+ <point x="290" y="674"/>
+ <point x="376" y="870"/>
+ <point x="595" y="870" type="curve" smooth="yes"/>
+ <point x="656" y="870"/>
+ <point x="735" y="853"/>
+ <point x="795" y="830" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mR_.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mR_.glif
new file mode 100644
index 0000000..0f090a4
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mR_.glif
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmR" format="2">
+ <advance width="890"/>
+ <unicode hex="0072"/>
+ <guideline x="214" y="500" angle="0"/>
+ <anchor x="270" y="0" name="H"/>
+ <anchor x="255" y="-100" name="L"/>
+ <anchor x="455" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="340" y="0" type="line"/>
+ <point x="340" y="580" type="line"/>
+ <point x="384" y="716"/>
+ <point x="521" y="860"/>
+ <point x="605" y="860" type="curve" smooth="yes"/>
+ <point x="684" y="860"/>
+ <point x="720" y="770"/>
+ <point x="720" y="670" type="curve"/>
+ <point x="880" y="705" type="line"/>
+ <point x="880" y="880"/>
+ <point x="817" y="1040"/>
+ <point x="650" y="1040" type="curve" smooth="yes"/>
+ <point x="559" y="1040"/>
+ <point x="422" y="964"/>
+ <point x="325" y="825" type="curve"/>
+ <point x="318" y="873"/>
+ <point x="300" y="978"/>
+ <point x="285" y="1020" type="curve"/>
+ <point x="105" y="1020" type="line"/>
+ <point x="127" y="951"/>
+ <point x="155" y="811"/>
+ <point x="155" y="615" type="curve" smooth="yes"/>
+ <point x="155" y="0" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mS_.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mS_.glif
new file mode 100644
index 0000000..ea1e7ba
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mS_.glif
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmS" format="2">
+ <advance width="965"/>
+ <unicode hex="0073"/>
+ <anchor x="495" y="0" name="H"/>
+ <anchor x="495" y="-100" name="L"/>
+ <anchor x="495" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="835" y="960" type="line"/>
+ <point x="766" y="998"/>
+ <point x="660" y="1040"/>
+ <point x="515" y="1040" type="curve" smooth="yes"/>
+ <point x="211" y="1040"/>
+ <point x="130" y="832"/>
+ <point x="130" y="740" type="curve" smooth="yes"/>
+ <point x="130" y="616"/>
+ <point x="182" y="514"/>
+ <point x="425" y="455" type="curve" smooth="yes"/>
+ <point x="649" y="400"/>
+ <point x="700" y="345"/>
+ <point x="700" y="270" type="curve" smooth="yes"/>
+ <point x="700" y="201"/>
+ <point x="617" y="135"/>
+ <point x="500" y="135" type="curve" smooth="yes"/>
+ <point x="394" y="135"/>
+ <point x="250" y="189"/>
+ <point x="160" y="270" type="curve"/>
+ <point x="110" y="90" type="line"/>
+ <point x="189" y="28"/>
+ <point x="333" y="-25"/>
+ <point x="495" y="-25" type="curve" smooth="yes"/>
+ <point x="710" y="-25"/>
+ <point x="880" y="115"/>
+ <point x="880" y="295" type="curve" smooth="yes"/>
+ <point x="880" y="481"/>
+ <point x="731" y="559"/>
+ <point x="550" y="600" type="curve" smooth="yes"/>
+ <point x="340" y="648"/>
+ <point x="310" y="680"/>
+ <point x="310" y="750" type="curve" smooth="yes"/>
+ <point x="310" y="810"/>
+ <point x="358" y="880"/>
+ <point x="505" y="880" type="curve" smooth="yes"/>
+ <point x="629" y="880"/>
+ <point x="733" y="824"/>
+ <point x="800" y="785" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mT_.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mT_.glif
new file mode 100644
index 0000000..45d6b50
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mT_.glif
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmT" format="2">
+ <advance width="835"/>
+ <unicode hex="0074"/>
+ <anchor x="475" y="0" name="H"/>
+ <anchor x="475" y="-100" name="L"/>
+ <anchor x="835" y="1000" name="R"/>
+ <anchor x="325" y="1360" name="U"/>
+ <outline>
+ <contour>
+ <point x="760" y="215" type="line"/>
+ <point x="672" y="166"/>
+ <point x="600" y="140"/>
+ <point x="543" y="140" type="curve" smooth="yes"/>
+ <point x="453" y="140"/>
+ <point x="415" y="184"/>
+ <point x="415" y="390" type="curve" smooth="yes"/>
+ <point x="415" y="528"/>
+ <point x="415" y="1320"/>
+ <point x="415" y="1320" type="curve"/>
+ <point x="230" y="1320" type="line"/>
+ <point x="230" y="1320"/>
+ <point x="230" y="435"/>
+ <point x="230" y="270" type="curve" smooth="yes"/>
+ <point x="230" y="39"/>
+ <point x="356" y="-25"/>
+ <point x="512" y="-25" type="curve" smooth="yes"/>
+ <point x="582" y="-25"/>
+ <point x="668" y="-4"/>
+ <point x="760" y="55" type="curve"/>
+ </contour>
+ <contour>
+ <point x="30" y="850" type="line"/>
+ <point x="740" y="850" type="line"/>
+ <point x="740" y="995" type="line"/>
+ <point x="30" y="995" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mU_.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mU_.glif
new file mode 100644
index 0000000..39609ad
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mU_.glif
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmU" format="2">
+ <advance width="1185"/>
+ <unicode hex="0075"/>
+ <anchor x="589" y="0" name="H"/>
+ <anchor x="589" y="-100" name="L"/>
+ <anchor x="1192" y="0" name="O"/>
+ <anchor x="1185" y="1000" name="R"/>
+ <anchor x="589" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="1090" y="0" type="line"/>
+ <point x="1048" y="112"/>
+ <point x="1025" y="256"/>
+ <point x="1025" y="450" type="curve" smooth="yes"/>
+ <point x="1025" y="646"/>
+ <point x="1025" y="1020"/>
+ <point x="1025" y="1020" type="curve"/>
+ <point x="820" y="1020" type="line"/>
+ <point x="838" y="898"/>
+ <point x="840" y="832"/>
+ <point x="840" y="700" type="curve" smooth="yes"/>
+ <point x="840" y="420" type="line"/>
+ <point x="787" y="298"/>
+ <point x="628" y="140"/>
+ <point x="510" y="140" type="curve" smooth="yes"/>
+ <point x="383" y="140"/>
+ <point x="340" y="238"/>
+ <point x="340" y="465" type="curve" smooth="yes"/>
+ <point x="340" y="603"/>
+ <point x="340" y="1020"/>
+ <point x="340" y="1020" type="curve"/>
+ <point x="135" y="1020" type="line"/>
+ <point x="153" y="900"/>
+ <point x="155" y="827"/>
+ <point x="155" y="700" type="curve" smooth="yes"/>
+ <point x="155" y="681"/>
+ <point x="155" y="424"/>
+ <point x="155" y="405" type="curve" smooth="yes"/>
+ <point x="155" y="120"/>
+ <point x="262" y="-25"/>
+ <point x="475" y="-25" type="curve" smooth="yes"/>
+ <point x="615" y="-25"/>
+ <point x="744" y="53"/>
+ <point x="865" y="200" type="curve"/>
+ <point x="875" y="125"/>
+ <point x="901" y="46"/>
+ <point x="920" y="0" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mV_.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mV_.glif
new file mode 100644
index 0000000..3097f4b
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mV_.glif
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmV" format="2">
+ <advance width="1070"/>
+ <unicode hex="0076"/>
+ <anchor x="549" y="0" name="H"/>
+ <anchor x="535" y="-100" name="L"/>
+ <anchor x="725" y="0" name="O"/>
+ <anchor x="535" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="840" y="1020" type="line"/>
+ <point x="535" y="200" type="line"/>
+ <point x="230" y="1020" type="line"/>
+ <point x="20" y="1020" type="line"/>
+ <point x="75" y="905"/>
+ <point x="143" y="746"/>
+ <point x="175" y="665" type="curve" smooth="yes"/>
+ <point x="237" y="510"/>
+ <point x="440" y="0"/>
+ <point x="440" y="0" type="curve"/>
+ <point x="630" y="0" type="line"/>
+ <point x="630" y="0"/>
+ <point x="842" y="536"/>
+ <point x="895" y="665" type="curve" smooth="yes"/>
+ <point x="928" y="744"/>
+ <point x="993" y="905"/>
+ <point x="1050" y="1020" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mW_.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mW_.glif
new file mode 100644
index 0000000..3557415
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mW_.glif
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmW" format="2">
+ <advance width="1550"/>
+ <unicode hex="0077"/>
+ <anchor x="775" y="-100" name="L"/>
+ <anchor x="775" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="700" y="1020" type="line"/>
+ <point x="440" y="215" type="line"/>
+ <point x="230" y="1020" type="line"/>
+ <point x="45" y="1020" type="line"/>
+ <point x="92" y="867"/>
+ <point x="120" y="771"/>
+ <point x="150" y="665" type="curve" smooth="yes"/>
+ <point x="335" y="0" type="line"/>
+ <point x="525" y="0" type="line"/>
+ <point x="775" y="785" type="line"/>
+ <point x="1025" y="0" type="line"/>
+ <point x="1215" y="0" type="line"/>
+ <point x="1400" y="665" type="line" smooth="yes"/>
+ <point x="1434" y="785"/>
+ <point x="1458" y="868"/>
+ <point x="1505" y="1020" type="curve"/>
+ <point x="1320" y="1020" type="line"/>
+ <point x="1110" y="215" type="line"/>
+ <point x="850" y="1020" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mX_.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mX_.glif
new file mode 100644
index 0000000..883cba4
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mX_.glif
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmX" format="2">
+ <advance width="1085"/>
+ <unicode hex="0078"/>
+ <anchor x="900" y="0" name="H"/>
+ <anchor x="542" y="-100" name="L"/>
+ <anchor x="542" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="805" y="0" type="line"/>
+ <point x="1035" y="0" type="line"/>
+ <point x="927" y="142"/>
+ <point x="902" y="170"/>
+ <point x="830" y="270" type="curve" smooth="yes"/>
+ <point x="290" y="1020" type="line"/>
+ <point x="60" y="1020" type="line"/>
+ <point x="168" y="887"/>
+ <point x="203" y="843"/>
+ <point x="270" y="750" type="curve"/>
+ </contour>
+ <contour>
+ <point x="489" y="616" type="line"/>
+ <point x="250" y="270" type="line" smooth="yes"/>
+ <point x="189" y="182"/>
+ <point x="160" y="143"/>
+ <point x="50" y="0" type="curve"/>
+ <point x="275" y="0" type="line"/>
+ <point x="556" y="404" type="line"/>
+ </contour>
+ <contour>
+ <point x="585" y="405" type="line"/>
+ <point x="820" y="750" type="line" smooth="yes"/>
+ <point x="883" y="842"/>
+ <point x="917" y="886"/>
+ <point x="1020" y="1020" type="curve"/>
+ <point x="795" y="1020" type="line"/>
+ <point x="520" y="615" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mY_.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mY_.glif
new file mode 100644
index 0000000..cbe0f68
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/L_tnS_mY_.glif
@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmY" format="2">
+ <advance width="1060"/>
+ <unicode hex="0079"/>
+ <anchor x="795" y="-100" name="L"/>
+ <anchor x="1120" y="1000" name="R"/>
+ <anchor x="535" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="610" y="60" type="line"/>
+ <point x="230" y="1020" type="line"/>
+ <point x="30" y="1020" type="line"/>
+ <point x="107" y="864"/>
+ <point x="153" y="756"/>
+ <point x="190" y="665" type="curve" smooth="yes"/>
+ <point x="525" y="-165" type="line"/>
+ </contour>
+ <contour>
+ <point x="895" y="665" type="line"/>
+ <point x="928" y="758"/>
+ <point x="971" y="865"/>
+ <point x="1040" y="1020" type="curve"/>
+ <point x="840" y="1020" type="line"/>
+ <point x="840" y="1020"/>
+ <point x="564" y="230"/>
+ <point x="500" y="55" type="curve" smooth="yes"/>
+ <point x="391" y="-248"/>
+ <point x="315" y="-300"/>
+ <point x="225" y="-300" type="curve" smooth="yes"/>
+ <point x="159" y="-300"/>
+ <point x="82" y="-260"/>
+ <point x="40" y="-225" type="curve"/>
+ <point x="-20" y="-385" type="line"/>
+ <point x="53" y="-439"/>
+ <point x="134" y="-470"/>
+ <point x="225" y="-470" type="curve" smooth="yes"/>
+ <point x="395" y="-470"/>
+ <point x="516" y="-383"/>
+ <point x="655" y="0" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/N_onB_reakingH_yphen.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/N_onB_reakingH_yphen.glif
new file mode 100644
index 0000000..14aff81
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/N_onB_reakingH_yphen.glif
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="NonBreakingHyphen" format="2">
+ <advance width="860"/>
+ <unicode hex="2011"/>
+ <anchor x="430" y="1100" name="U"/>
+ <outline>
+ <component base="HyphenMinus"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/N_umS_gn.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/N_umS_gn.glif
new file mode 100644
index 0000000..f4625db
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/N_umS_gn.glif
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="NumSgn" format="2">
+ <advance width="1200"/>
+ <unicode hex="0023"/>
+ <outline>
+ <contour>
+ <point x="487" y="1460" type="line"/>
+ <point x="127" y="200" type="line"/>
+ <point x="277" y="200" type="line"/>
+ <point x="637" y="1460" type="line"/>
+ </contour>
+ <contour>
+ <point x="25" y="575" type="line"/>
+ <point x="1116" y="575" type="line"/>
+ <point x="1116" y="725" type="line"/>
+ <point x="25" y="725" type="line"/>
+ </contour>
+ <contour>
+ <point x="84" y="960" type="line"/>
+ <point x="1175" y="960" type="line"/>
+ <point x="1175" y="1110" type="line"/>
+ <point x="84" y="1110" type="line"/>
+ </contour>
+ <contour>
+ <point x="912" y="1460" type="line"/>
+ <point x="552" y="200" type="line"/>
+ <point x="702" y="200" type="line"/>
+ <point x="1062" y="1460" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/P_ercentS_gn.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/P_ercentS_gn.glif
new file mode 100644
index 0000000..e81f237
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/P_ercentS_gn.glif
@@ -0,0 +1,69 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="PercentSgn" format="2">
+ <advance width="1526"/>
+ <unicode hex="0025"/>
+ <outline>
+ <contour>
+ <point x="1261" y="366" type="curve" smooth="yes"/>
+ <point x="1261" y="182"/>
+ <point x="1216" y="115"/>
+ <point x="1130" y="115" type="curve" smooth="yes"/>
+ <point x="1041" y="115"/>
+ <point x="1001" y="181"/>
+ <point x="1001" y="381" type="curve" smooth="yes"/>
+ <point x="1001" y="565"/>
+ <point x="1043" y="630"/>
+ <point x="1130" y="630" type="curve" smooth="yes"/>
+ <point x="1221" y="630"/>
+ <point x="1261" y="566"/>
+ </contour>
+ <contour>
+ <point x="1426" y="379" type="curve" smooth="yes"/>
+ <point x="1426" y="652"/>
+ <point x="1310" y="770"/>
+ <point x="1135" y="770" type="curve" smooth="yes"/>
+ <point x="961" y="770"/>
+ <point x="836" y="650"/>
+ <point x="836" y="368" type="curve" smooth="yes"/>
+ <point x="836" y="86"/>
+ <point x="951" y="-25"/>
+ <point x="1126" y="-25" type="curve" smooth="yes"/>
+ <point x="1301" y="-25"/>
+ <point x="1426" y="84"/>
+ </contour>
+ <contour>
+ <point x="1073" y="1480" type="line"/>
+ <point x="291" y="-25" type="line"/>
+ <point x="459" y="-25" type="line"/>
+ <point x="1239" y="1480" type="line"/>
+ </contour>
+ <contour>
+ <point x="525" y="1076" type="curve" smooth="yes"/>
+ <point x="525" y="892"/>
+ <point x="480" y="825"/>
+ <point x="394" y="825" type="curve" smooth="yes"/>
+ <point x="305" y="825"/>
+ <point x="265" y="891"/>
+ <point x="265" y="1091" type="curve" smooth="yes"/>
+ <point x="265" y="1275"/>
+ <point x="307" y="1340"/>
+ <point x="394" y="1340" type="curve" smooth="yes"/>
+ <point x="485" y="1340"/>
+ <point x="525" y="1276"/>
+ </contour>
+ <contour>
+ <point x="690" y="1089" type="curve" smooth="yes"/>
+ <point x="690" y="1362"/>
+ <point x="574" y="1480"/>
+ <point x="399" y="1480" type="curve" smooth="yes"/>
+ <point x="225" y="1480"/>
+ <point x="100" y="1360"/>
+ <point x="100" y="1078" type="curve" smooth="yes"/>
+ <point x="100" y="796"/>
+ <point x="215" y="685"/>
+ <point x="390" y="685" type="curve" smooth="yes"/>
+ <point x="565" y="685"/>
+ <point x="690" y="794"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/P_lusS_gn.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/P_lusS_gn.glif
new file mode 100644
index 0000000..de1f259
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/P_lusS_gn.glif
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="PlusSgn" format="2">
+ <advance width="1200"/>
+ <unicode hex="002B"/>
+ <outline>
+ <contour>
+ <point x="525" y="1180" type="line"/>
+ <point x="525" y="285" type="line"/>
+ <point x="675" y="285" type="line"/>
+ <point x="675" y="1180" type="line"/>
+ </contour>
+ <contour>
+ <point x="155" y="660" type="line"/>
+ <point x="1045" y="660" type="line"/>
+ <point x="1045" y="810" type="line"/>
+ <point x="155" y="810" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/Q_stnM_rk.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/Q_stnM_rk.glif
new file mode 100644
index 0000000..5526aec
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/Q_stnM_rk.glif
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="QstnMrk" format="2">
+ <advance width="1050"/>
+ <unicode hex="003F"/>
+ <outline>
+ <contour>
+ <point x="460" y="1540" type="curve" smooth="yes"/>
+ <point x="335" y="1540"/>
+ <point x="206" y="1493"/>
+ <point x="140" y="1430" type="curve"/>
+ <point x="185" y="1251" type="line"/>
+ <point x="261" y="1330"/>
+ <point x="352" y="1365"/>
+ <point x="432" y="1365" type="curve" smooth="yes"/>
+ <point x="579" y="1365"/>
+ <point x="625" y="1289"/>
+ <point x="625" y="1230" type="curve" smooth="yes"/>
+ <point x="625" y="1159"/>
+ <point x="572" y="1092"/>
+ <point x="485" y="980" type="curve" smooth="yes"/>
+ <point x="397" y="867"/>
+ <point x="355" y="730"/>
+ <point x="355" y="440" type="curve"/>
+ <point x="540" y="440" type="line"/>
+ <point x="540" y="721"/>
+ <point x="561" y="806"/>
+ <point x="665" y="927" type="curve" smooth="yes"/>
+ <point x="753" y="1028"/>
+ <point x="830" y="1117"/>
+ <point x="830" y="1240" type="curve" smooth="yes"/>
+ <point x="830" y="1422"/>
+ <point x="697" y="1540"/>
+ </contour>
+ <contour>
+ <point x="315" y="110" type="curve" smooth="yes"/>
+ <point x="315" y="36"/>
+ <point x="376" y="-25"/>
+ <point x="450" y="-25" type="curve" smooth="yes"/>
+ <point x="524" y="-25"/>
+ <point x="585" y="36"/>
+ <point x="585" y="110" type="curve" smooth="yes"/>
+ <point x="585" y="184"/>
+ <point x="524" y="245"/>
+ <point x="450" y="245" type="curve" smooth="yes"/>
+ <point x="376" y="245"/>
+ <point x="315" y="184"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/Q_uotM_rk.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/Q_uotM_rk.glif
new file mode 100644
index 0000000..c9f06c6
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/Q_uotM_rk.glif
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="QuotMrk" format="2">
+ <advance width="1025"/>
+ <unicode hex="0022"/>
+ <outline>
+ <contour>
+ <point x="405" y="1045" type="line"/>
+ <point x="410" y="1186"/>
+ <point x="416" y="1339"/>
+ <point x="445" y="1585" type="curve"/>
+ <point x="240" y="1585" type="line"/>
+ <point x="271" y="1339"/>
+ <point x="276" y="1186"/>
+ <point x="280" y="1045" type="curve"/>
+ </contour>
+ <contour>
+ <point x="745" y="1045" type="line"/>
+ <point x="750" y="1186"/>
+ <point x="756" y="1339"/>
+ <point x="785" y="1585" type="curve"/>
+ <point x="580" y="1585" type="line"/>
+ <point x="611" y="1339"/>
+ <point x="616" y="1186"/>
+ <point x="620" y="1045" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/R_everseS_olidus.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/R_everseS_olidus.glif
new file mode 100644
index 0000000..d145f26
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/R_everseS_olidus.glif
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="ReverseSolidus" format="2">
+ <advance width="1000"/>
+ <unicode hex="005C"/>
+ <outline>
+ <contour>
+ <point x="990" y="-245" type="line"/>
+ <point x="160" y="1600" type="line"/>
+ <point x="10" y="1600" type="line"/>
+ <point x="840" y="-245" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/R_tC_urlyB_rac.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/R_tC_urlyB_rac.glif
new file mode 100644
index 0000000..288a75a
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/R_tC_urlyB_rac.glif
@@ -0,0 +1,47 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="RtCurlyBrac" format="2">
+ <advance width="1000"/>
+ <unicode hex="007D"/>
+ <outline>
+ <contour>
+ <point x="790" y="615" type="curve" smooth="yes"/>
+ <point x="790" y="647"/>
+ <point x="617" y="744"/>
+ <point x="590" y="780" type="curve" smooth="yes"/>
+ <point x="566" y="812"/>
+ <point x="576" y="1435"/>
+ <point x="505" y="1515" type="curve" smooth="yes"/>
+ <point x="465" y="1560"/>
+ <point x="304" y="1613"/>
+ <point x="200" y="1640" type="curve"/>
+ <point x="160" y="1500" type="line"/>
+ <point x="227" y="1477"/>
+ <point x="350" y="1428"/>
+ <point x="370" y="1400" type="curve" smooth="yes"/>
+ <point x="403" y="1353"/>
+ <point x="390" y="783"/>
+ <point x="410" y="745" type="curve" smooth="yes"/>
+ <point x="429" y="709"/>
+ <point x="566" y="637"/>
+ <point x="570" y="615" type="curve"/>
+ <point x="566" y="593"/>
+ <point x="429" y="521"/>
+ <point x="410" y="485" type="curve" smooth="yes"/>
+ <point x="390" y="447"/>
+ <point x="403" y="-123"/>
+ <point x="370" y="-170" type="curve" smooth="yes"/>
+ <point x="350" y="-198"/>
+ <point x="227" y="-247"/>
+ <point x="160" y="-270" type="curve"/>
+ <point x="200" y="-410" type="line"/>
+ <point x="304" y="-383"/>
+ <point x="465" y="-330"/>
+ <point x="505" y="-285" type="curve" smooth="yes"/>
+ <point x="576" y="-205"/>
+ <point x="566" y="418"/>
+ <point x="590" y="450" type="curve" smooth="yes"/>
+ <point x="617" y="486"/>
+ <point x="790" y="583"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/R_tP_aren.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/R_tP_aren.glif
new file mode 100644
index 0000000..3983f6b
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/R_tP_aren.glif
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="RtParen" format="2">
+ <advance width="795"/>
+ <unicode hex="0029"/>
+ <outline>
+ <contour>
+ <point x="680" y="625" type="curve" smooth="yes"/>
+ <point x="680" y="1062"/>
+ <point x="505" y="1444"/>
+ <point x="240" y="1640" type="curve"/>
+ <point x="165" y="1485" type="line"/>
+ <point x="390" y="1280"/>
+ <point x="490" y="962"/>
+ <point x="490" y="625" type="curve" smooth="yes"/>
+ <point x="490" y="278"/>
+ <point x="390" y="-8"/>
+ <point x="165" y="-265" type="curve"/>
+ <point x="260" y="-410" type="line"/>
+ <point x="535" y="-125"/>
+ <point x="680" y="218"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/R_tS_qrB_rac.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/R_tS_qrB_rac.glif
new file mode 100644
index 0000000..702689b
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/R_tS_qrB_rac.glif
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="RtSqrBrac" format="2">
+ <advance width="790"/>
+ <unicode hex="005D"/>
+ <outline>
+ <contour>
+ <point x="590" y="-410" type="line"/>
+ <point x="590" y="1600" type="line"/>
+ <point x="150" y="1600" type="line"/>
+ <point x="150" y="1450" type="line"/>
+ <point x="405" y="1450" type="line"/>
+ <point x="405" y="-260" type="line"/>
+ <point x="150" y="-260" type="line"/>
+ <point x="150" y="-410" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/S_emicolon.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/S_emicolon.glif
new file mode 100644
index 0000000..247bed0
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/S_emicolon.glif
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Semicolon" format="2">
+ <advance width="650"/>
+ <unicode hex="003B"/>
+ <outline>
+ <contour>
+ <point x="185" y="790" type="curve" smooth="yes"/>
+ <point x="185" y="716"/>
+ <point x="246" y="655"/>
+ <point x="320" y="655" type="curve" smooth="yes"/>
+ <point x="394" y="655"/>
+ <point x="455" y="716"/>
+ <point x="455" y="790" type="curve" smooth="yes"/>
+ <point x="455" y="864"/>
+ <point x="394" y="925"/>
+ <point x="320" y="925" type="curve" smooth="yes"/>
+ <point x="246" y="925"/>
+ <point x="185" y="864"/>
+ </contour>
+ <contour>
+ <point x="185" y="50" type="line"/>
+ <point x="325" y="50" type="line"/>
+ <point x="325" y="-51"/>
+ <point x="248" y="-172"/>
+ <point x="190" y="-230" type="curve"/>
+ <point x="290" y="-270" type="line"/>
+ <point x="407" y="-160"/>
+ <point x="465" y="-37"/>
+ <point x="465" y="85" type="curve" smooth="yes"/>
+ <point x="465" y="186"/>
+ <point x="400" y="250"/>
+ <point x="320" y="250" type="curve" smooth="yes"/>
+ <point x="263" y="250"/>
+ <point x="198" y="213"/>
+ <point x="185" y="150" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/S_olidus.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/S_olidus.glif
new file mode 100644
index 0000000..3edff5d
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/S_olidus.glif
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Solidus" format="2">
+ <advance width="1000"/>
+ <unicode hex="002F"/>
+ <outline>
+ <contour>
+ <point x="840" y="1600" type="line"/>
+ <point x="10" y="-245" type="line"/>
+ <point x="160" y="-245" type="line"/>
+ <point x="990" y="1600" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/S_pace.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/S_pace.glif
new file mode 100644
index 0000000..ef0bed7
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/S_pace.glif
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Space" format="2">
+ <advance width="550"/>
+ <unicode hex="0020"/>
+ <outline/>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/T_ilde.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/T_ilde.glif
new file mode 100644
index 0000000..60ddaa7
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/T_ilde.glif
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Tilde" format="2">
+ <advance width="1115"/>
+ <unicode hex="007E"/>
+ <outline>
+ <contour>
+ <point x="125" y="375" type="line"/>
+ <point x="130" y="424"/>
+ <point x="162" y="465"/>
+ <point x="240" y="465" type="curve" smooth="yes"/>
+ <point x="415" y="465"/>
+ <point x="615" y="360"/>
+ <point x="845" y="360" type="curve" smooth="yes"/>
+ <point x="1004" y="360"/>
+ <point x="1080" y="482"/>
+ <point x="1080" y="610" type="curve"/>
+ <point x="975" y="610" type="line"/>
+ <point x="968" y="564"/>
+ <point x="938" y="510"/>
+ <point x="855" y="510" type="curve" smooth="yes"/>
+ <point x="619" y="510"/>
+ <point x="461" y="615"/>
+ <point x="240" y="615" type="curve" smooth="yes"/>
+ <point x="94" y="615"/>
+ <point x="20" y="497"/>
+ <point x="20" y="375" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/V_ertL_ine.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/V_ertL_ine.glif
new file mode 100644
index 0000000..c73e040
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/V_ertL_ine.glif
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="VertLine" format="2">
+ <advance width="690"/>
+ <unicode hex="007C"/>
+ <outline>
+ <contour>
+ <point x="270" y="1600" type="line"/>
+ <point x="270" y="-390" type="line"/>
+ <point x="420" y="-390" type="line"/>
+ <point x="420" y="1600" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/_notdef.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/_notdef.glif
new file mode 100644
index 0000000..a3e9354
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/_notdef.glif
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name=".notdef" format="2">
+ <advance width="1400"/>
+ <outline>
+ <contour>
+ <point x="100" y="0" type="line"/>
+ <point x="1300" y="0" type="line"/>
+ <point x="1300" y="1800" type="line"/>
+ <point x="100" y="1800" type="line"/>
+ </contour>
+ <contour>
+ <point x="150" y="1750" type="line"/>
+ <point x="1250" y="1750" type="line"/>
+ <point x="1250" y="50" type="line"/>
+ <point x="150" y="50" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/_null.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/_null.glif
new file mode 100644
index 0000000..0b9caa6
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/_null.glif
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name=".null" format="2">
+ <outline/>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/contents.plist b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/contents.plist
new file mode 100644
index 0000000..de3c0b3
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/contents.plist
@@ -0,0 +1,234 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>.notdef</key>
+ <string>_notdef.glif</string>
+ <key>.null</key>
+ <string>_null.glif</string>
+ <key>Ampersand</key>
+ <string>A_mpersand.glif</string>
+ <key>Apos</key>
+ <string>A_pos.glif</string>
+ <key>Asterisk</key>
+ <string>A_sterisk.glif</string>
+ <key>AtSgn</key>
+ <string>A_tS_gn.glif</string>
+ <key>CircumAccent</key>
+ <string>C_ircumA_ccent.glif</string>
+ <key>Colon</key>
+ <string>C_olon.glif</string>
+ <key>CombAcute</key>
+ <string>C_ombA_cute.glif</string>
+ <key>CombCircum</key>
+ <string>C_ombC_ircum.glif</string>
+ <key>CombDiaer</key>
+ <string>C_ombD_iaer.glif</string>
+ <key>CombGrave</key>
+ <string>C_ombG_rave.glif</string>
+ <key>CombRingAbv</key>
+ <string>C_ombR_ingA_bv.glif</string>
+ <key>CombTilde</key>
+ <string>C_ombT_ilde.glif</string>
+ <key>Comma</key>
+ <string>C_omma.glif</string>
+ <key>DigitEight</key>
+ <string>D_igitE_ight.glif</string>
+ <key>DigitFive</key>
+ <string>D_igitF_ive.glif</string>
+ <key>DigitFour</key>
+ <string>D_igitF_our.glif</string>
+ <key>DigitNine</key>
+ <string>D_igitN_ine.glif</string>
+ <key>DigitOne</key>
+ <string>D_igitO_ne.glif</string>
+ <key>DigitSeven</key>
+ <string>D_igitS_even.glif</string>
+ <key>DigitSix</key>
+ <string>D_igitS_ix.glif</string>
+ <key>DigitThree</key>
+ <string>D_igitT_hree.glif</string>
+ <key>DigitTwo</key>
+ <string>D_igitT_wo.glif</string>
+ <key>DigitZero</key>
+ <string>D_igitZ_ero.glif</string>
+ <key>DollarSgn</key>
+ <string>D_ollarS_gn.glif</string>
+ <key>DottedCirc</key>
+ <string>D_ottedC_irc.glif</string>
+ <key>EqSgn</key>
+ <string>E_qS_gn.glif</string>
+ <key>ExclamationMrk</key>
+ <string>E_xclamationM_rk.glif</string>
+ <key>FullStop</key>
+ <string>F_ullS_top.glif</string>
+ <key>GTSgn</key>
+ <string>G_T_S_gn.glif</string>
+ <key>GraveAccent</key>
+ <string>G_raveA_ccent.glif</string>
+ <key>Hyphen</key>
+ <string>H_yphen.glif</string>
+ <key>HyphenMinus</key>
+ <string>H_yphenM_inus.glif</string>
+ <key>Hyphen_Soft</key>
+ <string>H_yphen_S_oft.glif</string>
+ <key>LTSgn</key>
+ <string>L_T_S_gn.glif</string>
+ <key>LftCurlyBrac</key>
+ <string>L_ftC_urlyB_rac.glif</string>
+ <key>LftParen</key>
+ <string>L_ftP_aren.glif</string>
+ <key>LftSqrBrac</key>
+ <string>L_ftS_qrB_rac.glif</string>
+ <key>LowLine</key>
+ <string>L_owL_ine.glif</string>
+ <key>LtnCapA</key>
+ <string>L_tnC_apA_.glif</string>
+ <key>LtnCapA.alt</key>
+ <string>L_tnC_apA_.alt.glif</string>
+ <key>LtnCapADiaer</key>
+ <string>L_tnC_apA_D_iaer.glif</string>
+ <key>LtnCapB</key>
+ <string>L_tnC_apB_.glif</string>
+ <key>LtnCapC</key>
+ <string>L_tnC_apC_.glif</string>
+ <key>LtnCapD</key>
+ <string>L_tnC_apD_.glif</string>
+ <key>LtnCapE</key>
+ <string>L_tnC_apE_.glif</string>
+ <key>LtnCapF</key>
+ <string>L_tnC_apF_.glif</string>
+ <key>LtnCapG</key>
+ <string>L_tnC_apG_.glif</string>
+ <key>LtnCapH</key>
+ <string>L_tnC_apH_.glif</string>
+ <key>LtnCapI</key>
+ <string>L_tnC_apI_.glif</string>
+ <key>LtnCapJ</key>
+ <string>L_tnC_apJ_.glif</string>
+ <key>LtnCapK</key>
+ <string>L_tnC_apK_.glif</string>
+ <key>LtnCapL</key>
+ <string>L_tnC_apL_.glif</string>
+ <key>LtnCapM</key>
+ <string>L_tnC_apM_.glif</string>
+ <key>LtnCapN</key>
+ <string>L_tnC_apN_.glif</string>
+ <key>LtnCapO</key>
+ <string>L_tnC_apO_.glif</string>
+ <key>LtnCapP</key>
+ <string>L_tnC_apP_.glif</string>
+ <key>LtnCapQ</key>
+ <string>L_tnC_apQ_.glif</string>
+ <key>LtnCapR</key>
+ <string>L_tnC_apR_.glif</string>
+ <key>LtnCapS</key>
+ <string>L_tnC_apS_.glif</string>
+ <key>LtnCapT</key>
+ <string>L_tnC_apT_.glif</string>
+ <key>LtnCapU</key>
+ <string>L_tnC_apU_.glif</string>
+ <key>LtnCapV</key>
+ <string>L_tnC_apV_.glif</string>
+ <key>LtnCapW</key>
+ <string>L_tnC_apW_.glif</string>
+ <key>LtnCapX</key>
+ <string>L_tnC_apX_.glif</string>
+ <key>LtnCapY</key>
+ <string>L_tnC_apY_.glif</string>
+ <key>LtnSmA</key>
+ <string>L_tnS_mA_.glif</string>
+ <key>LtnSmAAcute</key>
+ <string>L_tnS_mA_A_cute.glif</string>
+ <key>LtnSmACircum</key>
+ <string>L_tnS_mA_C_ircum.glif</string>
+ <key>LtnSmADiaer</key>
+ <string>L_tnS_mA_D_iaer.glif</string>
+ <key>LtnSmAGrave</key>
+ <string>L_tnS_mA_G_rave.glif</string>
+ <key>LtnSmARingAbv</key>
+ <string>L_tnS_mA_R_ingA_bv.glif</string>
+ <key>LtnSmATilde</key>
+ <string>L_tnS_mA_T_ilde.glif</string>
+ <key>LtnSmB</key>
+ <string>L_tnS_mB_.glif</string>
+ <key>LtnSmC</key>
+ <string>L_tnS_mC_.glif</string>
+ <key>LtnSmD</key>
+ <string>L_tnS_mD_.glif</string>
+ <key>LtnSmE</key>
+ <string>L_tnS_mE_.glif</string>
+ <key>LtnSmF</key>
+ <string>L_tnS_mF_.glif</string>
+ <key>LtnSmG</key>
+ <string>L_tnS_mG_.glif</string>
+ <key>LtnSmH</key>
+ <string>L_tnS_mH_.glif</string>
+ <key>LtnSmI</key>
+ <string>L_tnS_mI_.glif</string>
+ <key>LtnSmJ</key>
+ <string>L_tnS_mJ_.glif</string>
+ <key>LtnSmK</key>
+ <string>L_tnS_mK_.glif</string>
+ <key>LtnSmL</key>
+ <string>L_tnS_mL_.glif</string>
+ <key>LtnSmM</key>
+ <string>L_tnS_mM_.glif</string>
+ <key>LtnSmN</key>
+ <string>L_tnS_mN_.glif</string>
+ <key>LtnSmO</key>
+ <string>L_tnS_mO_.glif</string>
+ <key>LtnSmP</key>
+ <string>L_tnS_mP_.glif</string>
+ <key>LtnSmQ</key>
+ <string>L_tnS_mQ_.glif</string>
+ <key>LtnSmR</key>
+ <string>L_tnS_mR_.glif</string>
+ <key>LtnSmS</key>
+ <string>L_tnS_mS_.glif</string>
+ <key>LtnSmT</key>
+ <string>L_tnS_mT_.glif</string>
+ <key>LtnSmU</key>
+ <string>L_tnS_mU_.glif</string>
+ <key>LtnSmV</key>
+ <string>L_tnS_mV_.glif</string>
+ <key>LtnSmW</key>
+ <string>L_tnS_mW_.glif</string>
+ <key>LtnSmX</key>
+ <string>L_tnS_mX_.glif</string>
+ <key>LtnSmY</key>
+ <string>L_tnS_mY_.glif</string>
+ <key>NonBreakingHyphen</key>
+ <string>N_onB_reakingH_yphen.glif</string>
+ <key>NumSgn</key>
+ <string>N_umS_gn.glif</string>
+ <key>PercentSgn</key>
+ <string>P_ercentS_gn.glif</string>
+ <key>PlusSgn</key>
+ <string>P_lusS_gn.glif</string>
+ <key>QstnMrk</key>
+ <string>Q_stnM_rk.glif</string>
+ <key>QuotMrk</key>
+ <string>Q_uotM_rk.glif</string>
+ <key>ReverseSolidus</key>
+ <string>R_everseS_olidus.glif</string>
+ <key>RtCurlyBrac</key>
+ <string>R_tC_urlyB_rac.glif</string>
+ <key>RtParen</key>
+ <string>R_tP_aren.glif</string>
+ <key>RtSqrBrac</key>
+ <string>R_tS_qrB_rac.glif</string>
+ <key>Semicolon</key>
+ <string>S_emicolon.glif</string>
+ <key>Solidus</key>
+ <string>S_olidus.glif</string>
+ <key>Space</key>
+ <string>S_pace.glif</string>
+ <key>Tilde</key>
+ <string>T_ilde.glif</string>
+ <key>VertLine</key>
+ <string>V_ertL_ine.glif</string>
+ <key>nonmarkingreturn</key>
+ <string>nonmarkingreturn.glif</string>
+</dict>
+</plist>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/nonmarkingreturn.glif b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/nonmarkingreturn.glif
new file mode 100644
index 0000000..ee41448
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/glyphs/nonmarkingreturn.glif
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="nonmarkingreturn" format="2">
+ <advance width="1024"/>
+ <outline/>
+</glyph>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/layercontents.plist b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/layercontents.plist
new file mode 100644
index 0000000..42b7482
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/layercontents.plist
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<array>
+ <array>
+ <string>public.default</string>
+ <string>glyphs</string>
+ </array>
+</array>
+</plist>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/lib.plist b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/lib.plist
new file mode 100644
index 0000000..db1ec1b
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/lib.plist
@@ -0,0 +1,417 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>com.schriftgestaltung.Glyphs.fontUserData</key>
+ <dict/>
+ <key>com.schriftgestaltung.appVersion</key>
+ <string>1165</string>
+ <key>com.schriftgestaltung.customParameter.GSFont.disablesAutomaticAlignment</key>
+ <true/>
+ <key>com.schriftgestaltung.customParameter.GSFont.disablesLastChange</key>
+ <true/>
+ <key>com.schriftgestaltung.customParameter.GSFont.useNiceNames</key>
+ <integer>0</integer>
+ <key>com.schriftgestaltung.customParameter.GSFontMaster.customValue</key>
+ <integer>0</integer>
+ <key>com.schriftgestaltung.customParameter.GSFontMaster.customValue1</key>
+ <integer>0</integer>
+ <key>com.schriftgestaltung.customParameter.GSFontMaster.customValue2</key>
+ <integer>0</integer>
+ <key>com.schriftgestaltung.customParameter.GSFontMaster.customValue3</key>
+ <integer>0</integer>
+ <key>com.schriftgestaltung.customParameter.GSFontMaster.iconName</key>
+ <string/>
+ <key>com.schriftgestaltung.customParameter.GSFontMaster.weightValue</key>
+ <integer>400</integer>
+ <key>com.schriftgestaltung.customParameter.GSFontMaster.widthValue</key>
+ <integer>100</integer>
+ <key>com.schriftgestaltung.disablesAutomaticAlignment</key>
+ <true/>
+ <key>com.schriftgestaltung.disablesLastChange</key>
+ <true/>
+ <key>com.schriftgestaltung.fontMasterOrder</key>
+ <integer>0</integer>
+ <key>com.schriftgestaltung.keyboardIncrement</key>
+ <integer>1</integer>
+ <key>com.schriftgestaltung.weight</key>
+ <string>Regular</string>
+ <key>com.schriftgestaltung.weightValue</key>
+ <integer>400</integer>
+ <key>com.schriftgestaltung.width</key>
+ <string>Regular</string>
+ <key>com.schriftgestaltung.widthValue</key>
+ <integer>100</integer>
+ <key>org.sil.lcg.toneLetters</key>
+ <dict>
+ <key>contourWidth</key>
+ <integer>480</integer>
+ <key>dotSize</key>
+ <integer>180</integer>
+ <key>dotSpacing</key>
+ <integer>200</integer>
+ <key>glyphDepth</key>
+ <integer>-25</integer>
+ <key>glyphHeight</key>
+ <integer>1600</integer>
+ <key>italicAngle</key>
+ <integer>0</integer>
+ <key>marginDotLeft</key>
+ <integer>120</integer>
+ <key>marginDotRight</key>
+ <integer>160</integer>
+ <key>marginFlatLeft</key>
+ <integer>120</integer>
+ <key>marginFlatRight</key>
+ <integer>160</integer>
+ <key>marginPointLeft</key>
+ <integer>100</integer>
+ <key>marginPointRight</key>
+ <integer>140</integer>
+ <key>strokeThickness</key>
+ <integer>120</integer>
+ </dict>
+ <key>public.glyphOrder</key>
+ <array>
+ <string>.notdef</string>
+ <string>.null</string>
+ <string>nonmarkingreturn</string>
+ <string>Space</string>
+ <string>ExclamationMrk</string>
+ <string>QuotMrk</string>
+ <string>NumSgn</string>
+ <string>DollarSgn</string>
+ <string>PercentSgn</string>
+ <string>Ampersand</string>
+ <string>Apos</string>
+ <string>LftParen</string>
+ <string>RtParen</string>
+ <string>Asterisk</string>
+ <string>PlusSgn</string>
+ <string>Comma</string>
+ <string>HyphenMinus</string>
+ <string>FullStop</string>
+ <string>Solidus</string>
+ <string>DigitZero</string>
+ <string>DigitOne</string>
+ <string>DigitTwo</string>
+ <string>DigitThree</string>
+ <string>DigitFour</string>
+ <string>DigitFive</string>
+ <string>DigitSix</string>
+ <string>DigitSeven</string>
+ <string>DigitEight</string>
+ <string>DigitNine</string>
+ <string>Colon</string>
+ <string>Semicolon</string>
+ <string>LTSgn</string>
+ <string>EqSgn</string>
+ <string>GTSgn</string>
+ <string>QstnMrk</string>
+ <string>AtSgn</string>
+ <string>LtnCapA</string>
+ <string>LtnCapA.alt</string>
+ <string>LtnCapB</string>
+ <string>LtnCapC</string>
+ <string>LtnCapD</string>
+ <string>LtnCapE</string>
+ <string>LtnCapF</string>
+ <string>LtnCapG</string>
+ <string>LtnCapH</string>
+ <string>LtnCapI</string>
+ <string>LtnCapJ</string>
+ <string>LtnCapK</string>
+ <string>LtnCapL</string>
+ <string>LtnCapM</string>
+ <string>LtnCapN</string>
+ <string>LtnCapO</string>
+ <string>LtnCapP</string>
+ <string>LtnCapQ</string>
+ <string>LtnCapR</string>
+ <string>LtnCapS</string>
+ <string>LtnCapT</string>
+ <string>LtnCapU</string>
+ <string>LtnCapV</string>
+ <string>LtnCapW</string>
+ <string>LtnCapX</string>
+ <string>LtnCapY</string>
+ <string>LftSqrBrac</string>
+ <string>ReverseSolidus</string>
+ <string>RtSqrBrac</string>
+ <string>CircumAccent</string>
+ <string>LowLine</string>
+ <string>GraveAccent</string>
+ <string>LtnSmA</string>
+ <string>LtnSmB</string>
+ <string>LtnSmC</string>
+ <string>LtnSmD</string>
+ <string>LtnSmE</string>
+ <string>LtnSmF</string>
+ <string>LtnSmG</string>
+ <string>LtnSmH</string>
+ <string>LtnSmI</string>
+ <string>LtnSmJ</string>
+ <string>LtnSmK</string>
+ <string>LtnSmL</string>
+ <string>LtnSmM</string>
+ <string>LtnSmN</string>
+ <string>LtnSmO</string>
+ <string>LtnSmP</string>
+ <string>LtnSmQ</string>
+ <string>LtnSmR</string>
+ <string>LtnSmS</string>
+ <string>LtnSmT</string>
+ <string>LtnSmU</string>
+ <string>LtnSmV</string>
+ <string>LtnSmW</string>
+ <string>LtnSmX</string>
+ <string>LtnSmY</string>
+ <string>LftCurlyBrac</string>
+ <string>VertLine</string>
+ <string>RtCurlyBrac</string>
+ <string>Tilde</string>
+ <string>LtnCapADiaer</string>
+ <string>LtnSmAAcute</string>
+ <string>LtnSmAGrave</string>
+ <string>LtnSmACircum</string>
+ <string>LtnSmADiaer</string>
+ <string>LtnSmATilde</string>
+ <string>LtnSmARingAbv</string>
+ <string>DottedCirc</string>
+ <string>Hyphen</string>
+ <string>NonBreakingHyphen</string>
+ <string>Hyphen_Soft</string>
+ <string>CombAcute</string>
+ <string>CombGrave</string>
+ <string>CombCircum</string>
+ <string>CombTilde</string>
+ <string>CombDiaer</string>
+ <string>CombRingAbv</string>
+ </array>
+ <key>public.postscriptNames</key>
+ <dict>
+ <key>Ampersand</key>
+ <string>ampersand</string>
+ <key>Apos</key>
+ <string>quotesingle</string>
+ <key>Asterisk</key>
+ <string>asterisk</string>
+ <key>AtSgn</key>
+ <string>at</string>
+ <key>CircumAccent</key>
+ <string>asciicircum</string>
+ <key>Colon</key>
+ <string>colon</string>
+ <key>CombAcute</key>
+ <string>acutecomb</string>
+ <key>CombCircum</key>
+ <string>uni0302</string>
+ <key>CombDiaer</key>
+ <string>uni0308</string>
+ <key>CombGrave</key>
+ <string>gravecomb</string>
+ <key>CombRingAbv</key>
+ <string>uni030A</string>
+ <key>CombTilde</key>
+ <string>tildecomb</string>
+ <key>Comma</key>
+ <string>comma</string>
+ <key>DigitEight</key>
+ <string>eight</string>
+ <key>DigitFive</key>
+ <string>five</string>
+ <key>DigitFour</key>
+ <string>four</string>
+ <key>DigitNine</key>
+ <string>nine</string>
+ <key>DigitOne</key>
+ <string>one</string>
+ <key>DigitSeven</key>
+ <string>seven</string>
+ <key>DigitSix</key>
+ <string>six</string>
+ <key>DigitThree</key>
+ <string>three</string>
+ <key>DigitTwo</key>
+ <string>two</string>
+ <key>DigitZero</key>
+ <string>zero</string>
+ <key>DollarSgn</key>
+ <string>dollar</string>
+ <key>DottedCirc</key>
+ <string>uni25CC</string>
+ <key>EqSgn</key>
+ <string>equal</string>
+ <key>ExclamationMrk</key>
+ <string>exclam</string>
+ <key>FullStop</key>
+ <string>period</string>
+ <key>GTSgn</key>
+ <string>greater</string>
+ <key>GraveAccent</key>
+ <string>grave</string>
+ <key>Hyphen</key>
+ <string>uni2010</string>
+ <key>HyphenMinus</key>
+ <string>hyphen</string>
+ <key>Hyphen_Soft</key>
+ <string>uni00AD</string>
+ <key>LTSgn</key>
+ <string>less</string>
+ <key>LftCurlyBrac</key>
+ <string>braceleft</string>
+ <key>LftParen</key>
+ <string>parenleft</string>
+ <key>LftSqrBrac</key>
+ <string>bracketleft</string>
+ <key>LowLine</key>
+ <string>underscore</string>
+ <key>LtnCapA</key>
+ <string>A</string>
+ <key>LtnCapA.alt</key>
+ <string>A</string>
+ <key>LtnCapADiaer</key>
+ <string>Adieresis</string>
+ <key>LtnCapB</key>
+ <string>B</string>
+ <key>LtnCapC</key>
+ <string>C</string>
+ <key>LtnCapD</key>
+ <string>D</string>
+ <key>LtnCapE</key>
+ <string>E</string>
+ <key>LtnCapF</key>
+ <string>F</string>
+ <key>LtnCapG</key>
+ <string>G</string>
+ <key>LtnCapH</key>
+ <string>H</string>
+ <key>LtnCapI</key>
+ <string>I</string>
+ <key>LtnCapJ</key>
+ <string>J</string>
+ <key>LtnCapK</key>
+ <string>K</string>
+ <key>LtnCapL</key>
+ <string>L</string>
+ <key>LtnCapM</key>
+ <string>M</string>
+ <key>LtnCapN</key>
+ <string>N</string>
+ <key>LtnCapO</key>
+ <string>O</string>
+ <key>LtnCapP</key>
+ <string>P</string>
+ <key>LtnCapQ</key>
+ <string>Q</string>
+ <key>LtnCapR</key>
+ <string>R</string>
+ <key>LtnCapS</key>
+ <string>S</string>
+ <key>LtnCapT</key>
+ <string>T</string>
+ <key>LtnCapU</key>
+ <string>U</string>
+ <key>LtnCapV</key>
+ <string>V</string>
+ <key>LtnCapW</key>
+ <string>W</string>
+ <key>LtnCapX</key>
+ <string>X</string>
+ <key>LtnCapY</key>
+ <string>Y</string>
+ <key>LtnSmA</key>
+ <string>a</string>
+ <key>LtnSmAAcute</key>
+ <string>aacute</string>
+ <key>LtnSmACircum</key>
+ <string>acircumflex</string>
+ <key>LtnSmADiaer</key>
+ <string>adieresis</string>
+ <key>LtnSmAGrave</key>
+ <string>agrave</string>
+ <key>LtnSmARingAbv</key>
+ <string>aring</string>
+ <key>LtnSmATilde</key>
+ <string>atilde</string>
+ <key>LtnSmB</key>
+ <string>b</string>
+ <key>LtnSmC</key>
+ <string>c</string>
+ <key>LtnSmD</key>
+ <string>d</string>
+ <key>LtnSmE</key>
+ <string>e</string>
+ <key>LtnSmF</key>
+ <string>f</string>
+ <key>LtnSmG</key>
+ <string>g</string>
+ <key>LtnSmH</key>
+ <string>h</string>
+ <key>LtnSmI</key>
+ <string>i</string>
+ <key>LtnSmJ</key>
+ <string>j</string>
+ <key>LtnSmK</key>
+ <string>k</string>
+ <key>LtnSmL</key>
+ <string>l</string>
+ <key>LtnSmM</key>
+ <string>m</string>
+ <key>LtnSmN</key>
+ <string>n</string>
+ <key>LtnSmO</key>
+ <string>o</string>
+ <key>LtnSmP</key>
+ <string>p</string>
+ <key>LtnSmQ</key>
+ <string>q</string>
+ <key>LtnSmR</key>
+ <string>r</string>
+ <key>LtnSmS</key>
+ <string>s</string>
+ <key>LtnSmT</key>
+ <string>t</string>
+ <key>LtnSmU</key>
+ <string>u</string>
+ <key>LtnSmV</key>
+ <string>v</string>
+ <key>LtnSmW</key>
+ <string>w</string>
+ <key>LtnSmX</key>
+ <string>x</string>
+ <key>LtnSmY</key>
+ <string>y</string>
+ <key>NonBreakingHyphen</key>
+ <string>uni2011</string>
+ <key>NumSgn</key>
+ <string>numbersign</string>
+ <key>PercentSgn</key>
+ <string>percent</string>
+ <key>PlusSgn</key>
+ <string>plus</string>
+ <key>QstnMrk</key>
+ <string>question</string>
+ <key>QuotMrk</key>
+ <string>quotedbl</string>
+ <key>ReverseSolidus</key>
+ <string>backslash</string>
+ <key>RtCurlyBrac</key>
+ <string>braceright</string>
+ <key>RtParen</key>
+ <string>parenright</string>
+ <key>RtSqrBrac</key>
+ <string>bracketright</string>
+ <key>Semicolon</key>
+ <string>semicolon</string>
+ <key>Solidus</key>
+ <string>slash</string>
+ <key>Space</key>
+ <string>space</string>
+ <key>Tilde</key>
+ <string>asciitilde</string>
+ <key>VertLine</key>
+ <string>bar</string>
+ </dict>
+</dict>
+</plist>
diff --git a/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/metainfo.plist b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/metainfo.plist
new file mode 100644
index 0000000..aa10c5c
--- /dev/null
+++ b/tests/reference/ufo/psfglyphs2ufo/PsfTest-Regular.ufo/metainfo.plist
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>creator</key>
+ <string>org.sil.scripts.pysilfont</string>
+ <key>formatVersion</key>
+ <integer>3</integer>
+</dict>
+</plist>
diff --git a/tests/reference/ufo/psfmakefea.fea b/tests/reference/ufo/psfmakefea.fea
new file mode 100644
index 0000000..1ce54da
--- /dev/null
+++ b/tests/reference/ufo/psfmakefea.fea
@@ -0,0 +1,214 @@
+
+# Main Classes
+@GDEF_bases = [.notdef .null Ampersand Apos Asterisk AtSgn CircumAccent Colon Comma DigitEight DigitFive DigitFour DigitNine DigitOne DigitSeven DigitSix DigitThree DigitTwo DigitZero DollarSgn DottedCirc EqSgn ExclamationMrk FullStop GTSgn GraveAccent Hyphen HyphenMinus Hyphen_Soft LTSgn LftCurlyBrac LftParen LftSqrBrac LowLine LtnCapA LtnCapA.alt LtnCapADiaer LtnCapB LtnCapC LtnCapD LtnCapE LtnCapF LtnCapG LtnCapH LtnCapI LtnCapJ LtnCapK LtnCapL LtnCapM LtnCapN LtnCapO LtnCapP LtnCapQ LtnCapR LtnCapS LtnCapT LtnCapU LtnCapV LtnCapW LtnCapX LtnCapY LtnSmA LtnSmAAcute LtnSmACircum LtnSmADiaer LtnSmAGrave LtnSmARingAbv LtnSmATilde LtnSmB LtnSmC LtnSmD LtnSmE LtnSmF LtnSmG LtnSmH LtnSmI LtnSmJ LtnSmK LtnSmL LtnSmM LtnSmN LtnSmO LtnSmP LtnSmQ LtnSmR LtnSmS LtnSmT LtnSmU LtnSmV LtnSmW LtnSmX LtnSmY NonBreakingHyphen NumSgn PercentSgn PlusSgn QstnMrk QuotMrk ReverseSolidus RtCurlyBrac RtParen RtSqrBrac Semicolon Solidus Space Tilde VertLine nonmarkingreturn];
+@GDEF_marks = [CombAcute CombCircum CombDiaer CombGrave CombRingAbv CombTilde];
+@c_alt = [LtnCapA.alt];
+@cno_alt = [LtnCapA];
+
+# Positioning classes and statements
+
+# AP: U
+@U = [DigitEight DigitFive DigitNine DigitOne DigitSeven DigitSix DigitThree LtnCapE DigitFour DigitTwo DigitZero DottedCirc Hyphen HyphenMinus Hyphen_Soft NonBreakingHyphen LtnCapA LtnCapA.alt LtnCapADiaer LtnCapB LtnCapC LtnCapD LtnCapF LtnCapG LtnCapH LtnCapI LtnCapJ LtnCapK LtnCapX LtnCapY LtnCapL LtnCapM LtnCapN LtnCapO LtnCapQ LtnCapP LtnCapR LtnCapS LtnCapT LtnCapU LtnCapV LtnCapW LtnSmA LtnSmAAcute LtnSmACircum LtnSmAGrave LtnSmADiaer LtnSmARingAbv LtnSmATilde LtnSmB LtnSmC LtnSmO LtnSmD LtnSmE LtnSmF LtnSmG LtnSmH LtnSmI LtnSmJ LtnSmK LtnSmL LtnSmM LtnSmN LtnSmP LtnSmQ LtnSmR LtnSmS LtnSmT LtnSmU LtnSmV LtnSmY LtnSmW LtnSmX];
+@U_MarkBase = [CombAcute CombCircum CombRingAbv CombDiaer CombGrave CombTilde];
+# baseClass [DigitEight DigitFive DigitNine DigitOne DigitSeven DigitSix DigitThree LtnCapE] <anchor 600 1530> @U;
+# baseClass DigitFour <anchor 607 1530> @U;
+# baseClass DigitTwo <anchor 560 1530> @U;
+# baseClass DigitZero <anchor 605 1530> @U;
+# baseClass DottedCirc <anchor 553 1000> @U;
+# baseClass [Hyphen HyphenMinus Hyphen_Soft NonBreakingHyphen] <anchor 430 1100> @U;
+# baseClass LtnCapA <anchor 687 1530> @U;
+# baseClass LtnCapA.alt <anchor 688 -70> @U;
+# baseClass LtnCapADiaer <anchor 687 1935> @U;
+# baseClass LtnCapB <anchor 615 1530> @U;
+# baseClass LtnCapC <anchor 750 1530> @U;
+# baseClass LtnCapD <anchor 715 1530> @U;
+# baseClass LtnCapF <anchor 595 1530> @U;
+# baseClass LtnCapG <anchor 745 1530> @U;
+# baseClass LtnCapH <anchor 725 1530> @U;
+# baseClass LtnCapI <anchor 477 1530> @U;
+# baseClass LtnCapJ <anchor 675 1530> @U;
+# baseClass [LtnCapK LtnCapX LtnCapY] <anchor 650 1530> @U;
+# baseClass LtnCapL <anchor 592 1530> @U;
+# baseClass LtnCapM <anchor 885 1530> @U;
+# baseClass LtnCapN <anchor 737 1530> @U;
+# baseClass [LtnCapO LtnCapQ] <anchor 717 1530> @U;
+# baseClass LtnCapP <anchor 637 1530> @U;
+# baseClass LtnCapR <anchor 610 1530> @U;
+# baseClass LtnCapS <anchor 580 1530> @U;
+# baseClass LtnCapT <anchor 622 1530> @U;
+# baseClass LtnCapU <anchor 707 1530> @U;
+# baseClass LtnCapV <anchor 672 1530> @U;
+# baseClass LtnCapW <anchor 1027 1530> @U;
+# baseClass LtnSmA <anchor 540 1100> @U;
+# baseClass [LtnSmAAcute LtnSmACircum LtnSmAGrave] <anchor 540 1635> @U;
+# baseClass LtnSmADiaer <anchor 540 1505> @U;
+# baseClass LtnSmARingAbv <anchor 542 1635> @U;
+# baseClass LtnSmATilde <anchor 540 1475> @U;
+# baseClass LtnSmB <anchor 590 1635> @U;
+# baseClass [LtnSmC LtnSmO] <anchor 570 1100> @U;
+# baseClass LtnSmD <anchor 605 1635> @U;
+# baseClass LtnSmE <anchor 569 1100> @U;
+# baseClass LtnSmF <anchor 560 1635> @U;
+# baseClass LtnSmG <anchor 515 1100> @U;
+# baseClass LtnSmH <anchor 585 1635> @U;
+# baseClass LtnSmI <anchor 282 1100> @U;
+# baseClass LtnSmJ <anchor 313 1100> @U;
+# baseClass LtnSmK <anchor 572 1635> @U;
+# baseClass LtnSmL <anchor 282 1635> @U;
+# baseClass LtnSmM <anchor 865 1100> @U;
+# baseClass LtnSmN <anchor 600 1100> @U;
+# baseClass LtnSmP <anchor 590 1100> @U;
+# baseClass LtnSmQ <anchor 555 1100> @U;
+# baseClass LtnSmR <anchor 455 1100> @U;
+# baseClass LtnSmS <anchor 495 1100> @U;
+# baseClass LtnSmT <anchor 325 1360> @U;
+# baseClass LtnSmU <anchor 589 1100> @U;
+# baseClass [LtnSmV LtnSmY] <anchor 535 1100> @U;
+# baseClass LtnSmW <anchor 775 1100> @U;
+# baseClass LtnSmX <anchor 542 1100> @U;
+# baseClass [CombAcute CombCircum CombRingAbv] <anchor -570 1635> @U_MarkBase;
+# baseClass CombDiaer <anchor -570 1505> @U_MarkBase;
+# baseClass CombGrave <anchor -550 1635> @U_MarkBase;
+# baseClass CombTilde <anchor -575 1475> @U_MarkBase;
+
+# AP: _U
+markClass [CombAcute CombCircum CombDiaer] <anchor -570 1100> @_U;
+markClass CombGrave <anchor -550 1100> @_U;
+markClass CombRingAbv <anchor -572 1100> @_U;
+markClass CombTilde <anchor -575 1100> @_U;
+
+# AP: L
+@L = [DigitEight DigitFive DigitNine DigitOne DigitSeven DigitSix DigitThree DigitTwo LtnCapE LtnSmN DigitFour DigitZero LtnSmD DottedCirc LtnCapA LtnCapADiaer LtnCapA.alt LtnCapB LtnCapC LtnCapD LtnCapF LtnCapG LtnCapH LtnCapI LtnCapJ LtnCapK LtnCapL LtnCapM LtnCapN LtnCapO LtnCapP LtnCapQ LtnCapR LtnCapS LtnSmC LtnCapT LtnCapU LtnCapV LtnCapW LtnCapX LtnCapY LtnSmA LtnSmAAcute LtnSmACircum LtnSmADiaer LtnSmAGrave LtnSmARingAbv LtnSmATilde LtnSmB LtnSmE LtnSmF LtnSmG LtnSmH LtnSmI LtnSmJ LtnSmK LtnSmL LtnSmM LtnSmO LtnSmP LtnSmQ LtnSmR LtnSmS LtnSmT LtnSmU LtnSmV LtnSmW LtnSmX LtnSmY];
+# baseClass [DigitEight DigitFive DigitNine DigitOne DigitSeven DigitSix DigitThree DigitTwo LtnCapE LtnSmN] <anchor 600 -100> @L;
+# baseClass DigitFour <anchor 607 -100> @L;
+# baseClass [DigitZero LtnSmD] <anchor 605 -100> @L;
+# baseClass DottedCirc <anchor 553 -100> @L;
+# baseClass [LtnCapA LtnCapADiaer] <anchor 687 -100> @L;
+# baseClass LtnCapA.alt <anchor 688 1560> @L;
+# baseClass LtnCapB <anchor 615 -100> @L;
+# baseClass LtnCapC <anchor 750 -100> @L;
+# baseClass LtnCapD <anchor 715 -100> @L;
+# baseClass LtnCapF <anchor 595 -100> @L;
+# baseClass LtnCapG <anchor 745 -100> @L;
+# baseClass LtnCapH <anchor 725 -100> @L;
+# baseClass LtnCapI <anchor 477 -100> @L;
+# baseClass LtnCapJ <anchor 410 -100> @L;
+# baseClass LtnCapK <anchor 695 -100> @L;
+# baseClass LtnCapL <anchor 592 -100> @L;
+# baseClass LtnCapM <anchor 885 -100> @L;
+# baseClass LtnCapN <anchor 737 -100> @L;
+# baseClass LtnCapO <anchor 717 -100> @L;
+# baseClass LtnCapP <anchor 637 -100> @L;
+# baseClass LtnCapQ <anchor 717 -270> @L;
+# baseClass LtnCapR <anchor 610 -100> @L;
+# baseClass [LtnCapS LtnSmC] <anchor 580 -100> @L;
+# baseClass LtnCapT <anchor 622 -100> @L;
+# baseClass LtnCapU <anchor 707 -100> @L;
+# baseClass LtnCapV <anchor 672 -100> @L;
+# baseClass LtnCapW <anchor 1027 -100> @L;
+# baseClass [LtnCapX LtnCapY] <anchor 650 -100> @L;
+# baseClass [LtnSmA LtnSmAAcute LtnSmACircum LtnSmADiaer LtnSmAGrave LtnSmARingAbv LtnSmATilde] <anchor 540 -100> @L;
+# baseClass LtnSmB <anchor 590 -100> @L;
+# baseClass LtnSmE <anchor 569 -100> @L;
+# baseClass LtnSmF <anchor 335 -100> @L;
+# baseClass LtnSmG <anchor 545 -535> @L;
+# baseClass LtnSmH <anchor 585 -100> @L;
+# baseClass LtnSmI <anchor 285 -100> @L;
+# baseClass LtnSmJ <anchor 125 -500> @L;
+# baseClass LtnSmK <anchor 572 -100> @L;
+# baseClass LtnSmL <anchor 290 -100> @L;
+# baseClass LtnSmM <anchor 865 -100> @L;
+# baseClass LtnSmO <anchor 570 -100> @L;
+# baseClass LtnSmP <anchor 590 -500> @L;
+# baseClass LtnSmQ <anchor 555 -500> @L;
+# baseClass LtnSmR <anchor 255 -100> @L;
+# baseClass LtnSmS <anchor 495 -100> @L;
+# baseClass LtnSmT <anchor 475 -100> @L;
+# baseClass LtnSmU <anchor 589 -100> @L;
+# baseClass LtnSmV <anchor 535 -100> @L;
+# baseClass LtnSmW <anchor 775 -100> @L;
+# baseClass LtnSmX <anchor 542 -100> @L;
+# baseClass LtnSmY <anchor 795 -100> @L;
+
+# AP: H
+@H = [DottedCirc LtnCapA LtnCapADiaer LtnCapU LtnCapA.alt LtnCapC LtnCapE LtnCapG LtnCapH LtnCapR LtnCapI LtnCapK LtnSmR LtnCapL LtnCapM LtnCapN LtnCapO LtnCapS LtnSmC LtnCapT LtnCapV LtnSmA LtnSmAAcute LtnSmACircum LtnSmADiaer LtnSmAGrave LtnSmARingAbv LtnSmATilde LtnSmB LtnSmD LtnSmE LtnSmF LtnSmG LtnSmH LtnSmI LtnSmK LtnSmL LtnSmM LtnSmN LtnSmO LtnSmP LtnSmS LtnSmT LtnSmU LtnSmV LtnSmX];
+# baseClass DottedCirc <anchor 553 0> @H;
+# baseClass [LtnCapA LtnCapADiaer LtnCapU] <anchor 707 0> @H;
+# baseClass LtnCapA.alt <anchor 668 1460> @H;
+# baseClass LtnCapC <anchor 750 0> @H;
+# baseClass LtnCapE <anchor 600 0> @H;
+# baseClass LtnCapG <anchor 745 0> @H;
+# baseClass [LtnCapH LtnCapR] <anchor 285 0> @H;
+# baseClass LtnCapI <anchor 477 0> @H;
+# baseClass [LtnCapK LtnSmR] <anchor 270 0> @H;
+# baseClass LtnCapL <anchor 592 0> @H;
+# baseClass LtnCapM <anchor 1521 0> @H;
+# baseClass LtnCapN <anchor 1230 0> @H;
+# baseClass LtnCapO <anchor 717 0> @H;
+# baseClass [LtnCapS LtnSmC] <anchor 580 0> @H;
+# baseClass LtnCapT <anchor 622 0> @H;
+# baseClass LtnCapV <anchor 680 0> @H;
+# baseClass [LtnSmA LtnSmAAcute LtnSmACircum LtnSmADiaer LtnSmAGrave LtnSmARingAbv LtnSmATilde] <anchor 540 0> @H;
+# baseClass LtnSmB <anchor 590 0> @H;
+# baseClass LtnSmD <anchor 605 0> @H;
+# baseClass LtnSmE <anchor 545 0> @H;
+# baseClass LtnSmF <anchor 370 0> @H;
+# baseClass LtnSmG <anchor 545 -432> @H;
+# baseClass LtnSmH <anchor 250 0> @H;
+# baseClass LtnSmI <anchor 282 0> @H;
+# baseClass LtnSmK <anchor 243 0> @H;
+# baseClass LtnSmL <anchor 290 0> @H;
+# baseClass LtnSmM <anchor 1450 0> @H;
+# baseClass LtnSmN <anchor 970 0> @H;
+# baseClass LtnSmO <anchor 570 0> @H;
+# baseClass LtnSmP <anchor 265 -435> @H;
+# baseClass LtnSmS <anchor 495 0> @H;
+# baseClass LtnSmT <anchor 475 0> @H;
+# baseClass LtnSmU <anchor 589 0> @H;
+# baseClass LtnSmV <anchor 549 0> @H;
+# baseClass LtnSmX <anchor 900 0> @H;
+
+# AP: O
+@O = [DottedCirc LtnCapA LtnCapADiaer LtnCapA.alt LtnCapE LtnCapI LtnCapO LtnCapU LtnCapV LtnSmA LtnSmAAcute LtnSmACircum LtnSmADiaer LtnSmAGrave LtnSmARingAbv LtnSmATilde LtnSmE LtnSmI LtnSmO LtnSmU LtnSmV];
+# baseClass DottedCirc <anchor 810 0> @O;
+# baseClass [LtnCapA LtnCapADiaer] <anchor 1450 0> @O;
+# baseClass LtnCapA.alt <anchor -75 1460> @O;
+# baseClass LtnCapE <anchor 917 0> @O;
+# baseClass LtnCapI <anchor 673 0> @O;
+# baseClass LtnCapO <anchor 994 0> @O;
+# baseClass LtnCapU <anchor 1026 0> @O;
+# baseClass LtnCapV <anchor 880 0> @O;
+# baseClass [LtnSmA LtnSmAAcute LtnSmACircum LtnSmADiaer LtnSmAGrave LtnSmARingAbv LtnSmATilde] <anchor 1125 0> @O;
+# baseClass LtnSmE <anchor 925 0> @O;
+# baseClass LtnSmI <anchor 500 0> @O;
+# baseClass LtnSmO <anchor 835 0> @O;
+# baseClass LtnSmU <anchor 1192 0> @O;
+# baseClass LtnSmV <anchor 725 0> @O;
+
+# AP: R
+@R = [LtnCapE LtnCapI LtnCapL LtnCapO LtnCapU LtnSmA LtnSmAAcute LtnSmACircum LtnSmADiaer LtnSmAGrave LtnSmARingAbv LtnSmATilde LtnSmY LtnSmB LtnSmC LtnSmD LtnSmE LtnSmG LtnSmI LtnSmK LtnSmL LtnSmO LtnSmP LtnSmQ LtnSmT LtnSmU];
+# baseClass LtnCapE <anchor 1160 1200> @R;
+# baseClass LtnCapI <anchor 975 1200> @R;
+# baseClass LtnCapL <anchor 540 1200> @R;
+# baseClass LtnCapO <anchor 1460 1200> @R;
+# baseClass LtnCapU <anchor 1400 1200> @R;
+# baseClass [LtnSmA LtnSmAAcute LtnSmACircum LtnSmADiaer LtnSmAGrave LtnSmARingAbv LtnSmATilde LtnSmY] <anchor 1120 1000> @R;
+# baseClass LtnSmB <anchor 1155 1000> @R;
+# baseClass LtnSmC <anchor 1020 1000> @R;
+# baseClass LtnSmD <anchor 1190 1000> @R;
+# baseClass [LtnSmE LtnSmG] <anchor 1095 1000> @R;
+# baseClass LtnSmI <anchor 555 1000> @R;
+# baseClass LtnSmK <anchor 1035 1000> @R;
+# baseClass LtnSmL <anchor 550 1000> @R;
+# baseClass LtnSmO <anchor 1140 1000> @R;
+# baseClass LtnSmP <anchor 1170 1000> @R;
+# baseClass LtnSmQ <anchor 1130 1000> @R;
+# baseClass LtnSmT <anchor 835 1000> @R;
+# baseClass LtnSmU <anchor 1185 1000> @R;
+@base = [A a];
+@basex = [A.x a.x];
+@basey = [A.y a.y];
+feature alt {
+ sub A from [A.x A.y];
+ sub a from [a.x a.y];
+} alt;
diff --git a/tests/reference/ufo/psfmakefea.lg b/tests/reference/ufo/psfmakefea.lg
new file mode 100644
index 0000000..98ea8d4
--- /dev/null
+++ b/tests/reference/ufo/psfmakefea.lg
@@ -0,0 +1,2 @@
+2020-07-28 14:36:08 Progress: Running: psfmakefea -i tests/input/psfmakefea.feax -o local/testresults/ufo/psfmakefea.fea -l local/testresults/ufo/psfmakefea.log tests/input/font-psf-test/source/PsfTest-Regular.ufo
+2020-07-28 14:36:08 Progress: Reading UFO: tests/input/font-psf-test/source/PsfTest-Regular.ufo
diff --git a/tests/reference/ufo/psfmakewoffmetadata.lg b/tests/reference/ufo/psfmakewoffmetadata.lg
new file mode 100644
index 0000000..f866b62
--- /dev/null
+++ b/tests/reference/ufo/psfmakewoffmetadata.lg
@@ -0,0 +1,13 @@
+2022-03-07 14:44:21 Progress: Running: psfmakewoffmetadata tests/input/font-psf-test/source/PsfTest-Regular.ufo -n Test -i SIL -f tests/input/psfmakewoffmetadata.txt -o local/testresults/ufo/psfmakewoffmetadata.xml -l local/testresults/ufo/psfmakewoffmetadata.log
+2022-03-07 14:44:21 Progress: Reading UFO: tests/input/font-psf-test/source/PsfTest-Regular.ufo
+2022-03-07 14:44:21 Progress: Checking fontinfo.plist metadata
+2022-03-07 14:44:21 Warning: note is present - it's use is discouraged
+2022-03-07 14:44:21 Warning: openTypeOS2FamilyClass would be removed from fontinfo Old value: [0, 0]
+2022-03-07 14:44:21 Warning: openTypeOS2Selection would be added New value: [7]
+2022-03-07 14:44:21 Progress: Checking lib.plist metadata
+2022-03-07 14:44:21 Warning: com.schriftgestaltung.disablesAutomaticAlignment would be deleted - obsolete key Old value: True
+2022-03-07 14:44:21 Warning: com.schriftgestaltung.disablesLastChange would be deleted - obsolete key Old value: True
+2022-03-07 14:44:21 Progress: Check & fix results:- Errors: 0, Changes to make: 4, Other warnings: 1
+2022-03-07 14:44:21 Progress: See log file for details
+2022-03-07 14:44:21 Warning: WOFF field(s) missing from fontinfo.plist will be generated from FONTLOG.txt: woffMetadataCredits, woffMetadataDescription
+2022-03-07 14:44:21 Progress: Writing to : local/testresults/ufo/psfmakewoffmetadata.xml
diff --git a/tests/reference/ufo/psfmakewoffmetadata.xml b/tests/reference/ufo/psfmakewoffmetadata.xml
new file mode 100644
index 0000000..06a4ac1
--- /dev/null
+++ b/tests/reference/ufo/psfmakewoffmetadata.xml
@@ -0,0 +1,82 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<metadata version="1.0">
+ <uniqueid id="SIL.Test.5.550" />
+ <vendor name="SIL International" url="http://scripts.sil.org" />
+ <credits>
+ <credit
+ name="Victor Gaultney"
+ url="http://www.sil.org/~gaultney/"
+ role="Original Designer"
+ />
+ <credit
+ name="SIL font engineers"
+ url="http://scripts.sil.org/"
+ role="Graphite, OpenType, and TypeTuner code, and build support"
+ />
+ </credits>
+ <description>
+ <text lang="en">
+ There are intentional problems with the UFO!
+
+ Features
+ --------
+
+ What features?
+ </text>
+ </description>
+ <license url="http://scripts.sil.org/OFL" id="org.sil.ofl.1.1">
+ <text lang="en">
+ Copyright (c) 2004-2021 SIL International (http://www.sil.org/) with Reserved Font Names "Andika" and "SIL".
+
+ This Font Software is licensed under the SIL Open Font License, Version 1.1. This license is copied below, and is also available with a FAQ at: http://scripts.sil.org/OFL
+
+
+ -----------------------------------------------------------
+ SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
+ -----------------------------------------------------------
+
+ PREAMBLE
+ The goals of the Open Font License (OFL) are to stimulate worldwide development of collaborative font projects, to support the font creation efforts of academic and linguistic communities, and to provide a free and open framework in which fonts may be shared and improved in partnership with others.
+
+ The OFL allows the licensed fonts to be used, studied, modified and redistributed freely as long as they are not sold by themselves. The fonts, including any derivative works, can be bundled, embedded, redistributed and/or sold with any software provided that any reserved names are not used by derivative works. The fonts and derivatives, however, cannot be released under any other type of license. The requirement for fonts to remain under this license does not apply to any document created using the fonts or their derivatives.
+
+ DEFINITIONS
+ "Font Software" refers to the set of files released by the Copyright Holder(s) under this license and clearly marked as such. This may include source files, build scripts and documentation.
+
+ "Reserved Font Name" refers to any names specified as such after the copyright statement(s).
+
+ "Original Version" refers to the collection of Font Software components as distributed by the Copyright Holder(s).
+
+ "Modified Version" refers to any derivative made by adding to, deleting, or substituting -- in part or in whole -- any of the components of the Original Version, by changing formats or by porting the Font Software to a new environment.
+
+ "Author" refers to any designer, engineer, programmer, technical writer or other person who contributed to the Font Software.
+
+ PERMISSION &amp; CONDITIONS
+ Permission is hereby granted, free of charge, to any person obtaining a copy of the Font Software, to use, study, copy, merge, embed, modify, redistribute, and sell modified and unmodified copies of the Font Software, subject to the following conditions:
+
+ 1) Neither the Font Software nor any of its individual components, in Original or Modified Versions, may be sold by itself.
+
+ 2) Original or Modified Versions of the Font Software may be bundled, redistributed and/or sold with any software, provided that each copy contains the above copyright notice and this license. These can be included either as stand-alone text files, human-readable headers or in the appropriate machine-readable metadata fields within text or binary files as long as those fields can be easily viewed by the user.
+
+ 3) No Modified Version of the Font Software may use the Reserved Font Name(s) unless explicit written permission is granted by the corresponding Copyright Holder. This restriction only applies to the primary font name as presented to the users.
+
+ 4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font Software shall not be used to promote, endorse or advertise any Modified Version, except to acknowledge the contribution(s) of the Copyright Holder(s) and the Author(s) or with their explicit written permission.
+
+ 5) The Font Software, modified or unmodified, in part or in whole, must be distributed entirely under this license, and must not be distributed under any other license. The requirement for fonts to remain under this license does not apply to any document created using the Font Software.
+
+ TERMINATION
+ This license becomes null and void if any of the above conditions are not met.
+
+ DISCLAIMER
+ THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM OTHER DEALINGS IN THE FONT SOFTWARE.
+ </text>
+ </license>
+ <copyright>
+ <text lang="en">
+ Copyright (c) 2004-2021 SIL International
+ </text>
+ </copyright>
+ <trademark>
+ <text lang="en">Andika is a trademark of SIL International.</text>
+ </trademark>
+</metadata> \ No newline at end of file
diff --git a/tests/reference/ufo/psfnormalize.lg b/tests/reference/ufo/psfnormalize.lg
new file mode 100644
index 0000000..313c267
--- /dev/null
+++ b/tests/reference/ufo/psfnormalize.lg
@@ -0,0 +1,18 @@
+2021-06-29 14:42:23 Progress: Running: psfnormalize tests/input/font-psf-test/source/PsfTest-Italic.ufo -l local/testresults/ufo/psfnormalize.log -p checkfix=fix
+2021-06-29 14:42:23 Progress: Reading UFO: tests/input/font-psf-test/source/PsfTest-Italic.ufo
+2021-06-29 14:42:23 Progress: Checking fontinfo.plist metadata
+2021-06-29 14:42:23 Warning: openTypeOS2FamilyClass removed from fontinfo. Old value: [0, 0]
+2021-06-29 14:42:23 Warning: year removed from fontinfo. Old value: 2021
+2021-06-29 14:42:23 Warning: capHeight updated Old value: 1485.3, new value: 1485
+2021-06-29 14:42:23 Warning: styleMapFamilyName uppdated Old value: Psf test, new value: Psf Test
+2021-06-29 14:42:23 Warning: openTypeOS2TypoLineGap updated Old value: 1, new value: 0
+2021-06-29 14:42:23 Warning: openTypeOS2Selection added New value: [7]
+2021-06-29 14:42:23 Warning: openTypeNamePreferredFamilyName updated Old value: Psf Testing, new value: Psf Test
+2021-06-29 14:42:23 Progress: Checking lib.plist metadata
+2021-06-29 14:42:23 Warning: com.schriftgestaltung.disablesAutomaticAlignment deleted - obsolete key Old value: True
+2021-06-29 14:42:23 Warning: com.schriftgestaltung.disablesLastChange deleted - obsolete key Old value: True
+2021-06-29 14:42:23 Progress: Check & fix results:- Errors: 0, Changes made: 9, Other warnings: 0
+2021-06-29 14:42:23 Progress: See log file for details
+2021-06-29 14:42:23 Progress: Processing font for output
+2021-06-29 14:42:23 Progress: Output UFO already exists - reading for comparison
+2021-06-29 14:42:23 Progress: Writing font to local/testresults/ufo/psfnormalize.ufo
diff --git a/tests/reference/ufo/psfnormalize.ufo/fontinfo.plist b/tests/reference/ufo/psfnormalize.ufo/fontinfo.plist
new file mode 100644
index 0000000..d5f4bef
--- /dev/null
+++ b/tests/reference/ufo/psfnormalize.ufo/fontinfo.plist
@@ -0,0 +1,240 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>ascender</key>
+ <integer>2100</integer>
+ <key>capHeight</key>
+ <integer>1485</integer>
+ <key>copyright</key>
+ <string>Copyright (c) 2004-2021 SIL International</string>
+ <key>descender</key>
+ <integer>-550</integer>
+ <key>familyName</key>
+ <string>Psf Test</string>
+ <key>italicAngle</key>
+ <integer>-14</integer>
+ <key>openTypeHeadCreated</key>
+ <string>2021/06/29 14:43:53</string>
+ <key>openTypeHheaAscender</key>
+ <integer>2100</integer>
+ <key>openTypeHheaDescender</key>
+ <integer>-550</integer>
+ <key>openTypeHheaLineGap</key>
+ <integer>0</integer>
+ <key>openTypeNameDescription</key>
+ <string>Copyright (c) 2004-2021 SIL International</string>
+ <key>openTypeNameDesigner</key>
+ <string>Victor Gaultney, Annie Olsen, Julie Remington, Don Collingsworth, Eric Hays, Becca Hirsbrunner</string>
+ <key>openTypeNameDesignerURL</key>
+ <string>http://scripts.sil.org/</string>
+ <key>openTypeNameLicense</key>
+ <string>Copyright (c) 2004-2021 SIL International (http://www.sil.org/) with Reserved Font Names "Andika" and "SIL".
+
+This Font Software is licensed under the SIL Open Font License, Version 1.1. This license is copied below, and is also available with a FAQ at: http://scripts.sil.org/OFL
+
+
+-----------------------------------------------------------
+SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
+-----------------------------------------------------------
+
+PREAMBLE
+The goals of the Open Font License (OFL) are to stimulate worldwide development of collaborative font projects, to support the font creation efforts of academic and linguistic communities, and to provide a free and open framework in which fonts may be shared and improved in partnership with others.
+
+The OFL allows the licensed fonts to be used, studied, modified and redistributed freely as long as they are not sold by themselves. The fonts, including any derivative works, can be bundled, embedded, redistributed and/or sold with any software provided that any reserved names are not used by derivative works. The fonts and derivatives, however, cannot be released under any other type of license. The requirement for fonts to remain under this license does not apply to any document created using the fonts or their derivatives.
+
+DEFINITIONS
+"Font Software" refers to the set of files released by the Copyright Holder(s) under this license and clearly marked as such. This may include source files, build scripts and documentation.
+
+"Reserved Font Name" refers to any names specified as such after the copyright statement(s).
+
+"Original Version" refers to the collection of Font Software components as distributed by the Copyright Holder(s).
+
+"Modified Version" refers to any derivative made by adding to, deleting, or substituting -- in part or in whole -- any of the components of the Original Version, by changing formats or by porting the Font Software to a new environment.
+
+"Author" refers to any designer, engineer, programmer, technical writer or other person who contributed to the Font Software.
+
+PERMISSION &amp; CONDITIONS
+Permission is hereby granted, free of charge, to any person obtaining a copy of the Font Software, to use, study, copy, merge, embed, modify, redistribute, and sell modified and unmodified copies of the Font Software, subject to the following conditions:
+
+1) Neither the Font Software nor any of its individual components, in Original or Modified Versions, may be sold by itself.
+
+2) Original or Modified Versions of the Font Software may be bundled, redistributed and/or sold with any software, provided that each copy contains the above copyright notice and this license. These can be included either as stand-alone text files, human-readable headers or in the appropriate machine-readable metadata fields within text or binary files as long as those fields can be easily viewed by the user.
+
+3) No Modified Version of the Font Software may use the Reserved Font Name(s) unless explicit written permission is granted by the corresponding Copyright Holder. This restriction only applies to the primary font name as presented to the users.
+
+4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font Software shall not be used to promote, endorse or advertise any Modified Version, except to acknowledge the contribution(s) of the Copyright Holder(s) and the Author(s) or with their explicit written permission.
+
+5) The Font Software, modified or unmodified, in part or in whole, must be distributed entirely under this license, and must not be distributed under any other license. The requirement for fonts to remain under this license does not apply to any document created using the Font Software.
+
+TERMINATION
+This license becomes null and void if any of the above conditions are not met.
+
+DISCLAIMER
+THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM OTHER DEALINGS IN THE FONT SOFTWARE.</string>
+ <key>openTypeNameLicenseURL</key>
+ <string>http://scripts.sil.org/OFL</string>
+ <key>openTypeNameManufacturer</key>
+ <string>SIL International</string>
+ <key>openTypeNameManufacturerURL</key>
+ <string>http://scripts.sil.org</string>
+ <key>openTypeNamePreferredFamilyName</key>
+ <string>Psf Test</string>
+ <key>openTypeNamePreferredSubfamilyName</key>
+ <string>Italic</string>
+ <key>openTypeNameUniqueID</key>
+ <string>SIL International: Psf Test Italic: 2022</string>
+ <key>openTypeNameVersion</key>
+ <string>Version 5.550</string>
+ <key>openTypeOS2CodePageRanges</key>
+ <array>
+ <integer>0</integer>
+ <integer>1</integer>
+ <integer>2</integer>
+ <integer>4</integer>
+ <integer>7</integer>
+ <integer>8</integer>
+ </array>
+ <key>openTypeOS2Panose</key>
+ <array>
+ <integer>2</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ </array>
+ <key>openTypeOS2Selection</key>
+ <array>
+ <integer>7</integer>
+ </array>
+ <key>openTypeOS2StrikeoutPosition</key>
+ <integer>700</integer>
+ <key>openTypeOS2StrikeoutSize</key>
+ <integer>100</integer>
+ <key>openTypeOS2SubscriptXOffset</key>
+ <integer>0</integer>
+ <key>openTypeOS2SubscriptXSize</key>
+ <integer>1433</integer>
+ <key>openTypeOS2SubscriptYOffset</key>
+ <integer>286</integer>
+ <key>openTypeOS2SubscriptYSize</key>
+ <integer>1331</integer>
+ <key>openTypeOS2SuperscriptXOffset</key>
+ <integer>0</integer>
+ <key>openTypeOS2SuperscriptXSize</key>
+ <integer>1433</integer>
+ <key>openTypeOS2SuperscriptYOffset</key>
+ <integer>976</integer>
+ <key>openTypeOS2SuperscriptYSize</key>
+ <integer>1331</integer>
+ <key>openTypeOS2Type</key>
+ <array/>
+ <key>openTypeOS2TypoAscender</key>
+ <integer>2100</integer>
+ <key>openTypeOS2TypoDescender</key>
+ <integer>-550</integer>
+ <key>openTypeOS2TypoLineGap</key>
+ <integer>0</integer>
+ <key>openTypeOS2UnicodeRanges</key>
+ <array>
+ <integer>0</integer>
+ <integer>1</integer>
+ <integer>6</integer>
+ <integer>7</integer>
+ <integer>31</integer>
+ <integer>33</integer>
+ <integer>35</integer>
+ <integer>36</integer>
+ <integer>37</integer>
+ <integer>38</integer>
+ <integer>39</integer>
+ <integer>40</integer>
+ <integer>45</integer>
+ <integer>46</integer>
+ <integer>47</integer>
+ <integer>57</integer>
+ <integer>60</integer>
+ <integer>62</integer>
+ <integer>64</integer>
+ <integer>67</integer>
+ <integer>69</integer>
+ <integer>89</integer>
+ </array>
+ <key>openTypeOS2VendorID</key>
+ <string>SIL</string>
+ <key>openTypeOS2WeightClass</key>
+ <integer>400</integer>
+ <key>openTypeOS2WidthClass</key>
+ <integer>5</integer>
+ <key>openTypeOS2WinAscent</key>
+ <integer>2100</integer>
+ <key>openTypeOS2WinDescent</key>
+ <integer>550</integer>
+ <key>postscriptBlueValues</key>
+ <array>
+ <integer>-490</integer>
+ <integer>-490</integer>
+ <integer>-25</integer>
+ <integer>0</integer>
+ <integer>1020</integer>
+ <integer>1040</integer>
+ <integer>1455</integer>
+ <integer>1485</integer>
+ <integer>1600</integer>
+ <integer>1620</integer>
+ </array>
+ <key>postscriptFontName</key>
+ <string>PsfTest-Italic</string>
+ <key>postscriptFullName</key>
+ <string>Psf Test Italic</string>
+ <key>postscriptStemSnapH</key>
+ <array>
+ <integer>140</integer>
+ <integer>145</integer>
+ <integer>150</integer>
+ <integer>155</integer>
+ <integer>160</integer>
+ <integer>165</integer>
+ <integer>170</integer>
+ <integer>175</integer>
+ <integer>185</integer>
+ <integer>270</integer>
+ </array>
+ <key>postscriptStemSnapV</key>
+ <array>
+ <integer>165</integer>
+ <integer>180</integer>
+ <integer>185</integer>
+ <integer>190</integer>
+ <integer>195</integer>
+ <integer>200</integer>
+ <integer>205</integer>
+ <integer>270</integer>
+ </array>
+ <key>postscriptUnderlinePosition</key>
+ <integer>-110</integer>
+ <key>postscriptUnderlineThickness</key>
+ <integer>80</integer>
+ <key>styleMapFamilyName</key>
+ <string>Psf Test</string>
+ <key>styleMapStyleName</key>
+ <string>italic</string>
+ <key>styleName</key>
+ <string>Italic</string>
+ <key>trademark</key>
+ <string>Andika is a trademark of SIL International.</string>
+ <key>unitsPerEm</key>
+ <integer>2048</integer>
+ <key>versionMajor</key>
+ <integer>5</integer>
+ <key>versionMinor</key>
+ <integer>550</integer>
+ <key>xHeight</key>
+ <integer>1040</integer>
+</dict>
+</plist>
diff --git a/tests/reference/ufo/psfnormalize.ufo/glyphs/A_mpersand.glif b/tests/reference/ufo/psfnormalize.ufo/glyphs/A_mpersand.glif
new file mode 100644
index 0000000..689cb3e
--- /dev/null
+++ b/tests/reference/ufo/psfnormalize.ufo/glyphs/A_mpersand.glif
@@ -0,0 +1,61 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Ampersand" format="2">
+ <advance width="1202"/>
+ <unicode hex="0026"/>
+ <outline>
+ <contour>
+ <point x="1054" y="559" type="line"/>
+ <point x="949" y="395"/>
+ <point x="616" y="147"/>
+ <point x="441" y="147" type="curve" smooth="yes"/>
+ <point x="318" y="147"/>
+ <point x="256" y="224"/>
+ <point x="256" y="314" type="curve" smooth="yes"/>
+ <point x="256" y="453"/>
+ <point x="369" y="575"/>
+ <point x="590" y="725" type="curve" smooth="yes"/>
+ <point x="836" y="892"/>
+ <point x="1022" y="1067"/>
+ <point x="1022" y="1223" type="curve" smooth="yes"/>
+ <point x="1022" y="1363"/>
+ <point x="894" y="1455"/>
+ <point x="762" y="1455" type="curve" smooth="yes"/>
+ <point x="504" y="1455"/>
+ <point x="378" y="1328"/>
+ <point x="378" y="1114" type="curve" smooth="yes"/>
+ <point x="378" y="953"/>
+ <point x="514" y="771"/>
+ <point x="614" y="559" type="curve" smooth="yes"/>
+ <point x="783" y="198"/>
+ <point x="906" y="-25"/>
+ <point x="958" y="-25" type="curve" smooth="yes"/>
+ <point x="993" y="-25"/>
+ <point x="1087" y="37"/>
+ <point x="1132" y="69" type="curve"/>
+ <point x="1046" y="108"/>
+ <point x="926" y="291"/>
+ <point x="756" y="666" type="curve" smooth="yes"/>
+ <point x="665" y="866"/>
+ <point x="544" y="1029"/>
+ <point x="544" y="1149" type="curve" smooth="yes"/>
+ <point x="544" y="1252"/>
+ <point x="632" y="1323"/>
+ <point x="724" y="1323" type="curve" smooth="yes"/>
+ <point x="794" y="1323"/>
+ <point x="858" y="1266"/>
+ <point x="858" y="1193" type="curve" smooth="yes"/>
+ <point x="858" y="1107"/>
+ <point x="743" y="1004"/>
+ <point x="492" y="826" type="curve" smooth="yes"/>
+ <point x="182" y="606"/>
+ <point x="73" y="439"/>
+ <point x="73" y="288" type="curve" smooth="yes"/>
+ <point x="73" y="113"/>
+ <point x="195" y="-25"/>
+ <point x="383" y="-25" type="curve" smooth="yes"/>
+ <point x="656" y="-25"/>
+ <point x="1009" y="269"/>
+ <point x="1126" y="426" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfnormalize.ufo/glyphs/A_pos.glif b/tests/reference/ufo/psfnormalize.ufo/glyphs/A_pos.glif
new file mode 100644
index 0000000..deb1650
--- /dev/null
+++ b/tests/reference/ufo/psfnormalize.ufo/glyphs/A_pos.glif
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Apos" format="2">
+ <advance width="585"/>
+ <unicode hex="0027"/>
+ <outline>
+ <contour>
+ <point x="560" y="1024" type="line"/>
+ <point x="599" y="1162"/>
+ <point x="643" y="1312"/>
+ <point x="732" y="1553" type="curve"/>
+ <point x="527" y="1553" type="line"/>
+ <point x="498" y="1312"/>
+ <point x="465" y="1162"/>
+ <point x="435" y="1024" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfnormalize.ufo/glyphs/A_sterisk.glif b/tests/reference/ufo/psfnormalize.ufo/glyphs/A_sterisk.glif
new file mode 100644
index 0000000..3027a5d
--- /dev/null
+++ b/tests/reference/ufo/psfnormalize.ufo/glyphs/A_sterisk.glif
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Asterisk" format="2">
+ <advance width="1008"/>
+ <unicode hex="002A"/>
+ <outline>
+ <contour>
+ <point x="745" y="1568" type="line"/>
+ <point x="733" y="1438"/>
+ <point x="725" y="1359"/>
+ <point x="707" y="1274" type="curve"/>
+ <point x="644" y="1317"/>
+ <point x="587" y="1359"/>
+ <point x="498" y="1436" type="curve"/>
+ <point x="392" y="1313" type="line"/>
+ <point x="505" y="1264"/>
+ <point x="575" y="1236"/>
+ <point x="643" y="1196" type="curve"/>
+ <point x="556" y="1153"/>
+ <point x="474" y="1117"/>
+ <point x="340" y="1063" type="curve"/>
+ <point x="379" y="941" type="line"/>
+ <point x="504" y="1021"/>
+ <point x="584" y="1072"/>
+ <point x="668" y="1117" type="curve"/>
+ <point x="645" y="1034"/>
+ <point x="619" y="954"/>
+ <point x="575" y="823" type="curve"/>
+ <point x="715" y="823" type="line"/>
+ <point x="727" y="954"/>
+ <point x="741" y="1031"/>
+ <point x="758" y="1117" type="curve"/>
+ <point x="821" y="1073"/>
+ <point x="878" y="1032"/>
+ <point x="968" y="956" type="curve"/>
+ <point x="1073" y="1078" type="line"/>
+ <point x="959" y="1126"/>
+ <point x="890" y="1155"/>
+ <point x="823" y="1196" type="curve"/>
+ <point x="909" y="1236"/>
+ <point x="990" y="1273"/>
+ <point x="1126" y="1328" type="curve"/>
+ <point x="1086" y="1450" type="line"/>
+ <point x="961" y="1368"/>
+ <point x="883" y="1321"/>
+ <point x="797" y="1274" type="curve"/>
+ <point x="819" y="1359"/>
+ <point x="845" y="1438"/>
+ <point x="890" y="1568" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfnormalize.ufo/glyphs/A_tS_gn.glif b/tests/reference/ufo/psfnormalize.ufo/glyphs/A_tS_gn.glif
new file mode 100644
index 0000000..2cd2542
--- /dev/null
+++ b/tests/reference/ufo/psfnormalize.ufo/glyphs/A_tS_gn.glif
@@ -0,0 +1,104 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="AtSgn" format="2">
+ <advance width="1682"/>
+ <unicode hex="0040"/>
+ <outline>
+ <contour>
+ <point x="1082" y="-10" type="line"/>
+ <point x="980" y="-69"/>
+ <point x="889" y="-93"/>
+ <point x="796" y="-93" type="curve" smooth="yes"/>
+ <point x="507" y="-93"/>
+ <point x="301" y="104"/>
+ <point x="301" y="414" type="curve" smooth="yes"/>
+ <point x="301" y="476"/>
+ <point x="309" y="543"/>
+ <point x="327" y="613" type="curve" smooth="yes"/>
+ <point x="425" y="1003"/>
+ <point x="782" y="1245"/>
+ <point x="1110" y="1245" type="curve" smooth="yes"/>
+ <point x="1433" y="1245"/>
+ <point x="1590" y="1060"/>
+ <point x="1590" y="813" type="curve" smooth="yes"/>
+ <point x="1590" y="760"/>
+ <point x="1582" y="705"/>
+ <point x="1568" y="647" type="curve" smooth="yes"/>
+ <point x="1510" y="413"/>
+ <point x="1365" y="309"/>
+ <point x="1297" y="309" type="curve" smooth="yes"/>
+ <point x="1261" y="309"/>
+ <point x="1238" y="344"/>
+ <point x="1238" y="420" type="curve" smooth="yes"/>
+ <point x="1238" y="468"/>
+ <point x="1247" y="533"/>
+ <point x="1268" y="617" type="curve" smooth="yes"/>
+ <point x="1354" y="960" type="line"/>
+ <point x="1276" y="995"/>
+ <point x="1155" y="1019"/>
+ <point x="1074" y="1019" type="curve" smooth="yes"/>
+ <point x="910" y="1019"/>
+ <point x="790" y="962"/>
+ <point x="673" y="828" type="curve" smooth="yes"/>
+ <point x="607" y="751"/>
+ <point x="554" y="650"/>
+ <point x="524" y="529" type="curve" smooth="yes"/>
+ <point x="514" y="488"/>
+ <point x="509" y="450"/>
+ <point x="509" y="416" type="curve" smooth="yes"/>
+ <point x="509" y="259"/>
+ <point x="609" y="179"/>
+ <point x="719" y="179" type="curve" smooth="yes"/>
+ <point x="836" y="179"/>
+ <point x="1017" y="359"/>
+ <point x="1099" y="480" type="curve"/>
+ <point x="1093" y="446"/>
+ <point x="1089" y="413"/>
+ <point x="1089" y="382" type="curve" smooth="yes"/>
+ <point x="1089" y="264"/>
+ <point x="1136" y="176"/>
+ <point x="1233" y="176" type="curve" smooth="yes"/>
+ <point x="1408" y="176"/>
+ <point x="1635" y="331"/>
+ <point x="1716" y="656" type="curve" smooth="yes"/>
+ <point x="1732" y="722"/>
+ <point x="1740" y="784"/>
+ <point x="1740" y="843" type="curve" smooth="yes"/>
+ <point x="1740" y="1161"/>
+ <point x="1513" y="1377"/>
+ <point x="1153" y="1377" type="curve" smooth="yes"/>
+ <point x="738" y="1377"/>
+ <point x="310" y="1143"/>
+ <point x="175" y="603" type="curve" smooth="yes"/>
+ <point x="155" y="522"/>
+ <point x="145" y="446"/>
+ <point x="145" y="375" type="curve" smooth="yes"/>
+ <point x="145" y="-5"/>
+ <point x="417" y="-230"/>
+ <point x="747" y="-230" type="curve" smooth="yes"/>
+ <point x="882" y="-230"/>
+ <point x="1044" y="-184"/>
+ <point x="1161" y="-116" type="curve"/>
+ </contour>
+ <contour>
+ <point x="1141" y="706" type="line"/>
+ <point x="1075" y="570"/>
+ <point x="856" y="314"/>
+ <point x="766" y="314" type="curve" smooth="yes"/>
+ <point x="712" y="314"/>
+ <point x="669" y="362"/>
+ <point x="669" y="459" type="curve" smooth="yes"/>
+ <point x="669" y="491"/>
+ <point x="674" y="530"/>
+ <point x="685" y="573" type="curve" smooth="yes"/>
+ <point x="704" y="649"/>
+ <point x="739" y="726"/>
+ <point x="780" y="774" type="curve" smooth="yes"/>
+ <point x="859" y="868"/>
+ <point x="943" y="887"/>
+ <point x="1011" y="887" type="curve" smooth="yes"/>
+ <point x="1085" y="887"/>
+ <point x="1148" y="868"/>
+ <point x="1177" y="853" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfnormalize.ufo/glyphs/C_ircumA_ccent.glif b/tests/reference/ufo/psfnormalize.ufo/glyphs/C_ircumA_ccent.glif
new file mode 100644
index 0000000..91ab811
--- /dev/null
+++ b/tests/reference/ufo/psfnormalize.ufo/glyphs/C_ircumA_ccent.glif
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="CircumAccent" format="2">
+ <advance width="830"/>
+ <unicode hex="005E"/>
+ <anchor x="705" y="1635" name="U"/>
+ <outline>
+ <contour>
+ <point x="316" y="1147" type="line"/>
+ <point x="660" y="1421" type="line"/>
+ <point x="866" y="1147" type="line"/>
+ <point x="1015" y="1147" type="line"/>
+ <point x="761" y="1568" type="line"/>
+ <point x="591" y="1568" type="line"/>
+ <point x="166" y="1147" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfnormalize.ufo/glyphs/C_olon.glif b/tests/reference/ufo/psfnormalize.ufo/glyphs/C_olon.glif
new file mode 100644
index 0000000..bcccfc2
--- /dev/null
+++ b/tests/reference/ufo/psfnormalize.ufo/glyphs/C_olon.glif
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Colon" format="2">
+ <advance width="620"/>
+ <unicode hex="003A"/>
+ <outline>
+ <contour>
+ <point x="314" y="758" type="curve" smooth="yes"/>
+ <point x="314" y="696"/>
+ <point x="365" y="642"/>
+ <point x="430" y="642" type="curve" smooth="yes"/>
+ <point x="514" y="642"/>
+ <point x="590" y="712"/>
+ <point x="590" y="792" type="curve" smooth="yes"/>
+ <point x="590" y="854"/>
+ <point x="540" y="907"/>
+ <point x="476" y="907" type="curve" smooth="yes"/>
+ <point x="393" y="907"/>
+ <point x="314" y="837"/>
+ </contour>
+ <contour>
+ <point x="148" y="90" type="curve" smooth="yes"/>
+ <point x="148" y="28"/>
+ <point x="198" y="-25"/>
+ <point x="263" y="-25" type="curve" smooth="yes"/>
+ <point x="347" y="-25"/>
+ <point x="424" y="45"/>
+ <point x="424" y="125" type="curve" smooth="yes"/>
+ <point x="424" y="186"/>
+ <point x="374" y="240"/>
+ <point x="309" y="240" type="curve" smooth="yes"/>
+ <point x="225" y="240"/>
+ <point x="148" y="170"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfnormalize.ufo/glyphs/C_ombA_cute.glif b/tests/reference/ufo/psfnormalize.ufo/glyphs/C_ombA_cute.glif
new file mode 100644
index 0000000..a7607fe
--- /dev/null
+++ b/tests/reference/ufo/psfnormalize.ufo/glyphs/C_ombA_cute.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="CombAcute" format="2">
+ <unicode hex="0301"/>
+ <anchor x="-221" y="1635" name="U"/>
+ <anchor x="-355" y="1100" name="_U"/>
+ <outline>
+ <contour>
+ <point x="-99" y="1568" type="line"/>
+ <point x="-524" y="1147" type="line"/>
+ <point x="-354" y="1147" type="line"/>
+ <point x="150" y="1568" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfnormalize.ufo/glyphs/C_ombC_ircum.glif b/tests/reference/ufo/psfnormalize.ufo/glyphs/C_ombC_ircum.glif
new file mode 100644
index 0000000..6614f85
--- /dev/null
+++ b/tests/reference/ufo/psfnormalize.ufo/glyphs/C_ombC_ircum.glif
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="CombCircum" format="2">
+ <unicode hex="0302"/>
+ <anchor x="-221" y="1635" name="U"/>
+ <anchor x="-320" y="1100" name="_U"/>
+ <outline>
+ <contour>
+ <point x="-619" y="1147" type="line"/>
+ <point x="-275" y="1421" type="line"/>
+ <point x="-69" y="1147" type="line"/>
+ <point x="80" y="1147" type="line"/>
+ <point x="-174" y="1568" type="line"/>
+ <point x="-344" y="1568" type="line"/>
+ <point x="-769" y="1147" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfnormalize.ufo/glyphs/C_ombD_iaer.glif b/tests/reference/ufo/psfnormalize.ufo/glyphs/C_ombD_iaer.glif
new file mode 100644
index 0000000..d6b35b7
--- /dev/null
+++ b/tests/reference/ufo/psfnormalize.ufo/glyphs/C_ombD_iaer.glif
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="CombDiaer" format="2">
+ <unicode hex="0308"/>
+ <anchor x="-253" y="1505" name="U"/>
+ <anchor x="-350" y="1100" name="_U"/>
+ <outline>
+ <contour>
+ <point x="39" y="1338" type="curve" smooth="yes"/>
+ <point x="39" y="1399"/>
+ <point x="-7" y="1450"/>
+ <point x="-72" y="1450" type="curve" smooth="yes"/>
+ <point x="-167" y="1450"/>
+ <point x="-229" y="1372"/>
+ <point x="-229" y="1299" type="curve" smooth="yes"/>
+ <point x="-229" y="1238"/>
+ <point x="-182" y="1186"/>
+ <point x="-118" y="1186" type="curve" smooth="yes"/>
+ <point x="-33" y="1186"/>
+ <point x="39" y="1259"/>
+ </contour>
+ <contour>
+ <point x="-381" y="1338" type="curve" smooth="yes"/>
+ <point x="-381" y="1399"/>
+ <point x="-427" y="1450"/>
+ <point x="-492" y="1450" type="curve" smooth="yes"/>
+ <point x="-587" y="1450"/>
+ <point x="-649" y="1372"/>
+ <point x="-649" y="1299" type="curve" smooth="yes"/>
+ <point x="-649" y="1238"/>
+ <point x="-602" y="1186"/>
+ <point x="-538" y="1186" type="curve" smooth="yes"/>
+ <point x="-453" y="1186"/>
+ <point x="-381" y="1259"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfnormalize.ufo/glyphs/C_ombG_rave.glif b/tests/reference/ufo/psfnormalize.ufo/glyphs/C_ombG_rave.glif
new file mode 100644
index 0000000..8869bb9
--- /dev/null
+++ b/tests/reference/ufo/psfnormalize.ufo/glyphs/C_ombG_rave.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="CombGrave" format="2">
+ <unicode hex="0300"/>
+ <anchor x="-201" y="1635" name="U"/>
+ <anchor x="-335" y="1100" name="_U"/>
+ <outline>
+ <contour>
+ <point x="-619" y="1568" type="line"/>
+ <point x="-284" y="1147" type="line"/>
+ <point x="-134" y="1147" type="line"/>
+ <point x="-409" y="1568" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfnormalize.ufo/glyphs/C_ombR_ingA_bv.glif b/tests/reference/ufo/psfnormalize.ufo/glyphs/C_ombR_ingA_bv.glif
new file mode 100644
index 0000000..38232a0
--- /dev/null
+++ b/tests/reference/ufo/psfnormalize.ufo/glyphs/C_ombR_ingA_bv.glif
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="CombRingAbv" format="2">
+ <unicode hex="030A"/>
+ <anchor x="-221" y="1635" name="U"/>
+ <anchor x="-385" y="1100" name="_U"/>
+ <outline>
+ <contour>
+ <point x="-377" y="1259" type="curve" smooth="yes"/>
+ <point x="-427" y="1259"/>
+ <point x="-456" y="1287"/>
+ <point x="-456" y="1329" type="curve" smooth="yes"/>
+ <point x="-456" y="1400"/>
+ <point x="-393" y="1455"/>
+ <point x="-328" y="1455" type="curve" smooth="yes"/>
+ <point x="-278" y="1455"/>
+ <point x="-248" y="1428"/>
+ <point x="-248" y="1385" type="curve" smooth="yes"/>
+ <point x="-248" y="1314"/>
+ <point x="-312" y="1259"/>
+ </contour>
+ <contour>
+ <point x="-573" y="1320" type="curve" smooth="yes"/>
+ <point x="-573" y="1224"/>
+ <point x="-498" y="1147"/>
+ <point x="-395" y="1147" type="curve" smooth="yes"/>
+ <point x="-257" y="1147"/>
+ <point x="-131" y="1263"/>
+ <point x="-131" y="1394" type="curve" smooth="yes"/>
+ <point x="-131" y="1491"/>
+ <point x="-206" y="1568"/>
+ <point x="-310" y="1568" type="curve" smooth="yes"/>
+ <point x="-448" y="1568"/>
+ <point x="-573" y="1451"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfnormalize.ufo/glyphs/C_ombT_ilde.glif b/tests/reference/ufo/psfnormalize.ufo/glyphs/C_ombT_ilde.glif
new file mode 100644
index 0000000..f79322e
--- /dev/null
+++ b/tests/reference/ufo/psfnormalize.ufo/glyphs/C_ombT_ilde.glif
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="CombTilde" format="2">
+ <unicode hex="0303"/>
+ <anchor x="-290" y="1475" name="U"/>
+ <anchor x="-385" y="1100" name="_U"/>
+ <outline>
+ <contour>
+ <point x="-646" y="1181" type="line"/>
+ <point x="-629" y="1229"/>
+ <point x="-589" y="1269"/>
+ <point x="-540" y="1269" type="curve" smooth="yes"/>
+ <point x="-503" y="1269"/>
+ <point x="-466" y="1253"/>
+ <point x="-398" y="1218" type="curve" smooth="yes"/>
+ <point x="-344" y="1190"/>
+ <point x="-296" y="1171"/>
+ <point x="-243" y="1171" type="curve" smooth="yes"/>
+ <point x="-120" y="1171"/>
+ <point x="-15" y="1286"/>
+ <point x="16" y="1411" type="curve"/>
+ <point x="-89" y="1411" type="line"/>
+ <point x="-107" y="1366"/>
+ <point x="-147" y="1323"/>
+ <point x="-194" y="1323" type="curve" smooth="yes"/>
+ <point x="-236" y="1323"/>
+ <point x="-273" y="1342"/>
+ <point x="-338" y="1370" type="curve" smooth="yes"/>
+ <point x="-401" y="1397"/>
+ <point x="-442" y="1421"/>
+ <point x="-498" y="1421" type="curve" smooth="yes"/>
+ <point x="-617" y="1421"/>
+ <point x="-721" y="1300"/>
+ <point x="-751" y="1181" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfnormalize.ufo/glyphs/C_omma.glif b/tests/reference/ufo/psfnormalize.ufo/glyphs/C_omma.glif
new file mode 100644
index 0000000..eaff517
--- /dev/null
+++ b/tests/reference/ufo/psfnormalize.ufo/glyphs/C_omma.glif
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Comma" format="2">
+ <advance width="630"/>
+ <unicode hex="002C"/>
+ <outline>
+ <contour>
+ <point x="137" y="49" type="line"/>
+ <point x="277" y="49" type="line"/>
+ <point x="252" y="-50"/>
+ <point x="145" y="-169"/>
+ <point x="73" y="-225" type="curve"/>
+ <point x="163" y="-265" type="line"/>
+ <point x="280" y="-175"/>
+ <point x="431" y="-28"/>
+ <point x="431" y="118" type="curve" smooth="yes"/>
+ <point x="431" y="193"/>
+ <point x="378" y="245"/>
+ <point x="311" y="245" type="curve" smooth="yes"/>
+ <point x="254" y="245"/>
+ <point x="190" y="209"/>
+ <point x="161" y="147" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfnormalize.ufo/glyphs/D_igitE_ight.glif b/tests/reference/ufo/psfnormalize.ufo/glyphs/D_igitE_ight.glif
new file mode 100644
index 0000000..262f860
--- /dev/null
+++ b/tests/reference/ufo/psfnormalize.ufo/glyphs/D_igitE_ight.glif
@@ -0,0 +1,63 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitEight" format="2">
+ <advance width="1180"/>
+ <unicode hex="0038"/>
+ <anchor x="515" y="-100" name="L"/>
+ <anchor x="922" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="542" y="-25" type="curve" smooth="yes"/>
+ <point x="839" y="-25"/>
+ <point x="1160" y="170"/>
+ <point x="1160" y="475" type="curve" smooth="yes"/>
+ <point x="1160" y="626"/>
+ <point x="1068" y="733"/>
+ <point x="988" y="779" type="curve"/>
+ <point x="1155" y="860"/>
+ <point x="1270" y="970"/>
+ <point x="1270" y="1151" type="curve" smooth="yes"/>
+ <point x="1270" y="1340"/>
+ <point x="1102" y="1455"/>
+ <point x="901" y="1455" type="curve" smooth="yes"/>
+ <point x="620" y="1455"/>
+ <point x="348" y="1292"/>
+ <point x="348" y="1018" type="curve" smooth="yes"/>
+ <point x="348" y="891"/>
+ <point x="427" y="814"/>
+ <point x="483" y="779" type="curve"/>
+ <point x="297" y="706"/>
+ <point x="115" y="549"/>
+ <point x="115" y="325" type="curve" smooth="yes"/>
+ <point x="115" y="111"/>
+ <point x="317" y="-25"/>
+ </contour>
+ <contour>
+ <point x="750" y="848" type="curve" smooth="yes"/>
+ <point x="628" y="848"/>
+ <point x="541" y="917"/>
+ <point x="541" y="1029" type="curve" smooth="yes"/>
+ <point x="541" y="1205"/>
+ <point x="704" y="1299"/>
+ <point x="862" y="1299" type="curve" smooth="yes"/>
+ <point x="985" y="1299"/>
+ <point x="1076" y="1235"/>
+ <point x="1076" y="1128" type="curve" smooth="yes"/>
+ <point x="1076" y="955"/>
+ <point x="907" y="848"/>
+ </contour>
+ <contour>
+ <point x="564" y="142" type="curve" smooth="yes"/>
+ <point x="413" y="142"/>
+ <point x="322" y="225"/>
+ <point x="322" y="350" type="curve" smooth="yes"/>
+ <point x="322" y="557"/>
+ <point x="520" y="696"/>
+ <point x="712" y="696" type="curve" smooth="yes"/>
+ <point x="864" y="696"/>
+ <point x="961" y="602"/>
+ <point x="961" y="476" type="curve" smooth="yes"/>
+ <point x="961" y="266"/>
+ <point x="753" y="142"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfnormalize.ufo/glyphs/D_igitF_ive.glif b/tests/reference/ufo/psfnormalize.ufo/glyphs/D_igitF_ive.glif
new file mode 100644
index 0000000..a224838
--- /dev/null
+++ b/tests/reference/ufo/psfnormalize.ufo/glyphs/D_igitF_ive.glif
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitFive" format="2">
+ <advance width="1180"/>
+ <unicode hex="0035"/>
+ <anchor x="515" y="-100" name="L"/>
+ <anchor x="922" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1296" y="1431" type="line"/>
+ <point x="491" y="1431" type="line"/>
+ <point x="302" y="671" type="line"/>
+ <point x="438" y="718"/>
+ <point x="537" y="735"/>
+ <point x="643" y="735" type="curve" smooth="yes"/>
+ <point x="784" y="735"/>
+ <point x="933" y="660"/>
+ <point x="933" y="508" type="curve" smooth="yes"/>
+ <point x="933" y="273"/>
+ <point x="710" y="152"/>
+ <point x="497" y="152" type="curve" smooth="yes"/>
+ <point x="357" y="152"/>
+ <point x="263" y="195"/>
+ <point x="170" y="284" type="curve"/>
+ <point x="89" y="78" type="line"/>
+ <point x="195" y="2"/>
+ <point x="326" y="-25"/>
+ <point x="481" y="-25" type="curve" smooth="yes"/>
+ <point x="807" y="-25"/>
+ <point x="1129" y="190"/>
+ <point x="1129" y="546" type="curve" smooth="yes"/>
+ <point x="1129" y="757"/>
+ <point x="951" y="911"/>
+ <point x="702" y="911" type="curve" smooth="yes"/>
+ <point x="629" y="911"/>
+ <point x="576" y="906"/>
+ <point x="544" y="902" type="curve"/>
+ <point x="635" y="1264" type="line"/>
+ <point x="1020" y="1264" type="line" smooth="yes"/>
+ <point x="1104" y="1264"/>
+ <point x="1179" y="1260"/>
+ <point x="1250" y="1245" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfnormalize.ufo/glyphs/D_igitF_our.glif b/tests/reference/ufo/psfnormalize.ufo/glyphs/D_igitF_our.glif
new file mode 100644
index 0000000..eeccb48
--- /dev/null
+++ b/tests/reference/ufo/psfnormalize.ufo/glyphs/D_igitF_our.glif
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitFour" format="2">
+ <advance width="1180"/>
+ <unicode hex="0034"/>
+ <anchor x="522" y="-100" name="L"/>
+ <anchor x="929" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1161" y="387" type="line"/>
+ <point x="1199" y="539" type="line"/>
+ <point x="1009" y="539" type="line"/>
+ <point x="1236" y="1450" type="line"/>
+ <point x="1026" y="1450" type="line"/>
+ <point x="144" y="539" type="line"/>
+ <point x="106" y="387" type="line"/>
+ <point x="781" y="387" type="line"/>
+ <point x="685" y="0" type="line"/>
+ <point x="875" y="0" type="line"/>
+ <point x="971" y="387" type="line"/>
+ </contour>
+ <contour>
+ <point x="985" y="1205" type="line"/>
+ <point x="819" y="539" type="line"/>
+ <point x="337" y="539" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfnormalize.ufo/glyphs/D_igitN_ine.glif b/tests/reference/ufo/psfnormalize.ufo/glyphs/D_igitN_ine.glif
new file mode 100644
index 0000000..191cd79
--- /dev/null
+++ b/tests/reference/ufo/psfnormalize.ufo/glyphs/D_igitN_ine.glif
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitNine" format="2">
+ <advance width="1180"/>
+ <unicode hex="0039"/>
+ <anchor x="515" y="-100" name="L"/>
+ <anchor x="922" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="157" y="94" type="line"/>
+ <point x="208" y="29"/>
+ <point x="355" y="-25"/>
+ <point x="473" y="-25" type="curve" smooth="yes"/>
+ <point x="999" y="-25"/>
+ <point x="1267" y="520"/>
+ <point x="1267" y="982" type="curve" smooth="yes"/>
+ <point x="1267" y="1248"/>
+ <point x="1127" y="1455"/>
+ <point x="866" y="1455" type="curve" smooth="yes"/>
+ <point x="596" y="1455"/>
+ <point x="303" y="1269"/>
+ <point x="303" y="932" type="curve" smooth="yes"/>
+ <point x="303" y="761"/>
+ <point x="425" y="574"/>
+ <point x="661" y="574" type="curve" smooth="yes"/>
+ <point x="852" y="574"/>
+ <point x="1036" y="683"/>
+ <point x="1172" y="840" type="curve"/>
+ <point x="1121" y="922" type="line"/>
+ <point x="1019" y="810"/>
+ <point x="872" y="745"/>
+ <point x="717" y="745" type="curve" smooth="yes"/>
+ <point x="584" y="745"/>
+ <point x="498" y="833"/>
+ <point x="498" y="956" type="curve" smooth="yes"/>
+ <point x="498" y="1146"/>
+ <point x="638" y="1284"/>
+ <point x="821" y="1284" type="curve" smooth="yes"/>
+ <point x="998" y="1284"/>
+ <point x="1073" y="1119"/>
+ <point x="1073" y="956" type="curve" smooth="yes"/>
+ <point x="1073" y="455"/>
+ <point x="760" y="147"/>
+ <point x="496" y="147" type="curve" smooth="yes"/>
+ <point x="410" y="147"/>
+ <point x="298" y="209"/>
+ <point x="249" y="285" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfnormalize.ufo/glyphs/D_igitO_ne.glif b/tests/reference/ufo/psfnormalize.ufo/glyphs/D_igitO_ne.glif
new file mode 100644
index 0000000..a639774
--- /dev/null
+++ b/tests/reference/ufo/psfnormalize.ufo/glyphs/D_igitO_ne.glif
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitOne" format="2">
+ <advance width="1180"/>
+ <unicode hex="0031"/>
+ <anchor x="515" y="-100" name="L"/>
+ <anchor x="922" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1021" y="167" type="line"/>
+ <point x="706" y="167" type="line"/>
+ <point x="1026" y="1450" type="line"/>
+ <point x="856" y="1450" type="line"/>
+ <point x="459" y="1243" type="line"/>
+ <point x="440" y="1066" type="line"/>
+ <point x="782" y="1235" type="line"/>
+ <point x="516" y="167" type="line"/>
+ <point x="201" y="167" type="line"/>
+ <point x="160" y="0" type="line"/>
+ <point x="980" y="0" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfnormalize.ufo/glyphs/D_igitS_even.glif b/tests/reference/ufo/psfnormalize.ufo/glyphs/D_igitS_even.glif
new file mode 100644
index 0000000..68c6ef6
--- /dev/null
+++ b/tests/reference/ufo/psfnormalize.ufo/glyphs/D_igitS_even.glif
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitSeven" format="2">
+ <advance width="1180"/>
+ <unicode hex="0037"/>
+ <anchor x="515" y="-100" name="L"/>
+ <anchor x="922" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="420" y="0" type="line"/>
+ <point x="661" y="450"/>
+ <point x="972" y="877"/>
+ <point x="1367" y="1274" type="curve"/>
+ <point x="1406" y="1431" type="line"/>
+ <point x="386" y="1431" type="line"/>
+ <point x="341" y="1245" type="line"/>
+ <point x="421" y="1260"/>
+ <point x="538" y="1264"/>
+ <point x="726" y="1264" type="curve" smooth="yes"/>
+ <point x="1126" y="1264" type="line"/>
+ <point x="774" y="889"/>
+ <point x="517" y="555"/>
+ <point x="215" y="0" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfnormalize.ufo/glyphs/D_igitS_ix.glif b/tests/reference/ufo/psfnormalize.ufo/glyphs/D_igitS_ix.glif
new file mode 100644
index 0000000..b6be793
--- /dev/null
+++ b/tests/reference/ufo/psfnormalize.ufo/glyphs/D_igitS_ix.glif
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitSix" format="2">
+ <advance width="1180"/>
+ <unicode hex="0036"/>
+ <anchor x="515" y="-100" name="L"/>
+ <anchor x="922" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1313" y="1347" type="line"/>
+ <point x="1248" y="1418"/>
+ <point x="1135" y="1455"/>
+ <point x="1017" y="1455" type="curve" smooth="yes"/>
+ <point x="481" y="1454"/>
+ <point x="208" y="915"/>
+ <point x="208" y="475" type="curve" smooth="yes"/>
+ <point x="208" y="167"/>
+ <point x="392" y="-25"/>
+ <point x="623" y="-25" type="curve" smooth="yes"/>
+ <point x="947" y="-25"/>
+ <point x="1183" y="169"/>
+ <point x="1183" y="517" type="curve" smooth="yes"/>
+ <point x="1183" y="709"/>
+ <point x="1029" y="887"/>
+ <point x="793" y="887" type="curve" smooth="yes"/>
+ <point x="636" y="887"/>
+ <point x="432" y="784"/>
+ <point x="317" y="633" type="curve"/>
+ <point x="364" y="559" type="line"/>
+ <point x="471" y="660"/>
+ <point x="596" y="716"/>
+ <point x="751" y="716" type="curve" smooth="yes"/>
+ <point x="898" y="716"/>
+ <point x="987" y="614"/>
+ <point x="987" y="454" type="curve" smooth="yes"/>
+ <point x="987" y="263"/>
+ <point x="816" y="147"/>
+ <point x="656" y="147" type="curve" smooth="yes"/>
+ <point x="491" y="147"/>
+ <point x="403" y="284"/>
+ <point x="403" y="472" type="curve" smooth="yes"/>
+ <point x="403" y="962"/>
+ <point x="664" y="1284"/>
+ <point x="985" y="1284" type="curve" smooth="yes"/>
+ <point x="1081" y="1284"/>
+ <point x="1174" y="1235"/>
+ <point x="1222" y="1156" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfnormalize.ufo/glyphs/D_igitT_hree.glif b/tests/reference/ufo/psfnormalize.ufo/glyphs/D_igitT_hree.glif
new file mode 100644
index 0000000..e01df2c
--- /dev/null
+++ b/tests/reference/ufo/psfnormalize.ufo/glyphs/D_igitT_hree.glif
@@ -0,0 +1,52 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitThree" format="2">
+ <advance width="1180"/>
+ <unicode hex="0033"/>
+ <anchor x="515" y="-100" name="L"/>
+ <anchor x="922" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="562" y="853" type="line"/>
+ <point x="521" y="686" type="line"/>
+ <point x="591" y="686" type="line" smooth="yes"/>
+ <point x="802" y="686"/>
+ <point x="944" y="606"/>
+ <point x="944" y="476" type="curve" smooth="yes"/>
+ <point x="944" y="268"/>
+ <point x="738" y="147"/>
+ <point x="551" y="147" type="curve" smooth="yes"/>
+ <point x="371" y="147"/>
+ <point x="260" y="227"/>
+ <point x="181" y="348" type="curve"/>
+ <point x="104" y="137" type="line"/>
+ <point x="185" y="41"/>
+ <point x="341" y="-25"/>
+ <point x="518" y="-25" type="curve" smooth="yes"/>
+ <point x="815" y="-25"/>
+ <point x="1141" y="168"/>
+ <point x="1141" y="475" type="curve" smooth="yes"/>
+ <point x="1141" y="670"/>
+ <point x="973" y="763"/>
+ <point x="855" y="784" type="curve"/>
+ <point x="1046" y="827"/>
+ <point x="1266" y="955"/>
+ <point x="1266" y="1163" type="curve" smooth="yes"/>
+ <point x="1266" y="1338"/>
+ <point x="1073" y="1455"/>
+ <point x="852" y="1455" type="curve" smooth="yes"/>
+ <point x="685" y="1455"/>
+ <point x="536" y="1388"/>
+ <point x="433" y="1299" type="curve"/>
+ <point x="427" y="1132" type="line"/>
+ <point x="568" y="1246"/>
+ <point x="696" y="1284"/>
+ <point x="850" y="1284" type="curve" smooth="yes"/>
+ <point x="957" y="1284"/>
+ <point x="1068" y="1236"/>
+ <point x="1068" y="1137" type="curve" smooth="yes"/>
+ <point x="1068" y="949"/>
+ <point x="781" y="853"/>
+ <point x="632" y="853" type="curve" smooth="yes"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfnormalize.ufo/glyphs/D_igitT_wo.glif b/tests/reference/ufo/psfnormalize.ufo/glyphs/D_igitT_wo.glif
new file mode 100644
index 0000000..d1bbb54
--- /dev/null
+++ b/tests/reference/ufo/psfnormalize.ufo/glyphs/D_igitT_wo.glif
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitTwo" format="2">
+ <advance width="1180"/>
+ <unicode hex="0032"/>
+ <anchor x="515" y="-100" name="L"/>
+ <anchor x="882" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1063" y="176" type="line"/>
+ <point x="980" y="163"/>
+ <point x="822" y="162"/>
+ <point x="625" y="162" type="curve" smooth="yes"/>
+ <point x="370" y="162" type="line"/>
+ <point x="783" y="393"/>
+ <point x="1210" y="830"/>
+ <point x="1210" y="1098" type="curve" smooth="yes"/>
+ <point x="1210" y="1296"/>
+ <point x="1075" y="1455"/>
+ <point x="842" y="1455" type="curve" smooth="yes"/>
+ <point x="673" y="1455"/>
+ <point x="488" y="1374"/>
+ <point x="380" y="1264" type="curve"/>
+ <point x="388" y="1098" type="line"/>
+ <point x="503" y="1203"/>
+ <point x="660" y="1279"/>
+ <point x="783" y="1279" type="curve" smooth="yes"/>
+ <point x="915" y="1279"/>
+ <point x="1003" y="1199"/>
+ <point x="1003" y="1063" type="curve" smooth="yes"/>
+ <point x="1003" y="848"/>
+ <point x="506" y="386"/>
+ <point x="101" y="167" type="curve"/>
+ <point x="60" y="0" type="line"/>
+ <point x="1020" y="0" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfnormalize.ufo/glyphs/D_igitZ_ero.glif b/tests/reference/ufo/psfnormalize.ufo/glyphs/D_igitZ_ero.glif
new file mode 100644
index 0000000..5d1bf0e
--- /dev/null
+++ b/tests/reference/ufo/psfnormalize.ufo/glyphs/D_igitZ_ero.glif
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitZero" format="2">
+ <advance width="1180"/>
+ <unicode hex="0030"/>
+ <anchor x="520" y="-100" name="L"/>
+ <anchor x="927" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1024" y="711" type="curve" smooth="yes"/>
+ <point x="925" y="312"/>
+ <point x="747" y="142"/>
+ <point x="565" y="142" type="curve" smooth="yes"/>
+ <point x="432" y="142"/>
+ <point x="360" y="218"/>
+ <point x="360" y="383" type="curve" smooth="yes"/>
+ <point x="360" y="468"/>
+ <point x="377" y="579"/>
+ <point x="412" y="720" type="curve" smooth="yes"/>
+ <point x="512" y="1120"/>
+ <point x="678" y="1289"/>
+ <point x="871" y="1289" type="curve" smooth="yes"/>
+ <point x="1006" y="1289"/>
+ <point x="1077" y="1223"/>
+ <point x="1077" y="1051" type="curve" smooth="yes"/>
+ <point x="1077" y="966"/>
+ <point x="1060" y="854"/>
+ </contour>
+ <contour>
+ <point x="1230" y="715" type="curve" smooth="yes"/>
+ <point x="1262" y="841"/>
+ <point x="1276" y="949"/>
+ <point x="1276" y="1040" type="curve" smooth="yes"/>
+ <point x="1276" y="1335"/>
+ <point x="1124" y="1455"/>
+ <point x="902" y="1455" type="curve" smooth="yes"/>
+ <point x="613" y="1455"/>
+ <point x="344" y="1267"/>
+ <point x="206" y="716" type="curve" smooth="yes"/>
+ <point x="173" y="584"/>
+ <point x="158" y="474"/>
+ <point x="158" y="381" type="curve" smooth="yes"/>
+ <point x="158" y="104"/>
+ <point x="313" y="-25"/>
+ <point x="533" y="-25" type="curve" smooth="yes"/>
+ <point x="804" y="-25"/>
+ <point x="1086" y="138"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfnormalize.ufo/glyphs/D_ollarS_gn.glif b/tests/reference/ufo/psfnormalize.ufo/glyphs/D_ollarS_gn.glif
new file mode 100644
index 0000000..5c2db20
--- /dev/null
+++ b/tests/reference/ufo/psfnormalize.ufo/glyphs/D_ollarS_gn.glif
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DollarSgn" format="2">
+ <advance width="1180"/>
+ <unicode hex="0024"/>
+ <outline>
+ <contour>
+ <point x="1225" y="1280" type="line"/>
+ <point x="1119" y="1337"/>
+ <point x="1023" y="1361"/>
+ <point x="882" y="1361" type="curve" smooth="yes"/>
+ <point x="513" y="1361"/>
+ <point x="354" y="1182"/>
+ <point x="354" y="992" type="curve" smooth="yes"/>
+ <point x="354" y="837"/>
+ <point x="446" y="771"/>
+ <point x="639" y="650" type="curve" smooth="yes"/>
+ <point x="844" y="521"/>
+ <point x="919" y="439"/>
+ <point x="919" y="357" type="curve" smooth="yes"/>
+ <point x="919" y="244"/>
+ <point x="826" y="158"/>
+ <point x="635" y="158" type="curve" smooth="yes"/>
+ <point x="469" y="158"/>
+ <point x="314" y="266"/>
+ <point x="251" y="347" type="curve"/>
+ <point x="163" y="162" type="line"/>
+ <point x="304" y="58"/>
+ <point x="453" y="0"/>
+ <point x="606" y="0" type="curve" smooth="yes"/>
+ <point x="872" y="0"/>
+ <point x="1102" y="119"/>
+ <point x="1102" y="381" type="curve" smooth="yes"/>
+ <point x="1102" y="528"/>
+ <point x="981" y="657"/>
+ <point x="801" y="771" type="curve" smooth="yes"/>
+ <point x="610" y="892"/>
+ <point x="535" y="943"/>
+ <point x="535" y="1024" type="curve" smooth="yes"/>
+ <point x="535" y="1116"/>
+ <point x="657" y="1203"/>
+ <point x="832" y="1203" type="curve" smooth="yes"/>
+ <point x="950" y="1203"/>
+ <point x="1031" y="1176"/>
+ <point x="1144" y="1104" type="curve"/>
+ </contour>
+ <contour>
+ <point x="878" y="1568" type="line"/>
+ <point x="434" y="-216" type="line"/>
+ <point x="574" y="-216" type="line"/>
+ <point x="1018" y="1568" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfnormalize.ufo/glyphs/D_ottedC_irc.glif b/tests/reference/ufo/psfnormalize.ufo/glyphs/D_ottedC_irc.glif
new file mode 100644
index 0000000..2cdf8fd
--- /dev/null
+++ b/tests/reference/ufo/psfnormalize.ufo/glyphs/D_ottedC_irc.glif
@@ -0,0 +1,235 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DottedCirc" format="2">
+ <advance width="1086"/>
+ <unicode hex="25CC"/>
+ <anchor x="493" y="0" name="H"/>
+ <anchor x="468" y="-100" name="L"/>
+ <anchor x="750" y="0" name="O"/>
+ <anchor x="743" y="1000" name="U"/>
+ <outline>
+ <contour>
+ <point x="588" y="834" type="curve" smooth="yes"/>
+ <point x="588" y="858"/>
+ <point x="571" y="867"/>
+ <point x="553" y="867" type="curve" smooth="yes"/>
+ <point x="521" y="867"/>
+ <point x="491" y="837"/>
+ <point x="491" y="809" type="curve" smooth="yes"/>
+ <point x="491" y="788"/>
+ <point x="508" y="773"/>
+ <point x="530" y="773" type="curve" smooth="yes"/>
+ <point x="564" y="773"/>
+ <point x="588" y="805"/>
+ </contour>
+ <contour>
+ <point x="677" y="124" type="curve" smooth="yes"/>
+ <point x="647" y="124"/>
+ <point x="620" y="93"/>
+ <point x="620" y="67" type="curve" smooth="yes"/>
+ <point x="620" y="46"/>
+ <point x="636" y="30"/>
+ <point x="657" y="30" type="curve" smooth="yes"/>
+ <point x="687" y="30"/>
+ <point x="718" y="60"/>
+ <point x="718" y="86" type="curve" smooth="yes"/>
+ <point x="718" y="109"/>
+ <point x="700" y="124"/>
+ </contour>
+ <contour>
+ <point x="396" y="780" type="curve" smooth="yes"/>
+ <point x="369" y="780"/>
+ <point x="336" y="753"/>
+ <point x="336" y="722" type="curve" smooth="yes"/>
+ <point x="336" y="702"/>
+ <point x="351" y="687"/>
+ <point x="374" y="687" type="curve" smooth="yes"/>
+ <point x="403" y="687"/>
+ <point x="434" y="711"/>
+ <point x="434" y="744" type="curve" smooth="yes"/>
+ <point x="434" y="764"/>
+ <point x="414" y="780"/>
+ </contour>
+ <contour>
+ <point x="873" y="175" type="curve" smooth="yes"/>
+ <point x="872" y="199"/>
+ <point x="854" y="211"/>
+ <point x="833" y="211" type="curve" smooth="yes"/>
+ <point x="803" y="211"/>
+ <point x="774" y="183"/>
+ <point x="774" y="153" type="curve" smooth="yes"/>
+ <point x="774" y="133"/>
+ <point x="789" y="119"/>
+ <point x="812" y="119" type="curve" smooth="yes"/>
+ <point x="843" y="119"/>
+ <point x="873" y="146"/>
+ </contour>
+ <contour>
+ <point x="313" y="612" type="curve" smooth="yes"/>
+ <point x="312" y="633"/>
+ <point x="296" y="650"/>
+ <point x="275" y="650" type="curve" smooth="yes"/>
+ <point x="247" y="650"/>
+ <point x="215" y="623"/>
+ <point x="215" y="592" type="curve" smooth="yes"/>
+ <point x="215" y="573"/>
+ <point x="227" y="556"/>
+ <point x="251" y="556" type="curve" smooth="yes"/>
+ <point x="278" y="556"/>
+ <point x="313" y="581"/>
+ </contour>
+ <contour>
+ <point x="994" y="306" type="curve" smooth="yes"/>
+ <point x="993" y="327"/>
+ <point x="978" y="341"/>
+ <point x="958" y="341" type="curve" smooth="yes"/>
+ <point x="933" y="341"/>
+ <point x="896" y="321"/>
+ <point x="896" y="284" type="curve" smooth="yes"/>
+ <point x="896" y="265"/>
+ <point x="909" y="249"/>
+ <point x="934" y="249" type="curve" smooth="yes"/>
+ <point x="963" y="249"/>
+ <point x="994" y="275"/>
+ </contour>
+ <contour>
+ <point x="205" y="495" type="curve" smooth="yes"/>
+ <point x="175" y="495"/>
+ <point x="145" y="468"/>
+ <point x="145" y="438" type="curve" smooth="yes"/>
+ <point x="145" y="418"/>
+ <point x="159" y="402"/>
+ <point x="183" y="402" type="curve" smooth="yes"/>
+ <point x="208" y="402"/>
+ <point x="244" y="428"/>
+ <point x="244" y="459" type="curve" smooth="yes"/>
+ <point x="244" y="479"/>
+ <point x="227" y="495"/>
+ </contour>
+ <contour>
+ <point x="1026" y="496" type="curve" smooth="yes"/>
+ <point x="999" y="496"/>
+ <point x="965" y="469"/>
+ <point x="965" y="438" type="curve" smooth="yes"/>
+ <point x="965" y="418"/>
+ <point x="979" y="403"/>
+ <point x="1004" y="403" type="curve" smooth="yes"/>
+ <point x="1033" y="403"/>
+ <point x="1064" y="431"/>
+ <point x="1064" y="460" type="curve" smooth="yes"/>
+ <point x="1064" y="480"/>
+ <point x="1048" y="496"/>
+ </contour>
+ <contour>
+ <point x="237" y="307" type="curve" smooth="yes"/>
+ <point x="237" y="327"/>
+ <point x="221" y="341"/>
+ <point x="199" y="341" type="curve" smooth="yes"/>
+ <point x="169" y="341"/>
+ <point x="138" y="314"/>
+ <point x="138" y="285" type="curve" smooth="yes"/>
+ <point x="138" y="263"/>
+ <point x="153" y="248"/>
+ <point x="175" y="248" type="curve" smooth="yes"/>
+ <point x="206" y="248"/>
+ <point x="237" y="278"/>
+ </contour>
+ <contour>
+ <point x="1071" y="613" type="curve" smooth="yes"/>
+ <point x="1071" y="634"/>
+ <point x="1055" y="650"/>
+ <point x="1034" y="650" type="curve" smooth="yes"/>
+ <point x="1003" y="650"/>
+ <point x="973" y="619"/>
+ <point x="973" y="590" type="curve" smooth="yes"/>
+ <point x="973" y="570"/>
+ <point x="989" y="556"/>
+ <point x="1009" y="556" type="curve" smooth="yes"/>
+ <point x="1041" y="556"/>
+ <point x="1071" y="585"/>
+ </contour>
+ <contour>
+ <point x="292" y="177" type="curve" smooth="yes"/>
+ <point x="292" y="197"/>
+ <point x="277" y="211"/>
+ <point x="253" y="211" type="curve" smooth="yes"/>
+ <point x="224" y="211"/>
+ <point x="194" y="181"/>
+ <point x="194" y="154" type="curve" smooth="yes"/>
+ <point x="194" y="134"/>
+ <point x="211" y="118"/>
+ <point x="232" y="118" type="curve" smooth="yes"/>
+ <point x="262" y="118"/>
+ <point x="292" y="148"/>
+ </contour>
+ <contour>
+ <point x="917" y="724" type="curve" smooth="yes"/>
+ <point x="917" y="704"/>
+ <point x="931" y="686"/>
+ <point x="954" y="686" type="curve" smooth="yes"/>
+ <point x="984" y="686"/>
+ <point x="1014" y="716"/>
+ <point x="1014" y="745" type="curve" smooth="yes"/>
+ <point x="1014" y="765"/>
+ <point x="1000" y="780"/>
+ <point x="977" y="780" type="curve" smooth="yes"/>
+ <point x="947" y="780"/>
+ <point x="917" y="753"/>
+ </contour>
+ <contour>
+ <point x="403" y="87" type="curve" smooth="yes"/>
+ <point x="403" y="107"/>
+ <point x="390" y="123"/>
+ <point x="367" y="123" type="curve" smooth="yes"/>
+ <point x="339" y="123"/>
+ <point x="305" y="96"/>
+ <point x="305" y="68" type="curve" smooth="yes"/>
+ <point x="305" y="49"/>
+ <point x="320" y="30"/>
+ <point x="343" y="30" type="curve" smooth="yes"/>
+ <point x="371" y="30"/>
+ <point x="403" y="56"/>
+ </contour>
+ <contour>
+ <point x="806" y="810" type="curve" smooth="yes"/>
+ <point x="806" y="791"/>
+ <point x="819" y="773"/>
+ <point x="842" y="773" type="curve" smooth="yes"/>
+ <point x="869" y="773"/>
+ <point x="903" y="799"/>
+ <point x="903" y="830" type="curve" smooth="yes"/>
+ <point x="903" y="850"/>
+ <point x="889" y="867"/>
+ <point x="866" y="867" type="curve" smooth="yes"/>
+ <point x="836" y="867"/>
+ <point x="806" y="839"/>
+ </contour>
+ <contour>
+ <point x="553" y="57" type="curve" smooth="yes"/>
+ <point x="553" y="78"/>
+ <point x="538" y="93"/>
+ <point x="516" y="93" type="curve" smooth="yes"/>
+ <point x="485" y="93"/>
+ <point x="456" y="65"/>
+ <point x="456" y="36" type="curve" smooth="yes"/>
+ <point x="456" y="16"/>
+ <point x="471" y="0"/>
+ <point x="493" y="0" type="curve" smooth="yes"/>
+ <point x="523" y="0"/>
+ <point x="553" y="27"/>
+ </contour>
+ <contour>
+ <point x="656" y="839" type="curve" smooth="yes"/>
+ <point x="656" y="819"/>
+ <point x="671" y="805"/>
+ <point x="693" y="805" type="curve" smooth="yes"/>
+ <point x="721" y="805"/>
+ <point x="754" y="830"/>
+ <point x="754" y="861" type="curve" smooth="yes"/>
+ <point x="754" y="882"/>
+ <point x="738" y="898"/>
+ <point x="716" y="898" type="curve" smooth="yes"/>
+ <point x="685" y="898"/>
+ <point x="656" y="868"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfnormalize.ufo/glyphs/E_qS_gn.glif b/tests/reference/ufo/psfnormalize.ufo/glyphs/E_qS_gn.glif
new file mode 100644
index 0000000..3d756e8
--- /dev/null
+++ b/tests/reference/ufo/psfnormalize.ufo/glyphs/E_qS_gn.glif
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="EqSgn" format="2">
+ <advance width="1180"/>
+ <unicode hex="003D"/>
+ <outline>
+ <contour>
+ <point x="177" y="470" type="line"/>
+ <point x="1137" y="470" type="line"/>
+ <point x="1173" y="617" type="line"/>
+ <point x="213" y="617" type="line"/>
+ </contour>
+ <contour>
+ <point x="262" y="813" type="line"/>
+ <point x="1222" y="813" type="line"/>
+ <point x="1259" y="960" type="line"/>
+ <point x="299" y="960" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfnormalize.ufo/glyphs/E_xclamationM_rk.glif b/tests/reference/ufo/psfnormalize.ufo/glyphs/E_xclamationM_rk.glif
new file mode 100644
index 0000000..a1c14d9
--- /dev/null
+++ b/tests/reference/ufo/psfnormalize.ufo/glyphs/E_xclamationM_rk.glif
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="ExclamationMrk" format="2">
+ <advance width="744"/>
+ <unicode hex="0021"/>
+ <outline>
+ <contour>
+ <point x="497" y="431" type="line"/>
+ <point x="574" y="715"/>
+ <point x="653" y="1054"/>
+ <point x="799" y="1480" type="curve"/>
+ <point x="544" y="1480" type="line"/>
+ <point x="475" y="1054"/>
+ <point x="386" y="715"/>
+ <point x="322" y="431" type="curve"/>
+ </contour>
+ <contour>
+ <point x="188" y="90" type="curve" smooth="yes"/>
+ <point x="188" y="28"/>
+ <point x="238" y="-25"/>
+ <point x="303" y="-25" type="curve" smooth="yes"/>
+ <point x="387" y="-25"/>
+ <point x="464" y="45"/>
+ <point x="464" y="125" type="curve" smooth="yes"/>
+ <point x="464" y="186"/>
+ <point x="414" y="240"/>
+ <point x="349" y="240" type="curve" smooth="yes"/>
+ <point x="265" y="240"/>
+ <point x="188" y="170"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfnormalize.ufo/glyphs/F_ullS_top.glif b/tests/reference/ufo/psfnormalize.ufo/glyphs/F_ullS_top.glif
new file mode 100644
index 0000000..a6c4d08
--- /dev/null
+++ b/tests/reference/ufo/psfnormalize.ufo/glyphs/F_ullS_top.glif
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="FullStop" format="2">
+ <advance width="620"/>
+ <unicode hex="002E"/>
+ <outline>
+ <contour>
+ <point x="148" y="90" type="curve" smooth="yes"/>
+ <point x="148" y="28"/>
+ <point x="198" y="-25"/>
+ <point x="263" y="-25" type="curve" smooth="yes"/>
+ <point x="347" y="-25"/>
+ <point x="424" y="45"/>
+ <point x="424" y="125" type="curve" smooth="yes"/>
+ <point x="424" y="186"/>
+ <point x="374" y="240"/>
+ <point x="309" y="240" type="curve" smooth="yes"/>
+ <point x="225" y="240"/>
+ <point x="148" y="170"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfnormalize.ufo/glyphs/G_T_S_gn.glif b/tests/reference/ufo/psfnormalize.ufo/glyphs/G_T_S_gn.glif
new file mode 100644
index 0000000..12da8b3
--- /dev/null
+++ b/tests/reference/ufo/psfnormalize.ufo/glyphs/G_T_S_gn.glif
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="GTSgn" format="2">
+ <advance width="1180"/>
+ <unicode hex="003E"/>
+ <outline>
+ <contour>
+ <point x="312" y="1014" type="line"/>
+ <point x="1028" y="725" type="line"/>
+ <point x="163" y="417" type="line"/>
+ <point x="119" y="240" type="line"/>
+ <point x="1197" y="632" type="line"/>
+ <point x="1239" y="799" type="line"/>
+ <point x="356" y="1191" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfnormalize.ufo/glyphs/G_raveA_ccent.glif b/tests/reference/ufo/psfnormalize.ufo/glyphs/G_raveA_ccent.glif
new file mode 100644
index 0000000..48adfc4
--- /dev/null
+++ b/tests/reference/ufo/psfnormalize.ufo/glyphs/G_raveA_ccent.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="GraveAccent" format="2">
+ <advance width="560"/>
+ <unicode hex="0060"/>
+ <anchor x="738" y="1635" name="U"/>
+ <outline>
+ <contour>
+ <point x="261" y="1568" type="line"/>
+ <point x="596" y="1147" type="line"/>
+ <point x="746" y="1147" type="line"/>
+ <point x="471" y="1568" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfnormalize.ufo/glyphs/H_yphen.glif b/tests/reference/ufo/psfnormalize.ufo/glyphs/H_yphen.glif
new file mode 100644
index 0000000..ae8cad5
--- /dev/null
+++ b/tests/reference/ufo/psfnormalize.ufo/glyphs/H_yphen.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Hyphen" format="2">
+ <advance width="840"/>
+ <unicode hex="2010"/>
+ <anchor x="645" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="155" y="544" type="line"/>
+ <point x="855" y="544" type="line"/>
+ <point x="892" y="691" type="line"/>
+ <point x="192" y="691" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfnormalize.ufo/glyphs/H_yphenM_inus.glif b/tests/reference/ufo/psfnormalize.ufo/glyphs/H_yphenM_inus.glif
new file mode 100644
index 0000000..155b460
--- /dev/null
+++ b/tests/reference/ufo/psfnormalize.ufo/glyphs/H_yphenM_inus.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="HyphenMinus" format="2">
+ <advance width="840"/>
+ <unicode hex="002D"/>
+ <anchor x="645" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="155" y="544" type="line"/>
+ <point x="855" y="544" type="line"/>
+ <point x="892" y="691" type="line"/>
+ <point x="192" y="691" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfnormalize.ufo/glyphs/H_yphen_S_oft.glif b/tests/reference/ufo/psfnormalize.ufo/glyphs/H_yphen_S_oft.glif
new file mode 100644
index 0000000..0c7b834
--- /dev/null
+++ b/tests/reference/ufo/psfnormalize.ufo/glyphs/H_yphen_S_oft.glif
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Hyphen_Soft" format="2">
+ <advance width="840"/>
+ <unicode hex="00AD"/>
+ <anchor x="645" y="1100" name="U"/>
+ <outline>
+ <component base="HyphenMinus"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfnormalize.ufo/glyphs/L_T_S_gn.glif b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_T_S_gn.glif
new file mode 100644
index 0000000..3c857a5
--- /dev/null
+++ b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_T_S_gn.glif
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LTSgn" format="2">
+ <advance width="1180"/>
+ <unicode hex="003C"/>
+ <outline>
+ <contour>
+ <point x="1123" y="417" type="line"/>
+ <point x="408" y="705" type="line"/>
+ <point x="1272" y="1014" type="line"/>
+ <point x="1316" y="1191" type="line"/>
+ <point x="239" y="799" type="line"/>
+ <point x="197" y="632" type="line"/>
+ <point x="1079" y="240" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfnormalize.ufo/glyphs/L_ftC_urlyB_rac.glif b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_ftC_urlyB_rac.glif
new file mode 100644
index 0000000..4f8c90c
--- /dev/null
+++ b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_ftC_urlyB_rac.glif
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LftCurlyBrac" format="2">
+ <advance width="980"/>
+ <unicode hex="007B"/>
+ <outline>
+ <contour>
+ <point x="713" y="-265" type="line"/>
+ <point x="660" y="-250"/>
+ <point x="526" y="-188"/>
+ <point x="526" y="-158" type="curve" smooth="yes"/>
+ <point x="526" y="-59"/>
+ <point x="649" y="404"/>
+ <point x="649" y="469" type="curve" smooth="yes"/>
+ <point x="649" y="509"/>
+ <point x="520" y="577"/>
+ <point x="520" y="602" type="curve" smooth="yes"/>
+ <point x="520" y="620"/>
+ <point x="688" y="700"/>
+ <point x="712" y="730" type="curve" smooth="yes"/>
+ <point x="741" y="767"/>
+ <point x="867" y="1326"/>
+ <point x="912" y="1372" type="curve" smooth="yes"/>
+ <point x="938" y="1399"/>
+ <point x="1073" y="1447"/>
+ <point x="1146" y="1470" type="curve"/>
+ <point x="1140" y="1607" type="line"/>
+ <point x="1030" y="1581"/>
+ <point x="856" y="1529"/>
+ <point x="805" y="1485" type="curve" smooth="yes"/>
+ <point x="714" y="1406"/>
+ <point x="572" y="796"/>
+ <point x="540" y="764" type="curve" smooth="yes"/>
+ <point x="504" y="729"/>
+ <point x="300" y="633"/>
+ <point x="300" y="601" type="curve" smooth="yes"/>
+ <point x="300" y="560"/>
+ <point x="460" y="468"/>
+ <point x="460" y="432" type="curve" smooth="yes"/>
+ <point x="460" y="362"/>
+ <point x="355" y="-53"/>
+ <point x="355" y="-219" type="curve" smooth="yes"/>
+ <point x="355" y="-247"/>
+ <point x="358" y="-268"/>
+ <point x="365" y="-279" type="curve" smooth="yes"/>
+ <point x="394" y="-323"/>
+ <point x="542" y="-375"/>
+ <point x="639" y="-402" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfnormalize.ufo/glyphs/L_ftP_aren.glif b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_ftP_aren.glif
new file mode 100644
index 0000000..bc65fc1
--- /dev/null
+++ b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_ftP_aren.glif
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LftParen" format="2">
+ <advance width="775"/>
+ <unicode hex="0028"/>
+ <outline>
+ <contour>
+ <point x="895" y="1607" type="line"/>
+ <point x="582" y="1415"/>
+ <point x="314" y="1061"/>
+ <point x="207" y="633" type="curve" smooth="yes"/>
+ <point x="176" y="508"/>
+ <point x="161" y="386"/>
+ <point x="161" y="270" type="curve" smooth="yes"/>
+ <point x="161" y="17"/>
+ <point x="233" y="-211"/>
+ <point x="374" y="-402" type="curve"/>
+ <point x="505" y="-260" type="line"/>
+ <point x="397" y="-102"/>
+ <point x="348" y="75"/>
+ <point x="348" y="270" type="curve" smooth="yes"/>
+ <point x="348" y="385"/>
+ <point x="365" y="506"/>
+ <point x="397" y="633" type="curve" smooth="yes"/>
+ <point x="484" y="982"/>
+ <point x="647" y="1254"/>
+ <point x="932" y="1455" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfnormalize.ufo/glyphs/L_ftS_qrB_rac.glif b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_ftS_qrB_rac.glif
new file mode 100644
index 0000000..6d064d1
--- /dev/null
+++ b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_ftS_qrB_rac.glif
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LftSqrBrac" format="2">
+ <advance width="770"/>
+ <unicode hex="005B"/>
+ <outline>
+ <contour>
+ <point x="484" y="-402" type="line"/>
+ <point x="521" y="-255" type="line"/>
+ <point x="266" y="-255" type="line"/>
+ <point x="679" y="1421" type="line"/>
+ <point x="934" y="1421" type="line"/>
+ <point x="970" y="1568" type="line"/>
+ <point x="530" y="1568" type="line"/>
+ <point x="44" y="-402" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfnormalize.ufo/glyphs/L_owL_ine.glif b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_owL_ine.glif
new file mode 100644
index 0000000..879d36b
--- /dev/null
+++ b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_owL_ine.glif
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LowLine" format="2">
+ <advance width="1254"/>
+ <unicode hex="005F"/>
+ <outline>
+ <contour>
+ <point x="-138" y="-314" type="line"/>
+ <point x="1135" y="-314" type="line"/>
+ <point x="1172" y="-167" type="line"/>
+ <point x="-101" y="-167" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnC_apA_.glif b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnC_apA_.glif
new file mode 100644
index 0000000..3a14b0e
--- /dev/null
+++ b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnC_apA_.glif
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapA" format="2">
+ <advance width="1395"/>
+ <unicode hex="0041"/>
+ <anchor x="1170" y="0" name="H"/>
+ <anchor x="602" y="-100" name="L"/>
+ <anchor x="1390" y="0" name="O"/>
+ <anchor x="1009" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1080" y="0" type="line"/>
+ <point x="1275" y="0" type="line"/>
+ <point x="1259" y="78"/>
+ <point x="1243" y="166"/>
+ <point x="1221" y="348" type="curve" smooth="yes"/>
+ <point x="1091" y="1431" type="line"/>
+ <point x="876" y="1431" type="line"/>
+ <point x="206" y="348" type="line" smooth="yes"/>
+ <point x="93" y="165"/>
+ <point x="35" y="79"/>
+ <point x="-20" y="0" type="curve"/>
+ <point x="195" y="0" type="line"/>
+ <point x="422" y="377" type="line"/>
+ <point x="1038" y="377" type="line"/>
+ </contour>
+ <contour>
+ <point x="944" y="1240" type="line"/>
+ <point x="1022" y="529" type="line"/>
+ <point x="514" y="529" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnC_apA_D_iaer.glif b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnC_apA_D_iaer.glif
new file mode 100644
index 0000000..6c3502c
--- /dev/null
+++ b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnC_apA_D_iaer.glif
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapADiaer" format="2">
+ <advance width="1395"/>
+ <unicode hex="00C4"/>
+ <anchor x="1170" y="0" name="H"/>
+ <anchor x="602" y="-100" name="L"/>
+ <anchor x="1390" y="0" name="O"/>
+ <anchor x="1106" y="1935" name="U"/>
+ <outline>
+ <component base="LtnCapA"/>
+ <component base="CombDiaer" xOffset="1359" yOffset="430"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnC_apB_.glif b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnC_apB_.glif
new file mode 100644
index 0000000..5445f93
--- /dev/null
+++ b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnC_apB_.glif
@@ -0,0 +1,62 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapB" format="2">
+ <advance width="1271"/>
+ <unicode hex="0042"/>
+ <anchor x="530" y="-100" name="L"/>
+ <anchor x="937" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="625" y="1284" type="line"/>
+ <point x="667" y="1286"/>
+ <point x="733" y="1289"/>
+ <point x="811" y="1289" type="curve" smooth="yes"/>
+ <point x="993" y="1289"/>
+ <point x="1080" y="1230"/>
+ <point x="1080" y="1105" type="curve" smooth="yes"/>
+ <point x="1080" y="932"/>
+ <point x="931" y="838"/>
+ <point x="698" y="838" type="curve" smooth="yes"/>
+ <point x="513" y="838" type="line"/>
+ </contour>
+ <contour>
+ <point x="226" y="446" type="line"/>
+ <point x="178" y="252"/>
+ <point x="134" y="78"/>
+ <point x="100" y="0" type="curve"/>
+ <point x="151" y="-5"/>
+ <point x="359" y="-10"/>
+ <point x="562" y="-10" type="curve" smooth="yes"/>
+ <point x="960" y="-10"/>
+ <point x="1201" y="149"/>
+ <point x="1201" y="453" type="curve" smooth="yes"/>
+ <point x="1201" y="644"/>
+ <point x="1067" y="736"/>
+ <point x="955" y="764" type="curve"/>
+ <point x="1155" y="819"/>
+ <point x="1283" y="941"/>
+ <point x="1283" y="1140" type="curve" smooth="yes"/>
+ <point x="1283" y="1310"/>
+ <point x="1136" y="1441"/>
+ <point x="869" y="1441" type="curve" smooth="yes"/>
+ <point x="700" y="1441"/>
+ <point x="546" y="1437"/>
+ <point x="456" y="1431" type="curve"/>
+ <point x="452" y="1352"/>
+ <point x="407" y="1172"/>
+ <point x="359" y="980" type="curve" smooth="yes"/>
+ </contour>
+ <contour>
+ <point x="476" y="686" type="line"/>
+ <point x="721" y="686" type="line" smooth="yes"/>
+ <point x="892" y="686"/>
+ <point x="1011" y="598"/>
+ <point x="1011" y="450" type="curve" smooth="yes"/>
+ <point x="1011" y="218"/>
+ <point x="806" y="147"/>
+ <point x="586" y="147" type="curve" smooth="yes"/>
+ <point x="474" y="147"/>
+ <point x="379" y="150"/>
+ <point x="342" y="152" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnC_apC_.glif b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnC_apC_.glif
new file mode 100644
index 0000000..c2e4948
--- /dev/null
+++ b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnC_apC_.glif
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapC" format="2">
+ <advance width="1341"/>
+ <unicode hex="0043"/>
+ <anchor x="690" y="0" name="H"/>
+ <anchor x="665" y="-100" name="L"/>
+ <anchor x="1072" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1237" y="318" type="line"/>
+ <point x="1115" y="222"/>
+ <point x="934" y="147"/>
+ <point x="752" y="147" type="curve" smooth="yes"/>
+ <point x="537" y="147"/>
+ <point x="385" y="304"/>
+ <point x="385" y="532" type="curve" smooth="yes"/>
+ <point x="385" y="964"/>
+ <point x="704" y="1289"/>
+ <point x="1037" y="1289" type="curve" smooth="yes"/>
+ <point x="1168" y="1289"/>
+ <point x="1310" y="1235"/>
+ <point x="1385" y="1132" type="curve"/>
+ <point x="1489" y="1308" type="line"/>
+ <point x="1388" y="1408"/>
+ <point x="1201" y="1455"/>
+ <point x="1058" y="1455" type="curve" smooth="yes"/>
+ <point x="645" y="1455"/>
+ <point x="185" y="1093"/>
+ <point x="185" y="513" type="curve" smooth="yes"/>
+ <point x="185" y="202"/>
+ <point x="381" y="-25"/>
+ <point x="709" y="-25" type="curve" smooth="yes"/>
+ <point x="896" y="-25"/>
+ <point x="1087" y="21"/>
+ <point x="1230" y="127" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnC_apD_.glif b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnC_apD_.glif
new file mode 100644
index 0000000..3b93811
--- /dev/null
+++ b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnC_apD_.glif
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapD" format="2">
+ <advance width="1421"/>
+ <unicode hex="0044"/>
+ <anchor x="630" y="-100" name="L"/>
+ <anchor x="1037" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="226" y="446" type="line"/>
+ <point x="176" y="252"/>
+ <point x="134" y="78"/>
+ <point x="100" y="0" type="curve"/>
+ <point x="100" y="0"/>
+ <point x="414" y="-10"/>
+ <point x="542" y="-10" type="curve" smooth="yes"/>
+ <point x="985" y="-10"/>
+ <point x="1299" y="181"/>
+ <point x="1415" y="648" type="curve" smooth="yes"/>
+ <point x="1437" y="738"/>
+ <point x="1447" y="819"/>
+ <point x="1447" y="891" type="curve" smooth="yes"/>
+ <point x="1447" y="1279"/>
+ <point x="1188" y="1441"/>
+ <point x="894" y="1441" type="curve" smooth="yes"/>
+ <point x="759" y="1441"/>
+ <point x="543" y="1437"/>
+ <point x="456" y="1431" type="curve"/>
+ <point x="452" y="1352"/>
+ <point x="407" y="1172"/>
+ <point x="359" y="980" type="curve" smooth="yes"/>
+ </contour>
+ <contour>
+ <point x="623" y="1279" type="line"/>
+ <point x="674" y="1281"/>
+ <point x="764" y="1284"/>
+ <point x="830" y="1284" type="curve" smooth="yes"/>
+ <point x="1105" y="1284"/>
+ <point x="1246" y="1140"/>
+ <point x="1246" y="850" type="curve" smooth="yes"/>
+ <point x="1246" y="784"/>
+ <point x="1236" y="710"/>
+ <point x="1216" y="629" type="curve" smooth="yes"/>
+ <point x="1134" y="300"/>
+ <point x="925" y="152"/>
+ <point x="572" y="152" type="curve" smooth="yes"/>
+ <point x="477" y="152"/>
+ <point x="391" y="158"/>
+ <point x="345" y="162" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnC_apE_.glif b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnC_apE_.glif
new file mode 100644
index 0000000..8b5f8b9
--- /dev/null
+++ b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnC_apE_.glif
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapE" format="2">
+ <advance width="1140"/>
+ <unicode hex="0045"/>
+ <anchor x="540" y="0" name="H"/>
+ <anchor x="515" y="-100" name="L"/>
+ <anchor x="857" y="0" name="O"/>
+ <anchor x="1400" y="1200" name="R"/>
+ <anchor x="922" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="511" y="828" type="line"/>
+ <point x="621" y="1269" type="line"/>
+ <point x="1266" y="1269" type="line"/>
+ <point x="1306" y="1431" type="line"/>
+ <point x="456" y="1431" type="line"/>
+ <point x="452" y="1352"/>
+ <point x="413" y="1197"/>
+ <point x="365" y="1005" type="curve" smooth="yes"/>
+ <point x="221" y="426" type="line" smooth="yes"/>
+ <point x="173" y="233"/>
+ <point x="134" y="78"/>
+ <point x="100" y="0" type="curve"/>
+ <point x="980" y="0" type="line"/>
+ <point x="1023" y="176" type="line"/>
+ <point x="940" y="163"/>
+ <point x="806" y="162"/>
+ <point x="609" y="162" type="curve" smooth="yes"/>
+ <point x="345" y="162" type="line"/>
+ <point x="472" y="671" type="line"/>
+ <point x="1042" y="671" type="line"/>
+ <point x="1081" y="828" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnC_apF_.glif b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnC_apF_.glif
new file mode 100644
index 0000000..cbc1726
--- /dev/null
+++ b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnC_apF_.glif
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapF" format="2">
+ <advance width="1130"/>
+ <unicode hex="0046"/>
+ <anchor x="510" y="-100" name="L"/>
+ <anchor x="917" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="508" y="818" type="line"/>
+ <point x="621" y="1269" type="line"/>
+ <point x="1286" y="1269" type="line"/>
+ <point x="1326" y="1431" type="line"/>
+ <point x="456" y="1431" type="line"/>
+ <point x="452" y="1352"/>
+ <point x="412" y="1193"/>
+ <point x="364" y="1000" type="curve" smooth="yes"/>
+ <point x="221" y="426" type="line" smooth="yes"/>
+ <point x="173" y="233"/>
+ <point x="134" y="78"/>
+ <point x="100" y="0" type="curve"/>
+ <point x="320" y="0" type="line"/>
+ <point x="323" y="76"/>
+ <point x="362" y="232"/>
+ <point x="411" y="426" type="curve" smooth="yes"/>
+ <point x="470" y="662" type="line"/>
+ <point x="1050" y="662" type="line"/>
+ <point x="1088" y="818" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnC_apG_.glif b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnC_apG_.glif
new file mode 100644
index 0000000..c39b75a
--- /dev/null
+++ b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnC_apG_.glif
@@ -0,0 +1,48 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapG" format="2">
+ <advance width="1406"/>
+ <unicode hex="0047"/>
+ <anchor x="685" y="0" name="H"/>
+ <anchor x="660" y="-100" name="L"/>
+ <anchor x="1067" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1403" y="710" type="line"/>
+ <point x="863" y="710" type="line"/>
+ <point x="822" y="548" type="line"/>
+ <point x="1172" y="548" type="line"/>
+ <point x="1090" y="220" type="line"/>
+ <point x="1012" y="176"/>
+ <point x="858" y="147"/>
+ <point x="739" y="147" type="curve" smooth="yes"/>
+ <point x="520" y="147"/>
+ <point x="384" y="272"/>
+ <point x="384" y="493" type="curve" smooth="yes"/>
+ <point x="384" y="560"/>
+ <point x="394" y="636"/>
+ <point x="415" y="720" type="curve" smooth="yes"/>
+ <point x="500" y="1062"/>
+ <point x="747" y="1289"/>
+ <point x="1052" y="1289" type="curve" smooth="yes"/>
+ <point x="1195" y="1289"/>
+ <point x="1335" y="1233"/>
+ <point x="1425" y="1122" type="curve"/>
+ <point x="1534" y="1298" type="line"/>
+ <point x="1409" y="1405"/>
+ <point x="1235" y="1455"/>
+ <point x="1063" y="1455" type="curve" smooth="yes"/>
+ <point x="680" y="1455"/>
+ <point x="334" y="1195"/>
+ <point x="217" y="726" type="curve" smooth="yes"/>
+ <point x="195" y="639"/>
+ <point x="185" y="559"/>
+ <point x="185" y="486" type="curve" smooth="yes"/>
+ <point x="185" y="162"/>
+ <point x="406" y="-25"/>
+ <point x="714" y="-25" type="curve" smooth="yes"/>
+ <point x="907" y="-25"/>
+ <point x="1149" y="50"/>
+ <point x="1258" y="132" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnC_apH_.glif b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnC_apH_.glif
new file mode 100644
index 0000000..f454288
--- /dev/null
+++ b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnC_apH_.glif
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapH" format="2">
+ <advance width="1455"/>
+ <unicode hex="0048"/>
+ <anchor x="225" y="0" name="H"/>
+ <anchor x="640" y="-100" name="L"/>
+ <anchor x="1047" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1230" y="0" type="line"/>
+ <point x="1234" y="78"/>
+ <point x="1273" y="233"/>
+ <point x="1321" y="426" type="curve" smooth="yes"/>
+ <point x="1465" y="1005" type="line" smooth="yes"/>
+ <point x="1513" y="1198"/>
+ <point x="1552" y="1352"/>
+ <point x="1586" y="1431" type="curve"/>
+ <point x="1381" y="1431" type="line"/>
+ <point x="1228" y="818" type="line"/>
+ <point x="508" y="818" type="line"/>
+ <point x="661" y="1431" type="line"/>
+ <point x="456" y="1431" type="line"/>
+ <point x="452" y="1352"/>
+ <point x="413" y="1197"/>
+ <point x="365" y="1005" type="curve" smooth="yes"/>
+ <point x="221" y="426" type="line" smooth="yes"/>
+ <point x="173" y="233"/>
+ <point x="134" y="78"/>
+ <point x="100" y="0" type="curve"/>
+ <point x="305" y="0" type="line"/>
+ <point x="470" y="662" type="line"/>
+ <point x="1190" y="662" type="line"/>
+ <point x="1025" y="0" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnC_apI_.glif b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnC_apI_.glif
new file mode 100644
index 0000000..78b151c
--- /dev/null
+++ b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnC_apI_.glif
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapI" format="2">
+ <advance width="955"/>
+ <unicode hex="0049"/>
+ <anchor x="417" y="0" name="H"/>
+ <anchor x="392" y="-100" name="L"/>
+ <anchor x="613" y="0" name="O"/>
+ <anchor x="1215" y="1200" name="R"/>
+ <anchor x="799" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="436" y="1431" type="line"/>
+ <point x="401" y="1289" type="line"/>
+ <point x="641" y="1289" type="line"/>
+ <point x="355" y="142" type="line"/>
+ <point x="115" y="142" type="line"/>
+ <point x="80" y="0" type="line"/>
+ <point x="755" y="0" type="line"/>
+ <point x="790" y="142" type="line"/>
+ <point x="545" y="142" type="line"/>
+ <point x="831" y="1289" type="line"/>
+ <point x="1076" y="1289" type="line"/>
+ <point x="1111" y="1431" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnC_apJ_.glif b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnC_apJ_.glif
new file mode 100644
index 0000000..417d1f8
--- /dev/null
+++ b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnC_apJ_.glif
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapJ" format="2">
+ <advance width="996"/>
+ <unicode hex="004A"/>
+ <anchor x="325" y="-100" name="L"/>
+ <anchor x="997" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="871" y="1431" type="line"/>
+ <point x="858" y="1327"/>
+ <point x="817" y="1151"/>
+ <point x="769" y="960" type="curve" smooth="yes"/>
+ <point x="648" y="475" type="line" smooth="yes"/>
+ <point x="592" y="251"/>
+ <point x="484" y="152"/>
+ <point x="337" y="152" type="curve" smooth="yes"/>
+ <point x="245" y="152"/>
+ <point x="145" y="224"/>
+ <point x="97" y="299" type="curve"/>
+ <point x="6" y="118" type="line"/>
+ <point x="58" y="39"/>
+ <point x="193" y="-25"/>
+ <point x="298" y="-25" type="curve" smooth="yes"/>
+ <point x="555" y="-25"/>
+ <point x="749" y="117"/>
+ <point x="850" y="524" type="curve" smooth="yes"/>
+ <point x="1076" y="1431" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnC_apK_.glif b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnC_apK_.glif
new file mode 100644
index 0000000..8e54a6d
--- /dev/null
+++ b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnC_apK_.glif
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapK" format="2">
+ <advance width="1261"/>
+ <unicode hex="004B"/>
+ <anchor x="210" y="0" name="H"/>
+ <anchor x="610" y="-100" name="L"/>
+ <anchor x="972" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1221" y="1431" type="line"/>
+ <point x="406" y="689" type="line"/>
+ <point x="547" y="730" type="line"/>
+ <point x="660" y="725" type="line"/>
+ <point x="1461" y="1431" type="line"/>
+ </contour>
+ <contour>
+ <point x="1170" y="0" type="line"/>
+ <point x="615" y="823" type="line"/>
+ <point x="469" y="720" type="line"/>
+ <point x="925" y="0" type="line"/>
+ </contour>
+ <contour>
+ <point x="661" y="1431" type="line"/>
+ <point x="456" y="1431" type="line"/>
+ <point x="452" y="1352"/>
+ <point x="413" y="1197"/>
+ <point x="365" y="1005" type="curve" smooth="yes"/>
+ <point x="221" y="426" type="line" smooth="yes"/>
+ <point x="173" y="233"/>
+ <point x="134" y="78"/>
+ <point x="100" y="0" type="curve"/>
+ <point x="305" y="0" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnC_apL_.glif b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnC_apL_.glif
new file mode 100644
index 0000000..d2eb932
--- /dev/null
+++ b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnC_apL_.glif
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapL" format="2">
+ <advance width="1060"/>
+ <unicode hex="004C"/>
+ <anchor x="532" y="0" name="H"/>
+ <anchor x="507" y="-100" name="L"/>
+ <anchor x="780" y="1200" name="R"/>
+ <anchor x="914" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="345" y="162" type="line"/>
+ <point x="661" y="1431" type="line"/>
+ <point x="456" y="1431" type="line"/>
+ <point x="452" y="1352"/>
+ <point x="413" y="1197"/>
+ <point x="365" y="1005" type="curve" smooth="yes"/>
+ <point x="221" y="426" type="line" smooth="yes"/>
+ <point x="173" y="233"/>
+ <point x="134" y="78"/>
+ <point x="100" y="0" type="curve"/>
+ <point x="965" y="0" type="line"/>
+ <point x="1008" y="176" type="line"/>
+ <point x="925" y="163"/>
+ <point x="766" y="162"/>
+ <point x="569" y="162" type="curve" smooth="yes"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnC_apM_.glif b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnC_apM_.glif
new file mode 100644
index 0000000..7c3c824
--- /dev/null
+++ b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnC_apM_.glif
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapM" format="2">
+ <advance width="1785"/>
+ <unicode hex="004D"/>
+ <anchor x="800" y="-100" name="L"/>
+ <anchor x="1207" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="880" y="201" type="line"/>
+ <point x="751" y="1431" type="line"/>
+ <point x="591" y="1431" type="line"/>
+ <point x="740" y="0" type="line"/>
+ <point x="935" y="0" type="line"/>
+ <point x="1793" y="1431" type="line"/>
+ <point x="1616" y="1431" type="line"/>
+ </contour>
+ <contour>
+ <point x="536" y="1431" type="line"/>
+ <point x="536" y="1431"/>
+ <point x="184" y="194"/>
+ <point x="110" y="0" type="curve"/>
+ <point x="295" y="0" type="line"/>
+ <point x="621" y="1181" type="line"/>
+ <point x="711" y="1431" type="line"/>
+ </contour>
+ <contour>
+ <point x="1560" y="0" type="line"/>
+ <point x="1579" y="194"/>
+ <point x="1846" y="1431"/>
+ <point x="1846" y="1431" type="curve"/>
+ <point x="1671" y="1431" type="line"/>
+ <point x="1641" y="1181" type="line"/>
+ <point x="1375" y="0" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnC_apN_.glif b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnC_apN_.glif
new file mode 100644
index 0000000..7306669
--- /dev/null
+++ b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnC_apN_.glif
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapN" format="2">
+ <advance width="1480"/>
+ <unicode hex="004E"/>
+ <anchor x="1170" y="0" name="H"/>
+ <anchor x="652" y="-100" name="L"/>
+ <anchor x="1059" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="491" y="1328" type="line"/>
+ <point x="1075" y="0" type="line"/>
+ <point x="1219" y="98" type="line"/>
+ <point x="636" y="1431" type="line"/>
+ </contour>
+ <contour>
+ <point x="1075" y="0" type="line"/>
+ <point x="1250" y="0" type="line"/>
+ <point x="1500" y="1005" type="line" smooth="yes"/>
+ <point x="1548" y="1198"/>
+ <point x="1588" y="1352"/>
+ <point x="1621" y="1431" type="curve"/>
+ <point x="1431" y="1431" type="line"/>
+ </contour>
+ <contour>
+ <point x="636" y="1431" type="line"/>
+ <point x="446" y="1431" type="line"/>
+ <point x="442" y="1352"/>
+ <point x="403" y="1197"/>
+ <point x="355" y="1005" type="curve" smooth="yes"/>
+ <point x="211" y="426" type="line" smooth="yes"/>
+ <point x="163" y="233"/>
+ <point x="124" y="78"/>
+ <point x="90" y="0" type="curve"/>
+ <point x="280" y="0" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnC_apO_.glif b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnC_apO_.glif
new file mode 100644
index 0000000..19c4886
--- /dev/null
+++ b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnC_apO_.glif
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapO" format="2">
+ <advance width="1447"/>
+ <unicode hex="004F"/>
+ <anchor x="657" y="0" name="H"/>
+ <anchor x="632" y="-100" name="L"/>
+ <anchor x="896" y="0" name="O"/>
+ <anchor x="1700" y="1200" name="R"/>
+ <anchor x="1039" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="719" y="147" type="curve" smooth="yes"/>
+ <point x="514" y="147"/>
+ <point x="386" y="300"/>
+ <point x="386" y="541" type="curve" smooth="yes"/>
+ <point x="386" y="871"/>
+ <point x="606" y="1284"/>
+ <point x="963" y="1284" type="curve" smooth="yes"/>
+ <point x="1164" y="1284"/>
+ <point x="1291" y="1133"/>
+ <point x="1291" y="892" type="curve" smooth="yes"/>
+ <point x="1291" y="563"/>
+ <point x="1077" y="147"/>
+ </contour>
+ <contour>
+ <point x="1492" y="931" type="curve" smooth="yes"/>
+ <point x="1492" y="1263"/>
+ <point x="1278" y="1455"/>
+ <point x="1015" y="1455" type="curve" smooth="yes"/>
+ <point x="599" y="1455"/>
+ <point x="185" y="1036"/>
+ <point x="185" y="500" type="curve" smooth="yes"/>
+ <point x="185" y="167"/>
+ <point x="400" y="-25"/>
+ <point x="666" y="-25" type="curve" smooth="yes"/>
+ <point x="1078" y="-25"/>
+ <point x="1492" y="395"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnC_apP_.glif b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnC_apP_.glif
new file mode 100644
index 0000000..5b51a57
--- /dev/null
+++ b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnC_apP_.glif
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapP" format="2">
+ <advance width="1190"/>
+ <unicode hex="0050"/>
+ <anchor x="552" y="-100" name="L"/>
+ <anchor x="959" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="443" y="554" type="line"/>
+ <point x="506" y="547"/>
+ <point x="597" y="544"/>
+ <point x="670" y="544" type="curve" smooth="yes"/>
+ <point x="1058" y="544"/>
+ <point x="1321" y="733"/>
+ <point x="1321" y="1084" type="curve" smooth="yes"/>
+ <point x="1321" y="1302"/>
+ <point x="1141" y="1441"/>
+ <point x="864" y="1441" type="curve" smooth="yes"/>
+ <point x="651" y="1441"/>
+ <point x="456" y="1431"/>
+ <point x="456" y="1431" type="curve"/>
+ <point x="452" y="1352"/>
+ <point x="407" y="1172"/>
+ <point x="359" y="980" type="curve"/>
+ <point x="221" y="426" type="line" smooth="yes"/>
+ <point x="173" y="233"/>
+ <point x="134" y="78"/>
+ <point x="100" y="0" type="curve"/>
+ <point x="320" y="0" type="line"/>
+ <point x="324" y="76"/>
+ <point x="362" y="232"/>
+ <point x="411" y="426" type="curve" smooth="yes"/>
+ </contour>
+ <contour>
+ <point x="623" y="1279" type="line"/>
+ <point x="692" y="1282"/>
+ <point x="721" y="1284"/>
+ <point x="815" y="1284" type="curve" smooth="yes"/>
+ <point x="1036" y="1284"/>
+ <point x="1121" y="1172"/>
+ <point x="1121" y="1048" type="curve" smooth="yes"/>
+ <point x="1121" y="845"/>
+ <point x="968" y="696"/>
+ <point x="693" y="696" type="curve" smooth="yes"/>
+ <point x="618" y="696"/>
+ <point x="542" y="698"/>
+ <point x="481" y="706" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnC_apQ_.glif b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnC_apQ_.glif
new file mode 100644
index 0000000..3dcbc8d
--- /dev/null
+++ b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnC_apQ_.glif
@@ -0,0 +1,52 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapQ" format="2">
+ <advance width="1459"/>
+ <unicode hex="0051"/>
+ <anchor x="589" y="-270" name="L"/>
+ <anchor x="1039" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1495" y="939" type="curve" smooth="yes"/>
+ <point x="1495" y="1266"/>
+ <point x="1306" y="1455"/>
+ <point x="1026" y="1455" type="curve" smooth="yes"/>
+ <point x="703" y="1455"/>
+ <point x="332" y="1195"/>
+ <point x="215" y="726" type="curve" smooth="yes"/>
+ <point x="194" y="642"/>
+ <point x="185" y="564"/>
+ <point x="185" y="492" type="curve" smooth="yes"/>
+ <point x="185" y="165"/>
+ <point x="388" y="-25"/>
+ <point x="652" y="-25" type="curve" smooth="yes"/>
+ <point x="714" y="-25"/>
+ <point x="781" y="-17"/>
+ <point x="829" y="0" type="curve"/>
+ <point x="898" y="0"/>
+ <point x="1133" y="-186"/>
+ <point x="1217" y="-186" type="curve" smooth="yes"/>
+ <point x="1271" y="-186"/>
+ <point x="1355" y="-79"/>
+ <point x="1388" y="-44" type="curve"/>
+ <point x="1258" y="-27"/>
+ <point x="1155" y="27"/>
+ <point x="1049" y="103" type="curve"/>
+ <point x="1253" y="217"/>
+ <point x="1495" y="528"/>
+ </contour>
+ <contour>
+ <point x="690" y="147" type="curve" smooth="yes"/>
+ <point x="492" y="147"/>
+ <point x="384" y="284"/>
+ <point x="384" y="508" type="curve" smooth="yes"/>
+ <point x="384" y="856"/>
+ <point x="609" y="1284"/>
+ <point x="994" y="1284" type="curve" smooth="yes"/>
+ <point x="1188" y="1284"/>
+ <point x="1295" y="1149"/>
+ <point x="1295" y="925" type="curve" smooth="yes"/>
+ <point x="1295" y="490"/>
+ <point x="985" y="147"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnC_apR_.glif b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnC_apR_.glif
new file mode 100644
index 0000000..c8f8186
--- /dev/null
+++ b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnC_apR_.glif
@@ -0,0 +1,55 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapR" format="2">
+ <advance width="1295"/>
+ <unicode hex="0052"/>
+ <anchor x="590" y="0" name="H"/>
+ <anchor x="525" y="-100" name="L"/>
+ <anchor x="932" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="457" y="613" type="line"/>
+ <point x="712" y="613" type="line" smooth="yes"/>
+ <point x="1010" y="613"/>
+ <point x="1303" y="784"/>
+ <point x="1303" y="1114" type="curve" smooth="yes"/>
+ <point x="1303" y="1326"/>
+ <point x="1114" y="1441"/>
+ <point x="844" y="1441" type="curve" smooth="yes"/>
+ <point x="610" y="1441"/>
+ <point x="456" y="1431"/>
+ <point x="456" y="1431" type="curve"/>
+ <point x="452" y="1352"/>
+ <point x="407" y="1172"/>
+ <point x="359" y="980" type="curve" smooth="yes"/>
+ <point x="221" y="426" type="line"/>
+ <point x="173" y="233"/>
+ <point x="134" y="78"/>
+ <point x="100" y="0" type="curve"/>
+ <point x="320" y="0" type="line"/>
+ <point x="324" y="76"/>
+ <point x="363" y="233"/>
+ <point x="411" y="426" type="curve"/>
+ </contour>
+ <contour>
+ <point x="623" y="1279" type="line"/>
+ <point x="677" y="1281"/>
+ <point x="725" y="1284"/>
+ <point x="795" y="1284" type="curve" smooth="yes"/>
+ <point x="1003" y="1284"/>
+ <point x="1104" y="1203"/>
+ <point x="1104" y="1076" type="curve" smooth="yes"/>
+ <point x="1104" y="856"/>
+ <point x="921" y="764"/>
+ <point x="685" y="764" type="curve" smooth="yes"/>
+ <point x="495" y="764" type="line"/>
+ </contour>
+ <contour>
+ <point x="656" y="622" type="line"/>
+ <point x="930" y="0" type="line"/>
+ <point x="1185" y="0" type="line"/>
+ <point x="1122" y="89"/>
+ <point x="864" y="602"/>
+ <point x="828" y="676" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnC_apS_.glif b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnC_apS_.glif
new file mode 100644
index 0000000..01e9f47
--- /dev/null
+++ b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnC_apS_.glif
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapS" format="2">
+ <advance width="1155"/>
+ <unicode hex="0053"/>
+ <anchor x="520" y="0" name="H"/>
+ <anchor x="495" y="-100" name="L"/>
+ <anchor x="902" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1260" y="1347" type="line"/>
+ <point x="1146" y="1419"/>
+ <point x="1021" y="1455"/>
+ <point x="867" y="1455" type="curve" smooth="yes"/>
+ <point x="549" y="1455"/>
+ <point x="320" y="1303"/>
+ <point x="320" y="1040" type="curve" smooth="yes"/>
+ <point x="320" y="901"/>
+ <point x="438" y="794"/>
+ <point x="622" y="691" type="curve" smooth="yes"/>
+ <point x="877" y="549"/>
+ <point x="914" y="461"/>
+ <point x="914" y="378" type="curve" smooth="yes"/>
+ <point x="914" y="256"/>
+ <point x="792" y="147"/>
+ <point x="621" y="147" type="curve" smooth="yes"/>
+ <point x="473" y="147"/>
+ <point x="278" y="235"/>
+ <point x="161" y="378" type="curve"/>
+ <point x="65" y="187" type="line"/>
+ <point x="178" y="73"/>
+ <point x="365" y="-25"/>
+ <point x="558" y="-25" type="curve" smooth="yes"/>
+ <point x="852" y="-25"/>
+ <point x="1114" y="115"/>
+ <point x="1114" y="414" type="curve" smooth="yes"/>
+ <point x="1114" y="526"/>
+ <point x="1057" y="679"/>
+ <point x="800" y="828" type="curve" smooth="yes"/>
+ <point x="597" y="946"/>
+ <point x="510" y="1005"/>
+ <point x="510" y="1079" type="curve" smooth="yes"/>
+ <point x="510" y="1210"/>
+ <point x="659" y="1284"/>
+ <point x="845" y="1284" type="curve" smooth="yes"/>
+ <point x="959" y="1284"/>
+ <point x="1075" y="1240"/>
+ <point x="1173" y="1156" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnC_apT_.glif b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnC_apT_.glif
new file mode 100644
index 0000000..0eeece4
--- /dev/null
+++ b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnC_apT_.glif
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapT" format="2">
+ <advance width="1245"/>
+ <unicode hex="0054"/>
+ <anchor x="562" y="0" name="H"/>
+ <anchor x="562" y="-100" name="L"/>
+ <anchor x="944" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="341" y="1431" type="line"/>
+ <point x="296" y="1250" type="line"/>
+ <point x="380" y="1266"/>
+ <point x="457" y="1269"/>
+ <point x="546" y="1269" type="curve" smooth="yes"/>
+ <point x="781" y="1269" type="line"/>
+ <point x="571" y="426" type="line" smooth="yes"/>
+ <point x="523" y="233"/>
+ <point x="481" y="78"/>
+ <point x="445" y="0" type="curve"/>
+ <point x="675" y="0" type="line"/>
+ <point x="677" y="78"/>
+ <point x="713" y="233"/>
+ <point x="761" y="426" type="curve" smooth="yes"/>
+ <point x="971" y="1269" type="line"/>
+ <point x="1211" y="1269" type="line" smooth="yes"/>
+ <point x="1301" y="1269"/>
+ <point x="1375" y="1266"/>
+ <point x="1451" y="1250" type="curve"/>
+ <point x="1496" y="1431" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnC_apU_.glif b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnC_apU_.glif
new file mode 100644
index 0000000..9576e20
--- /dev/null
+++ b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnC_apU_.glif
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapU" format="2">
+ <advance width="1420"/>
+ <unicode hex="0055"/>
+ <anchor x="647" y="0" name="H"/>
+ <anchor x="622" y="-100" name="L"/>
+ <anchor x="865" y="0" name="O"/>
+ <anchor x="1640" y="1200" name="R"/>
+ <anchor x="1029" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1346" y="1431" type="line"/>
+ <point x="1126" y="549" type="line" smooth="yes"/>
+ <point x="1055" y="264"/>
+ <point x="916" y="132"/>
+ <point x="682" y="132" type="curve" smooth="yes"/>
+ <point x="485" y="132"/>
+ <point x="421" y="244"/>
+ <point x="421" y="391" type="curve" smooth="yes"/>
+ <point x="421" y="451"/>
+ <point x="431" y="516"/>
+ <point x="448" y="582" type="curve" smooth="yes"/>
+ <point x="661" y="1431" type="line"/>
+ <point x="456" y="1431" type="line"/>
+ <point x="451" y="1352"/>
+ <point x="414" y="1198"/>
+ <point x="365" y="1005" type="curve" smooth="yes"/>
+ <point x="251" y="552" type="line" smooth="yes"/>
+ <point x="236" y="493"/>
+ <point x="228" y="435"/>
+ <point x="228" y="379" type="curve" smooth="yes"/>
+ <point x="228" y="157"/>
+ <point x="351" y="-25"/>
+ <point x="643" y="-25" type="curve" smooth="yes"/>
+ <point x="1020" y="-25"/>
+ <point x="1223" y="177"/>
+ <point x="1299" y="480" type="curve" smooth="yes"/>
+ <point x="1430" y="1005" type="line" smooth="yes"/>
+ <point x="1480" y="1207"/>
+ <point x="1519" y="1352"/>
+ <point x="1551" y="1431" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnC_apV_.glif b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnC_apV_.glif
new file mode 100644
index 0000000..2bf8b96
--- /dev/null
+++ b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnC_apV_.glif
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapV" format="2">
+ <advance width="1345"/>
+ <unicode hex="0056"/>
+ <anchor x="620" y="0" name="H"/>
+ <anchor x="587" y="-100" name="L"/>
+ <anchor x="820" y="0" name="O"/>
+ <anchor x="994" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1381" y="1431" type="line"/>
+ <point x="654" y="191" type="line"/>
+ <point x="536" y="1431" type="line"/>
+ <point x="331" y="1431" type="line"/>
+ <point x="344" y="1350"/>
+ <point x="355" y="1262"/>
+ <point x="377" y="1073" type="curve" smooth="yes"/>
+ <point x="500" y="0" type="line"/>
+ <point x="725" y="0" type="line"/>
+ <point x="1377" y="1073" type="line" smooth="yes"/>
+ <point x="1492" y="1263"/>
+ <point x="1550" y="1350"/>
+ <point x="1606" y="1431" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnC_apW_.glif b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnC_apW_.glif
new file mode 100644
index 0000000..553ea17
--- /dev/null
+++ b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnC_apW_.glif
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapW" format="2">
+ <advance width="2060"/>
+ <unicode hex="0057"/>
+ <anchor x="942" y="-100" name="L"/>
+ <anchor x="1349" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1535" y="0" type="line"/>
+ <point x="2107" y="1073" type="line" smooth="yes"/>
+ <point x="2208" y="1263"/>
+ <point x="2259" y="1350"/>
+ <point x="2311" y="1431" type="curve"/>
+ <point x="2081" y="1431" type="line"/>
+ <point x="1431" y="127" type="line"/>
+ <point x="1420" y="0" type="line"/>
+ </contour>
+ <contour>
+ <point x="1310" y="0" type="line"/>
+ <point x="1420" y="0" type="line"/>
+ <point x="1461" y="127" type="line"/>
+ <point x="1406" y="1431" type="line"/>
+ <point x="1231" y="1431" type="line"/>
+ <point x="1248" y="1279" type="line"/>
+ </contour>
+ <contour>
+ <point x="625" y="0" type="line"/>
+ <point x="1406" y="1431" type="line"/>
+ <point x="1221" y="1431" type="line"/>
+ <point x="521" y="127" type="line"/>
+ <point x="521" y="0" type="line"/>
+ </contour>
+ <contour>
+ <point x="546" y="1431" type="line"/>
+ <point x="336" y="1431" type="line"/>
+ <point x="348" y="1353"/>
+ <point x="355" y="1260"/>
+ <point x="362" y="1073" type="curve" smooth="yes"/>
+ <point x="400" y="0" type="line"/>
+ <point x="521" y="0" type="line"/>
+ <point x="551" y="127" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnC_apX_.glif b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnC_apX_.glif
new file mode 100644
index 0000000..2da5787
--- /dev/null
+++ b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnC_apX_.glif
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapX" format="2">
+ <advance width="1305"/>
+ <unicode hex="0058"/>
+ <anchor x="565" y="-100" name="L"/>
+ <anchor x="972" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="970" y="0" type="line"/>
+ <point x="1190" y="0" type="line"/>
+ <point x="1148" y="80"/>
+ <point x="1125" y="124"/>
+ <point x="1045" y="329" type="curve" smooth="yes"/>
+ <point x="611" y="1431" type="line"/>
+ <point x="386" y="1431" type="line"/>
+ <point x="430" y="1348"/>
+ <point x="462" y="1289"/>
+ <point x="541" y="1088" type="curve" smooth="yes"/>
+ </contour>
+ <contour>
+ <point x="752" y="872" type="line"/>
+ <point x="278" y="333" type="line" smooth="yes"/>
+ <point x="98" y="129"/>
+ <point x="53" y="84"/>
+ <point x="-30" y="0" type="curve"/>
+ <point x="210" y="0" type="line"/>
+ <point x="750" y="622" type="line"/>
+ </contour>
+ <contour>
+ <point x="765" y="622" type="line"/>
+ <point x="1183" y="1088" type="line" smooth="yes"/>
+ <point x="1360" y="1285"/>
+ <point x="1425" y="1355"/>
+ <point x="1506" y="1431" type="curve"/>
+ <point x="1261" y="1431" type="line"/>
+ <point x="767" y="872" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnC_apY_.glif b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnC_apY_.glif
new file mode 100644
index 0000000..9ec65ef
--- /dev/null
+++ b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnC_apY_.glif
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapY" format="2">
+ <advance width="1300"/>
+ <unicode hex="0059"/>
+ <anchor x="565" y="-100" name="L"/>
+ <anchor x="972" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="331" y="1431" type="line"/>
+ <point x="407" y="1285"/>
+ <point x="446" y="1173"/>
+ <point x="490" y="1044" type="curve"/>
+ <point x="661" y="549" type="line"/>
+ <point x="829" y="661" type="line"/>
+ <point x="551" y="1431" type="line"/>
+ </contour>
+ <contour>
+ <point x="1321" y="1431" type="line"/>
+ <point x="684" y="661" type="line"/>
+ <point x="796" y="549" type="line"/>
+ <point x="1215" y="1044" type="line" smooth="yes"/>
+ <point x="1322" y="1171"/>
+ <point x="1402" y="1265"/>
+ <point x="1561" y="1431" type="curve"/>
+ </contour>
+ <contour>
+ <point x="700" y="0" type="line"/>
+ <point x="704" y="78"/>
+ <point x="743" y="233"/>
+ <point x="791" y="426" type="curve" smooth="yes"/>
+ <point x="854" y="681" type="line"/>
+ <point x="664" y="681" type="line"/>
+ <point x="601" y="426" type="line" smooth="yes"/>
+ <point x="553" y="233"/>
+ <point x="514" y="78"/>
+ <point x="480" y="0" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mA_.glif b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mA_.glif
new file mode 100644
index 0000000..586e494
--- /dev/null
+++ b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mA_.glif
@@ -0,0 +1,77 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmA" format="2">
+ <advance width="1107"/>
+ <unicode hex="0061"/>
+ <anchor x="860" y="0" name="H"/>
+ <anchor x="455" y="-100" name="L"/>
+ <anchor x="1065" y="0" name="O"/>
+ <anchor x="1310" y="1000" name="R"/>
+ <anchor x="755" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="972" y="0" type="line"/>
+ <point x="965" y="48"/>
+ <point x="960" y="98"/>
+ <point x="960" y="149" type="curve" smooth="yes"/>
+ <point x="960" y="214"/>
+ <point x="967" y="284"/>
+ <point x="987" y="363" type="curve"/>
+ <point x="1077" y="726" type="line"/>
+ <point x="1081" y="744"/>
+ <point x="1084" y="762"/>
+ <point x="1084" y="779" type="curve" smooth="yes"/>
+ <point x="1084" y="912"/>
+ <point x="955" y="1019"/>
+ <point x="751" y="1019" type="curve" smooth="yes"/>
+ <point x="599" y="1019"/>
+ <point x="502" y="974"/>
+ <point x="389" y="931" type="curve"/>
+ <point x="373" y="889"/>
+ <point x="343" y="783"/>
+ <point x="331" y="740" type="curve"/>
+ <point x="468" y="820"/>
+ <point x="560" y="862"/>
+ <point x="666" y="862" type="curve" smooth="yes"/>
+ <point x="798" y="862"/>
+ <point x="885" y="810"/>
+ <point x="885" y="718" type="curve" smooth="yes"/>
+ <point x="885" y="705"/>
+ <point x="884" y="691"/>
+ <point x="880" y="677" type="curve" smooth="yes"/>
+ <point x="867" y="622" type="line"/>
+ <point x="825" y="619"/>
+ <point x="661" y="605"/>
+ <point x="591" y="598" type="curve" smooth="yes"/>
+ <point x="282" y="568"/>
+ <point x="102" y="415"/>
+ <point x="102" y="233" type="curve" smooth="yes"/>
+ <point x="102" y="103"/>
+ <point x="223" y="-25"/>
+ <point x="390" y="-25" type="curve" smooth="yes"/>
+ <point x="514" y="-25"/>
+ <point x="674" y="47"/>
+ <point x="779" y="152" type="curve"/>
+ <point x="779" y="89"/>
+ <point x="787" y="31"/>
+ <point x="792" y="0" type="curve"/>
+ </contour>
+ <contour>
+ <point x="791" y="319" type="line"/>
+ <point x="674" y="191"/>
+ <point x="553" y="137"/>
+ <point x="451" y="137" type="curve" smooth="yes"/>
+ <point x="355" y="137"/>
+ <point x="290" y="192"/>
+ <point x="290" y="264" type="curve" smooth="yes"/>
+ <point x="290" y="274"/>
+ <point x="291" y="285"/>
+ <point x="294" y="296" type="curve" smooth="yes"/>
+ <point x="315" y="380"/>
+ <point x="432" y="450"/>
+ <point x="566" y="461" type="curve" smooth="yes"/>
+ <point x="631" y="466"/>
+ <point x="782" y="483"/>
+ <point x="832" y="485" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mA_A_cute.glif b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mA_A_cute.glif
new file mode 100644
index 0000000..198d6db
--- /dev/null
+++ b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mA_A_cute.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmAAcute" format="2">
+ <advance width="1107"/>
+ <unicode hex="00E1"/>
+ <anchor x="860" y="0" name="H"/>
+ <anchor x="455" y="-100" name="L"/>
+ <anchor x="1065" y="0" name="O"/>
+ <anchor x="1310" y="1000" name="R"/>
+ <anchor x="889" y="1635" name="U"/>
+ <outline>
+ <component base="LtnSmA"/>
+ <component base="CombAcute" xOffset="1110"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mA_C_ircum.glif b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mA_C_ircum.glif
new file mode 100644
index 0000000..f5cfb16
--- /dev/null
+++ b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mA_C_ircum.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmACircum" format="2">
+ <advance width="1107"/>
+ <unicode hex="00E2"/>
+ <anchor x="860" y="0" name="H"/>
+ <anchor x="455" y="-100" name="L"/>
+ <anchor x="1065" y="0" name="O"/>
+ <anchor x="1310" y="1000" name="R"/>
+ <anchor x="854" y="1635" name="U"/>
+ <outline>
+ <component base="LtnSmA"/>
+ <component base="CombCircum" xOffset="1075"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mA_D_iaer.glif b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mA_D_iaer.glif
new file mode 100644
index 0000000..6f05301
--- /dev/null
+++ b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mA_D_iaer.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmADiaer" format="2">
+ <advance width="1107"/>
+ <unicode hex="00E4"/>
+ <anchor x="860" y="0" name="H"/>
+ <anchor x="455" y="-100" name="L"/>
+ <anchor x="1065" y="0" name="O"/>
+ <anchor x="1310" y="1000" name="R"/>
+ <anchor x="852" y="1505" name="U"/>
+ <outline>
+ <component base="LtnSmA"/>
+ <component base="CombDiaer" xOffset="1105"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mA_G_rave.glif b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mA_G_rave.glif
new file mode 100644
index 0000000..9048920
--- /dev/null
+++ b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mA_G_rave.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmAGrave" format="2">
+ <advance width="1107"/>
+ <unicode hex="00E0"/>
+ <anchor x="860" y="0" name="H"/>
+ <anchor x="455" y="-100" name="L"/>
+ <anchor x="1065" y="0" name="O"/>
+ <anchor x="1310" y="1000" name="R"/>
+ <anchor x="889" y="1635" name="U"/>
+ <outline>
+ <component base="LtnSmA"/>
+ <component base="CombGrave" xOffset="1090"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mA_R_ingA_bv.glif b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mA_R_ingA_bv.glif
new file mode 100644
index 0000000..8ada58f
--- /dev/null
+++ b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mA_R_ingA_bv.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmARingAbv" format="2">
+ <advance width="1107"/>
+ <unicode hex="00E5"/>
+ <anchor x="860" y="0" name="H"/>
+ <anchor x="455" y="-100" name="L"/>
+ <anchor x="1065" y="0" name="O"/>
+ <anchor x="1310" y="1000" name="R"/>
+ <anchor x="919" y="1635" name="U"/>
+ <outline>
+ <component base="LtnSmA"/>
+ <component base="CombRingAbv" xOffset="1140"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mA_T_ilde.glif b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mA_T_ilde.glif
new file mode 100644
index 0000000..c29348b
--- /dev/null
+++ b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mA_T_ilde.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmATilde" format="2">
+ <advance width="1107"/>
+ <unicode hex="00E3"/>
+ <anchor x="860" y="0" name="H"/>
+ <anchor x="455" y="-100" name="L"/>
+ <anchor x="1065" y="0" name="O"/>
+ <anchor x="1310" y="1000" name="R"/>
+ <anchor x="850" y="1475" name="U"/>
+ <outline>
+ <component base="LtnSmA"/>
+ <component base="CombTilde" xOffset="1140"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mB_.glif b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mB_.glif
new file mode 100644
index 0000000..b3a3696
--- /dev/null
+++ b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mB_.glif
@@ -0,0 +1,55 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmB" format="2">
+ <advance width="1144"/>
+ <unicode hex="0062"/>
+ <anchor x="530" y="0" name="H"/>
+ <anchor x="505" y="-100" name="L"/>
+ <anchor x="1345" y="1000" name="R"/>
+ <anchor x="938" y="1635" name="U"/>
+ <outline>
+ <contour>
+ <point x="437" y="1570" type="line"/>
+ <point x="437" y="1456"/>
+ <point x="402" y="1246"/>
+ <point x="367" y="1105" type="curve" smooth="yes"/>
+ <point x="110" y="85" type="line"/>
+ <point x="198" y="44"/>
+ <point x="355" y="-25"/>
+ <point x="517" y="-25" type="curve" smooth="yes"/>
+ <point x="675" y="-25"/>
+ <point x="795" y="24"/>
+ <point x="907" y="125" type="curve" smooth="yes"/>
+ <point x="1050" y="255"/>
+ <point x="1162" y="466"/>
+ <point x="1162" y="695" type="curve" smooth="yes"/>
+ <point x="1162" y="930"/>
+ <point x="1046" y="1020"/>
+ <point x="907" y="1020" type="curve" smooth="yes"/>
+ <point x="754" y="1020"/>
+ <point x="584" y="878"/>
+ <point x="456" y="719" type="curve"/>
+ <point x="552" y="1105" type="line" smooth="yes"/>
+ <point x="600" y="1296"/>
+ <point x="627" y="1508"/>
+ <point x="627" y="1570" type="curve"/>
+ </contour>
+ <contour>
+ <point x="382" y="429" type="line"/>
+ <point x="485" y="617"/>
+ <point x="708" y="850"/>
+ <point x="822" y="850" type="curve" smooth="yes"/>
+ <point x="913" y="850"/>
+ <point x="972" y="784"/>
+ <point x="972" y="635" type="curve" smooth="yes"/>
+ <point x="972" y="469"/>
+ <point x="909" y="336"/>
+ <point x="822" y="250" type="curve" smooth="yes"/>
+ <point x="741" y="169"/>
+ <point x="638" y="125"/>
+ <point x="552" y="125" type="curve" smooth="yes"/>
+ <point x="466" y="125"/>
+ <point x="376" y="167"/>
+ <point x="325" y="200" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mC_.glif b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mC_.glif
new file mode 100644
index 0000000..f54fbe9
--- /dev/null
+++ b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mC_.glif
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmC" format="2">
+ <advance width="989"/>
+ <unicode hex="0063"/>
+ <anchor x="520" y="0" name="H"/>
+ <anchor x="495" y="-100" name="L"/>
+ <anchor x="1210" y="1000" name="R"/>
+ <anchor x="785" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="917" y="255" type="line"/>
+ <point x="811" y="179"/>
+ <point x="703" y="137"/>
+ <point x="583" y="137" type="curve" smooth="yes"/>
+ <point x="427" y="137"/>
+ <point x="331" y="239"/>
+ <point x="331" y="406" type="curve" smooth="yes"/>
+ <point x="331" y="619"/>
+ <point x="499" y="858"/>
+ <point x="742" y="858" type="curve" smooth="yes"/>
+ <point x="845" y="858"/>
+ <point x="924" y="824"/>
+ <point x="998" y="760" type="curve"/>
+ <point x="1077" y="936" type="line"/>
+ <point x="1016" y="985"/>
+ <point x="902" y="1020"/>
+ <point x="789" y="1020" type="curve" smooth="yes"/>
+ <point x="420" y="1020"/>
+ <point x="139" y="737"/>
+ <point x="139" y="381" type="curve" smooth="yes"/>
+ <point x="139" y="130"/>
+ <point x="309" y="-25"/>
+ <point x="532" y="-25" type="curve" smooth="yes"/>
+ <point x="682" y="-25"/>
+ <point x="785" y="9"/>
+ <point x="904" y="83" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mD_.glif b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mD_.glif
new file mode 100644
index 0000000..4ea9ea1
--- /dev/null
+++ b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mD_.glif
@@ -0,0 +1,65 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmD" format="2">
+ <advance width="1197"/>
+ <unicode hex="0064"/>
+ <anchor x="545" y="0" name="H"/>
+ <anchor x="520" y="-100" name="L"/>
+ <anchor x="1380" y="1000" name="R"/>
+ <anchor x="953" y="1635" name="U"/>
+ <outline>
+ <contour>
+ <point x="1144" y="1570" type="line"/>
+ <point x="1144" y="1456"/>
+ <point x="1114" y="1327"/>
+ <point x="1079" y="1175" type="curve" smooth="yes"/>
+ <point x="1024" y="935" type="line"/>
+ <point x="957" y="978"/>
+ <point x="854" y="1020"/>
+ <point x="759" y="1020" type="curve" smooth="yes"/>
+ <point x="650" y="1020"/>
+ <point x="534" y="979"/>
+ <point x="429" y="895" type="curve" smooth="yes"/>
+ <point x="262" y="761"/>
+ <point x="139" y="532"/>
+ <point x="139" y="288" type="curve" smooth="yes"/>
+ <point x="139" y="94"/>
+ <point x="250" y="-25"/>
+ <point x="424" y="-25" type="curve" smooth="yes"/>
+ <point x="563" y="-25"/>
+ <point x="791" y="141"/>
+ <point x="899" y="305" type="curve"/>
+ <point x="875" y="196"/>
+ <point x="869" y="93"/>
+ <point x="869" y="0" type="curve"/>
+ <point x="1052" y="0" type="line"/>
+ <point x="1048" y="23"/>
+ <point x="1047" y="53"/>
+ <point x="1047" y="90" type="curve" smooth="yes"/>
+ <point x="1047" y="190"/>
+ <point x="1063" y="340"/>
+ <point x="1107" y="520" type="curve" smooth="yes"/>
+ <point x="1267" y="1175" type="line" smooth="yes"/>
+ <point x="1310" y="1351"/>
+ <point x="1337" y="1475"/>
+ <point x="1337" y="1570" type="curve"/>
+ </contour>
+ <contour>
+ <point x="930" y="545" type="line"/>
+ <point x="846" y="370"/>
+ <point x="592" y="130"/>
+ <point x="479" y="130" type="curve" smooth="yes"/>
+ <point x="374" y="130"/>
+ <point x="330" y="195"/>
+ <point x="330" y="316" type="curve" smooth="yes"/>
+ <point x="330" y="460"/>
+ <point x="397" y="649"/>
+ <point x="509" y="760" type="curve" smooth="yes"/>
+ <point x="572" y="822"/>
+ <point x="643" y="855"/>
+ <point x="734" y="855" type="curve" smooth="yes"/>
+ <point x="835" y="855"/>
+ <point x="898" y="832"/>
+ <point x="984" y="780" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mE_.glif b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mE_.glif
new file mode 100644
index 0000000..a3a6490
--- /dev/null
+++ b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mE_.glif
@@ -0,0 +1,52 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmE" format="2">
+ <advance width="1042"/>
+ <unicode hex="0065"/>
+ <anchor x="485" y="0" name="H"/>
+ <anchor x="484" y="-100" name="L"/>
+ <anchor x="840" y="0" name="O"/>
+ <anchor x="1285" y="1000" name="R"/>
+ <anchor x="784" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="967" y="270" type="line"/>
+ <point x="854" y="189"/>
+ <point x="700" y="135"/>
+ <point x="567" y="135" type="curve" smooth="yes"/>
+ <point x="386" y="135"/>
+ <point x="317" y="263"/>
+ <point x="317" y="420" type="curve" smooth="yes"/>
+ <point x="317" y="686"/>
+ <point x="522" y="872"/>
+ <point x="720" y="872" type="curve" smooth="yes"/>
+ <point x="813" y="872"/>
+ <point x="883" y="823"/>
+ <point x="883" y="753" type="curve" smooth="yes"/>
+ <point x="883" y="660"/>
+ <point x="766" y="590"/>
+ <point x="539" y="590" type="curve" smooth="yes"/>
+ <point x="468" y="590"/>
+ <point x="382" y="596"/>
+ <point x="279" y="610" type="curve"/>
+ <point x="279" y="477" type="line"/>
+ <point x="391" y="461"/>
+ <point x="487" y="453"/>
+ <point x="569" y="453" type="curve" smooth="yes"/>
+ <point x="931" y="453"/>
+ <point x="1077" y="609"/>
+ <point x="1077" y="791" type="curve" smooth="yes"/>
+ <point x="1077" y="899"/>
+ <point x="986" y="1020"/>
+ <point x="772" y="1020" type="curve" smooth="yes"/>
+ <point x="399" y="1020"/>
+ <point x="137" y="710"/>
+ <point x="137" y="380" type="curve" smooth="yes"/>
+ <point x="137" y="147"/>
+ <point x="258" y="-25"/>
+ <point x="523" y="-25" type="curve" smooth="yes"/>
+ <point x="689" y="-25"/>
+ <point x="849" y="26"/>
+ <point x="955" y="83" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mF_.glif b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mF_.glif
new file mode 100644
index 0000000..ede52a9
--- /dev/null
+++ b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mF_.glif
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmF" format="2">
+ <advance width="756"/>
+ <unicode hex="0066"/>
+ <anchor x="290" y="0" name="H"/>
+ <anchor x="315" y="-100" name="L"/>
+ <anchor x="908" y="1635" name="U"/>
+ <outline>
+ <contour>
+ <point x="180" y="833" type="line"/>
+ <point x="835" y="833" type="line"/>
+ <point x="871" y="975" type="line"/>
+ <point x="216" y="975" type="line"/>
+ </contour>
+ <contour>
+ <point x="1106" y="1519" type="line"/>
+ <point x="1062" y="1555"/>
+ <point x="981" y="1588"/>
+ <point x="903" y="1588" type="curve" smooth="yes"/>
+ <point x="687" y="1588"/>
+ <point x="533" y="1478"/>
+ <point x="448" y="1147" type="curve" smooth="yes"/>
+ <point x="403" y="972"/>
+ <point x="244" y="334"/>
+ <point x="223" y="0" type="curve"/>
+ <point x="436" y="0" type="line"/>
+ <point x="430" y="28"/>
+ <point x="427" y="66"/>
+ <point x="427" y="110" type="curve" smooth="yes"/>
+ <point x="427" y="213"/>
+ <point x="447" y="351"/>
+ <point x="476" y="484" type="curve" smooth="yes"/>
+ <point x="510" y="641"/>
+ <point x="558" y="846"/>
+ <point x="641" y="1186" type="curve" smooth="yes"/>
+ <point x="682" y="1353"/>
+ <point x="758" y="1421"/>
+ <point x="862" y="1421" type="curve" smooth="yes"/>
+ <point x="920" y="1421"/>
+ <point x="988" y="1392"/>
+ <point x="1022" y="1362" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mG_.glif b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mG_.glif
new file mode 100644
index 0000000..8931f8d
--- /dev/null
+++ b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mG_.glif
@@ -0,0 +1,100 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmG" format="2">
+ <advance width="1075"/>
+ <unicode hex="0067"/>
+ <anchor x="368" y="-465" name="H"/>
+ <anchor x="351" y="-535" name="L"/>
+ <anchor x="1285" y="1000" name="R"/>
+ <anchor x="730" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="360" y="389" type="line"/>
+ <point x="277" y="352"/>
+ <point x="168" y="266"/>
+ <point x="168" y="176" type="curve" smooth="yes"/>
+ <point x="168" y="96"/>
+ <point x="246" y="33"/>
+ <point x="483" y="-5" type="curve" smooth="yes"/>
+ <point x="707" y="-41"/>
+ <point x="781" y="-94"/>
+ <point x="781" y="-151" type="curve" smooth="yes"/>
+ <point x="781" y="-256"/>
+ <point x="580" y="-353"/>
+ <point x="411" y="-353" type="curve" smooth="yes"/>
+ <point x="202" y="-353"/>
+ <point x="104" y="-271"/>
+ <point x="104" y="-196" type="curve" smooth="yes"/>
+ <point x="104" y="-189"/>
+ <point x="104" y="-183"/>
+ <point x="106" y="-176" type="curve" smooth="yes"/>
+ <point x="120" y="-119"/>
+ <point x="170" y="-55"/>
+ <point x="409" y="20" type="curve"/>
+ <point x="410" y="48"/>
+ <point x="248" y="73"/>
+ <point x="248" y="73" type="curve"/>
+ <point x="53" y="12"/>
+ <point x="-51" y="-77"/>
+ <point x="-78" y="-186" type="curve" smooth="yes"/>
+ <point x="-82" y="-201"/>
+ <point x="-84" y="-217"/>
+ <point x="-84" y="-231" type="curve" smooth="yes"/>
+ <point x="-84" y="-396"/>
+ <point x="158" y="-495"/>
+ <point x="371" y="-495" type="curve" smooth="yes"/>
+ <point x="632" y="-495"/>
+ <point x="972" y="-360"/>
+ <point x="972" y="-125" type="curve" smooth="yes"/>
+ <point x="972" y="0"/>
+ <point x="849" y="90"/>
+ <point x="619" y="127" type="curve" smooth="yes"/>
+ <point x="403" y="162"/>
+ <point x="341" y="184"/>
+ <point x="341" y="218" type="curve" smooth="yes"/>
+ <point x="341" y="263"/>
+ <point x="447" y="325"/>
+ <point x="522" y="342" type="curve"/>
+ </contour>
+ <contour>
+ <point x="1244" y="1019" type="line"/>
+ <point x="1143" y="1012"/>
+ <point x="1002" y="977"/>
+ <point x="899" y="921" type="curve"/>
+ <point x="936" y="809" type="line"/>
+ <point x="1037" y="846"/>
+ <point x="1121" y="860"/>
+ <point x="1194" y="862" type="curve"/>
+ </contour>
+ <contour>
+ <point x="212" y="613" type="curve" smooth="yes"/>
+ <point x="212" y="449"/>
+ <point x="356" y="319"/>
+ <point x="554" y="319" type="curve" smooth="yes"/>
+ <point x="791" y="319"/>
+ <point x="1030" y="495"/>
+ <point x="1030" y="729" type="curve" smooth="yes"/>
+ <point x="1030" y="894"/>
+ <point x="887" y="1019"/>
+ <point x="689" y="1019" type="curve" smooth="yes"/>
+ <point x="441" y="1019"/>
+ <point x="212" y="847"/>
+ </contour>
+ <contour>
+ <point x="857" y="704" type="curve" smooth="yes"/>
+ <point x="857" y="555"/>
+ <point x="712" y="456"/>
+ <point x="578" y="456" type="curve" smooth="yes"/>
+ <point x="463" y="456"/>
+ <point x="385" y="530"/>
+ <point x="385" y="628" type="curve" smooth="yes"/>
+ <point x="385" y="643"/>
+ <point x="387" y="660"/>
+ <point x="391" y="676" type="curve" smooth="yes"/>
+ <point x="421" y="797"/>
+ <point x="530" y="877"/>
+ <point x="663" y="877" type="curve" smooth="yes"/>
+ <point x="779" y="877"/>
+ <point x="857" y="802"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mH_.glif b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mH_.glif
new file mode 100644
index 0000000..08afbac
--- /dev/null
+++ b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mH_.glif
@@ -0,0 +1,54 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmH" format="2">
+ <advance width="1185"/>
+ <unicode hex="0068"/>
+ <anchor x="190" y="0" name="H"/>
+ <anchor x="550" y="-100" name="L"/>
+ <anchor x="933" y="1635" name="U"/>
+ <outline>
+ <contour>
+ <point x="1055" y="0" type="line"/>
+ <point x="1047" y="30"/>
+ <point x="1043" y="65"/>
+ <point x="1043" y="102" type="curve" smooth="yes"/>
+ <point x="1043" y="143"/>
+ <point x="1048" y="188"/>
+ <point x="1055" y="238" type="curve" smooth="yes"/>
+ <point x="1069" y="327"/>
+ <point x="1170" y="636"/>
+ <point x="1170" y="745" type="curve" smooth="yes"/>
+ <point x="1170" y="917"/>
+ <point x="1095" y="1020"/>
+ <point x="930" y="1020" type="curve" smooth="yes"/>
+ <point x="760" y="1020"/>
+ <point x="591" y="877"/>
+ <point x="475" y="723" type="curve"/>
+ <point x="571" y="1105" type="line" smooth="yes"/>
+ <point x="609" y="1259"/>
+ <point x="645" y="1482"/>
+ <point x="645" y="1570" type="curve"/>
+ <point x="455" y="1570" type="line"/>
+ <point x="455" y="1456"/>
+ <point x="423" y="1257"/>
+ <point x="385" y="1105" type="curve" smooth="yes"/>
+ <point x="110" y="0" type="line"/>
+ <point x="295" y="0" type="line"/>
+ <point x="397" y="408" type="line"/>
+ <point x="492" y="612"/>
+ <point x="717" y="850"/>
+ <point x="840" y="850" type="curve" smooth="yes"/>
+ <point x="937" y="850"/>
+ <point x="970" y="798"/>
+ <point x="970" y="680" type="curve" smooth="yes"/>
+ <point x="970" y="592"/>
+ <point x="886" y="319"/>
+ <point x="872" y="203" type="curve" smooth="yes"/>
+ <point x="867" y="158"/>
+ <point x="864" y="115"/>
+ <point x="864" y="77" type="curve" smooth="yes"/>
+ <point x="864" y="48"/>
+ <point x="866" y="21"/>
+ <point x="870" y="0" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mI_.glif b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mI_.glif
new file mode 100644
index 0000000..65ed550
--- /dev/null
+++ b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mI_.glif
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmI" format="2">
+ <advance width="554"/>
+ <unicode hex="0069"/>
+ <anchor x="235" y="0" name="H"/>
+ <anchor x="250" y="-100" name="L"/>
+ <anchor x="455" y="0" name="O"/>
+ <anchor x="745" y="1000" name="R"/>
+ <anchor x="472" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="361" y="1297" type="curve" smooth="yes"/>
+ <point x="361" y="1237"/>
+ <point x="404" y="1186"/>
+ <point x="467" y="1186" type="curve" smooth="yes"/>
+ <point x="552" y="1186"/>
+ <point x="624" y="1259"/>
+ <point x="624" y="1338" type="curve" smooth="yes"/>
+ <point x="624" y="1399"/>
+ <point x="578" y="1450"/>
+ <point x="513" y="1450" type="curve" smooth="yes"/>
+ <point x="428" y="1450"/>
+ <point x="361" y="1375"/>
+ </contour>
+ <contour>
+ <point x="335" y="1000" type="line"/>
+ <point x="335" y="886"/>
+ <point x="286" y="688"/>
+ <point x="246" y="537" type="curve" smooth="yes"/>
+ <point x="207" y="388" type="line" smooth="yes"/>
+ <point x="180" y="284"/>
+ <point x="165" y="172"/>
+ <point x="165" y="87" type="curve" smooth="yes"/>
+ <point x="165" y="53"/>
+ <point x="167" y="24"/>
+ <point x="172" y="0" type="curve"/>
+ <point x="372" y="0" type="line"/>
+ <point x="365" y="37"/>
+ <point x="360" y="85"/>
+ <point x="360" y="136" type="curve" smooth="yes"/>
+ <point x="360" y="208"/>
+ <point x="368" y="287"/>
+ <point x="386" y="357" type="curve" smooth="yes"/>
+ <point x="431" y="536" type="line" smooth="yes"/>
+ <point x="476" y="712"/>
+ <point x="525" y="912"/>
+ <point x="525" y="1000" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mJ_.glif b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mJ_.glif
new file mode 100644
index 0000000..e9e18b8
--- /dev/null
+++ b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mJ_.glif
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmJ" format="2">
+ <advance width="602"/>
+ <unicode hex="006A"/>
+ <anchor x="-60" y="-500" name="L"/>
+ <anchor x="510" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="370" y="1000" type="line"/>
+ <point x="370" y="856"/>
+ <point x="288" y="374"/>
+ <point x="214" y="77" type="curve" smooth="yes"/>
+ <point x="152" y="-173"/>
+ <point x="29" y="-295"/>
+ <point x="-77" y="-295" type="curve" smooth="yes"/>
+ <point x="-133" y="-295"/>
+ <point x="-217" y="-264"/>
+ <point x="-253" y="-229" type="curve"/>
+ <point x="-328" y="-397" type="line"/>
+ <point x="-278" y="-437"/>
+ <point x="-170" y="-465"/>
+ <point x="-114" y="-465" type="curve" smooth="yes"/>
+ <point x="103" y="-465"/>
+ <point x="303" y="-314"/>
+ <point x="396" y="66" type="curve" smooth="yes"/>
+ <point x="455" y="307"/>
+ <point x="560" y="872"/>
+ <point x="560" y="1000" type="curve"/>
+ </contour>
+ <contour>
+ <point x="397" y="1297" type="curve" smooth="yes"/>
+ <point x="397" y="1237"/>
+ <point x="440" y="1186"/>
+ <point x="503" y="1186" type="curve" smooth="yes"/>
+ <point x="588" y="1186"/>
+ <point x="660" y="1259"/>
+ <point x="660" y="1338" type="curve" smooth="yes"/>
+ <point x="660" y="1399"/>
+ <point x="614" y="1450"/>
+ <point x="549" y="1450" type="curve" smooth="yes"/>
+ <point x="464" y="1450"/>
+ <point x="397" y="1375"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mK_.glif b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mK_.glif
new file mode 100644
index 0000000..28fbc71
--- /dev/null
+++ b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mK_.glif
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmK" format="2">
+ <advance width="1059"/>
+ <unicode hex="006B"/>
+ <anchor x="840" y="0" name="H"/>
+ <anchor x="537" y="-100" name="L"/>
+ <anchor x="1225" y="1000" name="R"/>
+ <anchor x="920" y="1635" name="U"/>
+ <outline>
+ <contour>
+ <point x="295" y="0" type="line"/>
+ <point x="570" y="1105" type="line" smooth="yes"/>
+ <point x="614" y="1280"/>
+ <point x="645" y="1482"/>
+ <point x="645" y="1570" type="curve"/>
+ <point x="455" y="1570" type="line"/>
+ <point x="455" y="1456"/>
+ <point x="424" y="1259"/>
+ <point x="386" y="1107" type="curve" smooth="yes"/>
+ <point x="338" y="915"/>
+ <point x="110" y="0"/>
+ <point x="110" y="0" type="curve"/>
+ </contour>
+ <contour>
+ <point x="909" y="1000" type="line"/>
+ <point x="885" y="863"/>
+ <point x="654" y="700"/>
+ <point x="379" y="539" type="curve"/>
+ <point x="386" y="540"/>
+ <point x="393" y="540"/>
+ <point x="400" y="540" type="curve" smooth="yes"/>
+ <point x="467" y="540"/>
+ <point x="559" y="514"/>
+ <point x="559" y="514" type="curve"/>
+ <point x="902" y="702"/>
+ <point x="1134" y="884"/>
+ <point x="1134" y="1000" type="curve"/>
+ </contour>
+ <contour>
+ <point x="1010" y="0" type="line"/>
+ <point x="863" y="238"/>
+ <point x="718" y="600"/>
+ <point x="527" y="600" type="curve"/>
+ <point x="385" y="529" type="line"/>
+ <point x="540" y="529"/>
+ <point x="667" y="246"/>
+ <point x="775" y="0" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mL_.glif b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mL_.glif
new file mode 100644
index 0000000..06d68fd
--- /dev/null
+++ b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mL_.glif
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmL" format="2">
+ <advance width="575"/>
+ <unicode hex="006C"/>
+ <anchor x="230" y="0" name="H"/>
+ <anchor x="255" y="-100" name="L"/>
+ <anchor x="740" y="1000" name="R"/>
+ <anchor x="630" y="1635" name="U"/>
+ <outline>
+ <contour>
+ <point x="465" y="1570" type="line"/>
+ <point x="465" y="1456"/>
+ <point x="434" y="1259"/>
+ <point x="396" y="1107" type="curve" smooth="yes"/>
+ <point x="241" y="489" type="line" smooth="yes"/>
+ <point x="204" y="343"/>
+ <point x="186" y="220"/>
+ <point x="186" y="104" type="curve" smooth="yes"/>
+ <point x="186" y="69"/>
+ <point x="188" y="34"/>
+ <point x="191" y="0" type="curve"/>
+ <point x="391" y="0" type="line"/>
+ <point x="386" y="32"/>
+ <point x="384" y="70"/>
+ <point x="384" y="112" type="curve" smooth="yes"/>
+ <point x="384" y="230"/>
+ <point x="402" y="380"/>
+ <point x="436" y="517" type="curve" smooth="yes"/>
+ <point x="580" y="1105" type="line" smooth="yes"/>
+ <point x="623" y="1280"/>
+ <point x="655" y="1482"/>
+ <point x="655" y="1570" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mM_.glif b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mM_.glif
new file mode 100644
index 0000000..a6b80db
--- /dev/null
+++ b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mM_.glif
@@ -0,0 +1,80 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmM" format="2">
+ <advance width="1680"/>
+ <unicode hex="006D"/>
+ <anchor x="805" y="0" name="H"/>
+ <anchor x="780" y="-100" name="L"/>
+ <anchor x="1080" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="1520" y="0" type="line"/>
+ <point x="1512" y="30"/>
+ <point x="1510" y="65"/>
+ <point x="1510" y="102" type="curve" smooth="yes"/>
+ <point x="1510" y="143"/>
+ <point x="1515" y="188"/>
+ <point x="1522" y="238" type="curve" smooth="yes"/>
+ <point x="1536" y="327"/>
+ <point x="1655" y="691"/>
+ <point x="1655" y="800" type="curve" smooth="yes"/>
+ <point x="1655" y="930"/>
+ <point x="1594" y="1020"/>
+ <point x="1445" y="1020" type="curve" smooth="yes"/>
+ <point x="1292" y="1020"/>
+ <point x="1124" y="867"/>
+ <point x="1026" y="680" type="curve"/>
+ <point x="1030" y="704"/>
+ <point x="1045" y="778"/>
+ <point x="1045" y="800" type="curve" smooth="yes"/>
+ <point x="1045" y="932"/>
+ <point x="982" y="1020"/>
+ <point x="860" y="1020" type="curve" smooth="yes"/>
+ <point x="717" y="1020"/>
+ <point x="563" y="879"/>
+ <point x="446" y="680" type="curve"/>
+ <point x="466" y="753"/>
+ <point x="476" y="880"/>
+ <point x="476" y="961" type="curve" smooth="yes"/>
+ <point x="476" y="976"/>
+ <point x="476" y="989"/>
+ <point x="475" y="1000" type="curve"/>
+ <point x="295" y="1000" type="line"/>
+ <point x="296" y="983"/>
+ <point x="296" y="964"/>
+ <point x="296" y="945" type="curve" smooth="yes"/>
+ <point x="296" y="825"/>
+ <point x="283" y="680"/>
+ <point x="262" y="595" type="curve" smooth="yes"/>
+ <point x="115" y="0" type="line"/>
+ <point x="300" y="0" type="line"/>
+ <point x="389" y="359" type="line"/>
+ <point x="475" y="573"/>
+ <point x="685" y="850"/>
+ <point x="775" y="850" type="curve" smooth="yes"/>
+ <point x="833" y="850"/>
+ <point x="865" y="813"/>
+ <point x="865" y="720" type="curve" smooth="yes"/>
+ <point x="865" y="679"/>
+ <point x="846" y="583"/>
+ <point x="822" y="486" type="curve" smooth="yes"/>
+ <point x="700" y="0" type="line"/>
+ <point x="885" y="0" type="line"/>
+ <point x="974" y="359" type="line"/>
+ <point x="1032" y="531"/>
+ <point x="1242" y="850"/>
+ <point x="1357" y="850" type="curve" smooth="yes"/>
+ <point x="1425" y="850"/>
+ <point x="1457" y="813"/>
+ <point x="1457" y="720" type="curve" smooth="yes"/>
+ <point x="1457" y="632"/>
+ <point x="1349" y="319"/>
+ <point x="1335" y="203" type="curve" smooth="yes"/>
+ <point x="1330" y="158"/>
+ <point x="1327" y="115"/>
+ <point x="1327" y="77" type="curve" smooth="yes"/>
+ <point x="1327" y="48"/>
+ <point x="1331" y="21"/>
+ <point x="1335" y="0" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mN_.glif b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mN_.glif
new file mode 100644
index 0000000..1f38f20
--- /dev/null
+++ b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mN_.glif
@@ -0,0 +1,57 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmN" format="2">
+ <advance width="1195"/>
+ <unicode hex="006E"/>
+ <anchor x="540" y="0" name="H"/>
+ <anchor x="565" y="-100" name="L"/>
+ <anchor x="815" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="1060" y="0" type="line"/>
+ <point x="1052" y="30"/>
+ <point x="1050" y="65"/>
+ <point x="1050" y="102" type="curve" smooth="yes"/>
+ <point x="1050" y="143"/>
+ <point x="1055" y="188"/>
+ <point x="1062" y="238" type="curve" smooth="yes"/>
+ <point x="1075" y="327"/>
+ <point x="1175" y="636"/>
+ <point x="1175" y="745" type="curve" smooth="yes"/>
+ <point x="1175" y="917"/>
+ <point x="1100" y="1020"/>
+ <point x="935" y="1020" type="curve" smooth="yes"/>
+ <point x="755" y="1020"/>
+ <point x="581" y="870"/>
+ <point x="445" y="672" type="curve"/>
+ <point x="463" y="740"/>
+ <point x="477" y="873"/>
+ <point x="477" y="957" type="curve" smooth="yes"/>
+ <point x="477" y="973"/>
+ <point x="476" y="988"/>
+ <point x="475" y="1000" type="curve"/>
+ <point x="295" y="1000" type="line"/>
+ <point x="295" y="961" type="line" smooth="yes"/>
+ <point x="295" y="833"/>
+ <point x="283" y="679"/>
+ <point x="262" y="595" type="curve" smooth="yes"/>
+ <point x="115" y="0" type="line"/>
+ <point x="300" y="0" type="line"/>
+ <point x="392" y="370" type="line"/>
+ <point x="478" y="573"/>
+ <point x="708" y="850"/>
+ <point x="835" y="850" type="curve" smooth="yes"/>
+ <point x="927" y="850"/>
+ <point x="975" y="798"/>
+ <point x="975" y="680" type="curve" smooth="yes"/>
+ <point x="975" y="592"/>
+ <point x="888" y="319"/>
+ <point x="875" y="203" type="curve" smooth="yes"/>
+ <point x="870" y="158"/>
+ <point x="867" y="115"/>
+ <point x="867" y="77" type="curve" smooth="yes"/>
+ <point x="867" y="48"/>
+ <point x="871" y="21"/>
+ <point x="875" y="0" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mO_.glif b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mO_.glif
new file mode 100644
index 0000000..bec7b9e
--- /dev/null
+++ b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mO_.glif
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmO" format="2">
+ <advance width="1133"/>
+ <unicode hex="006F"/>
+ <anchor x="510" y="0" name="H"/>
+ <anchor x="505" y="-100" name="L"/>
+ <anchor x="800" y="0" name="O"/>
+ <anchor x="1330" y="1000" name="R"/>
+ <anchor x="785" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="142" y="344" type="curve" smooth="yes"/>
+ <point x="142" y="114"/>
+ <point x="306" y="-25"/>
+ <point x="530" y="-25" type="curve" smooth="yes"/>
+ <point x="896" y="-25"/>
+ <point x="1138" y="314"/>
+ <point x="1138" y="648" type="curve" smooth="yes"/>
+ <point x="1138" y="879"/>
+ <point x="985" y="1020"/>
+ <point x="761" y="1020" type="curve" smooth="yes"/>
+ <point x="387" y="1020"/>
+ <point x="142" y="677"/>
+ </contour>
+ <contour>
+ <point x="721" y="862" type="curve" smooth="yes"/>
+ <point x="859" y="862"/>
+ <point x="947" y="767"/>
+ <point x="947" y="611" type="curve" smooth="yes"/>
+ <point x="947" y="391"/>
+ <point x="795" y="132"/>
+ <point x="559" y="132" type="curve" smooth="yes"/>
+ <point x="421" y="132"/>
+ <point x="333" y="226"/>
+ <point x="333" y="380" type="curve" smooth="yes"/>
+ <point x="333" y="599"/>
+ <point x="486" y="862"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mP_.glif b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mP_.glif
new file mode 100644
index 0000000..f9e06b1
--- /dev/null
+++ b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mP_.glif
@@ -0,0 +1,66 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmP" format="2">
+ <advance width="1185"/>
+ <unicode hex="0070"/>
+ <anchor x="105" y="-435" name="H"/>
+ <anchor x="405" y="-500" name="L"/>
+ <anchor x="1360" y="1000" name="R"/>
+ <anchor x="805" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="215" y="-480" type="line"/>
+ <point x="215" y="-388"/>
+ <point x="229" y="-282"/>
+ <point x="255" y="-175" type="curve" smooth="yes"/>
+ <point x="320" y="85" type="line"/>
+ <point x="399" y="20"/>
+ <point x="468" y="-25"/>
+ <point x="575" y="-25" type="curve" smooth="yes"/>
+ <point x="685" y="-25"/>
+ <point x="797" y="9"/>
+ <point x="895" y="85" type="curve" smooth="yes"/>
+ <point x="1063" y="215"/>
+ <point x="1185" y="438"/>
+ <point x="1185" y="680" type="curve" smooth="yes"/>
+ <point x="1185" y="878"/>
+ <point x="1101" y="1020"/>
+ <point x="920" y="1020" type="curve" smooth="yes"/>
+ <point x="757" y="1020"/>
+ <point x="559" y="842"/>
+ <point x="452" y="680" type="curve"/>
+ <point x="468" y="760"/>
+ <point x="477" y="860"/>
+ <point x="477" y="940" type="curve" smooth="yes"/>
+ <point x="477" y="962"/>
+ <point x="477" y="982"/>
+ <point x="475" y="1000" type="curve"/>
+ <point x="295" y="1000" type="line"/>
+ <point x="295" y="971" type="line" smooth="yes"/>
+ <point x="295" y="819"/>
+ <point x="273" y="625"/>
+ <point x="235" y="475" type="curve" smooth="yes"/>
+ <point x="70" y="-175" type="line" smooth="yes"/>
+ <point x="43" y="-281"/>
+ <point x="20" y="-398"/>
+ <point x="20" y="-480" type="curve"/>
+ </contour>
+ <contour>
+ <point x="407" y="432" type="line"/>
+ <point x="544" y="656"/>
+ <point x="732" y="850"/>
+ <point x="840" y="850" type="curve" smooth="yes"/>
+ <point x="939" y="850"/>
+ <point x="990" y="763"/>
+ <point x="990" y="630" type="curve" smooth="yes"/>
+ <point x="990" y="491"/>
+ <point x="926" y="322"/>
+ <point x="815" y="220" type="curve" smooth="yes"/>
+ <point x="759" y="168"/>
+ <point x="693" y="135"/>
+ <point x="615" y="135" type="curve" smooth="yes"/>
+ <point x="523" y="135"/>
+ <point x="479" y="161"/>
+ <point x="365" y="255" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mQ_.glif b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mQ_.glif
new file mode 100644
index 0000000..58d9f87
--- /dev/null
+++ b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mQ_.glif
@@ -0,0 +1,54 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmQ" format="2">
+ <advance width="1115"/>
+ <unicode hex="0071"/>
+ <anchor x="370" y="-500" name="L"/>
+ <anchor x="1320" y="1000" name="R"/>
+ <anchor x="770" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="843" y="-480" type="line"/>
+ <point x="843" y="-391"/>
+ <point x="858" y="-294"/>
+ <point x="885" y="-185" type="curve" smooth="yes"/>
+ <point x="1165" y="945" type="line"/>
+ <point x="1066" y="980"/>
+ <point x="946" y="1020"/>
+ <point x="825" y="1020" type="curve" smooth="yes"/>
+ <point x="675" y="1020"/>
+ <point x="550" y="977"/>
+ <point x="440" y="890" type="curve" smooth="yes"/>
+ <point x="260" y="747"/>
+ <point x="135" y="505"/>
+ <point x="135" y="285" type="curve" smooth="yes"/>
+ <point x="135" y="73"/>
+ <point x="261" y="-25"/>
+ <point x="380" y="-25" type="curve" smooth="yes"/>
+ <point x="524" y="-25"/>
+ <point x="751" y="172"/>
+ <point x="825" y="300" type="curve"/>
+ <point x="693" y="-180" type="line" smooth="yes"/>
+ <point x="662" y="-294"/>
+ <point x="648" y="-414"/>
+ <point x="648" y="-480" type="curve"/>
+ </contour>
+ <contour>
+ <point x="885" y="565" type="line"/>
+ <point x="807" y="413"/>
+ <point x="550" y="140"/>
+ <point x="455" y="140" type="curve" smooth="yes"/>
+ <point x="376" y="140"/>
+ <point x="330" y="199"/>
+ <point x="330" y="330" type="curve" smooth="yes"/>
+ <point x="330" y="481"/>
+ <point x="400" y="658"/>
+ <point x="515" y="760" type="curve" smooth="yes"/>
+ <point x="580" y="817"/>
+ <point x="658" y="855"/>
+ <point x="750" y="855" type="curve" smooth="yes"/>
+ <point x="811" y="855"/>
+ <point x="893" y="840"/>
+ <point x="947" y="817" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mR_.glif b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mR_.glif
new file mode 100644
index 0000000..8037612
--- /dev/null
+++ b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mR_.glif
@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmR" format="2">
+ <advance width="910"/>
+ <unicode hex="0072"/>
+ <anchor x="210" y="0" name="H"/>
+ <anchor x="220" y="-100" name="L"/>
+ <anchor x="670" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="300" y="0" type="line"/>
+ <point x="402" y="415" type="line"/>
+ <point x="502" y="602"/>
+ <point x="703" y="850"/>
+ <point x="785" y="850" type="curve" smooth="yes"/>
+ <point x="831" y="850"/>
+ <point x="855" y="801"/>
+ <point x="855" y="740" type="curve" smooth="yes"/>
+ <point x="855" y="715"/>
+ <point x="852" y="689"/>
+ <point x="845" y="660" type="curve"/>
+ <point x="1010" y="690" type="line"/>
+ <point x="1022" y="737"/>
+ <point x="1030" y="783"/>
+ <point x="1030" y="825" type="curve" smooth="yes"/>
+ <point x="1030" y="935"/>
+ <point x="986" y="1020"/>
+ <point x="865" y="1020" type="curve" smooth="yes"/>
+ <point x="735" y="1020"/>
+ <point x="575" y="867"/>
+ <point x="445" y="675" type="curve"/>
+ <point x="467" y="773"/>
+ <point x="475" y="929"/>
+ <point x="475" y="1000" type="curve"/>
+ <point x="295" y="1000" type="line"/>
+ <point x="295" y="961" type="line" smooth="yes"/>
+ <point x="295" y="833"/>
+ <point x="283" y="679"/>
+ <point x="262" y="595" type="curve" smooth="yes"/>
+ <point x="115" y="0" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mS_.glif b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mS_.glif
new file mode 100644
index 0000000..848ddda
--- /dev/null
+++ b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mS_.glif
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmS" format="2">
+ <advance width="945"/>
+ <unicode hex="0073"/>
+ <anchor x="435" y="0" name="H"/>
+ <anchor x="440" y="-100" name="L"/>
+ <anchor x="710" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="990" y="941" type="line"/>
+ <point x="930" y="978"/>
+ <point x="815" y="1020"/>
+ <point x="640" y="1020" type="curve" smooth="yes"/>
+ <point x="384" y="1020"/>
+ <point x="230" y="881"/>
+ <point x="230" y="716" type="curve" smooth="yes"/>
+ <point x="230" y="614"/>
+ <point x="320" y="533"/>
+ <point x="466" y="461" type="curve" smooth="yes"/>
+ <point x="638" y="376"/>
+ <point x="700" y="333"/>
+ <point x="700" y="265" type="curve" smooth="yes"/>
+ <point x="700" y="188"/>
+ <point x="621" y="132"/>
+ <point x="532" y="132" type="curve" smooth="yes"/>
+ <point x="376" y="132"/>
+ <point x="244" y="216"/>
+ <point x="159" y="325" type="curve"/>
+ <point x="71" y="158" type="line"/>
+ <point x="160" y="60"/>
+ <point x="296" y="-25"/>
+ <point x="488" y="-25" type="curve" smooth="yes"/>
+ <point x="713" y="-25"/>
+ <point x="891" y="106"/>
+ <point x="891" y="306" type="curve" smooth="yes"/>
+ <point x="891" y="432"/>
+ <point x="774" y="515"/>
+ <point x="626" y="593" type="curve" smooth="yes"/>
+ <point x="476" y="672"/>
+ <point x="418" y="695"/>
+ <point x="418" y="753" type="curve" smooth="yes"/>
+ <point x="418" y="822"/>
+ <point x="494" y="862"/>
+ <point x="619" y="862" type="curve" smooth="yes"/>
+ <point x="743" y="862"/>
+ <point x="854" y="808"/>
+ <point x="911" y="769" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mT_.glif b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mT_.glif
new file mode 100644
index 0000000..0eddfe9
--- /dev/null
+++ b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mT_.glif
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmT" format="2">
+ <advance width="815"/>
+ <unicode hex="0074"/>
+ <anchor x="455" y="0" name="H"/>
+ <anchor x="390" y="-100" name="L"/>
+ <anchor x="1025" y="1000" name="R"/>
+ <anchor x="605" y="1360" name="U"/>
+ <outline>
+ <contour>
+ <point x="752" y="211" type="line"/>
+ <point x="665" y="169"/>
+ <point x="593" y="134"/>
+ <point x="527" y="134" type="curve" smooth="yes"/>
+ <point x="448" y="134"/>
+ <point x="425" y="188"/>
+ <point x="425" y="247" type="curve" smooth="yes"/>
+ <point x="425" y="274"/>
+ <point x="429" y="301"/>
+ <point x="434" y="326" type="curve" smooth="yes"/>
+ <point x="470" y="519"/>
+ <point x="564" y="843"/>
+ <point x="677" y="1294" type="curve"/>
+ <point x="492" y="1294" type="line"/>
+ <point x="377" y="841"/>
+ <point x="263" y="429"/>
+ <point x="243" y="301" type="curve" smooth="yes"/>
+ <point x="238" y="269"/>
+ <point x="236" y="240"/>
+ <point x="236" y="213" type="curve" smooth="yes"/>
+ <point x="236" y="41"/>
+ <point x="330" y="-25"/>
+ <point x="465" y="-25" type="curve" smooth="yes"/>
+ <point x="535" y="-25"/>
+ <point x="634" y="-6"/>
+ <point x="740" y="52" type="curve"/>
+ </contour>
+ <contour>
+ <point x="177" y="833" type="line"/>
+ <point x="887" y="833" type="line"/>
+ <point x="923" y="975" type="line"/>
+ <point x="213" y="975" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mU_.glif b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mU_.glif
new file mode 100644
index 0000000..0eda3d2
--- /dev/null
+++ b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mU_.glif
@@ -0,0 +1,57 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmU" format="2">
+ <advance width="1175"/>
+ <unicode hex="0075"/>
+ <anchor x="465" y="0" name="H"/>
+ <anchor x="504" y="-100" name="L"/>
+ <anchor x="640" y="0" name="O"/>
+ <anchor x="1375" y="1000" name="R"/>
+ <anchor x="804" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="1040" y="0" type="line"/>
+ <point x="1036" y="29"/>
+ <point x="1035" y="62"/>
+ <point x="1035" y="100" type="curve" smooth="yes"/>
+ <point x="1035" y="206"/>
+ <point x="1054" y="341"/>
+ <point x="1080" y="455" type="curve" smooth="yes"/>
+ <point x="1135" y="689"/>
+ <point x="1197" y="895"/>
+ <point x="1205" y="1000" type="curve"/>
+ <point x="1010" y="1000" type="line"/>
+ <point x="1003" y="882"/>
+ <point x="971" y="769"/>
+ <point x="920" y="565" type="curve"/>
+ <point x="827" y="376"/>
+ <point x="573" y="135"/>
+ <point x="475" y="135" type="curve" smooth="yes"/>
+ <point x="409" y="135"/>
+ <point x="365" y="181"/>
+ <point x="365" y="280" type="curve" smooth="yes"/>
+ <point x="365" y="347"/>
+ <point x="407" y="500"/>
+ <point x="459" y="702" type="curve" smooth="yes"/>
+ <point x="494" y="837"/>
+ <point x="515" y="925"/>
+ <point x="520" y="1000" type="curve"/>
+ <point x="325" y="1000" type="line"/>
+ <point x="313" y="882"/>
+ <point x="295" y="809"/>
+ <point x="265" y="685" type="curve" smooth="yes"/>
+ <point x="195" y="395" type="line" smooth="yes"/>
+ <point x="179" y="330"/>
+ <point x="170" y="275"/>
+ <point x="170" y="225" type="curve" smooth="yes"/>
+ <point x="170" y="60"/>
+ <point x="257" y="-25"/>
+ <point x="410" y="-25" type="curve" smooth="yes"/>
+ <point x="551" y="-25"/>
+ <point x="745" y="118"/>
+ <point x="880" y="305" type="curve"/>
+ <point x="861" y="196"/>
+ <point x="860" y="98"/>
+ <point x="860" y="0" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mV_.glif b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mV_.glif
new file mode 100644
index 0000000..33e91d6
--- /dev/null
+++ b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mV_.glif
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmV" format="2">
+ <advance width="941"/>
+ <unicode hex="0076"/>
+ <anchor x="359" y="0" name="H"/>
+ <anchor x="350" y="-100" name="L"/>
+ <anchor x="565" y="0" name="O"/>
+ <anchor x="650" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="180" y="1000" type="line"/>
+ <point x="232" y="825"/>
+ <point x="256" y="602"/>
+ <point x="256" y="354" type="curve" smooth="yes"/>
+ <point x="256" y="241"/>
+ <point x="251" y="122"/>
+ <point x="241" y="0" type="curve"/>
+ <point x="441" y="0" type="line"/>
+ <point x="744" y="336"/>
+ <point x="1056" y="765"/>
+ <point x="1056" y="1000" type="curve"/>
+ <point x="856" y="1000" type="line"/>
+ <point x="856" y="769"/>
+ <point x="606" y="394"/>
+ <point x="404" y="176" type="curve"/>
+ <point x="421" y="277"/>
+ <point x="429" y="402"/>
+ <point x="429" y="526" type="curve" smooth="yes"/>
+ <point x="429" y="707"/>
+ <point x="412" y="887"/>
+ <point x="380" y="1000" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mW_.glif b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mW_.glif
new file mode 100644
index 0000000..1daea7c
--- /dev/null
+++ b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mW_.glif
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmW" format="2">
+ <advance width="1555"/>
+ <unicode hex="0077"/>
+ <anchor x="690" y="-100" name="L"/>
+ <anchor x="990" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="858" y="1000" type="line"/>
+ <point x="743" y="739"/>
+ <point x="588" y="466"/>
+ <point x="388" y="181" type="curve"/>
+ <point x="417" y="339"/>
+ <point x="430" y="500"/>
+ <point x="430" y="644" type="curve" smooth="yes"/>
+ <point x="430" y="784"/>
+ <point x="418" y="908"/>
+ <point x="395" y="1000" type="curve"/>
+ <point x="195" y="1000" type="line"/>
+ <point x="234" y="873"/>
+ <point x="256" y="688"/>
+ <point x="256" y="472" type="curve" smooth="yes"/>
+ <point x="256" y="326"/>
+ <point x="246" y="166"/>
+ <point x="225" y="0" type="curve"/>
+ <point x="425" y="0" type="line"/>
+ <point x="632" y="298"/>
+ <point x="825" y="583"/>
+ <point x="896" y="765" type="curve"/>
+ <point x="920" y="478"/>
+ <point x="912" y="233"/>
+ <point x="915" y="0" type="curve"/>
+ <point x="1115" y="0" type="line"/>
+ <point x="1362" y="330"/>
+ <point x="1642" y="777"/>
+ <point x="1645" y="1000" type="curve"/>
+ <point x="1445" y="1000" type="line"/>
+ <point x="1445" y="990" type="line"/>
+ <point x="1445" y="797"/>
+ <point x="1242" y="417"/>
+ <point x="1063" y="181" type="curve"/>
+ <point x="1064" y="221"/>
+ <point x="1064" y="260"/>
+ <point x="1064" y="298" type="curve" smooth="yes"/>
+ <point x="1064" y="577"/>
+ <point x="1046" y="811"/>
+ <point x="1020" y="1000" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mX_.glif b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mX_.glif
new file mode 100644
index 0000000..5508ff9
--- /dev/null
+++ b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mX_.glif
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmX" format="2">
+ <advance width="1009"/>
+ <unicode hex="0078"/>
+ <anchor x="840" y="0" name="H"/>
+ <anchor x="457" y="-100" name="L"/>
+ <anchor x="657" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="945" y="0" type="line"/>
+ <point x="765" y="133"/>
+ <point x="558" y="867"/>
+ <point x="439" y="1000" type="curve"/>
+ <point x="181" y="1000" type="line"/>
+ <point x="410" y="832"/>
+ <point x="578" y="141"/>
+ <point x="698" y="0" type="curve"/>
+ </contour>
+ <contour>
+ <point x="504" y="572" type="line"/>
+ <point x="286" y="463"/>
+ <point x="57" y="230"/>
+ <point x="30" y="0" type="curve"/>
+ <point x="230" y="0" type="line"/>
+ <point x="231" y="156"/>
+ <point x="375" y="380"/>
+ <point x="563" y="467" type="curve"/>
+ </contour>
+ <contour>
+ <point x="659" y="471" type="line"/>
+ <point x="838" y="591"/>
+ <point x="1092" y="798"/>
+ <point x="1099" y="1000" type="curve"/>
+ <point x="889" y="1000" type="line"/>
+ <point x="883" y="842"/>
+ <point x="758" y="675"/>
+ <point x="601" y="581" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mY_.glif b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mY_.glif
new file mode 100644
index 0000000..b9000c5
--- /dev/null
+++ b/tests/reference/ufo/psfnormalize.ufo/glyphs/L_tnS_mY_.glif
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmY" format="2">
+ <advance width="976"/>
+ <unicode hex="0079"/>
+ <anchor x="710" y="-100" name="L"/>
+ <anchor x="1270" y="1000" name="R"/>
+ <anchor x="630" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="132" y="1000" type="line"/>
+ <point x="270" y="825"/>
+ <point x="398" y="406"/>
+ <point x="403" y="-16" type="curve"/>
+ <point x="263" y="-232"/>
+ <point x="145" y="-295"/>
+ <point x="64" y="-295" type="curve" smooth="yes"/>
+ <point x="-2" y="-295"/>
+ <point x="-69" y="-254"/>
+ <point x="-102" y="-220" type="curve"/>
+ <point x="-200" y="-377" type="line"/>
+ <point x="-141" y="-430"/>
+ <point x="-68" y="-465"/>
+ <point x="23" y="-465" type="curve" smooth="yes"/>
+ <point x="193" y="-465"/>
+ <point x="369" y="-371"/>
+ <point x="609" y="0" type="curve" smooth="yes"/>
+ <point x="877" y="414"/>
+ <point x="1056" y="808"/>
+ <point x="1056" y="964" type="curve" smooth="yes"/>
+ <point x="1056" y="978"/>
+ <point x="1055" y="990"/>
+ <point x="1052" y="1000" type="curve"/>
+ <point x="852" y="1000" type="line"/>
+ <point x="856" y="984"/>
+ <point x="858" y="967"/>
+ <point x="858" y="946" type="curve" smooth="yes"/>
+ <point x="858" y="783"/>
+ <point x="722" y="472"/>
+ <point x="548" y="189" type="curve"/>
+ <point x="548" y="484"/>
+ <point x="447" y="866"/>
+ <point x="347" y="1000" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfnormalize.ufo/glyphs/N_onB_reakingH_yphen.glif b/tests/reference/ufo/psfnormalize.ufo/glyphs/N_onB_reakingH_yphen.glif
new file mode 100644
index 0000000..e7d9c06
--- /dev/null
+++ b/tests/reference/ufo/psfnormalize.ufo/glyphs/N_onB_reakingH_yphen.glif
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="NonBreakingHyphen" format="2">
+ <advance width="840"/>
+ <unicode hex="2011"/>
+ <anchor x="645" y="1100" name="U"/>
+ <outline>
+ <component base="HyphenMinus"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfnormalize.ufo/glyphs/N_umS_gn.glif b/tests/reference/ufo/psfnormalize.ufo/glyphs/N_umS_gn.glif
new file mode 100644
index 0000000..b7506f7
--- /dev/null
+++ b/tests/reference/ufo/psfnormalize.ufo/glyphs/N_umS_gn.glif
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="NumSgn" format="2">
+ <advance width="1180"/>
+ <unicode hex="0023"/>
+ <outline>
+ <contour>
+ <point x="739" y="1333" type="line"/>
+ <point x="91" y="98" type="line"/>
+ <point x="261" y="98" type="line"/>
+ <point x="909" y="1333" type="line"/>
+ </contour>
+ <contour>
+ <point x="80" y="465" type="line"/>
+ <point x="1171" y="465" type="line"/>
+ <point x="1208" y="612" type="line"/>
+ <point x="117" y="612" type="line"/>
+ </contour>
+ <contour>
+ <point x="234" y="843" type="line"/>
+ <point x="1325" y="843" type="line"/>
+ <point x="1361" y="990" type="line"/>
+ <point x="270" y="990" type="line"/>
+ </contour>
+ <contour>
+ <point x="1164" y="1333" type="line"/>
+ <point x="516" y="98" type="line"/>
+ <point x="686" y="98" type="line"/>
+ <point x="1334" y="1333" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfnormalize.ufo/glyphs/P_ercentS_gn.glif b/tests/reference/ufo/psfnormalize.ufo/glyphs/P_ercentS_gn.glif
new file mode 100644
index 0000000..84241ea
--- /dev/null
+++ b/tests/reference/ufo/psfnormalize.ufo/glyphs/P_ercentS_gn.glif
@@ -0,0 +1,93 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="PercentSgn" format="2">
+ <advance width="1506"/>
+ <unicode hex="0025"/>
+ <outline>
+ <contour>
+ <point x="1300" y="349" type="curve" smooth="yes"/>
+ <point x="1255" y="168"/>
+ <point x="1204" y="113"/>
+ <point x="1118" y="113" type="curve" smooth="yes"/>
+ <point x="1056" y="113"/>
+ <point x="1021" y="148"/>
+ <point x="1021" y="235" type="curve" smooth="yes"/>
+ <point x="1021" y="274"/>
+ <point x="1028" y="322"/>
+ <point x="1043" y="383" type="curve" smooth="yes"/>
+ <point x="1088" y="564"/>
+ <point x="1136" y="617"/>
+ <point x="1223" y="617" type="curve" smooth="yes"/>
+ <point x="1286" y="617"/>
+ <point x="1322" y="582"/>
+ <point x="1322" y="496" type="curve" smooth="yes"/>
+ <point x="1322" y="458"/>
+ <point x="1315" y="409"/>
+ </contour>
+ <contour>
+ <point x="1468" y="361" type="curve" smooth="yes"/>
+ <point x="1483" y="419"/>
+ <point x="1489" y="470"/>
+ <point x="1489" y="515" type="curve" smooth="yes"/>
+ <point x="1489" y="677"/>
+ <point x="1400" y="755"/>
+ <point x="1263" y="755" type="curve" smooth="yes"/>
+ <point x="1089" y="755"/>
+ <point x="945" y="647"/>
+ <point x="876" y="371" type="curve" smooth="yes"/>
+ <point x="861" y="310"/>
+ <point x="854" y="256"/>
+ <point x="854" y="210" type="curve" smooth="yes"/>
+ <point x="854" y="47"/>
+ <point x="943" y="-25"/>
+ <point x="1079" y="-25" type="curve" smooth="yes"/>
+ <point x="1254" y="-25"/>
+ <point x="1396" y="72"/>
+ </contour>
+ <contour>
+ <point x="1369" y="1450" type="line"/>
+ <point x="219" y="-25" type="line"/>
+ <point x="397" y="-25" type="line"/>
+ <point x="1545" y="1450" type="line"/>
+ </contour>
+ <contour>
+ <point x="717" y="1044" type="curve" smooth="yes"/>
+ <point x="672" y="864"/>
+ <point x="621" y="809"/>
+ <point x="535" y="809" type="curve" smooth="yes"/>
+ <point x="474" y="809"/>
+ <point x="439" y="844"/>
+ <point x="439" y="930" type="curve" smooth="yes"/>
+ <point x="439" y="969"/>
+ <point x="446" y="1018"/>
+ <point x="461" y="1079" type="curve" smooth="yes"/>
+ <point x="506" y="1260"/>
+ <point x="554" y="1313"/>
+ <point x="641" y="1313" type="curve" smooth="yes"/>
+ <point x="704" y="1313"/>
+ <point x="739" y="1278"/>
+ <point x="739" y="1192" type="curve" smooth="yes"/>
+ <point x="739" y="1153"/>
+ <point x="732" y="1105"/>
+ </contour>
+ <contour>
+ <point x="886" y="1057" type="curve" smooth="yes"/>
+ <point x="900" y="1114"/>
+ <point x="907" y="1166"/>
+ <point x="907" y="1210" type="curve" smooth="yes"/>
+ <point x="907" y="1373"/>
+ <point x="817" y="1450"/>
+ <point x="680" y="1450" type="curve" smooth="yes"/>
+ <point x="506" y="1450"/>
+ <point x="362" y="1343"/>
+ <point x="293" y="1066" type="curve" smooth="yes"/>
+ <point x="278" y="1005"/>
+ <point x="271" y="952"/>
+ <point x="271" y="906" type="curve" smooth="yes"/>
+ <point x="271" y="743"/>
+ <point x="360" y="671"/>
+ <point x="497" y="671" type="curve" smooth="yes"/>
+ <point x="672" y="671"/>
+ <point x="813" y="768"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfnormalize.ufo/glyphs/P_lusS_gn.glif b/tests/reference/ufo/psfnormalize.ufo/glyphs/P_lusS_gn.glif
new file mode 100644
index 0000000..8c4577e
--- /dev/null
+++ b/tests/reference/ufo/psfnormalize.ufo/glyphs/P_lusS_gn.glif
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="PlusSgn" format="2">
+ <advance width="1180"/>
+ <unicode hex="002B"/>
+ <outline>
+ <contour>
+ <point x="748" y="1156" type="line"/>
+ <point x="529" y="279" type="line"/>
+ <point x="684" y="279" type="line"/>
+ <point x="903" y="1156" type="line"/>
+ </contour>
+ <contour>
+ <point x="256" y="647" type="line"/>
+ <point x="1146" y="647" type="line"/>
+ <point x="1182" y="794" type="line"/>
+ <point x="292" y="794" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfnormalize.ufo/glyphs/Q_stnM_rk.glif b/tests/reference/ufo/psfnormalize.ufo/glyphs/Q_stnM_rk.glif
new file mode 100644
index 0000000..8b14a6c
--- /dev/null
+++ b/tests/reference/ufo/psfnormalize.ufo/glyphs/Q_stnM_rk.glif
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="QstnMrk" format="2">
+ <advance width="1030"/>
+ <unicode hex="003F"/>
+ <outline>
+ <contour>
+ <point x="419" y="1226" type="line"/>
+ <point x="514" y="1303"/>
+ <point x="615" y="1338"/>
+ <point x="685" y="1338" type="curve" smooth="yes"/>
+ <point x="800" y="1338"/>
+ <point x="858" y="1294"/>
+ <point x="858" y="1222" type="curve" smooth="yes"/>
+ <point x="858" y="1122"/>
+ <point x="713" y="1017"/>
+ <point x="654" y="960" type="curve" smooth="yes"/>
+ <point x="538" y="850"/>
+ <point x="473" y="715"/>
+ <point x="402" y="431" type="curve"/>
+ <point x="587" y="431" type="line"/>
+ <point x="656" y="707"/>
+ <point x="697" y="778"/>
+ <point x="831" y="901" type="curve" smooth="yes"/>
+ <point x="949" y="1010"/>
+ <point x="1072" y="1146"/>
+ <point x="1072" y="1272" type="curve" smooth="yes"/>
+ <point x="1072" y="1409"/>
+ <point x="947" y="1509"/>
+ <point x="746" y="1509" type="curve" smooth="yes"/>
+ <point x="631" y="1509"/>
+ <point x="500" y="1463"/>
+ <point x="419" y="1401" type="curve"/>
+ </contour>
+ <contour>
+ <point x="278" y="90" type="curve" smooth="yes"/>
+ <point x="278" y="28"/>
+ <point x="328" y="-25"/>
+ <point x="393" y="-25" type="curve" smooth="yes"/>
+ <point x="477" y="-25"/>
+ <point x="554" y="45"/>
+ <point x="554" y="125" type="curve" smooth="yes"/>
+ <point x="554" y="186"/>
+ <point x="504" y="240"/>
+ <point x="439" y="240" type="curve" smooth="yes"/>
+ <point x="355" y="240"/>
+ <point x="278" y="170"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfnormalize.ufo/glyphs/Q_uotM_rk.glif b/tests/reference/ufo/psfnormalize.ufo/glyphs/Q_uotM_rk.glif
new file mode 100644
index 0000000..4a8357b
--- /dev/null
+++ b/tests/reference/ufo/psfnormalize.ufo/glyphs/Q_uotM_rk.glif
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="QuotMrk" format="2">
+ <advance width="1005"/>
+ <unicode hex="0022"/>
+ <outline>
+ <contour>
+ <point x="600" y="1024" type="line"/>
+ <point x="639" y="1162"/>
+ <point x="683" y="1312"/>
+ <point x="772" y="1553" type="curve"/>
+ <point x="567" y="1553" type="line"/>
+ <point x="538" y="1312"/>
+ <point x="505" y="1162"/>
+ <point x="475" y="1024" type="curve"/>
+ </contour>
+ <contour>
+ <point x="940" y="1024" type="line"/>
+ <point x="979" y="1162"/>
+ <point x="1023" y="1312"/>
+ <point x="1112" y="1553" type="curve"/>
+ <point x="907" y="1553" type="line"/>
+ <point x="878" y="1312"/>
+ <point x="845" y="1162"/>
+ <point x="815" y="1024" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfnormalize.ufo/glyphs/R_everseS_olidus.glif b/tests/reference/ufo/psfnormalize.ufo/glyphs/R_everseS_olidus.glif
new file mode 100644
index 0000000..f146267
--- /dev/null
+++ b/tests/reference/ufo/psfnormalize.ufo/glyphs/R_everseS_olidus.glif
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="ReverseSolidus" format="2">
+ <advance width="1005"/>
+ <unicode hex="005C"/>
+ <outline>
+ <contour>
+ <point x="473" y="1538" type="line"/>
+ <point x="656" y="-123" type="line"/>
+ <point x="799" y="-93" type="line"/>
+ <point x="620" y="1568" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfnormalize.ufo/glyphs/R_tC_urlyB_rac.glif b/tests/reference/ufo/psfnormalize.ufo/glyphs/R_tC_urlyB_rac.glif
new file mode 100644
index 0000000..82df531
--- /dev/null
+++ b/tests/reference/ufo/psfnormalize.ufo/glyphs/R_tC_urlyB_rac.glif
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="RtCurlyBrac" format="2">
+ <advance width="980"/>
+ <unicode hex="007D"/>
+ <outline>
+ <contour>
+ <point x="466" y="1470" type="line"/>
+ <point x="513" y="1452"/>
+ <point x="653" y="1397"/>
+ <point x="653" y="1366" type="curve" smooth="yes"/>
+ <point x="653" y="1238"/>
+ <point x="531" y="801"/>
+ <point x="531" y="737" type="curve" smooth="yes"/>
+ <point x="531" y="701"/>
+ <point x="660" y="627"/>
+ <point x="660" y="603" type="curve" smooth="yes"/>
+ <point x="660" y="585"/>
+ <point x="496" y="511"/>
+ <point x="468" y="475" type="curve" smooth="yes"/>
+ <point x="439" y="438"/>
+ <point x="312" y="-121"/>
+ <point x="268" y="-167" type="curve" smooth="yes"/>
+ <point x="241" y="-194"/>
+ <point x="106" y="-242"/>
+ <point x="33" y="-265" type="curve"/>
+ <point x="39" y="-402" type="line"/>
+ <point x="150" y="-375"/>
+ <point x="324" y="-323"/>
+ <point x="375" y="-279" type="curve" smooth="yes"/>
+ <point x="465" y="-201"/>
+ <point x="608" y="410"/>
+ <point x="639" y="441" type="curve" smooth="yes"/>
+ <point x="675" y="476"/>
+ <point x="880" y="571"/>
+ <point x="880" y="607" type="curve" smooth="yes"/>
+ <point x="880" y="639"/>
+ <point x="719" y="740"/>
+ <point x="719" y="771" type="curve" smooth="yes"/>
+ <point x="719" y="839"/>
+ <point x="825" y="1259"/>
+ <point x="825" y="1425" type="curve" smooth="yes"/>
+ <point x="825" y="1453"/>
+ <point x="822" y="1474"/>
+ <point x="815" y="1485" type="curve" smooth="yes"/>
+ <point x="786" y="1529"/>
+ <point x="638" y="1581"/>
+ <point x="540" y="1607" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfnormalize.ufo/glyphs/R_tP_aren.glif b/tests/reference/ufo/psfnormalize.ufo/glyphs/R_tP_aren.glif
new file mode 100644
index 0000000..3950e09
--- /dev/null
+++ b/tests/reference/ufo/psfnormalize.ufo/glyphs/R_tP_aren.glif
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="RtParen" format="2">
+ <advance width="775"/>
+ <unicode hex="0029"/>
+ <outline>
+ <contour>
+ <point x="467" y="1455" type="line"/>
+ <point x="578" y="1327"/>
+ <point x="628" y="1146"/>
+ <point x="628" y="946" type="curve" smooth="yes"/>
+ <point x="628" y="832"/>
+ <point x="612" y="713"/>
+ <point x="582" y="593" type="curve" smooth="yes"/>
+ <point x="497" y="252"/>
+ <point x="328" y="-8"/>
+ <point x="40" y="-260" type="curve"/>
+ <point x="99" y="-402" type="line"/>
+ <point x="444" y="-123"/>
+ <point x="673" y="194"/>
+ <point x="772" y="593" type="curve" smooth="yes"/>
+ <point x="804" y="719"/>
+ <point x="819" y="843"/>
+ <point x="819" y="959" type="curve" smooth="yes"/>
+ <point x="819" y="1236"/>
+ <point x="733" y="1472"/>
+ <point x="580" y="1607" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfnormalize.ufo/glyphs/R_tS_qrB_rac.glif b/tests/reference/ufo/psfnormalize.ufo/glyphs/R_tS_qrB_rac.glif
new file mode 100644
index 0000000..4c13a82
--- /dev/null
+++ b/tests/reference/ufo/psfnormalize.ufo/glyphs/R_tS_qrB_rac.glif
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="RtSqrBrac" format="2">
+ <advance width="770"/>
+ <unicode hex="005D"/>
+ <outline>
+ <contour>
+ <point x="434" y="-402" type="line"/>
+ <point x="920" y="1568" type="line"/>
+ <point x="480" y="1568" type="line"/>
+ <point x="444" y="1421" type="line"/>
+ <point x="699" y="1421" type="line"/>
+ <point x="286" y="-255" type="line"/>
+ <point x="31" y="-255" type="line"/>
+ <point x="-6" y="-402" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfnormalize.ufo/glyphs/S_emicolon.glif b/tests/reference/ufo/psfnormalize.ufo/glyphs/S_emicolon.glif
new file mode 100644
index 0000000..be971ac
--- /dev/null
+++ b/tests/reference/ufo/psfnormalize.ufo/glyphs/S_emicolon.glif
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Semicolon" format="2">
+ <advance width="630"/>
+ <unicode hex="003B"/>
+ <outline>
+ <contour>
+ <point x="314" y="758" type="curve" smooth="yes"/>
+ <point x="314" y="696"/>
+ <point x="365" y="642"/>
+ <point x="430" y="642" type="curve" smooth="yes"/>
+ <point x="514" y="642"/>
+ <point x="590" y="712"/>
+ <point x="590" y="792" type="curve" smooth="yes"/>
+ <point x="590" y="854"/>
+ <point x="540" y="907"/>
+ <point x="476" y="907" type="curve" smooth="yes"/>
+ <point x="393" y="907"/>
+ <point x="314" y="837"/>
+ </contour>
+ <contour>
+ <point x="137" y="49" type="line"/>
+ <point x="277" y="49" type="line"/>
+ <point x="252" y="-50"/>
+ <point x="145" y="-169"/>
+ <point x="73" y="-225" type="curve"/>
+ <point x="163" y="-265" type="line"/>
+ <point x="280" y="-175"/>
+ <point x="431" y="-28"/>
+ <point x="431" y="118" type="curve" smooth="yes"/>
+ <point x="431" y="193"/>
+ <point x="378" y="245"/>
+ <point x="311" y="245" type="curve" smooth="yes"/>
+ <point x="254" y="245"/>
+ <point x="190" y="209"/>
+ <point x="161" y="147" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfnormalize.ufo/glyphs/S_olidus.glif b/tests/reference/ufo/psfnormalize.ufo/glyphs/S_olidus.glif
new file mode 100644
index 0000000..589697b
--- /dev/null
+++ b/tests/reference/ufo/psfnormalize.ufo/glyphs/S_olidus.glif
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Solidus" format="2">
+ <advance width="980"/>
+ <unicode hex="002F"/>
+ <outline>
+ <contour>
+ <point x="1160" y="1568" type="line"/>
+ <point x="-119" y="-240" type="line"/>
+ <point x="50" y="-240" type="line"/>
+ <point x="1330" y="1568" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfnormalize.ufo/glyphs/S_pace.glif b/tests/reference/ufo/psfnormalize.ufo/glyphs/S_pace.glif
new file mode 100644
index 0000000..c49f0f2
--- /dev/null
+++ b/tests/reference/ufo/psfnormalize.ufo/glyphs/S_pace.glif
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Space" format="2">
+ <advance width="530"/>
+ <unicode hex="0020"/>
+ <outline/>
+</glyph>
diff --git a/tests/reference/ufo/psfnormalize.ufo/glyphs/T_ilde.glif b/tests/reference/ufo/psfnormalize.ufo/glyphs/T_ilde.glif
new file mode 100644
index 0000000..bf260b8
--- /dev/null
+++ b/tests/reference/ufo/psfnormalize.ufo/glyphs/T_ilde.glif
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Tilde" format="2">
+ <advance width="1095"/>
+ <unicode hex="007E"/>
+ <outline>
+ <contour>
+ <point x="156" y="368" type="line"/>
+ <point x="173" y="416"/>
+ <point x="215" y="456"/>
+ <point x="293" y="456" type="curve" smooth="yes"/>
+ <point x="468" y="456"/>
+ <point x="643" y="353"/>
+ <point x="873" y="353" type="curve" smooth="yes"/>
+ <point x="1032" y="353"/>
+ <point x="1137" y="472"/>
+ <point x="1169" y="598" type="curve"/>
+ <point x="1064" y="598" type="line"/>
+ <point x="1045" y="553"/>
+ <point x="1002" y="500"/>
+ <point x="919" y="500" type="curve" smooth="yes"/>
+ <point x="683" y="500"/>
+ <point x="551" y="603"/>
+ <point x="330" y="603" type="curve" smooth="yes"/>
+ <point x="184" y="603"/>
+ <point x="81" y="487"/>
+ <point x="51" y="368" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfnormalize.ufo/glyphs/V_ertL_ine.glif b/tests/reference/ufo/psfnormalize.ufo/glyphs/V_ertL_ine.glif
new file mode 100644
index 0000000..445d622
--- /dev/null
+++ b/tests/reference/ufo/psfnormalize.ufo/glyphs/V_ertL_ine.glif
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="VertLine" format="2">
+ <advance width="670"/>
+ <unicode hex="007C"/>
+ <outline>
+ <contour>
+ <point x="602" y="1578" type="line"/>
+ <point x="112" y="-392" type="line"/>
+ <point x="262" y="-392" type="line"/>
+ <point x="752" y="1578" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfnormalize.ufo/glyphs/_notdef.glif b/tests/reference/ufo/psfnormalize.ufo/glyphs/_notdef.glif
new file mode 100644
index 0000000..a3e9354
--- /dev/null
+++ b/tests/reference/ufo/psfnormalize.ufo/glyphs/_notdef.glif
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name=".notdef" format="2">
+ <advance width="1400"/>
+ <outline>
+ <contour>
+ <point x="100" y="0" type="line"/>
+ <point x="1300" y="0" type="line"/>
+ <point x="1300" y="1800" type="line"/>
+ <point x="100" y="1800" type="line"/>
+ </contour>
+ <contour>
+ <point x="150" y="1750" type="line"/>
+ <point x="1250" y="1750" type="line"/>
+ <point x="1250" y="50" type="line"/>
+ <point x="150" y="50" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfnormalize.ufo/glyphs/_null.glif b/tests/reference/ufo/psfnormalize.ufo/glyphs/_null.glif
new file mode 100644
index 0000000..0b9caa6
--- /dev/null
+++ b/tests/reference/ufo/psfnormalize.ufo/glyphs/_null.glif
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name=".null" format="2">
+ <outline/>
+</glyph>
diff --git a/tests/reference/ufo/psfnormalize.ufo/glyphs/contents.plist b/tests/reference/ufo/psfnormalize.ufo/glyphs/contents.plist
new file mode 100644
index 0000000..ad2aa41
--- /dev/null
+++ b/tests/reference/ufo/psfnormalize.ufo/glyphs/contents.plist
@@ -0,0 +1,232 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>.notdef</key>
+ <string>_notdef.glif</string>
+ <key>.null</key>
+ <string>_null.glif</string>
+ <key>Ampersand</key>
+ <string>A_mpersand.glif</string>
+ <key>Apos</key>
+ <string>A_pos.glif</string>
+ <key>Asterisk</key>
+ <string>A_sterisk.glif</string>
+ <key>AtSgn</key>
+ <string>A_tS_gn.glif</string>
+ <key>CircumAccent</key>
+ <string>C_ircumA_ccent.glif</string>
+ <key>Colon</key>
+ <string>C_olon.glif</string>
+ <key>CombAcute</key>
+ <string>C_ombA_cute.glif</string>
+ <key>CombCircum</key>
+ <string>C_ombC_ircum.glif</string>
+ <key>CombDiaer</key>
+ <string>C_ombD_iaer.glif</string>
+ <key>CombGrave</key>
+ <string>C_ombG_rave.glif</string>
+ <key>CombRingAbv</key>
+ <string>C_ombR_ingA_bv.glif</string>
+ <key>CombTilde</key>
+ <string>C_ombT_ilde.glif</string>
+ <key>Comma</key>
+ <string>C_omma.glif</string>
+ <key>DigitEight</key>
+ <string>D_igitE_ight.glif</string>
+ <key>DigitFive</key>
+ <string>D_igitF_ive.glif</string>
+ <key>DigitFour</key>
+ <string>D_igitF_our.glif</string>
+ <key>DigitNine</key>
+ <string>D_igitN_ine.glif</string>
+ <key>DigitOne</key>
+ <string>D_igitO_ne.glif</string>
+ <key>DigitSeven</key>
+ <string>D_igitS_even.glif</string>
+ <key>DigitSix</key>
+ <string>D_igitS_ix.glif</string>
+ <key>DigitThree</key>
+ <string>D_igitT_hree.glif</string>
+ <key>DigitTwo</key>
+ <string>D_igitT_wo.glif</string>
+ <key>DigitZero</key>
+ <string>D_igitZ_ero.glif</string>
+ <key>DollarSgn</key>
+ <string>D_ollarS_gn.glif</string>
+ <key>DottedCirc</key>
+ <string>D_ottedC_irc.glif</string>
+ <key>EqSgn</key>
+ <string>E_qS_gn.glif</string>
+ <key>ExclamationMrk</key>
+ <string>E_xclamationM_rk.glif</string>
+ <key>FullStop</key>
+ <string>F_ullS_top.glif</string>
+ <key>GTSgn</key>
+ <string>G_T_S_gn.glif</string>
+ <key>GraveAccent</key>
+ <string>G_raveA_ccent.glif</string>
+ <key>Hyphen</key>
+ <string>H_yphen.glif</string>
+ <key>HyphenMinus</key>
+ <string>H_yphenM_inus.glif</string>
+ <key>Hyphen_Soft</key>
+ <string>H_yphen_S_oft.glif</string>
+ <key>LTSgn</key>
+ <string>L_T_S_gn.glif</string>
+ <key>LftCurlyBrac</key>
+ <string>L_ftC_urlyB_rac.glif</string>
+ <key>LftParen</key>
+ <string>L_ftP_aren.glif</string>
+ <key>LftSqrBrac</key>
+ <string>L_ftS_qrB_rac.glif</string>
+ <key>LowLine</key>
+ <string>L_owL_ine.glif</string>
+ <key>LtnCapA</key>
+ <string>L_tnC_apA_.glif</string>
+ <key>LtnCapADiaer</key>
+ <string>L_tnC_apA_D_iaer.glif</string>
+ <key>LtnCapB</key>
+ <string>L_tnC_apB_.glif</string>
+ <key>LtnCapC</key>
+ <string>L_tnC_apC_.glif</string>
+ <key>LtnCapD</key>
+ <string>L_tnC_apD_.glif</string>
+ <key>LtnCapE</key>
+ <string>L_tnC_apE_.glif</string>
+ <key>LtnCapF</key>
+ <string>L_tnC_apF_.glif</string>
+ <key>LtnCapG</key>
+ <string>L_tnC_apG_.glif</string>
+ <key>LtnCapH</key>
+ <string>L_tnC_apH_.glif</string>
+ <key>LtnCapI</key>
+ <string>L_tnC_apI_.glif</string>
+ <key>LtnCapJ</key>
+ <string>L_tnC_apJ_.glif</string>
+ <key>LtnCapK</key>
+ <string>L_tnC_apK_.glif</string>
+ <key>LtnCapL</key>
+ <string>L_tnC_apL_.glif</string>
+ <key>LtnCapM</key>
+ <string>L_tnC_apM_.glif</string>
+ <key>LtnCapN</key>
+ <string>L_tnC_apN_.glif</string>
+ <key>LtnCapO</key>
+ <string>L_tnC_apO_.glif</string>
+ <key>LtnCapP</key>
+ <string>L_tnC_apP_.glif</string>
+ <key>LtnCapQ</key>
+ <string>L_tnC_apQ_.glif</string>
+ <key>LtnCapR</key>
+ <string>L_tnC_apR_.glif</string>
+ <key>LtnCapS</key>
+ <string>L_tnC_apS_.glif</string>
+ <key>LtnCapT</key>
+ <string>L_tnC_apT_.glif</string>
+ <key>LtnCapU</key>
+ <string>L_tnC_apU_.glif</string>
+ <key>LtnCapV</key>
+ <string>L_tnC_apV_.glif</string>
+ <key>LtnCapW</key>
+ <string>L_tnC_apW_.glif</string>
+ <key>LtnCapX</key>
+ <string>L_tnC_apX_.glif</string>
+ <key>LtnCapY</key>
+ <string>L_tnC_apY_.glif</string>
+ <key>LtnSmA</key>
+ <string>L_tnS_mA_.glif</string>
+ <key>LtnSmAAcute</key>
+ <string>L_tnS_mA_A_cute.glif</string>
+ <key>LtnSmACircum</key>
+ <string>L_tnS_mA_C_ircum.glif</string>
+ <key>LtnSmADiaer</key>
+ <string>L_tnS_mA_D_iaer.glif</string>
+ <key>LtnSmAGrave</key>
+ <string>L_tnS_mA_G_rave.glif</string>
+ <key>LtnSmARingAbv</key>
+ <string>L_tnS_mA_R_ingA_bv.glif</string>
+ <key>LtnSmATilde</key>
+ <string>L_tnS_mA_T_ilde.glif</string>
+ <key>LtnSmB</key>
+ <string>L_tnS_mB_.glif</string>
+ <key>LtnSmC</key>
+ <string>L_tnS_mC_.glif</string>
+ <key>LtnSmD</key>
+ <string>L_tnS_mD_.glif</string>
+ <key>LtnSmE</key>
+ <string>L_tnS_mE_.glif</string>
+ <key>LtnSmF</key>
+ <string>L_tnS_mF_.glif</string>
+ <key>LtnSmG</key>
+ <string>L_tnS_mG_.glif</string>
+ <key>LtnSmH</key>
+ <string>L_tnS_mH_.glif</string>
+ <key>LtnSmI</key>
+ <string>L_tnS_mI_.glif</string>
+ <key>LtnSmJ</key>
+ <string>L_tnS_mJ_.glif</string>
+ <key>LtnSmK</key>
+ <string>L_tnS_mK_.glif</string>
+ <key>LtnSmL</key>
+ <string>L_tnS_mL_.glif</string>
+ <key>LtnSmM</key>
+ <string>L_tnS_mM_.glif</string>
+ <key>LtnSmN</key>
+ <string>L_tnS_mN_.glif</string>
+ <key>LtnSmO</key>
+ <string>L_tnS_mO_.glif</string>
+ <key>LtnSmP</key>
+ <string>L_tnS_mP_.glif</string>
+ <key>LtnSmQ</key>
+ <string>L_tnS_mQ_.glif</string>
+ <key>LtnSmR</key>
+ <string>L_tnS_mR_.glif</string>
+ <key>LtnSmS</key>
+ <string>L_tnS_mS_.glif</string>
+ <key>LtnSmT</key>
+ <string>L_tnS_mT_.glif</string>
+ <key>LtnSmU</key>
+ <string>L_tnS_mU_.glif</string>
+ <key>LtnSmV</key>
+ <string>L_tnS_mV_.glif</string>
+ <key>LtnSmW</key>
+ <string>L_tnS_mW_.glif</string>
+ <key>LtnSmX</key>
+ <string>L_tnS_mX_.glif</string>
+ <key>LtnSmY</key>
+ <string>L_tnS_mY_.glif</string>
+ <key>NonBreakingHyphen</key>
+ <string>N_onB_reakingH_yphen.glif</string>
+ <key>NumSgn</key>
+ <string>N_umS_gn.glif</string>
+ <key>PercentSgn</key>
+ <string>P_ercentS_gn.glif</string>
+ <key>PlusSgn</key>
+ <string>P_lusS_gn.glif</string>
+ <key>QstnMrk</key>
+ <string>Q_stnM_rk.glif</string>
+ <key>QuotMrk</key>
+ <string>Q_uotM_rk.glif</string>
+ <key>ReverseSolidus</key>
+ <string>R_everseS_olidus.glif</string>
+ <key>RtCurlyBrac</key>
+ <string>R_tC_urlyB_rac.glif</string>
+ <key>RtParen</key>
+ <string>R_tP_aren.glif</string>
+ <key>RtSqrBrac</key>
+ <string>R_tS_qrB_rac.glif</string>
+ <key>Semicolon</key>
+ <string>S_emicolon.glif</string>
+ <key>Solidus</key>
+ <string>S_olidus.glif</string>
+ <key>Space</key>
+ <string>S_pace.glif</string>
+ <key>Tilde</key>
+ <string>T_ilde.glif</string>
+ <key>VertLine</key>
+ <string>V_ertL_ine.glif</string>
+ <key>nonmarkingreturn</key>
+ <string>nonmarkingreturn.glif</string>
+</dict>
+</plist>
diff --git a/tests/reference/ufo/psfnormalize.ufo/glyphs/nonmarkingreturn.glif b/tests/reference/ufo/psfnormalize.ufo/glyphs/nonmarkingreturn.glif
new file mode 100644
index 0000000..9a63f06
--- /dev/null
+++ b/tests/reference/ufo/psfnormalize.ufo/glyphs/nonmarkingreturn.glif
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="nonmarkingreturn" format="2">
+ <advance width="1004"/>
+ <outline/>
+</glyph>
diff --git a/tests/reference/ufo/psfnormalize.ufo/layercontents.plist b/tests/reference/ufo/psfnormalize.ufo/layercontents.plist
new file mode 100644
index 0000000..42b7482
--- /dev/null
+++ b/tests/reference/ufo/psfnormalize.ufo/layercontents.plist
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<array>
+ <array>
+ <string>public.default</string>
+ <string>glyphs</string>
+ </array>
+</array>
+</plist>
diff --git a/tests/reference/ufo/psfnormalize.ufo/lib.plist b/tests/reference/ufo/psfnormalize.ufo/lib.plist
new file mode 100644
index 0000000..fa77038
--- /dev/null
+++ b/tests/reference/ufo/psfnormalize.ufo/lib.plist
@@ -0,0 +1,534 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>com.schriftgestaltung.Glyphs.fontUserData</key>
+ <dict/>
+ <key>com.schriftgestaltung.appVersion</key>
+ <string>1161</string>
+ <key>com.schriftgestaltung.customName</key>
+ <string>Italic</string>
+ <key>com.schriftgestaltung.customParameter.GSFont.DisplayStrings</key>
+ <string/>
+ <key>com.schriftgestaltung.customParameter.GSFont.disablesAutomaticAlignment</key>
+ <true/>
+ <key>com.schriftgestaltung.customParameter.GSFont.disablesLastChange</key>
+ <true/>
+ <key>com.schriftgestaltung.customParameter.GSFont.useNiceNames</key>
+ <integer>0</integer>
+ <key>com.schriftgestaltung.customParameter.GSFontMaster.customValue</key>
+ <integer>0</integer>
+ <key>com.schriftgestaltung.customParameter.GSFontMaster.customValue1</key>
+ <integer>0</integer>
+ <key>com.schriftgestaltung.customParameter.GSFontMaster.customValue2</key>
+ <integer>0</integer>
+ <key>com.schriftgestaltung.customParameter.GSFontMaster.customValue3</key>
+ <integer>0</integer>
+ <key>com.schriftgestaltung.customParameter.GSFontMaster.iconName</key>
+ <string/>
+ <key>com.schriftgestaltung.customParameter.GSFontMaster.weightValue</key>
+ <integer>400</integer>
+ <key>com.schriftgestaltung.customParameter.GSFontMaster.widthValue</key>
+ <integer>100</integer>
+ <key>com.schriftgestaltung.fontMasterOrder</key>
+ <integer>0</integer>
+ <key>com.schriftgestaltung.glyphOrder</key>
+ <array>
+ <string>.notdef</string>
+ <string>.null</string>
+ <string>nonmarkingreturn</string>
+ <string>Space</string>
+ <string>ExclamationMrk</string>
+ <string>QuotMrk</string>
+ <string>NumSgn</string>
+ <string>DollarSgn</string>
+ <string>PercentSgn</string>
+ <string>Ampersand</string>
+ <string>Apos</string>
+ <string>LftParen</string>
+ <string>RtParen</string>
+ <string>Asterisk</string>
+ <string>PlusSgn</string>
+ <string>Comma</string>
+ <string>HyphenMinus</string>
+ <string>FullStop</string>
+ <string>Solidus</string>
+ <string>DigitZero</string>
+ <string>DigitOne</string>
+ <string>DigitTwo</string>
+ <string>DigitThree</string>
+ <string>DigitFour</string>
+ <string>DigitFive</string>
+ <string>DigitSix</string>
+ <string>DigitSeven</string>
+ <string>DigitEight</string>
+ <string>DigitNine</string>
+ <string>Colon</string>
+ <string>Semicolon</string>
+ <string>LTSgn</string>
+ <string>EqSgn</string>
+ <string>GTSgn</string>
+ <string>QstnMrk</string>
+ <string>AtSgn</string>
+ <string>LtnCapA</string>
+ <string>LtnCapA.alt</string>
+ <string>LtnCapB</string>
+ <string>LtnCapC</string>
+ <string>LtnCapD</string>
+ <string>LtnCapE</string>
+ <string>LtnCapF</string>
+ <string>LtnCapG</string>
+ <string>LtnCapH</string>
+ <string>LtnCapI</string>
+ <string>LtnCapJ</string>
+ <string>LtnCapK</string>
+ <string>LtnCapL</string>
+ <string>LtnCapM</string>
+ <string>LtnCapN</string>
+ <string>LtnCapO</string>
+ <string>LtnCapP</string>
+ <string>LtnCapQ</string>
+ <string>LtnCapR</string>
+ <string>LtnCapS</string>
+ <string>LtnCapT</string>
+ <string>LtnCapU</string>
+ <string>LtnCapV</string>
+ <string>LtnCapW</string>
+ <string>LtnCapX</string>
+ <string>LtnCapY</string>
+ <string>LftSqrBrac</string>
+ <string>ReverseSolidus</string>
+ <string>RtSqrBrac</string>
+ <string>CircumAccent</string>
+ <string>LowLine</string>
+ <string>GraveAccent</string>
+ <string>LtnSmA</string>
+ <string>LtnSmB</string>
+ <string>LtnSmC</string>
+ <string>LtnSmD</string>
+ <string>LtnSmE</string>
+ <string>LtnSmF</string>
+ <string>LtnSmG</string>
+ <string>LtnSmH</string>
+ <string>LtnSmI</string>
+ <string>LtnSmJ</string>
+ <string>LtnSmK</string>
+ <string>LtnSmL</string>
+ <string>LtnSmM</string>
+ <string>LtnSmN</string>
+ <string>LtnSmO</string>
+ <string>LtnSmP</string>
+ <string>LtnSmQ</string>
+ <string>LtnSmR</string>
+ <string>LtnSmS</string>
+ <string>LtnSmT</string>
+ <string>LtnSmU</string>
+ <string>LtnSmV</string>
+ <string>LtnSmW</string>
+ <string>LtnSmX</string>
+ <string>LtnSmY</string>
+ <string>LftCurlyBrac</string>
+ <string>VertLine</string>
+ <string>RtCurlyBrac</string>
+ <string>Tilde</string>
+ <string>LtnCapADiaer</string>
+ <string>LtnSmAAcute</string>
+ <string>LtnSmAGrave</string>
+ <string>LtnSmACircum</string>
+ <string>LtnSmADiaer</string>
+ <string>LtnSmATilde</string>
+ <string>LtnSmARingAbv</string>
+ <string>DottedCirc</string>
+ <string>Hyphen</string>
+ <string>NonBreakingHyphen</string>
+ <string>Hyphen_Soft</string>
+ <string>CombAcute</string>
+ <string>CombGrave</string>
+ <string>CombCircum</string>
+ <string>CombTilde</string>
+ <string>CombDiaer</string>
+ <string>CombRingAbv</string>
+ </array>
+ <key>com.schriftgestaltung.keyboardIncrement</key>
+ <integer>1</integer>
+ <key>com.schriftgestaltung.weight</key>
+ <string>Regular</string>
+ <key>com.schriftgestaltung.weightValue</key>
+ <integer>400</integer>
+ <key>com.schriftgestaltung.width</key>
+ <string>Regular</string>
+ <key>com.schriftgestaltung.widthValue</key>
+ <integer>100</integer>
+ <key>org.sil.lcg.toneLetters</key>
+ <dict>
+ <key>contourWidth</key>
+ <integer>480</integer>
+ <key>dotSize</key>
+ <integer>180</integer>
+ <key>dotSpacing</key>
+ <integer>200</integer>
+ <key>glyphDepth</key>
+ <integer>-25</integer>
+ <key>glyphHeight</key>
+ <integer>1600</integer>
+ <key>italicAngle</key>
+ <integer>14</integer>
+ <key>marginDotLeft</key>
+ <integer>120</integer>
+ <key>marginDotRight</key>
+ <integer>160</integer>
+ <key>marginFlatLeft</key>
+ <integer>120</integer>
+ <key>marginFlatRight</key>
+ <integer>160</integer>
+ <key>marginPointLeft</key>
+ <integer>100</integer>
+ <key>marginPointRight</key>
+ <integer>140</integer>
+ <key>strokeThickness</key>
+ <integer>120</integer>
+ </dict>
+ <key>public.glyphOrder</key>
+ <array>
+ <string>.notdef</string>
+ <string>.null</string>
+ <string>nonmarkingreturn</string>
+ <string>Space</string>
+ <string>ExclamationMrk</string>
+ <string>QuotMrk</string>
+ <string>NumSgn</string>
+ <string>DollarSgn</string>
+ <string>PercentSgn</string>
+ <string>Ampersand</string>
+ <string>Apos</string>
+ <string>LftParen</string>
+ <string>RtParen</string>
+ <string>Asterisk</string>
+ <string>PlusSgn</string>
+ <string>Comma</string>
+ <string>HyphenMinus</string>
+ <string>FullStop</string>
+ <string>Solidus</string>
+ <string>DigitZero</string>
+ <string>DigitOne</string>
+ <string>DigitTwo</string>
+ <string>DigitThree</string>
+ <string>DigitFour</string>
+ <string>DigitFive</string>
+ <string>DigitSix</string>
+ <string>DigitSeven</string>
+ <string>DigitEight</string>
+ <string>DigitNine</string>
+ <string>Colon</string>
+ <string>Semicolon</string>
+ <string>LTSgn</string>
+ <string>EqSgn</string>
+ <string>GTSgn</string>
+ <string>QstnMrk</string>
+ <string>AtSgn</string>
+ <string>LtnCapA</string>
+ <string>LtnCapA.alt</string>
+ <string>LtnCapB</string>
+ <string>LtnCapC</string>
+ <string>LtnCapD</string>
+ <string>LtnCapE</string>
+ <string>LtnCapF</string>
+ <string>LtnCapG</string>
+ <string>LtnCapH</string>
+ <string>LtnCapI</string>
+ <string>LtnCapJ</string>
+ <string>LtnCapK</string>
+ <string>LtnCapL</string>
+ <string>LtnCapM</string>
+ <string>LtnCapN</string>
+ <string>LtnCapO</string>
+ <string>LtnCapP</string>
+ <string>LtnCapQ</string>
+ <string>LtnCapR</string>
+ <string>LtnCapS</string>
+ <string>LtnCapT</string>
+ <string>LtnCapU</string>
+ <string>LtnCapV</string>
+ <string>LtnCapW</string>
+ <string>LtnCapX</string>
+ <string>LtnCapY</string>
+ <string>LftSqrBrac</string>
+ <string>ReverseSolidus</string>
+ <string>RtSqrBrac</string>
+ <string>CircumAccent</string>
+ <string>LowLine</string>
+ <string>GraveAccent</string>
+ <string>LtnSmA</string>
+ <string>LtnSmB</string>
+ <string>LtnSmC</string>
+ <string>LtnSmD</string>
+ <string>LtnSmE</string>
+ <string>LtnSmF</string>
+ <string>LtnSmG</string>
+ <string>LtnSmH</string>
+ <string>LtnSmI</string>
+ <string>LtnSmJ</string>
+ <string>LtnSmK</string>
+ <string>LtnSmL</string>
+ <string>LtnSmM</string>
+ <string>LtnSmN</string>
+ <string>LtnSmO</string>
+ <string>LtnSmP</string>
+ <string>LtnSmQ</string>
+ <string>LtnSmR</string>
+ <string>LtnSmS</string>
+ <string>LtnSmT</string>
+ <string>LtnSmU</string>
+ <string>LtnSmV</string>
+ <string>LtnSmW</string>
+ <string>LtnSmX</string>
+ <string>LtnSmY</string>
+ <string>LftCurlyBrac</string>
+ <string>VertLine</string>
+ <string>RtCurlyBrac</string>
+ <string>Tilde</string>
+ <string>LtnCapADiaer</string>
+ <string>LtnSmAAcute</string>
+ <string>LtnSmAGrave</string>
+ <string>LtnSmACircum</string>
+ <string>LtnSmADiaer</string>
+ <string>LtnSmATilde</string>
+ <string>LtnSmARingAbv</string>
+ <string>DottedCirc</string>
+ <string>Hyphen</string>
+ <string>NonBreakingHyphen</string>
+ <string>Hyphen_Soft</string>
+ <string>CombAcute</string>
+ <string>CombGrave</string>
+ <string>CombCircum</string>
+ <string>CombTilde</string>
+ <string>CombDiaer</string>
+ <string>CombRingAbv</string>
+ </array>
+ <key>public.postscriptNames</key>
+ <dict>
+ <key>Ampersand</key>
+ <string>ampersand</string>
+ <key>Apos</key>
+ <string>quotesingle</string>
+ <key>Asterisk</key>
+ <string>asterisk</string>
+ <key>AtSgn</key>
+ <string>at</string>
+ <key>CircumAccent</key>
+ <string>asciicircum</string>
+ <key>Colon</key>
+ <string>colon</string>
+ <key>CombAcute</key>
+ <string>acutecomb</string>
+ <key>CombCircum</key>
+ <string>uni0302</string>
+ <key>CombDiaer</key>
+ <string>uni0308</string>
+ <key>CombGrave</key>
+ <string>gravecomb</string>
+ <key>CombRingAbv</key>
+ <string>uni030A</string>
+ <key>CombTilde</key>
+ <string>tildecomb</string>
+ <key>Comma</key>
+ <string>comma</string>
+ <key>DigitEight</key>
+ <string>eight</string>
+ <key>DigitFive</key>
+ <string>five</string>
+ <key>DigitFour</key>
+ <string>four</string>
+ <key>DigitNine</key>
+ <string>nine</string>
+ <key>DigitOne</key>
+ <string>one</string>
+ <key>DigitSeven</key>
+ <string>seven</string>
+ <key>DigitSix</key>
+ <string>six</string>
+ <key>DigitThree</key>
+ <string>three</string>
+ <key>DigitTwo</key>
+ <string>two</string>
+ <key>DigitZero</key>
+ <string>zero</string>
+ <key>DollarSgn</key>
+ <string>dollar</string>
+ <key>DottedCirc</key>
+ <string>uni25CC</string>
+ <key>EqSgn</key>
+ <string>equal</string>
+ <key>ExclamationMrk</key>
+ <string>exclam</string>
+ <key>FullStop</key>
+ <string>period</string>
+ <key>GTSgn</key>
+ <string>greater</string>
+ <key>GraveAccent</key>
+ <string>grave</string>
+ <key>Hyphen</key>
+ <string>uni2010</string>
+ <key>HyphenMinus</key>
+ <string>hyphen</string>
+ <key>Hyphen_Soft</key>
+ <string>uni00AD</string>
+ <key>LTSgn</key>
+ <string>less</string>
+ <key>LftCurlyBrac</key>
+ <string>braceleft</string>
+ <key>LftParen</key>
+ <string>parenleft</string>
+ <key>LftSqrBrac</key>
+ <string>bracketleft</string>
+ <key>LowLine</key>
+ <string>underscore</string>
+ <key>LtnCapA</key>
+ <string>A</string>
+ <key>LtnCapA.alt</key>
+ <string>A</string>
+ <key>LtnCapADiaer</key>
+ <string>Adieresis</string>
+ <key>LtnCapB</key>
+ <string>B</string>
+ <key>LtnCapC</key>
+ <string>C</string>
+ <key>LtnCapD</key>
+ <string>D</string>
+ <key>LtnCapE</key>
+ <string>E</string>
+ <key>LtnCapF</key>
+ <string>F</string>
+ <key>LtnCapG</key>
+ <string>G</string>
+ <key>LtnCapH</key>
+ <string>H</string>
+ <key>LtnCapI</key>
+ <string>I</string>
+ <key>LtnCapJ</key>
+ <string>J</string>
+ <key>LtnCapK</key>
+ <string>K</string>
+ <key>LtnCapL</key>
+ <string>L</string>
+ <key>LtnCapM</key>
+ <string>M</string>
+ <key>LtnCapN</key>
+ <string>N</string>
+ <key>LtnCapO</key>
+ <string>O</string>
+ <key>LtnCapP</key>
+ <string>P</string>
+ <key>LtnCapQ</key>
+ <string>Q</string>
+ <key>LtnCapR</key>
+ <string>R</string>
+ <key>LtnCapS</key>
+ <string>S</string>
+ <key>LtnCapT</key>
+ <string>T</string>
+ <key>LtnCapU</key>
+ <string>U</string>
+ <key>LtnCapV</key>
+ <string>V</string>
+ <key>LtnCapW</key>
+ <string>W</string>
+ <key>LtnCapX</key>
+ <string>X</string>
+ <key>LtnCapY</key>
+ <string>Y</string>
+ <key>LtnSmA</key>
+ <string>a</string>
+ <key>LtnSmAAcute</key>
+ <string>aacute</string>
+ <key>LtnSmACircum</key>
+ <string>acircumflex</string>
+ <key>LtnSmADiaer</key>
+ <string>adieresis</string>
+ <key>LtnSmAGrave</key>
+ <string>agrave</string>
+ <key>LtnSmARingAbv</key>
+ <string>aring</string>
+ <key>LtnSmATilde</key>
+ <string>atilde</string>
+ <key>LtnSmB</key>
+ <string>b</string>
+ <key>LtnSmC</key>
+ <string>c</string>
+ <key>LtnSmD</key>
+ <string>d</string>
+ <key>LtnSmE</key>
+ <string>e</string>
+ <key>LtnSmF</key>
+ <string>f</string>
+ <key>LtnSmG</key>
+ <string>g</string>
+ <key>LtnSmH</key>
+ <string>h</string>
+ <key>LtnSmI</key>
+ <string>i</string>
+ <key>LtnSmJ</key>
+ <string>j</string>
+ <key>LtnSmK</key>
+ <string>k</string>
+ <key>LtnSmL</key>
+ <string>l</string>
+ <key>LtnSmM</key>
+ <string>m</string>
+ <key>LtnSmN</key>
+ <string>n</string>
+ <key>LtnSmO</key>
+ <string>o</string>
+ <key>LtnSmP</key>
+ <string>p</string>
+ <key>LtnSmQ</key>
+ <string>q</string>
+ <key>LtnSmR</key>
+ <string>r</string>
+ <key>LtnSmS</key>
+ <string>s</string>
+ <key>LtnSmT</key>
+ <string>t</string>
+ <key>LtnSmU</key>
+ <string>u</string>
+ <key>LtnSmV</key>
+ <string>v</string>
+ <key>LtnSmW</key>
+ <string>w</string>
+ <key>LtnSmX</key>
+ <string>x</string>
+ <key>LtnSmY</key>
+ <string>y</string>
+ <key>NonBreakingHyphen</key>
+ <string>uni2011</string>
+ <key>NumSgn</key>
+ <string>numbersign</string>
+ <key>PercentSgn</key>
+ <string>percent</string>
+ <key>PlusSgn</key>
+ <string>plus</string>
+ <key>QstnMrk</key>
+ <string>question</string>
+ <key>QuotMrk</key>
+ <string>quotedbl</string>
+ <key>ReverseSolidus</key>
+ <string>backslash</string>
+ <key>RtCurlyBrac</key>
+ <string>braceright</string>
+ <key>RtParen</key>
+ <string>parenright</string>
+ <key>RtSqrBrac</key>
+ <string>bracketright</string>
+ <key>Semicolon</key>
+ <string>semicolon</string>
+ <key>Solidus</key>
+ <string>slash</string>
+ <key>Space</key>
+ <string>space</string>
+ <key>Tilde</key>
+ <string>asciitilde</string>
+ <key>VertLine</key>
+ <string>bar</string>
+ </dict>
+</dict>
+</plist>
diff --git a/tests/reference/ufo/psfnormalize.ufo/metainfo.plist b/tests/reference/ufo/psfnormalize.ufo/metainfo.plist
new file mode 100644
index 0000000..aa10c5c
--- /dev/null
+++ b/tests/reference/ufo/psfnormalize.ufo/metainfo.plist
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>creator</key>
+ <string>org.sil.scripts.pysilfont</string>
+ <key>formatVersion</key>
+ <integer>3</integer>
+</dict>
+</plist>
diff --git a/tests/reference/ufo/psfrenameglyphs.lg b/tests/reference/ufo/psfrenameglyphs.lg
new file mode 100644
index 0000000..557bc2f
--- /dev/null
+++ b/tests/reference/ufo/psfrenameglyphs.lg
@@ -0,0 +1,34 @@
+2021-06-29 14:42:22 Progress: Running: psfrenameglyphs tests/input/font-psf-test/source/PsfTest-Bold.ufo -i tests/input/psfrenameglyphs.csv -l local/testresults/ufo/psfrenameglyphs.log -p loglevel=i -p checkfix=fix
+2021-06-29 14:42:22 Progress: Opening file for input: tests/input/psfrenameglyphs.csv
+2021-06-29 14:42:22 Progress: Reading UFO: tests/input/font-psf-test/source/PsfTest-Bold.ufo
+2021-06-29 14:42:22 Info: Processing Glyph Layer 0: public.defaultglyphs
+2021-06-29 14:42:22 Progress: Checking fontinfo.plist metadata
+2021-06-29 14:42:22 Warning: note is present - it's use is discouraged
+2021-06-29 14:42:22 Warning: openTypeOS2FamilyClass removed from fontinfo. Old value: [0, 0]
+2021-06-29 14:42:22 Info: Types: Old - list, New - NoneType
+2021-06-29 14:42:22 Warning: openTypeOS2Selection added New value: [7]
+2021-06-29 14:42:22 Info: Types: Old - NoneType, New - list
+2021-06-29 14:42:22 Progress: Checking lib.plist metadata
+2021-06-29 14:42:22 Warning: com.schriftgestaltung.disablesAutomaticAlignment deleted - obsolete key Old value: True
+2021-06-29 14:42:22 Info: Types: Old - bool, New - NoneType
+2021-06-29 14:42:22 Warning: com.schriftgestaltung.disablesLastChange deleted - obsolete key Old value: True
+2021-06-29 14:42:22 Info: Types: Old - bool, New - NoneType
+2021-06-29 14:42:22 Progress: Check & fix results:- Errors: 0, Changes made: 4, Other warnings: 1
+2021-06-29 14:42:22 Progress: See log file for details
+2021-06-29 14:42:22 Info: Pass 1 (Font): Renamed Apos to Bpos
+2021-06-29 14:42:22 Info: Pass 1 (PGO): Renamed Apos to Bpos
+2021-06-29 14:42:22 Info: Pass 1 (csGO): Renamed Apos to Bpos
+2021-06-29 14:42:22 Info: Pass 1 (psn): Renamed Apos to Bpos
+2021-06-29 14:42:22 Info: Pass 1 (Font): Renamed Asterisk to Star
+2021-06-29 14:42:22 Info: Pass 1 (PGO): Renamed Asterisk to Star
+2021-06-29 14:42:22 Info: Pass 1 (csGO): Renamed Asterisk to Star
+2021-06-29 14:42:22 Info: Pass 1 (psn): Renamed Asterisk to Star
+2021-06-29 14:42:22 Info: glyph name not in font: Commer
+2021-06-29 14:42:22 Info: glyph name not in publicGlyphorder: Commer
+2021-06-29 14:42:22 Info: glyph name not in csGlyphorder: Commer
+2021-06-29 14:42:22 Info: glyph name not in psnames: Commer
+2021-06-29 14:42:22 Progress: 2 glyphs renamed in UFO
+2021-06-29 14:42:22 Progress: Processing font for output
+2021-06-29 14:42:22 Progress: Output UFO already exists - reading for comparison
+2021-06-29 14:42:22 Progress: Writing font to local/testresults/ufo/psfrenameglyphs.ufo
+2021-06-29 14:42:22 Info: Processing glyphs directory
diff --git a/tests/reference/ufo/psfrenameglyphs.ufo/fontinfo.plist b/tests/reference/ufo/psfrenameglyphs.ufo/fontinfo.plist
new file mode 100644
index 0000000..c60d899
--- /dev/null
+++ b/tests/reference/ufo/psfrenameglyphs.ufo/fontinfo.plist
@@ -0,0 +1,244 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>ascender</key>
+ <integer>2100</integer>
+ <key>capHeight</key>
+ <integer>1485</integer>
+ <key>copyright</key>
+ <string>Copyright (c) 2004-2021 SIL International</string>
+ <key>descender</key>
+ <integer>-550</integer>
+ <key>familyName</key>
+ <string>Psf Test</string>
+ <key>note</key>
+ <string>Test note
+Second line
+
+Third line
+</string>
+ <key>openTypeHeadCreated</key>
+ <string>2021/06/29 14:43:52</string>
+ <key>openTypeHheaAscender</key>
+ <integer>2100</integer>
+ <key>openTypeHheaDescender</key>
+ <integer>-550</integer>
+ <key>openTypeHheaLineGap</key>
+ <integer>0</integer>
+ <key>openTypeNameDescription</key>
+ <string>Copyright (c) 2004-2021 SIL International</string>
+ <key>openTypeNameDesigner</key>
+ <string>Victor Gaultney, Annie Olsen, Julie Remington, Don Collingsworth, Eric Hays, Becca Hirsbrunner</string>
+ <key>openTypeNameDesignerURL</key>
+ <string>http://scripts.sil.org/</string>
+ <key>openTypeNameLicense</key>
+ <string>Copyright (c) 2004-2021 SIL International (http://www.sil.org/) with Reserved Font Names "Andika" and "SIL".
+
+This Font Software is licensed under the SIL Open Font License, Version 1.1. This license is copied below, and is also available with a FAQ at: http://scripts.sil.org/OFL
+
+
+-----------------------------------------------------------
+SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
+-----------------------------------------------------------
+
+PREAMBLE
+The goals of the Open Font License (OFL) are to stimulate worldwide development of collaborative font projects, to support the font creation efforts of academic and linguistic communities, and to provide a free and open framework in which fonts may be shared and improved in partnership with others.
+
+The OFL allows the licensed fonts to be used, studied, modified and redistributed freely as long as they are not sold by themselves. The fonts, including any derivative works, can be bundled, embedded, redistributed and/or sold with any software provided that any reserved names are not used by derivative works. The fonts and derivatives, however, cannot be released under any other type of license. The requirement for fonts to remain under this license does not apply to any document created using the fonts or their derivatives.
+
+DEFINITIONS
+"Font Software" refers to the set of files released by the Copyright Holder(s) under this license and clearly marked as such. This may include source files, build scripts and documentation.
+
+"Reserved Font Name" refers to any names specified as such after the copyright statement(s).
+
+"Original Version" refers to the collection of Font Software components as distributed by the Copyright Holder(s).
+
+"Modified Version" refers to any derivative made by adding to, deleting, or substituting -- in part or in whole -- any of the components of the Original Version, by changing formats or by porting the Font Software to a new environment.
+
+"Author" refers to any designer, engineer, programmer, technical writer or other person who contributed to the Font Software.
+
+PERMISSION &amp; CONDITIONS
+Permission is hereby granted, free of charge, to any person obtaining a copy of the Font Software, to use, study, copy, merge, embed, modify, redistribute, and sell modified and unmodified copies of the Font Software, subject to the following conditions:
+
+1) Neither the Font Software nor any of its individual components, in Original or Modified Versions, may be sold by itself.
+
+2) Original or Modified Versions of the Font Software may be bundled, redistributed and/or sold with any software, provided that each copy contains the above copyright notice and this license. These can be included either as stand-alone text files, human-readable headers or in the appropriate machine-readable metadata fields within text or binary files as long as those fields can be easily viewed by the user.
+
+3) No Modified Version of the Font Software may use the Reserved Font Name(s) unless explicit written permission is granted by the corresponding Copyright Holder. This restriction only applies to the primary font name as presented to the users.
+
+4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font Software shall not be used to promote, endorse or advertise any Modified Version, except to acknowledge the contribution(s) of the Copyright Holder(s) and the Author(s) or with their explicit written permission.
+
+5) The Font Software, modified or unmodified, in part or in whole, must be distributed entirely under this license, and must not be distributed under any other license. The requirement for fonts to remain under this license does not apply to any document created using the Font Software.
+
+TERMINATION
+This license becomes null and void if any of the above conditions are not met.
+
+DISCLAIMER
+THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM OTHER DEALINGS IN THE FONT SOFTWARE.</string>
+ <key>openTypeNameLicenseURL</key>
+ <string>http://scripts.sil.org/OFL</string>
+ <key>openTypeNameManufacturer</key>
+ <string>SIL International</string>
+ <key>openTypeNameManufacturerURL</key>
+ <string>http://scripts.sil.org</string>
+ <key>openTypeNamePreferredFamilyName</key>
+ <string>Psf Test</string>
+ <key>openTypeNamePreferredSubfamilyName</key>
+ <string>Bold</string>
+ <key>openTypeNameUniqueID</key>
+ <string>SIL International: Psf Test Bold: 2022</string>
+ <key>openTypeNameVersion</key>
+ <string>Version 5.550</string>
+ <key>openTypeOS2CodePageRanges</key>
+ <array>
+ <integer>0</integer>
+ <integer>1</integer>
+ <integer>2</integer>
+ <integer>4</integer>
+ <integer>7</integer>
+ <integer>8</integer>
+ </array>
+ <key>openTypeOS2Panose</key>
+ <array>
+ <integer>2</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ </array>
+ <key>openTypeOS2Selection</key>
+ <array>
+ <integer>7</integer>
+ </array>
+ <key>openTypeOS2StrikeoutPosition</key>
+ <integer>700</integer>
+ <key>openTypeOS2StrikeoutSize</key>
+ <integer>100</integer>
+ <key>openTypeOS2SubscriptXOffset</key>
+ <integer>0</integer>
+ <key>openTypeOS2SubscriptXSize</key>
+ <integer>1433</integer>
+ <key>openTypeOS2SubscriptYOffset</key>
+ <integer>286</integer>
+ <key>openTypeOS2SubscriptYSize</key>
+ <integer>1331</integer>
+ <key>openTypeOS2SuperscriptXOffset</key>
+ <integer>0</integer>
+ <key>openTypeOS2SuperscriptXSize</key>
+ <integer>1433</integer>
+ <key>openTypeOS2SuperscriptYOffset</key>
+ <integer>976</integer>
+ <key>openTypeOS2SuperscriptYSize</key>
+ <integer>1331</integer>
+ <key>openTypeOS2Type</key>
+ <array/>
+ <key>openTypeOS2TypoAscender</key>
+ <integer>2100</integer>
+ <key>openTypeOS2TypoDescender</key>
+ <integer>-550</integer>
+ <key>openTypeOS2TypoLineGap</key>
+ <integer>0</integer>
+ <key>openTypeOS2UnicodeRanges</key>
+ <array>
+ <integer>0</integer>
+ <integer>1</integer>
+ <integer>6</integer>
+ <integer>7</integer>
+ <integer>31</integer>
+ <integer>33</integer>
+ <integer>35</integer>
+ <integer>36</integer>
+ <integer>37</integer>
+ <integer>38</integer>
+ <integer>39</integer>
+ <integer>40</integer>
+ <integer>45</integer>
+ <integer>46</integer>
+ <integer>47</integer>
+ <integer>57</integer>
+ <integer>60</integer>
+ <integer>62</integer>
+ <integer>64</integer>
+ <integer>67</integer>
+ <integer>69</integer>
+ <integer>89</integer>
+ </array>
+ <key>openTypeOS2VendorID</key>
+ <string>SIL</string>
+ <key>openTypeOS2WeightClass</key>
+ <integer>700</integer>
+ <key>openTypeOS2WidthClass</key>
+ <integer>5</integer>
+ <key>openTypeOS2WinAscent</key>
+ <integer>2100</integer>
+ <key>openTypeOS2WinDescent</key>
+ <integer>550</integer>
+ <key>postscriptBlueValues</key>
+ <array>
+ <integer>-490</integer>
+ <integer>-490</integer>
+ <integer>-25</integer>
+ <integer>0</integer>
+ <integer>1020</integer>
+ <integer>1040</integer>
+ <integer>1455</integer>
+ <integer>1485</integer>
+ <integer>1600</integer>
+ <integer>1620</integer>
+ </array>
+ <key>postscriptFontName</key>
+ <string>PsfTest-Bold</string>
+ <key>postscriptFullName</key>
+ <string>Psf Test Bold</string>
+ <key>postscriptStemSnapH</key>
+ <array>
+ <integer>140</integer>
+ <integer>145</integer>
+ <integer>150</integer>
+ <integer>155</integer>
+ <integer>160</integer>
+ <integer>165</integer>
+ <integer>170</integer>
+ <integer>175</integer>
+ <integer>185</integer>
+ <integer>270</integer>
+ </array>
+ <key>postscriptStemSnapV</key>
+ <array>
+ <integer>165</integer>
+ <integer>180</integer>
+ <integer>185</integer>
+ <integer>190</integer>
+ <integer>195</integer>
+ <integer>200</integer>
+ <integer>205</integer>
+ <integer>270</integer>
+ </array>
+ <key>postscriptUnderlinePosition</key>
+ <integer>-110</integer>
+ <key>postscriptUnderlineThickness</key>
+ <integer>80</integer>
+ <key>styleMapFamilyName</key>
+ <string>Psf Test</string>
+ <key>styleMapStyleName</key>
+ <string>bold</string>
+ <key>styleName</key>
+ <string>Bold</string>
+ <key>trademark</key>
+ <string>Andika is a trademark of SIL International.</string>
+ <key>unitsPerEm</key>
+ <integer>2048</integer>
+ <key>versionMajor</key>
+ <integer>5</integer>
+ <key>versionMinor</key>
+ <integer>550</integer>
+ <key>xHeight</key>
+ <integer>1040</integer>
+</dict>
+</plist>
diff --git a/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/A_mpersand.glif b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/A_mpersand.glif
new file mode 100644
index 0000000..f2749f2
--- /dev/null
+++ b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/A_mpersand.glif
@@ -0,0 +1,61 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Ampersand" format="2">
+ <advance width="1355"/>
+ <unicode hex="0026"/>
+ <outline>
+ <contour>
+ <point x="1060" y="600" type="line"/>
+ <point x="996" y="433"/>
+ <point x="715" y="190"/>
+ <point x="540" y="190" type="curve" smooth="yes"/>
+ <point x="425" y="190"/>
+ <point x="335" y="257"/>
+ <point x="335" y="370" type="curve" smooth="yes"/>
+ <point x="335" y="480"/>
+ <point x="411" y="547"/>
+ <point x="585" y="700" type="curve" smooth="yes"/>
+ <point x="766" y="859"/>
+ <point x="925" y="1048"/>
+ <point x="925" y="1190" type="curve" smooth="yes"/>
+ <point x="925" y="1372"/>
+ <point x="777" y="1485"/>
+ <point x="575" y="1485" type="curve" smooth="yes"/>
+ <point x="366" y="1485"/>
+ <point x="190" y="1372"/>
+ <point x="190" y="1160" type="curve" smooth="yes"/>
+ <point x="190" y="1000"/>
+ <point x="407" y="785"/>
+ <point x="590" y="540" type="curve" smooth="yes"/>
+ <point x="859" y="179"/>
+ <point x="1038" y="-25"/>
+ <point x="1090" y="-25" type="curve" smooth="yes"/>
+ <point x="1125" y="-25"/>
+ <point x="1253" y="58"/>
+ <point x="1290" y="90" type="curve"/>
+ <point x="1195" y="130"/>
+ <point x="1060" y="305"/>
+ <point x="785" y="680" type="curve" smooth="yes"/>
+ <point x="619" y="906"/>
+ <point x="420" y="1085"/>
+ <point x="420" y="1170" type="curve" smooth="yes"/>
+ <point x="420" y="1241"/>
+ <point x="483" y="1310"/>
+ <point x="560" y="1310" type="curve" smooth="yes"/>
+ <point x="640" y="1310"/>
+ <point x="695" y="1254"/>
+ <point x="695" y="1175" type="curve" smooth="yes"/>
+ <point x="695" y="1106"/>
+ <point x="628" y="1001"/>
+ <point x="455" y="840" type="curve" smooth="yes"/>
+ <point x="251" y="651"/>
+ <point x="90" y="527"/>
+ <point x="90" y="344" type="curve" smooth="yes"/>
+ <point x="90" y="121"/>
+ <point x="242" y="-25"/>
+ <point x="525" y="-25" type="curve" smooth="yes"/>
+ <point x="808" y="-25"/>
+ <point x="1117" y="264"/>
+ <point x="1195" y="425" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/A_tS_gn.glif b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/A_tS_gn.glif
new file mode 100644
index 0000000..47fee96
--- /dev/null
+++ b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/A_tS_gn.glif
@@ -0,0 +1,80 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="AtSgn" format="2">
+ <advance width="1742"/>
+ <unicode hex="0040"/>
+ <outline>
+ <contour>
+ <point x="1140" y="10" type="line"/>
+ <point x="1077" y="-34"/>
+ <point x="988" y="-60"/>
+ <point x="895" y="-60" type="curve" smooth="yes"/>
+ <point x="558" y="-60"/>
+ <point x="290" y="204"/>
+ <point x="290" y="605" type="curve" smooth="yes"/>
+ <point x="290" y="973"/>
+ <point x="557" y="1240"/>
+ <point x="895" y="1240" type="curve" smooth="yes"/>
+ <point x="1278" y="1240"/>
+ <point x="1460" y="992"/>
+ <point x="1460" y="670" type="curve" smooth="yes"/>
+ <point x="1460" y="452"/>
+ <point x="1363" y="335"/>
+ <point x="1305" y="335" type="curve" smooth="yes"/>
+ <point x="1256" y="335"/>
+ <point x="1220" y="430"/>
+ <point x="1220" y="650" type="curve" smooth="yes"/>
+ <point x="1220" y="980" type="line"/>
+ <point x="1133" y="1015"/>
+ <point x="986" y="1040"/>
+ <point x="905" y="1040" type="curve" smooth="yes"/>
+ <point x="741" y="1040"/>
+ <point x="618" y="961"/>
+ <point x="535" y="825" type="curve" smooth="yes"/>
+ <point x="488" y="746"/>
+ <point x="460" y="653"/>
+ <point x="460" y="530" type="curve" smooth="yes"/>
+ <point x="460" y="304"/>
+ <point x="606" y="163"/>
+ <point x="740" y="163" type="curve" smooth="yes"/>
+ <point x="867" y="163"/>
+ <point x="1013" y="331"/>
+ <point x="1065" y="455" type="curve"/>
+ <point x="1075" y="287"/>
+ <point x="1153" y="160"/>
+ <point x="1275" y="160" type="curve" smooth="yes"/>
+ <point x="1450" y="160"/>
+ <point x="1650" y="358"/>
+ <point x="1650" y="700" type="curve" smooth="yes"/>
+ <point x="1650" y="1137"/>
+ <point x="1342" y="1425"/>
+ <point x="905" y="1425" type="curve" smooth="yes"/>
+ <point x="480" y="1425"/>
+ <point x="90" y="1136"/>
+ <point x="90" y="575" type="curve" smooth="yes"/>
+ <point x="90" y="38"/>
+ <point x="479" y="-245"/>
+ <point x="880" y="-245" type="curve" smooth="yes"/>
+ <point x="1015" y="-245"/>
+ <point x="1175" y="-198"/>
+ <point x="1275" y="-128" type="curve"/>
+ </contour>
+ <contour>
+ <point x="1020" y="710" type="line"/>
+ <point x="988" y="572"/>
+ <point x="863" y="350"/>
+ <point x="773" y="350" type="curve" smooth="yes"/>
+ <point x="701" y="350"/>
+ <point x="660" y="428"/>
+ <point x="660" y="575" type="curve" smooth="yes"/>
+ <point x="660" y="652"/>
+ <point x="682" y="737"/>
+ <point x="720" y="786" type="curve" smooth="yes"/>
+ <point x="756" y="831"/>
+ <point x="807" y="855"/>
+ <point x="875" y="855" type="curve" smooth="yes"/>
+ <point x="949" y="855"/>
+ <point x="987" y="836"/>
+ <point x="1020" y="820" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/B_pos.glif b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/B_pos.glif
new file mode 100644
index 0000000..e26faa2
--- /dev/null
+++ b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/B_pos.glif
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Bpos" format="2">
+ <advance width="625"/>
+ <unicode hex="0027"/>
+ <outline>
+ <contour>
+ <point x="400" y="1045" type="line"/>
+ <point x="405" y="1186"/>
+ <point x="406" y="1339"/>
+ <point x="435" y="1585" type="curve"/>
+ <point x="190" y="1585" type="line"/>
+ <point x="221" y="1339"/>
+ <point x="221" y="1186"/>
+ <point x="225" y="1045" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/C_ircumA_ccent.glif b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/C_ircumA_ccent.glif
new file mode 100644
index 0000000..7258b7d
--- /dev/null
+++ b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/C_ircumA_ccent.glif
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="CircumAccent" format="2">
+ <advance width="880"/>
+ <unicode hex="005E"/>
+ <anchor x="440" y="1635" name="U"/>
+ <outline>
+ <contour>
+ <point x="888" y="1200" type="line"/>
+ <point x="598" y="1600" type="line"/>
+ <point x="298" y="1600" type="line"/>
+ <point x="8" y="1200" type="line"/>
+ <point x="248" y="1200" type="line"/>
+ <point x="448" y="1430" type="line"/>
+ <point x="648" y="1200" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/C_olon.glif b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/C_olon.glif
new file mode 100644
index 0000000..ae4801a
--- /dev/null
+++ b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/C_olon.glif
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Colon" format="2">
+ <advance width="710"/>
+ <unicode hex="003A"/>
+ <outline>
+ <contour>
+ <point x="200" y="150" type="curve" smooth="yes"/>
+ <point x="200" y="46"/>
+ <point x="274" y="-25"/>
+ <point x="375" y="-25" type="curve" smooth="yes"/>
+ <point x="477" y="-25"/>
+ <point x="550" y="46"/>
+ <point x="550" y="150" type="curve" smooth="yes"/>
+ <point x="550" y="252"/>
+ <point x="477" y="325"/>
+ <point x="375" y="325" type="curve" smooth="yes"/>
+ <point x="274" y="325"/>
+ <point x="200" y="252"/>
+ </contour>
+ <contour>
+ <point x="200" y="750" type="curve" smooth="yes"/>
+ <point x="200" y="646"/>
+ <point x="274" y="575"/>
+ <point x="375" y="575" type="curve" smooth="yes"/>
+ <point x="477" y="575"/>
+ <point x="550" y="646"/>
+ <point x="550" y="750" type="curve" smooth="yes"/>
+ <point x="550" y="852"/>
+ <point x="477" y="925"/>
+ <point x="375" y="925" type="curve" smooth="yes"/>
+ <point x="274" y="925"/>
+ <point x="200" y="852"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/C_ombA_cute.glif b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/C_ombA_cute.glif
new file mode 100644
index 0000000..5574223
--- /dev/null
+++ b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/C_ombA_cute.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="CombAcute" format="2">
+ <unicode hex="0301"/>
+ <anchor x="-600" y="1635" name="U"/>
+ <anchor x="-540" y="1100" name="_U"/>
+ <outline>
+ <contour>
+ <point x="-470" y="1600" type="line"/>
+ <point x="-760" y="1200" type="line"/>
+ <point x="-520" y="1200" type="line"/>
+ <point x="-120" y="1600" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/C_ombC_ircum.glif b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/C_ombC_ircum.glif
new file mode 100644
index 0000000..ca30491
--- /dev/null
+++ b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/C_ombC_ircum.glif
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="CombCircum" format="2">
+ <unicode hex="0302"/>
+ <anchor x="-588" y="1635" name="U"/>
+ <anchor x="-580" y="1100" name="_U"/>
+ <outline>
+ <contour>
+ <point x="-140" y="1200" type="line"/>
+ <point x="-430" y="1600" type="line"/>
+ <point x="-730" y="1600" type="line"/>
+ <point x="-1020" y="1200" type="line"/>
+ <point x="-780" y="1200" type="line"/>
+ <point x="-580" y="1430" type="line"/>
+ <point x="-380" y="1200" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/C_ombD_iaer.glif b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/C_ombD_iaer.glif
new file mode 100644
index 0000000..5a15368
--- /dev/null
+++ b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/C_ombD_iaer.glif
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="CombDiaer" format="2">
+ <unicode hex="0308"/>
+ <anchor x="-580" y="1585" name="U"/>
+ <anchor x="-580" y="1100" name="_U"/>
+ <outline>
+ <contour>
+ <point x="-510" y="1385" type="curve" smooth="yes"/>
+ <point x="-510" y="1281"/>
+ <point x="-436" y="1210"/>
+ <point x="-335" y="1210" type="curve" smooth="yes"/>
+ <point x="-233" y="1210"/>
+ <point x="-160" y="1281"/>
+ <point x="-160" y="1385" type="curve" smooth="yes"/>
+ <point x="-160" y="1487"/>
+ <point x="-233" y="1560"/>
+ <point x="-335" y="1560" type="curve" smooth="yes"/>
+ <point x="-436" y="1560"/>
+ <point x="-510" y="1487"/>
+ </contour>
+ <contour>
+ <point x="-1000" y="1385" type="curve" smooth="yes"/>
+ <point x="-1000" y="1281"/>
+ <point x="-926" y="1210"/>
+ <point x="-825" y="1210" type="curve" smooth="yes"/>
+ <point x="-723" y="1210"/>
+ <point x="-650" y="1281"/>
+ <point x="-650" y="1385" type="curve" smooth="yes"/>
+ <point x="-650" y="1487"/>
+ <point x="-723" y="1560"/>
+ <point x="-825" y="1560" type="curve" smooth="yes"/>
+ <point x="-926" y="1560"/>
+ <point x="-1000" y="1487"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/C_ombG_rave.glif b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/C_ombG_rave.glif
new file mode 100644
index 0000000..33bed8f
--- /dev/null
+++ b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/C_ombG_rave.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="CombGrave" format="2">
+ <unicode hex="0300"/>
+ <anchor x="-590" y="1635" name="U"/>
+ <anchor x="-630" y="1100" name="_U"/>
+ <outline>
+ <contour>
+ <point x="-1050" y="1600" type="line"/>
+ <point x="-650" y="1200" type="line"/>
+ <point x="-410" y="1200" type="line"/>
+ <point x="-700" y="1600" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/C_ombR_ingA_bv.glif b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/C_ombR_ingA_bv.glif
new file mode 100644
index 0000000..7e03146
--- /dev/null
+++ b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/C_ombR_ingA_bv.glif
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="CombRingAbv" format="2">
+ <unicode hex="030A"/>
+ <anchor x="-570" y="1635" name="U"/>
+ <anchor x="-572" y="1100" name="_U"/>
+ <outline>
+ <contour>
+ <point x="-475" y="1400" type="curve" smooth="yes"/>
+ <point x="-475" y="1345"/>
+ <point x="-515" y="1305"/>
+ <point x="-570" y="1305" type="curve" smooth="yes"/>
+ <point x="-625" y="1305"/>
+ <point x="-665" y="1345"/>
+ <point x="-665" y="1400" type="curve" smooth="yes"/>
+ <point x="-665" y="1455"/>
+ <point x="-625" y="1495"/>
+ <point x="-570" y="1495" type="curve" smooth="yes"/>
+ <point x="-515" y="1495"/>
+ <point x="-475" y="1455"/>
+ </contour>
+ <contour>
+ <point x="-815" y="1400" type="curve" smooth="yes"/>
+ <point x="-815" y="1260"/>
+ <point x="-710" y="1160"/>
+ <point x="-570" y="1160" type="curve" smooth="yes"/>
+ <point x="-430" y="1160"/>
+ <point x="-325" y="1260"/>
+ <point x="-325" y="1400" type="curve" smooth="yes"/>
+ <point x="-325" y="1540"/>
+ <point x="-430" y="1640"/>
+ <point x="-570" y="1640" type="curve" smooth="yes"/>
+ <point x="-710" y="1640"/>
+ <point x="-815" y="1540"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/C_ombT_ilde.glif b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/C_ombT_ilde.glif
new file mode 100644
index 0000000..ee23af5
--- /dev/null
+++ b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/C_ombT_ilde.glif
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="CombTilde" format="2">
+ <unicode hex="0303"/>
+ <anchor x="-580" y="1490" name="U"/>
+ <anchor x="-580" y="1100" name="_U"/>
+ <outline>
+ <contour>
+ <point x="-830" y="1190" type="line"/>
+ <point x="-824" y="1232"/>
+ <point x="-803" y="1280"/>
+ <point x="-753" y="1280" type="curve" smooth="yes"/>
+ <point x="-710" y="1280"/>
+ <point x="-653" y="1264"/>
+ <point x="-570" y="1229" type="curve" smooth="yes"/>
+ <point x="-500" y="1199"/>
+ <point x="-448" y="1180"/>
+ <point x="-386" y="1180" type="curve" smooth="yes"/>
+ <point x="-250" y="1180"/>
+ <point x="-155" y="1307"/>
+ <point x="-155" y="1480" type="curve"/>
+ <point x="-310" y="1480" type="line"/>
+ <point x="-318" y="1438"/>
+ <point x="-340" y="1390"/>
+ <point x="-387" y="1390" type="curve" smooth="yes"/>
+ <point x="-435" y="1390"/>
+ <point x="-472" y="1408"/>
+ <point x="-550" y="1437" type="curve" smooth="yes"/>
+ <point x="-629" y="1466"/>
+ <point x="-695" y="1490"/>
+ <point x="-760" y="1490" type="curve" smooth="yes"/>
+ <point x="-892" y="1490"/>
+ <point x="-985" y="1349"/>
+ <point x="-985" y="1190" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/C_omma.glif b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/C_omma.glif
new file mode 100644
index 0000000..9d4845e
--- /dev/null
+++ b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/C_omma.glif
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Comma" format="2">
+ <advance width="665"/>
+ <unicode hex="002C"/>
+ <outline>
+ <contour>
+ <point x="185" y="50" type="line"/>
+ <point x="345" y="50" type="line"/>
+ <point x="345" y="-34"/>
+ <point x="290" y="-153"/>
+ <point x="185" y="-265" type="curve"/>
+ <point x="330" y="-335" type="line"/>
+ <point x="454" y="-228"/>
+ <point x="560" y="-49"/>
+ <point x="560" y="130" type="curve" smooth="yes"/>
+ <point x="560" y="254"/>
+ <point x="489" y="340"/>
+ <point x="375" y="340" type="curve" smooth="yes"/>
+ <point x="262" y="340"/>
+ <point x="185" y="255"/>
+ <point x="185" y="180" type="curve" smooth="yes"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/D_igitE_ight.glif b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/D_igitE_ight.glif
new file mode 100644
index 0000000..a59fff4
--- /dev/null
+++ b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/D_igitE_ight.glif
@@ -0,0 +1,63 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitEight" format="2">
+ <advance width="1200"/>
+ <unicode hex="0038"/>
+ <anchor x="600" y="-100" name="L"/>
+ <anchor x="600" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="600" y="-25" type="curve" smooth="yes"/>
+ <point x="877" y="-25"/>
+ <point x="1130" y="144"/>
+ <point x="1130" y="415" type="curve" smooth="yes"/>
+ <point x="1130" y="641"/>
+ <point x="985" y="739"/>
+ <point x="875" y="795" type="curve"/>
+ <point x="953" y="841"/>
+ <point x="1060" y="923"/>
+ <point x="1060" y="1105" type="curve" smooth="yes"/>
+ <point x="1060" y="1350"/>
+ <point x="860" y="1485"/>
+ <point x="610" y="1485" type="curve" smooth="yes"/>
+ <point x="361" y="1485"/>
+ <point x="140" y="1350"/>
+ <point x="140" y="1105" type="curve" smooth="yes"/>
+ <point x="140" y="923"/>
+ <point x="252" y="838"/>
+ <point x="330" y="795" type="curve"/>
+ <point x="201" y="725"/>
+ <point x="70" y="631"/>
+ <point x="70" y="405" type="curve" smooth="yes"/>
+ <point x="70" y="134"/>
+ <point x="324" y="-25"/>
+ </contour>
+ <contour>
+ <point x="810" y="1100" type="curve" smooth="yes"/>
+ <point x="810" y="974"/>
+ <point x="733" y="895"/>
+ <point x="600" y="895" type="curve" smooth="yes"/>
+ <point x="467" y="895"/>
+ <point x="390" y="974"/>
+ <point x="390" y="1100" type="curve" smooth="yes"/>
+ <point x="390" y="1217"/>
+ <point x="477" y="1290"/>
+ <point x="600" y="1290" type="curve" smooth="yes"/>
+ <point x="743" y="1290"/>
+ <point x="810" y="1207"/>
+ </contour>
+ <contour>
+ <point x="865" y="435" type="curve" smooth="yes"/>
+ <point x="865" y="300"/>
+ <point x="768" y="185"/>
+ <point x="600" y="185" type="curve" smooth="yes"/>
+ <point x="440" y="185"/>
+ <point x="335" y="300"/>
+ <point x="335" y="435" type="curve" smooth="yes"/>
+ <point x="335" y="582"/>
+ <point x="450" y="680"/>
+ <point x="600" y="680" type="curve" smooth="yes"/>
+ <point x="748" y="680"/>
+ <point x="865" y="582"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/D_igitF_ive.glif b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/D_igitF_ive.glif
new file mode 100644
index 0000000..102780d
--- /dev/null
+++ b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/D_igitF_ive.glif
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitFive" format="2">
+ <advance width="1200"/>
+ <unicode hex="0035"/>
+ <anchor x="600" y="-100" name="L"/>
+ <anchor x="600" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="175" y="645" type="line"/>
+ <point x="299" y="693"/>
+ <point x="404" y="710"/>
+ <point x="510" y="710" type="curve" smooth="yes"/>
+ <point x="670" y="710"/>
+ <point x="810" y="632"/>
+ <point x="810" y="470" type="curve" smooth="yes"/>
+ <point x="810" y="318"/>
+ <point x="690" y="215"/>
+ <point x="530" y="215" type="curve" smooth="yes"/>
+ <point x="390" y="215"/>
+ <point x="274" y="252"/>
+ <point x="140" y="360" type="curve"/>
+ <point x="100" y="80" type="line"/>
+ <point x="225" y="2"/>
+ <point x="365" y="-25"/>
+ <point x="520" y="-25" type="curve" smooth="yes"/>
+ <point x="833" y="-25"/>
+ <point x="1090" y="163"/>
+ <point x="1090" y="475" type="curve" smooth="yes"/>
+ <point x="1090" y="752"/>
+ <point x="882" y="930"/>
+ <point x="605" y="930" type="curve" smooth="yes"/>
+ <point x="543" y="930"/>
+ <point x="468" y="911"/>
+ <point x="435" y="895" type="curve"/>
+ <point x="435" y="1215" type="line"/>
+ <point x="765" y="1215" type="line" smooth="yes"/>
+ <point x="849" y="1215"/>
+ <point x="955" y="1211"/>
+ <point x="1030" y="1195" type="curve"/>
+ <point x="1030" y="1460" type="line"/>
+ <point x="175" y="1460" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/D_igitF_our.glif b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/D_igitF_our.glif
new file mode 100644
index 0000000..7d2cbe6
--- /dev/null
+++ b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/D_igitF_our.glif
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitFour" format="2">
+ <advance width="1200"/>
+ <unicode hex="0034"/>
+ <anchor x="607" y="-100" name="L"/>
+ <anchor x="607" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1155" y="345" type="line"/>
+ <point x="1155" y="570" type="line"/>
+ <point x="995" y="570" type="line"/>
+ <point x="995" y="1460" type="line"/>
+ <point x="695" y="1460" type="line"/>
+ <point x="60" y="570" type="line"/>
+ <point x="60" y="345" type="line"/>
+ <point x="730" y="345" type="line"/>
+ <point x="730" y="0" type="line"/>
+ <point x="995" y="0" type="line"/>
+ <point x="995" y="345" type="line"/>
+ </contour>
+ <contour>
+ <point x="730" y="1145" type="line"/>
+ <point x="730" y="570" type="line"/>
+ <point x="305" y="570" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/D_igitN_ine.glif b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/D_igitN_ine.glif
new file mode 100644
index 0000000..b1e153b
--- /dev/null
+++ b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/D_igitN_ine.glif
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitNine" format="2">
+ <advance width="1200"/>
+ <unicode hex="0039"/>
+ <anchor x="600" y="-100" name="L"/>
+ <anchor x="600" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="154" y="65" type="line"/>
+ <point x="248" y="5"/>
+ <point x="364" y="-25"/>
+ <point x="492" y="-25" type="curve" smooth="yes"/>
+ <point x="967" y="-25"/>
+ <point x="1135" y="411"/>
+ <point x="1135" y="780" type="curve" smooth="yes"/>
+ <point x="1135" y="1150"/>
+ <point x="977" y="1485"/>
+ <point x="589" y="1485" type="curve" smooth="yes"/>
+ <point x="310" y="1485"/>
+ <point x="70" y="1300"/>
+ <point x="70" y="1002" type="curve" smooth="yes"/>
+ <point x="70" y="763"/>
+ <point x="272" y="576"/>
+ <point x="550" y="576" type="curve" smooth="yes"/>
+ <point x="741" y="576"/>
+ <point x="913" y="707"/>
+ <point x="1010" y="868" type="curve"/>
+ <point x="939" y="991" type="line"/>
+ <point x="865" y="877"/>
+ <point x="729" y="790"/>
+ <point x="574" y="790" type="curve" smooth="yes"/>
+ <point x="425" y="790"/>
+ <point x="326" y="890"/>
+ <point x="326" y="1036" type="curve" smooth="yes"/>
+ <point x="326" y="1153"/>
+ <point x="425" y="1250"/>
+ <point x="573" y="1250" type="curve" smooth="yes"/>
+ <point x="773" y="1250"/>
+ <point x="870" y="1102"/>
+ <point x="870" y="813" type="curve" smooth="yes"/>
+ <point x="870" y="326"/>
+ <point x="699" y="210"/>
+ <point x="502" y="210" type="curve" smooth="yes"/>
+ <point x="406" y="210"/>
+ <point x="294" y="234"/>
+ <point x="208" y="320" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/D_igitO_ne.glif b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/D_igitO_ne.glif
new file mode 100644
index 0000000..c744b9f
--- /dev/null
+++ b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/D_igitO_ne.glif
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitOne" format="2">
+ <advance width="1200"/>
+ <unicode hex="0031"/>
+ <anchor x="600" y="-100" name="L"/>
+ <anchor x="600" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1075" y="0" type="line"/>
+ <point x="1075" y="235" type="line"/>
+ <point x="767" y="235" type="line"/>
+ <point x="767" y="1460" type="line"/>
+ <point x="492" y="1460" type="line"/>
+ <point x="177" y="1278" type="line"/>
+ <point x="212" y="1018" type="line"/>
+ <point x="492" y="1170" type="line"/>
+ <point x="492" y="235" type="line"/>
+ <point x="185" y="235" type="line"/>
+ <point x="185" y="0" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/D_igitS_even.glif b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/D_igitS_even.glif
new file mode 100644
index 0000000..63fb1c4
--- /dev/null
+++ b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/D_igitS_even.glif
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitSeven" format="2">
+ <advance width="1200"/>
+ <unicode hex="0037"/>
+ <anchor x="600" y="-100" name="L"/>
+ <anchor x="600" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="520" y="0" type="line"/>
+ <point x="649" y="459"/>
+ <point x="834" y="855"/>
+ <point x="1130" y="1260" type="curve"/>
+ <point x="1130" y="1460" type="line"/>
+ <point x="100" y="1460" type="line"/>
+ <point x="100" y="1195" type="line"/>
+ <point x="176" y="1211"/>
+ <point x="292" y="1215"/>
+ <point x="480" y="1215" type="curve" smooth="yes"/>
+ <point x="800" y="1215" type="line"/>
+ <point x="542" y="842"/>
+ <point x="409" y="566"/>
+ <point x="235" y="0" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/D_igitS_ix.glif b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/D_igitS_ix.glif
new file mode 100644
index 0000000..7526cc6
--- /dev/null
+++ b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/D_igitS_ix.glif
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitSix" format="2">
+ <advance width="1200"/>
+ <unicode hex="0036"/>
+ <anchor x="610" y="-100" name="L"/>
+ <anchor x="610" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1073" y="1395" type="line"/>
+ <point x="969" y="1465"/>
+ <point x="873" y="1485"/>
+ <point x="735" y="1485" type="curve" smooth="yes"/>
+ <point x="260" y="1485"/>
+ <point x="90" y="1069"/>
+ <point x="90" y="680" type="curve" smooth="yes"/>
+ <point x="90" y="223"/>
+ <point x="297" y="-25"/>
+ <point x="652" y="-25" type="curve" smooth="yes"/>
+ <point x="955" y="-25"/>
+ <point x="1155" y="179"/>
+ <point x="1155" y="470" type="curve" smooth="yes"/>
+ <point x="1155" y="729"/>
+ <point x="963" y="925"/>
+ <point x="675" y="925" type="curve" smooth="yes"/>
+ <point x="484" y="925"/>
+ <point x="338" y="810"/>
+ <point x="225" y="655" type="curve"/>
+ <point x="290" y="540" type="line"/>
+ <point x="372" y="643"/>
+ <point x="500" y="710"/>
+ <point x="655" y="710" type="curve" smooth="yes"/>
+ <point x="814" y="710"/>
+ <point x="900" y="601"/>
+ <point x="900" y="455" type="curve" smooth="yes"/>
+ <point x="900" y="329"/>
+ <point x="803" y="210"/>
+ <point x="656" y="210" type="curve" smooth="yes"/>
+ <point x="474" y="210"/>
+ <point x="355" y="386"/>
+ <point x="355" y="645" type="curve" smooth="yes"/>
+ <point x="355" y="1132"/>
+ <point x="528" y="1250"/>
+ <point x="725" y="1250" type="curve" smooth="yes"/>
+ <point x="821" y="1250"/>
+ <point x="923" y="1226"/>
+ <point x="1009" y="1140" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/D_igitT_hree.glif b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/D_igitT_hree.glif
new file mode 100644
index 0000000..883bd62
--- /dev/null
+++ b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/D_igitT_hree.glif
@@ -0,0 +1,52 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitThree" format="2">
+ <advance width="1200"/>
+ <unicode hex="0033"/>
+ <anchor x="600" y="-100" name="L"/>
+ <anchor x="600" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="390" y="885" type="line"/>
+ <point x="390" y="645" type="line"/>
+ <point x="480" y="645" type="line" smooth="yes"/>
+ <point x="706" y="645"/>
+ <point x="835" y="548"/>
+ <point x="835" y="425" type="curve" smooth="yes"/>
+ <point x="835" y="291"/>
+ <point x="708" y="210"/>
+ <point x="565" y="210" type="curve" smooth="yes"/>
+ <point x="405" y="210"/>
+ <point x="244" y="282"/>
+ <point x="135" y="405" type="curve"/>
+ <point x="100" y="130" type="line"/>
+ <point x="205" y="32"/>
+ <point x="368" y="-25"/>
+ <point x="545" y="-25" type="curve" smooth="yes"/>
+ <point x="874" y="-25"/>
+ <point x="1120" y="170"/>
+ <point x="1120" y="405" type="curve" smooth="yes"/>
+ <point x="1120" y="672"/>
+ <point x="892" y="756"/>
+ <point x="750" y="780" type="curve"/>
+ <point x="892" y="809"/>
+ <point x="1070" y="957"/>
+ <point x="1070" y="1140" type="curve" smooth="yes"/>
+ <point x="1070" y="1354"/>
+ <point x="868" y="1485"/>
+ <point x="580" y="1485" type="curve" smooth="yes"/>
+ <point x="413" y="1485"/>
+ <point x="240" y="1416"/>
+ <point x="160" y="1325" type="curve"/>
+ <point x="195" y="1095" type="line"/>
+ <point x="308" y="1211"/>
+ <point x="436" y="1250"/>
+ <point x="590" y="1250" type="curve" smooth="yes"/>
+ <point x="689" y="1250"/>
+ <point x="791" y="1193"/>
+ <point x="791" y="1102" type="curve" smooth="yes"/>
+ <point x="791" y="994"/>
+ <point x="662" y="885"/>
+ <point x="480" y="885" type="curve" smooth="yes"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/D_igitT_wo.glif b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/D_igitT_wo.glif
new file mode 100644
index 0000000..1d73732
--- /dev/null
+++ b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/D_igitT_wo.glif
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitTwo" format="2">
+ <advance width="1200"/>
+ <unicode hex="0032"/>
+ <anchor x="600" y="-100" name="L"/>
+ <anchor x="560" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1090" y="260" type="line"/>
+ <point x="1010" y="246"/>
+ <point x="942" y="245"/>
+ <point x="745" y="245" type="curve" smooth="yes"/>
+ <point x="480" y="245" type="line"/>
+ <point x="699" y="422"/>
+ <point x="1046" y="739"/>
+ <point x="1046" y="1065" type="curve" smooth="yes"/>
+ <point x="1046" y="1323"/>
+ <point x="850" y="1485"/>
+ <point x="560" y="1485" type="curve" smooth="yes"/>
+ <point x="391" y="1485"/>
+ <point x="196" y="1402"/>
+ <point x="105" y="1290" type="curve"/>
+ <point x="170" y="1050" type="line"/>
+ <point x="259" y="1158"/>
+ <point x="412" y="1235"/>
+ <point x="535" y="1235" type="curve" smooth="yes"/>
+ <point x="688" y="1235"/>
+ <point x="758" y="1133"/>
+ <point x="758" y="1015" type="curve" smooth="yes"/>
+ <point x="758" y="758"/>
+ <point x="381" y="415"/>
+ <point x="110" y="220" type="curve"/>
+ <point x="110" y="0" type="line"/>
+ <point x="1090" y="0" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/D_igitZ_ero.glif b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/D_igitZ_ero.glif
new file mode 100644
index 0000000..01f4532
--- /dev/null
+++ b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/D_igitZ_ero.glif
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitZero" format="2">
+ <advance width="1200"/>
+ <unicode hex="0030"/>
+ <anchor x="605" y="-100" name="L"/>
+ <anchor x="605" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="850" y="715" type="curve" smooth="yes"/>
+ <point x="850" y="368"/>
+ <point x="762" y="205"/>
+ <point x="600" y="205" type="curve" smooth="yes"/>
+ <point x="432" y="205"/>
+ <point x="350" y="375"/>
+ <point x="350" y="745" type="curve" smooth="yes"/>
+ <point x="350" y="1093"/>
+ <point x="437" y="1255"/>
+ <point x="600" y="1255" type="curve" smooth="yes"/>
+ <point x="772" y="1255"/>
+ <point x="850" y="1086"/>
+ </contour>
+ <contour>
+ <point x="1135" y="740" type="curve" smooth="yes"/>
+ <point x="1135" y="1286"/>
+ <point x="950" y="1485"/>
+ <point x="610" y="1485" type="curve" smooth="yes"/>
+ <point x="291" y="1485"/>
+ <point x="65" y="1283"/>
+ <point x="65" y="720" type="curve" smooth="yes"/>
+ <point x="65" y="165"/>
+ <point x="271" y="-25"/>
+ <point x="590" y="-25" type="curve" smooth="yes"/>
+ <point x="911" y="-25"/>
+ <point x="1135" y="161"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/D_ollarS_gn.glif b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/D_ollarS_gn.glif
new file mode 100644
index 0000000..f8b49cd
--- /dev/null
+++ b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/D_ollarS_gn.glif
@@ -0,0 +1,57 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DollarSgn" format="2">
+ <advance width="1200"/>
+ <unicode hex="0024"/>
+ <outline>
+ <contour>
+ <point x="1006" y="1316" type="line"/>
+ <point x="886" y="1374"/>
+ <point x="764" y="1389"/>
+ <point x="623" y="1389" type="curve" smooth="yes"/>
+ <point x="317" y="1389"/>
+ <point x="150" y="1203"/>
+ <point x="150" y="1017" type="curve" smooth="yes"/>
+ <point x="150" y="830"/>
+ <point x="275" y="730"/>
+ <point x="540" y="623" type="curve" smooth="yes"/>
+ <point x="802" y="517"/>
+ <point x="851" y="472"/>
+ <point x="851" y="386" type="curve" smooth="yes"/>
+ <point x="851" y="267"/>
+ <point x="744" y="211"/>
+ <point x="586" y="211" type="curve" smooth="yes"/>
+ <point x="440" y="211"/>
+ <point x="297" y="281"/>
+ <point x="195" y="383" type="curve"/>
+ <point x="123" y="124" type="line"/>
+ <point x="216" y="49"/>
+ <point x="388" y="0"/>
+ <point x="586" y="0" type="curve" smooth="yes"/>
+ <point x="847" y="0"/>
+ <point x="1086" y="147"/>
+ <point x="1086" y="414" type="curve" smooth="yes"/>
+ <point x="1086" y="633"/>
+ <point x="927" y="723"/>
+ <point x="679" y="826" type="curve" smooth="yes"/>
+ <point x="431" y="929"/>
+ <point x="385" y="969"/>
+ <point x="385" y="1040" type="curve" smooth="yes"/>
+ <point x="385" y="1132"/>
+ <point x="466" y="1188"/>
+ <point x="613" y="1188" type="curve" smooth="yes"/>
+ <point x="741" y="1188"/>
+ <point x="876" y="1154"/>
+ <point x="949" y="1077" type="curve"/>
+ </contour>
+ <contour>
+ <point x="548" y="1600" type="line"/>
+ <point x="548" y="788" type="line"/>
+ <point x="518" y="726" type="line"/>
+ <point x="518" y="-220" type="line"/>
+ <point x="688" y="-220" type="line"/>
+ <point x="688" y="668" type="line"/>
+ <point x="718" y="734" type="line"/>
+ <point x="718" y="1600" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/D_ottedC_irc.glif b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/D_ottedC_irc.glif
new file mode 100644
index 0000000..4cf5cb4
--- /dev/null
+++ b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/D_ottedC_irc.glif
@@ -0,0 +1,235 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DottedCirc" format="2">
+ <advance width="1106"/>
+ <unicode hex="25CC"/>
+ <anchor x="553" y="0" name="H"/>
+ <anchor x="553" y="-100" name="L"/>
+ <anchor x="810" y="0" name="O"/>
+ <anchor x="553" y="1000" name="U"/>
+ <outline>
+ <contour>
+ <point x="443" y="837" type="curve" smooth="yes"/>
+ <point x="443" y="864"/>
+ <point x="423" y="885"/>
+ <point x="398" y="885" type="curve" smooth="yes"/>
+ <point x="371" y="885"/>
+ <point x="348" y="861"/>
+ <point x="348" y="837" type="curve" smooth="yes"/>
+ <point x="348" y="809"/>
+ <point x="372" y="789"/>
+ <point x="398" y="789" type="curve" smooth="yes"/>
+ <point x="425" y="789"/>
+ <point x="443" y="812"/>
+ </contour>
+ <contour>
+ <point x="758" y="79" type="curve" smooth="yes"/>
+ <point x="758" y="106"/>
+ <point x="736" y="127"/>
+ <point x="710" y="127" type="curve" smooth="yes"/>
+ <point x="685" y="127"/>
+ <point x="662" y="103"/>
+ <point x="662" y="80" type="curve" smooth="yes"/>
+ <point x="662" y="52"/>
+ <point x="686" y="31"/>
+ <point x="710" y="31" type="curve" smooth="yes"/>
+ <point x="737" y="31"/>
+ <point x="758" y="55"/>
+ </contour>
+ <contour>
+ <point x="310" y="749" type="curve" smooth="yes"/>
+ <point x="310" y="775"/>
+ <point x="288" y="796"/>
+ <point x="263" y="796" type="curve" smooth="yes"/>
+ <point x="238" y="796"/>
+ <point x="215" y="774"/>
+ <point x="215" y="747" type="curve" smooth="yes"/>
+ <point x="215" y="722"/>
+ <point x="236" y="701"/>
+ <point x="263" y="701" type="curve" smooth="yes"/>
+ <point x="291" y="701"/>
+ <point x="310" y="720"/>
+ </contour>
+ <contour>
+ <point x="891" y="168" type="curve" smooth="yes"/>
+ <point x="891" y="197"/>
+ <point x="870" y="215"/>
+ <point x="843" y="215" type="curve" smooth="yes"/>
+ <point x="817" y="215"/>
+ <point x="795" y="194"/>
+ <point x="795" y="168" type="curve" smooth="yes"/>
+ <point x="795" y="143"/>
+ <point x="816" y="121"/>
+ <point x="843" y="121" type="curve" smooth="yes"/>
+ <point x="871" y="121"/>
+ <point x="891" y="143"/>
+ </contour>
+ <contour>
+ <point x="222" y="613" type="curve" smooth="yes"/>
+ <point x="222" y="640"/>
+ <point x="199" y="663"/>
+ <point x="173" y="663" type="curve" smooth="yes"/>
+ <point x="149" y="663"/>
+ <point x="126" y="642"/>
+ <point x="126" y="615" type="curve" smooth="yes"/>
+ <point x="126" y="591"/>
+ <point x="145" y="567"/>
+ <point x="173" y="567" type="curve" smooth="yes"/>
+ <point x="197" y="567"/>
+ <point x="222" y="587"/>
+ </contour>
+ <contour>
+ <point x="980" y="301" type="curve" smooth="yes"/>
+ <point x="980" y="327"/>
+ <point x="957" y="348"/>
+ <point x="932" y="348" type="curve" smooth="yes"/>
+ <point x="908" y="348"/>
+ <point x="884" y="332"/>
+ <point x="884" y="301" type="curve" smooth="yes"/>
+ <point x="884" y="277"/>
+ <point x="902" y="254"/>
+ <point x="932" y="254" type="curve" smooth="yes"/>
+ <point x="957" y="254"/>
+ <point x="980" y="274"/>
+ </contour>
+ <contour>
+ <point x="191" y="459" type="curve" smooth="yes"/>
+ <point x="191" y="484"/>
+ <point x="168" y="505"/>
+ <point x="143" y="505" type="curve" smooth="yes"/>
+ <point x="116" y="505"/>
+ <point x="95" y="484"/>
+ <point x="95" y="458" type="curve" smooth="yes"/>
+ <point x="95" y="433"/>
+ <point x="115" y="410"/>
+ <point x="143" y="410" type="curve" smooth="yes"/>
+ <point x="167" y="410"/>
+ <point x="191" y="432"/>
+ </contour>
+ <contour>
+ <point x="1011" y="458" type="curve" smooth="yes"/>
+ <point x="1011" y="484"/>
+ <point x="990" y="506"/>
+ <point x="964" y="506" type="curve" smooth="yes"/>
+ <point x="940" y="506"/>
+ <point x="915" y="484"/>
+ <point x="915" y="457" type="curve" smooth="yes"/>
+ <point x="915" y="433"/>
+ <point x="936" y="411"/>
+ <point x="964" y="411" type="curve" smooth="yes"/>
+ <point x="990" y="411"/>
+ <point x="1011" y="433"/>
+ </contour>
+ <contour>
+ <point x="222" y="302" type="curve" smooth="yes"/>
+ <point x="222" y="328"/>
+ <point x="200" y="348"/>
+ <point x="174" y="348" type="curve" smooth="yes"/>
+ <point x="147" y="348"/>
+ <point x="126" y="326"/>
+ <point x="126" y="302" type="curve" smooth="yes"/>
+ <point x="126" y="275"/>
+ <point x="149" y="253"/>
+ <point x="174" y="253" type="curve" smooth="yes"/>
+ <point x="201" y="253"/>
+ <point x="222" y="277"/>
+ </contour>
+ <contour>
+ <point x="980" y="615" type="curve" smooth="yes"/>
+ <point x="980" y="642"/>
+ <point x="955" y="663"/>
+ <point x="931" y="663" type="curve" smooth="yes"/>
+ <point x="904" y="663"/>
+ <point x="885" y="638"/>
+ <point x="885" y="614" type="curve" smooth="yes"/>
+ <point x="885" y="588"/>
+ <point x="907" y="567"/>
+ <point x="931" y="567" type="curve" smooth="yes"/>
+ <point x="959" y="567"/>
+ <point x="980" y="591"/>
+ </contour>
+ <contour>
+ <point x="310" y="168" type="curve" smooth="yes"/>
+ <point x="310" y="195"/>
+ <point x="291" y="215"/>
+ <point x="263" y="215" type="curve" smooth="yes"/>
+ <point x="238" y="215"/>
+ <point x="215" y="190"/>
+ <point x="215" y="168" type="curve" smooth="yes"/>
+ <point x="215" y="143"/>
+ <point x="238" y="120"/>
+ <point x="263" y="120" type="curve" smooth="yes"/>
+ <point x="289" y="120"/>
+ <point x="310" y="143"/>
+ </contour>
+ <contour>
+ <point x="890" y="748" type="curve" smooth="yes"/>
+ <point x="890" y="774"/>
+ <point x="870" y="796"/>
+ <point x="843" y="796" type="curve" smooth="yes"/>
+ <point x="815" y="796"/>
+ <point x="796" y="773"/>
+ <point x="796" y="748" type="curve" smooth="yes"/>
+ <point x="796" y="724"/>
+ <point x="817" y="700"/>
+ <point x="843" y="700" type="curve" smooth="yes"/>
+ <point x="869" y="700"/>
+ <point x="890" y="722"/>
+ </contour>
+ <contour>
+ <point x="444" y="78" type="curve" smooth="yes"/>
+ <point x="444" y="102"/>
+ <point x="423" y="126"/>
+ <point x="396" y="126" type="curve" smooth="yes"/>
+ <point x="370" y="126"/>
+ <point x="348" y="102"/>
+ <point x="348" y="78" type="curve" smooth="yes"/>
+ <point x="348" y="55"/>
+ <point x="370" y="31"/>
+ <point x="396" y="31" type="curve" smooth="yes"/>
+ <point x="420" y="31"/>
+ <point x="444" y="51"/>
+ </contour>
+ <contour>
+ <point x="758" y="836" type="curve" smooth="yes"/>
+ <point x="758" y="861"/>
+ <point x="737" y="885"/>
+ <point x="710" y="885" type="curve" smooth="yes"/>
+ <point x="684" y="885"/>
+ <point x="663" y="862"/>
+ <point x="663" y="838" type="curve" smooth="yes"/>
+ <point x="663" y="814"/>
+ <point x="683" y="789"/>
+ <point x="710" y="789" type="curve" smooth="yes"/>
+ <point x="734" y="789"/>
+ <point x="758" y="809"/>
+ </contour>
+ <contour>
+ <point x="601" y="47" type="curve" smooth="yes"/>
+ <point x="601" y="73"/>
+ <point x="579" y="95"/>
+ <point x="553" y="95" type="curve" smooth="yes"/>
+ <point x="527" y="95"/>
+ <point x="506" y="73"/>
+ <point x="506" y="47" type="curve" smooth="yes"/>
+ <point x="506" y="21"/>
+ <point x="527" y="0"/>
+ <point x="553" y="0" type="curve" smooth="yes"/>
+ <point x="579" y="0"/>
+ <point x="601" y="21"/>
+ </contour>
+ <contour>
+ <point x="601" y="868" type="curve" smooth="yes"/>
+ <point x="601" y="894"/>
+ <point x="579" y="916"/>
+ <point x="553" y="916" type="curve" smooth="yes"/>
+ <point x="527" y="916"/>
+ <point x="506" y="894"/>
+ <point x="506" y="868" type="curve" smooth="yes"/>
+ <point x="506" y="842"/>
+ <point x="527" y="821"/>
+ <point x="553" y="821" type="curve" smooth="yes"/>
+ <point x="579" y="821"/>
+ <point x="601" y="842"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/E_qS_gn.glif b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/E_qS_gn.glif
new file mode 100644
index 0000000..9eeb2ef
--- /dev/null
+++ b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/E_qS_gn.glif
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="EqSgn" format="2">
+ <advance width="1200"/>
+ <unicode hex="003D"/>
+ <outline>
+ <contour>
+ <point x="120" y="440" type="line"/>
+ <point x="1080" y="440" type="line"/>
+ <point x="1080" y="650" type="line"/>
+ <point x="120" y="650" type="line"/>
+ </contour>
+ <contour>
+ <point x="120" y="810" type="line"/>
+ <point x="1080" y="810" type="line"/>
+ <point x="1080" y="1020" type="line"/>
+ <point x="120" y="1020" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/E_xclamationM_rk.glif b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/E_xclamationM_rk.glif
new file mode 100644
index 0000000..cfdf1a6
--- /dev/null
+++ b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/E_xclamationM_rk.glif
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="ExclamationMrk" format="2">
+ <advance width="780"/>
+ <unicode hex="0021"/>
+ <outline>
+ <contour>
+ <point x="530" y="500" type="line"/>
+ <point x="536" y="790"/>
+ <point x="531" y="1076"/>
+ <point x="570" y="1510" type="curve"/>
+ <point x="235" y="1510" type="line"/>
+ <point x="273" y="1076"/>
+ <point x="268" y="790"/>
+ <point x="275" y="500" type="curve"/>
+ </contour>
+ <contour>
+ <point x="230" y="150" type="curve" smooth="yes"/>
+ <point x="230" y="46"/>
+ <point x="304" y="-25"/>
+ <point x="405" y="-25" type="curve" smooth="yes"/>
+ <point x="507" y="-25"/>
+ <point x="580" y="46"/>
+ <point x="580" y="150" type="curve" smooth="yes"/>
+ <point x="580" y="252"/>
+ <point x="507" y="325"/>
+ <point x="405" y="325" type="curve" smooth="yes"/>
+ <point x="304" y="325"/>
+ <point x="230" y="252"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/F_ullS_top.glif b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/F_ullS_top.glif
new file mode 100644
index 0000000..b05d598
--- /dev/null
+++ b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/F_ullS_top.glif
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="FullStop" format="2">
+ <advance width="710"/>
+ <unicode hex="002E"/>
+ <outline>
+ <contour>
+ <point x="200" y="150" type="curve" smooth="yes"/>
+ <point x="200" y="46"/>
+ <point x="274" y="-25"/>
+ <point x="375" y="-25" type="curve" smooth="yes"/>
+ <point x="477" y="-25"/>
+ <point x="550" y="46"/>
+ <point x="550" y="150" type="curve" smooth="yes"/>
+ <point x="550" y="252"/>
+ <point x="477" y="325"/>
+ <point x="375" y="325" type="curve" smooth="yes"/>
+ <point x="274" y="325"/>
+ <point x="200" y="252"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/G_T_S_gn.glif b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/G_T_S_gn.glif
new file mode 100644
index 0000000..650e4d2
--- /dev/null
+++ b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/G_T_S_gn.glif
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="GTSgn" format="2">
+ <advance width="1200"/>
+ <unicode hex="003E"/>
+ <outline>
+ <contour>
+ <point x="130" y="245" type="line"/>
+ <point x="1090" y="635" type="line"/>
+ <point x="1090" y="825" type="line"/>
+ <point x="130" y="1215" type="line"/>
+ <point x="130" y="985" type="line"/>
+ <point x="810" y="730" type="line"/>
+ <point x="130" y="475" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/G_raveA_ccent.glif b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/G_raveA_ccent.glif
new file mode 100644
index 0000000..83a5f21
--- /dev/null
+++ b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/G_raveA_ccent.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="GraveAccent" format="2">
+ <advance width="640"/>
+ <unicode hex="0060"/>
+ <anchor x="500" y="1635" name="U"/>
+ <outline>
+ <contour>
+ <point x="0" y="1600" type="line"/>
+ <point x="400" y="1200" type="line"/>
+ <point x="640" y="1200" type="line"/>
+ <point x="350" y="1600" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/H_yphen.glif b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/H_yphen.glif
new file mode 100644
index 0000000..d79c70a
--- /dev/null
+++ b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/H_yphen.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Hyphen" format="2">
+ <advance width="880"/>
+ <unicode hex="2010"/>
+ <anchor x="440" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="70" y="525" type="line"/>
+ <point x="810" y="525" type="line"/>
+ <point x="810" y="735" type="line"/>
+ <point x="70" y="735" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/H_yphenM_inus.glif b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/H_yphenM_inus.glif
new file mode 100644
index 0000000..b88bdd4
--- /dev/null
+++ b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/H_yphenM_inus.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="HyphenMinus" format="2">
+ <advance width="895"/>
+ <unicode hex="002D"/>
+ <anchor x="450" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="80" y="525" type="line"/>
+ <point x="815" y="525" type="line"/>
+ <point x="815" y="735" type="line"/>
+ <point x="80" y="735" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/H_yphen_S_oft.glif b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/H_yphen_S_oft.glif
new file mode 100644
index 0000000..916f8cf
--- /dev/null
+++ b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/H_yphen_S_oft.glif
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Hyphen_Soft" format="2">
+ <advance width="895"/>
+ <unicode hex="00AD"/>
+ <anchor x="450" y="1100" name="U"/>
+ <outline>
+ <component base="HyphenMinus"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_T_S_gn.glif b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_T_S_gn.glif
new file mode 100644
index 0000000..ab92cf3
--- /dev/null
+++ b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_T_S_gn.glif
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LTSgn" format="2">
+ <advance width="1200"/>
+ <unicode hex="003C"/>
+ <outline>
+ <contour>
+ <point x="1070" y="475" type="line"/>
+ <point x="390" y="730" type="line"/>
+ <point x="1070" y="985" type="line"/>
+ <point x="1070" y="1215" type="line"/>
+ <point x="110" y="825" type="line"/>
+ <point x="110" y="635" type="line"/>
+ <point x="1070" y="245" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_ftC_urlyB_rac.glif b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_ftC_urlyB_rac.glif
new file mode 100644
index 0000000..2370b56
--- /dev/null
+++ b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_ftC_urlyB_rac.glif
@@ -0,0 +1,47 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LftCurlyBrac" format="2">
+ <advance width="1040"/>
+ <unicode hex="007B"/>
+ <outline>
+ <contour>
+ <point x="895" y="-179" type="line"/>
+ <point x="828" y="-160"/>
+ <point x="704" y="-122"/>
+ <point x="685" y="-100" type="curve" smooth="yes"/>
+ <point x="650" y="-60"/>
+ <point x="663" y="411"/>
+ <point x="645" y="445" type="curve" smooth="yes"/>
+ <point x="621" y="491"/>
+ <point x="483" y="580"/>
+ <point x="483" y="615" type="curve" smooth="yes"/>
+ <point x="483" y="650"/>
+ <point x="620" y="740"/>
+ <point x="643" y="785" type="curve" smooth="yes"/>
+ <point x="661" y="820"/>
+ <point x="650" y="1289"/>
+ <point x="685" y="1330" type="curve" smooth="yes"/>
+ <point x="702" y="1351"/>
+ <point x="807" y="1390"/>
+ <point x="870" y="1409" type="curve"/>
+ <point x="820" y="1640" type="line"/>
+ <point x="692" y="1613"/>
+ <point x="502" y="1562"/>
+ <point x="455" y="1515" type="curve" smooth="yes"/>
+ <point x="381" y="1442"/>
+ <point x="392" y="852"/>
+ <point x="370" y="820" type="curve" smooth="yes"/>
+ <point x="340" y="777"/>
+ <point x="170" y="670"/>
+ <point x="170" y="615" type="curve" smooth="yes"/>
+ <point x="170" y="560"/>
+ <point x="340" y="453"/>
+ <point x="370" y="410" type="curve" smooth="yes"/>
+ <point x="392" y="378"/>
+ <point x="380" y="-213"/>
+ <point x="455" y="-285" type="curve" smooth="yes"/>
+ <point x="505" y="-333"/>
+ <point x="709" y="-383"/>
+ <point x="845" y="-410" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_ftP_aren.glif b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_ftP_aren.glif
new file mode 100644
index 0000000..99e1982
--- /dev/null
+++ b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_ftP_aren.glif
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LftParen" format="2">
+ <advance width="860"/>
+ <unicode hex="0028"/>
+ <outline>
+ <contour>
+ <point x="555" y="1640" type="line"/>
+ <point x="290" y="1444"/>
+ <point x="115" y="1062"/>
+ <point x="115" y="625" type="curve" smooth="yes"/>
+ <point x="115" y="218"/>
+ <point x="260" y="-125"/>
+ <point x="535" y="-410" type="curve"/>
+ <point x="686" y="-240" type="line"/>
+ <point x="462" y="11"/>
+ <point x="376" y="335"/>
+ <point x="376" y="635" type="curve" smooth="yes"/>
+ <point x="376" y="938"/>
+ <point x="466" y="1261"/>
+ <point x="676" y="1455" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_ftS_qrB_rac.glif b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_ftS_qrB_rac.glif
new file mode 100644
index 0000000..dcf019b
--- /dev/null
+++ b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_ftS_qrB_rac.glif
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LftSqrBrac" format="2">
+ <advance width="850"/>
+ <unicode hex="005B"/>
+ <outline>
+ <contour>
+ <point x="710" y="-410" type="line"/>
+ <point x="710" y="-200" type="line"/>
+ <point x="470" y="-200" type="line"/>
+ <point x="470" y="1390" type="line"/>
+ <point x="710" y="1390" type="line"/>
+ <point x="710" y="1600" type="line"/>
+ <point x="190" y="1600" type="line"/>
+ <point x="190" y="-410" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_owL_ine.glif b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_owL_ine.glif
new file mode 100644
index 0000000..225c4ce
--- /dev/null
+++ b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_owL_ine.glif
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LowLine" format="2">
+ <advance width="1274"/>
+ <unicode hex="005F"/>
+ <outline>
+ <contour>
+ <point x="0" y="-350" type="line"/>
+ <point x="1274" y="-350" type="line"/>
+ <point x="1274" y="-140" type="line"/>
+ <point x="0" y="-140" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnC_apA_.alt.glif b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnC_apA_.alt.glif
new file mode 100644
index 0000000..cf1b900
--- /dev/null
+++ b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnC_apA_.alt.glif
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapA.alt" format="2">
+ <advance width="1485"/>
+ <anchor x="1275" y="0" name="H"/>
+ <anchor x="732" y="-100" name="L"/>
+ <anchor x="1495" y="0" name="O"/>
+ <anchor x="732" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1115" y="0" type="line"/>
+ <point x="1408" y="0" type="line"/>
+ <point x="1373" y="80"/>
+ <point x="1341" y="168"/>
+ <point x="1278" y="355" type="curve" smooth="yes"/>
+ <point x="908" y="1460" type="line"/>
+ <point x="552" y="1460" type="line"/>
+ <point x="182" y="355" type="line" smooth="yes"/>
+ <point x="119" y="166"/>
+ <point x="88" y="81"/>
+ <point x="52" y="0" type="curve"/>
+ <point x="350" y="0" type="line"/>
+ <point x="460" y="355" type="line"/>
+ <point x="1004" y="355" type="line"/>
+ </contour>
+ <contour>
+ <point x="730" y="1228" type="line"/>
+ <point x="936" y="570" type="line"/>
+ <point x="526" y="570" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnC_apA_.glif b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnC_apA_.glif
new file mode 100644
index 0000000..9fa1f45
--- /dev/null
+++ b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnC_apA_.glif
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapA" format="2">
+ <advance width="1485"/>
+ <unicode hex="0041"/>
+ <anchor x="1275" y="0" name="H"/>
+ <anchor x="732" y="-100" name="L"/>
+ <anchor x="1495" y="0" name="O"/>
+ <anchor x="732" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1115" y="0" type="line"/>
+ <point x="1408" y="0" type="line"/>
+ <point x="1373" y="80"/>
+ <point x="1341" y="168"/>
+ <point x="1278" y="355" type="curve" smooth="yes"/>
+ <point x="908" y="1460" type="line"/>
+ <point x="552" y="1460" type="line"/>
+ <point x="182" y="355" type="line" smooth="yes"/>
+ <point x="119" y="166"/>
+ <point x="88" y="81"/>
+ <point x="52" y="0" type="curve"/>
+ <point x="350" y="0" type="line"/>
+ <point x="460" y="355" type="line"/>
+ <point x="1004" y="355" type="line"/>
+ </contour>
+ <contour>
+ <point x="730" y="1228" type="line"/>
+ <point x="936" y="570" type="line"/>
+ <point x="526" y="570" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnC_apA_D_iaer.glif b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnC_apA_D_iaer.glif
new file mode 100644
index 0000000..79101d0
--- /dev/null
+++ b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnC_apA_D_iaer.glif
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapADiaer" format="2">
+ <advance width="1485"/>
+ <unicode hex="00C4"/>
+ <anchor x="1275" y="0" name="H"/>
+ <anchor x="732" y="-100" name="L"/>
+ <anchor x="1495" y="0" name="O"/>
+ <anchor x="732" y="2015" name="U"/>
+ <outline>
+ <component base="LtnCapA"/>
+ <component base="CombDiaer" xOffset="1312" yOffset="430"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnC_apB_.glif b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnC_apB_.glif
new file mode 100644
index 0000000..df49e47
--- /dev/null
+++ b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnC_apB_.glif
@@ -0,0 +1,62 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapB" format="2">
+ <advance width="1385"/>
+ <unicode hex="0042"/>
+ <anchor x="670" y="-100" name="L"/>
+ <anchor x="670" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="450" y="1248" type="line"/>
+ <point x="487" y="1250"/>
+ <point x="562" y="1253"/>
+ <point x="631" y="1253" type="curve" smooth="yes"/>
+ <point x="818" y="1253"/>
+ <point x="897" y="1196"/>
+ <point x="897" y="1077" type="curve" smooth="yes"/>
+ <point x="897" y="951"/>
+ <point x="794" y="875"/>
+ <point x="605" y="875" type="curve" smooth="yes"/>
+ <point x="450" y="875" type="line"/>
+ </contour>
+ <contour>
+ <point x="1245" y="430" type="curve" smooth="yes"/>
+ <point x="1245" y="672"/>
+ <point x="1084" y="760"/>
+ <point x="935" y="800" type="curve"/>
+ <point x="1065" y="850"/>
+ <point x="1170" y="947"/>
+ <point x="1170" y="1110" type="curve" smooth="yes"/>
+ <point x="1170" y="1378"/>
+ <point x="937" y="1470"/>
+ <point x="615" y="1470" type="curve" smooth="yes"/>
+ <point x="422" y="1470"/>
+ <point x="248" y="1466"/>
+ <point x="150" y="1460" type="curve"/>
+ <point x="165" y="1380"/>
+ <point x="165" y="1196"/>
+ <point x="165" y="1000" type="curve" smooth="yes"/>
+ <point x="165" y="455" type="line" smooth="yes"/>
+ <point x="165" y="257"/>
+ <point x="165" y="80"/>
+ <point x="150" y="0" type="curve"/>
+ <point x="150" y="0"/>
+ <point x="401" y="-10"/>
+ <point x="631" y="-10" type="curve" smooth="yes"/>
+ <point x="1055" y="-10"/>
+ <point x="1245" y="181"/>
+ </contour>
+ <contour>
+ <point x="450" y="658" type="line"/>
+ <point x="643" y="658" type="line" smooth="yes"/>
+ <point x="853" y="658"/>
+ <point x="972" y="587"/>
+ <point x="972" y="450" type="curve" smooth="yes"/>
+ <point x="972" y="269"/>
+ <point x="826" y="215"/>
+ <point x="652" y="215" type="curve" smooth="yes"/>
+ <point x="552" y="215"/>
+ <point x="483" y="218"/>
+ <point x="450" y="220" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnC_apC_.glif b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnC_apC_.glif
new file mode 100644
index 0000000..78c5238
--- /dev/null
+++ b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnC_apC_.glif
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapC" format="2">
+ <advance width="1385"/>
+ <unicode hex="0043"/>
+ <anchor x="745" y="0" name="H"/>
+ <anchor x="745" y="-100" name="L"/>
+ <anchor x="745" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1215" y="405" type="line"/>
+ <point x="1105" y="293"/>
+ <point x="940" y="220"/>
+ <point x="790" y="220" type="curve" smooth="yes"/>
+ <point x="531" y="220"/>
+ <point x="375" y="413"/>
+ <point x="375" y="735" type="curve" smooth="yes"/>
+ <point x="375" y="1074"/>
+ <point x="557" y="1245"/>
+ <point x="800" y="1245" type="curve" smooth="yes"/>
+ <point x="931" y="1245"/>
+ <point x="1053" y="1205"/>
+ <point x="1180" y="1105" type="curve"/>
+ <point x="1250" y="1345" type="line"/>
+ <point x="1106" y="1449"/>
+ <point x="969" y="1485"/>
+ <point x="785" y="1485" type="curve" smooth="yes"/>
+ <point x="413" y="1485"/>
+ <point x="90" y="1225"/>
+ <point x="90" y="710" type="curve" smooth="yes"/>
+ <point x="90" y="260"/>
+ <point x="341" y="-25"/>
+ <point x="755" y="-25" type="curve" smooth="yes"/>
+ <point x="926" y="-25"/>
+ <point x="1142" y="42"/>
+ <point x="1265" y="140" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnC_apD_.glif b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnC_apD_.glif
new file mode 100644
index 0000000..4dd3b9c
--- /dev/null
+++ b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnC_apD_.glif
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapD" format="2">
+ <advance width="1485"/>
+ <unicode hex="0044"/>
+ <anchor x="800" y="-100" name="L"/>
+ <anchor x="800" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="165" y="455" type="line"/>
+ <point x="164" y="257"/>
+ <point x="165" y="80"/>
+ <point x="150" y="0" type="curve"/>
+ <point x="150" y="0"/>
+ <point x="474" y="-10"/>
+ <point x="609" y="-10" type="curve" smooth="yes"/>
+ <point x="919" y="-10"/>
+ <point x="1370" y="145"/>
+ <point x="1370" y="740" type="curve" smooth="yes"/>
+ <point x="1370" y="1374"/>
+ <point x="906" y="1470"/>
+ <point x="630" y="1470" type="curve" smooth="yes"/>
+ <point x="487" y="1470"/>
+ <point x="239" y="1466"/>
+ <point x="150" y="1460" type="curve"/>
+ <point x="165" y="1380"/>
+ <point x="165" y="1196"/>
+ <point x="165" y="1000" type="curve" smooth="yes"/>
+ </contour>
+ <contour>
+ <point x="450" y="1241" type="line"/>
+ <point x="492" y="1243"/>
+ <point x="582" y="1246"/>
+ <point x="637" y="1246" type="curve" smooth="yes"/>
+ <point x="897" y="1246"/>
+ <point x="1078" y="1118"/>
+ <point x="1078" y="720" type="curve" smooth="yes"/>
+ <point x="1078" y="357"/>
+ <point x="856" y="221"/>
+ <point x="633" y="221" type="curve" smooth="yes"/>
+ <point x="554" y="221"/>
+ <point x="489" y="227"/>
+ <point x="450" y="231" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnC_apE_.glif b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnC_apE_.glif
new file mode 100644
index 0000000..9572dfd
--- /dev/null
+++ b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnC_apE_.glif
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapE" format="2">
+ <advance width="1212"/>
+ <unicode hex="0045"/>
+ <anchor x="610" y="0" name="H"/>
+ <anchor x="610" y="-100" name="L"/>
+ <anchor x="1004" y="0" name="O"/>
+ <anchor x="1247" y="1200" name="R"/>
+ <anchor x="610" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="450" y="875" type="line"/>
+ <point x="450" y="1230" type="line"/>
+ <point x="1072" y="1230" type="line"/>
+ <point x="1072" y="1460" type="line"/>
+ <point x="150" y="1460" type="line"/>
+ <point x="165" y="1380"/>
+ <point x="165" y="1222"/>
+ <point x="165" y="1025" type="curve" smooth="yes"/>
+ <point x="165" y="435" type="line" smooth="yes"/>
+ <point x="165" y="238"/>
+ <point x="165" y="80"/>
+ <point x="150" y="0" type="curve"/>
+ <point x="1102" y="0" type="line"/>
+ <point x="1102" y="245" type="line"/>
+ <point x="1024" y="231"/>
+ <point x="899" y="230"/>
+ <point x="708" y="230" type="curve" smooth="yes"/>
+ <point x="450" y="230" type="line"/>
+ <point x="450" y="650" type="line"/>
+ <point x="997" y="650" type="line"/>
+ <point x="997" y="875" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnC_apF_.glif b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnC_apF_.glif
new file mode 100644
index 0000000..9f4f14b
--- /dev/null
+++ b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnC_apF_.glif
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapF" format="2">
+ <advance width="1200"/>
+ <unicode hex="0046"/>
+ <anchor x="630" y="-100" name="L"/>
+ <anchor x="630" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="450" y="860" type="line"/>
+ <point x="450" y="1230" type="line"/>
+ <point x="1090" y="1230" type="line"/>
+ <point x="1090" y="1460" type="line"/>
+ <point x="150" y="1460" type="line"/>
+ <point x="165" y="1380"/>
+ <point x="165" y="1217"/>
+ <point x="165" y="1020" type="curve" smooth="yes"/>
+ <point x="165" y="435" type="line" smooth="yes"/>
+ <point x="165" y="238"/>
+ <point x="165" y="80"/>
+ <point x="150" y="0" type="curve"/>
+ <point x="465" y="0" type="line"/>
+ <point x="450" y="73"/>
+ <point x="450" y="222"/>
+ <point x="450" y="408" type="curve" smooth="yes"/>
+ <point x="450" y="635" type="line"/>
+ <point x="1005" y="635" type="line"/>
+ <point x="1005" y="860" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnC_apG_.glif b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnC_apG_.glif
new file mode 100644
index 0000000..8358b8a
--- /dev/null
+++ b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnC_apG_.glif
@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapG" format="2">
+ <advance width="1472"/>
+ <unicode hex="0047"/>
+ <anchor x="807" y="0" name="H"/>
+ <anchor x="807" y="-100" name="L"/>
+ <anchor x="807" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1337" y="785" type="line"/>
+ <point x="767" y="785" type="line"/>
+ <point x="767" y="560" type="line"/>
+ <point x="1082" y="560" type="line"/>
+ <point x="1082" y="294" type="line"/>
+ <point x="966" y="236"/>
+ <point x="883" y="220"/>
+ <point x="769" y="220" type="curve" smooth="yes"/>
+ <point x="532" y="220"/>
+ <point x="375" y="420"/>
+ <point x="375" y="745" type="curve" smooth="yes"/>
+ <point x="375" y="1048"/>
+ <point x="545" y="1245"/>
+ <point x="810" y="1245" type="curve" smooth="yes"/>
+ <point x="953" y="1245"/>
+ <point x="1097" y="1205"/>
+ <point x="1236" y="1107" type="curve"/>
+ <point x="1322" y="1345" type="line"/>
+ <point x="1137" y="1462"/>
+ <point x="989" y="1485"/>
+ <point x="818" y="1485" type="curve" smooth="yes"/>
+ <point x="403" y="1485"/>
+ <point x="90" y="1199"/>
+ <point x="90" y="720" type="curve" smooth="yes"/>
+ <point x="90" y="241"/>
+ <point x="377" y="-25"/>
+ <point x="777" y="-25" type="curve" smooth="yes"/>
+ <point x="960" y="-25"/>
+ <point x="1120" y="11"/>
+ <point x="1337" y="155" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnC_apH_.glif b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnC_apH_.glif
new file mode 100644
index 0000000..2e2e5e6
--- /dev/null
+++ b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnC_apH_.glif
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapH" format="2">
+ <advance width="1515"/>
+ <unicode hex="0048"/>
+ <anchor x="305" y="0" name="H"/>
+ <anchor x="745" y="-100" name="L"/>
+ <anchor x="745" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1040" y="1460" type="line"/>
+ <point x="1040" y="860" type="line"/>
+ <point x="450" y="860" type="line"/>
+ <point x="450" y="1460" type="line"/>
+ <point x="150" y="1460" type="line"/>
+ <point x="165" y="1380"/>
+ <point x="165" y="1227"/>
+ <point x="165" y="1030" type="curve" smooth="yes"/>
+ <point x="165" y="430" type="line" smooth="yes"/>
+ <point x="165" y="233"/>
+ <point x="165" y="80"/>
+ <point x="150" y="0" type="curve"/>
+ <point x="150" y="0"/>
+ <point x="450" y="0"/>
+ <point x="450" y="0" type="curve"/>
+ <point x="450" y="635" type="line"/>
+ <point x="1040" y="635" type="line"/>
+ <point x="1040" y="0" type="line"/>
+ <point x="1040" y="0"/>
+ <point x="1340" y="0"/>
+ <point x="1340" y="0" type="curve"/>
+ <point x="1325" y="80"/>
+ <point x="1325" y="233"/>
+ <point x="1325" y="430" type="curve" smooth="yes"/>
+ <point x="1325" y="1030" type="line" smooth="yes"/>
+ <point x="1325" y="1227"/>
+ <point x="1325" y="1380"/>
+ <point x="1340" y="1460" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnC_apI_.glif b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnC_apI_.glif
new file mode 100644
index 0000000..388486b
--- /dev/null
+++ b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnC_apI_.glif
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapI" format="2">
+ <advance width="1045"/>
+ <unicode hex="0049"/>
+ <anchor x="520" y="0" name="H"/>
+ <anchor x="516" y="-100" name="L"/>
+ <anchor x="712" y="0" name="O"/>
+ <anchor x="1014" y="1200" name="R"/>
+ <anchor x="520" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="130" y="1460" type="line"/>
+ <point x="130" y="1255" type="line"/>
+ <point x="370" y="1255" type="line"/>
+ <point x="370" y="205" type="line"/>
+ <point x="130" y="205" type="line"/>
+ <point x="130" y="0" type="line"/>
+ <point x="895" y="0" type="line"/>
+ <point x="895" y="205" type="line"/>
+ <point x="655" y="205" type="line"/>
+ <point x="655" y="1255" type="line"/>
+ <point x="895" y="1255" type="line"/>
+ <point x="895" y="1460" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnC_apJ_.glif b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnC_apJ_.glif
new file mode 100644
index 0000000..8ee9ce3
--- /dev/null
+++ b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnC_apJ_.glif
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapJ" format="2">
+ <advance width="1030"/>
+ <unicode hex="004A"/>
+ <anchor x="415" y="-100" name="L"/>
+ <anchor x="705" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="555" y="1460" type="line"/>
+ <point x="568" y="1354"/>
+ <point x="570" y="1175"/>
+ <point x="570" y="980" type="curve" smooth="yes"/>
+ <point x="570" y="558" type="line" smooth="yes"/>
+ <point x="570" y="383"/>
+ <point x="540" y="227"/>
+ <point x="365" y="227" type="curve" smooth="yes"/>
+ <point x="264" y="227"/>
+ <point x="153" y="270"/>
+ <point x="79" y="347" type="curve"/>
+ <point x="30" y="90" type="line"/>
+ <point x="109" y="9"/>
+ <point x="258" y="-25"/>
+ <point x="363" y="-25" type="curve" smooth="yes"/>
+ <point x="658" y="-25"/>
+ <point x="855" y="129"/>
+ <point x="855" y="535" type="curve" smooth="yes"/>
+ <point x="855" y="618"/>
+ <point x="855" y="1460"/>
+ <point x="855" y="1460" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnC_apK_.glif b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnC_apK_.glif
new file mode 100644
index 0000000..abb6ff7
--- /dev/null
+++ b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnC_apK_.glif
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapK" format="2">
+ <advance width="1430"/>
+ <unicode hex="004B"/>
+ <anchor x="320" y="0" name="H"/>
+ <anchor x="740" y="-100" name="L"/>
+ <anchor x="725" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="944" y="1460" type="line"/>
+ <point x="371" y="732" type="line"/>
+ <point x="579" y="676" type="line"/>
+ <point x="1280" y="1460" type="line"/>
+ </contour>
+ <contour>
+ <point x="389" y="731" type="line"/>
+ <point x="990" y="0" type="line"/>
+ <point x="1360" y="0" type="line"/>
+ <point x="614" y="829" type="line"/>
+ </contour>
+ <contour>
+ <point x="450" y="1460" type="line"/>
+ <point x="150" y="1460" type="line"/>
+ <point x="165" y="1380"/>
+ <point x="165" y="1222"/>
+ <point x="165" y="1025" type="curve" smooth="yes"/>
+ <point x="165" y="435" type="line" smooth="yes"/>
+ <point x="165" y="238"/>
+ <point x="165" y="80"/>
+ <point x="150" y="0" type="curve"/>
+ <point x="450" y="0" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnC_apL_.glif b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnC_apL_.glif
new file mode 100644
index 0000000..e1c1e2e
--- /dev/null
+++ b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnC_apL_.glif
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapL" format="2">
+ <advance width="1130"/>
+ <unicode hex="004C"/>
+ <anchor x="620" y="0" name="H"/>
+ <anchor x="620" y="-100" name="L"/>
+ <anchor x="650" y="1200" name="R"/>
+ <anchor x="620" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="450" y="230" type="line"/>
+ <point x="450" y="1460" type="line"/>
+ <point x="150" y="1460" type="line"/>
+ <point x="165" y="1380"/>
+ <point x="165" y="1222"/>
+ <point x="165" y="1025" type="curve" smooth="yes"/>
+ <point x="165" y="435" type="line" smooth="yes"/>
+ <point x="165" y="238"/>
+ <point x="165" y="80"/>
+ <point x="150" y="0" type="curve"/>
+ <point x="1085" y="0" type="line"/>
+ <point x="1085" y="245" type="line"/>
+ <point x="1008" y="231"/>
+ <point x="855" y="230"/>
+ <point x="666" y="230" type="curve" smooth="yes"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnC_apM_.glif b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnC_apM_.glif
new file mode 100644
index 0000000..8da241e
--- /dev/null
+++ b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnC_apM_.glif
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapM" format="2">
+ <advance width="1855"/>
+ <unicode hex="004D"/>
+ <anchor x="915" y="-100" name="L"/>
+ <anchor x="915" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="917" y="275" type="line"/>
+ <point x="575" y="1460" type="line"/>
+ <point x="315" y="1460" type="line"/>
+ <point x="436" y="1170" type="line"/>
+ <point x="770" y="0" type="line"/>
+ <point x="1065" y="0" type="line"/>
+ <point x="1397" y="1170" type="line"/>
+ <point x="1517" y="1460" type="line"/>
+ <point x="1260" y="1460" type="line"/>
+ </contour>
+ <contour>
+ <point x="220" y="1460" type="line"/>
+ <point x="220" y="1460"/>
+ <point x="176" y="198"/>
+ <point x="150" y="0" type="curve"/>
+ <point x="420" y="0" type="line"/>
+ <point x="449" y="1205" type="line"/>
+ <point x="485" y="1460" type="line"/>
+ </contour>
+ <contour>
+ <point x="1680" y="0" type="line"/>
+ <point x="1651" y="198"/>
+ <point x="1610" y="1460"/>
+ <point x="1610" y="1460" type="curve"/>
+ <point x="1340" y="1460" type="line"/>
+ <point x="1385" y="1205" type="line"/>
+ <point x="1410" y="0" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnC_apN_.glif b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnC_apN_.glif
new file mode 100644
index 0000000..aa2b5c4
--- /dev/null
+++ b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnC_apN_.glif
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapN" format="2">
+ <advance width="1545"/>
+ <unicode hex="004E"/>
+ <anchor x="1240" y="0" name="H"/>
+ <anchor x="765" y="-100" name="L"/>
+ <anchor x="765" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="223" y="1310" type="line"/>
+ <point x="1095" y="0" type="line"/>
+ <point x="1297" y="150" type="line"/>
+ <point x="425" y="1460" type="line"/>
+ </contour>
+ <contour>
+ <point x="1095" y="0" type="line"/>
+ <point x="1355" y="0" type="line"/>
+ <point x="1355" y="1025" type="line" smooth="yes"/>
+ <point x="1355" y="1222"/>
+ <point x="1356" y="1380"/>
+ <point x="1370" y="1460" type="curve"/>
+ <point x="1095" y="1460" type="line"/>
+ </contour>
+ <contour>
+ <point x="425" y="1460" type="line"/>
+ <point x="150" y="1460" type="line"/>
+ <point x="165" y="1380"/>
+ <point x="165" y="1222"/>
+ <point x="165" y="1025" type="curve" smooth="yes"/>
+ <point x="165" y="435" type="line" smooth="yes"/>
+ <point x="165" y="238"/>
+ <point x="165" y="80"/>
+ <point x="150" y="0" type="curve"/>
+ <point x="425" y="0" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnC_apO_.glif b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnC_apO_.glif
new file mode 100644
index 0000000..10479ad
--- /dev/null
+++ b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnC_apO_.glif
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapO" format="2">
+ <advance width="1500"/>
+ <unicode hex="004F"/>
+ <anchor x="740" y="0" name="H"/>
+ <anchor x="740" y="-100" name="L"/>
+ <anchor x="976" y="0" name="O"/>
+ <anchor x="1480" y="1200" name="R"/>
+ <anchor x="740" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1100" y="715" type="curve" smooth="yes"/>
+ <point x="1100" y="404"/>
+ <point x="940" y="220"/>
+ <point x="740" y="220" type="curve" smooth="yes"/>
+ <point x="524" y="220"/>
+ <point x="375" y="423"/>
+ <point x="375" y="745" type="curve" smooth="yes"/>
+ <point x="375" y="1048"/>
+ <point x="529" y="1240"/>
+ <point x="740" y="1240" type="curve" smooth="yes"/>
+ <point x="951" y="1240"/>
+ <point x="1100" y="1041"/>
+ </contour>
+ <contour>
+ <point x="1385" y="740" type="curve" smooth="yes"/>
+ <point x="1385" y="1219"/>
+ <point x="1091" y="1485"/>
+ <point x="750" y="1485" type="curve" smooth="yes"/>
+ <point x="404" y="1485"/>
+ <point x="90" y="1199"/>
+ <point x="90" y="720" type="curve" smooth="yes"/>
+ <point x="90" y="241"/>
+ <point x="385" y="-25"/>
+ <point x="730" y="-25" type="curve" smooth="yes"/>
+ <point x="1072" y="-25"/>
+ <point x="1385" y="260"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnC_apP_.glif b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnC_apP_.glif
new file mode 100644
index 0000000..18e9ee0
--- /dev/null
+++ b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnC_apP_.glif
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapP" format="2">
+ <advance width="1275"/>
+ <unicode hex="0050"/>
+ <anchor x="685" y="-100" name="L"/>
+ <anchor x="685" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="450" y="523" type="line"/>
+ <point x="515" y="516"/>
+ <point x="575" y="513"/>
+ <point x="648" y="513" type="curve" smooth="yes"/>
+ <point x="977" y="513"/>
+ <point x="1200" y="702"/>
+ <point x="1200" y="1010" type="curve" smooth="yes"/>
+ <point x="1200" y="1316"/>
+ <point x="981" y="1470"/>
+ <point x="658" y="1470" type="curve" smooth="yes"/>
+ <point x="445" y="1470"/>
+ <point x="150" y="1460"/>
+ <point x="150" y="1460" type="curve"/>
+ <point x="165" y="1380"/>
+ <point x="165" y="1196"/>
+ <point x="165" y="1000" type="curve" smooth="yes"/>
+ <point x="165" y="435" type="line" smooth="yes"/>
+ <point x="165" y="238"/>
+ <point x="165" y="80"/>
+ <point x="150" y="0" type="curve"/>
+ <point x="465" y="0" type="line"/>
+ <point x="451" y="78"/>
+ <point x="450" y="237"/>
+ <point x="450" y="435" type="curve" smooth="yes"/>
+ </contour>
+ <contour>
+ <point x="450" y="1240" type="line"/>
+ <point x="506" y="1243"/>
+ <point x="544" y="1245"/>
+ <point x="622" y="1245" type="curve" smooth="yes"/>
+ <point x="833" y="1245"/>
+ <point x="915" y="1145"/>
+ <point x="915" y="1000" type="curve" smooth="yes"/>
+ <point x="915" y="820"/>
+ <point x="811" y="730"/>
+ <point x="618" y="730" type="curve" smooth="yes"/>
+ <point x="556" y="730"/>
+ <point x="493" y="733"/>
+ <point x="450" y="740" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnC_apQ_.glif b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnC_apQ_.glif
new file mode 100644
index 0000000..433087c
--- /dev/null
+++ b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnC_apQ_.glif
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapQ" format="2">
+ <advance width="1545"/>
+ <unicode hex="0051"/>
+ <anchor x="747" y="-270" name="L"/>
+ <anchor x="747" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1385" y="740" type="curve" smooth="yes"/>
+ <point x="1385" y="1219"/>
+ <point x="1091" y="1485"/>
+ <point x="750" y="1485" type="curve" smooth="yes"/>
+ <point x="404" y="1485"/>
+ <point x="90" y="1199"/>
+ <point x="90" y="720" type="curve" smooth="yes"/>
+ <point x="90" y="241"/>
+ <point x="385" y="-25"/>
+ <point x="730" y="-25" type="curve" smooth="yes"/>
+ <point x="807" y="-25"/>
+ <point x="840" y="-23"/>
+ <point x="889" y="-15" type="curve"/>
+ <point x="958" y="-15"/>
+ <point x="1266" y="-228"/>
+ <point x="1350" y="-228" type="curve" smooth="yes"/>
+ <point x="1424" y="-228"/>
+ <point x="1502" y="-68"/>
+ <point x="1535" y="-15" type="curve"/>
+ <point x="1394" y="1"/>
+ <point x="1277" y="68"/>
+ <point x="1146" y="142" type="curve"/>
+ <point x="1294" y="283"/>
+ <point x="1385" y="471"/>
+ </contour>
+ <contour>
+ <point x="1100" y="715" type="curve" smooth="yes"/>
+ <point x="1100" y="404"/>
+ <point x="943" y="220"/>
+ <point x="740" y="220" type="curve" smooth="yes"/>
+ <point x="524" y="220"/>
+ <point x="375" y="423"/>
+ <point x="375" y="745" type="curve" smooth="yes"/>
+ <point x="375" y="1048"/>
+ <point x="529" y="1240"/>
+ <point x="740" y="1240" type="curve" smooth="yes"/>
+ <point x="951" y="1240"/>
+ <point x="1100" y="1041"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnC_apR_.glif b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnC_apR_.glif
new file mode 100644
index 0000000..6103056
--- /dev/null
+++ b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnC_apR_.glif
@@ -0,0 +1,55 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapR" format="2">
+ <advance width="1380"/>
+ <unicode hex="0052"/>
+ <anchor x="690" y="0" name="H"/>
+ <anchor x="690" y="-100" name="L"/>
+ <anchor x="660" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="450" y="585" type="line"/>
+ <point x="625" y="585" type="line" smooth="yes"/>
+ <point x="910" y="585"/>
+ <point x="1175" y="723"/>
+ <point x="1175" y="1040" type="curve" smooth="yes"/>
+ <point x="1175" y="1329"/>
+ <point x="961" y="1470"/>
+ <point x="650" y="1470" type="curve" smooth="yes"/>
+ <point x="416" y="1470"/>
+ <point x="150" y="1460"/>
+ <point x="150" y="1460" type="curve"/>
+ <point x="165" y="1380"/>
+ <point x="165" y="1196"/>
+ <point x="165" y="1000" type="curve" smooth="yes"/>
+ <point x="165" y="435" type="line" smooth="yes"/>
+ <point x="165" y="238"/>
+ <point x="165" y="80"/>
+ <point x="150" y="0" type="curve"/>
+ <point x="465" y="0" type="line"/>
+ <point x="451" y="78"/>
+ <point x="450" y="238"/>
+ <point x="450" y="435" type="curve" smooth="yes"/>
+ </contour>
+ <contour>
+ <point x="450" y="1240" type="line"/>
+ <point x="503" y="1243"/>
+ <point x="537" y="1245"/>
+ <point x="615" y="1245" type="curve" smooth="yes"/>
+ <point x="792" y="1245"/>
+ <point x="890" y="1186"/>
+ <point x="890" y="1035" type="curve" smooth="yes"/>
+ <point x="890" y="859"/>
+ <point x="780" y="800"/>
+ <point x="605" y="800" type="curve" smooth="yes"/>
+ <point x="450" y="800" type="line"/>
+ </contour>
+ <contour>
+ <point x="556" y="635" type="line"/>
+ <point x="975" y="0" type="line"/>
+ <point x="1330" y="0" type="line"/>
+ <point x="1263" y="73"/>
+ <point x="827" y="687"/>
+ <point x="827" y="687" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnC_apS_.glif b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnC_apS_.glif
new file mode 100644
index 0000000..486ff77
--- /dev/null
+++ b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnC_apS_.glif
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapS" format="2">
+ <advance width="1243"/>
+ <unicode hex="0053"/>
+ <anchor x="616" y="0" name="H"/>
+ <anchor x="616" y="-100" name="L"/>
+ <anchor x="616" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1075" y="1395" type="line"/>
+ <point x="932" y="1458"/>
+ <point x="810" y="1485"/>
+ <point x="640" y="1485" type="curve" smooth="yes"/>
+ <point x="280" y="1485"/>
+ <point x="130" y="1239"/>
+ <point x="130" y="1060" type="curve" smooth="yes"/>
+ <point x="130" y="882"/>
+ <point x="196" y="754"/>
+ <point x="510" y="655" type="curve" smooth="yes"/>
+ <point x="800" y="563"/>
+ <point x="851" y="504"/>
+ <point x="851" y="420" type="curve" smooth="yes"/>
+ <point x="851" y="293"/>
+ <point x="730" y="220"/>
+ <point x="600" y="220" type="curve" smooth="yes"/>
+ <point x="439" y="220"/>
+ <point x="283" y="270"/>
+ <point x="140" y="385" type="curve"/>
+ <point x="90" y="110" type="line"/>
+ <point x="201" y="31"/>
+ <point x="391" y="-25"/>
+ <point x="600" y="-25" type="curve" smooth="yes"/>
+ <point x="895" y="-25"/>
+ <point x="1138" y="169"/>
+ <point x="1138" y="455" type="curve" smooth="yes"/>
+ <point x="1138" y="666"/>
+ <point x="994" y="787"/>
+ <point x="727" y="870" type="curve" smooth="yes"/>
+ <point x="464" y="952"/>
+ <point x="416" y="994"/>
+ <point x="416" y="1080" type="curve" smooth="yes"/>
+ <point x="416" y="1162"/>
+ <point x="506" y="1245"/>
+ <point x="630" y="1245" type="curve" smooth="yes"/>
+ <point x="771" y="1245"/>
+ <point x="873" y="1209"/>
+ <point x="1030" y="1130" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnC_apT_.glif b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnC_apT_.glif
new file mode 100644
index 0000000..5f87c10
--- /dev/null
+++ b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnC_apT_.glif
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapT" format="2">
+ <advance width="1275"/>
+ <unicode hex="0054"/>
+ <anchor x="632" y="0" name="H"/>
+ <anchor x="632" y="-100" name="L"/>
+ <anchor x="632" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="45" y="1460" type="line"/>
+ <point x="45" y="1210" type="line"/>
+ <point x="117" y="1227"/>
+ <point x="196" y="1230"/>
+ <point x="276" y="1230" type="curve" smooth="yes"/>
+ <point x="488" y="1230" type="line"/>
+ <point x="488" y="413" type="line" smooth="yes"/>
+ <point x="488" y="226"/>
+ <point x="485" y="76"/>
+ <point x="468" y="0" type="curve"/>
+ <point x="793" y="0" type="line"/>
+ <point x="776" y="76"/>
+ <point x="773" y="226"/>
+ <point x="773" y="413" type="curve" smooth="yes"/>
+ <point x="773" y="1230" type="line"/>
+ <point x="989" y="1230" type="line" smooth="yes"/>
+ <point x="1070" y="1230"/>
+ <point x="1148" y="1227"/>
+ <point x="1220" y="1210" type="curve"/>
+ <point x="1220" y="1460" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnC_apU_.glif b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnC_apU_.glif
new file mode 100644
index 0000000..b3f6b6f
--- /dev/null
+++ b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnC_apU_.glif
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapU" format="2">
+ <advance width="1490"/>
+ <unicode hex="0055"/>
+ <anchor x="732" y="0" name="H"/>
+ <anchor x="732" y="-100" name="L"/>
+ <anchor x="950" y="0" name="O"/>
+ <anchor x="1480" y="1200" name="R"/>
+ <anchor x="732" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1015" y="1460" type="line"/>
+ <point x="1015" y="560" type="line" smooth="yes"/>
+ <point x="1015" y="344"/>
+ <point x="952" y="204"/>
+ <point x="735" y="204" type="curve" smooth="yes"/>
+ <point x="513" y="204"/>
+ <point x="450" y="344"/>
+ <point x="450" y="560" type="curve" smooth="yes"/>
+ <point x="450" y="1460" type="line"/>
+ <point x="150" y="1460" type="line"/>
+ <point x="164" y="1380"/>
+ <point x="165" y="1222"/>
+ <point x="165" y="1025" type="curve" smooth="yes"/>
+ <point x="165" y="515" type="line" smooth="yes"/>
+ <point x="165" y="190"/>
+ <point x="356" y="-25"/>
+ <point x="735" y="-25" type="curve" smooth="yes"/>
+ <point x="1110" y="-25"/>
+ <point x="1300" y="190"/>
+ <point x="1300" y="515" type="curve" smooth="yes"/>
+ <point x="1300" y="1025" type="line" smooth="yes"/>
+ <point x="1300" y="1232"/>
+ <point x="1302" y="1380"/>
+ <point x="1315" y="1460" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnC_apV_.glif b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnC_apV_.glif
new file mode 100644
index 0000000..3468784
--- /dev/null
+++ b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnC_apV_.glif
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapV" format="2">
+ <advance width="1465"/>
+ <unicode hex="0056"/>
+ <anchor x="730" y="0" name="H"/>
+ <anchor x="722" y="-100" name="L"/>
+ <anchor x="930" y="0" name="O"/>
+ <anchor x="722" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1115" y="1460" type="line"/>
+ <point x="722" y="260" type="line"/>
+ <point x="330" y="1460" type="line"/>
+ <point x="25" y="1460" type="line"/>
+ <point x="58" y="1378"/>
+ <point x="96" y="1288"/>
+ <point x="165" y="1095" type="curve" smooth="yes"/>
+ <point x="555" y="0" type="line"/>
+ <point x="890" y="0" type="line"/>
+ <point x="1280" y="1095" type="line" smooth="yes"/>
+ <point x="1348" y="1289"/>
+ <point x="1384" y="1378"/>
+ <point x="1420" y="1460" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnC_apW_.glif b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnC_apW_.glif
new file mode 100644
index 0000000..98329a0
--- /dev/null
+++ b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnC_apW_.glif
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapW" format="2">
+ <advance width="2135"/>
+ <unicode hex="0057"/>
+ <anchor x="1052" y="-100" name="L"/>
+ <anchor x="1052" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1490" y="0" type="line"/>
+ <point x="1655" y="0" type="line"/>
+ <point x="1965" y="1095" type="line" smooth="yes"/>
+ <point x="2020" y="1289"/>
+ <point x="2048" y="1378"/>
+ <point x="2080" y="1460" type="curve"/>
+ <point x="1770" y="1460" type="line"/>
+ <point x="1470" y="130" type="line"/>
+ </contour>
+ <contour>
+ <point x="1180" y="1460" type="line"/>
+ <point x="920" y="1460" type="line"/>
+ <point x="995" y="1305" type="line"/>
+ <point x="1340" y="0" type="line"/>
+ <point x="1510" y="0" type="line"/>
+ <point x="1530" y="130" type="line"/>
+ </contour>
+ <contour>
+ <point x="600" y="0" type="line"/>
+ <point x="765" y="0" type="line"/>
+ <point x="1105" y="1305" type="line"/>
+ <point x="1180" y="1460" type="line"/>
+ <point x="920" y="1460" type="line"/>
+ <point x="580" y="130" type="line"/>
+ </contour>
+ <contour>
+ <point x="340" y="1460" type="line"/>
+ <point x="30" y="1460" type="line"/>
+ <point x="61" y="1381"/>
+ <point x="92" y="1286"/>
+ <point x="145" y="1095" type="curve" smooth="yes"/>
+ <point x="450" y="0" type="line"/>
+ <point x="620" y="0" type="line"/>
+ <point x="640" y="130" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnC_apX_.glif b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnC_apX_.glif
new file mode 100644
index 0000000..17126dd
--- /dev/null
+++ b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnC_apX_.glif
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapX" format="2">
+ <advance width="1365"/>
+ <unicode hex="0058"/>
+ <anchor x="670" y="-100" name="L"/>
+ <anchor x="670" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="990" y="0" type="line"/>
+ <point x="1310" y="0" type="line"/>
+ <point x="1249" y="82"/>
+ <point x="1211" y="125"/>
+ <point x="1083" y="336" type="curve" smooth="yes"/>
+ <point x="400" y="1460" type="line"/>
+ <point x="75" y="1460" type="line"/>
+ <point x="139" y="1376"/>
+ <point x="189" y="1317"/>
+ <point x="315" y="1110" type="curve"/>
+ </contour>
+ <contour>
+ <point x="605" y="947" type="line"/>
+ <point x="255" y="340" type="line" smooth="yes"/>
+ <point x="133" y="128"/>
+ <point x="93" y="86"/>
+ <point x="30" y="0" type="curve"/>
+ <point x="350" y="0" type="line"/>
+ <point x="700" y="609" type="line"/>
+ </contour>
+ <contour>
+ <point x="750" y="609" type="line"/>
+ <point x="1040" y="1110" type="line" smooth="yes"/>
+ <point x="1153" y="1306"/>
+ <point x="1211" y="1383"/>
+ <point x="1275" y="1460" type="curve"/>
+ <point x="950" y="1460" type="line"/>
+ <point x="655" y="947" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnC_apY_.glif b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnC_apY_.glif
new file mode 100644
index 0000000..a7a345d
--- /dev/null
+++ b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnC_apY_.glif
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapY" format="2">
+ <advance width="1364"/>
+ <unicode hex="0059"/>
+ <anchor x="672" y="-100" name="L"/>
+ <anchor x="672" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="575" y="560" type="line"/>
+ <point x="782" y="675" type="line"/>
+ <point x="357" y="1460" type="line"/>
+ <point x="25" y="1460" type="line"/>
+ <point x="137" y="1311"/>
+ <point x="203" y="1197"/>
+ <point x="280" y="1065" type="curve" smooth="yes"/>
+ </contour>
+ <contour>
+ <point x="770" y="560" type="line"/>
+ <point x="1069" y="1065" type="line" smooth="yes"/>
+ <point x="1145" y="1195"/>
+ <point x="1201" y="1291"/>
+ <point x="1319" y="1460" type="curve"/>
+ <point x="997" y="1460" type="line"/>
+ <point x="577" y="675" type="line"/>
+ </contour>
+ <contour>
+ <point x="530" y="695" type="line"/>
+ <point x="530" y="435" type="line" smooth="yes"/>
+ <point x="530" y="238"/>
+ <point x="530" y="80"/>
+ <point x="515" y="0" type="curve"/>
+ <point x="830" y="0" type="line"/>
+ <point x="815" y="80"/>
+ <point x="815" y="238"/>
+ <point x="815" y="435" type="curve" smooth="yes"/>
+ <point x="815" y="695" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mA_.glif b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mA_.glif
new file mode 100644
index 0000000..7885750
--- /dev/null
+++ b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mA_.glif
@@ -0,0 +1,76 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmA" format="2">
+ <advance width="1205"/>
+ <unicode hex="0061"/>
+ <note>
+
+
+
+
+ GlyphNote A
+
+
+
+
+ </note>
+ <anchor x="985" y="0" name="H"/>
+ <anchor x="610" y="-100" name="L"/>
+ <anchor x="1185" y="0" name="O"/>
+ <anchor x="1145" y="1000" name="R"/>
+ <anchor x="610" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="1120" y="0" type="line"/>
+ <point x="1078" y="112"/>
+ <point x="1050" y="226"/>
+ <point x="1050" y="370" type="curve"/>
+ <point x="1050" y="760" type="line"/>
+ <point x="1050" y="919"/>
+ <point x="877" y="1040"/>
+ <point x="615" y="1040" type="curve" smooth="yes"/>
+ <point x="446" y="1040"/>
+ <point x="330" y="994"/>
+ <point x="216" y="950" type="curve"/>
+ <point x="210" y="868"/>
+ <point x="207" y="735"/>
+ <point x="206" y="691" type="curve"/>
+ <point x="323" y="773"/>
+ <point x="424" y="816"/>
+ <point x="530" y="816" type="curve" smooth="yes"/>
+ <point x="680" y="816"/>
+ <point x="770" y="785"/>
+ <point x="770" y="710" type="curve" smooth="yes"/>
+ <point x="770" y="660" type="line"/>
+ <point x="729" y="659"/>
+ <point x="569" y="649"/>
+ <point x="500" y="642" type="curve" smooth="yes"/>
+ <point x="191" y="612"/>
+ <point x="100" y="438"/>
+ <point x="100" y="285" type="curve" smooth="yes"/>
+ <point x="100" y="121"/>
+ <point x="245" y="-25"/>
+ <point x="445" y="-25" type="curve" smooth="yes"/>
+ <point x="562" y="-25"/>
+ <point x="688" y="23"/>
+ <point x="800" y="135" type="curve"/>
+ <point x="814" y="79"/>
+ <point x="838" y="28"/>
+ <point x="850" y="0" type="curve"/>
+ </contour>
+ <contour>
+ <point x="770" y="355" type="line"/>
+ <point x="674" y="225"/>
+ <point x="600" y="205"/>
+ <point x="518" y="205" type="curve" smooth="yes"/>
+ <point x="436" y="205"/>
+ <point x="380" y="256"/>
+ <point x="380" y="320" type="curve" smooth="yes"/>
+ <point x="380" y="386"/>
+ <point x="422" y="442"/>
+ <point x="560" y="457" type="curve" smooth="yes"/>
+ <point x="611" y="463"/>
+ <point x="730" y="474"/>
+ <point x="770" y="475" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mA_A_cute.glif b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mA_A_cute.glif
new file mode 100644
index 0000000..f1c66a5
--- /dev/null
+++ b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mA_A_cute.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmAAcute" format="2">
+ <advance width="1205"/>
+ <unicode hex="00E1"/>
+ <anchor x="985" y="0" name="H"/>
+ <anchor x="610" y="-100" name="L"/>
+ <anchor x="1185" y="0" name="O"/>
+ <anchor x="1145" y="1000" name="R"/>
+ <anchor x="550" y="1635" name="U"/>
+ <outline>
+ <component base="LtnSmA"/>
+ <component base="CombAcute" xOffset="1150"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mA_C_ircum.glif b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mA_C_ircum.glif
new file mode 100644
index 0000000..218d694
--- /dev/null
+++ b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mA_C_ircum.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmACircum" format="2">
+ <advance width="1205"/>
+ <unicode hex="00E2"/>
+ <anchor x="985" y="0" name="H"/>
+ <anchor x="610" y="-100" name="L"/>
+ <anchor x="1185" y="0" name="O"/>
+ <anchor x="1145" y="1000" name="R"/>
+ <anchor x="602" y="1635" name="U"/>
+ <outline>
+ <component base="LtnSmA"/>
+ <component base="CombCircum" xOffset="1190"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mA_D_iaer.glif b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mA_D_iaer.glif
new file mode 100644
index 0000000..bb0ea2c
--- /dev/null
+++ b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mA_D_iaer.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmADiaer" format="2">
+ <advance width="1205"/>
+ <unicode hex="00E4"/>
+ <anchor x="985" y="0" name="H"/>
+ <anchor x="610" y="-100" name="L"/>
+ <anchor x="1185" y="0" name="O"/>
+ <anchor x="1145" y="1000" name="R"/>
+ <anchor x="610" y="1585" name="U"/>
+ <outline>
+ <component base="LtnSmA"/>
+ <component base="CombDiaer" xOffset="1190"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mA_G_rave.glif b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mA_G_rave.glif
new file mode 100644
index 0000000..3153364
--- /dev/null
+++ b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mA_G_rave.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmAGrave" format="2">
+ <advance width="1205"/>
+ <unicode hex="00E0"/>
+ <anchor x="985" y="0" name="H"/>
+ <anchor x="610" y="-100" name="L"/>
+ <anchor x="1185" y="0" name="O"/>
+ <anchor x="1145" y="1000" name="R"/>
+ <anchor x="650" y="1635" name="U"/>
+ <outline>
+ <component base="LtnSmA"/>
+ <component base="CombGrave" xOffset="1240"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mA_R_ingA_bv.glif b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mA_R_ingA_bv.glif
new file mode 100644
index 0000000..3b8da5a
--- /dev/null
+++ b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mA_R_ingA_bv.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmARingAbv" format="2">
+ <advance width="1205"/>
+ <unicode hex="00E5"/>
+ <anchor x="985" y="0" name="H"/>
+ <anchor x="610" y="-100" name="L"/>
+ <anchor x="1185" y="0" name="O"/>
+ <anchor x="1145" y="1000" name="R"/>
+ <anchor x="612" y="1635" name="U"/>
+ <outline>
+ <component base="LtnSmA"/>
+ <component base="CombRingAbv" xOffset="1182"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mA_T_ilde.glif b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mA_T_ilde.glif
new file mode 100644
index 0000000..b3a8515
--- /dev/null
+++ b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mA_T_ilde.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmATilde" format="2">
+ <advance width="1205"/>
+ <unicode hex="00E3"/>
+ <anchor x="985" y="0" name="H"/>
+ <anchor x="610" y="-100" name="L"/>
+ <anchor x="1185" y="0" name="O"/>
+ <anchor x="1145" y="1000" name="R"/>
+ <anchor x="610" y="1490" name="U"/>
+ <outline>
+ <component base="LtnSmA"/>
+ <component base="CombTilde" xOffset="1190"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mB_.glif b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mB_.glif
new file mode 100644
index 0000000..6cc6671
--- /dev/null
+++ b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mB_.glif
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmB" format="2">
+ <advance width="1215"/>
+ <unicode hex="0062"/>
+ <anchor x="610" y="0" name="H"/>
+ <anchor x="610" y="-100" name="L"/>
+ <anchor x="1215" y="1000" name="R"/>
+ <anchor x="610" y="1635" name="U"/>
+ <outline>
+ <contour>
+ <point x="120" y="1600" type="line"/>
+ <point x="135" y="1488"/>
+ <point x="135" y="1273"/>
+ <point x="135" y="1130" type="curve" smooth="yes"/>
+ <point x="135" y="936"/>
+ <point x="135" y="228"/>
+ <point x="135" y="65" type="curve"/>
+ <point x="286" y="26"/>
+ <point x="457" y="-25"/>
+ <point x="650" y="-25" type="curve" smooth="yes"/>
+ <point x="939" y="-25"/>
+ <point x="1125" y="197"/>
+ <point x="1125" y="540" type="curve" smooth="yes"/>
+ <point x="1125" y="832"/>
+ <point x="986" y="1040"/>
+ <point x="789" y="1040" type="curve" smooth="yes"/>
+ <point x="626" y="1040"/>
+ <point x="505" y="956"/>
+ <point x="415" y="845" type="curve"/>
+ <point x="415" y="934"/>
+ <point x="415" y="1600"/>
+ <point x="415" y="1600" type="curve"/>
+ </contour>
+ <contour>
+ <point x="415" y="585" type="line"/>
+ <point x="471" y="709"/>
+ <point x="580" y="795"/>
+ <point x="683" y="795" type="curve" smooth="yes"/>
+ <point x="793" y="795"/>
+ <point x="855" y="684"/>
+ <point x="855" y="505" type="curve" smooth="yes"/>
+ <point x="855" y="317"/>
+ <point x="750" y="190"/>
+ <point x="605" y="190" type="curve" smooth="yes"/>
+ <point x="538" y="190"/>
+ <point x="492" y="204"/>
+ <point x="415" y="240" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mC_.glif b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mC_.glif
new file mode 100644
index 0000000..19a8a6d
--- /dev/null
+++ b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mC_.glif
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmC" format="2">
+ <advance width="1022"/>
+ <unicode hex="0063"/>
+ <anchor x="555" y="0" name="H"/>
+ <anchor x="575" y="-100" name="L"/>
+ <anchor x="1020" y="1000" name="R"/>
+ <anchor x="575" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="922" y="969" type="line"/>
+ <point x="849" y="1007"/>
+ <point x="744" y="1040"/>
+ <point x="612" y="1040" type="curve" smooth="yes"/>
+ <point x="295" y="1040"/>
+ <point x="90" y="802"/>
+ <point x="90" y="490" type="curve" smooth="yes"/>
+ <point x="90" y="161"/>
+ <point x="309" y="-25"/>
+ <point x="578" y="-25" type="curve" smooth="yes"/>
+ <point x="727" y="-25"/>
+ <point x="831" y="8"/>
+ <point x="932" y="70" type="curve"/>
+ <point x="902" y="314" type="line"/>
+ <point x="815" y="245"/>
+ <point x="737" y="205"/>
+ <point x="617" y="205" type="curve" smooth="yes"/>
+ <point x="467" y="205"/>
+ <point x="370" y="324"/>
+ <point x="370" y="500" type="curve" smooth="yes"/>
+ <point x="370" y="694"/>
+ <point x="478" y="810"/>
+ <point x="617" y="810" type="curve" smooth="yes"/>
+ <point x="720" y="810"/>
+ <point x="788" y="779"/>
+ <point x="878" y="717" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mD_.glif b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mD_.glif
new file mode 100644
index 0000000..fc1cc76
--- /dev/null
+++ b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mD_.glif
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmD" format="2">
+ <advance width="1265"/>
+ <unicode hex="0064"/>
+ <anchor x="595" y="0" name="H"/>
+ <anchor x="595" y="-100" name="L"/>
+ <anchor x="1285" y="1000" name="R"/>
+ <anchor x="610" y="1635" name="U"/>
+ <outline>
+ <contour>
+ <point x="1115" y="1600" type="line"/>
+ <point x="810" y="1600" type="line"/>
+ <point x="829" y="1516"/>
+ <point x="835" y="1395"/>
+ <point x="835" y="1235" type="curve" smooth="yes"/>
+ <point x="835" y="955" type="line"/>
+ <point x="763" y="999"/>
+ <point x="669" y="1040"/>
+ <point x="590" y="1040" type="curve" smooth="yes"/>
+ <point x="319" y="1040"/>
+ <point x="100" y="814"/>
+ <point x="100" y="460" type="curve" smooth="yes"/>
+ <point x="100" y="167"/>
+ <point x="268" y="-25"/>
+ <point x="515" y="-25" type="curve" smooth="yes"/>
+ <point x="654" y="-25"/>
+ <point x="770" y="47"/>
+ <point x="860" y="175" type="curve"/>
+ <point x="877" y="105"/>
+ <point x="900" y="32"/>
+ <point x="915" y="0" type="curve"/>
+ <point x="1190" y="0" type="line"/>
+ <point x="1147" y="112"/>
+ <point x="1115" y="278"/>
+ <point x="1115" y="530" type="curve" smooth="yes"/>
+ </contour>
+ <contour>
+ <point x="835" y="400" type="line"/>
+ <point x="787" y="300"/>
+ <point x="676" y="200"/>
+ <point x="570" y="200" type="curve" smooth="yes"/>
+ <point x="443" y="200"/>
+ <point x="380" y="300"/>
+ <point x="380" y="490" type="curve" smooth="yes"/>
+ <point x="380" y="685"/>
+ <point x="485" y="800"/>
+ <point x="590" y="800" type="curve" smooth="yes"/>
+ <point x="683" y="800"/>
+ <point x="743" y="783"/>
+ <point x="835" y="738" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mE_.glif b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mE_.glif
new file mode 100644
index 0000000..5c67455
--- /dev/null
+++ b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mE_.glif
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmE" format="2">
+ <advance width="1110"/>
+ <unicode hex="0065"/>
+ <anchor x="569" y="0" name="H"/>
+ <anchor x="589" y="-100" name="L"/>
+ <anchor x="900" y="0" name="O"/>
+ <anchor x="1130" y="1000" name="R"/>
+ <anchor x="537" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="1010" y="450" type="line"/>
+ <point x="1010" y="469"/>
+ <point x="1009" y="513"/>
+ <point x="1009" y="532" type="curve" smooth="yes"/>
+ <point x="1009" y="782"/>
+ <point x="924" y="1040"/>
+ <point x="589" y="1040" type="curve" smooth="yes"/>
+ <point x="281" y="1040"/>
+ <point x="90" y="826"/>
+ <point x="90" y="495" type="curve" smooth="yes"/>
+ <point x="90" y="155"/>
+ <point x="324" y="-25"/>
+ <point x="589" y="-25" type="curve" smooth="yes"/>
+ <point x="745" y="-25"/>
+ <point x="871" y="2"/>
+ <point x="1015" y="75" type="curve"/>
+ <point x="994" y="306" type="line"/>
+ <point x="870" y="232"/>
+ <point x="745" y="205"/>
+ <point x="614" y="205" type="curve" smooth="yes"/>
+ <point x="448" y="205"/>
+ <point x="362" y="293"/>
+ <point x="362" y="505" type="curve" smooth="yes"/>
+ <point x="362" y="739"/>
+ <point x="431" y="830"/>
+ <point x="575" y="830" type="curve" smooth="yes"/>
+ <point x="693" y="830"/>
+ <point x="755" y="770"/>
+ <point x="755" y="630" type="curve"/>
+ <point x="242" y="630" type="line"/>
+ <point x="242" y="450" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mF_.glif b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mF_.glif
new file mode 100644
index 0000000..8a5996d
--- /dev/null
+++ b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mF_.glif
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmF" format="2">
+ <advance width="800"/>
+ <unicode hex="0066"/>
+ <anchor x="380" y="0" name="H"/>
+ <anchor x="400" y="-100" name="L"/>
+ <anchor x="600" y="1635" name="U"/>
+ <outline>
+ <contour>
+ <point x="30" y="805" type="line"/>
+ <point x="230" y="805" type="line"/>
+ <point x="230" y="0" type="line"/>
+ <point x="540" y="0" type="line"/>
+ <point x="518" y="105"/>
+ <point x="510" y="300"/>
+ <point x="510" y="494" type="curve" smooth="yes"/>
+ <point x="510" y="805" type="line"/>
+ <point x="765" y="805" type="line"/>
+ <point x="765" y="1005" type="line"/>
+ <point x="510" y="1005" type="line"/>
+ <point x="510" y="1159" type="line" smooth="yes"/>
+ <point x="510" y="1322"/>
+ <point x="552" y="1387"/>
+ <point x="648" y="1387" type="curve" smooth="yes"/>
+ <point x="697" y="1387"/>
+ <point x="765" y="1362"/>
+ <point x="808" y="1322" type="curve"/>
+ <point x="865" y="1550" type="line"/>
+ <point x="806" y="1588"/>
+ <point x="699" y="1620"/>
+ <point x="625" y="1620" type="curve" smooth="yes"/>
+ <point x="378" y="1620"/>
+ <point x="230" y="1470"/>
+ <point x="230" y="1170" type="curve" smooth="yes"/>
+ <point x="230" y="1005" type="line"/>
+ <point x="30" y="1005" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mG_.glif b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mG_.glif
new file mode 100644
index 0000000..871e4e9
--- /dev/null
+++ b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mG_.glif
@@ -0,0 +1,91 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmG" format="2">
+ <advance width="1170"/>
+ <unicode hex="0067"/>
+ <anchor x="597" y="-465" name="H"/>
+ <anchor x="597" y="-535" name="L"/>
+ <anchor x="1187" y="1000" name="R"/>
+ <anchor x="567" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="352" y="395" type="line"/>
+ <point x="256" y="357"/>
+ <point x="202" y="275"/>
+ <point x="202" y="215" type="curve" smooth="yes"/>
+ <point x="202" y="113"/>
+ <point x="280" y="12"/>
+ <point x="547" y="-23" type="curve" smooth="yes"/>
+ <point x="797" y="-50"/>
+ <point x="870" y="-99"/>
+ <point x="870" y="-170" type="curve" smooth="yes"/>
+ <point x="870" y="-229"/>
+ <point x="748" y="-302"/>
+ <point x="602" y="-302" type="curve" smooth="yes"/>
+ <point x="418" y="-302"/>
+ <point x="330" y="-235"/>
+ <point x="330" y="-180" type="curve" smooth="yes"/>
+ <point x="330" y="-121"/>
+ <point x="357" y="-56"/>
+ <point x="562" y="20" type="curve"/>
+ <point x="554" y="49"/>
+ <point x="322" y="75"/>
+ <point x="322" y="75" type="curve"/>
+ <point x="138" y="2"/>
+ <point x="50" y="-89"/>
+ <point x="50" y="-200" type="curve" smooth="yes"/>
+ <point x="50" y="-409"/>
+ <point x="341" y="-505"/>
+ <point x="587" y="-505" type="curve" smooth="yes"/>
+ <point x="843" y="-505"/>
+ <point x="1150" y="-375"/>
+ <point x="1150" y="-160" type="curve" smooth="yes"/>
+ <point x="1150" y="13"/>
+ <point x="1049" y="125"/>
+ <point x="752" y="165" type="curve" smooth="yes"/>
+ <point x="497" y="191"/>
+ <point x="433" y="216"/>
+ <point x="433" y="255" type="curve" smooth="yes"/>
+ <point x="433" y="285"/>
+ <point x="472" y="322"/>
+ <point x="588" y="350" type="curve"/>
+ </contour>
+ <contour>
+ <point x="1102" y="1040" type="line"/>
+ <point x="1003" y="1033"/>
+ <point x="871" y="997"/>
+ <point x="782" y="940" type="curve"/>
+ <point x="847" y="770" type="line"/>
+ <point x="939" y="808"/>
+ <point x="1019" y="823"/>
+ <point x="1092" y="825" type="curve"/>
+ </contour>
+ <contour>
+ <point x="122" y="670" type="curve" smooth="yes"/>
+ <point x="122" y="455"/>
+ <point x="316" y="305"/>
+ <point x="567" y="305" type="curve" smooth="yes"/>
+ <point x="820" y="305"/>
+ <point x="1012" y="465"/>
+ <point x="1012" y="680" type="curve" smooth="yes"/>
+ <point x="1012" y="884"/>
+ <point x="820" y="1040"/>
+ <point x="567" y="1040" type="curve" smooth="yes"/>
+ <point x="316" y="1040"/>
+ <point x="122" y="874"/>
+ </contour>
+ <contour>
+ <point x="377" y="680" type="curve" smooth="yes"/>
+ <point x="377" y="770"/>
+ <point x="457" y="847"/>
+ <point x="567" y="847" type="curve" smooth="yes"/>
+ <point x="678" y="847"/>
+ <point x="757" y="770"/>
+ <point x="757" y="680" type="curve" smooth="yes"/>
+ <point x="757" y="578"/>
+ <point x="678" y="501"/>
+ <point x="567" y="501" type="curve" smooth="yes"/>
+ <point x="457" y="501"/>
+ <point x="377" y="578"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mH_.glif b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mH_.glif
new file mode 100644
index 0000000..15fc451
--- /dev/null
+++ b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mH_.glif
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmH" format="2">
+ <advance width="1235"/>
+ <unicode hex="0068"/>
+ <anchor x="280" y="0" name="H"/>
+ <anchor x="620" y="-100" name="L"/>
+ <anchor x="620" y="1635" name="U"/>
+ <outline>
+ <contour>
+ <point x="415" y="580" type="line"/>
+ <point x="450" y="683"/>
+ <point x="560" y="795"/>
+ <point x="675" y="795" type="curve" smooth="yes"/>
+ <point x="782" y="795"/>
+ <point x="830" y="744"/>
+ <point x="830" y="550" type="curve" smooth="yes"/>
+ <point x="830" y="413"/>
+ <point x="830" y="0"/>
+ <point x="830" y="0" type="curve"/>
+ <point x="1110" y="0" type="line"/>
+ <point x="1110" y="0"/>
+ <point x="1110" y="459"/>
+ <point x="1110" y="625" type="curve" smooth="yes"/>
+ <point x="1110" y="900"/>
+ <point x="1008" y="1040"/>
+ <point x="805" y="1040" type="curve" smooth="yes"/>
+ <point x="662" y="1040"/>
+ <point x="513" y="976"/>
+ <point x="415" y="850" type="curve"/>
+ <point x="415" y="894"/>
+ <point x="415" y="1600"/>
+ <point x="415" y="1600" type="curve"/>
+ <point x="120" y="1600" type="line"/>
+ <point x="135" y="1514"/>
+ <point x="135" y="1345"/>
+ <point x="135" y="1130" type="curve" smooth="yes"/>
+ <point x="135" y="935"/>
+ <point x="135" y="0"/>
+ <point x="135" y="0" type="curve"/>
+ <point x="415" y="0" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mI_.glif b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mI_.glif
new file mode 100644
index 0000000..05022d4
--- /dev/null
+++ b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mI_.glif
@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmI" format="2">
+ <advance width="640"/>
+ <unicode hex="0069"/>
+ <anchor x="320" y="0" name="H"/>
+ <anchor x="320" y="-100" name="L"/>
+ <anchor x="580" y="0" name="O"/>
+ <anchor x="640" y="1000" name="R"/>
+ <anchor x="320" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="165" y="1020" type="line"/>
+ <point x="178" y="915"/>
+ <point x="180" y="725"/>
+ <point x="180" y="530" type="curve" smooth="yes"/>
+ <point x="180" y="336"/>
+ <point x="180" y="0"/>
+ <point x="180" y="0" type="curve"/>
+ <point x="480" y="0" type="line"/>
+ <point x="467" y="107"/>
+ <point x="460" y="346"/>
+ <point x="460" y="475" type="curve" smooth="yes"/>
+ <point x="460" y="558"/>
+ <point x="460" y="1020"/>
+ <point x="460" y="1020" type="curve"/>
+ </contour>
+ <contour>
+ <point x="145" y="1385" type="curve" smooth="yes"/>
+ <point x="145" y="1281"/>
+ <point x="219" y="1210"/>
+ <point x="320" y="1210" type="curve" smooth="yes"/>
+ <point x="422" y="1210"/>
+ <point x="495" y="1281"/>
+ <point x="495" y="1385" type="curve" smooth="yes"/>
+ <point x="495" y="1487"/>
+ <point x="422" y="1560"/>
+ <point x="320" y="1560" type="curve" smooth="yes"/>
+ <point x="219" y="1560"/>
+ <point x="145" y="1487"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mJ_.glif b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mJ_.glif
new file mode 100644
index 0000000..6e044af
--- /dev/null
+++ b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mJ_.glif
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmJ" format="2">
+ <advance width="670"/>
+ <unicode hex="006A"/>
+ <anchor x="140" y="-500" name="L"/>
+ <anchor x="355" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="185" y="1385" type="curve" smooth="yes"/>
+ <point x="185" y="1281"/>
+ <point x="259" y="1210"/>
+ <point x="360" y="1210" type="curve" smooth="yes"/>
+ <point x="462" y="1210"/>
+ <point x="535" y="1281"/>
+ <point x="535" y="1385" type="curve" smooth="yes"/>
+ <point x="535" y="1487"/>
+ <point x="462" y="1560"/>
+ <point x="360" y="1560" type="curve" smooth="yes"/>
+ <point x="259" y="1560"/>
+ <point x="185" y="1487"/>
+ </contour>
+ <contour>
+ <point x="500" y="1020" type="line"/>
+ <point x="205" y="1020" type="line"/>
+ <point x="218" y="915"/>
+ <point x="220" y="725"/>
+ <point x="220" y="530" type="curve"/>
+ <point x="220" y="20" type="line"/>
+ <point x="220" y="-150"/>
+ <point x="165" y="-232"/>
+ <point x="48" y="-232" type="curve" smooth="yes"/>
+ <point x="-20" y="-232"/>
+ <point x="-101" y="-195"/>
+ <point x="-145" y="-152" type="curve"/>
+ <point x="-190" y="-389" type="line"/>
+ <point x="-148" y="-421"/>
+ <point x="-37" y="-470"/>
+ <point x="56" y="-470" type="curve" smooth="yes"/>
+ <point x="306" y="-470"/>
+ <point x="500" y="-348"/>
+ <point x="500" y="25" type="curve" smooth="yes"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mK_.glif b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mK_.glif
new file mode 100644
index 0000000..529f7dd
--- /dev/null
+++ b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mK_.glif
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmK" format="2">
+ <advance width="1138"/>
+ <unicode hex="006B"/>
+ <anchor x="940" y="0" name="H"/>
+ <anchor x="585" y="-100" name="L"/>
+ <anchor x="1140" y="1000" name="R"/>
+ <anchor x="595" y="1635" name="U"/>
+ <outline>
+ <contour>
+ <point x="415" y="0" type="line"/>
+ <point x="415" y="1600" type="line"/>
+ <point x="120" y="1600" type="line"/>
+ <point x="135" y="1514"/>
+ <point x="135" y="1345"/>
+ <point x="135" y="1130" type="curve" smooth="yes"/>
+ <point x="135" y="934"/>
+ <point x="135" y="0"/>
+ <point x="135" y="0" type="curve"/>
+ </contour>
+ <contour>
+ <point x="723" y="1020" type="line"/>
+ <point x="353" y="570" type="line"/>
+ <point x="572" y="528" type="line"/>
+ <point x="1098" y="1020" type="line"/>
+ </contour>
+ <contour>
+ <point x="350" y="570" type="line"/>
+ <point x="761" y="0" type="line"/>
+ <point x="1128" y="0" type="line"/>
+ <point x="540" y="664" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mL_.glif b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mL_.glif
new file mode 100644
index 0000000..0b21294
--- /dev/null
+++ b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mL_.glif
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmL" format="2">
+ <advance width="640"/>
+ <unicode hex="006C"/>
+ <anchor x="335" y="0" name="H"/>
+ <anchor x="335" y="-100" name="L"/>
+ <anchor x="660" y="1000" name="R"/>
+ <anchor x="320" y="1635" name="U"/>
+ <outline>
+ <contour>
+ <point x="460" y="1600" type="line"/>
+ <point x="160" y="1600" type="line"/>
+ <point x="173" y="1485"/>
+ <point x="180" y="1324"/>
+ <point x="180" y="1130" type="curve" smooth="yes"/>
+ <point x="180" y="0" type="line"/>
+ <point x="480" y="0" type="line"/>
+ <point x="467" y="109"/>
+ <point x="460" y="346"/>
+ <point x="460" y="475" type="curve" smooth="yes"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mM_.glif b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mM_.glif
new file mode 100644
index 0000000..eace489
--- /dev/null
+++ b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mM_.glif
@@ -0,0 +1,52 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmM" format="2">
+ <advance width="1760"/>
+ <unicode hex="006D"/>
+ <anchor x="890" y="0" name="H"/>
+ <anchor x="890" y="-100" name="L"/>
+ <anchor x="890" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="115" y="1020" type="line"/>
+ <point x="136" y="951"/>
+ <point x="165" y="811"/>
+ <point x="165" y="615" type="curve" smooth="yes"/>
+ <point x="165" y="0" type="line"/>
+ <point x="445" y="0" type="line"/>
+ <point x="445" y="640" type="line"/>
+ <point x="484" y="731"/>
+ <point x="560" y="795"/>
+ <point x="635" y="795" type="curve" smooth="yes"/>
+ <point x="723" y="795"/>
+ <point x="750" y="759"/>
+ <point x="750" y="570" type="curve" smooth="yes"/>
+ <point x="750" y="0" type="line"/>
+ <point x="1030" y="0" type="line"/>
+ <point x="1030" y="660" type="line"/>
+ <point x="1073" y="742"/>
+ <point x="1147" y="795"/>
+ <point x="1220" y="795" type="curve" smooth="yes"/>
+ <point x="1310" y="795"/>
+ <point x="1335" y="751"/>
+ <point x="1335" y="550" type="curve" smooth="yes"/>
+ <point x="1335" y="0" type="line"/>
+ <point x="1615" y="0" type="line"/>
+ <point x="1615" y="660" type="line" smooth="yes"/>
+ <point x="1615" y="907"/>
+ <point x="1548" y="1040"/>
+ <point x="1345" y="1040" type="curve" smooth="yes"/>
+ <point x="1240" y="1040"/>
+ <point x="1131" y="1007"/>
+ <point x="1006" y="872" type="curve"/>
+ <point x="973" y="960"/>
+ <point x="891" y="1040"/>
+ <point x="760" y="1040" type="curve" smooth="yes"/>
+ <point x="644" y="1040"/>
+ <point x="544" y="1008"/>
+ <point x="422" y="875" type="curve"/>
+ <point x="412" y="920"/>
+ <point x="397" y="981"/>
+ <point x="375" y="1020" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mN_.glif b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mN_.glif
new file mode 100644
index 0000000..f7abb6f
--- /dev/null
+++ b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mN_.glif
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmN" format="2">
+ <advance width="1245"/>
+ <unicode hex="006E"/>
+ <anchor x="620" y="0" name="H"/>
+ <anchor x="620" y="-100" name="L"/>
+ <anchor x="620" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="1120" y="0" type="line"/>
+ <point x="1120" y="0"/>
+ <point x="1120" y="459"/>
+ <point x="1120" y="625" type="curve" smooth="yes"/>
+ <point x="1120" y="900"/>
+ <point x="998" y="1040"/>
+ <point x="795" y="1040" type="curve" smooth="yes"/>
+ <point x="654" y="1040"/>
+ <point x="537" y="980"/>
+ <point x="410" y="835" type="curve"/>
+ <point x="403" y="881"/>
+ <point x="385" y="980"/>
+ <point x="370" y="1020" type="curve"/>
+ <point x="95" y="1020" type="line"/>
+ <point x="117" y="951"/>
+ <point x="145" y="811"/>
+ <point x="145" y="615" type="curve" smooth="yes"/>
+ <point x="145" y="420"/>
+ <point x="145" y="0"/>
+ <point x="145" y="0" type="curve"/>
+ <point x="425" y="0" type="line"/>
+ <point x="425" y="580" type="line"/>
+ <point x="460" y="683"/>
+ <point x="570" y="795"/>
+ <point x="685" y="795" type="curve" smooth="yes"/>
+ <point x="792" y="795"/>
+ <point x="840" y="734"/>
+ <point x="840" y="550" type="curve" smooth="yes"/>
+ <point x="840" y="413"/>
+ <point x="840" y="0"/>
+ <point x="840" y="0" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mO_.glif b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mO_.glif
new file mode 100644
index 0000000..063c297
--- /dev/null
+++ b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mO_.glif
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmO" format="2">
+ <advance width="1160"/>
+ <unicode hex="006F"/>
+ <anchor x="578" y="0" name="H"/>
+ <anchor x="580" y="-100" name="L"/>
+ <anchor x="790" y="0" name="O"/>
+ <anchor x="1160" y="1000" name="R"/>
+ <anchor x="580" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="90" y="507" type="curve" smooth="yes"/>
+ <point x="90" y="163"/>
+ <point x="288" y="-25"/>
+ <point x="570" y="-25" type="curve" smooth="yes"/>
+ <point x="840" y="-25"/>
+ <point x="1070" y="163"/>
+ <point x="1070" y="507" type="curve" smooth="yes"/>
+ <point x="1070" y="851"/>
+ <point x="873" y="1040"/>
+ <point x="590" y="1040" type="curve" smooth="yes"/>
+ <point x="320" y="1040"/>
+ <point x="90" y="851"/>
+ </contour>
+ <contour>
+ <point x="370" y="507" type="curve" smooth="yes"/>
+ <point x="370" y="699"/>
+ <point x="451" y="815"/>
+ <point x="580" y="815" type="curve" smooth="yes"/>
+ <point x="717" y="815"/>
+ <point x="790" y="699"/>
+ <point x="790" y="507" type="curve" smooth="yes"/>
+ <point x="790" y="316"/>
+ <point x="709" y="200"/>
+ <point x="580" y="200" type="curve" smooth="yes"/>
+ <point x="443" y="200"/>
+ <point x="370" y="316"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mP_.glif b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mP_.glif
new file mode 100644
index 0000000..4fe224b
--- /dev/null
+++ b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mP_.glif
@@ -0,0 +1,59 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmP" format="2">
+ <advance width="1235"/>
+ <unicode hex="0070"/>
+ <anchor x="290" y="-435" name="H"/>
+ <anchor x="640" y="-500" name="L"/>
+ <anchor x="1235" y="1000" name="R"/>
+ <anchor x="640" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="450" y="-490" type="line"/>
+ <point x="433" y="-405"/>
+ <point x="425" y="-310"/>
+ <point x="425" y="-150" type="curve" smooth="yes"/>
+ <point x="425" y="-71"/>
+ <point x="425" y="-41"/>
+ <point x="425" y="65" type="curve"/>
+ <point x="518" y="10"/>
+ <point x="594" y="-25"/>
+ <point x="699" y="-25" type="curve" smooth="yes"/>
+ <point x="945" y="-25"/>
+ <point x="1145" y="193"/>
+ <point x="1145" y="535" type="curve" smooth="yes"/>
+ <point x="1145" y="828"/>
+ <point x="996" y="1040"/>
+ <point x="773" y="1040" type="curve" smooth="yes"/>
+ <point x="628" y="1040"/>
+ <point x="502" y="962"/>
+ <point x="410" y="850" type="curve"/>
+ <point x="401" y="932"/>
+ <point x="385" y="990"/>
+ <point x="370" y="1020" type="curve"/>
+ <point x="95" y="1020" type="line"/>
+ <point x="140" y="907"/>
+ <point x="145" y="734"/>
+ <point x="145" y="485" type="curve" smooth="yes"/>
+ <point x="145" y="291"/>
+ <point x="145" y="-345"/>
+ <point x="145" y="-490" type="curve"/>
+ </contour>
+ <contour>
+ <point x="633" y="206" type="curve" smooth="yes"/>
+ <point x="564" y="206"/>
+ <point x="527" y="225"/>
+ <point x="425" y="300" type="curve"/>
+ <point x="425" y="390"/>
+ <point x="425" y="507"/>
+ <point x="425" y="585" type="curve"/>
+ <point x="482" y="726"/>
+ <point x="583" y="802"/>
+ <point x="672" y="802" type="curve" smooth="yes"/>
+ <point x="793" y="802"/>
+ <point x="865" y="686"/>
+ <point x="865" y="505" type="curve" smooth="yes"/>
+ <point x="865" y="320"/>
+ <point x="755" y="206"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mQ_.glif b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mQ_.glif
new file mode 100644
index 0000000..9727ad7
--- /dev/null
+++ b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mQ_.glif
@@ -0,0 +1,47 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmQ" format="2">
+ <advance width="1210"/>
+ <unicode hex="0071"/>
+ <anchor x="600" y="-500" name="L"/>
+ <anchor x="1210" y="1000" name="R"/>
+ <anchor x="600" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="790" y="-490" type="line"/>
+ <point x="1095" y="-490" type="line"/>
+ <point x="1078" y="-405"/>
+ <point x="1070" y="-310"/>
+ <point x="1070" y="-150" type="curve" smooth="yes"/>
+ <point x="1070" y="-26"/>
+ <point x="1070" y="965"/>
+ <point x="1070" y="965" type="curve"/>
+ <point x="934" y="1001"/>
+ <point x="773" y="1040"/>
+ <point x="620" y="1040" type="curve" smooth="yes"/>
+ <point x="255" y="1040"/>
+ <point x="100" y="742"/>
+ <point x="100" y="435" type="curve" smooth="yes"/>
+ <point x="100" y="117"/>
+ <point x="316" y="-25"/>
+ <point x="500" y="-25" type="curve" smooth="yes"/>
+ <point x="593" y="-25"/>
+ <point x="686" y="14"/>
+ <point x="790" y="120" type="curve"/>
+ </contour>
+ <contour>
+ <point x="790" y="368" type="line"/>
+ <point x="727" y="258"/>
+ <point x="650" y="203"/>
+ <point x="580" y="203" type="curve" smooth="yes"/>
+ <point x="475" y="203"/>
+ <point x="380" y="287"/>
+ <point x="380" y="485" type="curve" smooth="yes"/>
+ <point x="380" y="641"/>
+ <point x="456" y="802"/>
+ <point x="655" y="802" type="curve" smooth="yes"/>
+ <point x="696" y="802"/>
+ <point x="749" y="789"/>
+ <point x="790" y="770" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mR_.glif b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mR_.glif
new file mode 100644
index 0000000..8a81116
--- /dev/null
+++ b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mR_.glif
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmR" format="2">
+ <advance width="995"/>
+ <unicode hex="0072"/>
+ <anchor x="285" y="0" name="H"/>
+ <anchor x="275" y="-100" name="L"/>
+ <anchor x="550" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="425" y="0" type="line"/>
+ <point x="425" y="530" type="line"/>
+ <point x="460" y="654"/>
+ <point x="570" y="781"/>
+ <point x="637" y="781" type="curve" smooth="yes"/>
+ <point x="722" y="781"/>
+ <point x="755" y="721"/>
+ <point x="762" y="630" type="curve"/>
+ <point x="985" y="665" type="line"/>
+ <point x="985" y="868"/>
+ <point x="913" y="1040"/>
+ <point x="725" y="1040" type="curve" smooth="yes"/>
+ <point x="634" y="1040"/>
+ <point x="507" y="964"/>
+ <point x="410" y="825" type="curve"/>
+ <point x="403" y="873"/>
+ <point x="385" y="978"/>
+ <point x="370" y="1020" type="curve"/>
+ <point x="95" y="1020" type="line"/>
+ <point x="117" y="951"/>
+ <point x="145" y="811"/>
+ <point x="145" y="615" type="curve" smooth="yes"/>
+ <point x="145" y="0" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mS_.glif b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mS_.glif
new file mode 100644
index 0000000..06b1a9a
--- /dev/null
+++ b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mS_.glif
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmS" format="2">
+ <advance width="1035"/>
+ <unicode hex="0073"/>
+ <anchor x="515" y="0" name="H"/>
+ <anchor x="515" y="-100" name="L"/>
+ <anchor x="530" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="905" y="960" type="line"/>
+ <point x="827" y="998"/>
+ <point x="708" y="1040"/>
+ <point x="545" y="1040" type="curve" smooth="yes"/>
+ <point x="202" y="1040"/>
+ <point x="110" y="818"/>
+ <point x="110" y="720" type="curve" smooth="yes"/>
+ <point x="110" y="594"/>
+ <point x="171" y="491"/>
+ <point x="455" y="432" type="curve" smooth="yes"/>
+ <point x="646" y="390"/>
+ <point x="690" y="348"/>
+ <point x="690" y="290" type="curve" smooth="yes"/>
+ <point x="690" y="243"/>
+ <point x="624" y="199"/>
+ <point x="530" y="199" type="curve" smooth="yes"/>
+ <point x="413" y="199"/>
+ <point x="254" y="253"/>
+ <point x="155" y="334" type="curve"/>
+ <point x="100" y="90" type="line"/>
+ <point x="187" y="28"/>
+ <point x="346" y="-25"/>
+ <point x="525" y="-25" type="curve" smooth="yes"/>
+ <point x="768" y="-25"/>
+ <point x="960" y="123"/>
+ <point x="960" y="315" type="curve" smooth="yes"/>
+ <point x="960" y="504"/>
+ <point x="788" y="583"/>
+ <point x="580" y="625" type="curve" smooth="yes"/>
+ <point x="405" y="659"/>
+ <point x="380" y="681"/>
+ <point x="380" y="730" type="curve" smooth="yes"/>
+ <point x="380" y="770"/>
+ <point x="418" y="816"/>
+ <point x="535" y="816" type="curve" smooth="yes"/>
+ <point x="674" y="816"/>
+ <point x="791" y="760"/>
+ <point x="866" y="721" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mT_.glif b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mT_.glif
new file mode 100644
index 0000000..d4123c7
--- /dev/null
+++ b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mT_.glif
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmT" format="2">
+ <advance width="885"/>
+ <unicode hex="0074"/>
+ <anchor x="530" y="0" name="H"/>
+ <anchor x="530" y="-100" name="L"/>
+ <anchor x="885" y="1000" name="R"/>
+ <anchor x="360" y="1360" name="U"/>
+ <outline>
+ <contour>
+ <point x="220" y="270" type="line"/>
+ <point x="220" y="39"/>
+ <point x="374" y="-25"/>
+ <point x="563" y="-25" type="curve" smooth="yes"/>
+ <point x="635" y="-25"/>
+ <point x="725" y="-3"/>
+ <point x="820" y="57" type="curve"/>
+ <point x="820" y="281" type="line"/>
+ <point x="741" y="232"/>
+ <point x="678" y="206"/>
+ <point x="627" y="206" type="curve" smooth="yes"/>
+ <point x="537" y="206"/>
+ <point x="500" y="235"/>
+ <point x="500" y="462" type="curve" smooth="yes"/>
+ <point x="500" y="1320" type="line"/>
+ <point x="220" y="1320" type="line"/>
+ </contour>
+ <contour>
+ <point x="805" y="805" type="line"/>
+ <point x="805" y="1005" type="line"/>
+ <point x="30" y="1005" type="line"/>
+ <point x="30" y="805" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mU_.glif b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mU_.glif
new file mode 100644
index 0000000..5b8d434
--- /dev/null
+++ b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mU_.glif
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmU" format="2">
+ <advance width="1245"/>
+ <unicode hex="0075"/>
+ <anchor x="515" y="0" name="H"/>
+ <anchor x="615" y="-100" name="L"/>
+ <anchor x="690" y="0" name="O"/>
+ <anchor x="1258" y="1000" name="R"/>
+ <anchor x="615" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="1160" y="0" type="line"/>
+ <point x="1118" y="112"/>
+ <point x="1095" y="256"/>
+ <point x="1095" y="450" type="curve" smooth="yes"/>
+ <point x="1095" y="646"/>
+ <point x="1095" y="1020"/>
+ <point x="1095" y="1020" type="curve"/>
+ <point x="795" y="1020" type="line"/>
+ <point x="813" y="898"/>
+ <point x="815" y="832"/>
+ <point x="815" y="700" type="curve" smooth="yes"/>
+ <point x="815" y="418" type="line"/>
+ <point x="774" y="326"/>
+ <point x="651" y="206"/>
+ <point x="560" y="206" type="curve" smooth="yes"/>
+ <point x="458" y="206"/>
+ <point x="425" y="284"/>
+ <point x="425" y="465" type="curve" smooth="yes"/>
+ <point x="425" y="603"/>
+ <point x="425" y="1020"/>
+ <point x="425" y="1020" type="curve"/>
+ <point x="125" y="1020" type="line"/>
+ <point x="143" y="900"/>
+ <point x="145" y="827"/>
+ <point x="145" y="700" type="curve" smooth="yes"/>
+ <point x="145" y="681"/>
+ <point x="145" y="424"/>
+ <point x="145" y="405" type="curve" smooth="yes"/>
+ <point x="145" y="120"/>
+ <point x="250" y="-25"/>
+ <point x="458" y="-25" type="curve" smooth="yes"/>
+ <point x="595" y="-25"/>
+ <point x="722" y="48"/>
+ <point x="840" y="185" type="curve"/>
+ <point x="850" y="116"/>
+ <point x="876" y="43"/>
+ <point x="895" y="0" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mV_.glif b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mV_.glif
new file mode 100644
index 0000000..daf1468
--- /dev/null
+++ b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mV_.glif
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmV" format="2">
+ <advance width="1104"/>
+ <unicode hex="0076"/>
+ <anchor x="565" y="0" name="H"/>
+ <anchor x="565" y="-100" name="L"/>
+ <anchor x="750" y="0" name="O"/>
+ <anchor x="565" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="786" y="1020" type="line"/>
+ <point x="556" y="290" type="line"/>
+ <point x="322" y="1020" type="line"/>
+ <point x="10" y="1020" type="line"/>
+ <point x="65" y="905"/>
+ <point x="133" y="746"/>
+ <point x="165" y="665" type="curve" smooth="yes"/>
+ <point x="227" y="510"/>
+ <point x="430" y="0"/>
+ <point x="430" y="0" type="curve"/>
+ <point x="674" y="0" type="line"/>
+ <point x="674" y="0"/>
+ <point x="886" y="536"/>
+ <point x="939" y="665" type="curve" smooth="yes"/>
+ <point x="972" y="744"/>
+ <point x="1037" y="905"/>
+ <point x="1094" y="1020" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mW_.glif b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mW_.glif
new file mode 100644
index 0000000..1ca1ec4
--- /dev/null
+++ b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mW_.glif
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmW" format="2">
+ <advance width="1570"/>
+ <unicode hex="0077"/>
+ <anchor x="785" y="-100" name="L"/>
+ <anchor x="785" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="665" y="1020" type="line"/>
+ <point x="480" y="285" type="line"/>
+ <point x="323" y="1020" type="line"/>
+ <point x="35" y="1020" type="line"/>
+ <point x="82" y="867"/>
+ <point x="110" y="771"/>
+ <point x="140" y="665" type="curve" smooth="yes"/>
+ <point x="325" y="0" type="line"/>
+ <point x="615" y="0" type="line"/>
+ <point x="785" y="695" type="line"/>
+ <point x="955" y="0" type="line"/>
+ <point x="1245" y="0" type="line"/>
+ <point x="1430" y="665" type="line" smooth="yes"/>
+ <point x="1464" y="785"/>
+ <point x="1488" y="868"/>
+ <point x="1535" y="1020" type="curve"/>
+ <point x="1247" y="1020" type="line"/>
+ <point x="1090" y="285" type="line"/>
+ <point x="905" y="1020" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mX_.glif b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mX_.glif
new file mode 100644
index 0000000..971c129
--- /dev/null
+++ b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mX_.glif
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmX" format="2">
+ <advance width="1185"/>
+ <unicode hex="0078"/>
+ <anchor x="960" y="0" name="H"/>
+ <anchor x="590" y="-100" name="L"/>
+ <anchor x="615" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="815" y="0" type="line"/>
+ <point x="1145" y="0" type="line"/>
+ <point x="1037" y="129"/>
+ <point x="989" y="190"/>
+ <point x="930" y="270" type="curve" smooth="yes"/>
+ <point x="380" y="1020" type="line"/>
+ <point x="50" y="1020" type="line"/>
+ <point x="158" y="887"/>
+ <point x="192" y="842"/>
+ <point x="260" y="750" type="curve" smooth="yes"/>
+ </contour>
+ <contour>
+ <point x="499" y="616" type="line"/>
+ <point x="245" y="270" type="line" smooth="yes"/>
+ <point x="195" y="201"/>
+ <point x="150" y="143"/>
+ <point x="40" y="0" type="curve"/>
+ <point x="345" y="0" type="line"/>
+ <point x="584" y="359" type="line"/>
+ </contour>
+ <contour>
+ <point x="675" y="405" type="line"/>
+ <point x="925" y="750" type="line" smooth="yes"/>
+ <point x="980" y="826"/>
+ <point x="1027" y="886"/>
+ <point x="1130" y="1020" type="curve"/>
+ <point x="825" y="1020" type="line"/>
+ <point x="595" y="668" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mY_.glif b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mY_.glif
new file mode 100644
index 0000000..ea8d25e
--- /dev/null
+++ b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/L_tnS_mY_.glif
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmY" format="2">
+ <advance width="1100"/>
+ <unicode hex="0079"/>
+ <anchor x="845" y="-100" name="L"/>
+ <anchor x="1155" y="1000" name="R"/>
+ <anchor x="565" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="945" y="665" type="line" smooth="yes"/>
+ <point x="978" y="758"/>
+ <point x="1021" y="865"/>
+ <point x="1090" y="1020" type="curve"/>
+ <point x="777" y="1020" type="line"/>
+ <point x="777" y="1020"/>
+ <point x="646" y="549"/>
+ <point x="573" y="293" type="curve"/>
+ <point x="333" y="1020" type="line"/>
+ <point x="20" y="1020" type="line"/>
+ <point x="97" y="864"/>
+ <point x="144" y="757"/>
+ <point x="180" y="665" type="curve" smooth="yes"/>
+ <point x="445" y="-18" type="line"/>
+ <point x="366" y="-209"/>
+ <point x="304" y="-242"/>
+ <point x="245" y="-242" type="curve" smooth="yes"/>
+ <point x="179" y="-242"/>
+ <point x="102" y="-202"/>
+ <point x="60" y="-167" type="curve"/>
+ <point x="-10" y="-385" type="line"/>
+ <point x="63" y="-439"/>
+ <point x="154" y="-470"/>
+ <point x="245" y="-470" type="curve" smooth="yes"/>
+ <point x="427" y="-470"/>
+ <point x="565" y="-387"/>
+ <point x="705" y="0" type="curve" smooth="yes"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/N_onB_reakingH_yphen.glif b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/N_onB_reakingH_yphen.glif
new file mode 100644
index 0000000..7dc67c0
--- /dev/null
+++ b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/N_onB_reakingH_yphen.glif
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="NonBreakingHyphen" format="2">
+ <advance width="895"/>
+ <unicode hex="2011"/>
+ <anchor x="450" y="1100" name="U"/>
+ <outline>
+ <component base="HyphenMinus"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/N_umS_gn.glif b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/N_umS_gn.glif
new file mode 100644
index 0000000..54b82cb
--- /dev/null
+++ b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/N_umS_gn.glif
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="NumSgn" format="2">
+ <advance width="1200"/>
+ <unicode hex="0023"/>
+ <outline>
+ <contour>
+ <point x="412" y="1360" type="line"/>
+ <point x="52" y="100" type="line"/>
+ <point x="272" y="100" type="line"/>
+ <point x="632" y="1360" type="line"/>
+ </contour>
+ <contour>
+ <point x="10" y="425" type="line"/>
+ <point x="1101" y="425" type="line"/>
+ <point x="1101" y="635" type="line"/>
+ <point x="10" y="635" type="line"/>
+ </contour>
+ <contour>
+ <point x="69" y="850" type="line"/>
+ <point x="1160" y="850" type="line"/>
+ <point x="1160" y="1060" type="line"/>
+ <point x="69" y="1060" type="line"/>
+ </contour>
+ <contour>
+ <point x="887" y="1360" type="line"/>
+ <point x="527" y="100" type="line"/>
+ <point x="747" y="100" type="line"/>
+ <point x="1107" y="1360" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/P_ercentS_gn.glif b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/P_ercentS_gn.glif
new file mode 100644
index 0000000..5017543
--- /dev/null
+++ b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/P_ercentS_gn.glif
@@ -0,0 +1,69 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="PercentSgn" format="2">
+ <advance width="1565"/>
+ <unicode hex="0025"/>
+ <outline>
+ <contour>
+ <point x="1073" y="1480" type="line"/>
+ <point x="291" y="-25" type="line"/>
+ <point x="499" y="-25" type="line"/>
+ <point x="1279" y="1480" type="line"/>
+ </contour>
+ <contour>
+ <point x="511" y="1076" type="curve" smooth="yes"/>
+ <point x="511" y="892"/>
+ <point x="470" y="815"/>
+ <point x="394" y="815" type="curve" smooth="yes"/>
+ <point x="315" y="815"/>
+ <point x="279" y="891"/>
+ <point x="279" y="1091" type="curve" smooth="yes"/>
+ <point x="279" y="1275"/>
+ <point x="317" y="1350"/>
+ <point x="394" y="1350" type="curve" smooth="yes"/>
+ <point x="475" y="1350"/>
+ <point x="511" y="1276"/>
+ </contour>
+ <contour>
+ <point x="721" y="1089" type="curve" smooth="yes"/>
+ <point x="721" y="1362"/>
+ <point x="584" y="1480"/>
+ <point x="399" y="1480" type="curve" smooth="yes"/>
+ <point x="215" y="1480"/>
+ <point x="69" y="1360"/>
+ <point x="69" y="1078" type="curve" smooth="yes"/>
+ <point x="69" y="796"/>
+ <point x="205" y="685"/>
+ <point x="390" y="685" type="curve" smooth="yes"/>
+ <point x="575" y="685"/>
+ <point x="721" y="794"/>
+ </contour>
+ <contour>
+ <point x="1286" y="366" type="curve" smooth="yes"/>
+ <point x="1286" y="182"/>
+ <point x="1245" y="105"/>
+ <point x="1169" y="105" type="curve" smooth="yes"/>
+ <point x="1090" y="105"/>
+ <point x="1054" y="181"/>
+ <point x="1054" y="381" type="curve" smooth="yes"/>
+ <point x="1054" y="565"/>
+ <point x="1092" y="640"/>
+ <point x="1169" y="640" type="curve" smooth="yes"/>
+ <point x="1250" y="640"/>
+ <point x="1286" y="566"/>
+ </contour>
+ <contour>
+ <point x="1496" y="379" type="curve" smooth="yes"/>
+ <point x="1496" y="652"/>
+ <point x="1359" y="770"/>
+ <point x="1174" y="770" type="curve" smooth="yes"/>
+ <point x="990" y="770"/>
+ <point x="844" y="650"/>
+ <point x="844" y="368" type="curve" smooth="yes"/>
+ <point x="844" y="86"/>
+ <point x="980" y="-25"/>
+ <point x="1165" y="-25" type="curve" smooth="yes"/>
+ <point x="1350" y="-25"/>
+ <point x="1496" y="84"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/P_lusS_gn.glif b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/P_lusS_gn.glif
new file mode 100644
index 0000000..a1a4c93
--- /dev/null
+++ b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/P_lusS_gn.glif
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="PlusSgn" format="2">
+ <advance width="1200"/>
+ <unicode hex="002B"/>
+ <outline>
+ <contour>
+ <point x="495" y="1180" type="line"/>
+ <point x="495" y="285" type="line"/>
+ <point x="705" y="285" type="line"/>
+ <point x="705" y="1180" type="line"/>
+ </contour>
+ <contour>
+ <point x="155" y="630" type="line"/>
+ <point x="1045" y="630" type="line"/>
+ <point x="1045" y="840" type="line"/>
+ <point x="155" y="840" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/Q_stnM_rk.glif b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/Q_stnM_rk.glif
new file mode 100644
index 0000000..c9bbb28
--- /dev/null
+++ b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/Q_stnM_rk.glif
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="QstnMrk" format="2">
+ <advance width="1090"/>
+ <unicode hex="003F"/>
+ <outline>
+ <contour>
+ <point x="640" y="500" type="line"/>
+ <point x="640" y="671"/>
+ <point x="668" y="805"/>
+ <point x="767" y="956" type="curve" smooth="yes"/>
+ <point x="837" y="1063"/>
+ <point x="900" y="1117"/>
+ <point x="900" y="1220" type="curve" smooth="yes"/>
+ <point x="900" y="1402"/>
+ <point x="757" y="1540"/>
+ <point x="500" y="1540" type="curve" smooth="yes"/>
+ <point x="355" y="1540"/>
+ <point x="206" y="1470"/>
+ <point x="140" y="1407" type="curve"/>
+ <point x="185" y="1168" type="line"/>
+ <point x="261" y="1247"/>
+ <point x="372" y="1295"/>
+ <point x="472" y="1295" type="curve" smooth="yes"/>
+ <point x="569" y="1295"/>
+ <point x="615" y="1249"/>
+ <point x="615" y="1190" type="curve" smooth="yes"/>
+ <point x="615" y="1139"/>
+ <point x="565" y="1096"/>
+ <point x="495" y="980" type="curve" smooth="yes"/>
+ <point x="434" y="879"/>
+ <point x="375" y="710"/>
+ <point x="375" y="500" type="curve"/>
+ </contour>
+ <contour>
+ <point x="335" y="150" type="curve" smooth="yes"/>
+ <point x="335" y="46"/>
+ <point x="409" y="-25"/>
+ <point x="510" y="-25" type="curve" smooth="yes"/>
+ <point x="612" y="-25"/>
+ <point x="685" y="46"/>
+ <point x="685" y="150" type="curve" smooth="yes"/>
+ <point x="685" y="252"/>
+ <point x="612" y="325"/>
+ <point x="510" y="325" type="curve" smooth="yes"/>
+ <point x="409" y="325"/>
+ <point x="335" y="252"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/Q_uotM_rk.glif b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/Q_uotM_rk.glif
new file mode 100644
index 0000000..794a655
--- /dev/null
+++ b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/Q_uotM_rk.glif
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="QuotMrk" format="2">
+ <advance width="1085"/>
+ <unicode hex="0022"/>
+ <outline>
+ <contour>
+ <point x="450" y="1045" type="line"/>
+ <point x="455" y="1186"/>
+ <point x="456" y="1339"/>
+ <point x="485" y="1585" type="curve"/>
+ <point x="240" y="1585" type="line"/>
+ <point x="271" y="1339"/>
+ <point x="271" y="1186"/>
+ <point x="275" y="1045" type="curve"/>
+ </contour>
+ <contour>
+ <point x="810" y="1045" type="line"/>
+ <point x="815" y="1186"/>
+ <point x="816" y="1339"/>
+ <point x="845" y="1585" type="curve"/>
+ <point x="600" y="1585" type="line"/>
+ <point x="631" y="1339"/>
+ <point x="631" y="1186"/>
+ <point x="635" y="1045" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/R_everseS_olidus.glif b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/R_everseS_olidus.glif
new file mode 100644
index 0000000..799c999
--- /dev/null
+++ b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/R_everseS_olidus.glif
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="ReverseSolidus" format="2">
+ <advance width="1080"/>
+ <unicode hex="005C"/>
+ <outline>
+ <contour>
+ <point x="10" y="1600" type="line"/>
+ <point x="840" y="-245" type="line"/>
+ <point x="1070" y="-245" type="line"/>
+ <point x="240" y="1600" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/R_tC_urlyB_rac.glif b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/R_tC_urlyB_rac.glif
new file mode 100644
index 0000000..48383fb
--- /dev/null
+++ b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/R_tC_urlyB_rac.glif
@@ -0,0 +1,47 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="RtCurlyBrac" format="2">
+ <advance width="1040"/>
+ <unicode hex="007D"/>
+ <outline>
+ <contour>
+ <point x="180" y="-410" type="line"/>
+ <point x="316" y="-383"/>
+ <point x="520" y="-333"/>
+ <point x="570" y="-285" type="curve" smooth="yes"/>
+ <point x="645" y="-213"/>
+ <point x="633" y="378"/>
+ <point x="655" y="410" type="curve" smooth="yes"/>
+ <point x="685" y="453"/>
+ <point x="855" y="560"/>
+ <point x="855" y="615" type="curve" smooth="yes"/>
+ <point x="855" y="670"/>
+ <point x="685" y="777"/>
+ <point x="655" y="820" type="curve" smooth="yes"/>
+ <point x="633" y="852"/>
+ <point x="644" y="1442"/>
+ <point x="570" y="1515" type="curve" smooth="yes"/>
+ <point x="523" y="1562"/>
+ <point x="333" y="1613"/>
+ <point x="205" y="1640" type="curve"/>
+ <point x="155" y="1409" type="line"/>
+ <point x="218" y="1390"/>
+ <point x="323" y="1351"/>
+ <point x="340" y="1330" type="curve" smooth="yes"/>
+ <point x="375" y="1289"/>
+ <point x="364" y="820"/>
+ <point x="382" y="785" type="curve" smooth="yes"/>
+ <point x="405" y="740"/>
+ <point x="542" y="650"/>
+ <point x="542" y="615" type="curve" smooth="yes"/>
+ <point x="542" y="580"/>
+ <point x="404" y="491"/>
+ <point x="380" y="445" type="curve" smooth="yes"/>
+ <point x="362" y="411"/>
+ <point x="375" y="-60"/>
+ <point x="340" y="-100" type="curve" smooth="yes"/>
+ <point x="321" y="-122"/>
+ <point x="197" y="-160"/>
+ <point x="130" y="-179" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/R_tP_aren.glif b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/R_tP_aren.glif
new file mode 100644
index 0000000..ae49fca
--- /dev/null
+++ b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/R_tP_aren.glif
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="RtParen" format="2">
+ <advance width="860"/>
+ <unicode hex="0029"/>
+ <outline>
+ <contour>
+ <point x="185" y="1455" type="line"/>
+ <point x="395" y="1261"/>
+ <point x="485" y="938"/>
+ <point x="485" y="635" type="curve" smooth="yes"/>
+ <point x="485" y="335"/>
+ <point x="399" y="11"/>
+ <point x="175" y="-240" type="curve"/>
+ <point x="326" y="-410" type="line"/>
+ <point x="601" y="-125"/>
+ <point x="746" y="218"/>
+ <point x="746" y="625" type="curve" smooth="yes"/>
+ <point x="746" y="1062"/>
+ <point x="571" y="1444"/>
+ <point x="306" y="1640" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/R_tS_qrB_rac.glif b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/R_tS_qrB_rac.glif
new file mode 100644
index 0000000..325e575
--- /dev/null
+++ b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/R_tS_qrB_rac.glif
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="RtSqrBrac" format="2">
+ <advance width="850"/>
+ <unicode hex="005D"/>
+ <outline>
+ <contour>
+ <point x="660" y="-410" type="line"/>
+ <point x="660" y="1600" type="line"/>
+ <point x="140" y="1600" type="line"/>
+ <point x="140" y="1390" type="line"/>
+ <point x="380" y="1390" type="line"/>
+ <point x="380" y="-200" type="line"/>
+ <point x="140" y="-200" type="line"/>
+ <point x="140" y="-410" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/S_emicolon.glif b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/S_emicolon.glif
new file mode 100644
index 0000000..ae95657
--- /dev/null
+++ b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/S_emicolon.glif
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Semicolon" format="2">
+ <advance width="710"/>
+ <unicode hex="003B"/>
+ <outline>
+ <contour>
+ <point x="200" y="750" type="curve" smooth="yes"/>
+ <point x="200" y="646"/>
+ <point x="274" y="575"/>
+ <point x="375" y="575" type="curve" smooth="yes"/>
+ <point x="477" y="575"/>
+ <point x="550" y="646"/>
+ <point x="550" y="750" type="curve" smooth="yes"/>
+ <point x="550" y="852"/>
+ <point x="477" y="925"/>
+ <point x="375" y="925" type="curve" smooth="yes"/>
+ <point x="274" y="925"/>
+ <point x="200" y="852"/>
+ </contour>
+ <contour>
+ <point x="185" y="50" type="line"/>
+ <point x="345" y="50" type="line"/>
+ <point x="345" y="-34"/>
+ <point x="290" y="-153"/>
+ <point x="185" y="-265" type="curve"/>
+ <point x="330" y="-335" type="line"/>
+ <point x="454" y="-228"/>
+ <point x="560" y="-49"/>
+ <point x="560" y="130" type="curve" smooth="yes"/>
+ <point x="560" y="254"/>
+ <point x="489" y="340"/>
+ <point x="375" y="340" type="curve" smooth="yes"/>
+ <point x="262" y="340"/>
+ <point x="185" y="255"/>
+ <point x="185" y="180" type="curve" smooth="yes"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/S_olidus.glif b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/S_olidus.glif
new file mode 100644
index 0000000..1e33c05
--- /dev/null
+++ b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/S_olidus.glif
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Solidus" format="2">
+ <advance width="1080"/>
+ <unicode hex="002F"/>
+ <outline>
+ <contour>
+ <point x="840" y="1600" type="line"/>
+ <point x="10" y="-245" type="line"/>
+ <point x="240" y="-245" type="line"/>
+ <point x="1070" y="1600" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/S_pace.glif b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/S_pace.glif
new file mode 100644
index 0000000..ef0bed7
--- /dev/null
+++ b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/S_pace.glif
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Space" format="2">
+ <advance width="550"/>
+ <unicode hex="0020"/>
+ <outline/>
+</glyph>
diff --git a/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/S_tar.glif b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/S_tar.glif
new file mode 100644
index 0000000..07072d0
--- /dev/null
+++ b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/S_tar.glif
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Star" format="2">
+ <advance width="1040"/>
+ <unicode hex="002A"/>
+ <outline>
+ <contour>
+ <point x="827" y="1493" type="line"/>
+ <point x="747" y="1426"/>
+ <point x="679" y="1367"/>
+ <point x="594" y="1308" type="curve"/>
+ <point x="599" y="1405"/>
+ <point x="609" y="1486"/>
+ <point x="624" y="1600" type="curve"/>
+ <point x="425" y="1600" type="line"/>
+ <point x="444" y="1497"/>
+ <point x="460" y="1412"/>
+ <point x="468" y="1308" type="curve"/>
+ <point x="383" y="1360"/>
+ <point x="312" y="1408"/>
+ <point x="228" y="1476" type="curve"/>
+ <point x="126" y="1306" type="line"/>
+ <point x="231" y="1271"/>
+ <point x="331" y="1234"/>
+ <point x="412" y="1196" type="curve"/>
+ <point x="328" y="1153"/>
+ <point x="243" y="1120"/>
+ <point x="136" y="1077" type="curve"/>
+ <point x="237" y="897" type="line"/>
+ <point x="316" y="968"/>
+ <point x="382" y="1026"/>
+ <point x="466" y="1087" type="curve"/>
+ <point x="459" y="983"/>
+ <point x="449" y="896"/>
+ <point x="431" y="793" type="curve"/>
+ <point x="632" y="793" type="line"/>
+ <point x="610" y="906"/>
+ <point x="602" y="987"/>
+ <point x="593" y="1084" type="curve"/>
+ <point x="682" y="1027"/>
+ <point x="747" y="981"/>
+ <point x="830" y="914" type="curve"/>
+ <point x="936" y="1089" type="line"/>
+ <point x="827" y="1127"/>
+ <point x="743" y="1155"/>
+ <point x="651" y="1196" type="curve"/>
+ <point x="738" y="1241"/>
+ <point x="820" y="1277"/>
+ <point x="924" y="1321" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/T_ilde.glif b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/T_ilde.glif
new file mode 100644
index 0000000..ec9fc73
--- /dev/null
+++ b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/T_ilde.glif
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Tilde" format="2">
+ <advance width="1115"/>
+ <unicode hex="007E"/>
+ <outline>
+ <contour>
+ <point x="165" y="345" type="line"/>
+ <point x="170" y="394"/>
+ <point x="202" y="435"/>
+ <point x="280" y="435" type="curve" smooth="yes"/>
+ <point x="435" y="435"/>
+ <point x="615" y="330"/>
+ <point x="825" y="330" type="curve" smooth="yes"/>
+ <point x="984" y="330"/>
+ <point x="1080" y="512"/>
+ <point x="1080" y="640" type="curve"/>
+ <point x="935" y="640" type="line"/>
+ <point x="928" y="594"/>
+ <point x="898" y="540"/>
+ <point x="815" y="540" type="curve" smooth="yes"/>
+ <point x="599" y="540"/>
+ <point x="461" y="645"/>
+ <point x="260" y="645" type="curve" smooth="yes"/>
+ <point x="104" y="645"/>
+ <point x="20" y="467"/>
+ <point x="20" y="345" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/V_ertL_ine.glif b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/V_ertL_ine.glif
new file mode 100644
index 0000000..d7caa84
--- /dev/null
+++ b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/V_ertL_ine.glif
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="VertLine" format="2">
+ <advance width="690"/>
+ <unicode hex="007C"/>
+ <outline>
+ <contour>
+ <point x="240" y="1600" type="line"/>
+ <point x="240" y="-390" type="line"/>
+ <point x="450" y="-390" type="line"/>
+ <point x="450" y="1600" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/_notdef.glif b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/_notdef.glif
new file mode 100644
index 0000000..a3e9354
--- /dev/null
+++ b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/_notdef.glif
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name=".notdef" format="2">
+ <advance width="1400"/>
+ <outline>
+ <contour>
+ <point x="100" y="0" type="line"/>
+ <point x="1300" y="0" type="line"/>
+ <point x="1300" y="1800" type="line"/>
+ <point x="100" y="1800" type="line"/>
+ </contour>
+ <contour>
+ <point x="150" y="1750" type="line"/>
+ <point x="1250" y="1750" type="line"/>
+ <point x="1250" y="50" type="line"/>
+ <point x="150" y="50" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/_null.glif b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/_null.glif
new file mode 100644
index 0000000..0b9caa6
--- /dev/null
+++ b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/_null.glif
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name=".null" format="2">
+ <outline/>
+</glyph>
diff --git a/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/contents.plist b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/contents.plist
new file mode 100644
index 0000000..33b59ec
--- /dev/null
+++ b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/contents.plist
@@ -0,0 +1,234 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>.notdef</key>
+ <string>_notdef.glif</string>
+ <key>.null</key>
+ <string>_null.glif</string>
+ <key>Ampersand</key>
+ <string>A_mpersand.glif</string>
+ <key>AtSgn</key>
+ <string>A_tS_gn.glif</string>
+ <key>Bpos</key>
+ <string>B_pos.glif</string>
+ <key>CircumAccent</key>
+ <string>C_ircumA_ccent.glif</string>
+ <key>Colon</key>
+ <string>C_olon.glif</string>
+ <key>CombAcute</key>
+ <string>C_ombA_cute.glif</string>
+ <key>CombCircum</key>
+ <string>C_ombC_ircum.glif</string>
+ <key>CombDiaer</key>
+ <string>C_ombD_iaer.glif</string>
+ <key>CombGrave</key>
+ <string>C_ombG_rave.glif</string>
+ <key>CombRingAbv</key>
+ <string>C_ombR_ingA_bv.glif</string>
+ <key>CombTilde</key>
+ <string>C_ombT_ilde.glif</string>
+ <key>Comma</key>
+ <string>C_omma.glif</string>
+ <key>DigitEight</key>
+ <string>D_igitE_ight.glif</string>
+ <key>DigitFive</key>
+ <string>D_igitF_ive.glif</string>
+ <key>DigitFour</key>
+ <string>D_igitF_our.glif</string>
+ <key>DigitNine</key>
+ <string>D_igitN_ine.glif</string>
+ <key>DigitOne</key>
+ <string>D_igitO_ne.glif</string>
+ <key>DigitSeven</key>
+ <string>D_igitS_even.glif</string>
+ <key>DigitSix</key>
+ <string>D_igitS_ix.glif</string>
+ <key>DigitThree</key>
+ <string>D_igitT_hree.glif</string>
+ <key>DigitTwo</key>
+ <string>D_igitT_wo.glif</string>
+ <key>DigitZero</key>
+ <string>D_igitZ_ero.glif</string>
+ <key>DollarSgn</key>
+ <string>D_ollarS_gn.glif</string>
+ <key>DottedCirc</key>
+ <string>D_ottedC_irc.glif</string>
+ <key>EqSgn</key>
+ <string>E_qS_gn.glif</string>
+ <key>ExclamationMrk</key>
+ <string>E_xclamationM_rk.glif</string>
+ <key>FullStop</key>
+ <string>F_ullS_top.glif</string>
+ <key>GTSgn</key>
+ <string>G_T_S_gn.glif</string>
+ <key>GraveAccent</key>
+ <string>G_raveA_ccent.glif</string>
+ <key>Hyphen</key>
+ <string>H_yphen.glif</string>
+ <key>HyphenMinus</key>
+ <string>H_yphenM_inus.glif</string>
+ <key>Hyphen_Soft</key>
+ <string>H_yphen_S_oft.glif</string>
+ <key>LTSgn</key>
+ <string>L_T_S_gn.glif</string>
+ <key>LftCurlyBrac</key>
+ <string>L_ftC_urlyB_rac.glif</string>
+ <key>LftParen</key>
+ <string>L_ftP_aren.glif</string>
+ <key>LftSqrBrac</key>
+ <string>L_ftS_qrB_rac.glif</string>
+ <key>LowLine</key>
+ <string>L_owL_ine.glif</string>
+ <key>LtnCapA</key>
+ <string>L_tnC_apA_.glif</string>
+ <key>LtnCapA.alt</key>
+ <string>L_tnC_apA_.alt.glif</string>
+ <key>LtnCapADiaer</key>
+ <string>L_tnC_apA_D_iaer.glif</string>
+ <key>LtnCapB</key>
+ <string>L_tnC_apB_.glif</string>
+ <key>LtnCapC</key>
+ <string>L_tnC_apC_.glif</string>
+ <key>LtnCapD</key>
+ <string>L_tnC_apD_.glif</string>
+ <key>LtnCapE</key>
+ <string>L_tnC_apE_.glif</string>
+ <key>LtnCapF</key>
+ <string>L_tnC_apF_.glif</string>
+ <key>LtnCapG</key>
+ <string>L_tnC_apG_.glif</string>
+ <key>LtnCapH</key>
+ <string>L_tnC_apH_.glif</string>
+ <key>LtnCapI</key>
+ <string>L_tnC_apI_.glif</string>
+ <key>LtnCapJ</key>
+ <string>L_tnC_apJ_.glif</string>
+ <key>LtnCapK</key>
+ <string>L_tnC_apK_.glif</string>
+ <key>LtnCapL</key>
+ <string>L_tnC_apL_.glif</string>
+ <key>LtnCapM</key>
+ <string>L_tnC_apM_.glif</string>
+ <key>LtnCapN</key>
+ <string>L_tnC_apN_.glif</string>
+ <key>LtnCapO</key>
+ <string>L_tnC_apO_.glif</string>
+ <key>LtnCapP</key>
+ <string>L_tnC_apP_.glif</string>
+ <key>LtnCapQ</key>
+ <string>L_tnC_apQ_.glif</string>
+ <key>LtnCapR</key>
+ <string>L_tnC_apR_.glif</string>
+ <key>LtnCapS</key>
+ <string>L_tnC_apS_.glif</string>
+ <key>LtnCapT</key>
+ <string>L_tnC_apT_.glif</string>
+ <key>LtnCapU</key>
+ <string>L_tnC_apU_.glif</string>
+ <key>LtnCapV</key>
+ <string>L_tnC_apV_.glif</string>
+ <key>LtnCapW</key>
+ <string>L_tnC_apW_.glif</string>
+ <key>LtnCapX</key>
+ <string>L_tnC_apX_.glif</string>
+ <key>LtnCapY</key>
+ <string>L_tnC_apY_.glif</string>
+ <key>LtnSmA</key>
+ <string>L_tnS_mA_.glif</string>
+ <key>LtnSmAAcute</key>
+ <string>L_tnS_mA_A_cute.glif</string>
+ <key>LtnSmACircum</key>
+ <string>L_tnS_mA_C_ircum.glif</string>
+ <key>LtnSmADiaer</key>
+ <string>L_tnS_mA_D_iaer.glif</string>
+ <key>LtnSmAGrave</key>
+ <string>L_tnS_mA_G_rave.glif</string>
+ <key>LtnSmARingAbv</key>
+ <string>L_tnS_mA_R_ingA_bv.glif</string>
+ <key>LtnSmATilde</key>
+ <string>L_tnS_mA_T_ilde.glif</string>
+ <key>LtnSmB</key>
+ <string>L_tnS_mB_.glif</string>
+ <key>LtnSmC</key>
+ <string>L_tnS_mC_.glif</string>
+ <key>LtnSmD</key>
+ <string>L_tnS_mD_.glif</string>
+ <key>LtnSmE</key>
+ <string>L_tnS_mE_.glif</string>
+ <key>LtnSmF</key>
+ <string>L_tnS_mF_.glif</string>
+ <key>LtnSmG</key>
+ <string>L_tnS_mG_.glif</string>
+ <key>LtnSmH</key>
+ <string>L_tnS_mH_.glif</string>
+ <key>LtnSmI</key>
+ <string>L_tnS_mI_.glif</string>
+ <key>LtnSmJ</key>
+ <string>L_tnS_mJ_.glif</string>
+ <key>LtnSmK</key>
+ <string>L_tnS_mK_.glif</string>
+ <key>LtnSmL</key>
+ <string>L_tnS_mL_.glif</string>
+ <key>LtnSmM</key>
+ <string>L_tnS_mM_.glif</string>
+ <key>LtnSmN</key>
+ <string>L_tnS_mN_.glif</string>
+ <key>LtnSmO</key>
+ <string>L_tnS_mO_.glif</string>
+ <key>LtnSmP</key>
+ <string>L_tnS_mP_.glif</string>
+ <key>LtnSmQ</key>
+ <string>L_tnS_mQ_.glif</string>
+ <key>LtnSmR</key>
+ <string>L_tnS_mR_.glif</string>
+ <key>LtnSmS</key>
+ <string>L_tnS_mS_.glif</string>
+ <key>LtnSmT</key>
+ <string>L_tnS_mT_.glif</string>
+ <key>LtnSmU</key>
+ <string>L_tnS_mU_.glif</string>
+ <key>LtnSmV</key>
+ <string>L_tnS_mV_.glif</string>
+ <key>LtnSmW</key>
+ <string>L_tnS_mW_.glif</string>
+ <key>LtnSmX</key>
+ <string>L_tnS_mX_.glif</string>
+ <key>LtnSmY</key>
+ <string>L_tnS_mY_.glif</string>
+ <key>NonBreakingHyphen</key>
+ <string>N_onB_reakingH_yphen.glif</string>
+ <key>NumSgn</key>
+ <string>N_umS_gn.glif</string>
+ <key>PercentSgn</key>
+ <string>P_ercentS_gn.glif</string>
+ <key>PlusSgn</key>
+ <string>P_lusS_gn.glif</string>
+ <key>QstnMrk</key>
+ <string>Q_stnM_rk.glif</string>
+ <key>QuotMrk</key>
+ <string>Q_uotM_rk.glif</string>
+ <key>ReverseSolidus</key>
+ <string>R_everseS_olidus.glif</string>
+ <key>RtCurlyBrac</key>
+ <string>R_tC_urlyB_rac.glif</string>
+ <key>RtParen</key>
+ <string>R_tP_aren.glif</string>
+ <key>RtSqrBrac</key>
+ <string>R_tS_qrB_rac.glif</string>
+ <key>Semicolon</key>
+ <string>S_emicolon.glif</string>
+ <key>Solidus</key>
+ <string>S_olidus.glif</string>
+ <key>Space</key>
+ <string>S_pace.glif</string>
+ <key>Star</key>
+ <string>S_tar.glif</string>
+ <key>Tilde</key>
+ <string>T_ilde.glif</string>
+ <key>VertLine</key>
+ <string>V_ertL_ine.glif</string>
+ <key>nonmarkingreturn</key>
+ <string>nonmarkingreturn.glif</string>
+</dict>
+</plist>
diff --git a/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/nonmarkingreturn.glif b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/nonmarkingreturn.glif
new file mode 100644
index 0000000..ee41448
--- /dev/null
+++ b/tests/reference/ufo/psfrenameglyphs.ufo/glyphs/nonmarkingreturn.glif
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="nonmarkingreturn" format="2">
+ <advance width="1024"/>
+ <outline/>
+</glyph>
diff --git a/tests/reference/ufo/psfrenameglyphs.ufo/layercontents.plist b/tests/reference/ufo/psfrenameglyphs.ufo/layercontents.plist
new file mode 100644
index 0000000..42b7482
--- /dev/null
+++ b/tests/reference/ufo/psfrenameglyphs.ufo/layercontents.plist
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<array>
+ <array>
+ <string>public.default</string>
+ <string>glyphs</string>
+ </array>
+</array>
+</plist>
diff --git a/tests/reference/ufo/psfrenameglyphs.ufo/lib.plist b/tests/reference/ufo/psfrenameglyphs.ufo/lib.plist
new file mode 100644
index 0000000..72c2421
--- /dev/null
+++ b/tests/reference/ufo/psfrenameglyphs.ufo/lib.plist
@@ -0,0 +1,531 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>com.schriftgestaltung.Glyphs.fontUserData</key>
+ <dict/>
+ <key>com.schriftgestaltung.appVersion</key>
+ <string>1161</string>
+ <key>com.schriftgestaltung.customParameter.GSFont.DisplayStrings</key>
+ <string/>
+ <key>com.schriftgestaltung.customParameter.GSFont.disablesAutomaticAlignment</key>
+ <true/>
+ <key>com.schriftgestaltung.customParameter.GSFont.disablesLastChange</key>
+ <true/>
+ <key>com.schriftgestaltung.customParameter.GSFont.useNiceNames</key>
+ <integer>0</integer>
+ <key>com.schriftgestaltung.customParameter.GSFontMaster.customValue</key>
+ <integer>0</integer>
+ <key>com.schriftgestaltung.customParameter.GSFontMaster.customValue1</key>
+ <integer>0</integer>
+ <key>com.schriftgestaltung.customParameter.GSFontMaster.customValue2</key>
+ <integer>0</integer>
+ <key>com.schriftgestaltung.customParameter.GSFontMaster.customValue3</key>
+ <integer>0</integer>
+ <key>com.schriftgestaltung.customParameter.GSFontMaster.iconName</key>
+ <string/>
+ <key>com.schriftgestaltung.customParameter.GSFontMaster.weightValue</key>
+ <integer>700</integer>
+ <key>com.schriftgestaltung.customParameter.GSFontMaster.widthValue</key>
+ <integer>100</integer>
+ <key>com.schriftgestaltung.fontMasterOrder</key>
+ <integer>1</integer>
+ <key>com.schriftgestaltung.glyphOrder</key>
+ <array>
+ <string>.notdef</string>
+ <string>.null</string>
+ <string>nonmarkingreturn</string>
+ <string>Space</string>
+ <string>ExclamationMrk</string>
+ <string>QuotMrk</string>
+ <string>NumSgn</string>
+ <string>DollarSgn</string>
+ <string>PercentSgn</string>
+ <string>Ampersand</string>
+ <string>Bpos</string>
+ <string>LftParen</string>
+ <string>RtParen</string>
+ <string>Star</string>
+ <string>PlusSgn</string>
+ <string>Comma</string>
+ <string>HyphenMinus</string>
+ <string>FullStop</string>
+ <string>Solidus</string>
+ <string>DigitOne</string>
+ <string>DigitTwo</string>
+ <string>DigitThree</string>
+ <string>DigitFour</string>
+ <string>DigitFive</string>
+ <string>DigitSix</string>
+ <string>DigitSeven</string>
+ <string>DigitEight</string>
+ <string>DigitNine</string>
+ <string>Colon</string>
+ <string>Semicolon</string>
+ <string>LTSgn</string>
+ <string>EqSgn</string>
+ <string>GTSgn</string>
+ <string>QstnMrk</string>
+ <string>AtSgn</string>
+ <string>LtnCapA</string>
+ <string>LtnCapA.alt</string>
+ <string>LtnCapB</string>
+ <string>LtnCapC</string>
+ <string>LtnCapD</string>
+ <string>LtnCapE</string>
+ <string>LtnCapF</string>
+ <string>LtnCapG</string>
+ <string>LtnCapH</string>
+ <string>LtnCapI</string>
+ <string>LtnCapJ</string>
+ <string>LtnCapK</string>
+ <string>LtnCapL</string>
+ <string>LtnCapM</string>
+ <string>LtnCapN</string>
+ <string>LtnCapO</string>
+ <string>LtnCapP</string>
+ <string>LtnCapQ</string>
+ <string>LtnCapR</string>
+ <string>LtnCapS</string>
+ <string>LtnCapT</string>
+ <string>LtnCapU</string>
+ <string>LtnCapV</string>
+ <string>LtnCapW</string>
+ <string>LtnCapX</string>
+ <string>LtnCapY</string>
+ <string>LftSqrBrac</string>
+ <string>ReverseSolidus</string>
+ <string>RtSqrBrac</string>
+ <string>CircumAccent</string>
+ <string>LowLine</string>
+ <string>GraveAccent</string>
+ <string>LtnSmA</string>
+ <string>LtnSmB</string>
+ <string>LtnSmC</string>
+ <string>LtnSmD</string>
+ <string>LtnSmE</string>
+ <string>LtnSmF</string>
+ <string>LtnSmG</string>
+ <string>LtnSmH</string>
+ <string>LtnSmI</string>
+ <string>LtnSmJ</string>
+ <string>LtnSmK</string>
+ <string>LtnSmL</string>
+ <string>LtnSmM</string>
+ <string>LtnSmN</string>
+ <string>LtnSmO</string>
+ <string>LtnSmP</string>
+ <string>LtnSmQ</string>
+ <string>LtnSmR</string>
+ <string>LtnSmS</string>
+ <string>LtnSmT</string>
+ <string>LtnSmU</string>
+ <string>LtnSmV</string>
+ <string>LtnSmW</string>
+ <string>LtnSmX</string>
+ <string>LtnSmY</string>
+ <string>LftCurlyBrac</string>
+ <string>VertLine</string>
+ <string>RtCurlyBrac</string>
+ <string>Tilde</string>
+ <string>LtnCapADiaer</string>
+ <string>LtnSmAAcute</string>
+ <string>LtnSmAGrave</string>
+ <string>LtnSmACircum</string>
+ <string>LtnSmADiaer</string>
+ <string>LtnSmATilde</string>
+ <string>LtnSmARingAbv</string>
+ <string>DottedCirc</string>
+ <string>Hyphen</string>
+ <string>NonBreakingHyphen</string>
+ <string>Hyphen_Soft</string>
+ <string>CombAcute</string>
+ <string>CombGrave</string>
+ <string>CombCircum</string>
+ <string>CombTilde</string>
+ <string>CombDiaer</string>
+ <string>CombRingAbv</string>
+ </array>
+ <key>com.schriftgestaltung.keyboardIncrement</key>
+ <integer>1</integer>
+ <key>com.schriftgestaltung.weight</key>
+ <string>Bold</string>
+ <key>com.schriftgestaltung.weightValue</key>
+ <integer>700</integer>
+ <key>com.schriftgestaltung.width</key>
+ <string>Regular</string>
+ <key>com.schriftgestaltung.widthValue</key>
+ <integer>100</integer>
+ <key>org.sil.lcg.toneLetters</key>
+ <dict>
+ <key>contourWidth</key>
+ <integer>540</integer>
+ <key>dotSize</key>
+ <integer>280</integer>
+ <key>dotSpacing</key>
+ <integer>200</integer>
+ <key>glyphDepth</key>
+ <integer>-25</integer>
+ <key>glyphHeight</key>
+ <integer>1600</integer>
+ <key>italicAngle</key>
+ <integer>0</integer>
+ <key>marginDotLeft</key>
+ <integer>100</integer>
+ <key>marginDotRight</key>
+ <integer>140</integer>
+ <key>marginFlatLeft</key>
+ <integer>100</integer>
+ <key>marginFlatRight</key>
+ <integer>140</integer>
+ <key>marginPointLeft</key>
+ <integer>80</integer>
+ <key>marginPointRight</key>
+ <integer>120</integer>
+ <key>strokeThickness</key>
+ <integer>200</integer>
+ </dict>
+ <key>public.glyphOrder</key>
+ <array>
+ <string>.notdef</string>
+ <string>.null</string>
+ <string>nonmarkingreturn</string>
+ <string>Space</string>
+ <string>ExclamationMrk</string>
+ <string>QuotMrk</string>
+ <string>NumSgn</string>
+ <string>DollarSgn</string>
+ <string>PercentSgn</string>
+ <string>Ampersand</string>
+ <string>Bpos</string>
+ <string>LftParen</string>
+ <string>RtParen</string>
+ <string>Star</string>
+ <string>PlusSgn</string>
+ <string>Comma</string>
+ <string>HyphenMinus</string>
+ <string>FullStop</string>
+ <string>Solidus</string>
+ <string>DigitZero</string>
+ <string>DigitOne</string>
+ <string>DigitTwo</string>
+ <string>DigitThree</string>
+ <string>DigitFour</string>
+ <string>DigitFive</string>
+ <string>DigitSix</string>
+ <string>DigitSeven</string>
+ <string>DigitEight</string>
+ <string>DigitNine</string>
+ <string>Colon</string>
+ <string>Semicolon</string>
+ <string>LTSgn</string>
+ <string>EqSgn</string>
+ <string>GTSgn</string>
+ <string>QstnMrk</string>
+ <string>AtSgn</string>
+ <string>LtnCapA</string>
+ <string>LtnCapA.alt</string>
+ <string>LtnCapB</string>
+ <string>LtnCapC</string>
+ <string>LtnCapD</string>
+ <string>LtnCapE</string>
+ <string>LtnCapF</string>
+ <string>LtnCapG</string>
+ <string>LtnCapH</string>
+ <string>LtnCapI</string>
+ <string>LtnCapJ</string>
+ <string>LtnCapK</string>
+ <string>LtnCapL</string>
+ <string>LtnCapM</string>
+ <string>LtnCapN</string>
+ <string>LtnCapO</string>
+ <string>LtnCapP</string>
+ <string>LtnCapQ</string>
+ <string>LtnCapR</string>
+ <string>LtnCapS</string>
+ <string>LtnCapT</string>
+ <string>LtnCapU</string>
+ <string>LtnCapV</string>
+ <string>LtnCapW</string>
+ <string>LtnCapX</string>
+ <string>LtnCapY</string>
+ <string>LftSqrBrac</string>
+ <string>ReverseSolidus</string>
+ <string>RtSqrBrac</string>
+ <string>CircumAccent</string>
+ <string>LowLine</string>
+ <string>GraveAccent</string>
+ <string>LtnSmA</string>
+ <string>LtnSmB</string>
+ <string>LtnSmC</string>
+ <string>LtnSmD</string>
+ <string>LtnSmE</string>
+ <string>LtnSmF</string>
+ <string>LtnSmG</string>
+ <string>LtnSmH</string>
+ <string>LtnSmI</string>
+ <string>LtnSmJ</string>
+ <string>LtnSmK</string>
+ <string>LtnSmL</string>
+ <string>LtnSmM</string>
+ <string>LtnSmN</string>
+ <string>LtnSmO</string>
+ <string>LtnSmP</string>
+ <string>LtnSmQ</string>
+ <string>LtnSmR</string>
+ <string>LtnSmS</string>
+ <string>LtnSmT</string>
+ <string>LtnSmU</string>
+ <string>LtnSmV</string>
+ <string>LtnSmW</string>
+ <string>LtnSmX</string>
+ <string>LtnSmY</string>
+ <string>LftCurlyBrac</string>
+ <string>VertLine</string>
+ <string>RtCurlyBrac</string>
+ <string>Tilde</string>
+ <string>LtnCapADiaer</string>
+ <string>LtnSmAAcute</string>
+ <string>LtnSmAGrave</string>
+ <string>LtnSmACircum</string>
+ <string>LtnSmADiaer</string>
+ <string>LtnSmATilde</string>
+ <string>LtnSmARingAbv</string>
+ <string>DottedCirc</string>
+ <string>Hyphen</string>
+ <string>NonBreakingHyphen</string>
+ <string>Hyphen_Soft</string>
+ <string>CombAcute</string>
+ <string>CombGrave</string>
+ <string>CombCircum</string>
+ <string>CombTilde</string>
+ <string>CombDiaer</string>
+ <string>CombRingAbv</string>
+ </array>
+ <key>public.postscriptNames</key>
+ <dict>
+ <key>Ampersand</key>
+ <string>ampersand</string>
+ <key>AtSgn</key>
+ <string>at</string>
+ <key>Bpos</key>
+ <string>quotesingle</string>
+ <key>CircumAccent</key>
+ <string>asciicircum</string>
+ <key>Colon</key>
+ <string>colon</string>
+ <key>CombAcute</key>
+ <string>acutecomb</string>
+ <key>CombCircum</key>
+ <string>uni0302</string>
+ <key>CombDiaer</key>
+ <string>uni0308</string>
+ <key>CombGrave</key>
+ <string>gravecomb</string>
+ <key>CombRingAbv</key>
+ <string>uni030A</string>
+ <key>CombTilde</key>
+ <string>tildecomb</string>
+ <key>Comma</key>
+ <string>comma</string>
+ <key>DigitEight</key>
+ <string>eight</string>
+ <key>DigitFive</key>
+ <string>five</string>
+ <key>DigitFour</key>
+ <string>four</string>
+ <key>DigitNine</key>
+ <string>nine</string>
+ <key>DigitOne</key>
+ <string>one</string>
+ <key>DigitSeven</key>
+ <string>seven</string>
+ <key>DigitSix</key>
+ <string>six</string>
+ <key>DigitThree</key>
+ <string>three</string>
+ <key>DigitTwo</key>
+ <string>two</string>
+ <key>DigitZero</key>
+ <string>zero</string>
+ <key>DollarSgn</key>
+ <string>dollar</string>
+ <key>DottedCirc</key>
+ <string>uni25CC</string>
+ <key>EqSgn</key>
+ <string>equal</string>
+ <key>ExclamationMrk</key>
+ <string>exclam</string>
+ <key>FullStop</key>
+ <string>period</string>
+ <key>GTSgn</key>
+ <string>greater</string>
+ <key>GraveAccent</key>
+ <string>grave</string>
+ <key>Hyphen</key>
+ <string>uni2010</string>
+ <key>HyphenMinus</key>
+ <string>hyphen</string>
+ <key>Hyphen_Soft</key>
+ <string>uni00AD</string>
+ <key>LTSgn</key>
+ <string>less</string>
+ <key>LftCurlyBrac</key>
+ <string>braceleft</string>
+ <key>LftParen</key>
+ <string>parenleft</string>
+ <key>LftSqrBrac</key>
+ <string>bracketleft</string>
+ <key>LowLine</key>
+ <string>underscore</string>
+ <key>LtnCapA</key>
+ <string>A</string>
+ <key>LtnCapA.alt</key>
+ <string>A</string>
+ <key>LtnCapADiaer</key>
+ <string>Adieresis</string>
+ <key>LtnCapB</key>
+ <string>B</string>
+ <key>LtnCapC</key>
+ <string>C</string>
+ <key>LtnCapD</key>
+ <string>D</string>
+ <key>LtnCapE</key>
+ <string>E</string>
+ <key>LtnCapF</key>
+ <string>F</string>
+ <key>LtnCapG</key>
+ <string>G</string>
+ <key>LtnCapH</key>
+ <string>H</string>
+ <key>LtnCapI</key>
+ <string>I</string>
+ <key>LtnCapJ</key>
+ <string>J</string>
+ <key>LtnCapK</key>
+ <string>K</string>
+ <key>LtnCapL</key>
+ <string>L</string>
+ <key>LtnCapM</key>
+ <string>M</string>
+ <key>LtnCapN</key>
+ <string>N</string>
+ <key>LtnCapO</key>
+ <string>O</string>
+ <key>LtnCapP</key>
+ <string>P</string>
+ <key>LtnCapQ</key>
+ <string>Q</string>
+ <key>LtnCapR</key>
+ <string>R</string>
+ <key>LtnCapS</key>
+ <string>S</string>
+ <key>LtnCapT</key>
+ <string>T</string>
+ <key>LtnCapU</key>
+ <string>U</string>
+ <key>LtnCapV</key>
+ <string>V</string>
+ <key>LtnCapW</key>
+ <string>W</string>
+ <key>LtnCapX</key>
+ <string>X</string>
+ <key>LtnCapY</key>
+ <string>Y</string>
+ <key>LtnSmA</key>
+ <string>a</string>
+ <key>LtnSmAAcute</key>
+ <string>aacute</string>
+ <key>LtnSmACircum</key>
+ <string>acircumflex</string>
+ <key>LtnSmADiaer</key>
+ <string>adieresis</string>
+ <key>LtnSmAGrave</key>
+ <string>agrave</string>
+ <key>LtnSmARingAbv</key>
+ <string>aring</string>
+ <key>LtnSmATilde</key>
+ <string>atilde</string>
+ <key>LtnSmB</key>
+ <string>b</string>
+ <key>LtnSmC</key>
+ <string>c</string>
+ <key>LtnSmD</key>
+ <string>d</string>
+ <key>LtnSmE</key>
+ <string>e</string>
+ <key>LtnSmF</key>
+ <string>f</string>
+ <key>LtnSmG</key>
+ <string>g</string>
+ <key>LtnSmH</key>
+ <string>h</string>
+ <key>LtnSmI</key>
+ <string>i</string>
+ <key>LtnSmJ</key>
+ <string>j</string>
+ <key>LtnSmK</key>
+ <string>k</string>
+ <key>LtnSmL</key>
+ <string>l</string>
+ <key>LtnSmM</key>
+ <string>m</string>
+ <key>LtnSmN</key>
+ <string>n</string>
+ <key>LtnSmO</key>
+ <string>o</string>
+ <key>LtnSmP</key>
+ <string>p</string>
+ <key>LtnSmQ</key>
+ <string>q</string>
+ <key>LtnSmR</key>
+ <string>r</string>
+ <key>LtnSmS</key>
+ <string>s</string>
+ <key>LtnSmT</key>
+ <string>t</string>
+ <key>LtnSmU</key>
+ <string>u</string>
+ <key>LtnSmV</key>
+ <string>v</string>
+ <key>LtnSmW</key>
+ <string>w</string>
+ <key>LtnSmX</key>
+ <string>x</string>
+ <key>LtnSmY</key>
+ <string>y</string>
+ <key>NonBreakingHyphen</key>
+ <string>uni2011</string>
+ <key>NumSgn</key>
+ <string>numbersign</string>
+ <key>PercentSgn</key>
+ <string>percent</string>
+ <key>PlusSgn</key>
+ <string>plus</string>
+ <key>QstnMrk</key>
+ <string>question</string>
+ <key>QuotMrk</key>
+ <string>quotedbl</string>
+ <key>ReverseSolidus</key>
+ <string>backslash</string>
+ <key>RtCurlyBrac</key>
+ <string>braceright</string>
+ <key>RtParen</key>
+ <string>parenright</string>
+ <key>RtSqrBrac</key>
+ <string>bracketright</string>
+ <key>Semicolon</key>
+ <string>semicolon</string>
+ <key>Solidus</key>
+ <string>slash</string>
+ <key>Space</key>
+ <string>space</string>
+ <key>Star</key>
+ <string>asterisk</string>
+ <key>Tilde</key>
+ <string>asciitilde</string>
+ <key>VertLine</key>
+ <string>bar</string>
+ </dict>
+</dict>
+</plist>
diff --git a/tests/reference/ufo/psfrenameglyphs.ufo/metainfo.plist b/tests/reference/ufo/psfrenameglyphs.ufo/metainfo.plist
new file mode 100644
index 0000000..aa10c5c
--- /dev/null
+++ b/tests/reference/ufo/psfrenameglyphs.ufo/metainfo.plist
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>creator</key>
+ <string>org.sil.scripts.pysilfont</string>
+ <key>formatVersion</key>
+ <integer>3</integer>
+</dict>
+</plist>
diff --git a/tests/reference/ufo/psfsetassocfeat.lg b/tests/reference/ufo/psfsetassocfeat.lg
new file mode 100644
index 0000000..d0f1b38
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocfeat.lg
@@ -0,0 +1,30 @@
+2021-06-29 14:42:22 Progress: Running: psfsetassocfeat tests/input/font-psf-test/source/PsfTest-Italic.ufo -i tests/input/psfsetassocfeat.csv -l local/testresults/ufo/psfsetassocfeat.log -p loglevel=i
+2021-06-29 14:42:22 Progress: Opening file for input: tests/input/psfsetassocfeat.csv
+2021-06-29 14:42:22 Progress: Reading UFO: tests/input/font-psf-test/source/PsfTest-Italic.ufo
+2021-06-29 14:42:22 Info: Processing Glyph Layer 0: public.defaultglyphs
+2021-06-29 14:42:22 Progress: Checking fontinfo.plist metadata
+2021-06-29 14:42:22 Warning: openTypeOS2FamilyClass would be removed from fontinfo Old value: [0, 0]
+2021-06-29 14:42:22 Info: Types: Old - list, New - NoneType
+2021-06-29 14:42:22 Warning: year would be removed from fontinfo Old value: 2021
+2021-06-29 14:42:22 Info: Types: Old - int, New - NoneType
+2021-06-29 14:42:22 Warning: capHeight would be updated Old value: 1485.3, new value: 1485
+2021-06-29 14:42:22 Info: Types: Old - float, New - int
+2021-06-29 14:42:22 Warning: styleMapFamilyName would be uppdated Old value: Psf test, new value: Psf Test
+2021-06-29 14:42:22 Info: Types: Old - string, New - string
+2021-06-29 14:42:22 Warning: openTypeOS2TypoLineGap would be updated Old value: 1, new value: 0
+2021-06-29 14:42:22 Info: Types: Old - int, New - int
+2021-06-29 14:42:22 Warning: openTypeOS2Selection would be added New value: [7]
+2021-06-29 14:42:22 Info: Types: Old - NoneType, New - list
+2021-06-29 14:42:22 Warning: openTypeNamePreferredFamilyName would be updated Old value: Psf Testing, new value: Psf Test
+2021-06-29 14:42:22 Info: Types: Old - string, New - string
+2021-06-29 14:42:22 Progress: Checking lib.plist metadata
+2021-06-29 14:42:22 Warning: com.schriftgestaltung.disablesAutomaticAlignment would be deleted - obsolete key Old value: True
+2021-06-29 14:42:22 Info: Types: Old - bool, New - NoneType
+2021-06-29 14:42:22 Warning: com.schriftgestaltung.disablesLastChange would be deleted - obsolete key Old value: True
+2021-06-29 14:42:22 Info: Types: Old - bool, New - NoneType
+2021-06-29 14:42:22 Progress: Check & fix results:- Errors: 0, Changes to make: 9, Other warnings: 0
+2021-06-29 14:42:22 Progress: See log file for details
+2021-06-29 14:42:22 Progress: Processing font for output
+2021-06-29 14:42:22 Progress: Output UFO already exists - reading for comparison
+2021-06-29 14:42:22 Progress: Writing font to local/testresults/ufo/psfsetassocfeat.ufo
+2021-06-29 14:42:22 Info: Processing glyphs directory
diff --git a/tests/reference/ufo/psfsetassocfeat.ufo/fontinfo.plist b/tests/reference/ufo/psfsetassocfeat.ufo/fontinfo.plist
new file mode 100644
index 0000000..52c03d6
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocfeat.ufo/fontinfo.plist
@@ -0,0 +1,243 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>ascender</key>
+ <integer>2100</integer>
+ <key>capHeight</key>
+ <real>1485.3</real>
+ <key>copyright</key>
+ <string>Copyright (c) 2004-2021 SIL International</string>
+ <key>descender</key>
+ <integer>-550</integer>
+ <key>familyName</key>
+ <string>Psf Test</string>
+ <key>italicAngle</key>
+ <integer>-14</integer>
+ <key>openTypeHeadCreated</key>
+ <string>2021/01/29 10:05:06</string>
+ <key>openTypeHheaAscender</key>
+ <integer>2100</integer>
+ <key>openTypeHheaDescender</key>
+ <integer>-550</integer>
+ <key>openTypeHheaLineGap</key>
+ <integer>0</integer>
+ <key>openTypeNameDescription</key>
+ <string>Copyright (c) 2004-2021 SIL International</string>
+ <key>openTypeNameDesigner</key>
+ <string>Victor Gaultney, Annie Olsen, Julie Remington, Don Collingsworth, Eric Hays, Becca Hirsbrunner</string>
+ <key>openTypeNameDesignerURL</key>
+ <string>http://scripts.sil.org/</string>
+ <key>openTypeNameLicense</key>
+ <string>Copyright (c) 2004-2021 SIL International (http://www.sil.org/) with Reserved Font Names "Andika" and "SIL".
+
+This Font Software is licensed under the SIL Open Font License, Version 1.1. This license is copied below, and is also available with a FAQ at: http://scripts.sil.org/OFL
+
+
+-----------------------------------------------------------
+SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
+-----------------------------------------------------------
+
+PREAMBLE
+The goals of the Open Font License (OFL) are to stimulate worldwide development of collaborative font projects, to support the font creation efforts of academic and linguistic communities, and to provide a free and open framework in which fonts may be shared and improved in partnership with others.
+
+The OFL allows the licensed fonts to be used, studied, modified and redistributed freely as long as they are not sold by themselves. The fonts, including any derivative works, can be bundled, embedded, redistributed and/or sold with any software provided that any reserved names are not used by derivative works. The fonts and derivatives, however, cannot be released under any other type of license. The requirement for fonts to remain under this license does not apply to any document created using the fonts or their derivatives.
+
+DEFINITIONS
+"Font Software" refers to the set of files released by the Copyright Holder(s) under this license and clearly marked as such. This may include source files, build scripts and documentation.
+
+"Reserved Font Name" refers to any names specified as such after the copyright statement(s).
+
+"Original Version" refers to the collection of Font Software components as distributed by the Copyright Holder(s).
+
+"Modified Version" refers to any derivative made by adding to, deleting, or substituting -- in part or in whole -- any of the components of the Original Version, by changing formats or by porting the Font Software to a new environment.
+
+"Author" refers to any designer, engineer, programmer, technical writer or other person who contributed to the Font Software.
+
+PERMISSION &amp; CONDITIONS
+Permission is hereby granted, free of charge, to any person obtaining a copy of the Font Software, to use, study, copy, merge, embed, modify, redistribute, and sell modified and unmodified copies of the Font Software, subject to the following conditions:
+
+1) Neither the Font Software nor any of its individual components, in Original or Modified Versions, may be sold by itself.
+
+2) Original or Modified Versions of the Font Software may be bundled, redistributed and/or sold with any software, provided that each copy contains the above copyright notice and this license. These can be included either as stand-alone text files, human-readable headers or in the appropriate machine-readable metadata fields within text or binary files as long as those fields can be easily viewed by the user.
+
+3) No Modified Version of the Font Software may use the Reserved Font Name(s) unless explicit written permission is granted by the corresponding Copyright Holder. This restriction only applies to the primary font name as presented to the users.
+
+4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font Software shall not be used to promote, endorse or advertise any Modified Version, except to acknowledge the contribution(s) of the Copyright Holder(s) and the Author(s) or with their explicit written permission.
+
+5) The Font Software, modified or unmodified, in part or in whole, must be distributed entirely under this license, and must not be distributed under any other license. The requirement for fonts to remain under this license does not apply to any document created using the Font Software.
+
+TERMINATION
+This license becomes null and void if any of the above conditions are not met.
+
+DISCLAIMER
+THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM OTHER DEALINGS IN THE FONT SOFTWARE.</string>
+ <key>openTypeNameLicenseURL</key>
+ <string>http://scripts.sil.org/OFL</string>
+ <key>openTypeNameManufacturer</key>
+ <string>SIL International</string>
+ <key>openTypeNameManufacturerURL</key>
+ <string>http://scripts.sil.org</string>
+ <key>openTypeNamePreferredFamilyName</key>
+ <string>Psf Testing</string>
+ <key>openTypeNamePreferredSubfamilyName</key>
+ <string>Italic</string>
+ <key>openTypeNameUniqueID</key>
+ <string>SIL International: Psf Test Italic: 2022</string>
+ <key>openTypeNameVersion</key>
+ <string>Version 5.550</string>
+ <key>openTypeOS2CodePageRanges</key>
+ <array>
+ <integer>0</integer>
+ <integer>1</integer>
+ <integer>2</integer>
+ <integer>4</integer>
+ <integer>7</integer>
+ <integer>8</integer>
+ </array>
+ <key>openTypeOS2FamilyClass</key>
+ <array>
+ <integer>0</integer>
+ <integer>0</integer>
+ </array>
+ <key>openTypeOS2Panose</key>
+ <array>
+ <integer>2</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ </array>
+ <key>openTypeOS2StrikeoutPosition</key>
+ <integer>700</integer>
+ <key>openTypeOS2StrikeoutSize</key>
+ <integer>100</integer>
+ <key>openTypeOS2SubscriptXOffset</key>
+ <integer>0</integer>
+ <key>openTypeOS2SubscriptXSize</key>
+ <integer>1433</integer>
+ <key>openTypeOS2SubscriptYOffset</key>
+ <integer>286</integer>
+ <key>openTypeOS2SubscriptYSize</key>
+ <integer>1331</integer>
+ <key>openTypeOS2SuperscriptXOffset</key>
+ <integer>0</integer>
+ <key>openTypeOS2SuperscriptXSize</key>
+ <integer>1433</integer>
+ <key>openTypeOS2SuperscriptYOffset</key>
+ <integer>976</integer>
+ <key>openTypeOS2SuperscriptYSize</key>
+ <integer>1331</integer>
+ <key>openTypeOS2Type</key>
+ <array/>
+ <key>openTypeOS2TypoAscender</key>
+ <integer>2100</integer>
+ <key>openTypeOS2TypoDescender</key>
+ <integer>-550</integer>
+ <key>openTypeOS2TypoLineGap</key>
+ <integer>1</integer>
+ <key>openTypeOS2UnicodeRanges</key>
+ <array>
+ <integer>0</integer>
+ <integer>1</integer>
+ <integer>6</integer>
+ <integer>7</integer>
+ <integer>31</integer>
+ <integer>33</integer>
+ <integer>35</integer>
+ <integer>36</integer>
+ <integer>37</integer>
+ <integer>38</integer>
+ <integer>39</integer>
+ <integer>40</integer>
+ <integer>45</integer>
+ <integer>46</integer>
+ <integer>47</integer>
+ <integer>57</integer>
+ <integer>60</integer>
+ <integer>62</integer>
+ <integer>64</integer>
+ <integer>67</integer>
+ <integer>69</integer>
+ <integer>89</integer>
+ </array>
+ <key>openTypeOS2VendorID</key>
+ <string>SIL</string>
+ <key>openTypeOS2WeightClass</key>
+ <integer>400</integer>
+ <key>openTypeOS2WidthClass</key>
+ <integer>5</integer>
+ <key>openTypeOS2WinAscent</key>
+ <integer>2100</integer>
+ <key>openTypeOS2WinDescent</key>
+ <integer>550</integer>
+ <key>postscriptBlueValues</key>
+ <array>
+ <integer>-490</integer>
+ <integer>-490</integer>
+ <integer>-25</integer>
+ <integer>0</integer>
+ <integer>1020</integer>
+ <integer>1040</integer>
+ <integer>1455</integer>
+ <integer>1485</integer>
+ <integer>1600</integer>
+ <integer>1620</integer>
+ </array>
+ <key>postscriptFontName</key>
+ <string>PsfTest-Italic</string>
+ <key>postscriptFullName</key>
+ <string>Psf Test Italic</string>
+ <key>postscriptStemSnapH</key>
+ <array>
+ <integer>140</integer>
+ <integer>145</integer>
+ <integer>150</integer>
+ <integer>155</integer>
+ <integer>160</integer>
+ <integer>165</integer>
+ <integer>170</integer>
+ <integer>175</integer>
+ <integer>185</integer>
+ <integer>270</integer>
+ </array>
+ <key>postscriptStemSnapV</key>
+ <array>
+ <integer>165</integer>
+ <integer>180</integer>
+ <integer>185</integer>
+ <integer>190</integer>
+ <integer>195</integer>
+ <integer>200</integer>
+ <integer>205</integer>
+ <integer>270</integer>
+ </array>
+ <key>postscriptUnderlinePosition</key>
+ <integer>-110</integer>
+ <key>postscriptUnderlineThickness</key>
+ <integer>80</integer>
+ <key>styleMapFamilyName</key>
+ <string>Psf test</string>
+ <key>styleMapStyleName</key>
+ <string>italic</string>
+ <key>styleName</key>
+ <string>Italic</string>
+ <key>trademark</key>
+ <string>Andika is a trademark of SIL International.</string>
+ <key>unitsPerEm</key>
+ <integer>2048</integer>
+ <key>versionMajor</key>
+ <integer>5</integer>
+ <key>versionMinor</key>
+ <integer>550</integer>
+ <key>xHeight</key>
+ <integer>1040</integer>
+ <key>year</key>
+ <integer>2021</integer>
+</dict>
+</plist>
diff --git a/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/A_mpersand.glif b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/A_mpersand.glif
new file mode 100644
index 0000000..689cb3e
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/A_mpersand.glif
@@ -0,0 +1,61 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Ampersand" format="2">
+ <advance width="1202"/>
+ <unicode hex="0026"/>
+ <outline>
+ <contour>
+ <point x="1054" y="559" type="line"/>
+ <point x="949" y="395"/>
+ <point x="616" y="147"/>
+ <point x="441" y="147" type="curve" smooth="yes"/>
+ <point x="318" y="147"/>
+ <point x="256" y="224"/>
+ <point x="256" y="314" type="curve" smooth="yes"/>
+ <point x="256" y="453"/>
+ <point x="369" y="575"/>
+ <point x="590" y="725" type="curve" smooth="yes"/>
+ <point x="836" y="892"/>
+ <point x="1022" y="1067"/>
+ <point x="1022" y="1223" type="curve" smooth="yes"/>
+ <point x="1022" y="1363"/>
+ <point x="894" y="1455"/>
+ <point x="762" y="1455" type="curve" smooth="yes"/>
+ <point x="504" y="1455"/>
+ <point x="378" y="1328"/>
+ <point x="378" y="1114" type="curve" smooth="yes"/>
+ <point x="378" y="953"/>
+ <point x="514" y="771"/>
+ <point x="614" y="559" type="curve" smooth="yes"/>
+ <point x="783" y="198"/>
+ <point x="906" y="-25"/>
+ <point x="958" y="-25" type="curve" smooth="yes"/>
+ <point x="993" y="-25"/>
+ <point x="1087" y="37"/>
+ <point x="1132" y="69" type="curve"/>
+ <point x="1046" y="108"/>
+ <point x="926" y="291"/>
+ <point x="756" y="666" type="curve" smooth="yes"/>
+ <point x="665" y="866"/>
+ <point x="544" y="1029"/>
+ <point x="544" y="1149" type="curve" smooth="yes"/>
+ <point x="544" y="1252"/>
+ <point x="632" y="1323"/>
+ <point x="724" y="1323" type="curve" smooth="yes"/>
+ <point x="794" y="1323"/>
+ <point x="858" y="1266"/>
+ <point x="858" y="1193" type="curve" smooth="yes"/>
+ <point x="858" y="1107"/>
+ <point x="743" y="1004"/>
+ <point x="492" y="826" type="curve" smooth="yes"/>
+ <point x="182" y="606"/>
+ <point x="73" y="439"/>
+ <point x="73" y="288" type="curve" smooth="yes"/>
+ <point x="73" y="113"/>
+ <point x="195" y="-25"/>
+ <point x="383" y="-25" type="curve" smooth="yes"/>
+ <point x="656" y="-25"/>
+ <point x="1009" y="269"/>
+ <point x="1126" y="426" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/A_pos.glif b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/A_pos.glif
new file mode 100644
index 0000000..deb1650
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/A_pos.glif
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Apos" format="2">
+ <advance width="585"/>
+ <unicode hex="0027"/>
+ <outline>
+ <contour>
+ <point x="560" y="1024" type="line"/>
+ <point x="599" y="1162"/>
+ <point x="643" y="1312"/>
+ <point x="732" y="1553" type="curve"/>
+ <point x="527" y="1553" type="line"/>
+ <point x="498" y="1312"/>
+ <point x="465" y="1162"/>
+ <point x="435" y="1024" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/A_sterisk.glif b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/A_sterisk.glif
new file mode 100644
index 0000000..3027a5d
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/A_sterisk.glif
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Asterisk" format="2">
+ <advance width="1008"/>
+ <unicode hex="002A"/>
+ <outline>
+ <contour>
+ <point x="745" y="1568" type="line"/>
+ <point x="733" y="1438"/>
+ <point x="725" y="1359"/>
+ <point x="707" y="1274" type="curve"/>
+ <point x="644" y="1317"/>
+ <point x="587" y="1359"/>
+ <point x="498" y="1436" type="curve"/>
+ <point x="392" y="1313" type="line"/>
+ <point x="505" y="1264"/>
+ <point x="575" y="1236"/>
+ <point x="643" y="1196" type="curve"/>
+ <point x="556" y="1153"/>
+ <point x="474" y="1117"/>
+ <point x="340" y="1063" type="curve"/>
+ <point x="379" y="941" type="line"/>
+ <point x="504" y="1021"/>
+ <point x="584" y="1072"/>
+ <point x="668" y="1117" type="curve"/>
+ <point x="645" y="1034"/>
+ <point x="619" y="954"/>
+ <point x="575" y="823" type="curve"/>
+ <point x="715" y="823" type="line"/>
+ <point x="727" y="954"/>
+ <point x="741" y="1031"/>
+ <point x="758" y="1117" type="curve"/>
+ <point x="821" y="1073"/>
+ <point x="878" y="1032"/>
+ <point x="968" y="956" type="curve"/>
+ <point x="1073" y="1078" type="line"/>
+ <point x="959" y="1126"/>
+ <point x="890" y="1155"/>
+ <point x="823" y="1196" type="curve"/>
+ <point x="909" y="1236"/>
+ <point x="990" y="1273"/>
+ <point x="1126" y="1328" type="curve"/>
+ <point x="1086" y="1450" type="line"/>
+ <point x="961" y="1368"/>
+ <point x="883" y="1321"/>
+ <point x="797" y="1274" type="curve"/>
+ <point x="819" y="1359"/>
+ <point x="845" y="1438"/>
+ <point x="890" y="1568" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/A_tS_gn.glif b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/A_tS_gn.glif
new file mode 100644
index 0000000..2cd2542
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/A_tS_gn.glif
@@ -0,0 +1,104 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="AtSgn" format="2">
+ <advance width="1682"/>
+ <unicode hex="0040"/>
+ <outline>
+ <contour>
+ <point x="1082" y="-10" type="line"/>
+ <point x="980" y="-69"/>
+ <point x="889" y="-93"/>
+ <point x="796" y="-93" type="curve" smooth="yes"/>
+ <point x="507" y="-93"/>
+ <point x="301" y="104"/>
+ <point x="301" y="414" type="curve" smooth="yes"/>
+ <point x="301" y="476"/>
+ <point x="309" y="543"/>
+ <point x="327" y="613" type="curve" smooth="yes"/>
+ <point x="425" y="1003"/>
+ <point x="782" y="1245"/>
+ <point x="1110" y="1245" type="curve" smooth="yes"/>
+ <point x="1433" y="1245"/>
+ <point x="1590" y="1060"/>
+ <point x="1590" y="813" type="curve" smooth="yes"/>
+ <point x="1590" y="760"/>
+ <point x="1582" y="705"/>
+ <point x="1568" y="647" type="curve" smooth="yes"/>
+ <point x="1510" y="413"/>
+ <point x="1365" y="309"/>
+ <point x="1297" y="309" type="curve" smooth="yes"/>
+ <point x="1261" y="309"/>
+ <point x="1238" y="344"/>
+ <point x="1238" y="420" type="curve" smooth="yes"/>
+ <point x="1238" y="468"/>
+ <point x="1247" y="533"/>
+ <point x="1268" y="617" type="curve" smooth="yes"/>
+ <point x="1354" y="960" type="line"/>
+ <point x="1276" y="995"/>
+ <point x="1155" y="1019"/>
+ <point x="1074" y="1019" type="curve" smooth="yes"/>
+ <point x="910" y="1019"/>
+ <point x="790" y="962"/>
+ <point x="673" y="828" type="curve" smooth="yes"/>
+ <point x="607" y="751"/>
+ <point x="554" y="650"/>
+ <point x="524" y="529" type="curve" smooth="yes"/>
+ <point x="514" y="488"/>
+ <point x="509" y="450"/>
+ <point x="509" y="416" type="curve" smooth="yes"/>
+ <point x="509" y="259"/>
+ <point x="609" y="179"/>
+ <point x="719" y="179" type="curve" smooth="yes"/>
+ <point x="836" y="179"/>
+ <point x="1017" y="359"/>
+ <point x="1099" y="480" type="curve"/>
+ <point x="1093" y="446"/>
+ <point x="1089" y="413"/>
+ <point x="1089" y="382" type="curve" smooth="yes"/>
+ <point x="1089" y="264"/>
+ <point x="1136" y="176"/>
+ <point x="1233" y="176" type="curve" smooth="yes"/>
+ <point x="1408" y="176"/>
+ <point x="1635" y="331"/>
+ <point x="1716" y="656" type="curve" smooth="yes"/>
+ <point x="1732" y="722"/>
+ <point x="1740" y="784"/>
+ <point x="1740" y="843" type="curve" smooth="yes"/>
+ <point x="1740" y="1161"/>
+ <point x="1513" y="1377"/>
+ <point x="1153" y="1377" type="curve" smooth="yes"/>
+ <point x="738" y="1377"/>
+ <point x="310" y="1143"/>
+ <point x="175" y="603" type="curve" smooth="yes"/>
+ <point x="155" y="522"/>
+ <point x="145" y="446"/>
+ <point x="145" y="375" type="curve" smooth="yes"/>
+ <point x="145" y="-5"/>
+ <point x="417" y="-230"/>
+ <point x="747" y="-230" type="curve" smooth="yes"/>
+ <point x="882" y="-230"/>
+ <point x="1044" y="-184"/>
+ <point x="1161" y="-116" type="curve"/>
+ </contour>
+ <contour>
+ <point x="1141" y="706" type="line"/>
+ <point x="1075" y="570"/>
+ <point x="856" y="314"/>
+ <point x="766" y="314" type="curve" smooth="yes"/>
+ <point x="712" y="314"/>
+ <point x="669" y="362"/>
+ <point x="669" y="459" type="curve" smooth="yes"/>
+ <point x="669" y="491"/>
+ <point x="674" y="530"/>
+ <point x="685" y="573" type="curve" smooth="yes"/>
+ <point x="704" y="649"/>
+ <point x="739" y="726"/>
+ <point x="780" y="774" type="curve" smooth="yes"/>
+ <point x="859" y="868"/>
+ <point x="943" y="887"/>
+ <point x="1011" y="887" type="curve" smooth="yes"/>
+ <point x="1085" y="887"/>
+ <point x="1148" y="868"/>
+ <point x="1177" y="853" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/C_ircumA_ccent.glif b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/C_ircumA_ccent.glif
new file mode 100644
index 0000000..91ab811
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/C_ircumA_ccent.glif
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="CircumAccent" format="2">
+ <advance width="830"/>
+ <unicode hex="005E"/>
+ <anchor x="705" y="1635" name="U"/>
+ <outline>
+ <contour>
+ <point x="316" y="1147" type="line"/>
+ <point x="660" y="1421" type="line"/>
+ <point x="866" y="1147" type="line"/>
+ <point x="1015" y="1147" type="line"/>
+ <point x="761" y="1568" type="line"/>
+ <point x="591" y="1568" type="line"/>
+ <point x="166" y="1147" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/C_olon.glif b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/C_olon.glif
new file mode 100644
index 0000000..bcccfc2
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/C_olon.glif
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Colon" format="2">
+ <advance width="620"/>
+ <unicode hex="003A"/>
+ <outline>
+ <contour>
+ <point x="314" y="758" type="curve" smooth="yes"/>
+ <point x="314" y="696"/>
+ <point x="365" y="642"/>
+ <point x="430" y="642" type="curve" smooth="yes"/>
+ <point x="514" y="642"/>
+ <point x="590" y="712"/>
+ <point x="590" y="792" type="curve" smooth="yes"/>
+ <point x="590" y="854"/>
+ <point x="540" y="907"/>
+ <point x="476" y="907" type="curve" smooth="yes"/>
+ <point x="393" y="907"/>
+ <point x="314" y="837"/>
+ </contour>
+ <contour>
+ <point x="148" y="90" type="curve" smooth="yes"/>
+ <point x="148" y="28"/>
+ <point x="198" y="-25"/>
+ <point x="263" y="-25" type="curve" smooth="yes"/>
+ <point x="347" y="-25"/>
+ <point x="424" y="45"/>
+ <point x="424" y="125" type="curve" smooth="yes"/>
+ <point x="424" y="186"/>
+ <point x="374" y="240"/>
+ <point x="309" y="240" type="curve" smooth="yes"/>
+ <point x="225" y="240"/>
+ <point x="148" y="170"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/C_ombA_cute.glif b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/C_ombA_cute.glif
new file mode 100644
index 0000000..a7607fe
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/C_ombA_cute.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="CombAcute" format="2">
+ <unicode hex="0301"/>
+ <anchor x="-221" y="1635" name="U"/>
+ <anchor x="-355" y="1100" name="_U"/>
+ <outline>
+ <contour>
+ <point x="-99" y="1568" type="line"/>
+ <point x="-524" y="1147" type="line"/>
+ <point x="-354" y="1147" type="line"/>
+ <point x="150" y="1568" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/C_ombC_ircum.glif b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/C_ombC_ircum.glif
new file mode 100644
index 0000000..6614f85
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/C_ombC_ircum.glif
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="CombCircum" format="2">
+ <unicode hex="0302"/>
+ <anchor x="-221" y="1635" name="U"/>
+ <anchor x="-320" y="1100" name="_U"/>
+ <outline>
+ <contour>
+ <point x="-619" y="1147" type="line"/>
+ <point x="-275" y="1421" type="line"/>
+ <point x="-69" y="1147" type="line"/>
+ <point x="80" y="1147" type="line"/>
+ <point x="-174" y="1568" type="line"/>
+ <point x="-344" y="1568" type="line"/>
+ <point x="-769" y="1147" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/C_ombD_iaer.glif b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/C_ombD_iaer.glif
new file mode 100644
index 0000000..d6b35b7
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/C_ombD_iaer.glif
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="CombDiaer" format="2">
+ <unicode hex="0308"/>
+ <anchor x="-253" y="1505" name="U"/>
+ <anchor x="-350" y="1100" name="_U"/>
+ <outline>
+ <contour>
+ <point x="39" y="1338" type="curve" smooth="yes"/>
+ <point x="39" y="1399"/>
+ <point x="-7" y="1450"/>
+ <point x="-72" y="1450" type="curve" smooth="yes"/>
+ <point x="-167" y="1450"/>
+ <point x="-229" y="1372"/>
+ <point x="-229" y="1299" type="curve" smooth="yes"/>
+ <point x="-229" y="1238"/>
+ <point x="-182" y="1186"/>
+ <point x="-118" y="1186" type="curve" smooth="yes"/>
+ <point x="-33" y="1186"/>
+ <point x="39" y="1259"/>
+ </contour>
+ <contour>
+ <point x="-381" y="1338" type="curve" smooth="yes"/>
+ <point x="-381" y="1399"/>
+ <point x="-427" y="1450"/>
+ <point x="-492" y="1450" type="curve" smooth="yes"/>
+ <point x="-587" y="1450"/>
+ <point x="-649" y="1372"/>
+ <point x="-649" y="1299" type="curve" smooth="yes"/>
+ <point x="-649" y="1238"/>
+ <point x="-602" y="1186"/>
+ <point x="-538" y="1186" type="curve" smooth="yes"/>
+ <point x="-453" y="1186"/>
+ <point x="-381" y="1259"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/C_ombG_rave.glif b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/C_ombG_rave.glif
new file mode 100644
index 0000000..8869bb9
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/C_ombG_rave.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="CombGrave" format="2">
+ <unicode hex="0300"/>
+ <anchor x="-201" y="1635" name="U"/>
+ <anchor x="-335" y="1100" name="_U"/>
+ <outline>
+ <contour>
+ <point x="-619" y="1568" type="line"/>
+ <point x="-284" y="1147" type="line"/>
+ <point x="-134" y="1147" type="line"/>
+ <point x="-409" y="1568" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/C_ombR_ingA_bv.glif b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/C_ombR_ingA_bv.glif
new file mode 100644
index 0000000..38232a0
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/C_ombR_ingA_bv.glif
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="CombRingAbv" format="2">
+ <unicode hex="030A"/>
+ <anchor x="-221" y="1635" name="U"/>
+ <anchor x="-385" y="1100" name="_U"/>
+ <outline>
+ <contour>
+ <point x="-377" y="1259" type="curve" smooth="yes"/>
+ <point x="-427" y="1259"/>
+ <point x="-456" y="1287"/>
+ <point x="-456" y="1329" type="curve" smooth="yes"/>
+ <point x="-456" y="1400"/>
+ <point x="-393" y="1455"/>
+ <point x="-328" y="1455" type="curve" smooth="yes"/>
+ <point x="-278" y="1455"/>
+ <point x="-248" y="1428"/>
+ <point x="-248" y="1385" type="curve" smooth="yes"/>
+ <point x="-248" y="1314"/>
+ <point x="-312" y="1259"/>
+ </contour>
+ <contour>
+ <point x="-573" y="1320" type="curve" smooth="yes"/>
+ <point x="-573" y="1224"/>
+ <point x="-498" y="1147"/>
+ <point x="-395" y="1147" type="curve" smooth="yes"/>
+ <point x="-257" y="1147"/>
+ <point x="-131" y="1263"/>
+ <point x="-131" y="1394" type="curve" smooth="yes"/>
+ <point x="-131" y="1491"/>
+ <point x="-206" y="1568"/>
+ <point x="-310" y="1568" type="curve" smooth="yes"/>
+ <point x="-448" y="1568"/>
+ <point x="-573" y="1451"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/C_ombT_ilde.glif b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/C_ombT_ilde.glif
new file mode 100644
index 0000000..f79322e
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/C_ombT_ilde.glif
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="CombTilde" format="2">
+ <unicode hex="0303"/>
+ <anchor x="-290" y="1475" name="U"/>
+ <anchor x="-385" y="1100" name="_U"/>
+ <outline>
+ <contour>
+ <point x="-646" y="1181" type="line"/>
+ <point x="-629" y="1229"/>
+ <point x="-589" y="1269"/>
+ <point x="-540" y="1269" type="curve" smooth="yes"/>
+ <point x="-503" y="1269"/>
+ <point x="-466" y="1253"/>
+ <point x="-398" y="1218" type="curve" smooth="yes"/>
+ <point x="-344" y="1190"/>
+ <point x="-296" y="1171"/>
+ <point x="-243" y="1171" type="curve" smooth="yes"/>
+ <point x="-120" y="1171"/>
+ <point x="-15" y="1286"/>
+ <point x="16" y="1411" type="curve"/>
+ <point x="-89" y="1411" type="line"/>
+ <point x="-107" y="1366"/>
+ <point x="-147" y="1323"/>
+ <point x="-194" y="1323" type="curve" smooth="yes"/>
+ <point x="-236" y="1323"/>
+ <point x="-273" y="1342"/>
+ <point x="-338" y="1370" type="curve" smooth="yes"/>
+ <point x="-401" y="1397"/>
+ <point x="-442" y="1421"/>
+ <point x="-498" y="1421" type="curve" smooth="yes"/>
+ <point x="-617" y="1421"/>
+ <point x="-721" y="1300"/>
+ <point x="-751" y="1181" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/C_omma.glif b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/C_omma.glif
new file mode 100644
index 0000000..eaff517
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/C_omma.glif
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Comma" format="2">
+ <advance width="630"/>
+ <unicode hex="002C"/>
+ <outline>
+ <contour>
+ <point x="137" y="49" type="line"/>
+ <point x="277" y="49" type="line"/>
+ <point x="252" y="-50"/>
+ <point x="145" y="-169"/>
+ <point x="73" y="-225" type="curve"/>
+ <point x="163" y="-265" type="line"/>
+ <point x="280" y="-175"/>
+ <point x="431" y="-28"/>
+ <point x="431" y="118" type="curve" smooth="yes"/>
+ <point x="431" y="193"/>
+ <point x="378" y="245"/>
+ <point x="311" y="245" type="curve" smooth="yes"/>
+ <point x="254" y="245"/>
+ <point x="190" y="209"/>
+ <point x="161" y="147" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/D_igitE_ight.glif b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/D_igitE_ight.glif
new file mode 100644
index 0000000..262f860
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/D_igitE_ight.glif
@@ -0,0 +1,63 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitEight" format="2">
+ <advance width="1180"/>
+ <unicode hex="0038"/>
+ <anchor x="515" y="-100" name="L"/>
+ <anchor x="922" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="542" y="-25" type="curve" smooth="yes"/>
+ <point x="839" y="-25"/>
+ <point x="1160" y="170"/>
+ <point x="1160" y="475" type="curve" smooth="yes"/>
+ <point x="1160" y="626"/>
+ <point x="1068" y="733"/>
+ <point x="988" y="779" type="curve"/>
+ <point x="1155" y="860"/>
+ <point x="1270" y="970"/>
+ <point x="1270" y="1151" type="curve" smooth="yes"/>
+ <point x="1270" y="1340"/>
+ <point x="1102" y="1455"/>
+ <point x="901" y="1455" type="curve" smooth="yes"/>
+ <point x="620" y="1455"/>
+ <point x="348" y="1292"/>
+ <point x="348" y="1018" type="curve" smooth="yes"/>
+ <point x="348" y="891"/>
+ <point x="427" y="814"/>
+ <point x="483" y="779" type="curve"/>
+ <point x="297" y="706"/>
+ <point x="115" y="549"/>
+ <point x="115" y="325" type="curve" smooth="yes"/>
+ <point x="115" y="111"/>
+ <point x="317" y="-25"/>
+ </contour>
+ <contour>
+ <point x="750" y="848" type="curve" smooth="yes"/>
+ <point x="628" y="848"/>
+ <point x="541" y="917"/>
+ <point x="541" y="1029" type="curve" smooth="yes"/>
+ <point x="541" y="1205"/>
+ <point x="704" y="1299"/>
+ <point x="862" y="1299" type="curve" smooth="yes"/>
+ <point x="985" y="1299"/>
+ <point x="1076" y="1235"/>
+ <point x="1076" y="1128" type="curve" smooth="yes"/>
+ <point x="1076" y="955"/>
+ <point x="907" y="848"/>
+ </contour>
+ <contour>
+ <point x="564" y="142" type="curve" smooth="yes"/>
+ <point x="413" y="142"/>
+ <point x="322" y="225"/>
+ <point x="322" y="350" type="curve" smooth="yes"/>
+ <point x="322" y="557"/>
+ <point x="520" y="696"/>
+ <point x="712" y="696" type="curve" smooth="yes"/>
+ <point x="864" y="696"/>
+ <point x="961" y="602"/>
+ <point x="961" y="476" type="curve" smooth="yes"/>
+ <point x="961" y="266"/>
+ <point x="753" y="142"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/D_igitF_ive.glif b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/D_igitF_ive.glif
new file mode 100644
index 0000000..a224838
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/D_igitF_ive.glif
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitFive" format="2">
+ <advance width="1180"/>
+ <unicode hex="0035"/>
+ <anchor x="515" y="-100" name="L"/>
+ <anchor x="922" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1296" y="1431" type="line"/>
+ <point x="491" y="1431" type="line"/>
+ <point x="302" y="671" type="line"/>
+ <point x="438" y="718"/>
+ <point x="537" y="735"/>
+ <point x="643" y="735" type="curve" smooth="yes"/>
+ <point x="784" y="735"/>
+ <point x="933" y="660"/>
+ <point x="933" y="508" type="curve" smooth="yes"/>
+ <point x="933" y="273"/>
+ <point x="710" y="152"/>
+ <point x="497" y="152" type="curve" smooth="yes"/>
+ <point x="357" y="152"/>
+ <point x="263" y="195"/>
+ <point x="170" y="284" type="curve"/>
+ <point x="89" y="78" type="line"/>
+ <point x="195" y="2"/>
+ <point x="326" y="-25"/>
+ <point x="481" y="-25" type="curve" smooth="yes"/>
+ <point x="807" y="-25"/>
+ <point x="1129" y="190"/>
+ <point x="1129" y="546" type="curve" smooth="yes"/>
+ <point x="1129" y="757"/>
+ <point x="951" y="911"/>
+ <point x="702" y="911" type="curve" smooth="yes"/>
+ <point x="629" y="911"/>
+ <point x="576" y="906"/>
+ <point x="544" y="902" type="curve"/>
+ <point x="635" y="1264" type="line"/>
+ <point x="1020" y="1264" type="line" smooth="yes"/>
+ <point x="1104" y="1264"/>
+ <point x="1179" y="1260"/>
+ <point x="1250" y="1245" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/D_igitF_our.glif b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/D_igitF_our.glif
new file mode 100644
index 0000000..eeccb48
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/D_igitF_our.glif
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitFour" format="2">
+ <advance width="1180"/>
+ <unicode hex="0034"/>
+ <anchor x="522" y="-100" name="L"/>
+ <anchor x="929" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1161" y="387" type="line"/>
+ <point x="1199" y="539" type="line"/>
+ <point x="1009" y="539" type="line"/>
+ <point x="1236" y="1450" type="line"/>
+ <point x="1026" y="1450" type="line"/>
+ <point x="144" y="539" type="line"/>
+ <point x="106" y="387" type="line"/>
+ <point x="781" y="387" type="line"/>
+ <point x="685" y="0" type="line"/>
+ <point x="875" y="0" type="line"/>
+ <point x="971" y="387" type="line"/>
+ </contour>
+ <contour>
+ <point x="985" y="1205" type="line"/>
+ <point x="819" y="539" type="line"/>
+ <point x="337" y="539" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/D_igitN_ine.glif b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/D_igitN_ine.glif
new file mode 100644
index 0000000..191cd79
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/D_igitN_ine.glif
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitNine" format="2">
+ <advance width="1180"/>
+ <unicode hex="0039"/>
+ <anchor x="515" y="-100" name="L"/>
+ <anchor x="922" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="157" y="94" type="line"/>
+ <point x="208" y="29"/>
+ <point x="355" y="-25"/>
+ <point x="473" y="-25" type="curve" smooth="yes"/>
+ <point x="999" y="-25"/>
+ <point x="1267" y="520"/>
+ <point x="1267" y="982" type="curve" smooth="yes"/>
+ <point x="1267" y="1248"/>
+ <point x="1127" y="1455"/>
+ <point x="866" y="1455" type="curve" smooth="yes"/>
+ <point x="596" y="1455"/>
+ <point x="303" y="1269"/>
+ <point x="303" y="932" type="curve" smooth="yes"/>
+ <point x="303" y="761"/>
+ <point x="425" y="574"/>
+ <point x="661" y="574" type="curve" smooth="yes"/>
+ <point x="852" y="574"/>
+ <point x="1036" y="683"/>
+ <point x="1172" y="840" type="curve"/>
+ <point x="1121" y="922" type="line"/>
+ <point x="1019" y="810"/>
+ <point x="872" y="745"/>
+ <point x="717" y="745" type="curve" smooth="yes"/>
+ <point x="584" y="745"/>
+ <point x="498" y="833"/>
+ <point x="498" y="956" type="curve" smooth="yes"/>
+ <point x="498" y="1146"/>
+ <point x="638" y="1284"/>
+ <point x="821" y="1284" type="curve" smooth="yes"/>
+ <point x="998" y="1284"/>
+ <point x="1073" y="1119"/>
+ <point x="1073" y="956" type="curve" smooth="yes"/>
+ <point x="1073" y="455"/>
+ <point x="760" y="147"/>
+ <point x="496" y="147" type="curve" smooth="yes"/>
+ <point x="410" y="147"/>
+ <point x="298" y="209"/>
+ <point x="249" y="285" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/D_igitO_ne.glif b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/D_igitO_ne.glif
new file mode 100644
index 0000000..a639774
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/D_igitO_ne.glif
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitOne" format="2">
+ <advance width="1180"/>
+ <unicode hex="0031"/>
+ <anchor x="515" y="-100" name="L"/>
+ <anchor x="922" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1021" y="167" type="line"/>
+ <point x="706" y="167" type="line"/>
+ <point x="1026" y="1450" type="line"/>
+ <point x="856" y="1450" type="line"/>
+ <point x="459" y="1243" type="line"/>
+ <point x="440" y="1066" type="line"/>
+ <point x="782" y="1235" type="line"/>
+ <point x="516" y="167" type="line"/>
+ <point x="201" y="167" type="line"/>
+ <point x="160" y="0" type="line"/>
+ <point x="980" y="0" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/D_igitS_even.glif b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/D_igitS_even.glif
new file mode 100644
index 0000000..68c6ef6
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/D_igitS_even.glif
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitSeven" format="2">
+ <advance width="1180"/>
+ <unicode hex="0037"/>
+ <anchor x="515" y="-100" name="L"/>
+ <anchor x="922" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="420" y="0" type="line"/>
+ <point x="661" y="450"/>
+ <point x="972" y="877"/>
+ <point x="1367" y="1274" type="curve"/>
+ <point x="1406" y="1431" type="line"/>
+ <point x="386" y="1431" type="line"/>
+ <point x="341" y="1245" type="line"/>
+ <point x="421" y="1260"/>
+ <point x="538" y="1264"/>
+ <point x="726" y="1264" type="curve" smooth="yes"/>
+ <point x="1126" y="1264" type="line"/>
+ <point x="774" y="889"/>
+ <point x="517" y="555"/>
+ <point x="215" y="0" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/D_igitS_ix.glif b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/D_igitS_ix.glif
new file mode 100644
index 0000000..b6be793
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/D_igitS_ix.glif
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitSix" format="2">
+ <advance width="1180"/>
+ <unicode hex="0036"/>
+ <anchor x="515" y="-100" name="L"/>
+ <anchor x="922" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1313" y="1347" type="line"/>
+ <point x="1248" y="1418"/>
+ <point x="1135" y="1455"/>
+ <point x="1017" y="1455" type="curve" smooth="yes"/>
+ <point x="481" y="1454"/>
+ <point x="208" y="915"/>
+ <point x="208" y="475" type="curve" smooth="yes"/>
+ <point x="208" y="167"/>
+ <point x="392" y="-25"/>
+ <point x="623" y="-25" type="curve" smooth="yes"/>
+ <point x="947" y="-25"/>
+ <point x="1183" y="169"/>
+ <point x="1183" y="517" type="curve" smooth="yes"/>
+ <point x="1183" y="709"/>
+ <point x="1029" y="887"/>
+ <point x="793" y="887" type="curve" smooth="yes"/>
+ <point x="636" y="887"/>
+ <point x="432" y="784"/>
+ <point x="317" y="633" type="curve"/>
+ <point x="364" y="559" type="line"/>
+ <point x="471" y="660"/>
+ <point x="596" y="716"/>
+ <point x="751" y="716" type="curve" smooth="yes"/>
+ <point x="898" y="716"/>
+ <point x="987" y="614"/>
+ <point x="987" y="454" type="curve" smooth="yes"/>
+ <point x="987" y="263"/>
+ <point x="816" y="147"/>
+ <point x="656" y="147" type="curve" smooth="yes"/>
+ <point x="491" y="147"/>
+ <point x="403" y="284"/>
+ <point x="403" y="472" type="curve" smooth="yes"/>
+ <point x="403" y="962"/>
+ <point x="664" y="1284"/>
+ <point x="985" y="1284" type="curve" smooth="yes"/>
+ <point x="1081" y="1284"/>
+ <point x="1174" y="1235"/>
+ <point x="1222" y="1156" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/D_igitT_hree.glif b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/D_igitT_hree.glif
new file mode 100644
index 0000000..e01df2c
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/D_igitT_hree.glif
@@ -0,0 +1,52 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitThree" format="2">
+ <advance width="1180"/>
+ <unicode hex="0033"/>
+ <anchor x="515" y="-100" name="L"/>
+ <anchor x="922" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="562" y="853" type="line"/>
+ <point x="521" y="686" type="line"/>
+ <point x="591" y="686" type="line" smooth="yes"/>
+ <point x="802" y="686"/>
+ <point x="944" y="606"/>
+ <point x="944" y="476" type="curve" smooth="yes"/>
+ <point x="944" y="268"/>
+ <point x="738" y="147"/>
+ <point x="551" y="147" type="curve" smooth="yes"/>
+ <point x="371" y="147"/>
+ <point x="260" y="227"/>
+ <point x="181" y="348" type="curve"/>
+ <point x="104" y="137" type="line"/>
+ <point x="185" y="41"/>
+ <point x="341" y="-25"/>
+ <point x="518" y="-25" type="curve" smooth="yes"/>
+ <point x="815" y="-25"/>
+ <point x="1141" y="168"/>
+ <point x="1141" y="475" type="curve" smooth="yes"/>
+ <point x="1141" y="670"/>
+ <point x="973" y="763"/>
+ <point x="855" y="784" type="curve"/>
+ <point x="1046" y="827"/>
+ <point x="1266" y="955"/>
+ <point x="1266" y="1163" type="curve" smooth="yes"/>
+ <point x="1266" y="1338"/>
+ <point x="1073" y="1455"/>
+ <point x="852" y="1455" type="curve" smooth="yes"/>
+ <point x="685" y="1455"/>
+ <point x="536" y="1388"/>
+ <point x="433" y="1299" type="curve"/>
+ <point x="427" y="1132" type="line"/>
+ <point x="568" y="1246"/>
+ <point x="696" y="1284"/>
+ <point x="850" y="1284" type="curve" smooth="yes"/>
+ <point x="957" y="1284"/>
+ <point x="1068" y="1236"/>
+ <point x="1068" y="1137" type="curve" smooth="yes"/>
+ <point x="1068" y="949"/>
+ <point x="781" y="853"/>
+ <point x="632" y="853" type="curve" smooth="yes"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/D_igitT_wo.glif b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/D_igitT_wo.glif
new file mode 100644
index 0000000..d1bbb54
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/D_igitT_wo.glif
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitTwo" format="2">
+ <advance width="1180"/>
+ <unicode hex="0032"/>
+ <anchor x="515" y="-100" name="L"/>
+ <anchor x="882" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1063" y="176" type="line"/>
+ <point x="980" y="163"/>
+ <point x="822" y="162"/>
+ <point x="625" y="162" type="curve" smooth="yes"/>
+ <point x="370" y="162" type="line"/>
+ <point x="783" y="393"/>
+ <point x="1210" y="830"/>
+ <point x="1210" y="1098" type="curve" smooth="yes"/>
+ <point x="1210" y="1296"/>
+ <point x="1075" y="1455"/>
+ <point x="842" y="1455" type="curve" smooth="yes"/>
+ <point x="673" y="1455"/>
+ <point x="488" y="1374"/>
+ <point x="380" y="1264" type="curve"/>
+ <point x="388" y="1098" type="line"/>
+ <point x="503" y="1203"/>
+ <point x="660" y="1279"/>
+ <point x="783" y="1279" type="curve" smooth="yes"/>
+ <point x="915" y="1279"/>
+ <point x="1003" y="1199"/>
+ <point x="1003" y="1063" type="curve" smooth="yes"/>
+ <point x="1003" y="848"/>
+ <point x="506" y="386"/>
+ <point x="101" y="167" type="curve"/>
+ <point x="60" y="0" type="line"/>
+ <point x="1020" y="0" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/D_igitZ_ero.glif b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/D_igitZ_ero.glif
new file mode 100644
index 0000000..5d1bf0e
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/D_igitZ_ero.glif
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitZero" format="2">
+ <advance width="1180"/>
+ <unicode hex="0030"/>
+ <anchor x="520" y="-100" name="L"/>
+ <anchor x="927" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1024" y="711" type="curve" smooth="yes"/>
+ <point x="925" y="312"/>
+ <point x="747" y="142"/>
+ <point x="565" y="142" type="curve" smooth="yes"/>
+ <point x="432" y="142"/>
+ <point x="360" y="218"/>
+ <point x="360" y="383" type="curve" smooth="yes"/>
+ <point x="360" y="468"/>
+ <point x="377" y="579"/>
+ <point x="412" y="720" type="curve" smooth="yes"/>
+ <point x="512" y="1120"/>
+ <point x="678" y="1289"/>
+ <point x="871" y="1289" type="curve" smooth="yes"/>
+ <point x="1006" y="1289"/>
+ <point x="1077" y="1223"/>
+ <point x="1077" y="1051" type="curve" smooth="yes"/>
+ <point x="1077" y="966"/>
+ <point x="1060" y="854"/>
+ </contour>
+ <contour>
+ <point x="1230" y="715" type="curve" smooth="yes"/>
+ <point x="1262" y="841"/>
+ <point x="1276" y="949"/>
+ <point x="1276" y="1040" type="curve" smooth="yes"/>
+ <point x="1276" y="1335"/>
+ <point x="1124" y="1455"/>
+ <point x="902" y="1455" type="curve" smooth="yes"/>
+ <point x="613" y="1455"/>
+ <point x="344" y="1267"/>
+ <point x="206" y="716" type="curve" smooth="yes"/>
+ <point x="173" y="584"/>
+ <point x="158" y="474"/>
+ <point x="158" y="381" type="curve" smooth="yes"/>
+ <point x="158" y="104"/>
+ <point x="313" y="-25"/>
+ <point x="533" y="-25" type="curve" smooth="yes"/>
+ <point x="804" y="-25"/>
+ <point x="1086" y="138"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/D_ollarS_gn.glif b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/D_ollarS_gn.glif
new file mode 100644
index 0000000..5c2db20
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/D_ollarS_gn.glif
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DollarSgn" format="2">
+ <advance width="1180"/>
+ <unicode hex="0024"/>
+ <outline>
+ <contour>
+ <point x="1225" y="1280" type="line"/>
+ <point x="1119" y="1337"/>
+ <point x="1023" y="1361"/>
+ <point x="882" y="1361" type="curve" smooth="yes"/>
+ <point x="513" y="1361"/>
+ <point x="354" y="1182"/>
+ <point x="354" y="992" type="curve" smooth="yes"/>
+ <point x="354" y="837"/>
+ <point x="446" y="771"/>
+ <point x="639" y="650" type="curve" smooth="yes"/>
+ <point x="844" y="521"/>
+ <point x="919" y="439"/>
+ <point x="919" y="357" type="curve" smooth="yes"/>
+ <point x="919" y="244"/>
+ <point x="826" y="158"/>
+ <point x="635" y="158" type="curve" smooth="yes"/>
+ <point x="469" y="158"/>
+ <point x="314" y="266"/>
+ <point x="251" y="347" type="curve"/>
+ <point x="163" y="162" type="line"/>
+ <point x="304" y="58"/>
+ <point x="453" y="0"/>
+ <point x="606" y="0" type="curve" smooth="yes"/>
+ <point x="872" y="0"/>
+ <point x="1102" y="119"/>
+ <point x="1102" y="381" type="curve" smooth="yes"/>
+ <point x="1102" y="528"/>
+ <point x="981" y="657"/>
+ <point x="801" y="771" type="curve" smooth="yes"/>
+ <point x="610" y="892"/>
+ <point x="535" y="943"/>
+ <point x="535" y="1024" type="curve" smooth="yes"/>
+ <point x="535" y="1116"/>
+ <point x="657" y="1203"/>
+ <point x="832" y="1203" type="curve" smooth="yes"/>
+ <point x="950" y="1203"/>
+ <point x="1031" y="1176"/>
+ <point x="1144" y="1104" type="curve"/>
+ </contour>
+ <contour>
+ <point x="878" y="1568" type="line"/>
+ <point x="434" y="-216" type="line"/>
+ <point x="574" y="-216" type="line"/>
+ <point x="1018" y="1568" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/D_ottedC_irc.glif b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/D_ottedC_irc.glif
new file mode 100644
index 0000000..2cdf8fd
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/D_ottedC_irc.glif
@@ -0,0 +1,235 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DottedCirc" format="2">
+ <advance width="1086"/>
+ <unicode hex="25CC"/>
+ <anchor x="493" y="0" name="H"/>
+ <anchor x="468" y="-100" name="L"/>
+ <anchor x="750" y="0" name="O"/>
+ <anchor x="743" y="1000" name="U"/>
+ <outline>
+ <contour>
+ <point x="588" y="834" type="curve" smooth="yes"/>
+ <point x="588" y="858"/>
+ <point x="571" y="867"/>
+ <point x="553" y="867" type="curve" smooth="yes"/>
+ <point x="521" y="867"/>
+ <point x="491" y="837"/>
+ <point x="491" y="809" type="curve" smooth="yes"/>
+ <point x="491" y="788"/>
+ <point x="508" y="773"/>
+ <point x="530" y="773" type="curve" smooth="yes"/>
+ <point x="564" y="773"/>
+ <point x="588" y="805"/>
+ </contour>
+ <contour>
+ <point x="677" y="124" type="curve" smooth="yes"/>
+ <point x="647" y="124"/>
+ <point x="620" y="93"/>
+ <point x="620" y="67" type="curve" smooth="yes"/>
+ <point x="620" y="46"/>
+ <point x="636" y="30"/>
+ <point x="657" y="30" type="curve" smooth="yes"/>
+ <point x="687" y="30"/>
+ <point x="718" y="60"/>
+ <point x="718" y="86" type="curve" smooth="yes"/>
+ <point x="718" y="109"/>
+ <point x="700" y="124"/>
+ </contour>
+ <contour>
+ <point x="396" y="780" type="curve" smooth="yes"/>
+ <point x="369" y="780"/>
+ <point x="336" y="753"/>
+ <point x="336" y="722" type="curve" smooth="yes"/>
+ <point x="336" y="702"/>
+ <point x="351" y="687"/>
+ <point x="374" y="687" type="curve" smooth="yes"/>
+ <point x="403" y="687"/>
+ <point x="434" y="711"/>
+ <point x="434" y="744" type="curve" smooth="yes"/>
+ <point x="434" y="764"/>
+ <point x="414" y="780"/>
+ </contour>
+ <contour>
+ <point x="873" y="175" type="curve" smooth="yes"/>
+ <point x="872" y="199"/>
+ <point x="854" y="211"/>
+ <point x="833" y="211" type="curve" smooth="yes"/>
+ <point x="803" y="211"/>
+ <point x="774" y="183"/>
+ <point x="774" y="153" type="curve" smooth="yes"/>
+ <point x="774" y="133"/>
+ <point x="789" y="119"/>
+ <point x="812" y="119" type="curve" smooth="yes"/>
+ <point x="843" y="119"/>
+ <point x="873" y="146"/>
+ </contour>
+ <contour>
+ <point x="313" y="612" type="curve" smooth="yes"/>
+ <point x="312" y="633"/>
+ <point x="296" y="650"/>
+ <point x="275" y="650" type="curve" smooth="yes"/>
+ <point x="247" y="650"/>
+ <point x="215" y="623"/>
+ <point x="215" y="592" type="curve" smooth="yes"/>
+ <point x="215" y="573"/>
+ <point x="227" y="556"/>
+ <point x="251" y="556" type="curve" smooth="yes"/>
+ <point x="278" y="556"/>
+ <point x="313" y="581"/>
+ </contour>
+ <contour>
+ <point x="994" y="306" type="curve" smooth="yes"/>
+ <point x="993" y="327"/>
+ <point x="978" y="341"/>
+ <point x="958" y="341" type="curve" smooth="yes"/>
+ <point x="933" y="341"/>
+ <point x="896" y="321"/>
+ <point x="896" y="284" type="curve" smooth="yes"/>
+ <point x="896" y="265"/>
+ <point x="909" y="249"/>
+ <point x="934" y="249" type="curve" smooth="yes"/>
+ <point x="963" y="249"/>
+ <point x="994" y="275"/>
+ </contour>
+ <contour>
+ <point x="205" y="495" type="curve" smooth="yes"/>
+ <point x="175" y="495"/>
+ <point x="145" y="468"/>
+ <point x="145" y="438" type="curve" smooth="yes"/>
+ <point x="145" y="418"/>
+ <point x="159" y="402"/>
+ <point x="183" y="402" type="curve" smooth="yes"/>
+ <point x="208" y="402"/>
+ <point x="244" y="428"/>
+ <point x="244" y="459" type="curve" smooth="yes"/>
+ <point x="244" y="479"/>
+ <point x="227" y="495"/>
+ </contour>
+ <contour>
+ <point x="1026" y="496" type="curve" smooth="yes"/>
+ <point x="999" y="496"/>
+ <point x="965" y="469"/>
+ <point x="965" y="438" type="curve" smooth="yes"/>
+ <point x="965" y="418"/>
+ <point x="979" y="403"/>
+ <point x="1004" y="403" type="curve" smooth="yes"/>
+ <point x="1033" y="403"/>
+ <point x="1064" y="431"/>
+ <point x="1064" y="460" type="curve" smooth="yes"/>
+ <point x="1064" y="480"/>
+ <point x="1048" y="496"/>
+ </contour>
+ <contour>
+ <point x="237" y="307" type="curve" smooth="yes"/>
+ <point x="237" y="327"/>
+ <point x="221" y="341"/>
+ <point x="199" y="341" type="curve" smooth="yes"/>
+ <point x="169" y="341"/>
+ <point x="138" y="314"/>
+ <point x="138" y="285" type="curve" smooth="yes"/>
+ <point x="138" y="263"/>
+ <point x="153" y="248"/>
+ <point x="175" y="248" type="curve" smooth="yes"/>
+ <point x="206" y="248"/>
+ <point x="237" y="278"/>
+ </contour>
+ <contour>
+ <point x="1071" y="613" type="curve" smooth="yes"/>
+ <point x="1071" y="634"/>
+ <point x="1055" y="650"/>
+ <point x="1034" y="650" type="curve" smooth="yes"/>
+ <point x="1003" y="650"/>
+ <point x="973" y="619"/>
+ <point x="973" y="590" type="curve" smooth="yes"/>
+ <point x="973" y="570"/>
+ <point x="989" y="556"/>
+ <point x="1009" y="556" type="curve" smooth="yes"/>
+ <point x="1041" y="556"/>
+ <point x="1071" y="585"/>
+ </contour>
+ <contour>
+ <point x="292" y="177" type="curve" smooth="yes"/>
+ <point x="292" y="197"/>
+ <point x="277" y="211"/>
+ <point x="253" y="211" type="curve" smooth="yes"/>
+ <point x="224" y="211"/>
+ <point x="194" y="181"/>
+ <point x="194" y="154" type="curve" smooth="yes"/>
+ <point x="194" y="134"/>
+ <point x="211" y="118"/>
+ <point x="232" y="118" type="curve" smooth="yes"/>
+ <point x="262" y="118"/>
+ <point x="292" y="148"/>
+ </contour>
+ <contour>
+ <point x="917" y="724" type="curve" smooth="yes"/>
+ <point x="917" y="704"/>
+ <point x="931" y="686"/>
+ <point x="954" y="686" type="curve" smooth="yes"/>
+ <point x="984" y="686"/>
+ <point x="1014" y="716"/>
+ <point x="1014" y="745" type="curve" smooth="yes"/>
+ <point x="1014" y="765"/>
+ <point x="1000" y="780"/>
+ <point x="977" y="780" type="curve" smooth="yes"/>
+ <point x="947" y="780"/>
+ <point x="917" y="753"/>
+ </contour>
+ <contour>
+ <point x="403" y="87" type="curve" smooth="yes"/>
+ <point x="403" y="107"/>
+ <point x="390" y="123"/>
+ <point x="367" y="123" type="curve" smooth="yes"/>
+ <point x="339" y="123"/>
+ <point x="305" y="96"/>
+ <point x="305" y="68" type="curve" smooth="yes"/>
+ <point x="305" y="49"/>
+ <point x="320" y="30"/>
+ <point x="343" y="30" type="curve" smooth="yes"/>
+ <point x="371" y="30"/>
+ <point x="403" y="56"/>
+ </contour>
+ <contour>
+ <point x="806" y="810" type="curve" smooth="yes"/>
+ <point x="806" y="791"/>
+ <point x="819" y="773"/>
+ <point x="842" y="773" type="curve" smooth="yes"/>
+ <point x="869" y="773"/>
+ <point x="903" y="799"/>
+ <point x="903" y="830" type="curve" smooth="yes"/>
+ <point x="903" y="850"/>
+ <point x="889" y="867"/>
+ <point x="866" y="867" type="curve" smooth="yes"/>
+ <point x="836" y="867"/>
+ <point x="806" y="839"/>
+ </contour>
+ <contour>
+ <point x="553" y="57" type="curve" smooth="yes"/>
+ <point x="553" y="78"/>
+ <point x="538" y="93"/>
+ <point x="516" y="93" type="curve" smooth="yes"/>
+ <point x="485" y="93"/>
+ <point x="456" y="65"/>
+ <point x="456" y="36" type="curve" smooth="yes"/>
+ <point x="456" y="16"/>
+ <point x="471" y="0"/>
+ <point x="493" y="0" type="curve" smooth="yes"/>
+ <point x="523" y="0"/>
+ <point x="553" y="27"/>
+ </contour>
+ <contour>
+ <point x="656" y="839" type="curve" smooth="yes"/>
+ <point x="656" y="819"/>
+ <point x="671" y="805"/>
+ <point x="693" y="805" type="curve" smooth="yes"/>
+ <point x="721" y="805"/>
+ <point x="754" y="830"/>
+ <point x="754" y="861" type="curve" smooth="yes"/>
+ <point x="754" y="882"/>
+ <point x="738" y="898"/>
+ <point x="716" y="898" type="curve" smooth="yes"/>
+ <point x="685" y="898"/>
+ <point x="656" y="868"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/E_qS_gn.glif b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/E_qS_gn.glif
new file mode 100644
index 0000000..3d756e8
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/E_qS_gn.glif
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="EqSgn" format="2">
+ <advance width="1180"/>
+ <unicode hex="003D"/>
+ <outline>
+ <contour>
+ <point x="177" y="470" type="line"/>
+ <point x="1137" y="470" type="line"/>
+ <point x="1173" y="617" type="line"/>
+ <point x="213" y="617" type="line"/>
+ </contour>
+ <contour>
+ <point x="262" y="813" type="line"/>
+ <point x="1222" y="813" type="line"/>
+ <point x="1259" y="960" type="line"/>
+ <point x="299" y="960" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/E_xclamationM_rk.glif b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/E_xclamationM_rk.glif
new file mode 100644
index 0000000..a1c14d9
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/E_xclamationM_rk.glif
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="ExclamationMrk" format="2">
+ <advance width="744"/>
+ <unicode hex="0021"/>
+ <outline>
+ <contour>
+ <point x="497" y="431" type="line"/>
+ <point x="574" y="715"/>
+ <point x="653" y="1054"/>
+ <point x="799" y="1480" type="curve"/>
+ <point x="544" y="1480" type="line"/>
+ <point x="475" y="1054"/>
+ <point x="386" y="715"/>
+ <point x="322" y="431" type="curve"/>
+ </contour>
+ <contour>
+ <point x="188" y="90" type="curve" smooth="yes"/>
+ <point x="188" y="28"/>
+ <point x="238" y="-25"/>
+ <point x="303" y="-25" type="curve" smooth="yes"/>
+ <point x="387" y="-25"/>
+ <point x="464" y="45"/>
+ <point x="464" y="125" type="curve" smooth="yes"/>
+ <point x="464" y="186"/>
+ <point x="414" y="240"/>
+ <point x="349" y="240" type="curve" smooth="yes"/>
+ <point x="265" y="240"/>
+ <point x="188" y="170"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/F_ullS_top.glif b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/F_ullS_top.glif
new file mode 100644
index 0000000..a6c4d08
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/F_ullS_top.glif
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="FullStop" format="2">
+ <advance width="620"/>
+ <unicode hex="002E"/>
+ <outline>
+ <contour>
+ <point x="148" y="90" type="curve" smooth="yes"/>
+ <point x="148" y="28"/>
+ <point x="198" y="-25"/>
+ <point x="263" y="-25" type="curve" smooth="yes"/>
+ <point x="347" y="-25"/>
+ <point x="424" y="45"/>
+ <point x="424" y="125" type="curve" smooth="yes"/>
+ <point x="424" y="186"/>
+ <point x="374" y="240"/>
+ <point x="309" y="240" type="curve" smooth="yes"/>
+ <point x="225" y="240"/>
+ <point x="148" y="170"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/G_T_S_gn.glif b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/G_T_S_gn.glif
new file mode 100644
index 0000000..12da8b3
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/G_T_S_gn.glif
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="GTSgn" format="2">
+ <advance width="1180"/>
+ <unicode hex="003E"/>
+ <outline>
+ <contour>
+ <point x="312" y="1014" type="line"/>
+ <point x="1028" y="725" type="line"/>
+ <point x="163" y="417" type="line"/>
+ <point x="119" y="240" type="line"/>
+ <point x="1197" y="632" type="line"/>
+ <point x="1239" y="799" type="line"/>
+ <point x="356" y="1191" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/G_raveA_ccent.glif b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/G_raveA_ccent.glif
new file mode 100644
index 0000000..48adfc4
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/G_raveA_ccent.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="GraveAccent" format="2">
+ <advance width="560"/>
+ <unicode hex="0060"/>
+ <anchor x="738" y="1635" name="U"/>
+ <outline>
+ <contour>
+ <point x="261" y="1568" type="line"/>
+ <point x="596" y="1147" type="line"/>
+ <point x="746" y="1147" type="line"/>
+ <point x="471" y="1568" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/H_yphen.glif b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/H_yphen.glif
new file mode 100644
index 0000000..ae8cad5
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/H_yphen.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Hyphen" format="2">
+ <advance width="840"/>
+ <unicode hex="2010"/>
+ <anchor x="645" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="155" y="544" type="line"/>
+ <point x="855" y="544" type="line"/>
+ <point x="892" y="691" type="line"/>
+ <point x="192" y="691" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/H_yphenM_inus.glif b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/H_yphenM_inus.glif
new file mode 100644
index 0000000..155b460
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/H_yphenM_inus.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="HyphenMinus" format="2">
+ <advance width="840"/>
+ <unicode hex="002D"/>
+ <anchor x="645" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="155" y="544" type="line"/>
+ <point x="855" y="544" type="line"/>
+ <point x="892" y="691" type="line"/>
+ <point x="192" y="691" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/H_yphen_S_oft.glif b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/H_yphen_S_oft.glif
new file mode 100644
index 0000000..0c7b834
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/H_yphen_S_oft.glif
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Hyphen_Soft" format="2">
+ <advance width="840"/>
+ <unicode hex="00AD"/>
+ <anchor x="645" y="1100" name="U"/>
+ <outline>
+ <component base="HyphenMinus"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_T_S_gn.glif b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_T_S_gn.glif
new file mode 100644
index 0000000..3c857a5
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_T_S_gn.glif
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LTSgn" format="2">
+ <advance width="1180"/>
+ <unicode hex="003C"/>
+ <outline>
+ <contour>
+ <point x="1123" y="417" type="line"/>
+ <point x="408" y="705" type="line"/>
+ <point x="1272" y="1014" type="line"/>
+ <point x="1316" y="1191" type="line"/>
+ <point x="239" y="799" type="line"/>
+ <point x="197" y="632" type="line"/>
+ <point x="1079" y="240" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_ftC_urlyB_rac.glif b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_ftC_urlyB_rac.glif
new file mode 100644
index 0000000..4f8c90c
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_ftC_urlyB_rac.glif
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LftCurlyBrac" format="2">
+ <advance width="980"/>
+ <unicode hex="007B"/>
+ <outline>
+ <contour>
+ <point x="713" y="-265" type="line"/>
+ <point x="660" y="-250"/>
+ <point x="526" y="-188"/>
+ <point x="526" y="-158" type="curve" smooth="yes"/>
+ <point x="526" y="-59"/>
+ <point x="649" y="404"/>
+ <point x="649" y="469" type="curve" smooth="yes"/>
+ <point x="649" y="509"/>
+ <point x="520" y="577"/>
+ <point x="520" y="602" type="curve" smooth="yes"/>
+ <point x="520" y="620"/>
+ <point x="688" y="700"/>
+ <point x="712" y="730" type="curve" smooth="yes"/>
+ <point x="741" y="767"/>
+ <point x="867" y="1326"/>
+ <point x="912" y="1372" type="curve" smooth="yes"/>
+ <point x="938" y="1399"/>
+ <point x="1073" y="1447"/>
+ <point x="1146" y="1470" type="curve"/>
+ <point x="1140" y="1607" type="line"/>
+ <point x="1030" y="1581"/>
+ <point x="856" y="1529"/>
+ <point x="805" y="1485" type="curve" smooth="yes"/>
+ <point x="714" y="1406"/>
+ <point x="572" y="796"/>
+ <point x="540" y="764" type="curve" smooth="yes"/>
+ <point x="504" y="729"/>
+ <point x="300" y="633"/>
+ <point x="300" y="601" type="curve" smooth="yes"/>
+ <point x="300" y="560"/>
+ <point x="460" y="468"/>
+ <point x="460" y="432" type="curve" smooth="yes"/>
+ <point x="460" y="362"/>
+ <point x="355" y="-53"/>
+ <point x="355" y="-219" type="curve" smooth="yes"/>
+ <point x="355" y="-247"/>
+ <point x="358" y="-268"/>
+ <point x="365" y="-279" type="curve" smooth="yes"/>
+ <point x="394" y="-323"/>
+ <point x="542" y="-375"/>
+ <point x="639" y="-402" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_ftP_aren.glif b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_ftP_aren.glif
new file mode 100644
index 0000000..bc65fc1
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_ftP_aren.glif
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LftParen" format="2">
+ <advance width="775"/>
+ <unicode hex="0028"/>
+ <outline>
+ <contour>
+ <point x="895" y="1607" type="line"/>
+ <point x="582" y="1415"/>
+ <point x="314" y="1061"/>
+ <point x="207" y="633" type="curve" smooth="yes"/>
+ <point x="176" y="508"/>
+ <point x="161" y="386"/>
+ <point x="161" y="270" type="curve" smooth="yes"/>
+ <point x="161" y="17"/>
+ <point x="233" y="-211"/>
+ <point x="374" y="-402" type="curve"/>
+ <point x="505" y="-260" type="line"/>
+ <point x="397" y="-102"/>
+ <point x="348" y="75"/>
+ <point x="348" y="270" type="curve" smooth="yes"/>
+ <point x="348" y="385"/>
+ <point x="365" y="506"/>
+ <point x="397" y="633" type="curve" smooth="yes"/>
+ <point x="484" y="982"/>
+ <point x="647" y="1254"/>
+ <point x="932" y="1455" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_ftS_qrB_rac.glif b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_ftS_qrB_rac.glif
new file mode 100644
index 0000000..6d064d1
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_ftS_qrB_rac.glif
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LftSqrBrac" format="2">
+ <advance width="770"/>
+ <unicode hex="005B"/>
+ <outline>
+ <contour>
+ <point x="484" y="-402" type="line"/>
+ <point x="521" y="-255" type="line"/>
+ <point x="266" y="-255" type="line"/>
+ <point x="679" y="1421" type="line"/>
+ <point x="934" y="1421" type="line"/>
+ <point x="970" y="1568" type="line"/>
+ <point x="530" y="1568" type="line"/>
+ <point x="44" y="-402" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_owL_ine.glif b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_owL_ine.glif
new file mode 100644
index 0000000..879d36b
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_owL_ine.glif
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LowLine" format="2">
+ <advance width="1254"/>
+ <unicode hex="005F"/>
+ <outline>
+ <contour>
+ <point x="-138" y="-314" type="line"/>
+ <point x="1135" y="-314" type="line"/>
+ <point x="1172" y="-167" type="line"/>
+ <point x="-101" y="-167" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnC_apA_.glif b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnC_apA_.glif
new file mode 100644
index 0000000..a186541
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnC_apA_.glif
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapA" format="2">
+ <advance width="1395"/>
+ <unicode hex="0041"/>
+ <anchor x="1170" y="0" name="H"/>
+ <anchor x="602" y="-100" name="L"/>
+ <anchor x="1390" y="0" name="O"/>
+ <anchor x="1009" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1080" y="0" type="line"/>
+ <point x="1275" y="0" type="line"/>
+ <point x="1259" y="78"/>
+ <point x="1243" y="166"/>
+ <point x="1221" y="348" type="curve" smooth="yes"/>
+ <point x="1091" y="1431" type="line"/>
+ <point x="876" y="1431" type="line"/>
+ <point x="206" y="348" type="line" smooth="yes"/>
+ <point x="93" y="165"/>
+ <point x="35" y="79"/>
+ <point x="-20" y="0" type="curve"/>
+ <point x="195" y="0" type="line"/>
+ <point x="422" y="377" type="line"/>
+ <point x="1038" y="377" type="line"/>
+ </contour>
+ <contour>
+ <point x="944" y="1240" type="line"/>
+ <point x="1022" y="529" type="line"/>
+ <point x="514" y="529" type="line"/>
+ </contour>
+ </outline>
+ <lib>
+ <dict>
+ <key>org.sil.assocFeature</key>
+ <string>fea1</string>
+ </dict>
+ </lib>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnC_apA_D_iaer.glif b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnC_apA_D_iaer.glif
new file mode 100644
index 0000000..6c3502c
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnC_apA_D_iaer.glif
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapADiaer" format="2">
+ <advance width="1395"/>
+ <unicode hex="00C4"/>
+ <anchor x="1170" y="0" name="H"/>
+ <anchor x="602" y="-100" name="L"/>
+ <anchor x="1390" y="0" name="O"/>
+ <anchor x="1106" y="1935" name="U"/>
+ <outline>
+ <component base="LtnCapA"/>
+ <component base="CombDiaer" xOffset="1359" yOffset="430"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnC_apB_.glif b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnC_apB_.glif
new file mode 100644
index 0000000..5445f93
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnC_apB_.glif
@@ -0,0 +1,62 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapB" format="2">
+ <advance width="1271"/>
+ <unicode hex="0042"/>
+ <anchor x="530" y="-100" name="L"/>
+ <anchor x="937" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="625" y="1284" type="line"/>
+ <point x="667" y="1286"/>
+ <point x="733" y="1289"/>
+ <point x="811" y="1289" type="curve" smooth="yes"/>
+ <point x="993" y="1289"/>
+ <point x="1080" y="1230"/>
+ <point x="1080" y="1105" type="curve" smooth="yes"/>
+ <point x="1080" y="932"/>
+ <point x="931" y="838"/>
+ <point x="698" y="838" type="curve" smooth="yes"/>
+ <point x="513" y="838" type="line"/>
+ </contour>
+ <contour>
+ <point x="226" y="446" type="line"/>
+ <point x="178" y="252"/>
+ <point x="134" y="78"/>
+ <point x="100" y="0" type="curve"/>
+ <point x="151" y="-5"/>
+ <point x="359" y="-10"/>
+ <point x="562" y="-10" type="curve" smooth="yes"/>
+ <point x="960" y="-10"/>
+ <point x="1201" y="149"/>
+ <point x="1201" y="453" type="curve" smooth="yes"/>
+ <point x="1201" y="644"/>
+ <point x="1067" y="736"/>
+ <point x="955" y="764" type="curve"/>
+ <point x="1155" y="819"/>
+ <point x="1283" y="941"/>
+ <point x="1283" y="1140" type="curve" smooth="yes"/>
+ <point x="1283" y="1310"/>
+ <point x="1136" y="1441"/>
+ <point x="869" y="1441" type="curve" smooth="yes"/>
+ <point x="700" y="1441"/>
+ <point x="546" y="1437"/>
+ <point x="456" y="1431" type="curve"/>
+ <point x="452" y="1352"/>
+ <point x="407" y="1172"/>
+ <point x="359" y="980" type="curve" smooth="yes"/>
+ </contour>
+ <contour>
+ <point x="476" y="686" type="line"/>
+ <point x="721" y="686" type="line" smooth="yes"/>
+ <point x="892" y="686"/>
+ <point x="1011" y="598"/>
+ <point x="1011" y="450" type="curve" smooth="yes"/>
+ <point x="1011" y="218"/>
+ <point x="806" y="147"/>
+ <point x="586" y="147" type="curve" smooth="yes"/>
+ <point x="474" y="147"/>
+ <point x="379" y="150"/>
+ <point x="342" y="152" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnC_apC_.glif b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnC_apC_.glif
new file mode 100644
index 0000000..c2e4948
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnC_apC_.glif
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapC" format="2">
+ <advance width="1341"/>
+ <unicode hex="0043"/>
+ <anchor x="690" y="0" name="H"/>
+ <anchor x="665" y="-100" name="L"/>
+ <anchor x="1072" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1237" y="318" type="line"/>
+ <point x="1115" y="222"/>
+ <point x="934" y="147"/>
+ <point x="752" y="147" type="curve" smooth="yes"/>
+ <point x="537" y="147"/>
+ <point x="385" y="304"/>
+ <point x="385" y="532" type="curve" smooth="yes"/>
+ <point x="385" y="964"/>
+ <point x="704" y="1289"/>
+ <point x="1037" y="1289" type="curve" smooth="yes"/>
+ <point x="1168" y="1289"/>
+ <point x="1310" y="1235"/>
+ <point x="1385" y="1132" type="curve"/>
+ <point x="1489" y="1308" type="line"/>
+ <point x="1388" y="1408"/>
+ <point x="1201" y="1455"/>
+ <point x="1058" y="1455" type="curve" smooth="yes"/>
+ <point x="645" y="1455"/>
+ <point x="185" y="1093"/>
+ <point x="185" y="513" type="curve" smooth="yes"/>
+ <point x="185" y="202"/>
+ <point x="381" y="-25"/>
+ <point x="709" y="-25" type="curve" smooth="yes"/>
+ <point x="896" y="-25"/>
+ <point x="1087" y="21"/>
+ <point x="1230" y="127" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnC_apD_.glif b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnC_apD_.glif
new file mode 100644
index 0000000..3b93811
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnC_apD_.glif
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapD" format="2">
+ <advance width="1421"/>
+ <unicode hex="0044"/>
+ <anchor x="630" y="-100" name="L"/>
+ <anchor x="1037" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="226" y="446" type="line"/>
+ <point x="176" y="252"/>
+ <point x="134" y="78"/>
+ <point x="100" y="0" type="curve"/>
+ <point x="100" y="0"/>
+ <point x="414" y="-10"/>
+ <point x="542" y="-10" type="curve" smooth="yes"/>
+ <point x="985" y="-10"/>
+ <point x="1299" y="181"/>
+ <point x="1415" y="648" type="curve" smooth="yes"/>
+ <point x="1437" y="738"/>
+ <point x="1447" y="819"/>
+ <point x="1447" y="891" type="curve" smooth="yes"/>
+ <point x="1447" y="1279"/>
+ <point x="1188" y="1441"/>
+ <point x="894" y="1441" type="curve" smooth="yes"/>
+ <point x="759" y="1441"/>
+ <point x="543" y="1437"/>
+ <point x="456" y="1431" type="curve"/>
+ <point x="452" y="1352"/>
+ <point x="407" y="1172"/>
+ <point x="359" y="980" type="curve" smooth="yes"/>
+ </contour>
+ <contour>
+ <point x="623" y="1279" type="line"/>
+ <point x="674" y="1281"/>
+ <point x="764" y="1284"/>
+ <point x="830" y="1284" type="curve" smooth="yes"/>
+ <point x="1105" y="1284"/>
+ <point x="1246" y="1140"/>
+ <point x="1246" y="850" type="curve" smooth="yes"/>
+ <point x="1246" y="784"/>
+ <point x="1236" y="710"/>
+ <point x="1216" y="629" type="curve" smooth="yes"/>
+ <point x="1134" y="300"/>
+ <point x="925" y="152"/>
+ <point x="572" y="152" type="curve" smooth="yes"/>
+ <point x="477" y="152"/>
+ <point x="391" y="158"/>
+ <point x="345" y="162" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnC_apE_.glif b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnC_apE_.glif
new file mode 100644
index 0000000..8b5f8b9
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnC_apE_.glif
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapE" format="2">
+ <advance width="1140"/>
+ <unicode hex="0045"/>
+ <anchor x="540" y="0" name="H"/>
+ <anchor x="515" y="-100" name="L"/>
+ <anchor x="857" y="0" name="O"/>
+ <anchor x="1400" y="1200" name="R"/>
+ <anchor x="922" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="511" y="828" type="line"/>
+ <point x="621" y="1269" type="line"/>
+ <point x="1266" y="1269" type="line"/>
+ <point x="1306" y="1431" type="line"/>
+ <point x="456" y="1431" type="line"/>
+ <point x="452" y="1352"/>
+ <point x="413" y="1197"/>
+ <point x="365" y="1005" type="curve" smooth="yes"/>
+ <point x="221" y="426" type="line" smooth="yes"/>
+ <point x="173" y="233"/>
+ <point x="134" y="78"/>
+ <point x="100" y="0" type="curve"/>
+ <point x="980" y="0" type="line"/>
+ <point x="1023" y="176" type="line"/>
+ <point x="940" y="163"/>
+ <point x="806" y="162"/>
+ <point x="609" y="162" type="curve" smooth="yes"/>
+ <point x="345" y="162" type="line"/>
+ <point x="472" y="671" type="line"/>
+ <point x="1042" y="671" type="line"/>
+ <point x="1081" y="828" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnC_apF_.glif b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnC_apF_.glif
new file mode 100644
index 0000000..cbc1726
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnC_apF_.glif
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapF" format="2">
+ <advance width="1130"/>
+ <unicode hex="0046"/>
+ <anchor x="510" y="-100" name="L"/>
+ <anchor x="917" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="508" y="818" type="line"/>
+ <point x="621" y="1269" type="line"/>
+ <point x="1286" y="1269" type="line"/>
+ <point x="1326" y="1431" type="line"/>
+ <point x="456" y="1431" type="line"/>
+ <point x="452" y="1352"/>
+ <point x="412" y="1193"/>
+ <point x="364" y="1000" type="curve" smooth="yes"/>
+ <point x="221" y="426" type="line" smooth="yes"/>
+ <point x="173" y="233"/>
+ <point x="134" y="78"/>
+ <point x="100" y="0" type="curve"/>
+ <point x="320" y="0" type="line"/>
+ <point x="323" y="76"/>
+ <point x="362" y="232"/>
+ <point x="411" y="426" type="curve" smooth="yes"/>
+ <point x="470" y="662" type="line"/>
+ <point x="1050" y="662" type="line"/>
+ <point x="1088" y="818" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnC_apG_.glif b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnC_apG_.glif
new file mode 100644
index 0000000..c39b75a
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnC_apG_.glif
@@ -0,0 +1,48 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapG" format="2">
+ <advance width="1406"/>
+ <unicode hex="0047"/>
+ <anchor x="685" y="0" name="H"/>
+ <anchor x="660" y="-100" name="L"/>
+ <anchor x="1067" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1403" y="710" type="line"/>
+ <point x="863" y="710" type="line"/>
+ <point x="822" y="548" type="line"/>
+ <point x="1172" y="548" type="line"/>
+ <point x="1090" y="220" type="line"/>
+ <point x="1012" y="176"/>
+ <point x="858" y="147"/>
+ <point x="739" y="147" type="curve" smooth="yes"/>
+ <point x="520" y="147"/>
+ <point x="384" y="272"/>
+ <point x="384" y="493" type="curve" smooth="yes"/>
+ <point x="384" y="560"/>
+ <point x="394" y="636"/>
+ <point x="415" y="720" type="curve" smooth="yes"/>
+ <point x="500" y="1062"/>
+ <point x="747" y="1289"/>
+ <point x="1052" y="1289" type="curve" smooth="yes"/>
+ <point x="1195" y="1289"/>
+ <point x="1335" y="1233"/>
+ <point x="1425" y="1122" type="curve"/>
+ <point x="1534" y="1298" type="line"/>
+ <point x="1409" y="1405"/>
+ <point x="1235" y="1455"/>
+ <point x="1063" y="1455" type="curve" smooth="yes"/>
+ <point x="680" y="1455"/>
+ <point x="334" y="1195"/>
+ <point x="217" y="726" type="curve" smooth="yes"/>
+ <point x="195" y="639"/>
+ <point x="185" y="559"/>
+ <point x="185" y="486" type="curve" smooth="yes"/>
+ <point x="185" y="162"/>
+ <point x="406" y="-25"/>
+ <point x="714" y="-25" type="curve" smooth="yes"/>
+ <point x="907" y="-25"/>
+ <point x="1149" y="50"/>
+ <point x="1258" y="132" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnC_apH_.glif b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnC_apH_.glif
new file mode 100644
index 0000000..f454288
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnC_apH_.glif
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapH" format="2">
+ <advance width="1455"/>
+ <unicode hex="0048"/>
+ <anchor x="225" y="0" name="H"/>
+ <anchor x="640" y="-100" name="L"/>
+ <anchor x="1047" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1230" y="0" type="line"/>
+ <point x="1234" y="78"/>
+ <point x="1273" y="233"/>
+ <point x="1321" y="426" type="curve" smooth="yes"/>
+ <point x="1465" y="1005" type="line" smooth="yes"/>
+ <point x="1513" y="1198"/>
+ <point x="1552" y="1352"/>
+ <point x="1586" y="1431" type="curve"/>
+ <point x="1381" y="1431" type="line"/>
+ <point x="1228" y="818" type="line"/>
+ <point x="508" y="818" type="line"/>
+ <point x="661" y="1431" type="line"/>
+ <point x="456" y="1431" type="line"/>
+ <point x="452" y="1352"/>
+ <point x="413" y="1197"/>
+ <point x="365" y="1005" type="curve" smooth="yes"/>
+ <point x="221" y="426" type="line" smooth="yes"/>
+ <point x="173" y="233"/>
+ <point x="134" y="78"/>
+ <point x="100" y="0" type="curve"/>
+ <point x="305" y="0" type="line"/>
+ <point x="470" y="662" type="line"/>
+ <point x="1190" y="662" type="line"/>
+ <point x="1025" y="0" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnC_apI_.glif b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnC_apI_.glif
new file mode 100644
index 0000000..78b151c
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnC_apI_.glif
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapI" format="2">
+ <advance width="955"/>
+ <unicode hex="0049"/>
+ <anchor x="417" y="0" name="H"/>
+ <anchor x="392" y="-100" name="L"/>
+ <anchor x="613" y="0" name="O"/>
+ <anchor x="1215" y="1200" name="R"/>
+ <anchor x="799" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="436" y="1431" type="line"/>
+ <point x="401" y="1289" type="line"/>
+ <point x="641" y="1289" type="line"/>
+ <point x="355" y="142" type="line"/>
+ <point x="115" y="142" type="line"/>
+ <point x="80" y="0" type="line"/>
+ <point x="755" y="0" type="line"/>
+ <point x="790" y="142" type="line"/>
+ <point x="545" y="142" type="line"/>
+ <point x="831" y="1289" type="line"/>
+ <point x="1076" y="1289" type="line"/>
+ <point x="1111" y="1431" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnC_apJ_.glif b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnC_apJ_.glif
new file mode 100644
index 0000000..417d1f8
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnC_apJ_.glif
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapJ" format="2">
+ <advance width="996"/>
+ <unicode hex="004A"/>
+ <anchor x="325" y="-100" name="L"/>
+ <anchor x="997" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="871" y="1431" type="line"/>
+ <point x="858" y="1327"/>
+ <point x="817" y="1151"/>
+ <point x="769" y="960" type="curve" smooth="yes"/>
+ <point x="648" y="475" type="line" smooth="yes"/>
+ <point x="592" y="251"/>
+ <point x="484" y="152"/>
+ <point x="337" y="152" type="curve" smooth="yes"/>
+ <point x="245" y="152"/>
+ <point x="145" y="224"/>
+ <point x="97" y="299" type="curve"/>
+ <point x="6" y="118" type="line"/>
+ <point x="58" y="39"/>
+ <point x="193" y="-25"/>
+ <point x="298" y="-25" type="curve" smooth="yes"/>
+ <point x="555" y="-25"/>
+ <point x="749" y="117"/>
+ <point x="850" y="524" type="curve" smooth="yes"/>
+ <point x="1076" y="1431" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnC_apK_.glif b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnC_apK_.glif
new file mode 100644
index 0000000..8e54a6d
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnC_apK_.glif
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapK" format="2">
+ <advance width="1261"/>
+ <unicode hex="004B"/>
+ <anchor x="210" y="0" name="H"/>
+ <anchor x="610" y="-100" name="L"/>
+ <anchor x="972" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1221" y="1431" type="line"/>
+ <point x="406" y="689" type="line"/>
+ <point x="547" y="730" type="line"/>
+ <point x="660" y="725" type="line"/>
+ <point x="1461" y="1431" type="line"/>
+ </contour>
+ <contour>
+ <point x="1170" y="0" type="line"/>
+ <point x="615" y="823" type="line"/>
+ <point x="469" y="720" type="line"/>
+ <point x="925" y="0" type="line"/>
+ </contour>
+ <contour>
+ <point x="661" y="1431" type="line"/>
+ <point x="456" y="1431" type="line"/>
+ <point x="452" y="1352"/>
+ <point x="413" y="1197"/>
+ <point x="365" y="1005" type="curve" smooth="yes"/>
+ <point x="221" y="426" type="line" smooth="yes"/>
+ <point x="173" y="233"/>
+ <point x="134" y="78"/>
+ <point x="100" y="0" type="curve"/>
+ <point x="305" y="0" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnC_apL_.glif b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnC_apL_.glif
new file mode 100644
index 0000000..d2eb932
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnC_apL_.glif
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapL" format="2">
+ <advance width="1060"/>
+ <unicode hex="004C"/>
+ <anchor x="532" y="0" name="H"/>
+ <anchor x="507" y="-100" name="L"/>
+ <anchor x="780" y="1200" name="R"/>
+ <anchor x="914" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="345" y="162" type="line"/>
+ <point x="661" y="1431" type="line"/>
+ <point x="456" y="1431" type="line"/>
+ <point x="452" y="1352"/>
+ <point x="413" y="1197"/>
+ <point x="365" y="1005" type="curve" smooth="yes"/>
+ <point x="221" y="426" type="line" smooth="yes"/>
+ <point x="173" y="233"/>
+ <point x="134" y="78"/>
+ <point x="100" y="0" type="curve"/>
+ <point x="965" y="0" type="line"/>
+ <point x="1008" y="176" type="line"/>
+ <point x="925" y="163"/>
+ <point x="766" y="162"/>
+ <point x="569" y="162" type="curve" smooth="yes"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnC_apM_.glif b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnC_apM_.glif
new file mode 100644
index 0000000..7c3c824
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnC_apM_.glif
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapM" format="2">
+ <advance width="1785"/>
+ <unicode hex="004D"/>
+ <anchor x="800" y="-100" name="L"/>
+ <anchor x="1207" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="880" y="201" type="line"/>
+ <point x="751" y="1431" type="line"/>
+ <point x="591" y="1431" type="line"/>
+ <point x="740" y="0" type="line"/>
+ <point x="935" y="0" type="line"/>
+ <point x="1793" y="1431" type="line"/>
+ <point x="1616" y="1431" type="line"/>
+ </contour>
+ <contour>
+ <point x="536" y="1431" type="line"/>
+ <point x="536" y="1431"/>
+ <point x="184" y="194"/>
+ <point x="110" y="0" type="curve"/>
+ <point x="295" y="0" type="line"/>
+ <point x="621" y="1181" type="line"/>
+ <point x="711" y="1431" type="line"/>
+ </contour>
+ <contour>
+ <point x="1560" y="0" type="line"/>
+ <point x="1579" y="194"/>
+ <point x="1846" y="1431"/>
+ <point x="1846" y="1431" type="curve"/>
+ <point x="1671" y="1431" type="line"/>
+ <point x="1641" y="1181" type="line"/>
+ <point x="1375" y="0" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnC_apN_.glif b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnC_apN_.glif
new file mode 100644
index 0000000..7306669
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnC_apN_.glif
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapN" format="2">
+ <advance width="1480"/>
+ <unicode hex="004E"/>
+ <anchor x="1170" y="0" name="H"/>
+ <anchor x="652" y="-100" name="L"/>
+ <anchor x="1059" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="491" y="1328" type="line"/>
+ <point x="1075" y="0" type="line"/>
+ <point x="1219" y="98" type="line"/>
+ <point x="636" y="1431" type="line"/>
+ </contour>
+ <contour>
+ <point x="1075" y="0" type="line"/>
+ <point x="1250" y="0" type="line"/>
+ <point x="1500" y="1005" type="line" smooth="yes"/>
+ <point x="1548" y="1198"/>
+ <point x="1588" y="1352"/>
+ <point x="1621" y="1431" type="curve"/>
+ <point x="1431" y="1431" type="line"/>
+ </contour>
+ <contour>
+ <point x="636" y="1431" type="line"/>
+ <point x="446" y="1431" type="line"/>
+ <point x="442" y="1352"/>
+ <point x="403" y="1197"/>
+ <point x="355" y="1005" type="curve" smooth="yes"/>
+ <point x="211" y="426" type="line" smooth="yes"/>
+ <point x="163" y="233"/>
+ <point x="124" y="78"/>
+ <point x="90" y="0" type="curve"/>
+ <point x="280" y="0" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnC_apO_.glif b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnC_apO_.glif
new file mode 100644
index 0000000..19c4886
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnC_apO_.glif
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapO" format="2">
+ <advance width="1447"/>
+ <unicode hex="004F"/>
+ <anchor x="657" y="0" name="H"/>
+ <anchor x="632" y="-100" name="L"/>
+ <anchor x="896" y="0" name="O"/>
+ <anchor x="1700" y="1200" name="R"/>
+ <anchor x="1039" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="719" y="147" type="curve" smooth="yes"/>
+ <point x="514" y="147"/>
+ <point x="386" y="300"/>
+ <point x="386" y="541" type="curve" smooth="yes"/>
+ <point x="386" y="871"/>
+ <point x="606" y="1284"/>
+ <point x="963" y="1284" type="curve" smooth="yes"/>
+ <point x="1164" y="1284"/>
+ <point x="1291" y="1133"/>
+ <point x="1291" y="892" type="curve" smooth="yes"/>
+ <point x="1291" y="563"/>
+ <point x="1077" y="147"/>
+ </contour>
+ <contour>
+ <point x="1492" y="931" type="curve" smooth="yes"/>
+ <point x="1492" y="1263"/>
+ <point x="1278" y="1455"/>
+ <point x="1015" y="1455" type="curve" smooth="yes"/>
+ <point x="599" y="1455"/>
+ <point x="185" y="1036"/>
+ <point x="185" y="500" type="curve" smooth="yes"/>
+ <point x="185" y="167"/>
+ <point x="400" y="-25"/>
+ <point x="666" y="-25" type="curve" smooth="yes"/>
+ <point x="1078" y="-25"/>
+ <point x="1492" y="395"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnC_apP_.glif b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnC_apP_.glif
new file mode 100644
index 0000000..5b51a57
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnC_apP_.glif
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapP" format="2">
+ <advance width="1190"/>
+ <unicode hex="0050"/>
+ <anchor x="552" y="-100" name="L"/>
+ <anchor x="959" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="443" y="554" type="line"/>
+ <point x="506" y="547"/>
+ <point x="597" y="544"/>
+ <point x="670" y="544" type="curve" smooth="yes"/>
+ <point x="1058" y="544"/>
+ <point x="1321" y="733"/>
+ <point x="1321" y="1084" type="curve" smooth="yes"/>
+ <point x="1321" y="1302"/>
+ <point x="1141" y="1441"/>
+ <point x="864" y="1441" type="curve" smooth="yes"/>
+ <point x="651" y="1441"/>
+ <point x="456" y="1431"/>
+ <point x="456" y="1431" type="curve"/>
+ <point x="452" y="1352"/>
+ <point x="407" y="1172"/>
+ <point x="359" y="980" type="curve"/>
+ <point x="221" y="426" type="line" smooth="yes"/>
+ <point x="173" y="233"/>
+ <point x="134" y="78"/>
+ <point x="100" y="0" type="curve"/>
+ <point x="320" y="0" type="line"/>
+ <point x="324" y="76"/>
+ <point x="362" y="232"/>
+ <point x="411" y="426" type="curve" smooth="yes"/>
+ </contour>
+ <contour>
+ <point x="623" y="1279" type="line"/>
+ <point x="692" y="1282"/>
+ <point x="721" y="1284"/>
+ <point x="815" y="1284" type="curve" smooth="yes"/>
+ <point x="1036" y="1284"/>
+ <point x="1121" y="1172"/>
+ <point x="1121" y="1048" type="curve" smooth="yes"/>
+ <point x="1121" y="845"/>
+ <point x="968" y="696"/>
+ <point x="693" y="696" type="curve" smooth="yes"/>
+ <point x="618" y="696"/>
+ <point x="542" y="698"/>
+ <point x="481" y="706" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnC_apQ_.glif b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnC_apQ_.glif
new file mode 100644
index 0000000..3dcbc8d
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnC_apQ_.glif
@@ -0,0 +1,52 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapQ" format="2">
+ <advance width="1459"/>
+ <unicode hex="0051"/>
+ <anchor x="589" y="-270" name="L"/>
+ <anchor x="1039" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1495" y="939" type="curve" smooth="yes"/>
+ <point x="1495" y="1266"/>
+ <point x="1306" y="1455"/>
+ <point x="1026" y="1455" type="curve" smooth="yes"/>
+ <point x="703" y="1455"/>
+ <point x="332" y="1195"/>
+ <point x="215" y="726" type="curve" smooth="yes"/>
+ <point x="194" y="642"/>
+ <point x="185" y="564"/>
+ <point x="185" y="492" type="curve" smooth="yes"/>
+ <point x="185" y="165"/>
+ <point x="388" y="-25"/>
+ <point x="652" y="-25" type="curve" smooth="yes"/>
+ <point x="714" y="-25"/>
+ <point x="781" y="-17"/>
+ <point x="829" y="0" type="curve"/>
+ <point x="898" y="0"/>
+ <point x="1133" y="-186"/>
+ <point x="1217" y="-186" type="curve" smooth="yes"/>
+ <point x="1271" y="-186"/>
+ <point x="1355" y="-79"/>
+ <point x="1388" y="-44" type="curve"/>
+ <point x="1258" y="-27"/>
+ <point x="1155" y="27"/>
+ <point x="1049" y="103" type="curve"/>
+ <point x="1253" y="217"/>
+ <point x="1495" y="528"/>
+ </contour>
+ <contour>
+ <point x="690" y="147" type="curve" smooth="yes"/>
+ <point x="492" y="147"/>
+ <point x="384" y="284"/>
+ <point x="384" y="508" type="curve" smooth="yes"/>
+ <point x="384" y="856"/>
+ <point x="609" y="1284"/>
+ <point x="994" y="1284" type="curve" smooth="yes"/>
+ <point x="1188" y="1284"/>
+ <point x="1295" y="1149"/>
+ <point x="1295" y="925" type="curve" smooth="yes"/>
+ <point x="1295" y="490"/>
+ <point x="985" y="147"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnC_apR_.glif b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnC_apR_.glif
new file mode 100644
index 0000000..c8f8186
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnC_apR_.glif
@@ -0,0 +1,55 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapR" format="2">
+ <advance width="1295"/>
+ <unicode hex="0052"/>
+ <anchor x="590" y="0" name="H"/>
+ <anchor x="525" y="-100" name="L"/>
+ <anchor x="932" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="457" y="613" type="line"/>
+ <point x="712" y="613" type="line" smooth="yes"/>
+ <point x="1010" y="613"/>
+ <point x="1303" y="784"/>
+ <point x="1303" y="1114" type="curve" smooth="yes"/>
+ <point x="1303" y="1326"/>
+ <point x="1114" y="1441"/>
+ <point x="844" y="1441" type="curve" smooth="yes"/>
+ <point x="610" y="1441"/>
+ <point x="456" y="1431"/>
+ <point x="456" y="1431" type="curve"/>
+ <point x="452" y="1352"/>
+ <point x="407" y="1172"/>
+ <point x="359" y="980" type="curve" smooth="yes"/>
+ <point x="221" y="426" type="line"/>
+ <point x="173" y="233"/>
+ <point x="134" y="78"/>
+ <point x="100" y="0" type="curve"/>
+ <point x="320" y="0" type="line"/>
+ <point x="324" y="76"/>
+ <point x="363" y="233"/>
+ <point x="411" y="426" type="curve"/>
+ </contour>
+ <contour>
+ <point x="623" y="1279" type="line"/>
+ <point x="677" y="1281"/>
+ <point x="725" y="1284"/>
+ <point x="795" y="1284" type="curve" smooth="yes"/>
+ <point x="1003" y="1284"/>
+ <point x="1104" y="1203"/>
+ <point x="1104" y="1076" type="curve" smooth="yes"/>
+ <point x="1104" y="856"/>
+ <point x="921" y="764"/>
+ <point x="685" y="764" type="curve" smooth="yes"/>
+ <point x="495" y="764" type="line"/>
+ </contour>
+ <contour>
+ <point x="656" y="622" type="line"/>
+ <point x="930" y="0" type="line"/>
+ <point x="1185" y="0" type="line"/>
+ <point x="1122" y="89"/>
+ <point x="864" y="602"/>
+ <point x="828" y="676" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnC_apS_.glif b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnC_apS_.glif
new file mode 100644
index 0000000..01e9f47
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnC_apS_.glif
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapS" format="2">
+ <advance width="1155"/>
+ <unicode hex="0053"/>
+ <anchor x="520" y="0" name="H"/>
+ <anchor x="495" y="-100" name="L"/>
+ <anchor x="902" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1260" y="1347" type="line"/>
+ <point x="1146" y="1419"/>
+ <point x="1021" y="1455"/>
+ <point x="867" y="1455" type="curve" smooth="yes"/>
+ <point x="549" y="1455"/>
+ <point x="320" y="1303"/>
+ <point x="320" y="1040" type="curve" smooth="yes"/>
+ <point x="320" y="901"/>
+ <point x="438" y="794"/>
+ <point x="622" y="691" type="curve" smooth="yes"/>
+ <point x="877" y="549"/>
+ <point x="914" y="461"/>
+ <point x="914" y="378" type="curve" smooth="yes"/>
+ <point x="914" y="256"/>
+ <point x="792" y="147"/>
+ <point x="621" y="147" type="curve" smooth="yes"/>
+ <point x="473" y="147"/>
+ <point x="278" y="235"/>
+ <point x="161" y="378" type="curve"/>
+ <point x="65" y="187" type="line"/>
+ <point x="178" y="73"/>
+ <point x="365" y="-25"/>
+ <point x="558" y="-25" type="curve" smooth="yes"/>
+ <point x="852" y="-25"/>
+ <point x="1114" y="115"/>
+ <point x="1114" y="414" type="curve" smooth="yes"/>
+ <point x="1114" y="526"/>
+ <point x="1057" y="679"/>
+ <point x="800" y="828" type="curve" smooth="yes"/>
+ <point x="597" y="946"/>
+ <point x="510" y="1005"/>
+ <point x="510" y="1079" type="curve" smooth="yes"/>
+ <point x="510" y="1210"/>
+ <point x="659" y="1284"/>
+ <point x="845" y="1284" type="curve" smooth="yes"/>
+ <point x="959" y="1284"/>
+ <point x="1075" y="1240"/>
+ <point x="1173" y="1156" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnC_apT_.glif b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnC_apT_.glif
new file mode 100644
index 0000000..0eeece4
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnC_apT_.glif
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapT" format="2">
+ <advance width="1245"/>
+ <unicode hex="0054"/>
+ <anchor x="562" y="0" name="H"/>
+ <anchor x="562" y="-100" name="L"/>
+ <anchor x="944" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="341" y="1431" type="line"/>
+ <point x="296" y="1250" type="line"/>
+ <point x="380" y="1266"/>
+ <point x="457" y="1269"/>
+ <point x="546" y="1269" type="curve" smooth="yes"/>
+ <point x="781" y="1269" type="line"/>
+ <point x="571" y="426" type="line" smooth="yes"/>
+ <point x="523" y="233"/>
+ <point x="481" y="78"/>
+ <point x="445" y="0" type="curve"/>
+ <point x="675" y="0" type="line"/>
+ <point x="677" y="78"/>
+ <point x="713" y="233"/>
+ <point x="761" y="426" type="curve" smooth="yes"/>
+ <point x="971" y="1269" type="line"/>
+ <point x="1211" y="1269" type="line" smooth="yes"/>
+ <point x="1301" y="1269"/>
+ <point x="1375" y="1266"/>
+ <point x="1451" y="1250" type="curve"/>
+ <point x="1496" y="1431" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnC_apU_.glif b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnC_apU_.glif
new file mode 100644
index 0000000..ed6e991
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnC_apU_.glif
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapU" format="2">
+ <advance width="1420"/>
+ <unicode hex="0055"/>
+ <anchor x="647" y="0" name="H"/>
+ <anchor x="622" y="-100" name="L"/>
+ <anchor x="865" y="0" name="O"/>
+ <anchor x="1640" y="1200" name="R"/>
+ <anchor x="1029" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1346" y="1431" type="line"/>
+ <point x="1126" y="549" type="line" smooth="yes"/>
+ <point x="1055" y="264"/>
+ <point x="916" y="132"/>
+ <point x="682" y="132" type="curve" smooth="yes"/>
+ <point x="485" y="132"/>
+ <point x="421" y="244"/>
+ <point x="421" y="391" type="curve" smooth="yes"/>
+ <point x="421" y="451"/>
+ <point x="431" y="516"/>
+ <point x="448" y="582" type="curve" smooth="yes"/>
+ <point x="661" y="1431" type="line"/>
+ <point x="456" y="1431" type="line"/>
+ <point x="451" y="1352"/>
+ <point x="414" y="1198"/>
+ <point x="365" y="1005" type="curve" smooth="yes"/>
+ <point x="251" y="552" type="line" smooth="yes"/>
+ <point x="236" y="493"/>
+ <point x="228" y="435"/>
+ <point x="228" y="379" type="curve" smooth="yes"/>
+ <point x="228" y="157"/>
+ <point x="351" y="-25"/>
+ <point x="643" y="-25" type="curve" smooth="yes"/>
+ <point x="1020" y="-25"/>
+ <point x="1223" y="177"/>
+ <point x="1299" y="480" type="curve" smooth="yes"/>
+ <point x="1430" y="1005" type="line" smooth="yes"/>
+ <point x="1480" y="1207"/>
+ <point x="1519" y="1352"/>
+ <point x="1551" y="1431" type="curve"/>
+ </contour>
+ </outline>
+ <lib>
+ <dict>
+ <key>org.sil.assocFeature</key>
+ <string>fea2</string>
+ </dict>
+ </lib>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnC_apV_.glif b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnC_apV_.glif
new file mode 100644
index 0000000..2bf8b96
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnC_apV_.glif
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapV" format="2">
+ <advance width="1345"/>
+ <unicode hex="0056"/>
+ <anchor x="620" y="0" name="H"/>
+ <anchor x="587" y="-100" name="L"/>
+ <anchor x="820" y="0" name="O"/>
+ <anchor x="994" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1381" y="1431" type="line"/>
+ <point x="654" y="191" type="line"/>
+ <point x="536" y="1431" type="line"/>
+ <point x="331" y="1431" type="line"/>
+ <point x="344" y="1350"/>
+ <point x="355" y="1262"/>
+ <point x="377" y="1073" type="curve" smooth="yes"/>
+ <point x="500" y="0" type="line"/>
+ <point x="725" y="0" type="line"/>
+ <point x="1377" y="1073" type="line" smooth="yes"/>
+ <point x="1492" y="1263"/>
+ <point x="1550" y="1350"/>
+ <point x="1606" y="1431" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnC_apW_.glif b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnC_apW_.glif
new file mode 100644
index 0000000..553ea17
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnC_apW_.glif
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapW" format="2">
+ <advance width="2060"/>
+ <unicode hex="0057"/>
+ <anchor x="942" y="-100" name="L"/>
+ <anchor x="1349" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1535" y="0" type="line"/>
+ <point x="2107" y="1073" type="line" smooth="yes"/>
+ <point x="2208" y="1263"/>
+ <point x="2259" y="1350"/>
+ <point x="2311" y="1431" type="curve"/>
+ <point x="2081" y="1431" type="line"/>
+ <point x="1431" y="127" type="line"/>
+ <point x="1420" y="0" type="line"/>
+ </contour>
+ <contour>
+ <point x="1310" y="0" type="line"/>
+ <point x="1420" y="0" type="line"/>
+ <point x="1461" y="127" type="line"/>
+ <point x="1406" y="1431" type="line"/>
+ <point x="1231" y="1431" type="line"/>
+ <point x="1248" y="1279" type="line"/>
+ </contour>
+ <contour>
+ <point x="625" y="0" type="line"/>
+ <point x="1406" y="1431" type="line"/>
+ <point x="1221" y="1431" type="line"/>
+ <point x="521" y="127" type="line"/>
+ <point x="521" y="0" type="line"/>
+ </contour>
+ <contour>
+ <point x="546" y="1431" type="line"/>
+ <point x="336" y="1431" type="line"/>
+ <point x="348" y="1353"/>
+ <point x="355" y="1260"/>
+ <point x="362" y="1073" type="curve" smooth="yes"/>
+ <point x="400" y="0" type="line"/>
+ <point x="521" y="0" type="line"/>
+ <point x="551" y="127" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnC_apX_.glif b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnC_apX_.glif
new file mode 100644
index 0000000..2da5787
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnC_apX_.glif
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapX" format="2">
+ <advance width="1305"/>
+ <unicode hex="0058"/>
+ <anchor x="565" y="-100" name="L"/>
+ <anchor x="972" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="970" y="0" type="line"/>
+ <point x="1190" y="0" type="line"/>
+ <point x="1148" y="80"/>
+ <point x="1125" y="124"/>
+ <point x="1045" y="329" type="curve" smooth="yes"/>
+ <point x="611" y="1431" type="line"/>
+ <point x="386" y="1431" type="line"/>
+ <point x="430" y="1348"/>
+ <point x="462" y="1289"/>
+ <point x="541" y="1088" type="curve" smooth="yes"/>
+ </contour>
+ <contour>
+ <point x="752" y="872" type="line"/>
+ <point x="278" y="333" type="line" smooth="yes"/>
+ <point x="98" y="129"/>
+ <point x="53" y="84"/>
+ <point x="-30" y="0" type="curve"/>
+ <point x="210" y="0" type="line"/>
+ <point x="750" y="622" type="line"/>
+ </contour>
+ <contour>
+ <point x="765" y="622" type="line"/>
+ <point x="1183" y="1088" type="line" smooth="yes"/>
+ <point x="1360" y="1285"/>
+ <point x="1425" y="1355"/>
+ <point x="1506" y="1431" type="curve"/>
+ <point x="1261" y="1431" type="line"/>
+ <point x="767" y="872" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnC_apY_.glif b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnC_apY_.glif
new file mode 100644
index 0000000..9ec65ef
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnC_apY_.glif
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapY" format="2">
+ <advance width="1300"/>
+ <unicode hex="0059"/>
+ <anchor x="565" y="-100" name="L"/>
+ <anchor x="972" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="331" y="1431" type="line"/>
+ <point x="407" y="1285"/>
+ <point x="446" y="1173"/>
+ <point x="490" y="1044" type="curve"/>
+ <point x="661" y="549" type="line"/>
+ <point x="829" y="661" type="line"/>
+ <point x="551" y="1431" type="line"/>
+ </contour>
+ <contour>
+ <point x="1321" y="1431" type="line"/>
+ <point x="684" y="661" type="line"/>
+ <point x="796" y="549" type="line"/>
+ <point x="1215" y="1044" type="line" smooth="yes"/>
+ <point x="1322" y="1171"/>
+ <point x="1402" y="1265"/>
+ <point x="1561" y="1431" type="curve"/>
+ </contour>
+ <contour>
+ <point x="700" y="0" type="line"/>
+ <point x="704" y="78"/>
+ <point x="743" y="233"/>
+ <point x="791" y="426" type="curve" smooth="yes"/>
+ <point x="854" y="681" type="line"/>
+ <point x="664" y="681" type="line"/>
+ <point x="601" y="426" type="line" smooth="yes"/>
+ <point x="553" y="233"/>
+ <point x="514" y="78"/>
+ <point x="480" y="0" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mA_.glif b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mA_.glif
new file mode 100644
index 0000000..586e494
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mA_.glif
@@ -0,0 +1,77 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmA" format="2">
+ <advance width="1107"/>
+ <unicode hex="0061"/>
+ <anchor x="860" y="0" name="H"/>
+ <anchor x="455" y="-100" name="L"/>
+ <anchor x="1065" y="0" name="O"/>
+ <anchor x="1310" y="1000" name="R"/>
+ <anchor x="755" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="972" y="0" type="line"/>
+ <point x="965" y="48"/>
+ <point x="960" y="98"/>
+ <point x="960" y="149" type="curve" smooth="yes"/>
+ <point x="960" y="214"/>
+ <point x="967" y="284"/>
+ <point x="987" y="363" type="curve"/>
+ <point x="1077" y="726" type="line"/>
+ <point x="1081" y="744"/>
+ <point x="1084" y="762"/>
+ <point x="1084" y="779" type="curve" smooth="yes"/>
+ <point x="1084" y="912"/>
+ <point x="955" y="1019"/>
+ <point x="751" y="1019" type="curve" smooth="yes"/>
+ <point x="599" y="1019"/>
+ <point x="502" y="974"/>
+ <point x="389" y="931" type="curve"/>
+ <point x="373" y="889"/>
+ <point x="343" y="783"/>
+ <point x="331" y="740" type="curve"/>
+ <point x="468" y="820"/>
+ <point x="560" y="862"/>
+ <point x="666" y="862" type="curve" smooth="yes"/>
+ <point x="798" y="862"/>
+ <point x="885" y="810"/>
+ <point x="885" y="718" type="curve" smooth="yes"/>
+ <point x="885" y="705"/>
+ <point x="884" y="691"/>
+ <point x="880" y="677" type="curve" smooth="yes"/>
+ <point x="867" y="622" type="line"/>
+ <point x="825" y="619"/>
+ <point x="661" y="605"/>
+ <point x="591" y="598" type="curve" smooth="yes"/>
+ <point x="282" y="568"/>
+ <point x="102" y="415"/>
+ <point x="102" y="233" type="curve" smooth="yes"/>
+ <point x="102" y="103"/>
+ <point x="223" y="-25"/>
+ <point x="390" y="-25" type="curve" smooth="yes"/>
+ <point x="514" y="-25"/>
+ <point x="674" y="47"/>
+ <point x="779" y="152" type="curve"/>
+ <point x="779" y="89"/>
+ <point x="787" y="31"/>
+ <point x="792" y="0" type="curve"/>
+ </contour>
+ <contour>
+ <point x="791" y="319" type="line"/>
+ <point x="674" y="191"/>
+ <point x="553" y="137"/>
+ <point x="451" y="137" type="curve" smooth="yes"/>
+ <point x="355" y="137"/>
+ <point x="290" y="192"/>
+ <point x="290" y="264" type="curve" smooth="yes"/>
+ <point x="290" y="274"/>
+ <point x="291" y="285"/>
+ <point x="294" y="296" type="curve" smooth="yes"/>
+ <point x="315" y="380"/>
+ <point x="432" y="450"/>
+ <point x="566" y="461" type="curve" smooth="yes"/>
+ <point x="631" y="466"/>
+ <point x="782" y="483"/>
+ <point x="832" y="485" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mA_A_cute.glif b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mA_A_cute.glif
new file mode 100644
index 0000000..198d6db
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mA_A_cute.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmAAcute" format="2">
+ <advance width="1107"/>
+ <unicode hex="00E1"/>
+ <anchor x="860" y="0" name="H"/>
+ <anchor x="455" y="-100" name="L"/>
+ <anchor x="1065" y="0" name="O"/>
+ <anchor x="1310" y="1000" name="R"/>
+ <anchor x="889" y="1635" name="U"/>
+ <outline>
+ <component base="LtnSmA"/>
+ <component base="CombAcute" xOffset="1110"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mA_C_ircum.glif b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mA_C_ircum.glif
new file mode 100644
index 0000000..f5cfb16
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mA_C_ircum.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmACircum" format="2">
+ <advance width="1107"/>
+ <unicode hex="00E2"/>
+ <anchor x="860" y="0" name="H"/>
+ <anchor x="455" y="-100" name="L"/>
+ <anchor x="1065" y="0" name="O"/>
+ <anchor x="1310" y="1000" name="R"/>
+ <anchor x="854" y="1635" name="U"/>
+ <outline>
+ <component base="LtnSmA"/>
+ <component base="CombCircum" xOffset="1075"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mA_D_iaer.glif b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mA_D_iaer.glif
new file mode 100644
index 0000000..6f05301
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mA_D_iaer.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmADiaer" format="2">
+ <advance width="1107"/>
+ <unicode hex="00E4"/>
+ <anchor x="860" y="0" name="H"/>
+ <anchor x="455" y="-100" name="L"/>
+ <anchor x="1065" y="0" name="O"/>
+ <anchor x="1310" y="1000" name="R"/>
+ <anchor x="852" y="1505" name="U"/>
+ <outline>
+ <component base="LtnSmA"/>
+ <component base="CombDiaer" xOffset="1105"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mA_G_rave.glif b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mA_G_rave.glif
new file mode 100644
index 0000000..9048920
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mA_G_rave.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmAGrave" format="2">
+ <advance width="1107"/>
+ <unicode hex="00E0"/>
+ <anchor x="860" y="0" name="H"/>
+ <anchor x="455" y="-100" name="L"/>
+ <anchor x="1065" y="0" name="O"/>
+ <anchor x="1310" y="1000" name="R"/>
+ <anchor x="889" y="1635" name="U"/>
+ <outline>
+ <component base="LtnSmA"/>
+ <component base="CombGrave" xOffset="1090"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mA_R_ingA_bv.glif b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mA_R_ingA_bv.glif
new file mode 100644
index 0000000..8ada58f
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mA_R_ingA_bv.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmARingAbv" format="2">
+ <advance width="1107"/>
+ <unicode hex="00E5"/>
+ <anchor x="860" y="0" name="H"/>
+ <anchor x="455" y="-100" name="L"/>
+ <anchor x="1065" y="0" name="O"/>
+ <anchor x="1310" y="1000" name="R"/>
+ <anchor x="919" y="1635" name="U"/>
+ <outline>
+ <component base="LtnSmA"/>
+ <component base="CombRingAbv" xOffset="1140"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mA_T_ilde.glif b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mA_T_ilde.glif
new file mode 100644
index 0000000..c29348b
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mA_T_ilde.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmATilde" format="2">
+ <advance width="1107"/>
+ <unicode hex="00E3"/>
+ <anchor x="860" y="0" name="H"/>
+ <anchor x="455" y="-100" name="L"/>
+ <anchor x="1065" y="0" name="O"/>
+ <anchor x="1310" y="1000" name="R"/>
+ <anchor x="850" y="1475" name="U"/>
+ <outline>
+ <component base="LtnSmA"/>
+ <component base="CombTilde" xOffset="1140"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mB_.glif b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mB_.glif
new file mode 100644
index 0000000..b3a3696
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mB_.glif
@@ -0,0 +1,55 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmB" format="2">
+ <advance width="1144"/>
+ <unicode hex="0062"/>
+ <anchor x="530" y="0" name="H"/>
+ <anchor x="505" y="-100" name="L"/>
+ <anchor x="1345" y="1000" name="R"/>
+ <anchor x="938" y="1635" name="U"/>
+ <outline>
+ <contour>
+ <point x="437" y="1570" type="line"/>
+ <point x="437" y="1456"/>
+ <point x="402" y="1246"/>
+ <point x="367" y="1105" type="curve" smooth="yes"/>
+ <point x="110" y="85" type="line"/>
+ <point x="198" y="44"/>
+ <point x="355" y="-25"/>
+ <point x="517" y="-25" type="curve" smooth="yes"/>
+ <point x="675" y="-25"/>
+ <point x="795" y="24"/>
+ <point x="907" y="125" type="curve" smooth="yes"/>
+ <point x="1050" y="255"/>
+ <point x="1162" y="466"/>
+ <point x="1162" y="695" type="curve" smooth="yes"/>
+ <point x="1162" y="930"/>
+ <point x="1046" y="1020"/>
+ <point x="907" y="1020" type="curve" smooth="yes"/>
+ <point x="754" y="1020"/>
+ <point x="584" y="878"/>
+ <point x="456" y="719" type="curve"/>
+ <point x="552" y="1105" type="line" smooth="yes"/>
+ <point x="600" y="1296"/>
+ <point x="627" y="1508"/>
+ <point x="627" y="1570" type="curve"/>
+ </contour>
+ <contour>
+ <point x="382" y="429" type="line"/>
+ <point x="485" y="617"/>
+ <point x="708" y="850"/>
+ <point x="822" y="850" type="curve" smooth="yes"/>
+ <point x="913" y="850"/>
+ <point x="972" y="784"/>
+ <point x="972" y="635" type="curve" smooth="yes"/>
+ <point x="972" y="469"/>
+ <point x="909" y="336"/>
+ <point x="822" y="250" type="curve" smooth="yes"/>
+ <point x="741" y="169"/>
+ <point x="638" y="125"/>
+ <point x="552" y="125" type="curve" smooth="yes"/>
+ <point x="466" y="125"/>
+ <point x="376" y="167"/>
+ <point x="325" y="200" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mC_.glif b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mC_.glif
new file mode 100644
index 0000000..f54fbe9
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mC_.glif
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmC" format="2">
+ <advance width="989"/>
+ <unicode hex="0063"/>
+ <anchor x="520" y="0" name="H"/>
+ <anchor x="495" y="-100" name="L"/>
+ <anchor x="1210" y="1000" name="R"/>
+ <anchor x="785" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="917" y="255" type="line"/>
+ <point x="811" y="179"/>
+ <point x="703" y="137"/>
+ <point x="583" y="137" type="curve" smooth="yes"/>
+ <point x="427" y="137"/>
+ <point x="331" y="239"/>
+ <point x="331" y="406" type="curve" smooth="yes"/>
+ <point x="331" y="619"/>
+ <point x="499" y="858"/>
+ <point x="742" y="858" type="curve" smooth="yes"/>
+ <point x="845" y="858"/>
+ <point x="924" y="824"/>
+ <point x="998" y="760" type="curve"/>
+ <point x="1077" y="936" type="line"/>
+ <point x="1016" y="985"/>
+ <point x="902" y="1020"/>
+ <point x="789" y="1020" type="curve" smooth="yes"/>
+ <point x="420" y="1020"/>
+ <point x="139" y="737"/>
+ <point x="139" y="381" type="curve" smooth="yes"/>
+ <point x="139" y="130"/>
+ <point x="309" y="-25"/>
+ <point x="532" y="-25" type="curve" smooth="yes"/>
+ <point x="682" y="-25"/>
+ <point x="785" y="9"/>
+ <point x="904" y="83" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mD_.glif b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mD_.glif
new file mode 100644
index 0000000..4ea9ea1
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mD_.glif
@@ -0,0 +1,65 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmD" format="2">
+ <advance width="1197"/>
+ <unicode hex="0064"/>
+ <anchor x="545" y="0" name="H"/>
+ <anchor x="520" y="-100" name="L"/>
+ <anchor x="1380" y="1000" name="R"/>
+ <anchor x="953" y="1635" name="U"/>
+ <outline>
+ <contour>
+ <point x="1144" y="1570" type="line"/>
+ <point x="1144" y="1456"/>
+ <point x="1114" y="1327"/>
+ <point x="1079" y="1175" type="curve" smooth="yes"/>
+ <point x="1024" y="935" type="line"/>
+ <point x="957" y="978"/>
+ <point x="854" y="1020"/>
+ <point x="759" y="1020" type="curve" smooth="yes"/>
+ <point x="650" y="1020"/>
+ <point x="534" y="979"/>
+ <point x="429" y="895" type="curve" smooth="yes"/>
+ <point x="262" y="761"/>
+ <point x="139" y="532"/>
+ <point x="139" y="288" type="curve" smooth="yes"/>
+ <point x="139" y="94"/>
+ <point x="250" y="-25"/>
+ <point x="424" y="-25" type="curve" smooth="yes"/>
+ <point x="563" y="-25"/>
+ <point x="791" y="141"/>
+ <point x="899" y="305" type="curve"/>
+ <point x="875" y="196"/>
+ <point x="869" y="93"/>
+ <point x="869" y="0" type="curve"/>
+ <point x="1052" y="0" type="line"/>
+ <point x="1048" y="23"/>
+ <point x="1047" y="53"/>
+ <point x="1047" y="90" type="curve" smooth="yes"/>
+ <point x="1047" y="190"/>
+ <point x="1063" y="340"/>
+ <point x="1107" y="520" type="curve" smooth="yes"/>
+ <point x="1267" y="1175" type="line" smooth="yes"/>
+ <point x="1310" y="1351"/>
+ <point x="1337" y="1475"/>
+ <point x="1337" y="1570" type="curve"/>
+ </contour>
+ <contour>
+ <point x="930" y="545" type="line"/>
+ <point x="846" y="370"/>
+ <point x="592" y="130"/>
+ <point x="479" y="130" type="curve" smooth="yes"/>
+ <point x="374" y="130"/>
+ <point x="330" y="195"/>
+ <point x="330" y="316" type="curve" smooth="yes"/>
+ <point x="330" y="460"/>
+ <point x="397" y="649"/>
+ <point x="509" y="760" type="curve" smooth="yes"/>
+ <point x="572" y="822"/>
+ <point x="643" y="855"/>
+ <point x="734" y="855" type="curve" smooth="yes"/>
+ <point x="835" y="855"/>
+ <point x="898" y="832"/>
+ <point x="984" y="780" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mE_.glif b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mE_.glif
new file mode 100644
index 0000000..a3a6490
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mE_.glif
@@ -0,0 +1,52 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmE" format="2">
+ <advance width="1042"/>
+ <unicode hex="0065"/>
+ <anchor x="485" y="0" name="H"/>
+ <anchor x="484" y="-100" name="L"/>
+ <anchor x="840" y="0" name="O"/>
+ <anchor x="1285" y="1000" name="R"/>
+ <anchor x="784" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="967" y="270" type="line"/>
+ <point x="854" y="189"/>
+ <point x="700" y="135"/>
+ <point x="567" y="135" type="curve" smooth="yes"/>
+ <point x="386" y="135"/>
+ <point x="317" y="263"/>
+ <point x="317" y="420" type="curve" smooth="yes"/>
+ <point x="317" y="686"/>
+ <point x="522" y="872"/>
+ <point x="720" y="872" type="curve" smooth="yes"/>
+ <point x="813" y="872"/>
+ <point x="883" y="823"/>
+ <point x="883" y="753" type="curve" smooth="yes"/>
+ <point x="883" y="660"/>
+ <point x="766" y="590"/>
+ <point x="539" y="590" type="curve" smooth="yes"/>
+ <point x="468" y="590"/>
+ <point x="382" y="596"/>
+ <point x="279" y="610" type="curve"/>
+ <point x="279" y="477" type="line"/>
+ <point x="391" y="461"/>
+ <point x="487" y="453"/>
+ <point x="569" y="453" type="curve" smooth="yes"/>
+ <point x="931" y="453"/>
+ <point x="1077" y="609"/>
+ <point x="1077" y="791" type="curve" smooth="yes"/>
+ <point x="1077" y="899"/>
+ <point x="986" y="1020"/>
+ <point x="772" y="1020" type="curve" smooth="yes"/>
+ <point x="399" y="1020"/>
+ <point x="137" y="710"/>
+ <point x="137" y="380" type="curve" smooth="yes"/>
+ <point x="137" y="147"/>
+ <point x="258" y="-25"/>
+ <point x="523" y="-25" type="curve" smooth="yes"/>
+ <point x="689" y="-25"/>
+ <point x="849" y="26"/>
+ <point x="955" y="83" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mF_.glif b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mF_.glif
new file mode 100644
index 0000000..ede52a9
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mF_.glif
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmF" format="2">
+ <advance width="756"/>
+ <unicode hex="0066"/>
+ <anchor x="290" y="0" name="H"/>
+ <anchor x="315" y="-100" name="L"/>
+ <anchor x="908" y="1635" name="U"/>
+ <outline>
+ <contour>
+ <point x="180" y="833" type="line"/>
+ <point x="835" y="833" type="line"/>
+ <point x="871" y="975" type="line"/>
+ <point x="216" y="975" type="line"/>
+ </contour>
+ <contour>
+ <point x="1106" y="1519" type="line"/>
+ <point x="1062" y="1555"/>
+ <point x="981" y="1588"/>
+ <point x="903" y="1588" type="curve" smooth="yes"/>
+ <point x="687" y="1588"/>
+ <point x="533" y="1478"/>
+ <point x="448" y="1147" type="curve" smooth="yes"/>
+ <point x="403" y="972"/>
+ <point x="244" y="334"/>
+ <point x="223" y="0" type="curve"/>
+ <point x="436" y="0" type="line"/>
+ <point x="430" y="28"/>
+ <point x="427" y="66"/>
+ <point x="427" y="110" type="curve" smooth="yes"/>
+ <point x="427" y="213"/>
+ <point x="447" y="351"/>
+ <point x="476" y="484" type="curve" smooth="yes"/>
+ <point x="510" y="641"/>
+ <point x="558" y="846"/>
+ <point x="641" y="1186" type="curve" smooth="yes"/>
+ <point x="682" y="1353"/>
+ <point x="758" y="1421"/>
+ <point x="862" y="1421" type="curve" smooth="yes"/>
+ <point x="920" y="1421"/>
+ <point x="988" y="1392"/>
+ <point x="1022" y="1362" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mG_.glif b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mG_.glif
new file mode 100644
index 0000000..8931f8d
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mG_.glif
@@ -0,0 +1,100 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmG" format="2">
+ <advance width="1075"/>
+ <unicode hex="0067"/>
+ <anchor x="368" y="-465" name="H"/>
+ <anchor x="351" y="-535" name="L"/>
+ <anchor x="1285" y="1000" name="R"/>
+ <anchor x="730" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="360" y="389" type="line"/>
+ <point x="277" y="352"/>
+ <point x="168" y="266"/>
+ <point x="168" y="176" type="curve" smooth="yes"/>
+ <point x="168" y="96"/>
+ <point x="246" y="33"/>
+ <point x="483" y="-5" type="curve" smooth="yes"/>
+ <point x="707" y="-41"/>
+ <point x="781" y="-94"/>
+ <point x="781" y="-151" type="curve" smooth="yes"/>
+ <point x="781" y="-256"/>
+ <point x="580" y="-353"/>
+ <point x="411" y="-353" type="curve" smooth="yes"/>
+ <point x="202" y="-353"/>
+ <point x="104" y="-271"/>
+ <point x="104" y="-196" type="curve" smooth="yes"/>
+ <point x="104" y="-189"/>
+ <point x="104" y="-183"/>
+ <point x="106" y="-176" type="curve" smooth="yes"/>
+ <point x="120" y="-119"/>
+ <point x="170" y="-55"/>
+ <point x="409" y="20" type="curve"/>
+ <point x="410" y="48"/>
+ <point x="248" y="73"/>
+ <point x="248" y="73" type="curve"/>
+ <point x="53" y="12"/>
+ <point x="-51" y="-77"/>
+ <point x="-78" y="-186" type="curve" smooth="yes"/>
+ <point x="-82" y="-201"/>
+ <point x="-84" y="-217"/>
+ <point x="-84" y="-231" type="curve" smooth="yes"/>
+ <point x="-84" y="-396"/>
+ <point x="158" y="-495"/>
+ <point x="371" y="-495" type="curve" smooth="yes"/>
+ <point x="632" y="-495"/>
+ <point x="972" y="-360"/>
+ <point x="972" y="-125" type="curve" smooth="yes"/>
+ <point x="972" y="0"/>
+ <point x="849" y="90"/>
+ <point x="619" y="127" type="curve" smooth="yes"/>
+ <point x="403" y="162"/>
+ <point x="341" y="184"/>
+ <point x="341" y="218" type="curve" smooth="yes"/>
+ <point x="341" y="263"/>
+ <point x="447" y="325"/>
+ <point x="522" y="342" type="curve"/>
+ </contour>
+ <contour>
+ <point x="1244" y="1019" type="line"/>
+ <point x="1143" y="1012"/>
+ <point x="1002" y="977"/>
+ <point x="899" y="921" type="curve"/>
+ <point x="936" y="809" type="line"/>
+ <point x="1037" y="846"/>
+ <point x="1121" y="860"/>
+ <point x="1194" y="862" type="curve"/>
+ </contour>
+ <contour>
+ <point x="212" y="613" type="curve" smooth="yes"/>
+ <point x="212" y="449"/>
+ <point x="356" y="319"/>
+ <point x="554" y="319" type="curve" smooth="yes"/>
+ <point x="791" y="319"/>
+ <point x="1030" y="495"/>
+ <point x="1030" y="729" type="curve" smooth="yes"/>
+ <point x="1030" y="894"/>
+ <point x="887" y="1019"/>
+ <point x="689" y="1019" type="curve" smooth="yes"/>
+ <point x="441" y="1019"/>
+ <point x="212" y="847"/>
+ </contour>
+ <contour>
+ <point x="857" y="704" type="curve" smooth="yes"/>
+ <point x="857" y="555"/>
+ <point x="712" y="456"/>
+ <point x="578" y="456" type="curve" smooth="yes"/>
+ <point x="463" y="456"/>
+ <point x="385" y="530"/>
+ <point x="385" y="628" type="curve" smooth="yes"/>
+ <point x="385" y="643"/>
+ <point x="387" y="660"/>
+ <point x="391" y="676" type="curve" smooth="yes"/>
+ <point x="421" y="797"/>
+ <point x="530" y="877"/>
+ <point x="663" y="877" type="curve" smooth="yes"/>
+ <point x="779" y="877"/>
+ <point x="857" y="802"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mH_.glif b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mH_.glif
new file mode 100644
index 0000000..08afbac
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mH_.glif
@@ -0,0 +1,54 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmH" format="2">
+ <advance width="1185"/>
+ <unicode hex="0068"/>
+ <anchor x="190" y="0" name="H"/>
+ <anchor x="550" y="-100" name="L"/>
+ <anchor x="933" y="1635" name="U"/>
+ <outline>
+ <contour>
+ <point x="1055" y="0" type="line"/>
+ <point x="1047" y="30"/>
+ <point x="1043" y="65"/>
+ <point x="1043" y="102" type="curve" smooth="yes"/>
+ <point x="1043" y="143"/>
+ <point x="1048" y="188"/>
+ <point x="1055" y="238" type="curve" smooth="yes"/>
+ <point x="1069" y="327"/>
+ <point x="1170" y="636"/>
+ <point x="1170" y="745" type="curve" smooth="yes"/>
+ <point x="1170" y="917"/>
+ <point x="1095" y="1020"/>
+ <point x="930" y="1020" type="curve" smooth="yes"/>
+ <point x="760" y="1020"/>
+ <point x="591" y="877"/>
+ <point x="475" y="723" type="curve"/>
+ <point x="571" y="1105" type="line" smooth="yes"/>
+ <point x="609" y="1259"/>
+ <point x="645" y="1482"/>
+ <point x="645" y="1570" type="curve"/>
+ <point x="455" y="1570" type="line"/>
+ <point x="455" y="1456"/>
+ <point x="423" y="1257"/>
+ <point x="385" y="1105" type="curve" smooth="yes"/>
+ <point x="110" y="0" type="line"/>
+ <point x="295" y="0" type="line"/>
+ <point x="397" y="408" type="line"/>
+ <point x="492" y="612"/>
+ <point x="717" y="850"/>
+ <point x="840" y="850" type="curve" smooth="yes"/>
+ <point x="937" y="850"/>
+ <point x="970" y="798"/>
+ <point x="970" y="680" type="curve" smooth="yes"/>
+ <point x="970" y="592"/>
+ <point x="886" y="319"/>
+ <point x="872" y="203" type="curve" smooth="yes"/>
+ <point x="867" y="158"/>
+ <point x="864" y="115"/>
+ <point x="864" y="77" type="curve" smooth="yes"/>
+ <point x="864" y="48"/>
+ <point x="866" y="21"/>
+ <point x="870" y="0" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mI_.glif b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mI_.glif
new file mode 100644
index 0000000..65ed550
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mI_.glif
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmI" format="2">
+ <advance width="554"/>
+ <unicode hex="0069"/>
+ <anchor x="235" y="0" name="H"/>
+ <anchor x="250" y="-100" name="L"/>
+ <anchor x="455" y="0" name="O"/>
+ <anchor x="745" y="1000" name="R"/>
+ <anchor x="472" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="361" y="1297" type="curve" smooth="yes"/>
+ <point x="361" y="1237"/>
+ <point x="404" y="1186"/>
+ <point x="467" y="1186" type="curve" smooth="yes"/>
+ <point x="552" y="1186"/>
+ <point x="624" y="1259"/>
+ <point x="624" y="1338" type="curve" smooth="yes"/>
+ <point x="624" y="1399"/>
+ <point x="578" y="1450"/>
+ <point x="513" y="1450" type="curve" smooth="yes"/>
+ <point x="428" y="1450"/>
+ <point x="361" y="1375"/>
+ </contour>
+ <contour>
+ <point x="335" y="1000" type="line"/>
+ <point x="335" y="886"/>
+ <point x="286" y="688"/>
+ <point x="246" y="537" type="curve" smooth="yes"/>
+ <point x="207" y="388" type="line" smooth="yes"/>
+ <point x="180" y="284"/>
+ <point x="165" y="172"/>
+ <point x="165" y="87" type="curve" smooth="yes"/>
+ <point x="165" y="53"/>
+ <point x="167" y="24"/>
+ <point x="172" y="0" type="curve"/>
+ <point x="372" y="0" type="line"/>
+ <point x="365" y="37"/>
+ <point x="360" y="85"/>
+ <point x="360" y="136" type="curve" smooth="yes"/>
+ <point x="360" y="208"/>
+ <point x="368" y="287"/>
+ <point x="386" y="357" type="curve" smooth="yes"/>
+ <point x="431" y="536" type="line" smooth="yes"/>
+ <point x="476" y="712"/>
+ <point x="525" y="912"/>
+ <point x="525" y="1000" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mJ_.glif b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mJ_.glif
new file mode 100644
index 0000000..e9e18b8
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mJ_.glif
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmJ" format="2">
+ <advance width="602"/>
+ <unicode hex="006A"/>
+ <anchor x="-60" y="-500" name="L"/>
+ <anchor x="510" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="370" y="1000" type="line"/>
+ <point x="370" y="856"/>
+ <point x="288" y="374"/>
+ <point x="214" y="77" type="curve" smooth="yes"/>
+ <point x="152" y="-173"/>
+ <point x="29" y="-295"/>
+ <point x="-77" y="-295" type="curve" smooth="yes"/>
+ <point x="-133" y="-295"/>
+ <point x="-217" y="-264"/>
+ <point x="-253" y="-229" type="curve"/>
+ <point x="-328" y="-397" type="line"/>
+ <point x="-278" y="-437"/>
+ <point x="-170" y="-465"/>
+ <point x="-114" y="-465" type="curve" smooth="yes"/>
+ <point x="103" y="-465"/>
+ <point x="303" y="-314"/>
+ <point x="396" y="66" type="curve" smooth="yes"/>
+ <point x="455" y="307"/>
+ <point x="560" y="872"/>
+ <point x="560" y="1000" type="curve"/>
+ </contour>
+ <contour>
+ <point x="397" y="1297" type="curve" smooth="yes"/>
+ <point x="397" y="1237"/>
+ <point x="440" y="1186"/>
+ <point x="503" y="1186" type="curve" smooth="yes"/>
+ <point x="588" y="1186"/>
+ <point x="660" y="1259"/>
+ <point x="660" y="1338" type="curve" smooth="yes"/>
+ <point x="660" y="1399"/>
+ <point x="614" y="1450"/>
+ <point x="549" y="1450" type="curve" smooth="yes"/>
+ <point x="464" y="1450"/>
+ <point x="397" y="1375"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mK_.glif b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mK_.glif
new file mode 100644
index 0000000..28fbc71
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mK_.glif
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmK" format="2">
+ <advance width="1059"/>
+ <unicode hex="006B"/>
+ <anchor x="840" y="0" name="H"/>
+ <anchor x="537" y="-100" name="L"/>
+ <anchor x="1225" y="1000" name="R"/>
+ <anchor x="920" y="1635" name="U"/>
+ <outline>
+ <contour>
+ <point x="295" y="0" type="line"/>
+ <point x="570" y="1105" type="line" smooth="yes"/>
+ <point x="614" y="1280"/>
+ <point x="645" y="1482"/>
+ <point x="645" y="1570" type="curve"/>
+ <point x="455" y="1570" type="line"/>
+ <point x="455" y="1456"/>
+ <point x="424" y="1259"/>
+ <point x="386" y="1107" type="curve" smooth="yes"/>
+ <point x="338" y="915"/>
+ <point x="110" y="0"/>
+ <point x="110" y="0" type="curve"/>
+ </contour>
+ <contour>
+ <point x="909" y="1000" type="line"/>
+ <point x="885" y="863"/>
+ <point x="654" y="700"/>
+ <point x="379" y="539" type="curve"/>
+ <point x="386" y="540"/>
+ <point x="393" y="540"/>
+ <point x="400" y="540" type="curve" smooth="yes"/>
+ <point x="467" y="540"/>
+ <point x="559" y="514"/>
+ <point x="559" y="514" type="curve"/>
+ <point x="902" y="702"/>
+ <point x="1134" y="884"/>
+ <point x="1134" y="1000" type="curve"/>
+ </contour>
+ <contour>
+ <point x="1010" y="0" type="line"/>
+ <point x="863" y="238"/>
+ <point x="718" y="600"/>
+ <point x="527" y="600" type="curve"/>
+ <point x="385" y="529" type="line"/>
+ <point x="540" y="529"/>
+ <point x="667" y="246"/>
+ <point x="775" y="0" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mL_.glif b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mL_.glif
new file mode 100644
index 0000000..06d68fd
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mL_.glif
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmL" format="2">
+ <advance width="575"/>
+ <unicode hex="006C"/>
+ <anchor x="230" y="0" name="H"/>
+ <anchor x="255" y="-100" name="L"/>
+ <anchor x="740" y="1000" name="R"/>
+ <anchor x="630" y="1635" name="U"/>
+ <outline>
+ <contour>
+ <point x="465" y="1570" type="line"/>
+ <point x="465" y="1456"/>
+ <point x="434" y="1259"/>
+ <point x="396" y="1107" type="curve" smooth="yes"/>
+ <point x="241" y="489" type="line" smooth="yes"/>
+ <point x="204" y="343"/>
+ <point x="186" y="220"/>
+ <point x="186" y="104" type="curve" smooth="yes"/>
+ <point x="186" y="69"/>
+ <point x="188" y="34"/>
+ <point x="191" y="0" type="curve"/>
+ <point x="391" y="0" type="line"/>
+ <point x="386" y="32"/>
+ <point x="384" y="70"/>
+ <point x="384" y="112" type="curve" smooth="yes"/>
+ <point x="384" y="230"/>
+ <point x="402" y="380"/>
+ <point x="436" y="517" type="curve" smooth="yes"/>
+ <point x="580" y="1105" type="line" smooth="yes"/>
+ <point x="623" y="1280"/>
+ <point x="655" y="1482"/>
+ <point x="655" y="1570" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mM_.glif b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mM_.glif
new file mode 100644
index 0000000..a6b80db
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mM_.glif
@@ -0,0 +1,80 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmM" format="2">
+ <advance width="1680"/>
+ <unicode hex="006D"/>
+ <anchor x="805" y="0" name="H"/>
+ <anchor x="780" y="-100" name="L"/>
+ <anchor x="1080" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="1520" y="0" type="line"/>
+ <point x="1512" y="30"/>
+ <point x="1510" y="65"/>
+ <point x="1510" y="102" type="curve" smooth="yes"/>
+ <point x="1510" y="143"/>
+ <point x="1515" y="188"/>
+ <point x="1522" y="238" type="curve" smooth="yes"/>
+ <point x="1536" y="327"/>
+ <point x="1655" y="691"/>
+ <point x="1655" y="800" type="curve" smooth="yes"/>
+ <point x="1655" y="930"/>
+ <point x="1594" y="1020"/>
+ <point x="1445" y="1020" type="curve" smooth="yes"/>
+ <point x="1292" y="1020"/>
+ <point x="1124" y="867"/>
+ <point x="1026" y="680" type="curve"/>
+ <point x="1030" y="704"/>
+ <point x="1045" y="778"/>
+ <point x="1045" y="800" type="curve" smooth="yes"/>
+ <point x="1045" y="932"/>
+ <point x="982" y="1020"/>
+ <point x="860" y="1020" type="curve" smooth="yes"/>
+ <point x="717" y="1020"/>
+ <point x="563" y="879"/>
+ <point x="446" y="680" type="curve"/>
+ <point x="466" y="753"/>
+ <point x="476" y="880"/>
+ <point x="476" y="961" type="curve" smooth="yes"/>
+ <point x="476" y="976"/>
+ <point x="476" y="989"/>
+ <point x="475" y="1000" type="curve"/>
+ <point x="295" y="1000" type="line"/>
+ <point x="296" y="983"/>
+ <point x="296" y="964"/>
+ <point x="296" y="945" type="curve" smooth="yes"/>
+ <point x="296" y="825"/>
+ <point x="283" y="680"/>
+ <point x="262" y="595" type="curve" smooth="yes"/>
+ <point x="115" y="0" type="line"/>
+ <point x="300" y="0" type="line"/>
+ <point x="389" y="359" type="line"/>
+ <point x="475" y="573"/>
+ <point x="685" y="850"/>
+ <point x="775" y="850" type="curve" smooth="yes"/>
+ <point x="833" y="850"/>
+ <point x="865" y="813"/>
+ <point x="865" y="720" type="curve" smooth="yes"/>
+ <point x="865" y="679"/>
+ <point x="846" y="583"/>
+ <point x="822" y="486" type="curve" smooth="yes"/>
+ <point x="700" y="0" type="line"/>
+ <point x="885" y="0" type="line"/>
+ <point x="974" y="359" type="line"/>
+ <point x="1032" y="531"/>
+ <point x="1242" y="850"/>
+ <point x="1357" y="850" type="curve" smooth="yes"/>
+ <point x="1425" y="850"/>
+ <point x="1457" y="813"/>
+ <point x="1457" y="720" type="curve" smooth="yes"/>
+ <point x="1457" y="632"/>
+ <point x="1349" y="319"/>
+ <point x="1335" y="203" type="curve" smooth="yes"/>
+ <point x="1330" y="158"/>
+ <point x="1327" y="115"/>
+ <point x="1327" y="77" type="curve" smooth="yes"/>
+ <point x="1327" y="48"/>
+ <point x="1331" y="21"/>
+ <point x="1335" y="0" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mN_.glif b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mN_.glif
new file mode 100644
index 0000000..1f38f20
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mN_.glif
@@ -0,0 +1,57 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmN" format="2">
+ <advance width="1195"/>
+ <unicode hex="006E"/>
+ <anchor x="540" y="0" name="H"/>
+ <anchor x="565" y="-100" name="L"/>
+ <anchor x="815" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="1060" y="0" type="line"/>
+ <point x="1052" y="30"/>
+ <point x="1050" y="65"/>
+ <point x="1050" y="102" type="curve" smooth="yes"/>
+ <point x="1050" y="143"/>
+ <point x="1055" y="188"/>
+ <point x="1062" y="238" type="curve" smooth="yes"/>
+ <point x="1075" y="327"/>
+ <point x="1175" y="636"/>
+ <point x="1175" y="745" type="curve" smooth="yes"/>
+ <point x="1175" y="917"/>
+ <point x="1100" y="1020"/>
+ <point x="935" y="1020" type="curve" smooth="yes"/>
+ <point x="755" y="1020"/>
+ <point x="581" y="870"/>
+ <point x="445" y="672" type="curve"/>
+ <point x="463" y="740"/>
+ <point x="477" y="873"/>
+ <point x="477" y="957" type="curve" smooth="yes"/>
+ <point x="477" y="973"/>
+ <point x="476" y="988"/>
+ <point x="475" y="1000" type="curve"/>
+ <point x="295" y="1000" type="line"/>
+ <point x="295" y="961" type="line" smooth="yes"/>
+ <point x="295" y="833"/>
+ <point x="283" y="679"/>
+ <point x="262" y="595" type="curve" smooth="yes"/>
+ <point x="115" y="0" type="line"/>
+ <point x="300" y="0" type="line"/>
+ <point x="392" y="370" type="line"/>
+ <point x="478" y="573"/>
+ <point x="708" y="850"/>
+ <point x="835" y="850" type="curve" smooth="yes"/>
+ <point x="927" y="850"/>
+ <point x="975" y="798"/>
+ <point x="975" y="680" type="curve" smooth="yes"/>
+ <point x="975" y="592"/>
+ <point x="888" y="319"/>
+ <point x="875" y="203" type="curve" smooth="yes"/>
+ <point x="870" y="158"/>
+ <point x="867" y="115"/>
+ <point x="867" y="77" type="curve" smooth="yes"/>
+ <point x="867" y="48"/>
+ <point x="871" y="21"/>
+ <point x="875" y="0" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mO_.glif b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mO_.glif
new file mode 100644
index 0000000..bec7b9e
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mO_.glif
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmO" format="2">
+ <advance width="1133"/>
+ <unicode hex="006F"/>
+ <anchor x="510" y="0" name="H"/>
+ <anchor x="505" y="-100" name="L"/>
+ <anchor x="800" y="0" name="O"/>
+ <anchor x="1330" y="1000" name="R"/>
+ <anchor x="785" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="142" y="344" type="curve" smooth="yes"/>
+ <point x="142" y="114"/>
+ <point x="306" y="-25"/>
+ <point x="530" y="-25" type="curve" smooth="yes"/>
+ <point x="896" y="-25"/>
+ <point x="1138" y="314"/>
+ <point x="1138" y="648" type="curve" smooth="yes"/>
+ <point x="1138" y="879"/>
+ <point x="985" y="1020"/>
+ <point x="761" y="1020" type="curve" smooth="yes"/>
+ <point x="387" y="1020"/>
+ <point x="142" y="677"/>
+ </contour>
+ <contour>
+ <point x="721" y="862" type="curve" smooth="yes"/>
+ <point x="859" y="862"/>
+ <point x="947" y="767"/>
+ <point x="947" y="611" type="curve" smooth="yes"/>
+ <point x="947" y="391"/>
+ <point x="795" y="132"/>
+ <point x="559" y="132" type="curve" smooth="yes"/>
+ <point x="421" y="132"/>
+ <point x="333" y="226"/>
+ <point x="333" y="380" type="curve" smooth="yes"/>
+ <point x="333" y="599"/>
+ <point x="486" y="862"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mP_.glif b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mP_.glif
new file mode 100644
index 0000000..f9e06b1
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mP_.glif
@@ -0,0 +1,66 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmP" format="2">
+ <advance width="1185"/>
+ <unicode hex="0070"/>
+ <anchor x="105" y="-435" name="H"/>
+ <anchor x="405" y="-500" name="L"/>
+ <anchor x="1360" y="1000" name="R"/>
+ <anchor x="805" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="215" y="-480" type="line"/>
+ <point x="215" y="-388"/>
+ <point x="229" y="-282"/>
+ <point x="255" y="-175" type="curve" smooth="yes"/>
+ <point x="320" y="85" type="line"/>
+ <point x="399" y="20"/>
+ <point x="468" y="-25"/>
+ <point x="575" y="-25" type="curve" smooth="yes"/>
+ <point x="685" y="-25"/>
+ <point x="797" y="9"/>
+ <point x="895" y="85" type="curve" smooth="yes"/>
+ <point x="1063" y="215"/>
+ <point x="1185" y="438"/>
+ <point x="1185" y="680" type="curve" smooth="yes"/>
+ <point x="1185" y="878"/>
+ <point x="1101" y="1020"/>
+ <point x="920" y="1020" type="curve" smooth="yes"/>
+ <point x="757" y="1020"/>
+ <point x="559" y="842"/>
+ <point x="452" y="680" type="curve"/>
+ <point x="468" y="760"/>
+ <point x="477" y="860"/>
+ <point x="477" y="940" type="curve" smooth="yes"/>
+ <point x="477" y="962"/>
+ <point x="477" y="982"/>
+ <point x="475" y="1000" type="curve"/>
+ <point x="295" y="1000" type="line"/>
+ <point x="295" y="971" type="line" smooth="yes"/>
+ <point x="295" y="819"/>
+ <point x="273" y="625"/>
+ <point x="235" y="475" type="curve" smooth="yes"/>
+ <point x="70" y="-175" type="line" smooth="yes"/>
+ <point x="43" y="-281"/>
+ <point x="20" y="-398"/>
+ <point x="20" y="-480" type="curve"/>
+ </contour>
+ <contour>
+ <point x="407" y="432" type="line"/>
+ <point x="544" y="656"/>
+ <point x="732" y="850"/>
+ <point x="840" y="850" type="curve" smooth="yes"/>
+ <point x="939" y="850"/>
+ <point x="990" y="763"/>
+ <point x="990" y="630" type="curve" smooth="yes"/>
+ <point x="990" y="491"/>
+ <point x="926" y="322"/>
+ <point x="815" y="220" type="curve" smooth="yes"/>
+ <point x="759" y="168"/>
+ <point x="693" y="135"/>
+ <point x="615" y="135" type="curve" smooth="yes"/>
+ <point x="523" y="135"/>
+ <point x="479" y="161"/>
+ <point x="365" y="255" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mQ_.glif b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mQ_.glif
new file mode 100644
index 0000000..58d9f87
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mQ_.glif
@@ -0,0 +1,54 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmQ" format="2">
+ <advance width="1115"/>
+ <unicode hex="0071"/>
+ <anchor x="370" y="-500" name="L"/>
+ <anchor x="1320" y="1000" name="R"/>
+ <anchor x="770" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="843" y="-480" type="line"/>
+ <point x="843" y="-391"/>
+ <point x="858" y="-294"/>
+ <point x="885" y="-185" type="curve" smooth="yes"/>
+ <point x="1165" y="945" type="line"/>
+ <point x="1066" y="980"/>
+ <point x="946" y="1020"/>
+ <point x="825" y="1020" type="curve" smooth="yes"/>
+ <point x="675" y="1020"/>
+ <point x="550" y="977"/>
+ <point x="440" y="890" type="curve" smooth="yes"/>
+ <point x="260" y="747"/>
+ <point x="135" y="505"/>
+ <point x="135" y="285" type="curve" smooth="yes"/>
+ <point x="135" y="73"/>
+ <point x="261" y="-25"/>
+ <point x="380" y="-25" type="curve" smooth="yes"/>
+ <point x="524" y="-25"/>
+ <point x="751" y="172"/>
+ <point x="825" y="300" type="curve"/>
+ <point x="693" y="-180" type="line" smooth="yes"/>
+ <point x="662" y="-294"/>
+ <point x="648" y="-414"/>
+ <point x="648" y="-480" type="curve"/>
+ </contour>
+ <contour>
+ <point x="885" y="565" type="line"/>
+ <point x="807" y="413"/>
+ <point x="550" y="140"/>
+ <point x="455" y="140" type="curve" smooth="yes"/>
+ <point x="376" y="140"/>
+ <point x="330" y="199"/>
+ <point x="330" y="330" type="curve" smooth="yes"/>
+ <point x="330" y="481"/>
+ <point x="400" y="658"/>
+ <point x="515" y="760" type="curve" smooth="yes"/>
+ <point x="580" y="817"/>
+ <point x="658" y="855"/>
+ <point x="750" y="855" type="curve" smooth="yes"/>
+ <point x="811" y="855"/>
+ <point x="893" y="840"/>
+ <point x="947" y="817" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mR_.glif b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mR_.glif
new file mode 100644
index 0000000..8037612
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mR_.glif
@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmR" format="2">
+ <advance width="910"/>
+ <unicode hex="0072"/>
+ <anchor x="210" y="0" name="H"/>
+ <anchor x="220" y="-100" name="L"/>
+ <anchor x="670" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="300" y="0" type="line"/>
+ <point x="402" y="415" type="line"/>
+ <point x="502" y="602"/>
+ <point x="703" y="850"/>
+ <point x="785" y="850" type="curve" smooth="yes"/>
+ <point x="831" y="850"/>
+ <point x="855" y="801"/>
+ <point x="855" y="740" type="curve" smooth="yes"/>
+ <point x="855" y="715"/>
+ <point x="852" y="689"/>
+ <point x="845" y="660" type="curve"/>
+ <point x="1010" y="690" type="line"/>
+ <point x="1022" y="737"/>
+ <point x="1030" y="783"/>
+ <point x="1030" y="825" type="curve" smooth="yes"/>
+ <point x="1030" y="935"/>
+ <point x="986" y="1020"/>
+ <point x="865" y="1020" type="curve" smooth="yes"/>
+ <point x="735" y="1020"/>
+ <point x="575" y="867"/>
+ <point x="445" y="675" type="curve"/>
+ <point x="467" y="773"/>
+ <point x="475" y="929"/>
+ <point x="475" y="1000" type="curve"/>
+ <point x="295" y="1000" type="line"/>
+ <point x="295" y="961" type="line" smooth="yes"/>
+ <point x="295" y="833"/>
+ <point x="283" y="679"/>
+ <point x="262" y="595" type="curve" smooth="yes"/>
+ <point x="115" y="0" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mS_.glif b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mS_.glif
new file mode 100644
index 0000000..848ddda
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mS_.glif
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmS" format="2">
+ <advance width="945"/>
+ <unicode hex="0073"/>
+ <anchor x="435" y="0" name="H"/>
+ <anchor x="440" y="-100" name="L"/>
+ <anchor x="710" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="990" y="941" type="line"/>
+ <point x="930" y="978"/>
+ <point x="815" y="1020"/>
+ <point x="640" y="1020" type="curve" smooth="yes"/>
+ <point x="384" y="1020"/>
+ <point x="230" y="881"/>
+ <point x="230" y="716" type="curve" smooth="yes"/>
+ <point x="230" y="614"/>
+ <point x="320" y="533"/>
+ <point x="466" y="461" type="curve" smooth="yes"/>
+ <point x="638" y="376"/>
+ <point x="700" y="333"/>
+ <point x="700" y="265" type="curve" smooth="yes"/>
+ <point x="700" y="188"/>
+ <point x="621" y="132"/>
+ <point x="532" y="132" type="curve" smooth="yes"/>
+ <point x="376" y="132"/>
+ <point x="244" y="216"/>
+ <point x="159" y="325" type="curve"/>
+ <point x="71" y="158" type="line"/>
+ <point x="160" y="60"/>
+ <point x="296" y="-25"/>
+ <point x="488" y="-25" type="curve" smooth="yes"/>
+ <point x="713" y="-25"/>
+ <point x="891" y="106"/>
+ <point x="891" y="306" type="curve" smooth="yes"/>
+ <point x="891" y="432"/>
+ <point x="774" y="515"/>
+ <point x="626" y="593" type="curve" smooth="yes"/>
+ <point x="476" y="672"/>
+ <point x="418" y="695"/>
+ <point x="418" y="753" type="curve" smooth="yes"/>
+ <point x="418" y="822"/>
+ <point x="494" y="862"/>
+ <point x="619" y="862" type="curve" smooth="yes"/>
+ <point x="743" y="862"/>
+ <point x="854" y="808"/>
+ <point x="911" y="769" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mT_.glif b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mT_.glif
new file mode 100644
index 0000000..0eddfe9
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mT_.glif
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmT" format="2">
+ <advance width="815"/>
+ <unicode hex="0074"/>
+ <anchor x="455" y="0" name="H"/>
+ <anchor x="390" y="-100" name="L"/>
+ <anchor x="1025" y="1000" name="R"/>
+ <anchor x="605" y="1360" name="U"/>
+ <outline>
+ <contour>
+ <point x="752" y="211" type="line"/>
+ <point x="665" y="169"/>
+ <point x="593" y="134"/>
+ <point x="527" y="134" type="curve" smooth="yes"/>
+ <point x="448" y="134"/>
+ <point x="425" y="188"/>
+ <point x="425" y="247" type="curve" smooth="yes"/>
+ <point x="425" y="274"/>
+ <point x="429" y="301"/>
+ <point x="434" y="326" type="curve" smooth="yes"/>
+ <point x="470" y="519"/>
+ <point x="564" y="843"/>
+ <point x="677" y="1294" type="curve"/>
+ <point x="492" y="1294" type="line"/>
+ <point x="377" y="841"/>
+ <point x="263" y="429"/>
+ <point x="243" y="301" type="curve" smooth="yes"/>
+ <point x="238" y="269"/>
+ <point x="236" y="240"/>
+ <point x="236" y="213" type="curve" smooth="yes"/>
+ <point x="236" y="41"/>
+ <point x="330" y="-25"/>
+ <point x="465" y="-25" type="curve" smooth="yes"/>
+ <point x="535" y="-25"/>
+ <point x="634" y="-6"/>
+ <point x="740" y="52" type="curve"/>
+ </contour>
+ <contour>
+ <point x="177" y="833" type="line"/>
+ <point x="887" y="833" type="line"/>
+ <point x="923" y="975" type="line"/>
+ <point x="213" y="975" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mU_.glif b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mU_.glif
new file mode 100644
index 0000000..0eda3d2
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mU_.glif
@@ -0,0 +1,57 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmU" format="2">
+ <advance width="1175"/>
+ <unicode hex="0075"/>
+ <anchor x="465" y="0" name="H"/>
+ <anchor x="504" y="-100" name="L"/>
+ <anchor x="640" y="0" name="O"/>
+ <anchor x="1375" y="1000" name="R"/>
+ <anchor x="804" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="1040" y="0" type="line"/>
+ <point x="1036" y="29"/>
+ <point x="1035" y="62"/>
+ <point x="1035" y="100" type="curve" smooth="yes"/>
+ <point x="1035" y="206"/>
+ <point x="1054" y="341"/>
+ <point x="1080" y="455" type="curve" smooth="yes"/>
+ <point x="1135" y="689"/>
+ <point x="1197" y="895"/>
+ <point x="1205" y="1000" type="curve"/>
+ <point x="1010" y="1000" type="line"/>
+ <point x="1003" y="882"/>
+ <point x="971" y="769"/>
+ <point x="920" y="565" type="curve"/>
+ <point x="827" y="376"/>
+ <point x="573" y="135"/>
+ <point x="475" y="135" type="curve" smooth="yes"/>
+ <point x="409" y="135"/>
+ <point x="365" y="181"/>
+ <point x="365" y="280" type="curve" smooth="yes"/>
+ <point x="365" y="347"/>
+ <point x="407" y="500"/>
+ <point x="459" y="702" type="curve" smooth="yes"/>
+ <point x="494" y="837"/>
+ <point x="515" y="925"/>
+ <point x="520" y="1000" type="curve"/>
+ <point x="325" y="1000" type="line"/>
+ <point x="313" y="882"/>
+ <point x="295" y="809"/>
+ <point x="265" y="685" type="curve" smooth="yes"/>
+ <point x="195" y="395" type="line" smooth="yes"/>
+ <point x="179" y="330"/>
+ <point x="170" y="275"/>
+ <point x="170" y="225" type="curve" smooth="yes"/>
+ <point x="170" y="60"/>
+ <point x="257" y="-25"/>
+ <point x="410" y="-25" type="curve" smooth="yes"/>
+ <point x="551" y="-25"/>
+ <point x="745" y="118"/>
+ <point x="880" y="305" type="curve"/>
+ <point x="861" y="196"/>
+ <point x="860" y="98"/>
+ <point x="860" y="0" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mV_.glif b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mV_.glif
new file mode 100644
index 0000000..33e91d6
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mV_.glif
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmV" format="2">
+ <advance width="941"/>
+ <unicode hex="0076"/>
+ <anchor x="359" y="0" name="H"/>
+ <anchor x="350" y="-100" name="L"/>
+ <anchor x="565" y="0" name="O"/>
+ <anchor x="650" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="180" y="1000" type="line"/>
+ <point x="232" y="825"/>
+ <point x="256" y="602"/>
+ <point x="256" y="354" type="curve" smooth="yes"/>
+ <point x="256" y="241"/>
+ <point x="251" y="122"/>
+ <point x="241" y="0" type="curve"/>
+ <point x="441" y="0" type="line"/>
+ <point x="744" y="336"/>
+ <point x="1056" y="765"/>
+ <point x="1056" y="1000" type="curve"/>
+ <point x="856" y="1000" type="line"/>
+ <point x="856" y="769"/>
+ <point x="606" y="394"/>
+ <point x="404" y="176" type="curve"/>
+ <point x="421" y="277"/>
+ <point x="429" y="402"/>
+ <point x="429" y="526" type="curve" smooth="yes"/>
+ <point x="429" y="707"/>
+ <point x="412" y="887"/>
+ <point x="380" y="1000" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mW_.glif b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mW_.glif
new file mode 100644
index 0000000..1daea7c
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mW_.glif
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmW" format="2">
+ <advance width="1555"/>
+ <unicode hex="0077"/>
+ <anchor x="690" y="-100" name="L"/>
+ <anchor x="990" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="858" y="1000" type="line"/>
+ <point x="743" y="739"/>
+ <point x="588" y="466"/>
+ <point x="388" y="181" type="curve"/>
+ <point x="417" y="339"/>
+ <point x="430" y="500"/>
+ <point x="430" y="644" type="curve" smooth="yes"/>
+ <point x="430" y="784"/>
+ <point x="418" y="908"/>
+ <point x="395" y="1000" type="curve"/>
+ <point x="195" y="1000" type="line"/>
+ <point x="234" y="873"/>
+ <point x="256" y="688"/>
+ <point x="256" y="472" type="curve" smooth="yes"/>
+ <point x="256" y="326"/>
+ <point x="246" y="166"/>
+ <point x="225" y="0" type="curve"/>
+ <point x="425" y="0" type="line"/>
+ <point x="632" y="298"/>
+ <point x="825" y="583"/>
+ <point x="896" y="765" type="curve"/>
+ <point x="920" y="478"/>
+ <point x="912" y="233"/>
+ <point x="915" y="0" type="curve"/>
+ <point x="1115" y="0" type="line"/>
+ <point x="1362" y="330"/>
+ <point x="1642" y="777"/>
+ <point x="1645" y="1000" type="curve"/>
+ <point x="1445" y="1000" type="line"/>
+ <point x="1445" y="990" type="line"/>
+ <point x="1445" y="797"/>
+ <point x="1242" y="417"/>
+ <point x="1063" y="181" type="curve"/>
+ <point x="1064" y="221"/>
+ <point x="1064" y="260"/>
+ <point x="1064" y="298" type="curve" smooth="yes"/>
+ <point x="1064" y="577"/>
+ <point x="1046" y="811"/>
+ <point x="1020" y="1000" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mX_.glif b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mX_.glif
new file mode 100644
index 0000000..5508ff9
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mX_.glif
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmX" format="2">
+ <advance width="1009"/>
+ <unicode hex="0078"/>
+ <anchor x="840" y="0" name="H"/>
+ <anchor x="457" y="-100" name="L"/>
+ <anchor x="657" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="945" y="0" type="line"/>
+ <point x="765" y="133"/>
+ <point x="558" y="867"/>
+ <point x="439" y="1000" type="curve"/>
+ <point x="181" y="1000" type="line"/>
+ <point x="410" y="832"/>
+ <point x="578" y="141"/>
+ <point x="698" y="0" type="curve"/>
+ </contour>
+ <contour>
+ <point x="504" y="572" type="line"/>
+ <point x="286" y="463"/>
+ <point x="57" y="230"/>
+ <point x="30" y="0" type="curve"/>
+ <point x="230" y="0" type="line"/>
+ <point x="231" y="156"/>
+ <point x="375" y="380"/>
+ <point x="563" y="467" type="curve"/>
+ </contour>
+ <contour>
+ <point x="659" y="471" type="line"/>
+ <point x="838" y="591"/>
+ <point x="1092" y="798"/>
+ <point x="1099" y="1000" type="curve"/>
+ <point x="889" y="1000" type="line"/>
+ <point x="883" y="842"/>
+ <point x="758" y="675"/>
+ <point x="601" y="581" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mY_.glif b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mY_.glif
new file mode 100644
index 0000000..b9000c5
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/L_tnS_mY_.glif
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmY" format="2">
+ <advance width="976"/>
+ <unicode hex="0079"/>
+ <anchor x="710" y="-100" name="L"/>
+ <anchor x="1270" y="1000" name="R"/>
+ <anchor x="630" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="132" y="1000" type="line"/>
+ <point x="270" y="825"/>
+ <point x="398" y="406"/>
+ <point x="403" y="-16" type="curve"/>
+ <point x="263" y="-232"/>
+ <point x="145" y="-295"/>
+ <point x="64" y="-295" type="curve" smooth="yes"/>
+ <point x="-2" y="-295"/>
+ <point x="-69" y="-254"/>
+ <point x="-102" y="-220" type="curve"/>
+ <point x="-200" y="-377" type="line"/>
+ <point x="-141" y="-430"/>
+ <point x="-68" y="-465"/>
+ <point x="23" y="-465" type="curve" smooth="yes"/>
+ <point x="193" y="-465"/>
+ <point x="369" y="-371"/>
+ <point x="609" y="0" type="curve" smooth="yes"/>
+ <point x="877" y="414"/>
+ <point x="1056" y="808"/>
+ <point x="1056" y="964" type="curve" smooth="yes"/>
+ <point x="1056" y="978"/>
+ <point x="1055" y="990"/>
+ <point x="1052" y="1000" type="curve"/>
+ <point x="852" y="1000" type="line"/>
+ <point x="856" y="984"/>
+ <point x="858" y="967"/>
+ <point x="858" y="946" type="curve" smooth="yes"/>
+ <point x="858" y="783"/>
+ <point x="722" y="472"/>
+ <point x="548" y="189" type="curve"/>
+ <point x="548" y="484"/>
+ <point x="447" y="866"/>
+ <point x="347" y="1000" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/N_onB_reakingH_yphen.glif b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/N_onB_reakingH_yphen.glif
new file mode 100644
index 0000000..e7d9c06
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/N_onB_reakingH_yphen.glif
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="NonBreakingHyphen" format="2">
+ <advance width="840"/>
+ <unicode hex="2011"/>
+ <anchor x="645" y="1100" name="U"/>
+ <outline>
+ <component base="HyphenMinus"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/N_umS_gn.glif b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/N_umS_gn.glif
new file mode 100644
index 0000000..b7506f7
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/N_umS_gn.glif
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="NumSgn" format="2">
+ <advance width="1180"/>
+ <unicode hex="0023"/>
+ <outline>
+ <contour>
+ <point x="739" y="1333" type="line"/>
+ <point x="91" y="98" type="line"/>
+ <point x="261" y="98" type="line"/>
+ <point x="909" y="1333" type="line"/>
+ </contour>
+ <contour>
+ <point x="80" y="465" type="line"/>
+ <point x="1171" y="465" type="line"/>
+ <point x="1208" y="612" type="line"/>
+ <point x="117" y="612" type="line"/>
+ </contour>
+ <contour>
+ <point x="234" y="843" type="line"/>
+ <point x="1325" y="843" type="line"/>
+ <point x="1361" y="990" type="line"/>
+ <point x="270" y="990" type="line"/>
+ </contour>
+ <contour>
+ <point x="1164" y="1333" type="line"/>
+ <point x="516" y="98" type="line"/>
+ <point x="686" y="98" type="line"/>
+ <point x="1334" y="1333" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/P_ercentS_gn.glif b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/P_ercentS_gn.glif
new file mode 100644
index 0000000..84241ea
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/P_ercentS_gn.glif
@@ -0,0 +1,93 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="PercentSgn" format="2">
+ <advance width="1506"/>
+ <unicode hex="0025"/>
+ <outline>
+ <contour>
+ <point x="1300" y="349" type="curve" smooth="yes"/>
+ <point x="1255" y="168"/>
+ <point x="1204" y="113"/>
+ <point x="1118" y="113" type="curve" smooth="yes"/>
+ <point x="1056" y="113"/>
+ <point x="1021" y="148"/>
+ <point x="1021" y="235" type="curve" smooth="yes"/>
+ <point x="1021" y="274"/>
+ <point x="1028" y="322"/>
+ <point x="1043" y="383" type="curve" smooth="yes"/>
+ <point x="1088" y="564"/>
+ <point x="1136" y="617"/>
+ <point x="1223" y="617" type="curve" smooth="yes"/>
+ <point x="1286" y="617"/>
+ <point x="1322" y="582"/>
+ <point x="1322" y="496" type="curve" smooth="yes"/>
+ <point x="1322" y="458"/>
+ <point x="1315" y="409"/>
+ </contour>
+ <contour>
+ <point x="1468" y="361" type="curve" smooth="yes"/>
+ <point x="1483" y="419"/>
+ <point x="1489" y="470"/>
+ <point x="1489" y="515" type="curve" smooth="yes"/>
+ <point x="1489" y="677"/>
+ <point x="1400" y="755"/>
+ <point x="1263" y="755" type="curve" smooth="yes"/>
+ <point x="1089" y="755"/>
+ <point x="945" y="647"/>
+ <point x="876" y="371" type="curve" smooth="yes"/>
+ <point x="861" y="310"/>
+ <point x="854" y="256"/>
+ <point x="854" y="210" type="curve" smooth="yes"/>
+ <point x="854" y="47"/>
+ <point x="943" y="-25"/>
+ <point x="1079" y="-25" type="curve" smooth="yes"/>
+ <point x="1254" y="-25"/>
+ <point x="1396" y="72"/>
+ </contour>
+ <contour>
+ <point x="1369" y="1450" type="line"/>
+ <point x="219" y="-25" type="line"/>
+ <point x="397" y="-25" type="line"/>
+ <point x="1545" y="1450" type="line"/>
+ </contour>
+ <contour>
+ <point x="717" y="1044" type="curve" smooth="yes"/>
+ <point x="672" y="864"/>
+ <point x="621" y="809"/>
+ <point x="535" y="809" type="curve" smooth="yes"/>
+ <point x="474" y="809"/>
+ <point x="439" y="844"/>
+ <point x="439" y="930" type="curve" smooth="yes"/>
+ <point x="439" y="969"/>
+ <point x="446" y="1018"/>
+ <point x="461" y="1079" type="curve" smooth="yes"/>
+ <point x="506" y="1260"/>
+ <point x="554" y="1313"/>
+ <point x="641" y="1313" type="curve" smooth="yes"/>
+ <point x="704" y="1313"/>
+ <point x="739" y="1278"/>
+ <point x="739" y="1192" type="curve" smooth="yes"/>
+ <point x="739" y="1153"/>
+ <point x="732" y="1105"/>
+ </contour>
+ <contour>
+ <point x="886" y="1057" type="curve" smooth="yes"/>
+ <point x="900" y="1114"/>
+ <point x="907" y="1166"/>
+ <point x="907" y="1210" type="curve" smooth="yes"/>
+ <point x="907" y="1373"/>
+ <point x="817" y="1450"/>
+ <point x="680" y="1450" type="curve" smooth="yes"/>
+ <point x="506" y="1450"/>
+ <point x="362" y="1343"/>
+ <point x="293" y="1066" type="curve" smooth="yes"/>
+ <point x="278" y="1005"/>
+ <point x="271" y="952"/>
+ <point x="271" y="906" type="curve" smooth="yes"/>
+ <point x="271" y="743"/>
+ <point x="360" y="671"/>
+ <point x="497" y="671" type="curve" smooth="yes"/>
+ <point x="672" y="671"/>
+ <point x="813" y="768"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/P_lusS_gn.glif b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/P_lusS_gn.glif
new file mode 100644
index 0000000..8c4577e
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/P_lusS_gn.glif
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="PlusSgn" format="2">
+ <advance width="1180"/>
+ <unicode hex="002B"/>
+ <outline>
+ <contour>
+ <point x="748" y="1156" type="line"/>
+ <point x="529" y="279" type="line"/>
+ <point x="684" y="279" type="line"/>
+ <point x="903" y="1156" type="line"/>
+ </contour>
+ <contour>
+ <point x="256" y="647" type="line"/>
+ <point x="1146" y="647" type="line"/>
+ <point x="1182" y="794" type="line"/>
+ <point x="292" y="794" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/Q_stnM_rk.glif b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/Q_stnM_rk.glif
new file mode 100644
index 0000000..8b14a6c
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/Q_stnM_rk.glif
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="QstnMrk" format="2">
+ <advance width="1030"/>
+ <unicode hex="003F"/>
+ <outline>
+ <contour>
+ <point x="419" y="1226" type="line"/>
+ <point x="514" y="1303"/>
+ <point x="615" y="1338"/>
+ <point x="685" y="1338" type="curve" smooth="yes"/>
+ <point x="800" y="1338"/>
+ <point x="858" y="1294"/>
+ <point x="858" y="1222" type="curve" smooth="yes"/>
+ <point x="858" y="1122"/>
+ <point x="713" y="1017"/>
+ <point x="654" y="960" type="curve" smooth="yes"/>
+ <point x="538" y="850"/>
+ <point x="473" y="715"/>
+ <point x="402" y="431" type="curve"/>
+ <point x="587" y="431" type="line"/>
+ <point x="656" y="707"/>
+ <point x="697" y="778"/>
+ <point x="831" y="901" type="curve" smooth="yes"/>
+ <point x="949" y="1010"/>
+ <point x="1072" y="1146"/>
+ <point x="1072" y="1272" type="curve" smooth="yes"/>
+ <point x="1072" y="1409"/>
+ <point x="947" y="1509"/>
+ <point x="746" y="1509" type="curve" smooth="yes"/>
+ <point x="631" y="1509"/>
+ <point x="500" y="1463"/>
+ <point x="419" y="1401" type="curve"/>
+ </contour>
+ <contour>
+ <point x="278" y="90" type="curve" smooth="yes"/>
+ <point x="278" y="28"/>
+ <point x="328" y="-25"/>
+ <point x="393" y="-25" type="curve" smooth="yes"/>
+ <point x="477" y="-25"/>
+ <point x="554" y="45"/>
+ <point x="554" y="125" type="curve" smooth="yes"/>
+ <point x="554" y="186"/>
+ <point x="504" y="240"/>
+ <point x="439" y="240" type="curve" smooth="yes"/>
+ <point x="355" y="240"/>
+ <point x="278" y="170"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/Q_uotM_rk.glif b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/Q_uotM_rk.glif
new file mode 100644
index 0000000..4a8357b
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/Q_uotM_rk.glif
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="QuotMrk" format="2">
+ <advance width="1005"/>
+ <unicode hex="0022"/>
+ <outline>
+ <contour>
+ <point x="600" y="1024" type="line"/>
+ <point x="639" y="1162"/>
+ <point x="683" y="1312"/>
+ <point x="772" y="1553" type="curve"/>
+ <point x="567" y="1553" type="line"/>
+ <point x="538" y="1312"/>
+ <point x="505" y="1162"/>
+ <point x="475" y="1024" type="curve"/>
+ </contour>
+ <contour>
+ <point x="940" y="1024" type="line"/>
+ <point x="979" y="1162"/>
+ <point x="1023" y="1312"/>
+ <point x="1112" y="1553" type="curve"/>
+ <point x="907" y="1553" type="line"/>
+ <point x="878" y="1312"/>
+ <point x="845" y="1162"/>
+ <point x="815" y="1024" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/R_everseS_olidus.glif b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/R_everseS_olidus.glif
new file mode 100644
index 0000000..f146267
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/R_everseS_olidus.glif
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="ReverseSolidus" format="2">
+ <advance width="1005"/>
+ <unicode hex="005C"/>
+ <outline>
+ <contour>
+ <point x="473" y="1538" type="line"/>
+ <point x="656" y="-123" type="line"/>
+ <point x="799" y="-93" type="line"/>
+ <point x="620" y="1568" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/R_tC_urlyB_rac.glif b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/R_tC_urlyB_rac.glif
new file mode 100644
index 0000000..82df531
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/R_tC_urlyB_rac.glif
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="RtCurlyBrac" format="2">
+ <advance width="980"/>
+ <unicode hex="007D"/>
+ <outline>
+ <contour>
+ <point x="466" y="1470" type="line"/>
+ <point x="513" y="1452"/>
+ <point x="653" y="1397"/>
+ <point x="653" y="1366" type="curve" smooth="yes"/>
+ <point x="653" y="1238"/>
+ <point x="531" y="801"/>
+ <point x="531" y="737" type="curve" smooth="yes"/>
+ <point x="531" y="701"/>
+ <point x="660" y="627"/>
+ <point x="660" y="603" type="curve" smooth="yes"/>
+ <point x="660" y="585"/>
+ <point x="496" y="511"/>
+ <point x="468" y="475" type="curve" smooth="yes"/>
+ <point x="439" y="438"/>
+ <point x="312" y="-121"/>
+ <point x="268" y="-167" type="curve" smooth="yes"/>
+ <point x="241" y="-194"/>
+ <point x="106" y="-242"/>
+ <point x="33" y="-265" type="curve"/>
+ <point x="39" y="-402" type="line"/>
+ <point x="150" y="-375"/>
+ <point x="324" y="-323"/>
+ <point x="375" y="-279" type="curve" smooth="yes"/>
+ <point x="465" y="-201"/>
+ <point x="608" y="410"/>
+ <point x="639" y="441" type="curve" smooth="yes"/>
+ <point x="675" y="476"/>
+ <point x="880" y="571"/>
+ <point x="880" y="607" type="curve" smooth="yes"/>
+ <point x="880" y="639"/>
+ <point x="719" y="740"/>
+ <point x="719" y="771" type="curve" smooth="yes"/>
+ <point x="719" y="839"/>
+ <point x="825" y="1259"/>
+ <point x="825" y="1425" type="curve" smooth="yes"/>
+ <point x="825" y="1453"/>
+ <point x="822" y="1474"/>
+ <point x="815" y="1485" type="curve" smooth="yes"/>
+ <point x="786" y="1529"/>
+ <point x="638" y="1581"/>
+ <point x="540" y="1607" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/R_tP_aren.glif b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/R_tP_aren.glif
new file mode 100644
index 0000000..3950e09
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/R_tP_aren.glif
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="RtParen" format="2">
+ <advance width="775"/>
+ <unicode hex="0029"/>
+ <outline>
+ <contour>
+ <point x="467" y="1455" type="line"/>
+ <point x="578" y="1327"/>
+ <point x="628" y="1146"/>
+ <point x="628" y="946" type="curve" smooth="yes"/>
+ <point x="628" y="832"/>
+ <point x="612" y="713"/>
+ <point x="582" y="593" type="curve" smooth="yes"/>
+ <point x="497" y="252"/>
+ <point x="328" y="-8"/>
+ <point x="40" y="-260" type="curve"/>
+ <point x="99" y="-402" type="line"/>
+ <point x="444" y="-123"/>
+ <point x="673" y="194"/>
+ <point x="772" y="593" type="curve" smooth="yes"/>
+ <point x="804" y="719"/>
+ <point x="819" y="843"/>
+ <point x="819" y="959" type="curve" smooth="yes"/>
+ <point x="819" y="1236"/>
+ <point x="733" y="1472"/>
+ <point x="580" y="1607" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/R_tS_qrB_rac.glif b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/R_tS_qrB_rac.glif
new file mode 100644
index 0000000..4c13a82
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/R_tS_qrB_rac.glif
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="RtSqrBrac" format="2">
+ <advance width="770"/>
+ <unicode hex="005D"/>
+ <outline>
+ <contour>
+ <point x="434" y="-402" type="line"/>
+ <point x="920" y="1568" type="line"/>
+ <point x="480" y="1568" type="line"/>
+ <point x="444" y="1421" type="line"/>
+ <point x="699" y="1421" type="line"/>
+ <point x="286" y="-255" type="line"/>
+ <point x="31" y="-255" type="line"/>
+ <point x="-6" y="-402" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/S_emicolon.glif b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/S_emicolon.glif
new file mode 100644
index 0000000..be971ac
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/S_emicolon.glif
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Semicolon" format="2">
+ <advance width="630"/>
+ <unicode hex="003B"/>
+ <outline>
+ <contour>
+ <point x="314" y="758" type="curve" smooth="yes"/>
+ <point x="314" y="696"/>
+ <point x="365" y="642"/>
+ <point x="430" y="642" type="curve" smooth="yes"/>
+ <point x="514" y="642"/>
+ <point x="590" y="712"/>
+ <point x="590" y="792" type="curve" smooth="yes"/>
+ <point x="590" y="854"/>
+ <point x="540" y="907"/>
+ <point x="476" y="907" type="curve" smooth="yes"/>
+ <point x="393" y="907"/>
+ <point x="314" y="837"/>
+ </contour>
+ <contour>
+ <point x="137" y="49" type="line"/>
+ <point x="277" y="49" type="line"/>
+ <point x="252" y="-50"/>
+ <point x="145" y="-169"/>
+ <point x="73" y="-225" type="curve"/>
+ <point x="163" y="-265" type="line"/>
+ <point x="280" y="-175"/>
+ <point x="431" y="-28"/>
+ <point x="431" y="118" type="curve" smooth="yes"/>
+ <point x="431" y="193"/>
+ <point x="378" y="245"/>
+ <point x="311" y="245" type="curve" smooth="yes"/>
+ <point x="254" y="245"/>
+ <point x="190" y="209"/>
+ <point x="161" y="147" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/S_olidus.glif b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/S_olidus.glif
new file mode 100644
index 0000000..589697b
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/S_olidus.glif
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Solidus" format="2">
+ <advance width="980"/>
+ <unicode hex="002F"/>
+ <outline>
+ <contour>
+ <point x="1160" y="1568" type="line"/>
+ <point x="-119" y="-240" type="line"/>
+ <point x="50" y="-240" type="line"/>
+ <point x="1330" y="1568" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/S_pace.glif b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/S_pace.glif
new file mode 100644
index 0000000..c49f0f2
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/S_pace.glif
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Space" format="2">
+ <advance width="530"/>
+ <unicode hex="0020"/>
+ <outline/>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/T_ilde.glif b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/T_ilde.glif
new file mode 100644
index 0000000..bf260b8
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/T_ilde.glif
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Tilde" format="2">
+ <advance width="1095"/>
+ <unicode hex="007E"/>
+ <outline>
+ <contour>
+ <point x="156" y="368" type="line"/>
+ <point x="173" y="416"/>
+ <point x="215" y="456"/>
+ <point x="293" y="456" type="curve" smooth="yes"/>
+ <point x="468" y="456"/>
+ <point x="643" y="353"/>
+ <point x="873" y="353" type="curve" smooth="yes"/>
+ <point x="1032" y="353"/>
+ <point x="1137" y="472"/>
+ <point x="1169" y="598" type="curve"/>
+ <point x="1064" y="598" type="line"/>
+ <point x="1045" y="553"/>
+ <point x="1002" y="500"/>
+ <point x="919" y="500" type="curve" smooth="yes"/>
+ <point x="683" y="500"/>
+ <point x="551" y="603"/>
+ <point x="330" y="603" type="curve" smooth="yes"/>
+ <point x="184" y="603"/>
+ <point x="81" y="487"/>
+ <point x="51" y="368" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/V_ertL_ine.glif b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/V_ertL_ine.glif
new file mode 100644
index 0000000..445d622
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/V_ertL_ine.glif
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="VertLine" format="2">
+ <advance width="670"/>
+ <unicode hex="007C"/>
+ <outline>
+ <contour>
+ <point x="602" y="1578" type="line"/>
+ <point x="112" y="-392" type="line"/>
+ <point x="262" y="-392" type="line"/>
+ <point x="752" y="1578" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/_notdef.glif b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/_notdef.glif
new file mode 100644
index 0000000..a3e9354
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/_notdef.glif
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name=".notdef" format="2">
+ <advance width="1400"/>
+ <outline>
+ <contour>
+ <point x="100" y="0" type="line"/>
+ <point x="1300" y="0" type="line"/>
+ <point x="1300" y="1800" type="line"/>
+ <point x="100" y="1800" type="line"/>
+ </contour>
+ <contour>
+ <point x="150" y="1750" type="line"/>
+ <point x="1250" y="1750" type="line"/>
+ <point x="1250" y="50" type="line"/>
+ <point x="150" y="50" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/_null.glif b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/_null.glif
new file mode 100644
index 0000000..0b9caa6
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/_null.glif
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name=".null" format="2">
+ <outline/>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/contents.plist b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/contents.plist
new file mode 100644
index 0000000..ad2aa41
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/contents.plist
@@ -0,0 +1,232 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>.notdef</key>
+ <string>_notdef.glif</string>
+ <key>.null</key>
+ <string>_null.glif</string>
+ <key>Ampersand</key>
+ <string>A_mpersand.glif</string>
+ <key>Apos</key>
+ <string>A_pos.glif</string>
+ <key>Asterisk</key>
+ <string>A_sterisk.glif</string>
+ <key>AtSgn</key>
+ <string>A_tS_gn.glif</string>
+ <key>CircumAccent</key>
+ <string>C_ircumA_ccent.glif</string>
+ <key>Colon</key>
+ <string>C_olon.glif</string>
+ <key>CombAcute</key>
+ <string>C_ombA_cute.glif</string>
+ <key>CombCircum</key>
+ <string>C_ombC_ircum.glif</string>
+ <key>CombDiaer</key>
+ <string>C_ombD_iaer.glif</string>
+ <key>CombGrave</key>
+ <string>C_ombG_rave.glif</string>
+ <key>CombRingAbv</key>
+ <string>C_ombR_ingA_bv.glif</string>
+ <key>CombTilde</key>
+ <string>C_ombT_ilde.glif</string>
+ <key>Comma</key>
+ <string>C_omma.glif</string>
+ <key>DigitEight</key>
+ <string>D_igitE_ight.glif</string>
+ <key>DigitFive</key>
+ <string>D_igitF_ive.glif</string>
+ <key>DigitFour</key>
+ <string>D_igitF_our.glif</string>
+ <key>DigitNine</key>
+ <string>D_igitN_ine.glif</string>
+ <key>DigitOne</key>
+ <string>D_igitO_ne.glif</string>
+ <key>DigitSeven</key>
+ <string>D_igitS_even.glif</string>
+ <key>DigitSix</key>
+ <string>D_igitS_ix.glif</string>
+ <key>DigitThree</key>
+ <string>D_igitT_hree.glif</string>
+ <key>DigitTwo</key>
+ <string>D_igitT_wo.glif</string>
+ <key>DigitZero</key>
+ <string>D_igitZ_ero.glif</string>
+ <key>DollarSgn</key>
+ <string>D_ollarS_gn.glif</string>
+ <key>DottedCirc</key>
+ <string>D_ottedC_irc.glif</string>
+ <key>EqSgn</key>
+ <string>E_qS_gn.glif</string>
+ <key>ExclamationMrk</key>
+ <string>E_xclamationM_rk.glif</string>
+ <key>FullStop</key>
+ <string>F_ullS_top.glif</string>
+ <key>GTSgn</key>
+ <string>G_T_S_gn.glif</string>
+ <key>GraveAccent</key>
+ <string>G_raveA_ccent.glif</string>
+ <key>Hyphen</key>
+ <string>H_yphen.glif</string>
+ <key>HyphenMinus</key>
+ <string>H_yphenM_inus.glif</string>
+ <key>Hyphen_Soft</key>
+ <string>H_yphen_S_oft.glif</string>
+ <key>LTSgn</key>
+ <string>L_T_S_gn.glif</string>
+ <key>LftCurlyBrac</key>
+ <string>L_ftC_urlyB_rac.glif</string>
+ <key>LftParen</key>
+ <string>L_ftP_aren.glif</string>
+ <key>LftSqrBrac</key>
+ <string>L_ftS_qrB_rac.glif</string>
+ <key>LowLine</key>
+ <string>L_owL_ine.glif</string>
+ <key>LtnCapA</key>
+ <string>L_tnC_apA_.glif</string>
+ <key>LtnCapADiaer</key>
+ <string>L_tnC_apA_D_iaer.glif</string>
+ <key>LtnCapB</key>
+ <string>L_tnC_apB_.glif</string>
+ <key>LtnCapC</key>
+ <string>L_tnC_apC_.glif</string>
+ <key>LtnCapD</key>
+ <string>L_tnC_apD_.glif</string>
+ <key>LtnCapE</key>
+ <string>L_tnC_apE_.glif</string>
+ <key>LtnCapF</key>
+ <string>L_tnC_apF_.glif</string>
+ <key>LtnCapG</key>
+ <string>L_tnC_apG_.glif</string>
+ <key>LtnCapH</key>
+ <string>L_tnC_apH_.glif</string>
+ <key>LtnCapI</key>
+ <string>L_tnC_apI_.glif</string>
+ <key>LtnCapJ</key>
+ <string>L_tnC_apJ_.glif</string>
+ <key>LtnCapK</key>
+ <string>L_tnC_apK_.glif</string>
+ <key>LtnCapL</key>
+ <string>L_tnC_apL_.glif</string>
+ <key>LtnCapM</key>
+ <string>L_tnC_apM_.glif</string>
+ <key>LtnCapN</key>
+ <string>L_tnC_apN_.glif</string>
+ <key>LtnCapO</key>
+ <string>L_tnC_apO_.glif</string>
+ <key>LtnCapP</key>
+ <string>L_tnC_apP_.glif</string>
+ <key>LtnCapQ</key>
+ <string>L_tnC_apQ_.glif</string>
+ <key>LtnCapR</key>
+ <string>L_tnC_apR_.glif</string>
+ <key>LtnCapS</key>
+ <string>L_tnC_apS_.glif</string>
+ <key>LtnCapT</key>
+ <string>L_tnC_apT_.glif</string>
+ <key>LtnCapU</key>
+ <string>L_tnC_apU_.glif</string>
+ <key>LtnCapV</key>
+ <string>L_tnC_apV_.glif</string>
+ <key>LtnCapW</key>
+ <string>L_tnC_apW_.glif</string>
+ <key>LtnCapX</key>
+ <string>L_tnC_apX_.glif</string>
+ <key>LtnCapY</key>
+ <string>L_tnC_apY_.glif</string>
+ <key>LtnSmA</key>
+ <string>L_tnS_mA_.glif</string>
+ <key>LtnSmAAcute</key>
+ <string>L_tnS_mA_A_cute.glif</string>
+ <key>LtnSmACircum</key>
+ <string>L_tnS_mA_C_ircum.glif</string>
+ <key>LtnSmADiaer</key>
+ <string>L_tnS_mA_D_iaer.glif</string>
+ <key>LtnSmAGrave</key>
+ <string>L_tnS_mA_G_rave.glif</string>
+ <key>LtnSmARingAbv</key>
+ <string>L_tnS_mA_R_ingA_bv.glif</string>
+ <key>LtnSmATilde</key>
+ <string>L_tnS_mA_T_ilde.glif</string>
+ <key>LtnSmB</key>
+ <string>L_tnS_mB_.glif</string>
+ <key>LtnSmC</key>
+ <string>L_tnS_mC_.glif</string>
+ <key>LtnSmD</key>
+ <string>L_tnS_mD_.glif</string>
+ <key>LtnSmE</key>
+ <string>L_tnS_mE_.glif</string>
+ <key>LtnSmF</key>
+ <string>L_tnS_mF_.glif</string>
+ <key>LtnSmG</key>
+ <string>L_tnS_mG_.glif</string>
+ <key>LtnSmH</key>
+ <string>L_tnS_mH_.glif</string>
+ <key>LtnSmI</key>
+ <string>L_tnS_mI_.glif</string>
+ <key>LtnSmJ</key>
+ <string>L_tnS_mJ_.glif</string>
+ <key>LtnSmK</key>
+ <string>L_tnS_mK_.glif</string>
+ <key>LtnSmL</key>
+ <string>L_tnS_mL_.glif</string>
+ <key>LtnSmM</key>
+ <string>L_tnS_mM_.glif</string>
+ <key>LtnSmN</key>
+ <string>L_tnS_mN_.glif</string>
+ <key>LtnSmO</key>
+ <string>L_tnS_mO_.glif</string>
+ <key>LtnSmP</key>
+ <string>L_tnS_mP_.glif</string>
+ <key>LtnSmQ</key>
+ <string>L_tnS_mQ_.glif</string>
+ <key>LtnSmR</key>
+ <string>L_tnS_mR_.glif</string>
+ <key>LtnSmS</key>
+ <string>L_tnS_mS_.glif</string>
+ <key>LtnSmT</key>
+ <string>L_tnS_mT_.glif</string>
+ <key>LtnSmU</key>
+ <string>L_tnS_mU_.glif</string>
+ <key>LtnSmV</key>
+ <string>L_tnS_mV_.glif</string>
+ <key>LtnSmW</key>
+ <string>L_tnS_mW_.glif</string>
+ <key>LtnSmX</key>
+ <string>L_tnS_mX_.glif</string>
+ <key>LtnSmY</key>
+ <string>L_tnS_mY_.glif</string>
+ <key>NonBreakingHyphen</key>
+ <string>N_onB_reakingH_yphen.glif</string>
+ <key>NumSgn</key>
+ <string>N_umS_gn.glif</string>
+ <key>PercentSgn</key>
+ <string>P_ercentS_gn.glif</string>
+ <key>PlusSgn</key>
+ <string>P_lusS_gn.glif</string>
+ <key>QstnMrk</key>
+ <string>Q_stnM_rk.glif</string>
+ <key>QuotMrk</key>
+ <string>Q_uotM_rk.glif</string>
+ <key>ReverseSolidus</key>
+ <string>R_everseS_olidus.glif</string>
+ <key>RtCurlyBrac</key>
+ <string>R_tC_urlyB_rac.glif</string>
+ <key>RtParen</key>
+ <string>R_tP_aren.glif</string>
+ <key>RtSqrBrac</key>
+ <string>R_tS_qrB_rac.glif</string>
+ <key>Semicolon</key>
+ <string>S_emicolon.glif</string>
+ <key>Solidus</key>
+ <string>S_olidus.glif</string>
+ <key>Space</key>
+ <string>S_pace.glif</string>
+ <key>Tilde</key>
+ <string>T_ilde.glif</string>
+ <key>VertLine</key>
+ <string>V_ertL_ine.glif</string>
+ <key>nonmarkingreturn</key>
+ <string>nonmarkingreturn.glif</string>
+</dict>
+</plist>
diff --git a/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/nonmarkingreturn.glif b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/nonmarkingreturn.glif
new file mode 100644
index 0000000..9a63f06
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocfeat.ufo/glyphs/nonmarkingreturn.glif
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="nonmarkingreturn" format="2">
+ <advance width="1004"/>
+ <outline/>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocfeat.ufo/layercontents.plist b/tests/reference/ufo/psfsetassocfeat.ufo/layercontents.plist
new file mode 100644
index 0000000..42b7482
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocfeat.ufo/layercontents.plist
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<array>
+ <array>
+ <string>public.default</string>
+ <string>glyphs</string>
+ </array>
+</array>
+</plist>
diff --git a/tests/reference/ufo/psfsetassocfeat.ufo/lib.plist b/tests/reference/ufo/psfsetassocfeat.ufo/lib.plist
new file mode 100644
index 0000000..43413a8
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocfeat.ufo/lib.plist
@@ -0,0 +1,538 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>com.schriftgestaltung.Glyphs.fontUserData</key>
+ <dict/>
+ <key>com.schriftgestaltung.appVersion</key>
+ <string>1161</string>
+ <key>com.schriftgestaltung.customName</key>
+ <string>Italic</string>
+ <key>com.schriftgestaltung.customParameter.GSFont.DisplayStrings</key>
+ <string/>
+ <key>com.schriftgestaltung.customParameter.GSFont.disablesAutomaticAlignment</key>
+ <true/>
+ <key>com.schriftgestaltung.customParameter.GSFont.disablesLastChange</key>
+ <true/>
+ <key>com.schriftgestaltung.customParameter.GSFont.useNiceNames</key>
+ <integer>0</integer>
+ <key>com.schriftgestaltung.customParameter.GSFontMaster.customValue</key>
+ <integer>0</integer>
+ <key>com.schriftgestaltung.customParameter.GSFontMaster.customValue1</key>
+ <integer>0</integer>
+ <key>com.schriftgestaltung.customParameter.GSFontMaster.customValue2</key>
+ <integer>0</integer>
+ <key>com.schriftgestaltung.customParameter.GSFontMaster.customValue3</key>
+ <integer>0</integer>
+ <key>com.schriftgestaltung.customParameter.GSFontMaster.iconName</key>
+ <string/>
+ <key>com.schriftgestaltung.customParameter.GSFontMaster.weightValue</key>
+ <integer>400</integer>
+ <key>com.schriftgestaltung.customParameter.GSFontMaster.widthValue</key>
+ <integer>100</integer>
+ <key>com.schriftgestaltung.disablesAutomaticAlignment</key>
+ <true/>
+ <key>com.schriftgestaltung.disablesLastChange</key>
+ <true/>
+ <key>com.schriftgestaltung.fontMasterOrder</key>
+ <integer>0</integer>
+ <key>com.schriftgestaltung.glyphOrder</key>
+ <array>
+ <string>.notdef</string>
+ <string>.null</string>
+ <string>nonmarkingreturn</string>
+ <string>Space</string>
+ <string>ExclamationMrk</string>
+ <string>QuotMrk</string>
+ <string>NumSgn</string>
+ <string>DollarSgn</string>
+ <string>PercentSgn</string>
+ <string>Ampersand</string>
+ <string>Apos</string>
+ <string>LftParen</string>
+ <string>RtParen</string>
+ <string>Asterisk</string>
+ <string>PlusSgn</string>
+ <string>Comma</string>
+ <string>HyphenMinus</string>
+ <string>FullStop</string>
+ <string>Solidus</string>
+ <string>DigitZero</string>
+ <string>DigitOne</string>
+ <string>DigitTwo</string>
+ <string>DigitThree</string>
+ <string>DigitFour</string>
+ <string>DigitFive</string>
+ <string>DigitSix</string>
+ <string>DigitSeven</string>
+ <string>DigitEight</string>
+ <string>DigitNine</string>
+ <string>Colon</string>
+ <string>Semicolon</string>
+ <string>LTSgn</string>
+ <string>EqSgn</string>
+ <string>GTSgn</string>
+ <string>QstnMrk</string>
+ <string>AtSgn</string>
+ <string>LtnCapA</string>
+ <string>LtnCapA.alt</string>
+ <string>LtnCapB</string>
+ <string>LtnCapC</string>
+ <string>LtnCapD</string>
+ <string>LtnCapE</string>
+ <string>LtnCapF</string>
+ <string>LtnCapG</string>
+ <string>LtnCapH</string>
+ <string>LtnCapI</string>
+ <string>LtnCapJ</string>
+ <string>LtnCapK</string>
+ <string>LtnCapL</string>
+ <string>LtnCapM</string>
+ <string>LtnCapN</string>
+ <string>LtnCapO</string>
+ <string>LtnCapP</string>
+ <string>LtnCapQ</string>
+ <string>LtnCapR</string>
+ <string>LtnCapS</string>
+ <string>LtnCapT</string>
+ <string>LtnCapU</string>
+ <string>LtnCapV</string>
+ <string>LtnCapW</string>
+ <string>LtnCapX</string>
+ <string>LtnCapY</string>
+ <string>LftSqrBrac</string>
+ <string>ReverseSolidus</string>
+ <string>RtSqrBrac</string>
+ <string>CircumAccent</string>
+ <string>LowLine</string>
+ <string>GraveAccent</string>
+ <string>LtnSmA</string>
+ <string>LtnSmB</string>
+ <string>LtnSmC</string>
+ <string>LtnSmD</string>
+ <string>LtnSmE</string>
+ <string>LtnSmF</string>
+ <string>LtnSmG</string>
+ <string>LtnSmH</string>
+ <string>LtnSmI</string>
+ <string>LtnSmJ</string>
+ <string>LtnSmK</string>
+ <string>LtnSmL</string>
+ <string>LtnSmM</string>
+ <string>LtnSmN</string>
+ <string>LtnSmO</string>
+ <string>LtnSmP</string>
+ <string>LtnSmQ</string>
+ <string>LtnSmR</string>
+ <string>LtnSmS</string>
+ <string>LtnSmT</string>
+ <string>LtnSmU</string>
+ <string>LtnSmV</string>
+ <string>LtnSmW</string>
+ <string>LtnSmX</string>
+ <string>LtnSmY</string>
+ <string>LftCurlyBrac</string>
+ <string>VertLine</string>
+ <string>RtCurlyBrac</string>
+ <string>Tilde</string>
+ <string>LtnCapADiaer</string>
+ <string>LtnSmAAcute</string>
+ <string>LtnSmAGrave</string>
+ <string>LtnSmACircum</string>
+ <string>LtnSmADiaer</string>
+ <string>LtnSmATilde</string>
+ <string>LtnSmARingAbv</string>
+ <string>DottedCirc</string>
+ <string>Hyphen</string>
+ <string>NonBreakingHyphen</string>
+ <string>Hyphen_Soft</string>
+ <string>CombAcute</string>
+ <string>CombGrave</string>
+ <string>CombCircum</string>
+ <string>CombTilde</string>
+ <string>CombDiaer</string>
+ <string>CombRingAbv</string>
+ </array>
+ <key>com.schriftgestaltung.keyboardIncrement</key>
+ <integer>1</integer>
+ <key>com.schriftgestaltung.weight</key>
+ <string>Regular</string>
+ <key>com.schriftgestaltung.weightValue</key>
+ <integer>400</integer>
+ <key>com.schriftgestaltung.width</key>
+ <string>Regular</string>
+ <key>com.schriftgestaltung.widthValue</key>
+ <integer>100</integer>
+ <key>org.sil.lcg.toneLetters</key>
+ <dict>
+ <key>contourWidth</key>
+ <integer>480</integer>
+ <key>dotSize</key>
+ <integer>180</integer>
+ <key>dotSpacing</key>
+ <integer>200</integer>
+ <key>glyphDepth</key>
+ <integer>-25</integer>
+ <key>glyphHeight</key>
+ <integer>1600</integer>
+ <key>italicAngle</key>
+ <integer>14</integer>
+ <key>marginDotLeft</key>
+ <integer>120</integer>
+ <key>marginDotRight</key>
+ <integer>160</integer>
+ <key>marginFlatLeft</key>
+ <integer>120</integer>
+ <key>marginFlatRight</key>
+ <integer>160</integer>
+ <key>marginPointLeft</key>
+ <integer>100</integer>
+ <key>marginPointRight</key>
+ <integer>140</integer>
+ <key>strokeThickness</key>
+ <integer>120</integer>
+ </dict>
+ <key>public.glyphOrder</key>
+ <array>
+ <string>.notdef</string>
+ <string>.null</string>
+ <string>nonmarkingreturn</string>
+ <string>Space</string>
+ <string>ExclamationMrk</string>
+ <string>QuotMrk</string>
+ <string>NumSgn</string>
+ <string>DollarSgn</string>
+ <string>PercentSgn</string>
+ <string>Ampersand</string>
+ <string>Apos</string>
+ <string>LftParen</string>
+ <string>RtParen</string>
+ <string>Asterisk</string>
+ <string>PlusSgn</string>
+ <string>Comma</string>
+ <string>HyphenMinus</string>
+ <string>FullStop</string>
+ <string>Solidus</string>
+ <string>DigitZero</string>
+ <string>DigitOne</string>
+ <string>DigitTwo</string>
+ <string>DigitThree</string>
+ <string>DigitFour</string>
+ <string>DigitFive</string>
+ <string>DigitSix</string>
+ <string>DigitSeven</string>
+ <string>DigitEight</string>
+ <string>DigitNine</string>
+ <string>Colon</string>
+ <string>Semicolon</string>
+ <string>LTSgn</string>
+ <string>EqSgn</string>
+ <string>GTSgn</string>
+ <string>QstnMrk</string>
+ <string>AtSgn</string>
+ <string>LtnCapA</string>
+ <string>LtnCapA.alt</string>
+ <string>LtnCapB</string>
+ <string>LtnCapC</string>
+ <string>LtnCapD</string>
+ <string>LtnCapE</string>
+ <string>LtnCapF</string>
+ <string>LtnCapG</string>
+ <string>LtnCapH</string>
+ <string>LtnCapI</string>
+ <string>LtnCapJ</string>
+ <string>LtnCapK</string>
+ <string>LtnCapL</string>
+ <string>LtnCapM</string>
+ <string>LtnCapN</string>
+ <string>LtnCapO</string>
+ <string>LtnCapP</string>
+ <string>LtnCapQ</string>
+ <string>LtnCapR</string>
+ <string>LtnCapS</string>
+ <string>LtnCapT</string>
+ <string>LtnCapU</string>
+ <string>LtnCapV</string>
+ <string>LtnCapW</string>
+ <string>LtnCapX</string>
+ <string>LtnCapY</string>
+ <string>LftSqrBrac</string>
+ <string>ReverseSolidus</string>
+ <string>RtSqrBrac</string>
+ <string>CircumAccent</string>
+ <string>LowLine</string>
+ <string>GraveAccent</string>
+ <string>LtnSmA</string>
+ <string>LtnSmB</string>
+ <string>LtnSmC</string>
+ <string>LtnSmD</string>
+ <string>LtnSmE</string>
+ <string>LtnSmF</string>
+ <string>LtnSmG</string>
+ <string>LtnSmH</string>
+ <string>LtnSmI</string>
+ <string>LtnSmJ</string>
+ <string>LtnSmK</string>
+ <string>LtnSmL</string>
+ <string>LtnSmM</string>
+ <string>LtnSmN</string>
+ <string>LtnSmO</string>
+ <string>LtnSmP</string>
+ <string>LtnSmQ</string>
+ <string>LtnSmR</string>
+ <string>LtnSmS</string>
+ <string>LtnSmT</string>
+ <string>LtnSmU</string>
+ <string>LtnSmV</string>
+ <string>LtnSmW</string>
+ <string>LtnSmX</string>
+ <string>LtnSmY</string>
+ <string>LftCurlyBrac</string>
+ <string>VertLine</string>
+ <string>RtCurlyBrac</string>
+ <string>Tilde</string>
+ <string>LtnCapADiaer</string>
+ <string>LtnSmAAcute</string>
+ <string>LtnSmAGrave</string>
+ <string>LtnSmACircum</string>
+ <string>LtnSmADiaer</string>
+ <string>LtnSmATilde</string>
+ <string>LtnSmARingAbv</string>
+ <string>DottedCirc</string>
+ <string>Hyphen</string>
+ <string>NonBreakingHyphen</string>
+ <string>Hyphen_Soft</string>
+ <string>CombAcute</string>
+ <string>CombGrave</string>
+ <string>CombCircum</string>
+ <string>CombTilde</string>
+ <string>CombDiaer</string>
+ <string>CombRingAbv</string>
+ </array>
+ <key>public.postscriptNames</key>
+ <dict>
+ <key>Ampersand</key>
+ <string>ampersand</string>
+ <key>Apos</key>
+ <string>quotesingle</string>
+ <key>Asterisk</key>
+ <string>asterisk</string>
+ <key>AtSgn</key>
+ <string>at</string>
+ <key>CircumAccent</key>
+ <string>asciicircum</string>
+ <key>Colon</key>
+ <string>colon</string>
+ <key>CombAcute</key>
+ <string>acutecomb</string>
+ <key>CombCircum</key>
+ <string>uni0302</string>
+ <key>CombDiaer</key>
+ <string>uni0308</string>
+ <key>CombGrave</key>
+ <string>gravecomb</string>
+ <key>CombRingAbv</key>
+ <string>uni030A</string>
+ <key>CombTilde</key>
+ <string>tildecomb</string>
+ <key>Comma</key>
+ <string>comma</string>
+ <key>DigitEight</key>
+ <string>eight</string>
+ <key>DigitFive</key>
+ <string>five</string>
+ <key>DigitFour</key>
+ <string>four</string>
+ <key>DigitNine</key>
+ <string>nine</string>
+ <key>DigitOne</key>
+ <string>one</string>
+ <key>DigitSeven</key>
+ <string>seven</string>
+ <key>DigitSix</key>
+ <string>six</string>
+ <key>DigitThree</key>
+ <string>three</string>
+ <key>DigitTwo</key>
+ <string>two</string>
+ <key>DigitZero</key>
+ <string>zero</string>
+ <key>DollarSgn</key>
+ <string>dollar</string>
+ <key>DottedCirc</key>
+ <string>uni25CC</string>
+ <key>EqSgn</key>
+ <string>equal</string>
+ <key>ExclamationMrk</key>
+ <string>exclam</string>
+ <key>FullStop</key>
+ <string>period</string>
+ <key>GTSgn</key>
+ <string>greater</string>
+ <key>GraveAccent</key>
+ <string>grave</string>
+ <key>Hyphen</key>
+ <string>uni2010</string>
+ <key>HyphenMinus</key>
+ <string>hyphen</string>
+ <key>Hyphen_Soft</key>
+ <string>uni00AD</string>
+ <key>LTSgn</key>
+ <string>less</string>
+ <key>LftCurlyBrac</key>
+ <string>braceleft</string>
+ <key>LftParen</key>
+ <string>parenleft</string>
+ <key>LftSqrBrac</key>
+ <string>bracketleft</string>
+ <key>LowLine</key>
+ <string>underscore</string>
+ <key>LtnCapA</key>
+ <string>A</string>
+ <key>LtnCapA.alt</key>
+ <string>A</string>
+ <key>LtnCapADiaer</key>
+ <string>Adieresis</string>
+ <key>LtnCapB</key>
+ <string>B</string>
+ <key>LtnCapC</key>
+ <string>C</string>
+ <key>LtnCapD</key>
+ <string>D</string>
+ <key>LtnCapE</key>
+ <string>E</string>
+ <key>LtnCapF</key>
+ <string>F</string>
+ <key>LtnCapG</key>
+ <string>G</string>
+ <key>LtnCapH</key>
+ <string>H</string>
+ <key>LtnCapI</key>
+ <string>I</string>
+ <key>LtnCapJ</key>
+ <string>J</string>
+ <key>LtnCapK</key>
+ <string>K</string>
+ <key>LtnCapL</key>
+ <string>L</string>
+ <key>LtnCapM</key>
+ <string>M</string>
+ <key>LtnCapN</key>
+ <string>N</string>
+ <key>LtnCapO</key>
+ <string>O</string>
+ <key>LtnCapP</key>
+ <string>P</string>
+ <key>LtnCapQ</key>
+ <string>Q</string>
+ <key>LtnCapR</key>
+ <string>R</string>
+ <key>LtnCapS</key>
+ <string>S</string>
+ <key>LtnCapT</key>
+ <string>T</string>
+ <key>LtnCapU</key>
+ <string>U</string>
+ <key>LtnCapV</key>
+ <string>V</string>
+ <key>LtnCapW</key>
+ <string>W</string>
+ <key>LtnCapX</key>
+ <string>X</string>
+ <key>LtnCapY</key>
+ <string>Y</string>
+ <key>LtnSmA</key>
+ <string>a</string>
+ <key>LtnSmAAcute</key>
+ <string>aacute</string>
+ <key>LtnSmACircum</key>
+ <string>acircumflex</string>
+ <key>LtnSmADiaer</key>
+ <string>adieresis</string>
+ <key>LtnSmAGrave</key>
+ <string>agrave</string>
+ <key>LtnSmARingAbv</key>
+ <string>aring</string>
+ <key>LtnSmATilde</key>
+ <string>atilde</string>
+ <key>LtnSmB</key>
+ <string>b</string>
+ <key>LtnSmC</key>
+ <string>c</string>
+ <key>LtnSmD</key>
+ <string>d</string>
+ <key>LtnSmE</key>
+ <string>e</string>
+ <key>LtnSmF</key>
+ <string>f</string>
+ <key>LtnSmG</key>
+ <string>g</string>
+ <key>LtnSmH</key>
+ <string>h</string>
+ <key>LtnSmI</key>
+ <string>i</string>
+ <key>LtnSmJ</key>
+ <string>j</string>
+ <key>LtnSmK</key>
+ <string>k</string>
+ <key>LtnSmL</key>
+ <string>l</string>
+ <key>LtnSmM</key>
+ <string>m</string>
+ <key>LtnSmN</key>
+ <string>n</string>
+ <key>LtnSmO</key>
+ <string>o</string>
+ <key>LtnSmP</key>
+ <string>p</string>
+ <key>LtnSmQ</key>
+ <string>q</string>
+ <key>LtnSmR</key>
+ <string>r</string>
+ <key>LtnSmS</key>
+ <string>s</string>
+ <key>LtnSmT</key>
+ <string>t</string>
+ <key>LtnSmU</key>
+ <string>u</string>
+ <key>LtnSmV</key>
+ <string>v</string>
+ <key>LtnSmW</key>
+ <string>w</string>
+ <key>LtnSmX</key>
+ <string>x</string>
+ <key>LtnSmY</key>
+ <string>y</string>
+ <key>NonBreakingHyphen</key>
+ <string>uni2011</string>
+ <key>NumSgn</key>
+ <string>numbersign</string>
+ <key>PercentSgn</key>
+ <string>percent</string>
+ <key>PlusSgn</key>
+ <string>plus</string>
+ <key>QstnMrk</key>
+ <string>question</string>
+ <key>QuotMrk</key>
+ <string>quotedbl</string>
+ <key>ReverseSolidus</key>
+ <string>backslash</string>
+ <key>RtCurlyBrac</key>
+ <string>braceright</string>
+ <key>RtParen</key>
+ <string>parenright</string>
+ <key>RtSqrBrac</key>
+ <string>bracketright</string>
+ <key>Semicolon</key>
+ <string>semicolon</string>
+ <key>Solidus</key>
+ <string>slash</string>
+ <key>Space</key>
+ <string>space</string>
+ <key>Tilde</key>
+ <string>asciitilde</string>
+ <key>VertLine</key>
+ <string>bar</string>
+ </dict>
+</dict>
+</plist>
diff --git a/tests/reference/ufo/psfsetassocfeat.ufo/metainfo.plist b/tests/reference/ufo/psfsetassocfeat.ufo/metainfo.plist
new file mode 100644
index 0000000..aa10c5c
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocfeat.ufo/metainfo.plist
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>creator</key>
+ <string>org.sil.scripts.pysilfont</string>
+ <key>formatVersion</key>
+ <integer>3</integer>
+</dict>
+</plist>
diff --git a/tests/reference/ufo/psfsetassocuids.lg b/tests/reference/ufo/psfsetassocuids.lg
new file mode 100644
index 0000000..86af491
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocuids.lg
@@ -0,0 +1,22 @@
+2021-06-29 14:42:22 Progress: Running: psfsetassocuids tests/input/font-psf-test/source/PsfTest-Bold.ufo -i tests/input/psfsetassocuids.csv -l local/testresults/ufo/psfsetassocuids.log -p loglevel=i
+2021-06-29 14:42:22 Progress: Opening file for input: tests/input/psfsetassocuids.csv
+2021-06-29 14:42:22 Progress: Reading UFO: tests/input/font-psf-test/source/PsfTest-Bold.ufo
+2021-06-29 14:42:22 Info: Processing Glyph Layer 0: public.defaultglyphs
+2021-06-29 14:42:22 Progress: Checking fontinfo.plist metadata
+2021-06-29 14:42:22 Warning: note is present - it's use is discouraged
+2021-06-29 14:42:22 Warning: openTypeOS2FamilyClass would be removed from fontinfo Old value: [0, 0]
+2021-06-29 14:42:22 Info: Types: Old - list, New - NoneType
+2021-06-29 14:42:22 Warning: openTypeOS2Selection would be added New value: [7]
+2021-06-29 14:42:22 Info: Types: Old - NoneType, New - list
+2021-06-29 14:42:22 Progress: Checking lib.plist metadata
+2021-06-29 14:42:22 Warning: com.schriftgestaltung.disablesAutomaticAlignment would be deleted - obsolete key Old value: True
+2021-06-29 14:42:22 Info: Types: Old - bool, New - NoneType
+2021-06-29 14:42:22 Warning: com.schriftgestaltung.disablesLastChange would be deleted - obsolete key Old value: True
+2021-06-29 14:42:22 Info: Types: Old - bool, New - NoneType
+2021-06-29 14:42:22 Progress: Check & fix results:- Errors: 0, Changes to make: 4, Other warnings: 1
+2021-06-29 14:42:22 Progress: See log file for details
+2021-06-29 14:42:22 Error: No glyph in font for SupThree on line 1
+2021-06-29 14:42:22 Progress: Processing font for output
+2021-06-29 14:42:22 Progress: Output UFO already exists - reading for comparison
+2021-06-29 14:42:22 Progress: Writing font to local/testresults/ufo/psfsetassocuids.ufo
+2021-06-29 14:42:22 Info: Processing glyphs directory
diff --git a/tests/reference/ufo/psfsetassocuids.ufo/fontinfo.plist b/tests/reference/ufo/psfsetassocuids.ufo/fontinfo.plist
new file mode 100644
index 0000000..2036ffe
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocuids.ufo/fontinfo.plist
@@ -0,0 +1,245 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>ascender</key>
+ <integer>2100</integer>
+ <key>capHeight</key>
+ <integer>1485</integer>
+ <key>copyright</key>
+ <string>Copyright (c) 2004-2021 SIL International</string>
+ <key>descender</key>
+ <integer>-550</integer>
+ <key>familyName</key>
+ <string>Psf Test</string>
+ <key>note</key>
+ <string>Test note
+Second line
+
+Third line
+</string>
+ <key>openTypeHeadCreated</key>
+ <string>2021/01/29 10:05:06</string>
+ <key>openTypeHheaAscender</key>
+ <integer>2100</integer>
+ <key>openTypeHheaDescender</key>
+ <integer>-550</integer>
+ <key>openTypeHheaLineGap</key>
+ <integer>0</integer>
+ <key>openTypeNameDescription</key>
+ <string>Copyright (c) 2004-2021 SIL International</string>
+ <key>openTypeNameDesigner</key>
+ <string>Victor Gaultney, Annie Olsen, Julie Remington, Don Collingsworth, Eric Hays, Becca Hirsbrunner</string>
+ <key>openTypeNameDesignerURL</key>
+ <string>http://scripts.sil.org/</string>
+ <key>openTypeNameLicense</key>
+ <string>Copyright (c) 2004-2021 SIL International (http://www.sil.org/) with Reserved Font Names "Andika" and "SIL".
+
+This Font Software is licensed under the SIL Open Font License, Version 1.1. This license is copied below, and is also available with a FAQ at: http://scripts.sil.org/OFL
+
+
+-----------------------------------------------------------
+SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
+-----------------------------------------------------------
+
+PREAMBLE
+The goals of the Open Font License (OFL) are to stimulate worldwide development of collaborative font projects, to support the font creation efforts of academic and linguistic communities, and to provide a free and open framework in which fonts may be shared and improved in partnership with others.
+
+The OFL allows the licensed fonts to be used, studied, modified and redistributed freely as long as they are not sold by themselves. The fonts, including any derivative works, can be bundled, embedded, redistributed and/or sold with any software provided that any reserved names are not used by derivative works. The fonts and derivatives, however, cannot be released under any other type of license. The requirement for fonts to remain under this license does not apply to any document created using the fonts or their derivatives.
+
+DEFINITIONS
+"Font Software" refers to the set of files released by the Copyright Holder(s) under this license and clearly marked as such. This may include source files, build scripts and documentation.
+
+"Reserved Font Name" refers to any names specified as such after the copyright statement(s).
+
+"Original Version" refers to the collection of Font Software components as distributed by the Copyright Holder(s).
+
+"Modified Version" refers to any derivative made by adding to, deleting, or substituting -- in part or in whole -- any of the components of the Original Version, by changing formats or by porting the Font Software to a new environment.
+
+"Author" refers to any designer, engineer, programmer, technical writer or other person who contributed to the Font Software.
+
+PERMISSION &amp; CONDITIONS
+Permission is hereby granted, free of charge, to any person obtaining a copy of the Font Software, to use, study, copy, merge, embed, modify, redistribute, and sell modified and unmodified copies of the Font Software, subject to the following conditions:
+
+1) Neither the Font Software nor any of its individual components, in Original or Modified Versions, may be sold by itself.
+
+2) Original or Modified Versions of the Font Software may be bundled, redistributed and/or sold with any software, provided that each copy contains the above copyright notice and this license. These can be included either as stand-alone text files, human-readable headers or in the appropriate machine-readable metadata fields within text or binary files as long as those fields can be easily viewed by the user.
+
+3) No Modified Version of the Font Software may use the Reserved Font Name(s) unless explicit written permission is granted by the corresponding Copyright Holder. This restriction only applies to the primary font name as presented to the users.
+
+4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font Software shall not be used to promote, endorse or advertise any Modified Version, except to acknowledge the contribution(s) of the Copyright Holder(s) and the Author(s) or with their explicit written permission.
+
+5) The Font Software, modified or unmodified, in part or in whole, must be distributed entirely under this license, and must not be distributed under any other license. The requirement for fonts to remain under this license does not apply to any document created using the Font Software.
+
+TERMINATION
+This license becomes null and void if any of the above conditions are not met.
+
+DISCLAIMER
+THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM OTHER DEALINGS IN THE FONT SOFTWARE.</string>
+ <key>openTypeNameLicenseURL</key>
+ <string>http://scripts.sil.org/OFL</string>
+ <key>openTypeNameManufacturer</key>
+ <string>SIL International</string>
+ <key>openTypeNameManufacturerURL</key>
+ <string>http://scripts.sil.org</string>
+ <key>openTypeNamePreferredFamilyName</key>
+ <string>Psf Test</string>
+ <key>openTypeNamePreferredSubfamilyName</key>
+ <string>Bold</string>
+ <key>openTypeNameUniqueID</key>
+ <string>SIL International: Psf Test Bold: 2022</string>
+ <key>openTypeNameVersion</key>
+ <string>Version 5.550</string>
+ <key>openTypeOS2CodePageRanges</key>
+ <array>
+ <integer>0</integer>
+ <integer>1</integer>
+ <integer>2</integer>
+ <integer>4</integer>
+ <integer>7</integer>
+ <integer>8</integer>
+ </array>
+ <key>openTypeOS2FamilyClass</key>
+ <array>
+ <integer>0</integer>
+ <integer>0</integer>
+ </array>
+ <key>openTypeOS2Panose</key>
+ <array>
+ <integer>2</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ </array>
+ <key>openTypeOS2StrikeoutPosition</key>
+ <integer>700</integer>
+ <key>openTypeOS2StrikeoutSize</key>
+ <integer>100</integer>
+ <key>openTypeOS2SubscriptXOffset</key>
+ <integer>0</integer>
+ <key>openTypeOS2SubscriptXSize</key>
+ <integer>1433</integer>
+ <key>openTypeOS2SubscriptYOffset</key>
+ <integer>286</integer>
+ <key>openTypeOS2SubscriptYSize</key>
+ <integer>1331</integer>
+ <key>openTypeOS2SuperscriptXOffset</key>
+ <integer>0</integer>
+ <key>openTypeOS2SuperscriptXSize</key>
+ <integer>1433</integer>
+ <key>openTypeOS2SuperscriptYOffset</key>
+ <integer>976</integer>
+ <key>openTypeOS2SuperscriptYSize</key>
+ <integer>1331</integer>
+ <key>openTypeOS2Type</key>
+ <array/>
+ <key>openTypeOS2TypoAscender</key>
+ <integer>2100</integer>
+ <key>openTypeOS2TypoDescender</key>
+ <integer>-550</integer>
+ <key>openTypeOS2TypoLineGap</key>
+ <integer>0</integer>
+ <key>openTypeOS2UnicodeRanges</key>
+ <array>
+ <integer>0</integer>
+ <integer>1</integer>
+ <integer>6</integer>
+ <integer>7</integer>
+ <integer>31</integer>
+ <integer>33</integer>
+ <integer>35</integer>
+ <integer>36</integer>
+ <integer>37</integer>
+ <integer>38</integer>
+ <integer>39</integer>
+ <integer>40</integer>
+ <integer>45</integer>
+ <integer>46</integer>
+ <integer>47</integer>
+ <integer>57</integer>
+ <integer>60</integer>
+ <integer>62</integer>
+ <integer>64</integer>
+ <integer>67</integer>
+ <integer>69</integer>
+ <integer>89</integer>
+ </array>
+ <key>openTypeOS2VendorID</key>
+ <string>SIL</string>
+ <key>openTypeOS2WeightClass</key>
+ <integer>700</integer>
+ <key>openTypeOS2WidthClass</key>
+ <integer>5</integer>
+ <key>openTypeOS2WinAscent</key>
+ <integer>2100</integer>
+ <key>openTypeOS2WinDescent</key>
+ <integer>550</integer>
+ <key>postscriptBlueValues</key>
+ <array>
+ <integer>-490</integer>
+ <integer>-490</integer>
+ <integer>-25</integer>
+ <integer>0</integer>
+ <integer>1020</integer>
+ <integer>1040</integer>
+ <integer>1455</integer>
+ <integer>1485</integer>
+ <integer>1600</integer>
+ <integer>1620</integer>
+ </array>
+ <key>postscriptFontName</key>
+ <string>PsfTest-Bold</string>
+ <key>postscriptFullName</key>
+ <string>Psf Test Bold</string>
+ <key>postscriptStemSnapH</key>
+ <array>
+ <integer>140</integer>
+ <integer>145</integer>
+ <integer>150</integer>
+ <integer>155</integer>
+ <integer>160</integer>
+ <integer>165</integer>
+ <integer>170</integer>
+ <integer>175</integer>
+ <integer>185</integer>
+ <integer>270</integer>
+ </array>
+ <key>postscriptStemSnapV</key>
+ <array>
+ <integer>165</integer>
+ <integer>180</integer>
+ <integer>185</integer>
+ <integer>190</integer>
+ <integer>195</integer>
+ <integer>200</integer>
+ <integer>205</integer>
+ <integer>270</integer>
+ </array>
+ <key>postscriptUnderlinePosition</key>
+ <integer>-110</integer>
+ <key>postscriptUnderlineThickness</key>
+ <integer>80</integer>
+ <key>styleMapFamilyName</key>
+ <string>Psf Test</string>
+ <key>styleMapStyleName</key>
+ <string>bold</string>
+ <key>styleName</key>
+ <string>Bold</string>
+ <key>trademark</key>
+ <string>Andika is a trademark of SIL International.</string>
+ <key>unitsPerEm</key>
+ <integer>2048</integer>
+ <key>versionMajor</key>
+ <integer>5</integer>
+ <key>versionMinor</key>
+ <integer>550</integer>
+ <key>xHeight</key>
+ <integer>1040</integer>
+</dict>
+</plist>
diff --git a/tests/reference/ufo/psfsetassocuids.ufo/glyphs/A_mpersand.glif b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/A_mpersand.glif
new file mode 100644
index 0000000..f2749f2
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/A_mpersand.glif
@@ -0,0 +1,61 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Ampersand" format="2">
+ <advance width="1355"/>
+ <unicode hex="0026"/>
+ <outline>
+ <contour>
+ <point x="1060" y="600" type="line"/>
+ <point x="996" y="433"/>
+ <point x="715" y="190"/>
+ <point x="540" y="190" type="curve" smooth="yes"/>
+ <point x="425" y="190"/>
+ <point x="335" y="257"/>
+ <point x="335" y="370" type="curve" smooth="yes"/>
+ <point x="335" y="480"/>
+ <point x="411" y="547"/>
+ <point x="585" y="700" type="curve" smooth="yes"/>
+ <point x="766" y="859"/>
+ <point x="925" y="1048"/>
+ <point x="925" y="1190" type="curve" smooth="yes"/>
+ <point x="925" y="1372"/>
+ <point x="777" y="1485"/>
+ <point x="575" y="1485" type="curve" smooth="yes"/>
+ <point x="366" y="1485"/>
+ <point x="190" y="1372"/>
+ <point x="190" y="1160" type="curve" smooth="yes"/>
+ <point x="190" y="1000"/>
+ <point x="407" y="785"/>
+ <point x="590" y="540" type="curve" smooth="yes"/>
+ <point x="859" y="179"/>
+ <point x="1038" y="-25"/>
+ <point x="1090" y="-25" type="curve" smooth="yes"/>
+ <point x="1125" y="-25"/>
+ <point x="1253" y="58"/>
+ <point x="1290" y="90" type="curve"/>
+ <point x="1195" y="130"/>
+ <point x="1060" y="305"/>
+ <point x="785" y="680" type="curve" smooth="yes"/>
+ <point x="619" y="906"/>
+ <point x="420" y="1085"/>
+ <point x="420" y="1170" type="curve" smooth="yes"/>
+ <point x="420" y="1241"/>
+ <point x="483" y="1310"/>
+ <point x="560" y="1310" type="curve" smooth="yes"/>
+ <point x="640" y="1310"/>
+ <point x="695" y="1254"/>
+ <point x="695" y="1175" type="curve" smooth="yes"/>
+ <point x="695" y="1106"/>
+ <point x="628" y="1001"/>
+ <point x="455" y="840" type="curve" smooth="yes"/>
+ <point x="251" y="651"/>
+ <point x="90" y="527"/>
+ <point x="90" y="344" type="curve" smooth="yes"/>
+ <point x="90" y="121"/>
+ <point x="242" y="-25"/>
+ <point x="525" y="-25" type="curve" smooth="yes"/>
+ <point x="808" y="-25"/>
+ <point x="1117" y="264"/>
+ <point x="1195" y="425" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocuids.ufo/glyphs/A_pos.glif b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/A_pos.glif
new file mode 100644
index 0000000..61494e8
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/A_pos.glif
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Apos" format="2">
+ <advance width="625"/>
+ <unicode hex="0027"/>
+ <outline>
+ <contour>
+ <point x="400" y="1045" type="line"/>
+ <point x="405" y="1186"/>
+ <point x="406" y="1339"/>
+ <point x="435" y="1585" type="curve"/>
+ <point x="190" y="1585" type="line"/>
+ <point x="221" y="1339"/>
+ <point x="221" y="1186"/>
+ <point x="225" y="1045" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocuids.ufo/glyphs/A_sterisk.glif b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/A_sterisk.glif
new file mode 100644
index 0000000..ed9d25e
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/A_sterisk.glif
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Asterisk" format="2">
+ <advance width="1040"/>
+ <unicode hex="002A"/>
+ <outline>
+ <contour>
+ <point x="827" y="1493" type="line"/>
+ <point x="747" y="1426"/>
+ <point x="679" y="1367"/>
+ <point x="594" y="1308" type="curve"/>
+ <point x="599" y="1405"/>
+ <point x="609" y="1486"/>
+ <point x="624" y="1600" type="curve"/>
+ <point x="425" y="1600" type="line"/>
+ <point x="444" y="1497"/>
+ <point x="460" y="1412"/>
+ <point x="468" y="1308" type="curve"/>
+ <point x="383" y="1360"/>
+ <point x="312" y="1408"/>
+ <point x="228" y="1476" type="curve"/>
+ <point x="126" y="1306" type="line"/>
+ <point x="231" y="1271"/>
+ <point x="331" y="1234"/>
+ <point x="412" y="1196" type="curve"/>
+ <point x="328" y="1153"/>
+ <point x="243" y="1120"/>
+ <point x="136" y="1077" type="curve"/>
+ <point x="237" y="897" type="line"/>
+ <point x="316" y="968"/>
+ <point x="382" y="1026"/>
+ <point x="466" y="1087" type="curve"/>
+ <point x="459" y="983"/>
+ <point x="449" y="896"/>
+ <point x="431" y="793" type="curve"/>
+ <point x="632" y="793" type="line"/>
+ <point x="610" y="906"/>
+ <point x="602" y="987"/>
+ <point x="593" y="1084" type="curve"/>
+ <point x="682" y="1027"/>
+ <point x="747" y="981"/>
+ <point x="830" y="914" type="curve"/>
+ <point x="936" y="1089" type="line"/>
+ <point x="827" y="1127"/>
+ <point x="743" y="1155"/>
+ <point x="651" y="1196" type="curve"/>
+ <point x="738" y="1241"/>
+ <point x="820" y="1277"/>
+ <point x="924" y="1321" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocuids.ufo/glyphs/A_tS_gn.glif b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/A_tS_gn.glif
new file mode 100644
index 0000000..47fee96
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/A_tS_gn.glif
@@ -0,0 +1,80 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="AtSgn" format="2">
+ <advance width="1742"/>
+ <unicode hex="0040"/>
+ <outline>
+ <contour>
+ <point x="1140" y="10" type="line"/>
+ <point x="1077" y="-34"/>
+ <point x="988" y="-60"/>
+ <point x="895" y="-60" type="curve" smooth="yes"/>
+ <point x="558" y="-60"/>
+ <point x="290" y="204"/>
+ <point x="290" y="605" type="curve" smooth="yes"/>
+ <point x="290" y="973"/>
+ <point x="557" y="1240"/>
+ <point x="895" y="1240" type="curve" smooth="yes"/>
+ <point x="1278" y="1240"/>
+ <point x="1460" y="992"/>
+ <point x="1460" y="670" type="curve" smooth="yes"/>
+ <point x="1460" y="452"/>
+ <point x="1363" y="335"/>
+ <point x="1305" y="335" type="curve" smooth="yes"/>
+ <point x="1256" y="335"/>
+ <point x="1220" y="430"/>
+ <point x="1220" y="650" type="curve" smooth="yes"/>
+ <point x="1220" y="980" type="line"/>
+ <point x="1133" y="1015"/>
+ <point x="986" y="1040"/>
+ <point x="905" y="1040" type="curve" smooth="yes"/>
+ <point x="741" y="1040"/>
+ <point x="618" y="961"/>
+ <point x="535" y="825" type="curve" smooth="yes"/>
+ <point x="488" y="746"/>
+ <point x="460" y="653"/>
+ <point x="460" y="530" type="curve" smooth="yes"/>
+ <point x="460" y="304"/>
+ <point x="606" y="163"/>
+ <point x="740" y="163" type="curve" smooth="yes"/>
+ <point x="867" y="163"/>
+ <point x="1013" y="331"/>
+ <point x="1065" y="455" type="curve"/>
+ <point x="1075" y="287"/>
+ <point x="1153" y="160"/>
+ <point x="1275" y="160" type="curve" smooth="yes"/>
+ <point x="1450" y="160"/>
+ <point x="1650" y="358"/>
+ <point x="1650" y="700" type="curve" smooth="yes"/>
+ <point x="1650" y="1137"/>
+ <point x="1342" y="1425"/>
+ <point x="905" y="1425" type="curve" smooth="yes"/>
+ <point x="480" y="1425"/>
+ <point x="90" y="1136"/>
+ <point x="90" y="575" type="curve" smooth="yes"/>
+ <point x="90" y="38"/>
+ <point x="479" y="-245"/>
+ <point x="880" y="-245" type="curve" smooth="yes"/>
+ <point x="1015" y="-245"/>
+ <point x="1175" y="-198"/>
+ <point x="1275" y="-128" type="curve"/>
+ </contour>
+ <contour>
+ <point x="1020" y="710" type="line"/>
+ <point x="988" y="572"/>
+ <point x="863" y="350"/>
+ <point x="773" y="350" type="curve" smooth="yes"/>
+ <point x="701" y="350"/>
+ <point x="660" y="428"/>
+ <point x="660" y="575" type="curve" smooth="yes"/>
+ <point x="660" y="652"/>
+ <point x="682" y="737"/>
+ <point x="720" y="786" type="curve" smooth="yes"/>
+ <point x="756" y="831"/>
+ <point x="807" y="855"/>
+ <point x="875" y="855" type="curve" smooth="yes"/>
+ <point x="949" y="855"/>
+ <point x="987" y="836"/>
+ <point x="1020" y="820" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocuids.ufo/glyphs/C_ircumA_ccent.glif b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/C_ircumA_ccent.glif
new file mode 100644
index 0000000..c8db8e3
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/C_ircumA_ccent.glif
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="CircumAccent" format="2">
+ <advance width="880"/>
+ <unicode hex="005E"/>
+ <anchor x="440" y="1635" name="U"/>
+ <outline>
+ <contour>
+ <point x="888" y="1200" type="line"/>
+ <point x="598" y="1600" type="line"/>
+ <point x="298" y="1600" type="line"/>
+ <point x="8" y="1200" type="line"/>
+ <point x="248" y="1200" type="line"/>
+ <point x="448" y="1430" type="line"/>
+ <point x="648" y="1200" type="line"/>
+ </contour>
+ </outline>
+ <lib>
+ <dict>
+ <key>org.sil.assocUIDs</key>
+ <array>
+ <string>003E</string>
+ </array>
+ </dict>
+ </lib>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocuids.ufo/glyphs/C_olon.glif b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/C_olon.glif
new file mode 100644
index 0000000..ae4801a
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/C_olon.glif
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Colon" format="2">
+ <advance width="710"/>
+ <unicode hex="003A"/>
+ <outline>
+ <contour>
+ <point x="200" y="150" type="curve" smooth="yes"/>
+ <point x="200" y="46"/>
+ <point x="274" y="-25"/>
+ <point x="375" y="-25" type="curve" smooth="yes"/>
+ <point x="477" y="-25"/>
+ <point x="550" y="46"/>
+ <point x="550" y="150" type="curve" smooth="yes"/>
+ <point x="550" y="252"/>
+ <point x="477" y="325"/>
+ <point x="375" y="325" type="curve" smooth="yes"/>
+ <point x="274" y="325"/>
+ <point x="200" y="252"/>
+ </contour>
+ <contour>
+ <point x="200" y="750" type="curve" smooth="yes"/>
+ <point x="200" y="646"/>
+ <point x="274" y="575"/>
+ <point x="375" y="575" type="curve" smooth="yes"/>
+ <point x="477" y="575"/>
+ <point x="550" y="646"/>
+ <point x="550" y="750" type="curve" smooth="yes"/>
+ <point x="550" y="852"/>
+ <point x="477" y="925"/>
+ <point x="375" y="925" type="curve" smooth="yes"/>
+ <point x="274" y="925"/>
+ <point x="200" y="852"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocuids.ufo/glyphs/C_ombA_cute.glif b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/C_ombA_cute.glif
new file mode 100644
index 0000000..5574223
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/C_ombA_cute.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="CombAcute" format="2">
+ <unicode hex="0301"/>
+ <anchor x="-600" y="1635" name="U"/>
+ <anchor x="-540" y="1100" name="_U"/>
+ <outline>
+ <contour>
+ <point x="-470" y="1600" type="line"/>
+ <point x="-760" y="1200" type="line"/>
+ <point x="-520" y="1200" type="line"/>
+ <point x="-120" y="1600" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocuids.ufo/glyphs/C_ombC_ircum.glif b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/C_ombC_ircum.glif
new file mode 100644
index 0000000..ca30491
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/C_ombC_ircum.glif
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="CombCircum" format="2">
+ <unicode hex="0302"/>
+ <anchor x="-588" y="1635" name="U"/>
+ <anchor x="-580" y="1100" name="_U"/>
+ <outline>
+ <contour>
+ <point x="-140" y="1200" type="line"/>
+ <point x="-430" y="1600" type="line"/>
+ <point x="-730" y="1600" type="line"/>
+ <point x="-1020" y="1200" type="line"/>
+ <point x="-780" y="1200" type="line"/>
+ <point x="-580" y="1430" type="line"/>
+ <point x="-380" y="1200" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocuids.ufo/glyphs/C_ombD_iaer.glif b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/C_ombD_iaer.glif
new file mode 100644
index 0000000..5a15368
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/C_ombD_iaer.glif
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="CombDiaer" format="2">
+ <unicode hex="0308"/>
+ <anchor x="-580" y="1585" name="U"/>
+ <anchor x="-580" y="1100" name="_U"/>
+ <outline>
+ <contour>
+ <point x="-510" y="1385" type="curve" smooth="yes"/>
+ <point x="-510" y="1281"/>
+ <point x="-436" y="1210"/>
+ <point x="-335" y="1210" type="curve" smooth="yes"/>
+ <point x="-233" y="1210"/>
+ <point x="-160" y="1281"/>
+ <point x="-160" y="1385" type="curve" smooth="yes"/>
+ <point x="-160" y="1487"/>
+ <point x="-233" y="1560"/>
+ <point x="-335" y="1560" type="curve" smooth="yes"/>
+ <point x="-436" y="1560"/>
+ <point x="-510" y="1487"/>
+ </contour>
+ <contour>
+ <point x="-1000" y="1385" type="curve" smooth="yes"/>
+ <point x="-1000" y="1281"/>
+ <point x="-926" y="1210"/>
+ <point x="-825" y="1210" type="curve" smooth="yes"/>
+ <point x="-723" y="1210"/>
+ <point x="-650" y="1281"/>
+ <point x="-650" y="1385" type="curve" smooth="yes"/>
+ <point x="-650" y="1487"/>
+ <point x="-723" y="1560"/>
+ <point x="-825" y="1560" type="curve" smooth="yes"/>
+ <point x="-926" y="1560"/>
+ <point x="-1000" y="1487"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocuids.ufo/glyphs/C_ombG_rave.glif b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/C_ombG_rave.glif
new file mode 100644
index 0000000..33bed8f
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/C_ombG_rave.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="CombGrave" format="2">
+ <unicode hex="0300"/>
+ <anchor x="-590" y="1635" name="U"/>
+ <anchor x="-630" y="1100" name="_U"/>
+ <outline>
+ <contour>
+ <point x="-1050" y="1600" type="line"/>
+ <point x="-650" y="1200" type="line"/>
+ <point x="-410" y="1200" type="line"/>
+ <point x="-700" y="1600" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocuids.ufo/glyphs/C_ombR_ingA_bv.glif b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/C_ombR_ingA_bv.glif
new file mode 100644
index 0000000..7e03146
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/C_ombR_ingA_bv.glif
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="CombRingAbv" format="2">
+ <unicode hex="030A"/>
+ <anchor x="-570" y="1635" name="U"/>
+ <anchor x="-572" y="1100" name="_U"/>
+ <outline>
+ <contour>
+ <point x="-475" y="1400" type="curve" smooth="yes"/>
+ <point x="-475" y="1345"/>
+ <point x="-515" y="1305"/>
+ <point x="-570" y="1305" type="curve" smooth="yes"/>
+ <point x="-625" y="1305"/>
+ <point x="-665" y="1345"/>
+ <point x="-665" y="1400" type="curve" smooth="yes"/>
+ <point x="-665" y="1455"/>
+ <point x="-625" y="1495"/>
+ <point x="-570" y="1495" type="curve" smooth="yes"/>
+ <point x="-515" y="1495"/>
+ <point x="-475" y="1455"/>
+ </contour>
+ <contour>
+ <point x="-815" y="1400" type="curve" smooth="yes"/>
+ <point x="-815" y="1260"/>
+ <point x="-710" y="1160"/>
+ <point x="-570" y="1160" type="curve" smooth="yes"/>
+ <point x="-430" y="1160"/>
+ <point x="-325" y="1260"/>
+ <point x="-325" y="1400" type="curve" smooth="yes"/>
+ <point x="-325" y="1540"/>
+ <point x="-430" y="1640"/>
+ <point x="-570" y="1640" type="curve" smooth="yes"/>
+ <point x="-710" y="1640"/>
+ <point x="-815" y="1540"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocuids.ufo/glyphs/C_ombT_ilde.glif b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/C_ombT_ilde.glif
new file mode 100644
index 0000000..ee23af5
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/C_ombT_ilde.glif
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="CombTilde" format="2">
+ <unicode hex="0303"/>
+ <anchor x="-580" y="1490" name="U"/>
+ <anchor x="-580" y="1100" name="_U"/>
+ <outline>
+ <contour>
+ <point x="-830" y="1190" type="line"/>
+ <point x="-824" y="1232"/>
+ <point x="-803" y="1280"/>
+ <point x="-753" y="1280" type="curve" smooth="yes"/>
+ <point x="-710" y="1280"/>
+ <point x="-653" y="1264"/>
+ <point x="-570" y="1229" type="curve" smooth="yes"/>
+ <point x="-500" y="1199"/>
+ <point x="-448" y="1180"/>
+ <point x="-386" y="1180" type="curve" smooth="yes"/>
+ <point x="-250" y="1180"/>
+ <point x="-155" y="1307"/>
+ <point x="-155" y="1480" type="curve"/>
+ <point x="-310" y="1480" type="line"/>
+ <point x="-318" y="1438"/>
+ <point x="-340" y="1390"/>
+ <point x="-387" y="1390" type="curve" smooth="yes"/>
+ <point x="-435" y="1390"/>
+ <point x="-472" y="1408"/>
+ <point x="-550" y="1437" type="curve" smooth="yes"/>
+ <point x="-629" y="1466"/>
+ <point x="-695" y="1490"/>
+ <point x="-760" y="1490" type="curve" smooth="yes"/>
+ <point x="-892" y="1490"/>
+ <point x="-985" y="1349"/>
+ <point x="-985" y="1190" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocuids.ufo/glyphs/C_omma.glif b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/C_omma.glif
new file mode 100644
index 0000000..9d4845e
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/C_omma.glif
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Comma" format="2">
+ <advance width="665"/>
+ <unicode hex="002C"/>
+ <outline>
+ <contour>
+ <point x="185" y="50" type="line"/>
+ <point x="345" y="50" type="line"/>
+ <point x="345" y="-34"/>
+ <point x="290" y="-153"/>
+ <point x="185" y="-265" type="curve"/>
+ <point x="330" y="-335" type="line"/>
+ <point x="454" y="-228"/>
+ <point x="560" y="-49"/>
+ <point x="560" y="130" type="curve" smooth="yes"/>
+ <point x="560" y="254"/>
+ <point x="489" y="340"/>
+ <point x="375" y="340" type="curve" smooth="yes"/>
+ <point x="262" y="340"/>
+ <point x="185" y="255"/>
+ <point x="185" y="180" type="curve" smooth="yes"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocuids.ufo/glyphs/D_igitE_ight.glif b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/D_igitE_ight.glif
new file mode 100644
index 0000000..a59fff4
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/D_igitE_ight.glif
@@ -0,0 +1,63 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitEight" format="2">
+ <advance width="1200"/>
+ <unicode hex="0038"/>
+ <anchor x="600" y="-100" name="L"/>
+ <anchor x="600" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="600" y="-25" type="curve" smooth="yes"/>
+ <point x="877" y="-25"/>
+ <point x="1130" y="144"/>
+ <point x="1130" y="415" type="curve" smooth="yes"/>
+ <point x="1130" y="641"/>
+ <point x="985" y="739"/>
+ <point x="875" y="795" type="curve"/>
+ <point x="953" y="841"/>
+ <point x="1060" y="923"/>
+ <point x="1060" y="1105" type="curve" smooth="yes"/>
+ <point x="1060" y="1350"/>
+ <point x="860" y="1485"/>
+ <point x="610" y="1485" type="curve" smooth="yes"/>
+ <point x="361" y="1485"/>
+ <point x="140" y="1350"/>
+ <point x="140" y="1105" type="curve" smooth="yes"/>
+ <point x="140" y="923"/>
+ <point x="252" y="838"/>
+ <point x="330" y="795" type="curve"/>
+ <point x="201" y="725"/>
+ <point x="70" y="631"/>
+ <point x="70" y="405" type="curve" smooth="yes"/>
+ <point x="70" y="134"/>
+ <point x="324" y="-25"/>
+ </contour>
+ <contour>
+ <point x="810" y="1100" type="curve" smooth="yes"/>
+ <point x="810" y="974"/>
+ <point x="733" y="895"/>
+ <point x="600" y="895" type="curve" smooth="yes"/>
+ <point x="467" y="895"/>
+ <point x="390" y="974"/>
+ <point x="390" y="1100" type="curve" smooth="yes"/>
+ <point x="390" y="1217"/>
+ <point x="477" y="1290"/>
+ <point x="600" y="1290" type="curve" smooth="yes"/>
+ <point x="743" y="1290"/>
+ <point x="810" y="1207"/>
+ </contour>
+ <contour>
+ <point x="865" y="435" type="curve" smooth="yes"/>
+ <point x="865" y="300"/>
+ <point x="768" y="185"/>
+ <point x="600" y="185" type="curve" smooth="yes"/>
+ <point x="440" y="185"/>
+ <point x="335" y="300"/>
+ <point x="335" y="435" type="curve" smooth="yes"/>
+ <point x="335" y="582"/>
+ <point x="450" y="680"/>
+ <point x="600" y="680" type="curve" smooth="yes"/>
+ <point x="748" y="680"/>
+ <point x="865" y="582"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocuids.ufo/glyphs/D_igitF_ive.glif b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/D_igitF_ive.glif
new file mode 100644
index 0000000..102780d
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/D_igitF_ive.glif
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitFive" format="2">
+ <advance width="1200"/>
+ <unicode hex="0035"/>
+ <anchor x="600" y="-100" name="L"/>
+ <anchor x="600" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="175" y="645" type="line"/>
+ <point x="299" y="693"/>
+ <point x="404" y="710"/>
+ <point x="510" y="710" type="curve" smooth="yes"/>
+ <point x="670" y="710"/>
+ <point x="810" y="632"/>
+ <point x="810" y="470" type="curve" smooth="yes"/>
+ <point x="810" y="318"/>
+ <point x="690" y="215"/>
+ <point x="530" y="215" type="curve" smooth="yes"/>
+ <point x="390" y="215"/>
+ <point x="274" y="252"/>
+ <point x="140" y="360" type="curve"/>
+ <point x="100" y="80" type="line"/>
+ <point x="225" y="2"/>
+ <point x="365" y="-25"/>
+ <point x="520" y="-25" type="curve" smooth="yes"/>
+ <point x="833" y="-25"/>
+ <point x="1090" y="163"/>
+ <point x="1090" y="475" type="curve" smooth="yes"/>
+ <point x="1090" y="752"/>
+ <point x="882" y="930"/>
+ <point x="605" y="930" type="curve" smooth="yes"/>
+ <point x="543" y="930"/>
+ <point x="468" y="911"/>
+ <point x="435" y="895" type="curve"/>
+ <point x="435" y="1215" type="line"/>
+ <point x="765" y="1215" type="line" smooth="yes"/>
+ <point x="849" y="1215"/>
+ <point x="955" y="1211"/>
+ <point x="1030" y="1195" type="curve"/>
+ <point x="1030" y="1460" type="line"/>
+ <point x="175" y="1460" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocuids.ufo/glyphs/D_igitF_our.glif b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/D_igitF_our.glif
new file mode 100644
index 0000000..7d2cbe6
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/D_igitF_our.glif
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitFour" format="2">
+ <advance width="1200"/>
+ <unicode hex="0034"/>
+ <anchor x="607" y="-100" name="L"/>
+ <anchor x="607" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1155" y="345" type="line"/>
+ <point x="1155" y="570" type="line"/>
+ <point x="995" y="570" type="line"/>
+ <point x="995" y="1460" type="line"/>
+ <point x="695" y="1460" type="line"/>
+ <point x="60" y="570" type="line"/>
+ <point x="60" y="345" type="line"/>
+ <point x="730" y="345" type="line"/>
+ <point x="730" y="0" type="line"/>
+ <point x="995" y="0" type="line"/>
+ <point x="995" y="345" type="line"/>
+ </contour>
+ <contour>
+ <point x="730" y="1145" type="line"/>
+ <point x="730" y="570" type="line"/>
+ <point x="305" y="570" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocuids.ufo/glyphs/D_igitN_ine.glif b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/D_igitN_ine.glif
new file mode 100644
index 0000000..b1e153b
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/D_igitN_ine.glif
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitNine" format="2">
+ <advance width="1200"/>
+ <unicode hex="0039"/>
+ <anchor x="600" y="-100" name="L"/>
+ <anchor x="600" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="154" y="65" type="line"/>
+ <point x="248" y="5"/>
+ <point x="364" y="-25"/>
+ <point x="492" y="-25" type="curve" smooth="yes"/>
+ <point x="967" y="-25"/>
+ <point x="1135" y="411"/>
+ <point x="1135" y="780" type="curve" smooth="yes"/>
+ <point x="1135" y="1150"/>
+ <point x="977" y="1485"/>
+ <point x="589" y="1485" type="curve" smooth="yes"/>
+ <point x="310" y="1485"/>
+ <point x="70" y="1300"/>
+ <point x="70" y="1002" type="curve" smooth="yes"/>
+ <point x="70" y="763"/>
+ <point x="272" y="576"/>
+ <point x="550" y="576" type="curve" smooth="yes"/>
+ <point x="741" y="576"/>
+ <point x="913" y="707"/>
+ <point x="1010" y="868" type="curve"/>
+ <point x="939" y="991" type="line"/>
+ <point x="865" y="877"/>
+ <point x="729" y="790"/>
+ <point x="574" y="790" type="curve" smooth="yes"/>
+ <point x="425" y="790"/>
+ <point x="326" y="890"/>
+ <point x="326" y="1036" type="curve" smooth="yes"/>
+ <point x="326" y="1153"/>
+ <point x="425" y="1250"/>
+ <point x="573" y="1250" type="curve" smooth="yes"/>
+ <point x="773" y="1250"/>
+ <point x="870" y="1102"/>
+ <point x="870" y="813" type="curve" smooth="yes"/>
+ <point x="870" y="326"/>
+ <point x="699" y="210"/>
+ <point x="502" y="210" type="curve" smooth="yes"/>
+ <point x="406" y="210"/>
+ <point x="294" y="234"/>
+ <point x="208" y="320" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocuids.ufo/glyphs/D_igitO_ne.glif b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/D_igitO_ne.glif
new file mode 100644
index 0000000..c744b9f
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/D_igitO_ne.glif
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitOne" format="2">
+ <advance width="1200"/>
+ <unicode hex="0031"/>
+ <anchor x="600" y="-100" name="L"/>
+ <anchor x="600" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1075" y="0" type="line"/>
+ <point x="1075" y="235" type="line"/>
+ <point x="767" y="235" type="line"/>
+ <point x="767" y="1460" type="line"/>
+ <point x="492" y="1460" type="line"/>
+ <point x="177" y="1278" type="line"/>
+ <point x="212" y="1018" type="line"/>
+ <point x="492" y="1170" type="line"/>
+ <point x="492" y="235" type="line"/>
+ <point x="185" y="235" type="line"/>
+ <point x="185" y="0" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocuids.ufo/glyphs/D_igitS_even.glif b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/D_igitS_even.glif
new file mode 100644
index 0000000..63fb1c4
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/D_igitS_even.glif
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitSeven" format="2">
+ <advance width="1200"/>
+ <unicode hex="0037"/>
+ <anchor x="600" y="-100" name="L"/>
+ <anchor x="600" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="520" y="0" type="line"/>
+ <point x="649" y="459"/>
+ <point x="834" y="855"/>
+ <point x="1130" y="1260" type="curve"/>
+ <point x="1130" y="1460" type="line"/>
+ <point x="100" y="1460" type="line"/>
+ <point x="100" y="1195" type="line"/>
+ <point x="176" y="1211"/>
+ <point x="292" y="1215"/>
+ <point x="480" y="1215" type="curve" smooth="yes"/>
+ <point x="800" y="1215" type="line"/>
+ <point x="542" y="842"/>
+ <point x="409" y="566"/>
+ <point x="235" y="0" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocuids.ufo/glyphs/D_igitS_ix.glif b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/D_igitS_ix.glif
new file mode 100644
index 0000000..7526cc6
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/D_igitS_ix.glif
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitSix" format="2">
+ <advance width="1200"/>
+ <unicode hex="0036"/>
+ <anchor x="610" y="-100" name="L"/>
+ <anchor x="610" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1073" y="1395" type="line"/>
+ <point x="969" y="1465"/>
+ <point x="873" y="1485"/>
+ <point x="735" y="1485" type="curve" smooth="yes"/>
+ <point x="260" y="1485"/>
+ <point x="90" y="1069"/>
+ <point x="90" y="680" type="curve" smooth="yes"/>
+ <point x="90" y="223"/>
+ <point x="297" y="-25"/>
+ <point x="652" y="-25" type="curve" smooth="yes"/>
+ <point x="955" y="-25"/>
+ <point x="1155" y="179"/>
+ <point x="1155" y="470" type="curve" smooth="yes"/>
+ <point x="1155" y="729"/>
+ <point x="963" y="925"/>
+ <point x="675" y="925" type="curve" smooth="yes"/>
+ <point x="484" y="925"/>
+ <point x="338" y="810"/>
+ <point x="225" y="655" type="curve"/>
+ <point x="290" y="540" type="line"/>
+ <point x="372" y="643"/>
+ <point x="500" y="710"/>
+ <point x="655" y="710" type="curve" smooth="yes"/>
+ <point x="814" y="710"/>
+ <point x="900" y="601"/>
+ <point x="900" y="455" type="curve" smooth="yes"/>
+ <point x="900" y="329"/>
+ <point x="803" y="210"/>
+ <point x="656" y="210" type="curve" smooth="yes"/>
+ <point x="474" y="210"/>
+ <point x="355" y="386"/>
+ <point x="355" y="645" type="curve" smooth="yes"/>
+ <point x="355" y="1132"/>
+ <point x="528" y="1250"/>
+ <point x="725" y="1250" type="curve" smooth="yes"/>
+ <point x="821" y="1250"/>
+ <point x="923" y="1226"/>
+ <point x="1009" y="1140" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocuids.ufo/glyphs/D_igitT_hree.glif b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/D_igitT_hree.glif
new file mode 100644
index 0000000..883bd62
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/D_igitT_hree.glif
@@ -0,0 +1,52 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitThree" format="2">
+ <advance width="1200"/>
+ <unicode hex="0033"/>
+ <anchor x="600" y="-100" name="L"/>
+ <anchor x="600" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="390" y="885" type="line"/>
+ <point x="390" y="645" type="line"/>
+ <point x="480" y="645" type="line" smooth="yes"/>
+ <point x="706" y="645"/>
+ <point x="835" y="548"/>
+ <point x="835" y="425" type="curve" smooth="yes"/>
+ <point x="835" y="291"/>
+ <point x="708" y="210"/>
+ <point x="565" y="210" type="curve" smooth="yes"/>
+ <point x="405" y="210"/>
+ <point x="244" y="282"/>
+ <point x="135" y="405" type="curve"/>
+ <point x="100" y="130" type="line"/>
+ <point x="205" y="32"/>
+ <point x="368" y="-25"/>
+ <point x="545" y="-25" type="curve" smooth="yes"/>
+ <point x="874" y="-25"/>
+ <point x="1120" y="170"/>
+ <point x="1120" y="405" type="curve" smooth="yes"/>
+ <point x="1120" y="672"/>
+ <point x="892" y="756"/>
+ <point x="750" y="780" type="curve"/>
+ <point x="892" y="809"/>
+ <point x="1070" y="957"/>
+ <point x="1070" y="1140" type="curve" smooth="yes"/>
+ <point x="1070" y="1354"/>
+ <point x="868" y="1485"/>
+ <point x="580" y="1485" type="curve" smooth="yes"/>
+ <point x="413" y="1485"/>
+ <point x="240" y="1416"/>
+ <point x="160" y="1325" type="curve"/>
+ <point x="195" y="1095" type="line"/>
+ <point x="308" y="1211"/>
+ <point x="436" y="1250"/>
+ <point x="590" y="1250" type="curve" smooth="yes"/>
+ <point x="689" y="1250"/>
+ <point x="791" y="1193"/>
+ <point x="791" y="1102" type="curve" smooth="yes"/>
+ <point x="791" y="994"/>
+ <point x="662" y="885"/>
+ <point x="480" y="885" type="curve" smooth="yes"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocuids.ufo/glyphs/D_igitT_wo.glif b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/D_igitT_wo.glif
new file mode 100644
index 0000000..1d73732
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/D_igitT_wo.glif
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitTwo" format="2">
+ <advance width="1200"/>
+ <unicode hex="0032"/>
+ <anchor x="600" y="-100" name="L"/>
+ <anchor x="560" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1090" y="260" type="line"/>
+ <point x="1010" y="246"/>
+ <point x="942" y="245"/>
+ <point x="745" y="245" type="curve" smooth="yes"/>
+ <point x="480" y="245" type="line"/>
+ <point x="699" y="422"/>
+ <point x="1046" y="739"/>
+ <point x="1046" y="1065" type="curve" smooth="yes"/>
+ <point x="1046" y="1323"/>
+ <point x="850" y="1485"/>
+ <point x="560" y="1485" type="curve" smooth="yes"/>
+ <point x="391" y="1485"/>
+ <point x="196" y="1402"/>
+ <point x="105" y="1290" type="curve"/>
+ <point x="170" y="1050" type="line"/>
+ <point x="259" y="1158"/>
+ <point x="412" y="1235"/>
+ <point x="535" y="1235" type="curve" smooth="yes"/>
+ <point x="688" y="1235"/>
+ <point x="758" y="1133"/>
+ <point x="758" y="1015" type="curve" smooth="yes"/>
+ <point x="758" y="758"/>
+ <point x="381" y="415"/>
+ <point x="110" y="220" type="curve"/>
+ <point x="110" y="0" type="line"/>
+ <point x="1090" y="0" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocuids.ufo/glyphs/D_igitZ_ero.glif b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/D_igitZ_ero.glif
new file mode 100644
index 0000000..01f4532
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/D_igitZ_ero.glif
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitZero" format="2">
+ <advance width="1200"/>
+ <unicode hex="0030"/>
+ <anchor x="605" y="-100" name="L"/>
+ <anchor x="605" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="850" y="715" type="curve" smooth="yes"/>
+ <point x="850" y="368"/>
+ <point x="762" y="205"/>
+ <point x="600" y="205" type="curve" smooth="yes"/>
+ <point x="432" y="205"/>
+ <point x="350" y="375"/>
+ <point x="350" y="745" type="curve" smooth="yes"/>
+ <point x="350" y="1093"/>
+ <point x="437" y="1255"/>
+ <point x="600" y="1255" type="curve" smooth="yes"/>
+ <point x="772" y="1255"/>
+ <point x="850" y="1086"/>
+ </contour>
+ <contour>
+ <point x="1135" y="740" type="curve" smooth="yes"/>
+ <point x="1135" y="1286"/>
+ <point x="950" y="1485"/>
+ <point x="610" y="1485" type="curve" smooth="yes"/>
+ <point x="291" y="1485"/>
+ <point x="65" y="1283"/>
+ <point x="65" y="720" type="curve" smooth="yes"/>
+ <point x="65" y="165"/>
+ <point x="271" y="-25"/>
+ <point x="590" y="-25" type="curve" smooth="yes"/>
+ <point x="911" y="-25"/>
+ <point x="1135" y="161"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocuids.ufo/glyphs/D_ollarS_gn.glif b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/D_ollarS_gn.glif
new file mode 100644
index 0000000..f8b49cd
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/D_ollarS_gn.glif
@@ -0,0 +1,57 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DollarSgn" format="2">
+ <advance width="1200"/>
+ <unicode hex="0024"/>
+ <outline>
+ <contour>
+ <point x="1006" y="1316" type="line"/>
+ <point x="886" y="1374"/>
+ <point x="764" y="1389"/>
+ <point x="623" y="1389" type="curve" smooth="yes"/>
+ <point x="317" y="1389"/>
+ <point x="150" y="1203"/>
+ <point x="150" y="1017" type="curve" smooth="yes"/>
+ <point x="150" y="830"/>
+ <point x="275" y="730"/>
+ <point x="540" y="623" type="curve" smooth="yes"/>
+ <point x="802" y="517"/>
+ <point x="851" y="472"/>
+ <point x="851" y="386" type="curve" smooth="yes"/>
+ <point x="851" y="267"/>
+ <point x="744" y="211"/>
+ <point x="586" y="211" type="curve" smooth="yes"/>
+ <point x="440" y="211"/>
+ <point x="297" y="281"/>
+ <point x="195" y="383" type="curve"/>
+ <point x="123" y="124" type="line"/>
+ <point x="216" y="49"/>
+ <point x="388" y="0"/>
+ <point x="586" y="0" type="curve" smooth="yes"/>
+ <point x="847" y="0"/>
+ <point x="1086" y="147"/>
+ <point x="1086" y="414" type="curve" smooth="yes"/>
+ <point x="1086" y="633"/>
+ <point x="927" y="723"/>
+ <point x="679" y="826" type="curve" smooth="yes"/>
+ <point x="431" y="929"/>
+ <point x="385" y="969"/>
+ <point x="385" y="1040" type="curve" smooth="yes"/>
+ <point x="385" y="1132"/>
+ <point x="466" y="1188"/>
+ <point x="613" y="1188" type="curve" smooth="yes"/>
+ <point x="741" y="1188"/>
+ <point x="876" y="1154"/>
+ <point x="949" y="1077" type="curve"/>
+ </contour>
+ <contour>
+ <point x="548" y="1600" type="line"/>
+ <point x="548" y="788" type="line"/>
+ <point x="518" y="726" type="line"/>
+ <point x="518" y="-220" type="line"/>
+ <point x="688" y="-220" type="line"/>
+ <point x="688" y="668" type="line"/>
+ <point x="718" y="734" type="line"/>
+ <point x="718" y="1600" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocuids.ufo/glyphs/D_ottedC_irc.glif b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/D_ottedC_irc.glif
new file mode 100644
index 0000000..4cf5cb4
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/D_ottedC_irc.glif
@@ -0,0 +1,235 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DottedCirc" format="2">
+ <advance width="1106"/>
+ <unicode hex="25CC"/>
+ <anchor x="553" y="0" name="H"/>
+ <anchor x="553" y="-100" name="L"/>
+ <anchor x="810" y="0" name="O"/>
+ <anchor x="553" y="1000" name="U"/>
+ <outline>
+ <contour>
+ <point x="443" y="837" type="curve" smooth="yes"/>
+ <point x="443" y="864"/>
+ <point x="423" y="885"/>
+ <point x="398" y="885" type="curve" smooth="yes"/>
+ <point x="371" y="885"/>
+ <point x="348" y="861"/>
+ <point x="348" y="837" type="curve" smooth="yes"/>
+ <point x="348" y="809"/>
+ <point x="372" y="789"/>
+ <point x="398" y="789" type="curve" smooth="yes"/>
+ <point x="425" y="789"/>
+ <point x="443" y="812"/>
+ </contour>
+ <contour>
+ <point x="758" y="79" type="curve" smooth="yes"/>
+ <point x="758" y="106"/>
+ <point x="736" y="127"/>
+ <point x="710" y="127" type="curve" smooth="yes"/>
+ <point x="685" y="127"/>
+ <point x="662" y="103"/>
+ <point x="662" y="80" type="curve" smooth="yes"/>
+ <point x="662" y="52"/>
+ <point x="686" y="31"/>
+ <point x="710" y="31" type="curve" smooth="yes"/>
+ <point x="737" y="31"/>
+ <point x="758" y="55"/>
+ </contour>
+ <contour>
+ <point x="310" y="749" type="curve" smooth="yes"/>
+ <point x="310" y="775"/>
+ <point x="288" y="796"/>
+ <point x="263" y="796" type="curve" smooth="yes"/>
+ <point x="238" y="796"/>
+ <point x="215" y="774"/>
+ <point x="215" y="747" type="curve" smooth="yes"/>
+ <point x="215" y="722"/>
+ <point x="236" y="701"/>
+ <point x="263" y="701" type="curve" smooth="yes"/>
+ <point x="291" y="701"/>
+ <point x="310" y="720"/>
+ </contour>
+ <contour>
+ <point x="891" y="168" type="curve" smooth="yes"/>
+ <point x="891" y="197"/>
+ <point x="870" y="215"/>
+ <point x="843" y="215" type="curve" smooth="yes"/>
+ <point x="817" y="215"/>
+ <point x="795" y="194"/>
+ <point x="795" y="168" type="curve" smooth="yes"/>
+ <point x="795" y="143"/>
+ <point x="816" y="121"/>
+ <point x="843" y="121" type="curve" smooth="yes"/>
+ <point x="871" y="121"/>
+ <point x="891" y="143"/>
+ </contour>
+ <contour>
+ <point x="222" y="613" type="curve" smooth="yes"/>
+ <point x="222" y="640"/>
+ <point x="199" y="663"/>
+ <point x="173" y="663" type="curve" smooth="yes"/>
+ <point x="149" y="663"/>
+ <point x="126" y="642"/>
+ <point x="126" y="615" type="curve" smooth="yes"/>
+ <point x="126" y="591"/>
+ <point x="145" y="567"/>
+ <point x="173" y="567" type="curve" smooth="yes"/>
+ <point x="197" y="567"/>
+ <point x="222" y="587"/>
+ </contour>
+ <contour>
+ <point x="980" y="301" type="curve" smooth="yes"/>
+ <point x="980" y="327"/>
+ <point x="957" y="348"/>
+ <point x="932" y="348" type="curve" smooth="yes"/>
+ <point x="908" y="348"/>
+ <point x="884" y="332"/>
+ <point x="884" y="301" type="curve" smooth="yes"/>
+ <point x="884" y="277"/>
+ <point x="902" y="254"/>
+ <point x="932" y="254" type="curve" smooth="yes"/>
+ <point x="957" y="254"/>
+ <point x="980" y="274"/>
+ </contour>
+ <contour>
+ <point x="191" y="459" type="curve" smooth="yes"/>
+ <point x="191" y="484"/>
+ <point x="168" y="505"/>
+ <point x="143" y="505" type="curve" smooth="yes"/>
+ <point x="116" y="505"/>
+ <point x="95" y="484"/>
+ <point x="95" y="458" type="curve" smooth="yes"/>
+ <point x="95" y="433"/>
+ <point x="115" y="410"/>
+ <point x="143" y="410" type="curve" smooth="yes"/>
+ <point x="167" y="410"/>
+ <point x="191" y="432"/>
+ </contour>
+ <contour>
+ <point x="1011" y="458" type="curve" smooth="yes"/>
+ <point x="1011" y="484"/>
+ <point x="990" y="506"/>
+ <point x="964" y="506" type="curve" smooth="yes"/>
+ <point x="940" y="506"/>
+ <point x="915" y="484"/>
+ <point x="915" y="457" type="curve" smooth="yes"/>
+ <point x="915" y="433"/>
+ <point x="936" y="411"/>
+ <point x="964" y="411" type="curve" smooth="yes"/>
+ <point x="990" y="411"/>
+ <point x="1011" y="433"/>
+ </contour>
+ <contour>
+ <point x="222" y="302" type="curve" smooth="yes"/>
+ <point x="222" y="328"/>
+ <point x="200" y="348"/>
+ <point x="174" y="348" type="curve" smooth="yes"/>
+ <point x="147" y="348"/>
+ <point x="126" y="326"/>
+ <point x="126" y="302" type="curve" smooth="yes"/>
+ <point x="126" y="275"/>
+ <point x="149" y="253"/>
+ <point x="174" y="253" type="curve" smooth="yes"/>
+ <point x="201" y="253"/>
+ <point x="222" y="277"/>
+ </contour>
+ <contour>
+ <point x="980" y="615" type="curve" smooth="yes"/>
+ <point x="980" y="642"/>
+ <point x="955" y="663"/>
+ <point x="931" y="663" type="curve" smooth="yes"/>
+ <point x="904" y="663"/>
+ <point x="885" y="638"/>
+ <point x="885" y="614" type="curve" smooth="yes"/>
+ <point x="885" y="588"/>
+ <point x="907" y="567"/>
+ <point x="931" y="567" type="curve" smooth="yes"/>
+ <point x="959" y="567"/>
+ <point x="980" y="591"/>
+ </contour>
+ <contour>
+ <point x="310" y="168" type="curve" smooth="yes"/>
+ <point x="310" y="195"/>
+ <point x="291" y="215"/>
+ <point x="263" y="215" type="curve" smooth="yes"/>
+ <point x="238" y="215"/>
+ <point x="215" y="190"/>
+ <point x="215" y="168" type="curve" smooth="yes"/>
+ <point x="215" y="143"/>
+ <point x="238" y="120"/>
+ <point x="263" y="120" type="curve" smooth="yes"/>
+ <point x="289" y="120"/>
+ <point x="310" y="143"/>
+ </contour>
+ <contour>
+ <point x="890" y="748" type="curve" smooth="yes"/>
+ <point x="890" y="774"/>
+ <point x="870" y="796"/>
+ <point x="843" y="796" type="curve" smooth="yes"/>
+ <point x="815" y="796"/>
+ <point x="796" y="773"/>
+ <point x="796" y="748" type="curve" smooth="yes"/>
+ <point x="796" y="724"/>
+ <point x="817" y="700"/>
+ <point x="843" y="700" type="curve" smooth="yes"/>
+ <point x="869" y="700"/>
+ <point x="890" y="722"/>
+ </contour>
+ <contour>
+ <point x="444" y="78" type="curve" smooth="yes"/>
+ <point x="444" y="102"/>
+ <point x="423" y="126"/>
+ <point x="396" y="126" type="curve" smooth="yes"/>
+ <point x="370" y="126"/>
+ <point x="348" y="102"/>
+ <point x="348" y="78" type="curve" smooth="yes"/>
+ <point x="348" y="55"/>
+ <point x="370" y="31"/>
+ <point x="396" y="31" type="curve" smooth="yes"/>
+ <point x="420" y="31"/>
+ <point x="444" y="51"/>
+ </contour>
+ <contour>
+ <point x="758" y="836" type="curve" smooth="yes"/>
+ <point x="758" y="861"/>
+ <point x="737" y="885"/>
+ <point x="710" y="885" type="curve" smooth="yes"/>
+ <point x="684" y="885"/>
+ <point x="663" y="862"/>
+ <point x="663" y="838" type="curve" smooth="yes"/>
+ <point x="663" y="814"/>
+ <point x="683" y="789"/>
+ <point x="710" y="789" type="curve" smooth="yes"/>
+ <point x="734" y="789"/>
+ <point x="758" y="809"/>
+ </contour>
+ <contour>
+ <point x="601" y="47" type="curve" smooth="yes"/>
+ <point x="601" y="73"/>
+ <point x="579" y="95"/>
+ <point x="553" y="95" type="curve" smooth="yes"/>
+ <point x="527" y="95"/>
+ <point x="506" y="73"/>
+ <point x="506" y="47" type="curve" smooth="yes"/>
+ <point x="506" y="21"/>
+ <point x="527" y="0"/>
+ <point x="553" y="0" type="curve" smooth="yes"/>
+ <point x="579" y="0"/>
+ <point x="601" y="21"/>
+ </contour>
+ <contour>
+ <point x="601" y="868" type="curve" smooth="yes"/>
+ <point x="601" y="894"/>
+ <point x="579" y="916"/>
+ <point x="553" y="916" type="curve" smooth="yes"/>
+ <point x="527" y="916"/>
+ <point x="506" y="894"/>
+ <point x="506" y="868" type="curve" smooth="yes"/>
+ <point x="506" y="842"/>
+ <point x="527" y="821"/>
+ <point x="553" y="821" type="curve" smooth="yes"/>
+ <point x="579" y="821"/>
+ <point x="601" y="842"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocuids.ufo/glyphs/E_qS_gn.glif b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/E_qS_gn.glif
new file mode 100644
index 0000000..9eeb2ef
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/E_qS_gn.glif
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="EqSgn" format="2">
+ <advance width="1200"/>
+ <unicode hex="003D"/>
+ <outline>
+ <contour>
+ <point x="120" y="440" type="line"/>
+ <point x="1080" y="440" type="line"/>
+ <point x="1080" y="650" type="line"/>
+ <point x="120" y="650" type="line"/>
+ </contour>
+ <contour>
+ <point x="120" y="810" type="line"/>
+ <point x="1080" y="810" type="line"/>
+ <point x="1080" y="1020" type="line"/>
+ <point x="120" y="1020" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocuids.ufo/glyphs/E_xclamationM_rk.glif b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/E_xclamationM_rk.glif
new file mode 100644
index 0000000..cfdf1a6
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/E_xclamationM_rk.glif
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="ExclamationMrk" format="2">
+ <advance width="780"/>
+ <unicode hex="0021"/>
+ <outline>
+ <contour>
+ <point x="530" y="500" type="line"/>
+ <point x="536" y="790"/>
+ <point x="531" y="1076"/>
+ <point x="570" y="1510" type="curve"/>
+ <point x="235" y="1510" type="line"/>
+ <point x="273" y="1076"/>
+ <point x="268" y="790"/>
+ <point x="275" y="500" type="curve"/>
+ </contour>
+ <contour>
+ <point x="230" y="150" type="curve" smooth="yes"/>
+ <point x="230" y="46"/>
+ <point x="304" y="-25"/>
+ <point x="405" y="-25" type="curve" smooth="yes"/>
+ <point x="507" y="-25"/>
+ <point x="580" y="46"/>
+ <point x="580" y="150" type="curve" smooth="yes"/>
+ <point x="580" y="252"/>
+ <point x="507" y="325"/>
+ <point x="405" y="325" type="curve" smooth="yes"/>
+ <point x="304" y="325"/>
+ <point x="230" y="252"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocuids.ufo/glyphs/F_ullS_top.glif b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/F_ullS_top.glif
new file mode 100644
index 0000000..b05d598
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/F_ullS_top.glif
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="FullStop" format="2">
+ <advance width="710"/>
+ <unicode hex="002E"/>
+ <outline>
+ <contour>
+ <point x="200" y="150" type="curve" smooth="yes"/>
+ <point x="200" y="46"/>
+ <point x="274" y="-25"/>
+ <point x="375" y="-25" type="curve" smooth="yes"/>
+ <point x="477" y="-25"/>
+ <point x="550" y="46"/>
+ <point x="550" y="150" type="curve" smooth="yes"/>
+ <point x="550" y="252"/>
+ <point x="477" y="325"/>
+ <point x="375" y="325" type="curve" smooth="yes"/>
+ <point x="274" y="325"/>
+ <point x="200" y="252"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocuids.ufo/glyphs/G_T_S_gn.glif b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/G_T_S_gn.glif
new file mode 100644
index 0000000..650e4d2
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/G_T_S_gn.glif
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="GTSgn" format="2">
+ <advance width="1200"/>
+ <unicode hex="003E"/>
+ <outline>
+ <contour>
+ <point x="130" y="245" type="line"/>
+ <point x="1090" y="635" type="line"/>
+ <point x="1090" y="825" type="line"/>
+ <point x="130" y="1215" type="line"/>
+ <point x="130" y="985" type="line"/>
+ <point x="810" y="730" type="line"/>
+ <point x="130" y="475" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocuids.ufo/glyphs/G_raveA_ccent.glif b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/G_raveA_ccent.glif
new file mode 100644
index 0000000..83a5f21
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/G_raveA_ccent.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="GraveAccent" format="2">
+ <advance width="640"/>
+ <unicode hex="0060"/>
+ <anchor x="500" y="1635" name="U"/>
+ <outline>
+ <contour>
+ <point x="0" y="1600" type="line"/>
+ <point x="400" y="1200" type="line"/>
+ <point x="640" y="1200" type="line"/>
+ <point x="350" y="1600" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocuids.ufo/glyphs/H_yphen.glif b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/H_yphen.glif
new file mode 100644
index 0000000..d79c70a
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/H_yphen.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Hyphen" format="2">
+ <advance width="880"/>
+ <unicode hex="2010"/>
+ <anchor x="440" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="70" y="525" type="line"/>
+ <point x="810" y="525" type="line"/>
+ <point x="810" y="735" type="line"/>
+ <point x="70" y="735" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocuids.ufo/glyphs/H_yphenM_inus.glif b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/H_yphenM_inus.glif
new file mode 100644
index 0000000..b88bdd4
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/H_yphenM_inus.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="HyphenMinus" format="2">
+ <advance width="895"/>
+ <unicode hex="002D"/>
+ <anchor x="450" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="80" y="525" type="line"/>
+ <point x="815" y="525" type="line"/>
+ <point x="815" y="735" type="line"/>
+ <point x="80" y="735" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocuids.ufo/glyphs/H_yphen_S_oft.glif b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/H_yphen_S_oft.glif
new file mode 100644
index 0000000..916f8cf
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/H_yphen_S_oft.glif
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Hyphen_Soft" format="2">
+ <advance width="895"/>
+ <unicode hex="00AD"/>
+ <anchor x="450" y="1100" name="U"/>
+ <outline>
+ <component base="HyphenMinus"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_T_S_gn.glif b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_T_S_gn.glif
new file mode 100644
index 0000000..ab92cf3
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_T_S_gn.glif
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LTSgn" format="2">
+ <advance width="1200"/>
+ <unicode hex="003C"/>
+ <outline>
+ <contour>
+ <point x="1070" y="475" type="line"/>
+ <point x="390" y="730" type="line"/>
+ <point x="1070" y="985" type="line"/>
+ <point x="1070" y="1215" type="line"/>
+ <point x="110" y="825" type="line"/>
+ <point x="110" y="635" type="line"/>
+ <point x="1070" y="245" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_ftC_urlyB_rac.glif b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_ftC_urlyB_rac.glif
new file mode 100644
index 0000000..2370b56
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_ftC_urlyB_rac.glif
@@ -0,0 +1,47 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LftCurlyBrac" format="2">
+ <advance width="1040"/>
+ <unicode hex="007B"/>
+ <outline>
+ <contour>
+ <point x="895" y="-179" type="line"/>
+ <point x="828" y="-160"/>
+ <point x="704" y="-122"/>
+ <point x="685" y="-100" type="curve" smooth="yes"/>
+ <point x="650" y="-60"/>
+ <point x="663" y="411"/>
+ <point x="645" y="445" type="curve" smooth="yes"/>
+ <point x="621" y="491"/>
+ <point x="483" y="580"/>
+ <point x="483" y="615" type="curve" smooth="yes"/>
+ <point x="483" y="650"/>
+ <point x="620" y="740"/>
+ <point x="643" y="785" type="curve" smooth="yes"/>
+ <point x="661" y="820"/>
+ <point x="650" y="1289"/>
+ <point x="685" y="1330" type="curve" smooth="yes"/>
+ <point x="702" y="1351"/>
+ <point x="807" y="1390"/>
+ <point x="870" y="1409" type="curve"/>
+ <point x="820" y="1640" type="line"/>
+ <point x="692" y="1613"/>
+ <point x="502" y="1562"/>
+ <point x="455" y="1515" type="curve" smooth="yes"/>
+ <point x="381" y="1442"/>
+ <point x="392" y="852"/>
+ <point x="370" y="820" type="curve" smooth="yes"/>
+ <point x="340" y="777"/>
+ <point x="170" y="670"/>
+ <point x="170" y="615" type="curve" smooth="yes"/>
+ <point x="170" y="560"/>
+ <point x="340" y="453"/>
+ <point x="370" y="410" type="curve" smooth="yes"/>
+ <point x="392" y="378"/>
+ <point x="380" y="-213"/>
+ <point x="455" y="-285" type="curve" smooth="yes"/>
+ <point x="505" y="-333"/>
+ <point x="709" y="-383"/>
+ <point x="845" y="-410" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_ftP_aren.glif b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_ftP_aren.glif
new file mode 100644
index 0000000..99e1982
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_ftP_aren.glif
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LftParen" format="2">
+ <advance width="860"/>
+ <unicode hex="0028"/>
+ <outline>
+ <contour>
+ <point x="555" y="1640" type="line"/>
+ <point x="290" y="1444"/>
+ <point x="115" y="1062"/>
+ <point x="115" y="625" type="curve" smooth="yes"/>
+ <point x="115" y="218"/>
+ <point x="260" y="-125"/>
+ <point x="535" y="-410" type="curve"/>
+ <point x="686" y="-240" type="line"/>
+ <point x="462" y="11"/>
+ <point x="376" y="335"/>
+ <point x="376" y="635" type="curve" smooth="yes"/>
+ <point x="376" y="938"/>
+ <point x="466" y="1261"/>
+ <point x="676" y="1455" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_ftS_qrB_rac.glif b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_ftS_qrB_rac.glif
new file mode 100644
index 0000000..dcf019b
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_ftS_qrB_rac.glif
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LftSqrBrac" format="2">
+ <advance width="850"/>
+ <unicode hex="005B"/>
+ <outline>
+ <contour>
+ <point x="710" y="-410" type="line"/>
+ <point x="710" y="-200" type="line"/>
+ <point x="470" y="-200" type="line"/>
+ <point x="470" y="1390" type="line"/>
+ <point x="710" y="1390" type="line"/>
+ <point x="710" y="1600" type="line"/>
+ <point x="190" y="1600" type="line"/>
+ <point x="190" y="-410" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_owL_ine.glif b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_owL_ine.glif
new file mode 100644
index 0000000..225c4ce
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_owL_ine.glif
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LowLine" format="2">
+ <advance width="1274"/>
+ <unicode hex="005F"/>
+ <outline>
+ <contour>
+ <point x="0" y="-350" type="line"/>
+ <point x="1274" y="-350" type="line"/>
+ <point x="1274" y="-140" type="line"/>
+ <point x="0" y="-140" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnC_apA_.alt.glif b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnC_apA_.alt.glif
new file mode 100644
index 0000000..cf1b900
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnC_apA_.alt.glif
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapA.alt" format="2">
+ <advance width="1485"/>
+ <anchor x="1275" y="0" name="H"/>
+ <anchor x="732" y="-100" name="L"/>
+ <anchor x="1495" y="0" name="O"/>
+ <anchor x="732" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1115" y="0" type="line"/>
+ <point x="1408" y="0" type="line"/>
+ <point x="1373" y="80"/>
+ <point x="1341" y="168"/>
+ <point x="1278" y="355" type="curve" smooth="yes"/>
+ <point x="908" y="1460" type="line"/>
+ <point x="552" y="1460" type="line"/>
+ <point x="182" y="355" type="line" smooth="yes"/>
+ <point x="119" y="166"/>
+ <point x="88" y="81"/>
+ <point x="52" y="0" type="curve"/>
+ <point x="350" y="0" type="line"/>
+ <point x="460" y="355" type="line"/>
+ <point x="1004" y="355" type="line"/>
+ </contour>
+ <contour>
+ <point x="730" y="1228" type="line"/>
+ <point x="936" y="570" type="line"/>
+ <point x="526" y="570" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnC_apA_.glif b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnC_apA_.glif
new file mode 100644
index 0000000..9fa1f45
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnC_apA_.glif
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapA" format="2">
+ <advance width="1485"/>
+ <unicode hex="0041"/>
+ <anchor x="1275" y="0" name="H"/>
+ <anchor x="732" y="-100" name="L"/>
+ <anchor x="1495" y="0" name="O"/>
+ <anchor x="732" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1115" y="0" type="line"/>
+ <point x="1408" y="0" type="line"/>
+ <point x="1373" y="80"/>
+ <point x="1341" y="168"/>
+ <point x="1278" y="355" type="curve" smooth="yes"/>
+ <point x="908" y="1460" type="line"/>
+ <point x="552" y="1460" type="line"/>
+ <point x="182" y="355" type="line" smooth="yes"/>
+ <point x="119" y="166"/>
+ <point x="88" y="81"/>
+ <point x="52" y="0" type="curve"/>
+ <point x="350" y="0" type="line"/>
+ <point x="460" y="355" type="line"/>
+ <point x="1004" y="355" type="line"/>
+ </contour>
+ <contour>
+ <point x="730" y="1228" type="line"/>
+ <point x="936" y="570" type="line"/>
+ <point x="526" y="570" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnC_apA_D_iaer.glif b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnC_apA_D_iaer.glif
new file mode 100644
index 0000000..79101d0
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnC_apA_D_iaer.glif
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapADiaer" format="2">
+ <advance width="1485"/>
+ <unicode hex="00C4"/>
+ <anchor x="1275" y="0" name="H"/>
+ <anchor x="732" y="-100" name="L"/>
+ <anchor x="1495" y="0" name="O"/>
+ <anchor x="732" y="2015" name="U"/>
+ <outline>
+ <component base="LtnCapA"/>
+ <component base="CombDiaer" xOffset="1312" yOffset="430"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnC_apB_.glif b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnC_apB_.glif
new file mode 100644
index 0000000..df49e47
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnC_apB_.glif
@@ -0,0 +1,62 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapB" format="2">
+ <advance width="1385"/>
+ <unicode hex="0042"/>
+ <anchor x="670" y="-100" name="L"/>
+ <anchor x="670" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="450" y="1248" type="line"/>
+ <point x="487" y="1250"/>
+ <point x="562" y="1253"/>
+ <point x="631" y="1253" type="curve" smooth="yes"/>
+ <point x="818" y="1253"/>
+ <point x="897" y="1196"/>
+ <point x="897" y="1077" type="curve" smooth="yes"/>
+ <point x="897" y="951"/>
+ <point x="794" y="875"/>
+ <point x="605" y="875" type="curve" smooth="yes"/>
+ <point x="450" y="875" type="line"/>
+ </contour>
+ <contour>
+ <point x="1245" y="430" type="curve" smooth="yes"/>
+ <point x="1245" y="672"/>
+ <point x="1084" y="760"/>
+ <point x="935" y="800" type="curve"/>
+ <point x="1065" y="850"/>
+ <point x="1170" y="947"/>
+ <point x="1170" y="1110" type="curve" smooth="yes"/>
+ <point x="1170" y="1378"/>
+ <point x="937" y="1470"/>
+ <point x="615" y="1470" type="curve" smooth="yes"/>
+ <point x="422" y="1470"/>
+ <point x="248" y="1466"/>
+ <point x="150" y="1460" type="curve"/>
+ <point x="165" y="1380"/>
+ <point x="165" y="1196"/>
+ <point x="165" y="1000" type="curve" smooth="yes"/>
+ <point x="165" y="455" type="line" smooth="yes"/>
+ <point x="165" y="257"/>
+ <point x="165" y="80"/>
+ <point x="150" y="0" type="curve"/>
+ <point x="150" y="0"/>
+ <point x="401" y="-10"/>
+ <point x="631" y="-10" type="curve" smooth="yes"/>
+ <point x="1055" y="-10"/>
+ <point x="1245" y="181"/>
+ </contour>
+ <contour>
+ <point x="450" y="658" type="line"/>
+ <point x="643" y="658" type="line" smooth="yes"/>
+ <point x="853" y="658"/>
+ <point x="972" y="587"/>
+ <point x="972" y="450" type="curve" smooth="yes"/>
+ <point x="972" y="269"/>
+ <point x="826" y="215"/>
+ <point x="652" y="215" type="curve" smooth="yes"/>
+ <point x="552" y="215"/>
+ <point x="483" y="218"/>
+ <point x="450" y="220" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnC_apC_.glif b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnC_apC_.glif
new file mode 100644
index 0000000..78c5238
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnC_apC_.glif
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapC" format="2">
+ <advance width="1385"/>
+ <unicode hex="0043"/>
+ <anchor x="745" y="0" name="H"/>
+ <anchor x="745" y="-100" name="L"/>
+ <anchor x="745" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1215" y="405" type="line"/>
+ <point x="1105" y="293"/>
+ <point x="940" y="220"/>
+ <point x="790" y="220" type="curve" smooth="yes"/>
+ <point x="531" y="220"/>
+ <point x="375" y="413"/>
+ <point x="375" y="735" type="curve" smooth="yes"/>
+ <point x="375" y="1074"/>
+ <point x="557" y="1245"/>
+ <point x="800" y="1245" type="curve" smooth="yes"/>
+ <point x="931" y="1245"/>
+ <point x="1053" y="1205"/>
+ <point x="1180" y="1105" type="curve"/>
+ <point x="1250" y="1345" type="line"/>
+ <point x="1106" y="1449"/>
+ <point x="969" y="1485"/>
+ <point x="785" y="1485" type="curve" smooth="yes"/>
+ <point x="413" y="1485"/>
+ <point x="90" y="1225"/>
+ <point x="90" y="710" type="curve" smooth="yes"/>
+ <point x="90" y="260"/>
+ <point x="341" y="-25"/>
+ <point x="755" y="-25" type="curve" smooth="yes"/>
+ <point x="926" y="-25"/>
+ <point x="1142" y="42"/>
+ <point x="1265" y="140" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnC_apD_.glif b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnC_apD_.glif
new file mode 100644
index 0000000..4dd3b9c
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnC_apD_.glif
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapD" format="2">
+ <advance width="1485"/>
+ <unicode hex="0044"/>
+ <anchor x="800" y="-100" name="L"/>
+ <anchor x="800" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="165" y="455" type="line"/>
+ <point x="164" y="257"/>
+ <point x="165" y="80"/>
+ <point x="150" y="0" type="curve"/>
+ <point x="150" y="0"/>
+ <point x="474" y="-10"/>
+ <point x="609" y="-10" type="curve" smooth="yes"/>
+ <point x="919" y="-10"/>
+ <point x="1370" y="145"/>
+ <point x="1370" y="740" type="curve" smooth="yes"/>
+ <point x="1370" y="1374"/>
+ <point x="906" y="1470"/>
+ <point x="630" y="1470" type="curve" smooth="yes"/>
+ <point x="487" y="1470"/>
+ <point x="239" y="1466"/>
+ <point x="150" y="1460" type="curve"/>
+ <point x="165" y="1380"/>
+ <point x="165" y="1196"/>
+ <point x="165" y="1000" type="curve" smooth="yes"/>
+ </contour>
+ <contour>
+ <point x="450" y="1241" type="line"/>
+ <point x="492" y="1243"/>
+ <point x="582" y="1246"/>
+ <point x="637" y="1246" type="curve" smooth="yes"/>
+ <point x="897" y="1246"/>
+ <point x="1078" y="1118"/>
+ <point x="1078" y="720" type="curve" smooth="yes"/>
+ <point x="1078" y="357"/>
+ <point x="856" y="221"/>
+ <point x="633" y="221" type="curve" smooth="yes"/>
+ <point x="554" y="221"/>
+ <point x="489" y="227"/>
+ <point x="450" y="231" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnC_apE_.glif b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnC_apE_.glif
new file mode 100644
index 0000000..9572dfd
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnC_apE_.glif
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapE" format="2">
+ <advance width="1212"/>
+ <unicode hex="0045"/>
+ <anchor x="610" y="0" name="H"/>
+ <anchor x="610" y="-100" name="L"/>
+ <anchor x="1004" y="0" name="O"/>
+ <anchor x="1247" y="1200" name="R"/>
+ <anchor x="610" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="450" y="875" type="line"/>
+ <point x="450" y="1230" type="line"/>
+ <point x="1072" y="1230" type="line"/>
+ <point x="1072" y="1460" type="line"/>
+ <point x="150" y="1460" type="line"/>
+ <point x="165" y="1380"/>
+ <point x="165" y="1222"/>
+ <point x="165" y="1025" type="curve" smooth="yes"/>
+ <point x="165" y="435" type="line" smooth="yes"/>
+ <point x="165" y="238"/>
+ <point x="165" y="80"/>
+ <point x="150" y="0" type="curve"/>
+ <point x="1102" y="0" type="line"/>
+ <point x="1102" y="245" type="line"/>
+ <point x="1024" y="231"/>
+ <point x="899" y="230"/>
+ <point x="708" y="230" type="curve" smooth="yes"/>
+ <point x="450" y="230" type="line"/>
+ <point x="450" y="650" type="line"/>
+ <point x="997" y="650" type="line"/>
+ <point x="997" y="875" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnC_apF_.glif b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnC_apF_.glif
new file mode 100644
index 0000000..9f4f14b
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnC_apF_.glif
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapF" format="2">
+ <advance width="1200"/>
+ <unicode hex="0046"/>
+ <anchor x="630" y="-100" name="L"/>
+ <anchor x="630" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="450" y="860" type="line"/>
+ <point x="450" y="1230" type="line"/>
+ <point x="1090" y="1230" type="line"/>
+ <point x="1090" y="1460" type="line"/>
+ <point x="150" y="1460" type="line"/>
+ <point x="165" y="1380"/>
+ <point x="165" y="1217"/>
+ <point x="165" y="1020" type="curve" smooth="yes"/>
+ <point x="165" y="435" type="line" smooth="yes"/>
+ <point x="165" y="238"/>
+ <point x="165" y="80"/>
+ <point x="150" y="0" type="curve"/>
+ <point x="465" y="0" type="line"/>
+ <point x="450" y="73"/>
+ <point x="450" y="222"/>
+ <point x="450" y="408" type="curve" smooth="yes"/>
+ <point x="450" y="635" type="line"/>
+ <point x="1005" y="635" type="line"/>
+ <point x="1005" y="860" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnC_apG_.glif b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnC_apG_.glif
new file mode 100644
index 0000000..8358b8a
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnC_apG_.glif
@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapG" format="2">
+ <advance width="1472"/>
+ <unicode hex="0047"/>
+ <anchor x="807" y="0" name="H"/>
+ <anchor x="807" y="-100" name="L"/>
+ <anchor x="807" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1337" y="785" type="line"/>
+ <point x="767" y="785" type="line"/>
+ <point x="767" y="560" type="line"/>
+ <point x="1082" y="560" type="line"/>
+ <point x="1082" y="294" type="line"/>
+ <point x="966" y="236"/>
+ <point x="883" y="220"/>
+ <point x="769" y="220" type="curve" smooth="yes"/>
+ <point x="532" y="220"/>
+ <point x="375" y="420"/>
+ <point x="375" y="745" type="curve" smooth="yes"/>
+ <point x="375" y="1048"/>
+ <point x="545" y="1245"/>
+ <point x="810" y="1245" type="curve" smooth="yes"/>
+ <point x="953" y="1245"/>
+ <point x="1097" y="1205"/>
+ <point x="1236" y="1107" type="curve"/>
+ <point x="1322" y="1345" type="line"/>
+ <point x="1137" y="1462"/>
+ <point x="989" y="1485"/>
+ <point x="818" y="1485" type="curve" smooth="yes"/>
+ <point x="403" y="1485"/>
+ <point x="90" y="1199"/>
+ <point x="90" y="720" type="curve" smooth="yes"/>
+ <point x="90" y="241"/>
+ <point x="377" y="-25"/>
+ <point x="777" y="-25" type="curve" smooth="yes"/>
+ <point x="960" y="-25"/>
+ <point x="1120" y="11"/>
+ <point x="1337" y="155" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnC_apH_.glif b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnC_apH_.glif
new file mode 100644
index 0000000..2e2e5e6
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnC_apH_.glif
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapH" format="2">
+ <advance width="1515"/>
+ <unicode hex="0048"/>
+ <anchor x="305" y="0" name="H"/>
+ <anchor x="745" y="-100" name="L"/>
+ <anchor x="745" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1040" y="1460" type="line"/>
+ <point x="1040" y="860" type="line"/>
+ <point x="450" y="860" type="line"/>
+ <point x="450" y="1460" type="line"/>
+ <point x="150" y="1460" type="line"/>
+ <point x="165" y="1380"/>
+ <point x="165" y="1227"/>
+ <point x="165" y="1030" type="curve" smooth="yes"/>
+ <point x="165" y="430" type="line" smooth="yes"/>
+ <point x="165" y="233"/>
+ <point x="165" y="80"/>
+ <point x="150" y="0" type="curve"/>
+ <point x="150" y="0"/>
+ <point x="450" y="0"/>
+ <point x="450" y="0" type="curve"/>
+ <point x="450" y="635" type="line"/>
+ <point x="1040" y="635" type="line"/>
+ <point x="1040" y="0" type="line"/>
+ <point x="1040" y="0"/>
+ <point x="1340" y="0"/>
+ <point x="1340" y="0" type="curve"/>
+ <point x="1325" y="80"/>
+ <point x="1325" y="233"/>
+ <point x="1325" y="430" type="curve" smooth="yes"/>
+ <point x="1325" y="1030" type="line" smooth="yes"/>
+ <point x="1325" y="1227"/>
+ <point x="1325" y="1380"/>
+ <point x="1340" y="1460" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnC_apI_.glif b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnC_apI_.glif
new file mode 100644
index 0000000..388486b
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnC_apI_.glif
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapI" format="2">
+ <advance width="1045"/>
+ <unicode hex="0049"/>
+ <anchor x="520" y="0" name="H"/>
+ <anchor x="516" y="-100" name="L"/>
+ <anchor x="712" y="0" name="O"/>
+ <anchor x="1014" y="1200" name="R"/>
+ <anchor x="520" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="130" y="1460" type="line"/>
+ <point x="130" y="1255" type="line"/>
+ <point x="370" y="1255" type="line"/>
+ <point x="370" y="205" type="line"/>
+ <point x="130" y="205" type="line"/>
+ <point x="130" y="0" type="line"/>
+ <point x="895" y="0" type="line"/>
+ <point x="895" y="205" type="line"/>
+ <point x="655" y="205" type="line"/>
+ <point x="655" y="1255" type="line"/>
+ <point x="895" y="1255" type="line"/>
+ <point x="895" y="1460" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnC_apJ_.glif b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnC_apJ_.glif
new file mode 100644
index 0000000..8ee9ce3
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnC_apJ_.glif
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapJ" format="2">
+ <advance width="1030"/>
+ <unicode hex="004A"/>
+ <anchor x="415" y="-100" name="L"/>
+ <anchor x="705" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="555" y="1460" type="line"/>
+ <point x="568" y="1354"/>
+ <point x="570" y="1175"/>
+ <point x="570" y="980" type="curve" smooth="yes"/>
+ <point x="570" y="558" type="line" smooth="yes"/>
+ <point x="570" y="383"/>
+ <point x="540" y="227"/>
+ <point x="365" y="227" type="curve" smooth="yes"/>
+ <point x="264" y="227"/>
+ <point x="153" y="270"/>
+ <point x="79" y="347" type="curve"/>
+ <point x="30" y="90" type="line"/>
+ <point x="109" y="9"/>
+ <point x="258" y="-25"/>
+ <point x="363" y="-25" type="curve" smooth="yes"/>
+ <point x="658" y="-25"/>
+ <point x="855" y="129"/>
+ <point x="855" y="535" type="curve" smooth="yes"/>
+ <point x="855" y="618"/>
+ <point x="855" y="1460"/>
+ <point x="855" y="1460" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnC_apK_.glif b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnC_apK_.glif
new file mode 100644
index 0000000..abb6ff7
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnC_apK_.glif
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapK" format="2">
+ <advance width="1430"/>
+ <unicode hex="004B"/>
+ <anchor x="320" y="0" name="H"/>
+ <anchor x="740" y="-100" name="L"/>
+ <anchor x="725" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="944" y="1460" type="line"/>
+ <point x="371" y="732" type="line"/>
+ <point x="579" y="676" type="line"/>
+ <point x="1280" y="1460" type="line"/>
+ </contour>
+ <contour>
+ <point x="389" y="731" type="line"/>
+ <point x="990" y="0" type="line"/>
+ <point x="1360" y="0" type="line"/>
+ <point x="614" y="829" type="line"/>
+ </contour>
+ <contour>
+ <point x="450" y="1460" type="line"/>
+ <point x="150" y="1460" type="line"/>
+ <point x="165" y="1380"/>
+ <point x="165" y="1222"/>
+ <point x="165" y="1025" type="curve" smooth="yes"/>
+ <point x="165" y="435" type="line" smooth="yes"/>
+ <point x="165" y="238"/>
+ <point x="165" y="80"/>
+ <point x="150" y="0" type="curve"/>
+ <point x="450" y="0" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnC_apL_.glif b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnC_apL_.glif
new file mode 100644
index 0000000..e1c1e2e
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnC_apL_.glif
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapL" format="2">
+ <advance width="1130"/>
+ <unicode hex="004C"/>
+ <anchor x="620" y="0" name="H"/>
+ <anchor x="620" y="-100" name="L"/>
+ <anchor x="650" y="1200" name="R"/>
+ <anchor x="620" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="450" y="230" type="line"/>
+ <point x="450" y="1460" type="line"/>
+ <point x="150" y="1460" type="line"/>
+ <point x="165" y="1380"/>
+ <point x="165" y="1222"/>
+ <point x="165" y="1025" type="curve" smooth="yes"/>
+ <point x="165" y="435" type="line" smooth="yes"/>
+ <point x="165" y="238"/>
+ <point x="165" y="80"/>
+ <point x="150" y="0" type="curve"/>
+ <point x="1085" y="0" type="line"/>
+ <point x="1085" y="245" type="line"/>
+ <point x="1008" y="231"/>
+ <point x="855" y="230"/>
+ <point x="666" y="230" type="curve" smooth="yes"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnC_apM_.glif b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnC_apM_.glif
new file mode 100644
index 0000000..8da241e
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnC_apM_.glif
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapM" format="2">
+ <advance width="1855"/>
+ <unicode hex="004D"/>
+ <anchor x="915" y="-100" name="L"/>
+ <anchor x="915" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="917" y="275" type="line"/>
+ <point x="575" y="1460" type="line"/>
+ <point x="315" y="1460" type="line"/>
+ <point x="436" y="1170" type="line"/>
+ <point x="770" y="0" type="line"/>
+ <point x="1065" y="0" type="line"/>
+ <point x="1397" y="1170" type="line"/>
+ <point x="1517" y="1460" type="line"/>
+ <point x="1260" y="1460" type="line"/>
+ </contour>
+ <contour>
+ <point x="220" y="1460" type="line"/>
+ <point x="220" y="1460"/>
+ <point x="176" y="198"/>
+ <point x="150" y="0" type="curve"/>
+ <point x="420" y="0" type="line"/>
+ <point x="449" y="1205" type="line"/>
+ <point x="485" y="1460" type="line"/>
+ </contour>
+ <contour>
+ <point x="1680" y="0" type="line"/>
+ <point x="1651" y="198"/>
+ <point x="1610" y="1460"/>
+ <point x="1610" y="1460" type="curve"/>
+ <point x="1340" y="1460" type="line"/>
+ <point x="1385" y="1205" type="line"/>
+ <point x="1410" y="0" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnC_apN_.glif b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnC_apN_.glif
new file mode 100644
index 0000000..aa2b5c4
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnC_apN_.glif
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapN" format="2">
+ <advance width="1545"/>
+ <unicode hex="004E"/>
+ <anchor x="1240" y="0" name="H"/>
+ <anchor x="765" y="-100" name="L"/>
+ <anchor x="765" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="223" y="1310" type="line"/>
+ <point x="1095" y="0" type="line"/>
+ <point x="1297" y="150" type="line"/>
+ <point x="425" y="1460" type="line"/>
+ </contour>
+ <contour>
+ <point x="1095" y="0" type="line"/>
+ <point x="1355" y="0" type="line"/>
+ <point x="1355" y="1025" type="line" smooth="yes"/>
+ <point x="1355" y="1222"/>
+ <point x="1356" y="1380"/>
+ <point x="1370" y="1460" type="curve"/>
+ <point x="1095" y="1460" type="line"/>
+ </contour>
+ <contour>
+ <point x="425" y="1460" type="line"/>
+ <point x="150" y="1460" type="line"/>
+ <point x="165" y="1380"/>
+ <point x="165" y="1222"/>
+ <point x="165" y="1025" type="curve" smooth="yes"/>
+ <point x="165" y="435" type="line" smooth="yes"/>
+ <point x="165" y="238"/>
+ <point x="165" y="80"/>
+ <point x="150" y="0" type="curve"/>
+ <point x="425" y="0" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnC_apO_.glif b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnC_apO_.glif
new file mode 100644
index 0000000..10479ad
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnC_apO_.glif
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapO" format="2">
+ <advance width="1500"/>
+ <unicode hex="004F"/>
+ <anchor x="740" y="0" name="H"/>
+ <anchor x="740" y="-100" name="L"/>
+ <anchor x="976" y="0" name="O"/>
+ <anchor x="1480" y="1200" name="R"/>
+ <anchor x="740" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1100" y="715" type="curve" smooth="yes"/>
+ <point x="1100" y="404"/>
+ <point x="940" y="220"/>
+ <point x="740" y="220" type="curve" smooth="yes"/>
+ <point x="524" y="220"/>
+ <point x="375" y="423"/>
+ <point x="375" y="745" type="curve" smooth="yes"/>
+ <point x="375" y="1048"/>
+ <point x="529" y="1240"/>
+ <point x="740" y="1240" type="curve" smooth="yes"/>
+ <point x="951" y="1240"/>
+ <point x="1100" y="1041"/>
+ </contour>
+ <contour>
+ <point x="1385" y="740" type="curve" smooth="yes"/>
+ <point x="1385" y="1219"/>
+ <point x="1091" y="1485"/>
+ <point x="750" y="1485" type="curve" smooth="yes"/>
+ <point x="404" y="1485"/>
+ <point x="90" y="1199"/>
+ <point x="90" y="720" type="curve" smooth="yes"/>
+ <point x="90" y="241"/>
+ <point x="385" y="-25"/>
+ <point x="730" y="-25" type="curve" smooth="yes"/>
+ <point x="1072" y="-25"/>
+ <point x="1385" y="260"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnC_apP_.glif b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnC_apP_.glif
new file mode 100644
index 0000000..18e9ee0
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnC_apP_.glif
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapP" format="2">
+ <advance width="1275"/>
+ <unicode hex="0050"/>
+ <anchor x="685" y="-100" name="L"/>
+ <anchor x="685" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="450" y="523" type="line"/>
+ <point x="515" y="516"/>
+ <point x="575" y="513"/>
+ <point x="648" y="513" type="curve" smooth="yes"/>
+ <point x="977" y="513"/>
+ <point x="1200" y="702"/>
+ <point x="1200" y="1010" type="curve" smooth="yes"/>
+ <point x="1200" y="1316"/>
+ <point x="981" y="1470"/>
+ <point x="658" y="1470" type="curve" smooth="yes"/>
+ <point x="445" y="1470"/>
+ <point x="150" y="1460"/>
+ <point x="150" y="1460" type="curve"/>
+ <point x="165" y="1380"/>
+ <point x="165" y="1196"/>
+ <point x="165" y="1000" type="curve" smooth="yes"/>
+ <point x="165" y="435" type="line" smooth="yes"/>
+ <point x="165" y="238"/>
+ <point x="165" y="80"/>
+ <point x="150" y="0" type="curve"/>
+ <point x="465" y="0" type="line"/>
+ <point x="451" y="78"/>
+ <point x="450" y="237"/>
+ <point x="450" y="435" type="curve" smooth="yes"/>
+ </contour>
+ <contour>
+ <point x="450" y="1240" type="line"/>
+ <point x="506" y="1243"/>
+ <point x="544" y="1245"/>
+ <point x="622" y="1245" type="curve" smooth="yes"/>
+ <point x="833" y="1245"/>
+ <point x="915" y="1145"/>
+ <point x="915" y="1000" type="curve" smooth="yes"/>
+ <point x="915" y="820"/>
+ <point x="811" y="730"/>
+ <point x="618" y="730" type="curve" smooth="yes"/>
+ <point x="556" y="730"/>
+ <point x="493" y="733"/>
+ <point x="450" y="740" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnC_apQ_.glif b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnC_apQ_.glif
new file mode 100644
index 0000000..433087c
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnC_apQ_.glif
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapQ" format="2">
+ <advance width="1545"/>
+ <unicode hex="0051"/>
+ <anchor x="747" y="-270" name="L"/>
+ <anchor x="747" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1385" y="740" type="curve" smooth="yes"/>
+ <point x="1385" y="1219"/>
+ <point x="1091" y="1485"/>
+ <point x="750" y="1485" type="curve" smooth="yes"/>
+ <point x="404" y="1485"/>
+ <point x="90" y="1199"/>
+ <point x="90" y="720" type="curve" smooth="yes"/>
+ <point x="90" y="241"/>
+ <point x="385" y="-25"/>
+ <point x="730" y="-25" type="curve" smooth="yes"/>
+ <point x="807" y="-25"/>
+ <point x="840" y="-23"/>
+ <point x="889" y="-15" type="curve"/>
+ <point x="958" y="-15"/>
+ <point x="1266" y="-228"/>
+ <point x="1350" y="-228" type="curve" smooth="yes"/>
+ <point x="1424" y="-228"/>
+ <point x="1502" y="-68"/>
+ <point x="1535" y="-15" type="curve"/>
+ <point x="1394" y="1"/>
+ <point x="1277" y="68"/>
+ <point x="1146" y="142" type="curve"/>
+ <point x="1294" y="283"/>
+ <point x="1385" y="471"/>
+ </contour>
+ <contour>
+ <point x="1100" y="715" type="curve" smooth="yes"/>
+ <point x="1100" y="404"/>
+ <point x="943" y="220"/>
+ <point x="740" y="220" type="curve" smooth="yes"/>
+ <point x="524" y="220"/>
+ <point x="375" y="423"/>
+ <point x="375" y="745" type="curve" smooth="yes"/>
+ <point x="375" y="1048"/>
+ <point x="529" y="1240"/>
+ <point x="740" y="1240" type="curve" smooth="yes"/>
+ <point x="951" y="1240"/>
+ <point x="1100" y="1041"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnC_apR_.glif b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnC_apR_.glif
new file mode 100644
index 0000000..6103056
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnC_apR_.glif
@@ -0,0 +1,55 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapR" format="2">
+ <advance width="1380"/>
+ <unicode hex="0052"/>
+ <anchor x="690" y="0" name="H"/>
+ <anchor x="690" y="-100" name="L"/>
+ <anchor x="660" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="450" y="585" type="line"/>
+ <point x="625" y="585" type="line" smooth="yes"/>
+ <point x="910" y="585"/>
+ <point x="1175" y="723"/>
+ <point x="1175" y="1040" type="curve" smooth="yes"/>
+ <point x="1175" y="1329"/>
+ <point x="961" y="1470"/>
+ <point x="650" y="1470" type="curve" smooth="yes"/>
+ <point x="416" y="1470"/>
+ <point x="150" y="1460"/>
+ <point x="150" y="1460" type="curve"/>
+ <point x="165" y="1380"/>
+ <point x="165" y="1196"/>
+ <point x="165" y="1000" type="curve" smooth="yes"/>
+ <point x="165" y="435" type="line" smooth="yes"/>
+ <point x="165" y="238"/>
+ <point x="165" y="80"/>
+ <point x="150" y="0" type="curve"/>
+ <point x="465" y="0" type="line"/>
+ <point x="451" y="78"/>
+ <point x="450" y="238"/>
+ <point x="450" y="435" type="curve" smooth="yes"/>
+ </contour>
+ <contour>
+ <point x="450" y="1240" type="line"/>
+ <point x="503" y="1243"/>
+ <point x="537" y="1245"/>
+ <point x="615" y="1245" type="curve" smooth="yes"/>
+ <point x="792" y="1245"/>
+ <point x="890" y="1186"/>
+ <point x="890" y="1035" type="curve" smooth="yes"/>
+ <point x="890" y="859"/>
+ <point x="780" y="800"/>
+ <point x="605" y="800" type="curve" smooth="yes"/>
+ <point x="450" y="800" type="line"/>
+ </contour>
+ <contour>
+ <point x="556" y="635" type="line"/>
+ <point x="975" y="0" type="line"/>
+ <point x="1330" y="0" type="line"/>
+ <point x="1263" y="73"/>
+ <point x="827" y="687"/>
+ <point x="827" y="687" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnC_apS_.glif b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnC_apS_.glif
new file mode 100644
index 0000000..486ff77
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnC_apS_.glif
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapS" format="2">
+ <advance width="1243"/>
+ <unicode hex="0053"/>
+ <anchor x="616" y="0" name="H"/>
+ <anchor x="616" y="-100" name="L"/>
+ <anchor x="616" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1075" y="1395" type="line"/>
+ <point x="932" y="1458"/>
+ <point x="810" y="1485"/>
+ <point x="640" y="1485" type="curve" smooth="yes"/>
+ <point x="280" y="1485"/>
+ <point x="130" y="1239"/>
+ <point x="130" y="1060" type="curve" smooth="yes"/>
+ <point x="130" y="882"/>
+ <point x="196" y="754"/>
+ <point x="510" y="655" type="curve" smooth="yes"/>
+ <point x="800" y="563"/>
+ <point x="851" y="504"/>
+ <point x="851" y="420" type="curve" smooth="yes"/>
+ <point x="851" y="293"/>
+ <point x="730" y="220"/>
+ <point x="600" y="220" type="curve" smooth="yes"/>
+ <point x="439" y="220"/>
+ <point x="283" y="270"/>
+ <point x="140" y="385" type="curve"/>
+ <point x="90" y="110" type="line"/>
+ <point x="201" y="31"/>
+ <point x="391" y="-25"/>
+ <point x="600" y="-25" type="curve" smooth="yes"/>
+ <point x="895" y="-25"/>
+ <point x="1138" y="169"/>
+ <point x="1138" y="455" type="curve" smooth="yes"/>
+ <point x="1138" y="666"/>
+ <point x="994" y="787"/>
+ <point x="727" y="870" type="curve" smooth="yes"/>
+ <point x="464" y="952"/>
+ <point x="416" y="994"/>
+ <point x="416" y="1080" type="curve" smooth="yes"/>
+ <point x="416" y="1162"/>
+ <point x="506" y="1245"/>
+ <point x="630" y="1245" type="curve" smooth="yes"/>
+ <point x="771" y="1245"/>
+ <point x="873" y="1209"/>
+ <point x="1030" y="1130" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnC_apT_.glif b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnC_apT_.glif
new file mode 100644
index 0000000..5f87c10
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnC_apT_.glif
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapT" format="2">
+ <advance width="1275"/>
+ <unicode hex="0054"/>
+ <anchor x="632" y="0" name="H"/>
+ <anchor x="632" y="-100" name="L"/>
+ <anchor x="632" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="45" y="1460" type="line"/>
+ <point x="45" y="1210" type="line"/>
+ <point x="117" y="1227"/>
+ <point x="196" y="1230"/>
+ <point x="276" y="1230" type="curve" smooth="yes"/>
+ <point x="488" y="1230" type="line"/>
+ <point x="488" y="413" type="line" smooth="yes"/>
+ <point x="488" y="226"/>
+ <point x="485" y="76"/>
+ <point x="468" y="0" type="curve"/>
+ <point x="793" y="0" type="line"/>
+ <point x="776" y="76"/>
+ <point x="773" y="226"/>
+ <point x="773" y="413" type="curve" smooth="yes"/>
+ <point x="773" y="1230" type="line"/>
+ <point x="989" y="1230" type="line" smooth="yes"/>
+ <point x="1070" y="1230"/>
+ <point x="1148" y="1227"/>
+ <point x="1220" y="1210" type="curve"/>
+ <point x="1220" y="1460" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnC_apU_.glif b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnC_apU_.glif
new file mode 100644
index 0000000..343e0f2
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnC_apU_.glif
@@ -0,0 +1,46 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapU" format="2">
+ <advance width="1490"/>
+ <unicode hex="0055"/>
+ <anchor x="732" y="0" name="H"/>
+ <anchor x="732" y="-100" name="L"/>
+ <anchor x="950" y="0" name="O"/>
+ <anchor x="1480" y="1200" name="R"/>
+ <anchor x="732" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1015" y="1460" type="line"/>
+ <point x="1015" y="560" type="line" smooth="yes"/>
+ <point x="1015" y="344"/>
+ <point x="952" y="204"/>
+ <point x="735" y="204" type="curve" smooth="yes"/>
+ <point x="513" y="204"/>
+ <point x="450" y="344"/>
+ <point x="450" y="560" type="curve" smooth="yes"/>
+ <point x="450" y="1460" type="line"/>
+ <point x="150" y="1460" type="line"/>
+ <point x="164" y="1380"/>
+ <point x="165" y="1222"/>
+ <point x="165" y="1025" type="curve" smooth="yes"/>
+ <point x="165" y="515" type="line" smooth="yes"/>
+ <point x="165" y="190"/>
+ <point x="356" y="-25"/>
+ <point x="735" y="-25" type="curve" smooth="yes"/>
+ <point x="1110" y="-25"/>
+ <point x="1300" y="190"/>
+ <point x="1300" y="515" type="curve" smooth="yes"/>
+ <point x="1300" y="1025" type="line" smooth="yes"/>
+ <point x="1300" y="1232"/>
+ <point x="1302" y="1380"/>
+ <point x="1315" y="1460" type="curve"/>
+ </contour>
+ </outline>
+ <lib>
+ <dict>
+ <key>org.sil.assocUIDs</key>
+ <array>
+ <string>00fA</string>
+ </array>
+ </dict>
+ </lib>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnC_apV_.glif b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnC_apV_.glif
new file mode 100644
index 0000000..3468784
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnC_apV_.glif
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapV" format="2">
+ <advance width="1465"/>
+ <unicode hex="0056"/>
+ <anchor x="730" y="0" name="H"/>
+ <anchor x="722" y="-100" name="L"/>
+ <anchor x="930" y="0" name="O"/>
+ <anchor x="722" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1115" y="1460" type="line"/>
+ <point x="722" y="260" type="line"/>
+ <point x="330" y="1460" type="line"/>
+ <point x="25" y="1460" type="line"/>
+ <point x="58" y="1378"/>
+ <point x="96" y="1288"/>
+ <point x="165" y="1095" type="curve" smooth="yes"/>
+ <point x="555" y="0" type="line"/>
+ <point x="890" y="0" type="line"/>
+ <point x="1280" y="1095" type="line" smooth="yes"/>
+ <point x="1348" y="1289"/>
+ <point x="1384" y="1378"/>
+ <point x="1420" y="1460" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnC_apW_.glif b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnC_apW_.glif
new file mode 100644
index 0000000..98329a0
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnC_apW_.glif
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapW" format="2">
+ <advance width="2135"/>
+ <unicode hex="0057"/>
+ <anchor x="1052" y="-100" name="L"/>
+ <anchor x="1052" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1490" y="0" type="line"/>
+ <point x="1655" y="0" type="line"/>
+ <point x="1965" y="1095" type="line" smooth="yes"/>
+ <point x="2020" y="1289"/>
+ <point x="2048" y="1378"/>
+ <point x="2080" y="1460" type="curve"/>
+ <point x="1770" y="1460" type="line"/>
+ <point x="1470" y="130" type="line"/>
+ </contour>
+ <contour>
+ <point x="1180" y="1460" type="line"/>
+ <point x="920" y="1460" type="line"/>
+ <point x="995" y="1305" type="line"/>
+ <point x="1340" y="0" type="line"/>
+ <point x="1510" y="0" type="line"/>
+ <point x="1530" y="130" type="line"/>
+ </contour>
+ <contour>
+ <point x="600" y="0" type="line"/>
+ <point x="765" y="0" type="line"/>
+ <point x="1105" y="1305" type="line"/>
+ <point x="1180" y="1460" type="line"/>
+ <point x="920" y="1460" type="line"/>
+ <point x="580" y="130" type="line"/>
+ </contour>
+ <contour>
+ <point x="340" y="1460" type="line"/>
+ <point x="30" y="1460" type="line"/>
+ <point x="61" y="1381"/>
+ <point x="92" y="1286"/>
+ <point x="145" y="1095" type="curve" smooth="yes"/>
+ <point x="450" y="0" type="line"/>
+ <point x="620" y="0" type="line"/>
+ <point x="640" y="130" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnC_apX_.glif b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnC_apX_.glif
new file mode 100644
index 0000000..17126dd
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnC_apX_.glif
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapX" format="2">
+ <advance width="1365"/>
+ <unicode hex="0058"/>
+ <anchor x="670" y="-100" name="L"/>
+ <anchor x="670" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="990" y="0" type="line"/>
+ <point x="1310" y="0" type="line"/>
+ <point x="1249" y="82"/>
+ <point x="1211" y="125"/>
+ <point x="1083" y="336" type="curve" smooth="yes"/>
+ <point x="400" y="1460" type="line"/>
+ <point x="75" y="1460" type="line"/>
+ <point x="139" y="1376"/>
+ <point x="189" y="1317"/>
+ <point x="315" y="1110" type="curve"/>
+ </contour>
+ <contour>
+ <point x="605" y="947" type="line"/>
+ <point x="255" y="340" type="line" smooth="yes"/>
+ <point x="133" y="128"/>
+ <point x="93" y="86"/>
+ <point x="30" y="0" type="curve"/>
+ <point x="350" y="0" type="line"/>
+ <point x="700" y="609" type="line"/>
+ </contour>
+ <contour>
+ <point x="750" y="609" type="line"/>
+ <point x="1040" y="1110" type="line" smooth="yes"/>
+ <point x="1153" y="1306"/>
+ <point x="1211" y="1383"/>
+ <point x="1275" y="1460" type="curve"/>
+ <point x="950" y="1460" type="line"/>
+ <point x="655" y="947" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnC_apY_.glif b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnC_apY_.glif
new file mode 100644
index 0000000..a7a345d
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnC_apY_.glif
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapY" format="2">
+ <advance width="1364"/>
+ <unicode hex="0059"/>
+ <anchor x="672" y="-100" name="L"/>
+ <anchor x="672" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="575" y="560" type="line"/>
+ <point x="782" y="675" type="line"/>
+ <point x="357" y="1460" type="line"/>
+ <point x="25" y="1460" type="line"/>
+ <point x="137" y="1311"/>
+ <point x="203" y="1197"/>
+ <point x="280" y="1065" type="curve" smooth="yes"/>
+ </contour>
+ <contour>
+ <point x="770" y="560" type="line"/>
+ <point x="1069" y="1065" type="line" smooth="yes"/>
+ <point x="1145" y="1195"/>
+ <point x="1201" y="1291"/>
+ <point x="1319" y="1460" type="curve"/>
+ <point x="997" y="1460" type="line"/>
+ <point x="577" y="675" type="line"/>
+ </contour>
+ <contour>
+ <point x="530" y="695" type="line"/>
+ <point x="530" y="435" type="line" smooth="yes"/>
+ <point x="530" y="238"/>
+ <point x="530" y="80"/>
+ <point x="515" y="0" type="curve"/>
+ <point x="830" y="0" type="line"/>
+ <point x="815" y="80"/>
+ <point x="815" y="238"/>
+ <point x="815" y="435" type="curve" smooth="yes"/>
+ <point x="815" y="695" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mA_.glif b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mA_.glif
new file mode 100644
index 0000000..7885750
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mA_.glif
@@ -0,0 +1,76 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmA" format="2">
+ <advance width="1205"/>
+ <unicode hex="0061"/>
+ <note>
+
+
+
+
+ GlyphNote A
+
+
+
+
+ </note>
+ <anchor x="985" y="0" name="H"/>
+ <anchor x="610" y="-100" name="L"/>
+ <anchor x="1185" y="0" name="O"/>
+ <anchor x="1145" y="1000" name="R"/>
+ <anchor x="610" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="1120" y="0" type="line"/>
+ <point x="1078" y="112"/>
+ <point x="1050" y="226"/>
+ <point x="1050" y="370" type="curve"/>
+ <point x="1050" y="760" type="line"/>
+ <point x="1050" y="919"/>
+ <point x="877" y="1040"/>
+ <point x="615" y="1040" type="curve" smooth="yes"/>
+ <point x="446" y="1040"/>
+ <point x="330" y="994"/>
+ <point x="216" y="950" type="curve"/>
+ <point x="210" y="868"/>
+ <point x="207" y="735"/>
+ <point x="206" y="691" type="curve"/>
+ <point x="323" y="773"/>
+ <point x="424" y="816"/>
+ <point x="530" y="816" type="curve" smooth="yes"/>
+ <point x="680" y="816"/>
+ <point x="770" y="785"/>
+ <point x="770" y="710" type="curve" smooth="yes"/>
+ <point x="770" y="660" type="line"/>
+ <point x="729" y="659"/>
+ <point x="569" y="649"/>
+ <point x="500" y="642" type="curve" smooth="yes"/>
+ <point x="191" y="612"/>
+ <point x="100" y="438"/>
+ <point x="100" y="285" type="curve" smooth="yes"/>
+ <point x="100" y="121"/>
+ <point x="245" y="-25"/>
+ <point x="445" y="-25" type="curve" smooth="yes"/>
+ <point x="562" y="-25"/>
+ <point x="688" y="23"/>
+ <point x="800" y="135" type="curve"/>
+ <point x="814" y="79"/>
+ <point x="838" y="28"/>
+ <point x="850" y="0" type="curve"/>
+ </contour>
+ <contour>
+ <point x="770" y="355" type="line"/>
+ <point x="674" y="225"/>
+ <point x="600" y="205"/>
+ <point x="518" y="205" type="curve" smooth="yes"/>
+ <point x="436" y="205"/>
+ <point x="380" y="256"/>
+ <point x="380" y="320" type="curve" smooth="yes"/>
+ <point x="380" y="386"/>
+ <point x="422" y="442"/>
+ <point x="560" y="457" type="curve" smooth="yes"/>
+ <point x="611" y="463"/>
+ <point x="730" y="474"/>
+ <point x="770" y="475" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mA_A_cute.glif b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mA_A_cute.glif
new file mode 100644
index 0000000..f1c66a5
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mA_A_cute.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmAAcute" format="2">
+ <advance width="1205"/>
+ <unicode hex="00E1"/>
+ <anchor x="985" y="0" name="H"/>
+ <anchor x="610" y="-100" name="L"/>
+ <anchor x="1185" y="0" name="O"/>
+ <anchor x="1145" y="1000" name="R"/>
+ <anchor x="550" y="1635" name="U"/>
+ <outline>
+ <component base="LtnSmA"/>
+ <component base="CombAcute" xOffset="1150"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mA_C_ircum.glif b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mA_C_ircum.glif
new file mode 100644
index 0000000..218d694
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mA_C_ircum.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmACircum" format="2">
+ <advance width="1205"/>
+ <unicode hex="00E2"/>
+ <anchor x="985" y="0" name="H"/>
+ <anchor x="610" y="-100" name="L"/>
+ <anchor x="1185" y="0" name="O"/>
+ <anchor x="1145" y="1000" name="R"/>
+ <anchor x="602" y="1635" name="U"/>
+ <outline>
+ <component base="LtnSmA"/>
+ <component base="CombCircum" xOffset="1190"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mA_D_iaer.glif b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mA_D_iaer.glif
new file mode 100644
index 0000000..bb0ea2c
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mA_D_iaer.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmADiaer" format="2">
+ <advance width="1205"/>
+ <unicode hex="00E4"/>
+ <anchor x="985" y="0" name="H"/>
+ <anchor x="610" y="-100" name="L"/>
+ <anchor x="1185" y="0" name="O"/>
+ <anchor x="1145" y="1000" name="R"/>
+ <anchor x="610" y="1585" name="U"/>
+ <outline>
+ <component base="LtnSmA"/>
+ <component base="CombDiaer" xOffset="1190"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mA_G_rave.glif b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mA_G_rave.glif
new file mode 100644
index 0000000..3153364
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mA_G_rave.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmAGrave" format="2">
+ <advance width="1205"/>
+ <unicode hex="00E0"/>
+ <anchor x="985" y="0" name="H"/>
+ <anchor x="610" y="-100" name="L"/>
+ <anchor x="1185" y="0" name="O"/>
+ <anchor x="1145" y="1000" name="R"/>
+ <anchor x="650" y="1635" name="U"/>
+ <outline>
+ <component base="LtnSmA"/>
+ <component base="CombGrave" xOffset="1240"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mA_R_ingA_bv.glif b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mA_R_ingA_bv.glif
new file mode 100644
index 0000000..3b8da5a
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mA_R_ingA_bv.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmARingAbv" format="2">
+ <advance width="1205"/>
+ <unicode hex="00E5"/>
+ <anchor x="985" y="0" name="H"/>
+ <anchor x="610" y="-100" name="L"/>
+ <anchor x="1185" y="0" name="O"/>
+ <anchor x="1145" y="1000" name="R"/>
+ <anchor x="612" y="1635" name="U"/>
+ <outline>
+ <component base="LtnSmA"/>
+ <component base="CombRingAbv" xOffset="1182"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mA_T_ilde.glif b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mA_T_ilde.glif
new file mode 100644
index 0000000..b3a8515
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mA_T_ilde.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmATilde" format="2">
+ <advance width="1205"/>
+ <unicode hex="00E3"/>
+ <anchor x="985" y="0" name="H"/>
+ <anchor x="610" y="-100" name="L"/>
+ <anchor x="1185" y="0" name="O"/>
+ <anchor x="1145" y="1000" name="R"/>
+ <anchor x="610" y="1490" name="U"/>
+ <outline>
+ <component base="LtnSmA"/>
+ <component base="CombTilde" xOffset="1190"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mB_.glif b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mB_.glif
new file mode 100644
index 0000000..6cc6671
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mB_.glif
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmB" format="2">
+ <advance width="1215"/>
+ <unicode hex="0062"/>
+ <anchor x="610" y="0" name="H"/>
+ <anchor x="610" y="-100" name="L"/>
+ <anchor x="1215" y="1000" name="R"/>
+ <anchor x="610" y="1635" name="U"/>
+ <outline>
+ <contour>
+ <point x="120" y="1600" type="line"/>
+ <point x="135" y="1488"/>
+ <point x="135" y="1273"/>
+ <point x="135" y="1130" type="curve" smooth="yes"/>
+ <point x="135" y="936"/>
+ <point x="135" y="228"/>
+ <point x="135" y="65" type="curve"/>
+ <point x="286" y="26"/>
+ <point x="457" y="-25"/>
+ <point x="650" y="-25" type="curve" smooth="yes"/>
+ <point x="939" y="-25"/>
+ <point x="1125" y="197"/>
+ <point x="1125" y="540" type="curve" smooth="yes"/>
+ <point x="1125" y="832"/>
+ <point x="986" y="1040"/>
+ <point x="789" y="1040" type="curve" smooth="yes"/>
+ <point x="626" y="1040"/>
+ <point x="505" y="956"/>
+ <point x="415" y="845" type="curve"/>
+ <point x="415" y="934"/>
+ <point x="415" y="1600"/>
+ <point x="415" y="1600" type="curve"/>
+ </contour>
+ <contour>
+ <point x="415" y="585" type="line"/>
+ <point x="471" y="709"/>
+ <point x="580" y="795"/>
+ <point x="683" y="795" type="curve" smooth="yes"/>
+ <point x="793" y="795"/>
+ <point x="855" y="684"/>
+ <point x="855" y="505" type="curve" smooth="yes"/>
+ <point x="855" y="317"/>
+ <point x="750" y="190"/>
+ <point x="605" y="190" type="curve" smooth="yes"/>
+ <point x="538" y="190"/>
+ <point x="492" y="204"/>
+ <point x="415" y="240" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mC_.glif b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mC_.glif
new file mode 100644
index 0000000..19a8a6d
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mC_.glif
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmC" format="2">
+ <advance width="1022"/>
+ <unicode hex="0063"/>
+ <anchor x="555" y="0" name="H"/>
+ <anchor x="575" y="-100" name="L"/>
+ <anchor x="1020" y="1000" name="R"/>
+ <anchor x="575" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="922" y="969" type="line"/>
+ <point x="849" y="1007"/>
+ <point x="744" y="1040"/>
+ <point x="612" y="1040" type="curve" smooth="yes"/>
+ <point x="295" y="1040"/>
+ <point x="90" y="802"/>
+ <point x="90" y="490" type="curve" smooth="yes"/>
+ <point x="90" y="161"/>
+ <point x="309" y="-25"/>
+ <point x="578" y="-25" type="curve" smooth="yes"/>
+ <point x="727" y="-25"/>
+ <point x="831" y="8"/>
+ <point x="932" y="70" type="curve"/>
+ <point x="902" y="314" type="line"/>
+ <point x="815" y="245"/>
+ <point x="737" y="205"/>
+ <point x="617" y="205" type="curve" smooth="yes"/>
+ <point x="467" y="205"/>
+ <point x="370" y="324"/>
+ <point x="370" y="500" type="curve" smooth="yes"/>
+ <point x="370" y="694"/>
+ <point x="478" y="810"/>
+ <point x="617" y="810" type="curve" smooth="yes"/>
+ <point x="720" y="810"/>
+ <point x="788" y="779"/>
+ <point x="878" y="717" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mD_.glif b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mD_.glif
new file mode 100644
index 0000000..fc1cc76
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mD_.glif
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmD" format="2">
+ <advance width="1265"/>
+ <unicode hex="0064"/>
+ <anchor x="595" y="0" name="H"/>
+ <anchor x="595" y="-100" name="L"/>
+ <anchor x="1285" y="1000" name="R"/>
+ <anchor x="610" y="1635" name="U"/>
+ <outline>
+ <contour>
+ <point x="1115" y="1600" type="line"/>
+ <point x="810" y="1600" type="line"/>
+ <point x="829" y="1516"/>
+ <point x="835" y="1395"/>
+ <point x="835" y="1235" type="curve" smooth="yes"/>
+ <point x="835" y="955" type="line"/>
+ <point x="763" y="999"/>
+ <point x="669" y="1040"/>
+ <point x="590" y="1040" type="curve" smooth="yes"/>
+ <point x="319" y="1040"/>
+ <point x="100" y="814"/>
+ <point x="100" y="460" type="curve" smooth="yes"/>
+ <point x="100" y="167"/>
+ <point x="268" y="-25"/>
+ <point x="515" y="-25" type="curve" smooth="yes"/>
+ <point x="654" y="-25"/>
+ <point x="770" y="47"/>
+ <point x="860" y="175" type="curve"/>
+ <point x="877" y="105"/>
+ <point x="900" y="32"/>
+ <point x="915" y="0" type="curve"/>
+ <point x="1190" y="0" type="line"/>
+ <point x="1147" y="112"/>
+ <point x="1115" y="278"/>
+ <point x="1115" y="530" type="curve" smooth="yes"/>
+ </contour>
+ <contour>
+ <point x="835" y="400" type="line"/>
+ <point x="787" y="300"/>
+ <point x="676" y="200"/>
+ <point x="570" y="200" type="curve" smooth="yes"/>
+ <point x="443" y="200"/>
+ <point x="380" y="300"/>
+ <point x="380" y="490" type="curve" smooth="yes"/>
+ <point x="380" y="685"/>
+ <point x="485" y="800"/>
+ <point x="590" y="800" type="curve" smooth="yes"/>
+ <point x="683" y="800"/>
+ <point x="743" y="783"/>
+ <point x="835" y="738" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mE_.glif b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mE_.glif
new file mode 100644
index 0000000..5c67455
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mE_.glif
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmE" format="2">
+ <advance width="1110"/>
+ <unicode hex="0065"/>
+ <anchor x="569" y="0" name="H"/>
+ <anchor x="589" y="-100" name="L"/>
+ <anchor x="900" y="0" name="O"/>
+ <anchor x="1130" y="1000" name="R"/>
+ <anchor x="537" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="1010" y="450" type="line"/>
+ <point x="1010" y="469"/>
+ <point x="1009" y="513"/>
+ <point x="1009" y="532" type="curve" smooth="yes"/>
+ <point x="1009" y="782"/>
+ <point x="924" y="1040"/>
+ <point x="589" y="1040" type="curve" smooth="yes"/>
+ <point x="281" y="1040"/>
+ <point x="90" y="826"/>
+ <point x="90" y="495" type="curve" smooth="yes"/>
+ <point x="90" y="155"/>
+ <point x="324" y="-25"/>
+ <point x="589" y="-25" type="curve" smooth="yes"/>
+ <point x="745" y="-25"/>
+ <point x="871" y="2"/>
+ <point x="1015" y="75" type="curve"/>
+ <point x="994" y="306" type="line"/>
+ <point x="870" y="232"/>
+ <point x="745" y="205"/>
+ <point x="614" y="205" type="curve" smooth="yes"/>
+ <point x="448" y="205"/>
+ <point x="362" y="293"/>
+ <point x="362" y="505" type="curve" smooth="yes"/>
+ <point x="362" y="739"/>
+ <point x="431" y="830"/>
+ <point x="575" y="830" type="curve" smooth="yes"/>
+ <point x="693" y="830"/>
+ <point x="755" y="770"/>
+ <point x="755" y="630" type="curve"/>
+ <point x="242" y="630" type="line"/>
+ <point x="242" y="450" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mF_.glif b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mF_.glif
new file mode 100644
index 0000000..8a5996d
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mF_.glif
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmF" format="2">
+ <advance width="800"/>
+ <unicode hex="0066"/>
+ <anchor x="380" y="0" name="H"/>
+ <anchor x="400" y="-100" name="L"/>
+ <anchor x="600" y="1635" name="U"/>
+ <outline>
+ <contour>
+ <point x="30" y="805" type="line"/>
+ <point x="230" y="805" type="line"/>
+ <point x="230" y="0" type="line"/>
+ <point x="540" y="0" type="line"/>
+ <point x="518" y="105"/>
+ <point x="510" y="300"/>
+ <point x="510" y="494" type="curve" smooth="yes"/>
+ <point x="510" y="805" type="line"/>
+ <point x="765" y="805" type="line"/>
+ <point x="765" y="1005" type="line"/>
+ <point x="510" y="1005" type="line"/>
+ <point x="510" y="1159" type="line" smooth="yes"/>
+ <point x="510" y="1322"/>
+ <point x="552" y="1387"/>
+ <point x="648" y="1387" type="curve" smooth="yes"/>
+ <point x="697" y="1387"/>
+ <point x="765" y="1362"/>
+ <point x="808" y="1322" type="curve"/>
+ <point x="865" y="1550" type="line"/>
+ <point x="806" y="1588"/>
+ <point x="699" y="1620"/>
+ <point x="625" y="1620" type="curve" smooth="yes"/>
+ <point x="378" y="1620"/>
+ <point x="230" y="1470"/>
+ <point x="230" y="1170" type="curve" smooth="yes"/>
+ <point x="230" y="1005" type="line"/>
+ <point x="30" y="1005" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mG_.glif b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mG_.glif
new file mode 100644
index 0000000..871e4e9
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mG_.glif
@@ -0,0 +1,91 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmG" format="2">
+ <advance width="1170"/>
+ <unicode hex="0067"/>
+ <anchor x="597" y="-465" name="H"/>
+ <anchor x="597" y="-535" name="L"/>
+ <anchor x="1187" y="1000" name="R"/>
+ <anchor x="567" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="352" y="395" type="line"/>
+ <point x="256" y="357"/>
+ <point x="202" y="275"/>
+ <point x="202" y="215" type="curve" smooth="yes"/>
+ <point x="202" y="113"/>
+ <point x="280" y="12"/>
+ <point x="547" y="-23" type="curve" smooth="yes"/>
+ <point x="797" y="-50"/>
+ <point x="870" y="-99"/>
+ <point x="870" y="-170" type="curve" smooth="yes"/>
+ <point x="870" y="-229"/>
+ <point x="748" y="-302"/>
+ <point x="602" y="-302" type="curve" smooth="yes"/>
+ <point x="418" y="-302"/>
+ <point x="330" y="-235"/>
+ <point x="330" y="-180" type="curve" smooth="yes"/>
+ <point x="330" y="-121"/>
+ <point x="357" y="-56"/>
+ <point x="562" y="20" type="curve"/>
+ <point x="554" y="49"/>
+ <point x="322" y="75"/>
+ <point x="322" y="75" type="curve"/>
+ <point x="138" y="2"/>
+ <point x="50" y="-89"/>
+ <point x="50" y="-200" type="curve" smooth="yes"/>
+ <point x="50" y="-409"/>
+ <point x="341" y="-505"/>
+ <point x="587" y="-505" type="curve" smooth="yes"/>
+ <point x="843" y="-505"/>
+ <point x="1150" y="-375"/>
+ <point x="1150" y="-160" type="curve" smooth="yes"/>
+ <point x="1150" y="13"/>
+ <point x="1049" y="125"/>
+ <point x="752" y="165" type="curve" smooth="yes"/>
+ <point x="497" y="191"/>
+ <point x="433" y="216"/>
+ <point x="433" y="255" type="curve" smooth="yes"/>
+ <point x="433" y="285"/>
+ <point x="472" y="322"/>
+ <point x="588" y="350" type="curve"/>
+ </contour>
+ <contour>
+ <point x="1102" y="1040" type="line"/>
+ <point x="1003" y="1033"/>
+ <point x="871" y="997"/>
+ <point x="782" y="940" type="curve"/>
+ <point x="847" y="770" type="line"/>
+ <point x="939" y="808"/>
+ <point x="1019" y="823"/>
+ <point x="1092" y="825" type="curve"/>
+ </contour>
+ <contour>
+ <point x="122" y="670" type="curve" smooth="yes"/>
+ <point x="122" y="455"/>
+ <point x="316" y="305"/>
+ <point x="567" y="305" type="curve" smooth="yes"/>
+ <point x="820" y="305"/>
+ <point x="1012" y="465"/>
+ <point x="1012" y="680" type="curve" smooth="yes"/>
+ <point x="1012" y="884"/>
+ <point x="820" y="1040"/>
+ <point x="567" y="1040" type="curve" smooth="yes"/>
+ <point x="316" y="1040"/>
+ <point x="122" y="874"/>
+ </contour>
+ <contour>
+ <point x="377" y="680" type="curve" smooth="yes"/>
+ <point x="377" y="770"/>
+ <point x="457" y="847"/>
+ <point x="567" y="847" type="curve" smooth="yes"/>
+ <point x="678" y="847"/>
+ <point x="757" y="770"/>
+ <point x="757" y="680" type="curve" smooth="yes"/>
+ <point x="757" y="578"/>
+ <point x="678" y="501"/>
+ <point x="567" y="501" type="curve" smooth="yes"/>
+ <point x="457" y="501"/>
+ <point x="377" y="578"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mH_.glif b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mH_.glif
new file mode 100644
index 0000000..15fc451
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mH_.glif
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmH" format="2">
+ <advance width="1235"/>
+ <unicode hex="0068"/>
+ <anchor x="280" y="0" name="H"/>
+ <anchor x="620" y="-100" name="L"/>
+ <anchor x="620" y="1635" name="U"/>
+ <outline>
+ <contour>
+ <point x="415" y="580" type="line"/>
+ <point x="450" y="683"/>
+ <point x="560" y="795"/>
+ <point x="675" y="795" type="curve" smooth="yes"/>
+ <point x="782" y="795"/>
+ <point x="830" y="744"/>
+ <point x="830" y="550" type="curve" smooth="yes"/>
+ <point x="830" y="413"/>
+ <point x="830" y="0"/>
+ <point x="830" y="0" type="curve"/>
+ <point x="1110" y="0" type="line"/>
+ <point x="1110" y="0"/>
+ <point x="1110" y="459"/>
+ <point x="1110" y="625" type="curve" smooth="yes"/>
+ <point x="1110" y="900"/>
+ <point x="1008" y="1040"/>
+ <point x="805" y="1040" type="curve" smooth="yes"/>
+ <point x="662" y="1040"/>
+ <point x="513" y="976"/>
+ <point x="415" y="850" type="curve"/>
+ <point x="415" y="894"/>
+ <point x="415" y="1600"/>
+ <point x="415" y="1600" type="curve"/>
+ <point x="120" y="1600" type="line"/>
+ <point x="135" y="1514"/>
+ <point x="135" y="1345"/>
+ <point x="135" y="1130" type="curve" smooth="yes"/>
+ <point x="135" y="935"/>
+ <point x="135" y="0"/>
+ <point x="135" y="0" type="curve"/>
+ <point x="415" y="0" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mI_.glif b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mI_.glif
new file mode 100644
index 0000000..05022d4
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mI_.glif
@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmI" format="2">
+ <advance width="640"/>
+ <unicode hex="0069"/>
+ <anchor x="320" y="0" name="H"/>
+ <anchor x="320" y="-100" name="L"/>
+ <anchor x="580" y="0" name="O"/>
+ <anchor x="640" y="1000" name="R"/>
+ <anchor x="320" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="165" y="1020" type="line"/>
+ <point x="178" y="915"/>
+ <point x="180" y="725"/>
+ <point x="180" y="530" type="curve" smooth="yes"/>
+ <point x="180" y="336"/>
+ <point x="180" y="0"/>
+ <point x="180" y="0" type="curve"/>
+ <point x="480" y="0" type="line"/>
+ <point x="467" y="107"/>
+ <point x="460" y="346"/>
+ <point x="460" y="475" type="curve" smooth="yes"/>
+ <point x="460" y="558"/>
+ <point x="460" y="1020"/>
+ <point x="460" y="1020" type="curve"/>
+ </contour>
+ <contour>
+ <point x="145" y="1385" type="curve" smooth="yes"/>
+ <point x="145" y="1281"/>
+ <point x="219" y="1210"/>
+ <point x="320" y="1210" type="curve" smooth="yes"/>
+ <point x="422" y="1210"/>
+ <point x="495" y="1281"/>
+ <point x="495" y="1385" type="curve" smooth="yes"/>
+ <point x="495" y="1487"/>
+ <point x="422" y="1560"/>
+ <point x="320" y="1560" type="curve" smooth="yes"/>
+ <point x="219" y="1560"/>
+ <point x="145" y="1487"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mJ_.glif b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mJ_.glif
new file mode 100644
index 0000000..6e044af
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mJ_.glif
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmJ" format="2">
+ <advance width="670"/>
+ <unicode hex="006A"/>
+ <anchor x="140" y="-500" name="L"/>
+ <anchor x="355" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="185" y="1385" type="curve" smooth="yes"/>
+ <point x="185" y="1281"/>
+ <point x="259" y="1210"/>
+ <point x="360" y="1210" type="curve" smooth="yes"/>
+ <point x="462" y="1210"/>
+ <point x="535" y="1281"/>
+ <point x="535" y="1385" type="curve" smooth="yes"/>
+ <point x="535" y="1487"/>
+ <point x="462" y="1560"/>
+ <point x="360" y="1560" type="curve" smooth="yes"/>
+ <point x="259" y="1560"/>
+ <point x="185" y="1487"/>
+ </contour>
+ <contour>
+ <point x="500" y="1020" type="line"/>
+ <point x="205" y="1020" type="line"/>
+ <point x="218" y="915"/>
+ <point x="220" y="725"/>
+ <point x="220" y="530" type="curve"/>
+ <point x="220" y="20" type="line"/>
+ <point x="220" y="-150"/>
+ <point x="165" y="-232"/>
+ <point x="48" y="-232" type="curve" smooth="yes"/>
+ <point x="-20" y="-232"/>
+ <point x="-101" y="-195"/>
+ <point x="-145" y="-152" type="curve"/>
+ <point x="-190" y="-389" type="line"/>
+ <point x="-148" y="-421"/>
+ <point x="-37" y="-470"/>
+ <point x="56" y="-470" type="curve" smooth="yes"/>
+ <point x="306" y="-470"/>
+ <point x="500" y="-348"/>
+ <point x="500" y="25" type="curve" smooth="yes"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mK_.glif b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mK_.glif
new file mode 100644
index 0000000..529f7dd
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mK_.glif
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmK" format="2">
+ <advance width="1138"/>
+ <unicode hex="006B"/>
+ <anchor x="940" y="0" name="H"/>
+ <anchor x="585" y="-100" name="L"/>
+ <anchor x="1140" y="1000" name="R"/>
+ <anchor x="595" y="1635" name="U"/>
+ <outline>
+ <contour>
+ <point x="415" y="0" type="line"/>
+ <point x="415" y="1600" type="line"/>
+ <point x="120" y="1600" type="line"/>
+ <point x="135" y="1514"/>
+ <point x="135" y="1345"/>
+ <point x="135" y="1130" type="curve" smooth="yes"/>
+ <point x="135" y="934"/>
+ <point x="135" y="0"/>
+ <point x="135" y="0" type="curve"/>
+ </contour>
+ <contour>
+ <point x="723" y="1020" type="line"/>
+ <point x="353" y="570" type="line"/>
+ <point x="572" y="528" type="line"/>
+ <point x="1098" y="1020" type="line"/>
+ </contour>
+ <contour>
+ <point x="350" y="570" type="line"/>
+ <point x="761" y="0" type="line"/>
+ <point x="1128" y="0" type="line"/>
+ <point x="540" y="664" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mL_.glif b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mL_.glif
new file mode 100644
index 0000000..0b21294
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mL_.glif
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmL" format="2">
+ <advance width="640"/>
+ <unicode hex="006C"/>
+ <anchor x="335" y="0" name="H"/>
+ <anchor x="335" y="-100" name="L"/>
+ <anchor x="660" y="1000" name="R"/>
+ <anchor x="320" y="1635" name="U"/>
+ <outline>
+ <contour>
+ <point x="460" y="1600" type="line"/>
+ <point x="160" y="1600" type="line"/>
+ <point x="173" y="1485"/>
+ <point x="180" y="1324"/>
+ <point x="180" y="1130" type="curve" smooth="yes"/>
+ <point x="180" y="0" type="line"/>
+ <point x="480" y="0" type="line"/>
+ <point x="467" y="109"/>
+ <point x="460" y="346"/>
+ <point x="460" y="475" type="curve" smooth="yes"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mM_.glif b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mM_.glif
new file mode 100644
index 0000000..eace489
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mM_.glif
@@ -0,0 +1,52 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmM" format="2">
+ <advance width="1760"/>
+ <unicode hex="006D"/>
+ <anchor x="890" y="0" name="H"/>
+ <anchor x="890" y="-100" name="L"/>
+ <anchor x="890" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="115" y="1020" type="line"/>
+ <point x="136" y="951"/>
+ <point x="165" y="811"/>
+ <point x="165" y="615" type="curve" smooth="yes"/>
+ <point x="165" y="0" type="line"/>
+ <point x="445" y="0" type="line"/>
+ <point x="445" y="640" type="line"/>
+ <point x="484" y="731"/>
+ <point x="560" y="795"/>
+ <point x="635" y="795" type="curve" smooth="yes"/>
+ <point x="723" y="795"/>
+ <point x="750" y="759"/>
+ <point x="750" y="570" type="curve" smooth="yes"/>
+ <point x="750" y="0" type="line"/>
+ <point x="1030" y="0" type="line"/>
+ <point x="1030" y="660" type="line"/>
+ <point x="1073" y="742"/>
+ <point x="1147" y="795"/>
+ <point x="1220" y="795" type="curve" smooth="yes"/>
+ <point x="1310" y="795"/>
+ <point x="1335" y="751"/>
+ <point x="1335" y="550" type="curve" smooth="yes"/>
+ <point x="1335" y="0" type="line"/>
+ <point x="1615" y="0" type="line"/>
+ <point x="1615" y="660" type="line" smooth="yes"/>
+ <point x="1615" y="907"/>
+ <point x="1548" y="1040"/>
+ <point x="1345" y="1040" type="curve" smooth="yes"/>
+ <point x="1240" y="1040"/>
+ <point x="1131" y="1007"/>
+ <point x="1006" y="872" type="curve"/>
+ <point x="973" y="960"/>
+ <point x="891" y="1040"/>
+ <point x="760" y="1040" type="curve" smooth="yes"/>
+ <point x="644" y="1040"/>
+ <point x="544" y="1008"/>
+ <point x="422" y="875" type="curve"/>
+ <point x="412" y="920"/>
+ <point x="397" y="981"/>
+ <point x="375" y="1020" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mN_.glif b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mN_.glif
new file mode 100644
index 0000000..f7abb6f
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mN_.glif
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmN" format="2">
+ <advance width="1245"/>
+ <unicode hex="006E"/>
+ <anchor x="620" y="0" name="H"/>
+ <anchor x="620" y="-100" name="L"/>
+ <anchor x="620" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="1120" y="0" type="line"/>
+ <point x="1120" y="0"/>
+ <point x="1120" y="459"/>
+ <point x="1120" y="625" type="curve" smooth="yes"/>
+ <point x="1120" y="900"/>
+ <point x="998" y="1040"/>
+ <point x="795" y="1040" type="curve" smooth="yes"/>
+ <point x="654" y="1040"/>
+ <point x="537" y="980"/>
+ <point x="410" y="835" type="curve"/>
+ <point x="403" y="881"/>
+ <point x="385" y="980"/>
+ <point x="370" y="1020" type="curve"/>
+ <point x="95" y="1020" type="line"/>
+ <point x="117" y="951"/>
+ <point x="145" y="811"/>
+ <point x="145" y="615" type="curve" smooth="yes"/>
+ <point x="145" y="420"/>
+ <point x="145" y="0"/>
+ <point x="145" y="0" type="curve"/>
+ <point x="425" y="0" type="line"/>
+ <point x="425" y="580" type="line"/>
+ <point x="460" y="683"/>
+ <point x="570" y="795"/>
+ <point x="685" y="795" type="curve" smooth="yes"/>
+ <point x="792" y="795"/>
+ <point x="840" y="734"/>
+ <point x="840" y="550" type="curve" smooth="yes"/>
+ <point x="840" y="413"/>
+ <point x="840" y="0"/>
+ <point x="840" y="0" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mO_.glif b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mO_.glif
new file mode 100644
index 0000000..063c297
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mO_.glif
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmO" format="2">
+ <advance width="1160"/>
+ <unicode hex="006F"/>
+ <anchor x="578" y="0" name="H"/>
+ <anchor x="580" y="-100" name="L"/>
+ <anchor x="790" y="0" name="O"/>
+ <anchor x="1160" y="1000" name="R"/>
+ <anchor x="580" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="90" y="507" type="curve" smooth="yes"/>
+ <point x="90" y="163"/>
+ <point x="288" y="-25"/>
+ <point x="570" y="-25" type="curve" smooth="yes"/>
+ <point x="840" y="-25"/>
+ <point x="1070" y="163"/>
+ <point x="1070" y="507" type="curve" smooth="yes"/>
+ <point x="1070" y="851"/>
+ <point x="873" y="1040"/>
+ <point x="590" y="1040" type="curve" smooth="yes"/>
+ <point x="320" y="1040"/>
+ <point x="90" y="851"/>
+ </contour>
+ <contour>
+ <point x="370" y="507" type="curve" smooth="yes"/>
+ <point x="370" y="699"/>
+ <point x="451" y="815"/>
+ <point x="580" y="815" type="curve" smooth="yes"/>
+ <point x="717" y="815"/>
+ <point x="790" y="699"/>
+ <point x="790" y="507" type="curve" smooth="yes"/>
+ <point x="790" y="316"/>
+ <point x="709" y="200"/>
+ <point x="580" y="200" type="curve" smooth="yes"/>
+ <point x="443" y="200"/>
+ <point x="370" y="316"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mP_.glif b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mP_.glif
new file mode 100644
index 0000000..4fe224b
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mP_.glif
@@ -0,0 +1,59 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmP" format="2">
+ <advance width="1235"/>
+ <unicode hex="0070"/>
+ <anchor x="290" y="-435" name="H"/>
+ <anchor x="640" y="-500" name="L"/>
+ <anchor x="1235" y="1000" name="R"/>
+ <anchor x="640" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="450" y="-490" type="line"/>
+ <point x="433" y="-405"/>
+ <point x="425" y="-310"/>
+ <point x="425" y="-150" type="curve" smooth="yes"/>
+ <point x="425" y="-71"/>
+ <point x="425" y="-41"/>
+ <point x="425" y="65" type="curve"/>
+ <point x="518" y="10"/>
+ <point x="594" y="-25"/>
+ <point x="699" y="-25" type="curve" smooth="yes"/>
+ <point x="945" y="-25"/>
+ <point x="1145" y="193"/>
+ <point x="1145" y="535" type="curve" smooth="yes"/>
+ <point x="1145" y="828"/>
+ <point x="996" y="1040"/>
+ <point x="773" y="1040" type="curve" smooth="yes"/>
+ <point x="628" y="1040"/>
+ <point x="502" y="962"/>
+ <point x="410" y="850" type="curve"/>
+ <point x="401" y="932"/>
+ <point x="385" y="990"/>
+ <point x="370" y="1020" type="curve"/>
+ <point x="95" y="1020" type="line"/>
+ <point x="140" y="907"/>
+ <point x="145" y="734"/>
+ <point x="145" y="485" type="curve" smooth="yes"/>
+ <point x="145" y="291"/>
+ <point x="145" y="-345"/>
+ <point x="145" y="-490" type="curve"/>
+ </contour>
+ <contour>
+ <point x="633" y="206" type="curve" smooth="yes"/>
+ <point x="564" y="206"/>
+ <point x="527" y="225"/>
+ <point x="425" y="300" type="curve"/>
+ <point x="425" y="390"/>
+ <point x="425" y="507"/>
+ <point x="425" y="585" type="curve"/>
+ <point x="482" y="726"/>
+ <point x="583" y="802"/>
+ <point x="672" y="802" type="curve" smooth="yes"/>
+ <point x="793" y="802"/>
+ <point x="865" y="686"/>
+ <point x="865" y="505" type="curve" smooth="yes"/>
+ <point x="865" y="320"/>
+ <point x="755" y="206"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mQ_.glif b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mQ_.glif
new file mode 100644
index 0000000..9727ad7
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mQ_.glif
@@ -0,0 +1,47 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmQ" format="2">
+ <advance width="1210"/>
+ <unicode hex="0071"/>
+ <anchor x="600" y="-500" name="L"/>
+ <anchor x="1210" y="1000" name="R"/>
+ <anchor x="600" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="790" y="-490" type="line"/>
+ <point x="1095" y="-490" type="line"/>
+ <point x="1078" y="-405"/>
+ <point x="1070" y="-310"/>
+ <point x="1070" y="-150" type="curve" smooth="yes"/>
+ <point x="1070" y="-26"/>
+ <point x="1070" y="965"/>
+ <point x="1070" y="965" type="curve"/>
+ <point x="934" y="1001"/>
+ <point x="773" y="1040"/>
+ <point x="620" y="1040" type="curve" smooth="yes"/>
+ <point x="255" y="1040"/>
+ <point x="100" y="742"/>
+ <point x="100" y="435" type="curve" smooth="yes"/>
+ <point x="100" y="117"/>
+ <point x="316" y="-25"/>
+ <point x="500" y="-25" type="curve" smooth="yes"/>
+ <point x="593" y="-25"/>
+ <point x="686" y="14"/>
+ <point x="790" y="120" type="curve"/>
+ </contour>
+ <contour>
+ <point x="790" y="368" type="line"/>
+ <point x="727" y="258"/>
+ <point x="650" y="203"/>
+ <point x="580" y="203" type="curve" smooth="yes"/>
+ <point x="475" y="203"/>
+ <point x="380" y="287"/>
+ <point x="380" y="485" type="curve" smooth="yes"/>
+ <point x="380" y="641"/>
+ <point x="456" y="802"/>
+ <point x="655" y="802" type="curve" smooth="yes"/>
+ <point x="696" y="802"/>
+ <point x="749" y="789"/>
+ <point x="790" y="770" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mR_.glif b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mR_.glif
new file mode 100644
index 0000000..8a81116
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mR_.glif
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmR" format="2">
+ <advance width="995"/>
+ <unicode hex="0072"/>
+ <anchor x="285" y="0" name="H"/>
+ <anchor x="275" y="-100" name="L"/>
+ <anchor x="550" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="425" y="0" type="line"/>
+ <point x="425" y="530" type="line"/>
+ <point x="460" y="654"/>
+ <point x="570" y="781"/>
+ <point x="637" y="781" type="curve" smooth="yes"/>
+ <point x="722" y="781"/>
+ <point x="755" y="721"/>
+ <point x="762" y="630" type="curve"/>
+ <point x="985" y="665" type="line"/>
+ <point x="985" y="868"/>
+ <point x="913" y="1040"/>
+ <point x="725" y="1040" type="curve" smooth="yes"/>
+ <point x="634" y="1040"/>
+ <point x="507" y="964"/>
+ <point x="410" y="825" type="curve"/>
+ <point x="403" y="873"/>
+ <point x="385" y="978"/>
+ <point x="370" y="1020" type="curve"/>
+ <point x="95" y="1020" type="line"/>
+ <point x="117" y="951"/>
+ <point x="145" y="811"/>
+ <point x="145" y="615" type="curve" smooth="yes"/>
+ <point x="145" y="0" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mS_.glif b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mS_.glif
new file mode 100644
index 0000000..06b1a9a
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mS_.glif
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmS" format="2">
+ <advance width="1035"/>
+ <unicode hex="0073"/>
+ <anchor x="515" y="0" name="H"/>
+ <anchor x="515" y="-100" name="L"/>
+ <anchor x="530" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="905" y="960" type="line"/>
+ <point x="827" y="998"/>
+ <point x="708" y="1040"/>
+ <point x="545" y="1040" type="curve" smooth="yes"/>
+ <point x="202" y="1040"/>
+ <point x="110" y="818"/>
+ <point x="110" y="720" type="curve" smooth="yes"/>
+ <point x="110" y="594"/>
+ <point x="171" y="491"/>
+ <point x="455" y="432" type="curve" smooth="yes"/>
+ <point x="646" y="390"/>
+ <point x="690" y="348"/>
+ <point x="690" y="290" type="curve" smooth="yes"/>
+ <point x="690" y="243"/>
+ <point x="624" y="199"/>
+ <point x="530" y="199" type="curve" smooth="yes"/>
+ <point x="413" y="199"/>
+ <point x="254" y="253"/>
+ <point x="155" y="334" type="curve"/>
+ <point x="100" y="90" type="line"/>
+ <point x="187" y="28"/>
+ <point x="346" y="-25"/>
+ <point x="525" y="-25" type="curve" smooth="yes"/>
+ <point x="768" y="-25"/>
+ <point x="960" y="123"/>
+ <point x="960" y="315" type="curve" smooth="yes"/>
+ <point x="960" y="504"/>
+ <point x="788" y="583"/>
+ <point x="580" y="625" type="curve" smooth="yes"/>
+ <point x="405" y="659"/>
+ <point x="380" y="681"/>
+ <point x="380" y="730" type="curve" smooth="yes"/>
+ <point x="380" y="770"/>
+ <point x="418" y="816"/>
+ <point x="535" y="816" type="curve" smooth="yes"/>
+ <point x="674" y="816"/>
+ <point x="791" y="760"/>
+ <point x="866" y="721" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mT_.glif b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mT_.glif
new file mode 100644
index 0000000..d4123c7
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mT_.glif
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmT" format="2">
+ <advance width="885"/>
+ <unicode hex="0074"/>
+ <anchor x="530" y="0" name="H"/>
+ <anchor x="530" y="-100" name="L"/>
+ <anchor x="885" y="1000" name="R"/>
+ <anchor x="360" y="1360" name="U"/>
+ <outline>
+ <contour>
+ <point x="220" y="270" type="line"/>
+ <point x="220" y="39"/>
+ <point x="374" y="-25"/>
+ <point x="563" y="-25" type="curve" smooth="yes"/>
+ <point x="635" y="-25"/>
+ <point x="725" y="-3"/>
+ <point x="820" y="57" type="curve"/>
+ <point x="820" y="281" type="line"/>
+ <point x="741" y="232"/>
+ <point x="678" y="206"/>
+ <point x="627" y="206" type="curve" smooth="yes"/>
+ <point x="537" y="206"/>
+ <point x="500" y="235"/>
+ <point x="500" y="462" type="curve" smooth="yes"/>
+ <point x="500" y="1320" type="line"/>
+ <point x="220" y="1320" type="line"/>
+ </contour>
+ <contour>
+ <point x="805" y="805" type="line"/>
+ <point x="805" y="1005" type="line"/>
+ <point x="30" y="1005" type="line"/>
+ <point x="30" y="805" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mU_.glif b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mU_.glif
new file mode 100644
index 0000000..5b8d434
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mU_.glif
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmU" format="2">
+ <advance width="1245"/>
+ <unicode hex="0075"/>
+ <anchor x="515" y="0" name="H"/>
+ <anchor x="615" y="-100" name="L"/>
+ <anchor x="690" y="0" name="O"/>
+ <anchor x="1258" y="1000" name="R"/>
+ <anchor x="615" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="1160" y="0" type="line"/>
+ <point x="1118" y="112"/>
+ <point x="1095" y="256"/>
+ <point x="1095" y="450" type="curve" smooth="yes"/>
+ <point x="1095" y="646"/>
+ <point x="1095" y="1020"/>
+ <point x="1095" y="1020" type="curve"/>
+ <point x="795" y="1020" type="line"/>
+ <point x="813" y="898"/>
+ <point x="815" y="832"/>
+ <point x="815" y="700" type="curve" smooth="yes"/>
+ <point x="815" y="418" type="line"/>
+ <point x="774" y="326"/>
+ <point x="651" y="206"/>
+ <point x="560" y="206" type="curve" smooth="yes"/>
+ <point x="458" y="206"/>
+ <point x="425" y="284"/>
+ <point x="425" y="465" type="curve" smooth="yes"/>
+ <point x="425" y="603"/>
+ <point x="425" y="1020"/>
+ <point x="425" y="1020" type="curve"/>
+ <point x="125" y="1020" type="line"/>
+ <point x="143" y="900"/>
+ <point x="145" y="827"/>
+ <point x="145" y="700" type="curve" smooth="yes"/>
+ <point x="145" y="681"/>
+ <point x="145" y="424"/>
+ <point x="145" y="405" type="curve" smooth="yes"/>
+ <point x="145" y="120"/>
+ <point x="250" y="-25"/>
+ <point x="458" y="-25" type="curve" smooth="yes"/>
+ <point x="595" y="-25"/>
+ <point x="722" y="48"/>
+ <point x="840" y="185" type="curve"/>
+ <point x="850" y="116"/>
+ <point x="876" y="43"/>
+ <point x="895" y="0" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mV_.glif b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mV_.glif
new file mode 100644
index 0000000..daf1468
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mV_.glif
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmV" format="2">
+ <advance width="1104"/>
+ <unicode hex="0076"/>
+ <anchor x="565" y="0" name="H"/>
+ <anchor x="565" y="-100" name="L"/>
+ <anchor x="750" y="0" name="O"/>
+ <anchor x="565" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="786" y="1020" type="line"/>
+ <point x="556" y="290" type="line"/>
+ <point x="322" y="1020" type="line"/>
+ <point x="10" y="1020" type="line"/>
+ <point x="65" y="905"/>
+ <point x="133" y="746"/>
+ <point x="165" y="665" type="curve" smooth="yes"/>
+ <point x="227" y="510"/>
+ <point x="430" y="0"/>
+ <point x="430" y="0" type="curve"/>
+ <point x="674" y="0" type="line"/>
+ <point x="674" y="0"/>
+ <point x="886" y="536"/>
+ <point x="939" y="665" type="curve" smooth="yes"/>
+ <point x="972" y="744"/>
+ <point x="1037" y="905"/>
+ <point x="1094" y="1020" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mW_.glif b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mW_.glif
new file mode 100644
index 0000000..1ca1ec4
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mW_.glif
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmW" format="2">
+ <advance width="1570"/>
+ <unicode hex="0077"/>
+ <anchor x="785" y="-100" name="L"/>
+ <anchor x="785" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="665" y="1020" type="line"/>
+ <point x="480" y="285" type="line"/>
+ <point x="323" y="1020" type="line"/>
+ <point x="35" y="1020" type="line"/>
+ <point x="82" y="867"/>
+ <point x="110" y="771"/>
+ <point x="140" y="665" type="curve" smooth="yes"/>
+ <point x="325" y="0" type="line"/>
+ <point x="615" y="0" type="line"/>
+ <point x="785" y="695" type="line"/>
+ <point x="955" y="0" type="line"/>
+ <point x="1245" y="0" type="line"/>
+ <point x="1430" y="665" type="line" smooth="yes"/>
+ <point x="1464" y="785"/>
+ <point x="1488" y="868"/>
+ <point x="1535" y="1020" type="curve"/>
+ <point x="1247" y="1020" type="line"/>
+ <point x="1090" y="285" type="line"/>
+ <point x="905" y="1020" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mX_.glif b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mX_.glif
new file mode 100644
index 0000000..971c129
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mX_.glif
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmX" format="2">
+ <advance width="1185"/>
+ <unicode hex="0078"/>
+ <anchor x="960" y="0" name="H"/>
+ <anchor x="590" y="-100" name="L"/>
+ <anchor x="615" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="815" y="0" type="line"/>
+ <point x="1145" y="0" type="line"/>
+ <point x="1037" y="129"/>
+ <point x="989" y="190"/>
+ <point x="930" y="270" type="curve" smooth="yes"/>
+ <point x="380" y="1020" type="line"/>
+ <point x="50" y="1020" type="line"/>
+ <point x="158" y="887"/>
+ <point x="192" y="842"/>
+ <point x="260" y="750" type="curve" smooth="yes"/>
+ </contour>
+ <contour>
+ <point x="499" y="616" type="line"/>
+ <point x="245" y="270" type="line" smooth="yes"/>
+ <point x="195" y="201"/>
+ <point x="150" y="143"/>
+ <point x="40" y="0" type="curve"/>
+ <point x="345" y="0" type="line"/>
+ <point x="584" y="359" type="line"/>
+ </contour>
+ <contour>
+ <point x="675" y="405" type="line"/>
+ <point x="925" y="750" type="line" smooth="yes"/>
+ <point x="980" y="826"/>
+ <point x="1027" y="886"/>
+ <point x="1130" y="1020" type="curve"/>
+ <point x="825" y="1020" type="line"/>
+ <point x="595" y="668" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mY_.glif b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mY_.glif
new file mode 100644
index 0000000..ea8d25e
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/L_tnS_mY_.glif
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmY" format="2">
+ <advance width="1100"/>
+ <unicode hex="0079"/>
+ <anchor x="845" y="-100" name="L"/>
+ <anchor x="1155" y="1000" name="R"/>
+ <anchor x="565" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="945" y="665" type="line" smooth="yes"/>
+ <point x="978" y="758"/>
+ <point x="1021" y="865"/>
+ <point x="1090" y="1020" type="curve"/>
+ <point x="777" y="1020" type="line"/>
+ <point x="777" y="1020"/>
+ <point x="646" y="549"/>
+ <point x="573" y="293" type="curve"/>
+ <point x="333" y="1020" type="line"/>
+ <point x="20" y="1020" type="line"/>
+ <point x="97" y="864"/>
+ <point x="144" y="757"/>
+ <point x="180" y="665" type="curve" smooth="yes"/>
+ <point x="445" y="-18" type="line"/>
+ <point x="366" y="-209"/>
+ <point x="304" y="-242"/>
+ <point x="245" y="-242" type="curve" smooth="yes"/>
+ <point x="179" y="-242"/>
+ <point x="102" y="-202"/>
+ <point x="60" y="-167" type="curve"/>
+ <point x="-10" y="-385" type="line"/>
+ <point x="63" y="-439"/>
+ <point x="154" y="-470"/>
+ <point x="245" y="-470" type="curve" smooth="yes"/>
+ <point x="427" y="-470"/>
+ <point x="565" y="-387"/>
+ <point x="705" y="0" type="curve" smooth="yes"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocuids.ufo/glyphs/N_onB_reakingH_yphen.glif b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/N_onB_reakingH_yphen.glif
new file mode 100644
index 0000000..7dc67c0
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/N_onB_reakingH_yphen.glif
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="NonBreakingHyphen" format="2">
+ <advance width="895"/>
+ <unicode hex="2011"/>
+ <anchor x="450" y="1100" name="U"/>
+ <outline>
+ <component base="HyphenMinus"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocuids.ufo/glyphs/N_umS_gn.glif b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/N_umS_gn.glif
new file mode 100644
index 0000000..54b82cb
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/N_umS_gn.glif
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="NumSgn" format="2">
+ <advance width="1200"/>
+ <unicode hex="0023"/>
+ <outline>
+ <contour>
+ <point x="412" y="1360" type="line"/>
+ <point x="52" y="100" type="line"/>
+ <point x="272" y="100" type="line"/>
+ <point x="632" y="1360" type="line"/>
+ </contour>
+ <contour>
+ <point x="10" y="425" type="line"/>
+ <point x="1101" y="425" type="line"/>
+ <point x="1101" y="635" type="line"/>
+ <point x="10" y="635" type="line"/>
+ </contour>
+ <contour>
+ <point x="69" y="850" type="line"/>
+ <point x="1160" y="850" type="line"/>
+ <point x="1160" y="1060" type="line"/>
+ <point x="69" y="1060" type="line"/>
+ </contour>
+ <contour>
+ <point x="887" y="1360" type="line"/>
+ <point x="527" y="100" type="line"/>
+ <point x="747" y="100" type="line"/>
+ <point x="1107" y="1360" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocuids.ufo/glyphs/P_ercentS_gn.glif b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/P_ercentS_gn.glif
new file mode 100644
index 0000000..5017543
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/P_ercentS_gn.glif
@@ -0,0 +1,69 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="PercentSgn" format="2">
+ <advance width="1565"/>
+ <unicode hex="0025"/>
+ <outline>
+ <contour>
+ <point x="1073" y="1480" type="line"/>
+ <point x="291" y="-25" type="line"/>
+ <point x="499" y="-25" type="line"/>
+ <point x="1279" y="1480" type="line"/>
+ </contour>
+ <contour>
+ <point x="511" y="1076" type="curve" smooth="yes"/>
+ <point x="511" y="892"/>
+ <point x="470" y="815"/>
+ <point x="394" y="815" type="curve" smooth="yes"/>
+ <point x="315" y="815"/>
+ <point x="279" y="891"/>
+ <point x="279" y="1091" type="curve" smooth="yes"/>
+ <point x="279" y="1275"/>
+ <point x="317" y="1350"/>
+ <point x="394" y="1350" type="curve" smooth="yes"/>
+ <point x="475" y="1350"/>
+ <point x="511" y="1276"/>
+ </contour>
+ <contour>
+ <point x="721" y="1089" type="curve" smooth="yes"/>
+ <point x="721" y="1362"/>
+ <point x="584" y="1480"/>
+ <point x="399" y="1480" type="curve" smooth="yes"/>
+ <point x="215" y="1480"/>
+ <point x="69" y="1360"/>
+ <point x="69" y="1078" type="curve" smooth="yes"/>
+ <point x="69" y="796"/>
+ <point x="205" y="685"/>
+ <point x="390" y="685" type="curve" smooth="yes"/>
+ <point x="575" y="685"/>
+ <point x="721" y="794"/>
+ </contour>
+ <contour>
+ <point x="1286" y="366" type="curve" smooth="yes"/>
+ <point x="1286" y="182"/>
+ <point x="1245" y="105"/>
+ <point x="1169" y="105" type="curve" smooth="yes"/>
+ <point x="1090" y="105"/>
+ <point x="1054" y="181"/>
+ <point x="1054" y="381" type="curve" smooth="yes"/>
+ <point x="1054" y="565"/>
+ <point x="1092" y="640"/>
+ <point x="1169" y="640" type="curve" smooth="yes"/>
+ <point x="1250" y="640"/>
+ <point x="1286" y="566"/>
+ </contour>
+ <contour>
+ <point x="1496" y="379" type="curve" smooth="yes"/>
+ <point x="1496" y="652"/>
+ <point x="1359" y="770"/>
+ <point x="1174" y="770" type="curve" smooth="yes"/>
+ <point x="990" y="770"/>
+ <point x="844" y="650"/>
+ <point x="844" y="368" type="curve" smooth="yes"/>
+ <point x="844" y="86"/>
+ <point x="980" y="-25"/>
+ <point x="1165" y="-25" type="curve" smooth="yes"/>
+ <point x="1350" y="-25"/>
+ <point x="1496" y="84"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocuids.ufo/glyphs/P_lusS_gn.glif b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/P_lusS_gn.glif
new file mode 100644
index 0000000..a1a4c93
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/P_lusS_gn.glif
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="PlusSgn" format="2">
+ <advance width="1200"/>
+ <unicode hex="002B"/>
+ <outline>
+ <contour>
+ <point x="495" y="1180" type="line"/>
+ <point x="495" y="285" type="line"/>
+ <point x="705" y="285" type="line"/>
+ <point x="705" y="1180" type="line"/>
+ </contour>
+ <contour>
+ <point x="155" y="630" type="line"/>
+ <point x="1045" y="630" type="line"/>
+ <point x="1045" y="840" type="line"/>
+ <point x="155" y="840" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocuids.ufo/glyphs/Q_stnM_rk.glif b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/Q_stnM_rk.glif
new file mode 100644
index 0000000..c9bbb28
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/Q_stnM_rk.glif
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="QstnMrk" format="2">
+ <advance width="1090"/>
+ <unicode hex="003F"/>
+ <outline>
+ <contour>
+ <point x="640" y="500" type="line"/>
+ <point x="640" y="671"/>
+ <point x="668" y="805"/>
+ <point x="767" y="956" type="curve" smooth="yes"/>
+ <point x="837" y="1063"/>
+ <point x="900" y="1117"/>
+ <point x="900" y="1220" type="curve" smooth="yes"/>
+ <point x="900" y="1402"/>
+ <point x="757" y="1540"/>
+ <point x="500" y="1540" type="curve" smooth="yes"/>
+ <point x="355" y="1540"/>
+ <point x="206" y="1470"/>
+ <point x="140" y="1407" type="curve"/>
+ <point x="185" y="1168" type="line"/>
+ <point x="261" y="1247"/>
+ <point x="372" y="1295"/>
+ <point x="472" y="1295" type="curve" smooth="yes"/>
+ <point x="569" y="1295"/>
+ <point x="615" y="1249"/>
+ <point x="615" y="1190" type="curve" smooth="yes"/>
+ <point x="615" y="1139"/>
+ <point x="565" y="1096"/>
+ <point x="495" y="980" type="curve" smooth="yes"/>
+ <point x="434" y="879"/>
+ <point x="375" y="710"/>
+ <point x="375" y="500" type="curve"/>
+ </contour>
+ <contour>
+ <point x="335" y="150" type="curve" smooth="yes"/>
+ <point x="335" y="46"/>
+ <point x="409" y="-25"/>
+ <point x="510" y="-25" type="curve" smooth="yes"/>
+ <point x="612" y="-25"/>
+ <point x="685" y="46"/>
+ <point x="685" y="150" type="curve" smooth="yes"/>
+ <point x="685" y="252"/>
+ <point x="612" y="325"/>
+ <point x="510" y="325" type="curve" smooth="yes"/>
+ <point x="409" y="325"/>
+ <point x="335" y="252"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocuids.ufo/glyphs/Q_uotM_rk.glif b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/Q_uotM_rk.glif
new file mode 100644
index 0000000..794a655
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/Q_uotM_rk.glif
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="QuotMrk" format="2">
+ <advance width="1085"/>
+ <unicode hex="0022"/>
+ <outline>
+ <contour>
+ <point x="450" y="1045" type="line"/>
+ <point x="455" y="1186"/>
+ <point x="456" y="1339"/>
+ <point x="485" y="1585" type="curve"/>
+ <point x="240" y="1585" type="line"/>
+ <point x="271" y="1339"/>
+ <point x="271" y="1186"/>
+ <point x="275" y="1045" type="curve"/>
+ </contour>
+ <contour>
+ <point x="810" y="1045" type="line"/>
+ <point x="815" y="1186"/>
+ <point x="816" y="1339"/>
+ <point x="845" y="1585" type="curve"/>
+ <point x="600" y="1585" type="line"/>
+ <point x="631" y="1339"/>
+ <point x="631" y="1186"/>
+ <point x="635" y="1045" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocuids.ufo/glyphs/R_everseS_olidus.glif b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/R_everseS_olidus.glif
new file mode 100644
index 0000000..799c999
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/R_everseS_olidus.glif
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="ReverseSolidus" format="2">
+ <advance width="1080"/>
+ <unicode hex="005C"/>
+ <outline>
+ <contour>
+ <point x="10" y="1600" type="line"/>
+ <point x="840" y="-245" type="line"/>
+ <point x="1070" y="-245" type="line"/>
+ <point x="240" y="1600" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocuids.ufo/glyphs/R_tC_urlyB_rac.glif b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/R_tC_urlyB_rac.glif
new file mode 100644
index 0000000..48383fb
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/R_tC_urlyB_rac.glif
@@ -0,0 +1,47 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="RtCurlyBrac" format="2">
+ <advance width="1040"/>
+ <unicode hex="007D"/>
+ <outline>
+ <contour>
+ <point x="180" y="-410" type="line"/>
+ <point x="316" y="-383"/>
+ <point x="520" y="-333"/>
+ <point x="570" y="-285" type="curve" smooth="yes"/>
+ <point x="645" y="-213"/>
+ <point x="633" y="378"/>
+ <point x="655" y="410" type="curve" smooth="yes"/>
+ <point x="685" y="453"/>
+ <point x="855" y="560"/>
+ <point x="855" y="615" type="curve" smooth="yes"/>
+ <point x="855" y="670"/>
+ <point x="685" y="777"/>
+ <point x="655" y="820" type="curve" smooth="yes"/>
+ <point x="633" y="852"/>
+ <point x="644" y="1442"/>
+ <point x="570" y="1515" type="curve" smooth="yes"/>
+ <point x="523" y="1562"/>
+ <point x="333" y="1613"/>
+ <point x="205" y="1640" type="curve"/>
+ <point x="155" y="1409" type="line"/>
+ <point x="218" y="1390"/>
+ <point x="323" y="1351"/>
+ <point x="340" y="1330" type="curve" smooth="yes"/>
+ <point x="375" y="1289"/>
+ <point x="364" y="820"/>
+ <point x="382" y="785" type="curve" smooth="yes"/>
+ <point x="405" y="740"/>
+ <point x="542" y="650"/>
+ <point x="542" y="615" type="curve" smooth="yes"/>
+ <point x="542" y="580"/>
+ <point x="404" y="491"/>
+ <point x="380" y="445" type="curve" smooth="yes"/>
+ <point x="362" y="411"/>
+ <point x="375" y="-60"/>
+ <point x="340" y="-100" type="curve" smooth="yes"/>
+ <point x="321" y="-122"/>
+ <point x="197" y="-160"/>
+ <point x="130" y="-179" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocuids.ufo/glyphs/R_tP_aren.glif b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/R_tP_aren.glif
new file mode 100644
index 0000000..ae49fca
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/R_tP_aren.glif
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="RtParen" format="2">
+ <advance width="860"/>
+ <unicode hex="0029"/>
+ <outline>
+ <contour>
+ <point x="185" y="1455" type="line"/>
+ <point x="395" y="1261"/>
+ <point x="485" y="938"/>
+ <point x="485" y="635" type="curve" smooth="yes"/>
+ <point x="485" y="335"/>
+ <point x="399" y="11"/>
+ <point x="175" y="-240" type="curve"/>
+ <point x="326" y="-410" type="line"/>
+ <point x="601" y="-125"/>
+ <point x="746" y="218"/>
+ <point x="746" y="625" type="curve" smooth="yes"/>
+ <point x="746" y="1062"/>
+ <point x="571" y="1444"/>
+ <point x="306" y="1640" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocuids.ufo/glyphs/R_tS_qrB_rac.glif b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/R_tS_qrB_rac.glif
new file mode 100644
index 0000000..325e575
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/R_tS_qrB_rac.glif
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="RtSqrBrac" format="2">
+ <advance width="850"/>
+ <unicode hex="005D"/>
+ <outline>
+ <contour>
+ <point x="660" y="-410" type="line"/>
+ <point x="660" y="1600" type="line"/>
+ <point x="140" y="1600" type="line"/>
+ <point x="140" y="1390" type="line"/>
+ <point x="380" y="1390" type="line"/>
+ <point x="380" y="-200" type="line"/>
+ <point x="140" y="-200" type="line"/>
+ <point x="140" y="-410" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocuids.ufo/glyphs/S_emicolon.glif b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/S_emicolon.glif
new file mode 100644
index 0000000..ae95657
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/S_emicolon.glif
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Semicolon" format="2">
+ <advance width="710"/>
+ <unicode hex="003B"/>
+ <outline>
+ <contour>
+ <point x="200" y="750" type="curve" smooth="yes"/>
+ <point x="200" y="646"/>
+ <point x="274" y="575"/>
+ <point x="375" y="575" type="curve" smooth="yes"/>
+ <point x="477" y="575"/>
+ <point x="550" y="646"/>
+ <point x="550" y="750" type="curve" smooth="yes"/>
+ <point x="550" y="852"/>
+ <point x="477" y="925"/>
+ <point x="375" y="925" type="curve" smooth="yes"/>
+ <point x="274" y="925"/>
+ <point x="200" y="852"/>
+ </contour>
+ <contour>
+ <point x="185" y="50" type="line"/>
+ <point x="345" y="50" type="line"/>
+ <point x="345" y="-34"/>
+ <point x="290" y="-153"/>
+ <point x="185" y="-265" type="curve"/>
+ <point x="330" y="-335" type="line"/>
+ <point x="454" y="-228"/>
+ <point x="560" y="-49"/>
+ <point x="560" y="130" type="curve" smooth="yes"/>
+ <point x="560" y="254"/>
+ <point x="489" y="340"/>
+ <point x="375" y="340" type="curve" smooth="yes"/>
+ <point x="262" y="340"/>
+ <point x="185" y="255"/>
+ <point x="185" y="180" type="curve" smooth="yes"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocuids.ufo/glyphs/S_olidus.glif b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/S_olidus.glif
new file mode 100644
index 0000000..1e33c05
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/S_olidus.glif
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Solidus" format="2">
+ <advance width="1080"/>
+ <unicode hex="002F"/>
+ <outline>
+ <contour>
+ <point x="840" y="1600" type="line"/>
+ <point x="10" y="-245" type="line"/>
+ <point x="240" y="-245" type="line"/>
+ <point x="1070" y="1600" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocuids.ufo/glyphs/S_pace.glif b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/S_pace.glif
new file mode 100644
index 0000000..ef0bed7
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/S_pace.glif
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Space" format="2">
+ <advance width="550"/>
+ <unicode hex="0020"/>
+ <outline/>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocuids.ufo/glyphs/T_ilde.glif b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/T_ilde.glif
new file mode 100644
index 0000000..ec9fc73
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/T_ilde.glif
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Tilde" format="2">
+ <advance width="1115"/>
+ <unicode hex="007E"/>
+ <outline>
+ <contour>
+ <point x="165" y="345" type="line"/>
+ <point x="170" y="394"/>
+ <point x="202" y="435"/>
+ <point x="280" y="435" type="curve" smooth="yes"/>
+ <point x="435" y="435"/>
+ <point x="615" y="330"/>
+ <point x="825" y="330" type="curve" smooth="yes"/>
+ <point x="984" y="330"/>
+ <point x="1080" y="512"/>
+ <point x="1080" y="640" type="curve"/>
+ <point x="935" y="640" type="line"/>
+ <point x="928" y="594"/>
+ <point x="898" y="540"/>
+ <point x="815" y="540" type="curve" smooth="yes"/>
+ <point x="599" y="540"/>
+ <point x="461" y="645"/>
+ <point x="260" y="645" type="curve" smooth="yes"/>
+ <point x="104" y="645"/>
+ <point x="20" y="467"/>
+ <point x="20" y="345" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocuids.ufo/glyphs/V_ertL_ine.glif b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/V_ertL_ine.glif
new file mode 100644
index 0000000..d7caa84
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/V_ertL_ine.glif
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="VertLine" format="2">
+ <advance width="690"/>
+ <unicode hex="007C"/>
+ <outline>
+ <contour>
+ <point x="240" y="1600" type="line"/>
+ <point x="240" y="-390" type="line"/>
+ <point x="450" y="-390" type="line"/>
+ <point x="450" y="1600" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocuids.ufo/glyphs/_notdef.glif b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/_notdef.glif
new file mode 100644
index 0000000..a3e9354
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/_notdef.glif
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name=".notdef" format="2">
+ <advance width="1400"/>
+ <outline>
+ <contour>
+ <point x="100" y="0" type="line"/>
+ <point x="1300" y="0" type="line"/>
+ <point x="1300" y="1800" type="line"/>
+ <point x="100" y="1800" type="line"/>
+ </contour>
+ <contour>
+ <point x="150" y="1750" type="line"/>
+ <point x="1250" y="1750" type="line"/>
+ <point x="1250" y="50" type="line"/>
+ <point x="150" y="50" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocuids.ufo/glyphs/_null.glif b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/_null.glif
new file mode 100644
index 0000000..0b9caa6
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/_null.glif
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name=".null" format="2">
+ <outline/>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocuids.ufo/glyphs/contents.plist b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/contents.plist
new file mode 100644
index 0000000..de3c0b3
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/contents.plist
@@ -0,0 +1,234 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>.notdef</key>
+ <string>_notdef.glif</string>
+ <key>.null</key>
+ <string>_null.glif</string>
+ <key>Ampersand</key>
+ <string>A_mpersand.glif</string>
+ <key>Apos</key>
+ <string>A_pos.glif</string>
+ <key>Asterisk</key>
+ <string>A_sterisk.glif</string>
+ <key>AtSgn</key>
+ <string>A_tS_gn.glif</string>
+ <key>CircumAccent</key>
+ <string>C_ircumA_ccent.glif</string>
+ <key>Colon</key>
+ <string>C_olon.glif</string>
+ <key>CombAcute</key>
+ <string>C_ombA_cute.glif</string>
+ <key>CombCircum</key>
+ <string>C_ombC_ircum.glif</string>
+ <key>CombDiaer</key>
+ <string>C_ombD_iaer.glif</string>
+ <key>CombGrave</key>
+ <string>C_ombG_rave.glif</string>
+ <key>CombRingAbv</key>
+ <string>C_ombR_ingA_bv.glif</string>
+ <key>CombTilde</key>
+ <string>C_ombT_ilde.glif</string>
+ <key>Comma</key>
+ <string>C_omma.glif</string>
+ <key>DigitEight</key>
+ <string>D_igitE_ight.glif</string>
+ <key>DigitFive</key>
+ <string>D_igitF_ive.glif</string>
+ <key>DigitFour</key>
+ <string>D_igitF_our.glif</string>
+ <key>DigitNine</key>
+ <string>D_igitN_ine.glif</string>
+ <key>DigitOne</key>
+ <string>D_igitO_ne.glif</string>
+ <key>DigitSeven</key>
+ <string>D_igitS_even.glif</string>
+ <key>DigitSix</key>
+ <string>D_igitS_ix.glif</string>
+ <key>DigitThree</key>
+ <string>D_igitT_hree.glif</string>
+ <key>DigitTwo</key>
+ <string>D_igitT_wo.glif</string>
+ <key>DigitZero</key>
+ <string>D_igitZ_ero.glif</string>
+ <key>DollarSgn</key>
+ <string>D_ollarS_gn.glif</string>
+ <key>DottedCirc</key>
+ <string>D_ottedC_irc.glif</string>
+ <key>EqSgn</key>
+ <string>E_qS_gn.glif</string>
+ <key>ExclamationMrk</key>
+ <string>E_xclamationM_rk.glif</string>
+ <key>FullStop</key>
+ <string>F_ullS_top.glif</string>
+ <key>GTSgn</key>
+ <string>G_T_S_gn.glif</string>
+ <key>GraveAccent</key>
+ <string>G_raveA_ccent.glif</string>
+ <key>Hyphen</key>
+ <string>H_yphen.glif</string>
+ <key>HyphenMinus</key>
+ <string>H_yphenM_inus.glif</string>
+ <key>Hyphen_Soft</key>
+ <string>H_yphen_S_oft.glif</string>
+ <key>LTSgn</key>
+ <string>L_T_S_gn.glif</string>
+ <key>LftCurlyBrac</key>
+ <string>L_ftC_urlyB_rac.glif</string>
+ <key>LftParen</key>
+ <string>L_ftP_aren.glif</string>
+ <key>LftSqrBrac</key>
+ <string>L_ftS_qrB_rac.glif</string>
+ <key>LowLine</key>
+ <string>L_owL_ine.glif</string>
+ <key>LtnCapA</key>
+ <string>L_tnC_apA_.glif</string>
+ <key>LtnCapA.alt</key>
+ <string>L_tnC_apA_.alt.glif</string>
+ <key>LtnCapADiaer</key>
+ <string>L_tnC_apA_D_iaer.glif</string>
+ <key>LtnCapB</key>
+ <string>L_tnC_apB_.glif</string>
+ <key>LtnCapC</key>
+ <string>L_tnC_apC_.glif</string>
+ <key>LtnCapD</key>
+ <string>L_tnC_apD_.glif</string>
+ <key>LtnCapE</key>
+ <string>L_tnC_apE_.glif</string>
+ <key>LtnCapF</key>
+ <string>L_tnC_apF_.glif</string>
+ <key>LtnCapG</key>
+ <string>L_tnC_apG_.glif</string>
+ <key>LtnCapH</key>
+ <string>L_tnC_apH_.glif</string>
+ <key>LtnCapI</key>
+ <string>L_tnC_apI_.glif</string>
+ <key>LtnCapJ</key>
+ <string>L_tnC_apJ_.glif</string>
+ <key>LtnCapK</key>
+ <string>L_tnC_apK_.glif</string>
+ <key>LtnCapL</key>
+ <string>L_tnC_apL_.glif</string>
+ <key>LtnCapM</key>
+ <string>L_tnC_apM_.glif</string>
+ <key>LtnCapN</key>
+ <string>L_tnC_apN_.glif</string>
+ <key>LtnCapO</key>
+ <string>L_tnC_apO_.glif</string>
+ <key>LtnCapP</key>
+ <string>L_tnC_apP_.glif</string>
+ <key>LtnCapQ</key>
+ <string>L_tnC_apQ_.glif</string>
+ <key>LtnCapR</key>
+ <string>L_tnC_apR_.glif</string>
+ <key>LtnCapS</key>
+ <string>L_tnC_apS_.glif</string>
+ <key>LtnCapT</key>
+ <string>L_tnC_apT_.glif</string>
+ <key>LtnCapU</key>
+ <string>L_tnC_apU_.glif</string>
+ <key>LtnCapV</key>
+ <string>L_tnC_apV_.glif</string>
+ <key>LtnCapW</key>
+ <string>L_tnC_apW_.glif</string>
+ <key>LtnCapX</key>
+ <string>L_tnC_apX_.glif</string>
+ <key>LtnCapY</key>
+ <string>L_tnC_apY_.glif</string>
+ <key>LtnSmA</key>
+ <string>L_tnS_mA_.glif</string>
+ <key>LtnSmAAcute</key>
+ <string>L_tnS_mA_A_cute.glif</string>
+ <key>LtnSmACircum</key>
+ <string>L_tnS_mA_C_ircum.glif</string>
+ <key>LtnSmADiaer</key>
+ <string>L_tnS_mA_D_iaer.glif</string>
+ <key>LtnSmAGrave</key>
+ <string>L_tnS_mA_G_rave.glif</string>
+ <key>LtnSmARingAbv</key>
+ <string>L_tnS_mA_R_ingA_bv.glif</string>
+ <key>LtnSmATilde</key>
+ <string>L_tnS_mA_T_ilde.glif</string>
+ <key>LtnSmB</key>
+ <string>L_tnS_mB_.glif</string>
+ <key>LtnSmC</key>
+ <string>L_tnS_mC_.glif</string>
+ <key>LtnSmD</key>
+ <string>L_tnS_mD_.glif</string>
+ <key>LtnSmE</key>
+ <string>L_tnS_mE_.glif</string>
+ <key>LtnSmF</key>
+ <string>L_tnS_mF_.glif</string>
+ <key>LtnSmG</key>
+ <string>L_tnS_mG_.glif</string>
+ <key>LtnSmH</key>
+ <string>L_tnS_mH_.glif</string>
+ <key>LtnSmI</key>
+ <string>L_tnS_mI_.glif</string>
+ <key>LtnSmJ</key>
+ <string>L_tnS_mJ_.glif</string>
+ <key>LtnSmK</key>
+ <string>L_tnS_mK_.glif</string>
+ <key>LtnSmL</key>
+ <string>L_tnS_mL_.glif</string>
+ <key>LtnSmM</key>
+ <string>L_tnS_mM_.glif</string>
+ <key>LtnSmN</key>
+ <string>L_tnS_mN_.glif</string>
+ <key>LtnSmO</key>
+ <string>L_tnS_mO_.glif</string>
+ <key>LtnSmP</key>
+ <string>L_tnS_mP_.glif</string>
+ <key>LtnSmQ</key>
+ <string>L_tnS_mQ_.glif</string>
+ <key>LtnSmR</key>
+ <string>L_tnS_mR_.glif</string>
+ <key>LtnSmS</key>
+ <string>L_tnS_mS_.glif</string>
+ <key>LtnSmT</key>
+ <string>L_tnS_mT_.glif</string>
+ <key>LtnSmU</key>
+ <string>L_tnS_mU_.glif</string>
+ <key>LtnSmV</key>
+ <string>L_tnS_mV_.glif</string>
+ <key>LtnSmW</key>
+ <string>L_tnS_mW_.glif</string>
+ <key>LtnSmX</key>
+ <string>L_tnS_mX_.glif</string>
+ <key>LtnSmY</key>
+ <string>L_tnS_mY_.glif</string>
+ <key>NonBreakingHyphen</key>
+ <string>N_onB_reakingH_yphen.glif</string>
+ <key>NumSgn</key>
+ <string>N_umS_gn.glif</string>
+ <key>PercentSgn</key>
+ <string>P_ercentS_gn.glif</string>
+ <key>PlusSgn</key>
+ <string>P_lusS_gn.glif</string>
+ <key>QstnMrk</key>
+ <string>Q_stnM_rk.glif</string>
+ <key>QuotMrk</key>
+ <string>Q_uotM_rk.glif</string>
+ <key>ReverseSolidus</key>
+ <string>R_everseS_olidus.glif</string>
+ <key>RtCurlyBrac</key>
+ <string>R_tC_urlyB_rac.glif</string>
+ <key>RtParen</key>
+ <string>R_tP_aren.glif</string>
+ <key>RtSqrBrac</key>
+ <string>R_tS_qrB_rac.glif</string>
+ <key>Semicolon</key>
+ <string>S_emicolon.glif</string>
+ <key>Solidus</key>
+ <string>S_olidus.glif</string>
+ <key>Space</key>
+ <string>S_pace.glif</string>
+ <key>Tilde</key>
+ <string>T_ilde.glif</string>
+ <key>VertLine</key>
+ <string>V_ertL_ine.glif</string>
+ <key>nonmarkingreturn</key>
+ <string>nonmarkingreturn.glif</string>
+</dict>
+</plist>
diff --git a/tests/reference/ufo/psfsetassocuids.ufo/glyphs/nonmarkingreturn.glif b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/nonmarkingreturn.glif
new file mode 100644
index 0000000..ee41448
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocuids.ufo/glyphs/nonmarkingreturn.glif
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="nonmarkingreturn" format="2">
+ <advance width="1024"/>
+ <outline/>
+</glyph>
diff --git a/tests/reference/ufo/psfsetassocuids.ufo/layercontents.plist b/tests/reference/ufo/psfsetassocuids.ufo/layercontents.plist
new file mode 100644
index 0000000..42b7482
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocuids.ufo/layercontents.plist
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<array>
+ <array>
+ <string>public.default</string>
+ <string>glyphs</string>
+ </array>
+</array>
+</plist>
diff --git a/tests/reference/ufo/psfsetassocuids.ufo/lib.plist b/tests/reference/ufo/psfsetassocuids.ufo/lib.plist
new file mode 100644
index 0000000..4fe2e05
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocuids.ufo/lib.plist
@@ -0,0 +1,535 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>com.schriftgestaltung.Glyphs.fontUserData</key>
+ <dict/>
+ <key>com.schriftgestaltung.appVersion</key>
+ <string>1161</string>
+ <key>com.schriftgestaltung.customParameter.GSFont.DisplayStrings</key>
+ <string/>
+ <key>com.schriftgestaltung.customParameter.GSFont.disablesAutomaticAlignment</key>
+ <true/>
+ <key>com.schriftgestaltung.customParameter.GSFont.disablesLastChange</key>
+ <true/>
+ <key>com.schriftgestaltung.customParameter.GSFont.useNiceNames</key>
+ <integer>0</integer>
+ <key>com.schriftgestaltung.customParameter.GSFontMaster.customValue</key>
+ <integer>0</integer>
+ <key>com.schriftgestaltung.customParameter.GSFontMaster.customValue1</key>
+ <integer>0</integer>
+ <key>com.schriftgestaltung.customParameter.GSFontMaster.customValue2</key>
+ <integer>0</integer>
+ <key>com.schriftgestaltung.customParameter.GSFontMaster.customValue3</key>
+ <integer>0</integer>
+ <key>com.schriftgestaltung.customParameter.GSFontMaster.iconName</key>
+ <string/>
+ <key>com.schriftgestaltung.customParameter.GSFontMaster.weightValue</key>
+ <integer>700</integer>
+ <key>com.schriftgestaltung.customParameter.GSFontMaster.widthValue</key>
+ <integer>100</integer>
+ <key>com.schriftgestaltung.disablesAutomaticAlignment</key>
+ <true/>
+ <key>com.schriftgestaltung.disablesLastChange</key>
+ <true/>
+ <key>com.schriftgestaltung.fontMasterOrder</key>
+ <integer>1</integer>
+ <key>com.schriftgestaltung.glyphOrder</key>
+ <array>
+ <string>.notdef</string>
+ <string>.null</string>
+ <string>nonmarkingreturn</string>
+ <string>Space</string>
+ <string>ExclamationMrk</string>
+ <string>QuotMrk</string>
+ <string>NumSgn</string>
+ <string>DollarSgn</string>
+ <string>PercentSgn</string>
+ <string>Ampersand</string>
+ <string>Apos</string>
+ <string>LftParen</string>
+ <string>RtParen</string>
+ <string>Asterisk</string>
+ <string>PlusSgn</string>
+ <string>Comma</string>
+ <string>HyphenMinus</string>
+ <string>FullStop</string>
+ <string>Solidus</string>
+ <string>DigitOne</string>
+ <string>DigitTwo</string>
+ <string>DigitThree</string>
+ <string>DigitFour</string>
+ <string>DigitFive</string>
+ <string>DigitSix</string>
+ <string>DigitSeven</string>
+ <string>DigitEight</string>
+ <string>DigitNine</string>
+ <string>Colon</string>
+ <string>Semicolon</string>
+ <string>LTSgn</string>
+ <string>EqSgn</string>
+ <string>GTSgn</string>
+ <string>QstnMrk</string>
+ <string>AtSgn</string>
+ <string>LtnCapA</string>
+ <string>LtnCapA.alt</string>
+ <string>LtnCapB</string>
+ <string>LtnCapC</string>
+ <string>LtnCapD</string>
+ <string>LtnCapE</string>
+ <string>LtnCapF</string>
+ <string>LtnCapG</string>
+ <string>LtnCapH</string>
+ <string>LtnCapI</string>
+ <string>LtnCapJ</string>
+ <string>LtnCapK</string>
+ <string>LtnCapL</string>
+ <string>LtnCapM</string>
+ <string>LtnCapN</string>
+ <string>LtnCapO</string>
+ <string>LtnCapP</string>
+ <string>LtnCapQ</string>
+ <string>LtnCapR</string>
+ <string>LtnCapS</string>
+ <string>LtnCapT</string>
+ <string>LtnCapU</string>
+ <string>LtnCapV</string>
+ <string>LtnCapW</string>
+ <string>LtnCapX</string>
+ <string>LtnCapY</string>
+ <string>LftSqrBrac</string>
+ <string>ReverseSolidus</string>
+ <string>RtSqrBrac</string>
+ <string>CircumAccent</string>
+ <string>LowLine</string>
+ <string>GraveAccent</string>
+ <string>LtnSmA</string>
+ <string>LtnSmB</string>
+ <string>LtnSmC</string>
+ <string>LtnSmD</string>
+ <string>LtnSmE</string>
+ <string>LtnSmF</string>
+ <string>LtnSmG</string>
+ <string>LtnSmH</string>
+ <string>LtnSmI</string>
+ <string>LtnSmJ</string>
+ <string>LtnSmK</string>
+ <string>LtnSmL</string>
+ <string>LtnSmM</string>
+ <string>LtnSmN</string>
+ <string>LtnSmO</string>
+ <string>LtnSmP</string>
+ <string>LtnSmQ</string>
+ <string>LtnSmR</string>
+ <string>LtnSmS</string>
+ <string>LtnSmT</string>
+ <string>LtnSmU</string>
+ <string>LtnSmV</string>
+ <string>LtnSmW</string>
+ <string>LtnSmX</string>
+ <string>LtnSmY</string>
+ <string>LftCurlyBrac</string>
+ <string>VertLine</string>
+ <string>RtCurlyBrac</string>
+ <string>Tilde</string>
+ <string>LtnCapADiaer</string>
+ <string>LtnSmAAcute</string>
+ <string>LtnSmAGrave</string>
+ <string>LtnSmACircum</string>
+ <string>LtnSmADiaer</string>
+ <string>LtnSmATilde</string>
+ <string>LtnSmARingAbv</string>
+ <string>DottedCirc</string>
+ <string>Hyphen</string>
+ <string>NonBreakingHyphen</string>
+ <string>Hyphen_Soft</string>
+ <string>CombAcute</string>
+ <string>CombGrave</string>
+ <string>CombCircum</string>
+ <string>CombTilde</string>
+ <string>CombDiaer</string>
+ <string>CombRingAbv</string>
+ </array>
+ <key>com.schriftgestaltung.keyboardIncrement</key>
+ <integer>1</integer>
+ <key>com.schriftgestaltung.weight</key>
+ <string>Bold</string>
+ <key>com.schriftgestaltung.weightValue</key>
+ <integer>700</integer>
+ <key>com.schriftgestaltung.width</key>
+ <string>Regular</string>
+ <key>com.schriftgestaltung.widthValue</key>
+ <integer>100</integer>
+ <key>org.sil.lcg.toneLetters</key>
+ <dict>
+ <key>contourWidth</key>
+ <integer>540</integer>
+ <key>dotSize</key>
+ <integer>280</integer>
+ <key>dotSpacing</key>
+ <integer>200</integer>
+ <key>glyphDepth</key>
+ <integer>-25</integer>
+ <key>glyphHeight</key>
+ <integer>1600</integer>
+ <key>italicAngle</key>
+ <integer>0</integer>
+ <key>marginDotLeft</key>
+ <integer>100</integer>
+ <key>marginDotRight</key>
+ <integer>140</integer>
+ <key>marginFlatLeft</key>
+ <integer>100</integer>
+ <key>marginFlatRight</key>
+ <integer>140</integer>
+ <key>marginPointLeft</key>
+ <integer>80</integer>
+ <key>marginPointRight</key>
+ <integer>120</integer>
+ <key>strokeThickness</key>
+ <integer>200</integer>
+ </dict>
+ <key>public.glyphOrder</key>
+ <array>
+ <string>.notdef</string>
+ <string>.null</string>
+ <string>nonmarkingreturn</string>
+ <string>Space</string>
+ <string>ExclamationMrk</string>
+ <string>QuotMrk</string>
+ <string>NumSgn</string>
+ <string>DollarSgn</string>
+ <string>PercentSgn</string>
+ <string>Ampersand</string>
+ <string>Apos</string>
+ <string>LftParen</string>
+ <string>RtParen</string>
+ <string>Asterisk</string>
+ <string>PlusSgn</string>
+ <string>Comma</string>
+ <string>HyphenMinus</string>
+ <string>FullStop</string>
+ <string>Solidus</string>
+ <string>DigitZero</string>
+ <string>DigitOne</string>
+ <string>DigitTwo</string>
+ <string>DigitThree</string>
+ <string>DigitFour</string>
+ <string>DigitFive</string>
+ <string>DigitSix</string>
+ <string>DigitSeven</string>
+ <string>DigitEight</string>
+ <string>DigitNine</string>
+ <string>Colon</string>
+ <string>Semicolon</string>
+ <string>LTSgn</string>
+ <string>EqSgn</string>
+ <string>GTSgn</string>
+ <string>QstnMrk</string>
+ <string>AtSgn</string>
+ <string>LtnCapA</string>
+ <string>LtnCapA.alt</string>
+ <string>LtnCapB</string>
+ <string>LtnCapC</string>
+ <string>LtnCapD</string>
+ <string>LtnCapE</string>
+ <string>LtnCapF</string>
+ <string>LtnCapG</string>
+ <string>LtnCapH</string>
+ <string>LtnCapI</string>
+ <string>LtnCapJ</string>
+ <string>LtnCapK</string>
+ <string>LtnCapL</string>
+ <string>LtnCapM</string>
+ <string>LtnCapN</string>
+ <string>LtnCapO</string>
+ <string>LtnCapP</string>
+ <string>LtnCapQ</string>
+ <string>LtnCapR</string>
+ <string>LtnCapS</string>
+ <string>LtnCapT</string>
+ <string>LtnCapU</string>
+ <string>LtnCapV</string>
+ <string>LtnCapW</string>
+ <string>LtnCapX</string>
+ <string>LtnCapY</string>
+ <string>LftSqrBrac</string>
+ <string>ReverseSolidus</string>
+ <string>RtSqrBrac</string>
+ <string>CircumAccent</string>
+ <string>LowLine</string>
+ <string>GraveAccent</string>
+ <string>LtnSmA</string>
+ <string>LtnSmB</string>
+ <string>LtnSmC</string>
+ <string>LtnSmD</string>
+ <string>LtnSmE</string>
+ <string>LtnSmF</string>
+ <string>LtnSmG</string>
+ <string>LtnSmH</string>
+ <string>LtnSmI</string>
+ <string>LtnSmJ</string>
+ <string>LtnSmK</string>
+ <string>LtnSmL</string>
+ <string>LtnSmM</string>
+ <string>LtnSmN</string>
+ <string>LtnSmO</string>
+ <string>LtnSmP</string>
+ <string>LtnSmQ</string>
+ <string>LtnSmR</string>
+ <string>LtnSmS</string>
+ <string>LtnSmT</string>
+ <string>LtnSmU</string>
+ <string>LtnSmV</string>
+ <string>LtnSmW</string>
+ <string>LtnSmX</string>
+ <string>LtnSmY</string>
+ <string>LftCurlyBrac</string>
+ <string>VertLine</string>
+ <string>RtCurlyBrac</string>
+ <string>Tilde</string>
+ <string>LtnCapADiaer</string>
+ <string>LtnSmAAcute</string>
+ <string>LtnSmAGrave</string>
+ <string>LtnSmACircum</string>
+ <string>LtnSmADiaer</string>
+ <string>LtnSmATilde</string>
+ <string>LtnSmARingAbv</string>
+ <string>DottedCirc</string>
+ <string>Hyphen</string>
+ <string>NonBreakingHyphen</string>
+ <string>Hyphen_Soft</string>
+ <string>CombAcute</string>
+ <string>CombGrave</string>
+ <string>CombCircum</string>
+ <string>CombTilde</string>
+ <string>CombDiaer</string>
+ <string>CombRingAbv</string>
+ </array>
+ <key>public.postscriptNames</key>
+ <dict>
+ <key>Ampersand</key>
+ <string>ampersand</string>
+ <key>Apos</key>
+ <string>quotesingle</string>
+ <key>Asterisk</key>
+ <string>asterisk</string>
+ <key>AtSgn</key>
+ <string>at</string>
+ <key>CircumAccent</key>
+ <string>asciicircum</string>
+ <key>Colon</key>
+ <string>colon</string>
+ <key>CombAcute</key>
+ <string>acutecomb</string>
+ <key>CombCircum</key>
+ <string>uni0302</string>
+ <key>CombDiaer</key>
+ <string>uni0308</string>
+ <key>CombGrave</key>
+ <string>gravecomb</string>
+ <key>CombRingAbv</key>
+ <string>uni030A</string>
+ <key>CombTilde</key>
+ <string>tildecomb</string>
+ <key>Comma</key>
+ <string>comma</string>
+ <key>DigitEight</key>
+ <string>eight</string>
+ <key>DigitFive</key>
+ <string>five</string>
+ <key>DigitFour</key>
+ <string>four</string>
+ <key>DigitNine</key>
+ <string>nine</string>
+ <key>DigitOne</key>
+ <string>one</string>
+ <key>DigitSeven</key>
+ <string>seven</string>
+ <key>DigitSix</key>
+ <string>six</string>
+ <key>DigitThree</key>
+ <string>three</string>
+ <key>DigitTwo</key>
+ <string>two</string>
+ <key>DigitZero</key>
+ <string>zero</string>
+ <key>DollarSgn</key>
+ <string>dollar</string>
+ <key>DottedCirc</key>
+ <string>uni25CC</string>
+ <key>EqSgn</key>
+ <string>equal</string>
+ <key>ExclamationMrk</key>
+ <string>exclam</string>
+ <key>FullStop</key>
+ <string>period</string>
+ <key>GTSgn</key>
+ <string>greater</string>
+ <key>GraveAccent</key>
+ <string>grave</string>
+ <key>Hyphen</key>
+ <string>uni2010</string>
+ <key>HyphenMinus</key>
+ <string>hyphen</string>
+ <key>Hyphen_Soft</key>
+ <string>uni00AD</string>
+ <key>LTSgn</key>
+ <string>less</string>
+ <key>LftCurlyBrac</key>
+ <string>braceleft</string>
+ <key>LftParen</key>
+ <string>parenleft</string>
+ <key>LftSqrBrac</key>
+ <string>bracketleft</string>
+ <key>LowLine</key>
+ <string>underscore</string>
+ <key>LtnCapA</key>
+ <string>A</string>
+ <key>LtnCapA.alt</key>
+ <string>A</string>
+ <key>LtnCapADiaer</key>
+ <string>Adieresis</string>
+ <key>LtnCapB</key>
+ <string>B</string>
+ <key>LtnCapC</key>
+ <string>C</string>
+ <key>LtnCapD</key>
+ <string>D</string>
+ <key>LtnCapE</key>
+ <string>E</string>
+ <key>LtnCapF</key>
+ <string>F</string>
+ <key>LtnCapG</key>
+ <string>G</string>
+ <key>LtnCapH</key>
+ <string>H</string>
+ <key>LtnCapI</key>
+ <string>I</string>
+ <key>LtnCapJ</key>
+ <string>J</string>
+ <key>LtnCapK</key>
+ <string>K</string>
+ <key>LtnCapL</key>
+ <string>L</string>
+ <key>LtnCapM</key>
+ <string>M</string>
+ <key>LtnCapN</key>
+ <string>N</string>
+ <key>LtnCapO</key>
+ <string>O</string>
+ <key>LtnCapP</key>
+ <string>P</string>
+ <key>LtnCapQ</key>
+ <string>Q</string>
+ <key>LtnCapR</key>
+ <string>R</string>
+ <key>LtnCapS</key>
+ <string>S</string>
+ <key>LtnCapT</key>
+ <string>T</string>
+ <key>LtnCapU</key>
+ <string>U</string>
+ <key>LtnCapV</key>
+ <string>V</string>
+ <key>LtnCapW</key>
+ <string>W</string>
+ <key>LtnCapX</key>
+ <string>X</string>
+ <key>LtnCapY</key>
+ <string>Y</string>
+ <key>LtnSmA</key>
+ <string>a</string>
+ <key>LtnSmAAcute</key>
+ <string>aacute</string>
+ <key>LtnSmACircum</key>
+ <string>acircumflex</string>
+ <key>LtnSmADiaer</key>
+ <string>adieresis</string>
+ <key>LtnSmAGrave</key>
+ <string>agrave</string>
+ <key>LtnSmARingAbv</key>
+ <string>aring</string>
+ <key>LtnSmATilde</key>
+ <string>atilde</string>
+ <key>LtnSmB</key>
+ <string>b</string>
+ <key>LtnSmC</key>
+ <string>c</string>
+ <key>LtnSmD</key>
+ <string>d</string>
+ <key>LtnSmE</key>
+ <string>e</string>
+ <key>LtnSmF</key>
+ <string>f</string>
+ <key>LtnSmG</key>
+ <string>g</string>
+ <key>LtnSmH</key>
+ <string>h</string>
+ <key>LtnSmI</key>
+ <string>i</string>
+ <key>LtnSmJ</key>
+ <string>j</string>
+ <key>LtnSmK</key>
+ <string>k</string>
+ <key>LtnSmL</key>
+ <string>l</string>
+ <key>LtnSmM</key>
+ <string>m</string>
+ <key>LtnSmN</key>
+ <string>n</string>
+ <key>LtnSmO</key>
+ <string>o</string>
+ <key>LtnSmP</key>
+ <string>p</string>
+ <key>LtnSmQ</key>
+ <string>q</string>
+ <key>LtnSmR</key>
+ <string>r</string>
+ <key>LtnSmS</key>
+ <string>s</string>
+ <key>LtnSmT</key>
+ <string>t</string>
+ <key>LtnSmU</key>
+ <string>u</string>
+ <key>LtnSmV</key>
+ <string>v</string>
+ <key>LtnSmW</key>
+ <string>w</string>
+ <key>LtnSmX</key>
+ <string>x</string>
+ <key>LtnSmY</key>
+ <string>y</string>
+ <key>NonBreakingHyphen</key>
+ <string>uni2011</string>
+ <key>NumSgn</key>
+ <string>numbersign</string>
+ <key>PercentSgn</key>
+ <string>percent</string>
+ <key>PlusSgn</key>
+ <string>plus</string>
+ <key>QstnMrk</key>
+ <string>question</string>
+ <key>QuotMrk</key>
+ <string>quotedbl</string>
+ <key>ReverseSolidus</key>
+ <string>backslash</string>
+ <key>RtCurlyBrac</key>
+ <string>braceright</string>
+ <key>RtParen</key>
+ <string>parenright</string>
+ <key>RtSqrBrac</key>
+ <string>bracketright</string>
+ <key>Semicolon</key>
+ <string>semicolon</string>
+ <key>Solidus</key>
+ <string>slash</string>
+ <key>Space</key>
+ <string>space</string>
+ <key>Tilde</key>
+ <string>asciitilde</string>
+ <key>VertLine</key>
+ <string>bar</string>
+ </dict>
+</dict>
+</plist>
diff --git a/tests/reference/ufo/psfsetassocuids.ufo/metainfo.plist b/tests/reference/ufo/psfsetassocuids.ufo/metainfo.plist
new file mode 100644
index 0000000..aa10c5c
--- /dev/null
+++ b/tests/reference/ufo/psfsetassocuids.ufo/metainfo.plist
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>creator</key>
+ <string>org.sil.scripts.pysilfont</string>
+ <key>formatVersion</key>
+ <integer>3</integer>
+</dict>
+</plist>
diff --git a/tests/reference/ufo/psfsetglyphorder.lg b/tests/reference/ufo/psfsetglyphorder.lg
new file mode 100644
index 0000000..d2af751
--- /dev/null
+++ b/tests/reference/ufo/psfsetglyphorder.lg
@@ -0,0 +1,158 @@
+2021-06-29 14:42:22 Progress: Running: psfsetglyphorder tests/input/font-psf-test/source/PsfTest-Italic.ufo -i tests/input/glyph_data.csv -l local/testresults/ufo/psfsetglyphorder.log -p loglevel=i
+2021-06-29 14:42:22 Progress: Opening file for input: tests/input/glyph_data.csv
+2021-06-29 14:42:22 Progress: Reading UFO: tests/input/font-psf-test/source/PsfTest-Italic.ufo
+2021-06-29 14:42:22 Info: Processing Glyph Layer 0: public.defaultglyphs
+2021-06-29 14:42:22 Progress: Checking fontinfo.plist metadata
+2021-06-29 14:42:22 Warning: openTypeOS2FamilyClass would be removed from fontinfo Old value: [0, 0]
+2021-06-29 14:42:22 Info: Types: Old - list, New - NoneType
+2021-06-29 14:42:22 Warning: year would be removed from fontinfo Old value: 2021
+2021-06-29 14:42:22 Info: Types: Old - int, New - NoneType
+2021-06-29 14:42:22 Warning: capHeight would be updated Old value: 1485.3, new value: 1485
+2021-06-29 14:42:22 Info: Types: Old - float, New - int
+2021-06-29 14:42:22 Warning: styleMapFamilyName would be uppdated Old value: Psf test, new value: Psf Test
+2021-06-29 14:42:22 Info: Types: Old - string, New - string
+2021-06-29 14:42:22 Warning: openTypeOS2TypoLineGap would be updated Old value: 1, new value: 0
+2021-06-29 14:42:22 Info: Types: Old - int, New - int
+2021-06-29 14:42:22 Warning: openTypeOS2Selection would be added New value: [7]
+2021-06-29 14:42:22 Info: Types: Old - NoneType, New - list
+2021-06-29 14:42:22 Warning: openTypeNamePreferredFamilyName would be updated Old value: Psf Testing, new value: Psf Test
+2021-06-29 14:42:22 Info: Types: Old - string, New - string
+2021-06-29 14:42:22 Progress: Checking lib.plist metadata
+2021-06-29 14:42:22 Warning: com.schriftgestaltung.disablesAutomaticAlignment would be deleted - obsolete key Old value: True
+2021-06-29 14:42:22 Info: Types: Old - bool, New - NoneType
+2021-06-29 14:42:22 Warning: com.schriftgestaltung.disablesLastChange would be deleted - obsolete key Old value: True
+2021-06-29 14:42:22 Info: Types: Old - bool, New - NoneType
+2021-06-29 14:42:22 Progress: Check & fix results:- Errors: 0, Changes to make: 9, Other warnings: 0
+2021-06-29 14:42:22 Progress: See log file for details
+2021-06-29 14:42:22 Info: No glyph in font for LtnSmEAcute
+2021-06-29 14:42:22 Info: No glyph in font for LtnSmIAcute
+2021-06-29 14:42:22 Info: No glyph in font for LtnSmOAcute
+2021-06-29 14:42:22 Info: No glyph in font for LtnSmUAcute
+2021-06-29 14:42:22 Info: No glyph in font for Bullet
+2021-06-29 14:42:22 Info: No glyph in font for AcuteAccent
+2021-06-29 14:42:22 Info: No glyph in font for LtnCapEAcute
+2021-06-29 14:42:22 Info: No glyph in font for LtnCapAAcute
+2021-06-29 14:42:22 Info: No glyph in font for LtnCapIAcute
+2021-06-29 14:42:22 Info: No glyph in font for LtnCapOAcute
+2021-06-29 14:42:22 Info: No glyph in font for LtnCapUAcute
+2021-06-29 14:42:22 Info: No glyph in font for ModCircumAccent
+2021-06-29 14:42:22 Info: No glyph in font for DblAcuteAccent
+2021-06-29 14:42:22 Info: No glyph in font for LtnSmYAcute
+2021-06-29 14:42:22 Info: No glyph in font for LtnCapYAcute
+2021-06-29 14:42:22 Info: No glyph in font for SupOne
+2021-06-29 14:42:22 Info: No glyph in font for SupThree
+2021-06-29 14:42:22 Info: No glyph in font for VulgFracOneHalf
+2021-06-29 14:42:22 Info: No glyph in font for VulgFracOneQuarter
+2021-06-29 14:42:22 Info: No glyph in font for VulgFracThreeQuarters
+2021-06-29 14:42:22 Info: No glyph in font for BulletOperator
+2021-06-29 14:42:22 Info: No entry in input file for font glyph .notdef
+2021-06-29 14:42:22 Info: No entry in input file for font glyph .null
+2021-06-29 14:42:22 Info: No entry in input file for font glyph Ampersand
+2021-06-29 14:42:22 Info: No entry in input file for font glyph Apos
+2021-06-29 14:42:22 Info: No entry in input file for font glyph Asterisk
+2021-06-29 14:42:22 Info: No entry in input file for font glyph AtSgn
+2021-06-29 14:42:22 Info: No entry in input file for font glyph Colon
+2021-06-29 14:42:22 Info: No entry in input file for font glyph CombCircum
+2021-06-29 14:42:22 Info: No entry in input file for font glyph CombDiaer
+2021-06-29 14:42:22 Info: No entry in input file for font glyph CombGrave
+2021-06-29 14:42:22 Info: No entry in input file for font glyph CombRingAbv
+2021-06-29 14:42:22 Info: No entry in input file for font glyph CombTilde
+2021-06-29 14:42:22 Info: No entry in input file for font glyph Comma
+2021-06-29 14:42:22 Info: No entry in input file for font glyph DigitEight
+2021-06-29 14:42:22 Info: No entry in input file for font glyph DigitFive
+2021-06-29 14:42:22 Info: No entry in input file for font glyph DigitFour
+2021-06-29 14:42:22 Info: No entry in input file for font glyph DigitNine
+2021-06-29 14:42:22 Info: No entry in input file for font glyph DigitOne
+2021-06-29 14:42:22 Info: No entry in input file for font glyph DigitSeven
+2021-06-29 14:42:22 Info: No entry in input file for font glyph DigitSix
+2021-06-29 14:42:22 Info: No entry in input file for font glyph DigitThree
+2021-06-29 14:42:22 Info: No entry in input file for font glyph DigitTwo
+2021-06-29 14:42:22 Info: No entry in input file for font glyph DigitZero
+2021-06-29 14:42:22 Info: No entry in input file for font glyph DollarSgn
+2021-06-29 14:42:22 Info: No entry in input file for font glyph DottedCirc
+2021-06-29 14:42:22 Info: No entry in input file for font glyph EqSgn
+2021-06-29 14:42:22 Info: No entry in input file for font glyph ExclamationMrk
+2021-06-29 14:42:22 Info: No entry in input file for font glyph FullStop
+2021-06-29 14:42:22 Info: No entry in input file for font glyph GTSgn
+2021-06-29 14:42:22 Info: No entry in input file for font glyph GraveAccent
+2021-06-29 14:42:22 Info: No entry in input file for font glyph Hyphen
+2021-06-29 14:42:22 Info: No entry in input file for font glyph Hyphen_Soft
+2021-06-29 14:42:22 Info: No entry in input file for font glyph LTSgn
+2021-06-29 14:42:22 Info: No entry in input file for font glyph LftCurlyBrac
+2021-06-29 14:42:22 Info: No entry in input file for font glyph LftParen
+2021-06-29 14:42:22 Info: No entry in input file for font glyph LftSqrBrac
+2021-06-29 14:42:22 Info: No entry in input file for font glyph LowLine
+2021-06-29 14:42:22 Info: No entry in input file for font glyph LtnCapA
+2021-06-29 14:42:22 Info: No entry in input file for font glyph LtnCapADiaer
+2021-06-29 14:42:22 Info: No entry in input file for font glyph LtnCapB
+2021-06-29 14:42:22 Info: No entry in input file for font glyph LtnCapC
+2021-06-29 14:42:22 Info: No entry in input file for font glyph LtnCapD
+2021-06-29 14:42:22 Info: No entry in input file for font glyph LtnCapE
+2021-06-29 14:42:22 Info: No entry in input file for font glyph LtnCapF
+2021-06-29 14:42:22 Info: No entry in input file for font glyph LtnCapG
+2021-06-29 14:42:22 Info: No entry in input file for font glyph LtnCapH
+2021-06-29 14:42:22 Info: No entry in input file for font glyph LtnCapI
+2021-06-29 14:42:22 Info: No entry in input file for font glyph LtnCapJ
+2021-06-29 14:42:22 Info: No entry in input file for font glyph LtnCapK
+2021-06-29 14:42:22 Info: No entry in input file for font glyph LtnCapL
+2021-06-29 14:42:22 Info: No entry in input file for font glyph LtnCapM
+2021-06-29 14:42:22 Info: No entry in input file for font glyph LtnCapN
+2021-06-29 14:42:22 Info: No entry in input file for font glyph LtnCapO
+2021-06-29 14:42:22 Info: No entry in input file for font glyph LtnCapP
+2021-06-29 14:42:22 Info: No entry in input file for font glyph LtnCapQ
+2021-06-29 14:42:22 Info: No entry in input file for font glyph LtnCapR
+2021-06-29 14:42:22 Info: No entry in input file for font glyph LtnCapS
+2021-06-29 14:42:22 Info: No entry in input file for font glyph LtnCapT
+2021-06-29 14:42:22 Info: No entry in input file for font glyph LtnCapU
+2021-06-29 14:42:22 Info: No entry in input file for font glyph LtnCapV
+2021-06-29 14:42:22 Info: No entry in input file for font glyph LtnCapW
+2021-06-29 14:42:22 Info: No entry in input file for font glyph LtnCapX
+2021-06-29 14:42:22 Info: No entry in input file for font glyph LtnCapY
+2021-06-29 14:42:22 Info: No entry in input file for font glyph LtnSmA
+2021-06-29 14:42:22 Info: No entry in input file for font glyph LtnSmACircum
+2021-06-29 14:42:22 Info: No entry in input file for font glyph LtnSmADiaer
+2021-06-29 14:42:22 Info: No entry in input file for font glyph LtnSmAGrave
+2021-06-29 14:42:22 Info: No entry in input file for font glyph LtnSmARingAbv
+2021-06-29 14:42:22 Info: No entry in input file for font glyph LtnSmATilde
+2021-06-29 14:42:22 Info: No entry in input file for font glyph LtnSmB
+2021-06-29 14:42:22 Info: No entry in input file for font glyph LtnSmC
+2021-06-29 14:42:22 Info: No entry in input file for font glyph LtnSmD
+2021-06-29 14:42:22 Info: No entry in input file for font glyph LtnSmE
+2021-06-29 14:42:22 Info: No entry in input file for font glyph LtnSmF
+2021-06-29 14:42:22 Info: No entry in input file for font glyph LtnSmG
+2021-06-29 14:42:22 Info: No entry in input file for font glyph LtnSmH
+2021-06-29 14:42:22 Info: No entry in input file for font glyph LtnSmI
+2021-06-29 14:42:22 Info: No entry in input file for font glyph LtnSmJ
+2021-06-29 14:42:22 Info: No entry in input file for font glyph LtnSmK
+2021-06-29 14:42:22 Info: No entry in input file for font glyph LtnSmL
+2021-06-29 14:42:22 Info: No entry in input file for font glyph LtnSmM
+2021-06-29 14:42:22 Info: No entry in input file for font glyph LtnSmN
+2021-06-29 14:42:22 Info: No entry in input file for font glyph LtnSmO
+2021-06-29 14:42:22 Info: No entry in input file for font glyph LtnSmP
+2021-06-29 14:42:22 Info: No entry in input file for font glyph LtnSmQ
+2021-06-29 14:42:22 Info: No entry in input file for font glyph LtnSmR
+2021-06-29 14:42:22 Info: No entry in input file for font glyph LtnSmS
+2021-06-29 14:42:22 Info: No entry in input file for font glyph LtnSmT
+2021-06-29 14:42:22 Info: No entry in input file for font glyph LtnSmU
+2021-06-29 14:42:22 Info: No entry in input file for font glyph LtnSmV
+2021-06-29 14:42:22 Info: No entry in input file for font glyph LtnSmW
+2021-06-29 14:42:22 Info: No entry in input file for font glyph LtnSmX
+2021-06-29 14:42:22 Info: No entry in input file for font glyph LtnSmY
+2021-06-29 14:42:22 Info: No entry in input file for font glyph NonBreakingHyphen
+2021-06-29 14:42:22 Info: No entry in input file for font glyph NumSgn
+2021-06-29 14:42:22 Info: No entry in input file for font glyph PercentSgn
+2021-06-29 14:42:22 Info: No entry in input file for font glyph PlusSgn
+2021-06-29 14:42:22 Info: No entry in input file for font glyph QstnMrk
+2021-06-29 14:42:22 Info: No entry in input file for font glyph QuotMrk
+2021-06-29 14:42:22 Info: No entry in input file for font glyph RtCurlyBrac
+2021-06-29 14:42:22 Info: No entry in input file for font glyph RtParen
+2021-06-29 14:42:22 Info: No entry in input file for font glyph RtSqrBrac
+2021-06-29 14:42:22 Info: No entry in input file for font glyph Semicolon
+2021-06-29 14:42:22 Info: No entry in input file for font glyph Solidus
+2021-06-29 14:42:22 Info: No entry in input file for font glyph Space
+2021-06-29 14:42:22 Info: No entry in input file for font glyph Tilde
+2021-06-29 14:42:22 Info: No entry in input file for font glyph VertLine
+2021-06-29 14:42:22 Progress: Processing font for output
+2021-06-29 14:42:22 Progress: Output UFO already exists - reading for comparison
+2021-06-29 14:42:22 Progress: Writing font to local/testresults/ufo/psfsetglyphorder.ufo
+2021-06-29 14:42:22 Info: Processing glyphs directory
diff --git a/tests/reference/ufo/psfsetglyphorder.ufo/fontinfo.plist b/tests/reference/ufo/psfsetglyphorder.ufo/fontinfo.plist
new file mode 100644
index 0000000..44ce162
--- /dev/null
+++ b/tests/reference/ufo/psfsetglyphorder.ufo/fontinfo.plist
@@ -0,0 +1,243 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>ascender</key>
+ <integer>2100</integer>
+ <key>capHeight</key>
+ <real>1485.3</real>
+ <key>copyright</key>
+ <string>Copyright (c) 2004-2021 SIL International</string>
+ <key>descender</key>
+ <integer>-550</integer>
+ <key>familyName</key>
+ <string>Psf Test</string>
+ <key>italicAngle</key>
+ <integer>-14</integer>
+ <key>openTypeHeadCreated</key>
+ <string>2021/01/29 10:05:07</string>
+ <key>openTypeHheaAscender</key>
+ <integer>2100</integer>
+ <key>openTypeHheaDescender</key>
+ <integer>-550</integer>
+ <key>openTypeHheaLineGap</key>
+ <integer>0</integer>
+ <key>openTypeNameDescription</key>
+ <string>Copyright (c) 2004-2021 SIL International</string>
+ <key>openTypeNameDesigner</key>
+ <string>Victor Gaultney, Annie Olsen, Julie Remington, Don Collingsworth, Eric Hays, Becca Hirsbrunner</string>
+ <key>openTypeNameDesignerURL</key>
+ <string>http://scripts.sil.org/</string>
+ <key>openTypeNameLicense</key>
+ <string>Copyright (c) 2004-2021 SIL International (http://www.sil.org/) with Reserved Font Names "Andika" and "SIL".
+
+This Font Software is licensed under the SIL Open Font License, Version 1.1. This license is copied below, and is also available with a FAQ at: http://scripts.sil.org/OFL
+
+
+-----------------------------------------------------------
+SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
+-----------------------------------------------------------
+
+PREAMBLE
+The goals of the Open Font License (OFL) are to stimulate worldwide development of collaborative font projects, to support the font creation efforts of academic and linguistic communities, and to provide a free and open framework in which fonts may be shared and improved in partnership with others.
+
+The OFL allows the licensed fonts to be used, studied, modified and redistributed freely as long as they are not sold by themselves. The fonts, including any derivative works, can be bundled, embedded, redistributed and/or sold with any software provided that any reserved names are not used by derivative works. The fonts and derivatives, however, cannot be released under any other type of license. The requirement for fonts to remain under this license does not apply to any document created using the fonts or their derivatives.
+
+DEFINITIONS
+"Font Software" refers to the set of files released by the Copyright Holder(s) under this license and clearly marked as such. This may include source files, build scripts and documentation.
+
+"Reserved Font Name" refers to any names specified as such after the copyright statement(s).
+
+"Original Version" refers to the collection of Font Software components as distributed by the Copyright Holder(s).
+
+"Modified Version" refers to any derivative made by adding to, deleting, or substituting -- in part or in whole -- any of the components of the Original Version, by changing formats or by porting the Font Software to a new environment.
+
+"Author" refers to any designer, engineer, programmer, technical writer or other person who contributed to the Font Software.
+
+PERMISSION &amp; CONDITIONS
+Permission is hereby granted, free of charge, to any person obtaining a copy of the Font Software, to use, study, copy, merge, embed, modify, redistribute, and sell modified and unmodified copies of the Font Software, subject to the following conditions:
+
+1) Neither the Font Software nor any of its individual components, in Original or Modified Versions, may be sold by itself.
+
+2) Original or Modified Versions of the Font Software may be bundled, redistributed and/or sold with any software, provided that each copy contains the above copyright notice and this license. These can be included either as stand-alone text files, human-readable headers or in the appropriate machine-readable metadata fields within text or binary files as long as those fields can be easily viewed by the user.
+
+3) No Modified Version of the Font Software may use the Reserved Font Name(s) unless explicit written permission is granted by the corresponding Copyright Holder. This restriction only applies to the primary font name as presented to the users.
+
+4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font Software shall not be used to promote, endorse or advertise any Modified Version, except to acknowledge the contribution(s) of the Copyright Holder(s) and the Author(s) or with their explicit written permission.
+
+5) The Font Software, modified or unmodified, in part or in whole, must be distributed entirely under this license, and must not be distributed under any other license. The requirement for fonts to remain under this license does not apply to any document created using the Font Software.
+
+TERMINATION
+This license becomes null and void if any of the above conditions are not met.
+
+DISCLAIMER
+THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM OTHER DEALINGS IN THE FONT SOFTWARE.</string>
+ <key>openTypeNameLicenseURL</key>
+ <string>http://scripts.sil.org/OFL</string>
+ <key>openTypeNameManufacturer</key>
+ <string>SIL International</string>
+ <key>openTypeNameManufacturerURL</key>
+ <string>http://scripts.sil.org</string>
+ <key>openTypeNamePreferredFamilyName</key>
+ <string>Psf Testing</string>
+ <key>openTypeNamePreferredSubfamilyName</key>
+ <string>Italic</string>
+ <key>openTypeNameUniqueID</key>
+ <string>SIL International: Psf Test Italic: 2022</string>
+ <key>openTypeNameVersion</key>
+ <string>Version 5.550</string>
+ <key>openTypeOS2CodePageRanges</key>
+ <array>
+ <integer>0</integer>
+ <integer>1</integer>
+ <integer>2</integer>
+ <integer>4</integer>
+ <integer>7</integer>
+ <integer>8</integer>
+ </array>
+ <key>openTypeOS2FamilyClass</key>
+ <array>
+ <integer>0</integer>
+ <integer>0</integer>
+ </array>
+ <key>openTypeOS2Panose</key>
+ <array>
+ <integer>2</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ </array>
+ <key>openTypeOS2StrikeoutPosition</key>
+ <integer>700</integer>
+ <key>openTypeOS2StrikeoutSize</key>
+ <integer>100</integer>
+ <key>openTypeOS2SubscriptXOffset</key>
+ <integer>0</integer>
+ <key>openTypeOS2SubscriptXSize</key>
+ <integer>1433</integer>
+ <key>openTypeOS2SubscriptYOffset</key>
+ <integer>286</integer>
+ <key>openTypeOS2SubscriptYSize</key>
+ <integer>1331</integer>
+ <key>openTypeOS2SuperscriptXOffset</key>
+ <integer>0</integer>
+ <key>openTypeOS2SuperscriptXSize</key>
+ <integer>1433</integer>
+ <key>openTypeOS2SuperscriptYOffset</key>
+ <integer>976</integer>
+ <key>openTypeOS2SuperscriptYSize</key>
+ <integer>1331</integer>
+ <key>openTypeOS2Type</key>
+ <array/>
+ <key>openTypeOS2TypoAscender</key>
+ <integer>2100</integer>
+ <key>openTypeOS2TypoDescender</key>
+ <integer>-550</integer>
+ <key>openTypeOS2TypoLineGap</key>
+ <integer>1</integer>
+ <key>openTypeOS2UnicodeRanges</key>
+ <array>
+ <integer>0</integer>
+ <integer>1</integer>
+ <integer>6</integer>
+ <integer>7</integer>
+ <integer>31</integer>
+ <integer>33</integer>
+ <integer>35</integer>
+ <integer>36</integer>
+ <integer>37</integer>
+ <integer>38</integer>
+ <integer>39</integer>
+ <integer>40</integer>
+ <integer>45</integer>
+ <integer>46</integer>
+ <integer>47</integer>
+ <integer>57</integer>
+ <integer>60</integer>
+ <integer>62</integer>
+ <integer>64</integer>
+ <integer>67</integer>
+ <integer>69</integer>
+ <integer>89</integer>
+ </array>
+ <key>openTypeOS2VendorID</key>
+ <string>SIL</string>
+ <key>openTypeOS2WeightClass</key>
+ <integer>400</integer>
+ <key>openTypeOS2WidthClass</key>
+ <integer>5</integer>
+ <key>openTypeOS2WinAscent</key>
+ <integer>2100</integer>
+ <key>openTypeOS2WinDescent</key>
+ <integer>550</integer>
+ <key>postscriptBlueValues</key>
+ <array>
+ <integer>-490</integer>
+ <integer>-490</integer>
+ <integer>-25</integer>
+ <integer>0</integer>
+ <integer>1020</integer>
+ <integer>1040</integer>
+ <integer>1455</integer>
+ <integer>1485</integer>
+ <integer>1600</integer>
+ <integer>1620</integer>
+ </array>
+ <key>postscriptFontName</key>
+ <string>PsfTest-Italic</string>
+ <key>postscriptFullName</key>
+ <string>Psf Test Italic</string>
+ <key>postscriptStemSnapH</key>
+ <array>
+ <integer>140</integer>
+ <integer>145</integer>
+ <integer>150</integer>
+ <integer>155</integer>
+ <integer>160</integer>
+ <integer>165</integer>
+ <integer>170</integer>
+ <integer>175</integer>
+ <integer>185</integer>
+ <integer>270</integer>
+ </array>
+ <key>postscriptStemSnapV</key>
+ <array>
+ <integer>165</integer>
+ <integer>180</integer>
+ <integer>185</integer>
+ <integer>190</integer>
+ <integer>195</integer>
+ <integer>200</integer>
+ <integer>205</integer>
+ <integer>270</integer>
+ </array>
+ <key>postscriptUnderlinePosition</key>
+ <integer>-110</integer>
+ <key>postscriptUnderlineThickness</key>
+ <integer>80</integer>
+ <key>styleMapFamilyName</key>
+ <string>Psf test</string>
+ <key>styleMapStyleName</key>
+ <string>italic</string>
+ <key>styleName</key>
+ <string>Italic</string>
+ <key>trademark</key>
+ <string>Andika is a trademark of SIL International.</string>
+ <key>unitsPerEm</key>
+ <integer>2048</integer>
+ <key>versionMajor</key>
+ <integer>5</integer>
+ <key>versionMinor</key>
+ <integer>550</integer>
+ <key>xHeight</key>
+ <integer>1040</integer>
+ <key>year</key>
+ <integer>2021</integer>
+</dict>
+</plist>
diff --git a/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/A_mpersand.glif b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/A_mpersand.glif
new file mode 100644
index 0000000..689cb3e
--- /dev/null
+++ b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/A_mpersand.glif
@@ -0,0 +1,61 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Ampersand" format="2">
+ <advance width="1202"/>
+ <unicode hex="0026"/>
+ <outline>
+ <contour>
+ <point x="1054" y="559" type="line"/>
+ <point x="949" y="395"/>
+ <point x="616" y="147"/>
+ <point x="441" y="147" type="curve" smooth="yes"/>
+ <point x="318" y="147"/>
+ <point x="256" y="224"/>
+ <point x="256" y="314" type="curve" smooth="yes"/>
+ <point x="256" y="453"/>
+ <point x="369" y="575"/>
+ <point x="590" y="725" type="curve" smooth="yes"/>
+ <point x="836" y="892"/>
+ <point x="1022" y="1067"/>
+ <point x="1022" y="1223" type="curve" smooth="yes"/>
+ <point x="1022" y="1363"/>
+ <point x="894" y="1455"/>
+ <point x="762" y="1455" type="curve" smooth="yes"/>
+ <point x="504" y="1455"/>
+ <point x="378" y="1328"/>
+ <point x="378" y="1114" type="curve" smooth="yes"/>
+ <point x="378" y="953"/>
+ <point x="514" y="771"/>
+ <point x="614" y="559" type="curve" smooth="yes"/>
+ <point x="783" y="198"/>
+ <point x="906" y="-25"/>
+ <point x="958" y="-25" type="curve" smooth="yes"/>
+ <point x="993" y="-25"/>
+ <point x="1087" y="37"/>
+ <point x="1132" y="69" type="curve"/>
+ <point x="1046" y="108"/>
+ <point x="926" y="291"/>
+ <point x="756" y="666" type="curve" smooth="yes"/>
+ <point x="665" y="866"/>
+ <point x="544" y="1029"/>
+ <point x="544" y="1149" type="curve" smooth="yes"/>
+ <point x="544" y="1252"/>
+ <point x="632" y="1323"/>
+ <point x="724" y="1323" type="curve" smooth="yes"/>
+ <point x="794" y="1323"/>
+ <point x="858" y="1266"/>
+ <point x="858" y="1193" type="curve" smooth="yes"/>
+ <point x="858" y="1107"/>
+ <point x="743" y="1004"/>
+ <point x="492" y="826" type="curve" smooth="yes"/>
+ <point x="182" y="606"/>
+ <point x="73" y="439"/>
+ <point x="73" y="288" type="curve" smooth="yes"/>
+ <point x="73" y="113"/>
+ <point x="195" y="-25"/>
+ <point x="383" y="-25" type="curve" smooth="yes"/>
+ <point x="656" y="-25"/>
+ <point x="1009" y="269"/>
+ <point x="1126" y="426" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/A_pos.glif b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/A_pos.glif
new file mode 100644
index 0000000..deb1650
--- /dev/null
+++ b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/A_pos.glif
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Apos" format="2">
+ <advance width="585"/>
+ <unicode hex="0027"/>
+ <outline>
+ <contour>
+ <point x="560" y="1024" type="line"/>
+ <point x="599" y="1162"/>
+ <point x="643" y="1312"/>
+ <point x="732" y="1553" type="curve"/>
+ <point x="527" y="1553" type="line"/>
+ <point x="498" y="1312"/>
+ <point x="465" y="1162"/>
+ <point x="435" y="1024" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/A_sterisk.glif b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/A_sterisk.glif
new file mode 100644
index 0000000..3027a5d
--- /dev/null
+++ b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/A_sterisk.glif
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Asterisk" format="2">
+ <advance width="1008"/>
+ <unicode hex="002A"/>
+ <outline>
+ <contour>
+ <point x="745" y="1568" type="line"/>
+ <point x="733" y="1438"/>
+ <point x="725" y="1359"/>
+ <point x="707" y="1274" type="curve"/>
+ <point x="644" y="1317"/>
+ <point x="587" y="1359"/>
+ <point x="498" y="1436" type="curve"/>
+ <point x="392" y="1313" type="line"/>
+ <point x="505" y="1264"/>
+ <point x="575" y="1236"/>
+ <point x="643" y="1196" type="curve"/>
+ <point x="556" y="1153"/>
+ <point x="474" y="1117"/>
+ <point x="340" y="1063" type="curve"/>
+ <point x="379" y="941" type="line"/>
+ <point x="504" y="1021"/>
+ <point x="584" y="1072"/>
+ <point x="668" y="1117" type="curve"/>
+ <point x="645" y="1034"/>
+ <point x="619" y="954"/>
+ <point x="575" y="823" type="curve"/>
+ <point x="715" y="823" type="line"/>
+ <point x="727" y="954"/>
+ <point x="741" y="1031"/>
+ <point x="758" y="1117" type="curve"/>
+ <point x="821" y="1073"/>
+ <point x="878" y="1032"/>
+ <point x="968" y="956" type="curve"/>
+ <point x="1073" y="1078" type="line"/>
+ <point x="959" y="1126"/>
+ <point x="890" y="1155"/>
+ <point x="823" y="1196" type="curve"/>
+ <point x="909" y="1236"/>
+ <point x="990" y="1273"/>
+ <point x="1126" y="1328" type="curve"/>
+ <point x="1086" y="1450" type="line"/>
+ <point x="961" y="1368"/>
+ <point x="883" y="1321"/>
+ <point x="797" y="1274" type="curve"/>
+ <point x="819" y="1359"/>
+ <point x="845" y="1438"/>
+ <point x="890" y="1568" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/A_tS_gn.glif b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/A_tS_gn.glif
new file mode 100644
index 0000000..2cd2542
--- /dev/null
+++ b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/A_tS_gn.glif
@@ -0,0 +1,104 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="AtSgn" format="2">
+ <advance width="1682"/>
+ <unicode hex="0040"/>
+ <outline>
+ <contour>
+ <point x="1082" y="-10" type="line"/>
+ <point x="980" y="-69"/>
+ <point x="889" y="-93"/>
+ <point x="796" y="-93" type="curve" smooth="yes"/>
+ <point x="507" y="-93"/>
+ <point x="301" y="104"/>
+ <point x="301" y="414" type="curve" smooth="yes"/>
+ <point x="301" y="476"/>
+ <point x="309" y="543"/>
+ <point x="327" y="613" type="curve" smooth="yes"/>
+ <point x="425" y="1003"/>
+ <point x="782" y="1245"/>
+ <point x="1110" y="1245" type="curve" smooth="yes"/>
+ <point x="1433" y="1245"/>
+ <point x="1590" y="1060"/>
+ <point x="1590" y="813" type="curve" smooth="yes"/>
+ <point x="1590" y="760"/>
+ <point x="1582" y="705"/>
+ <point x="1568" y="647" type="curve" smooth="yes"/>
+ <point x="1510" y="413"/>
+ <point x="1365" y="309"/>
+ <point x="1297" y="309" type="curve" smooth="yes"/>
+ <point x="1261" y="309"/>
+ <point x="1238" y="344"/>
+ <point x="1238" y="420" type="curve" smooth="yes"/>
+ <point x="1238" y="468"/>
+ <point x="1247" y="533"/>
+ <point x="1268" y="617" type="curve" smooth="yes"/>
+ <point x="1354" y="960" type="line"/>
+ <point x="1276" y="995"/>
+ <point x="1155" y="1019"/>
+ <point x="1074" y="1019" type="curve" smooth="yes"/>
+ <point x="910" y="1019"/>
+ <point x="790" y="962"/>
+ <point x="673" y="828" type="curve" smooth="yes"/>
+ <point x="607" y="751"/>
+ <point x="554" y="650"/>
+ <point x="524" y="529" type="curve" smooth="yes"/>
+ <point x="514" y="488"/>
+ <point x="509" y="450"/>
+ <point x="509" y="416" type="curve" smooth="yes"/>
+ <point x="509" y="259"/>
+ <point x="609" y="179"/>
+ <point x="719" y="179" type="curve" smooth="yes"/>
+ <point x="836" y="179"/>
+ <point x="1017" y="359"/>
+ <point x="1099" y="480" type="curve"/>
+ <point x="1093" y="446"/>
+ <point x="1089" y="413"/>
+ <point x="1089" y="382" type="curve" smooth="yes"/>
+ <point x="1089" y="264"/>
+ <point x="1136" y="176"/>
+ <point x="1233" y="176" type="curve" smooth="yes"/>
+ <point x="1408" y="176"/>
+ <point x="1635" y="331"/>
+ <point x="1716" y="656" type="curve" smooth="yes"/>
+ <point x="1732" y="722"/>
+ <point x="1740" y="784"/>
+ <point x="1740" y="843" type="curve" smooth="yes"/>
+ <point x="1740" y="1161"/>
+ <point x="1513" y="1377"/>
+ <point x="1153" y="1377" type="curve" smooth="yes"/>
+ <point x="738" y="1377"/>
+ <point x="310" y="1143"/>
+ <point x="175" y="603" type="curve" smooth="yes"/>
+ <point x="155" y="522"/>
+ <point x="145" y="446"/>
+ <point x="145" y="375" type="curve" smooth="yes"/>
+ <point x="145" y="-5"/>
+ <point x="417" y="-230"/>
+ <point x="747" y="-230" type="curve" smooth="yes"/>
+ <point x="882" y="-230"/>
+ <point x="1044" y="-184"/>
+ <point x="1161" y="-116" type="curve"/>
+ </contour>
+ <contour>
+ <point x="1141" y="706" type="line"/>
+ <point x="1075" y="570"/>
+ <point x="856" y="314"/>
+ <point x="766" y="314" type="curve" smooth="yes"/>
+ <point x="712" y="314"/>
+ <point x="669" y="362"/>
+ <point x="669" y="459" type="curve" smooth="yes"/>
+ <point x="669" y="491"/>
+ <point x="674" y="530"/>
+ <point x="685" y="573" type="curve" smooth="yes"/>
+ <point x="704" y="649"/>
+ <point x="739" y="726"/>
+ <point x="780" y="774" type="curve" smooth="yes"/>
+ <point x="859" y="868"/>
+ <point x="943" y="887"/>
+ <point x="1011" y="887" type="curve" smooth="yes"/>
+ <point x="1085" y="887"/>
+ <point x="1148" y="868"/>
+ <point x="1177" y="853" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/C_ircumA_ccent.glif b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/C_ircumA_ccent.glif
new file mode 100644
index 0000000..91ab811
--- /dev/null
+++ b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/C_ircumA_ccent.glif
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="CircumAccent" format="2">
+ <advance width="830"/>
+ <unicode hex="005E"/>
+ <anchor x="705" y="1635" name="U"/>
+ <outline>
+ <contour>
+ <point x="316" y="1147" type="line"/>
+ <point x="660" y="1421" type="line"/>
+ <point x="866" y="1147" type="line"/>
+ <point x="1015" y="1147" type="line"/>
+ <point x="761" y="1568" type="line"/>
+ <point x="591" y="1568" type="line"/>
+ <point x="166" y="1147" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/C_olon.glif b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/C_olon.glif
new file mode 100644
index 0000000..bcccfc2
--- /dev/null
+++ b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/C_olon.glif
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Colon" format="2">
+ <advance width="620"/>
+ <unicode hex="003A"/>
+ <outline>
+ <contour>
+ <point x="314" y="758" type="curve" smooth="yes"/>
+ <point x="314" y="696"/>
+ <point x="365" y="642"/>
+ <point x="430" y="642" type="curve" smooth="yes"/>
+ <point x="514" y="642"/>
+ <point x="590" y="712"/>
+ <point x="590" y="792" type="curve" smooth="yes"/>
+ <point x="590" y="854"/>
+ <point x="540" y="907"/>
+ <point x="476" y="907" type="curve" smooth="yes"/>
+ <point x="393" y="907"/>
+ <point x="314" y="837"/>
+ </contour>
+ <contour>
+ <point x="148" y="90" type="curve" smooth="yes"/>
+ <point x="148" y="28"/>
+ <point x="198" y="-25"/>
+ <point x="263" y="-25" type="curve" smooth="yes"/>
+ <point x="347" y="-25"/>
+ <point x="424" y="45"/>
+ <point x="424" y="125" type="curve" smooth="yes"/>
+ <point x="424" y="186"/>
+ <point x="374" y="240"/>
+ <point x="309" y="240" type="curve" smooth="yes"/>
+ <point x="225" y="240"/>
+ <point x="148" y="170"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/C_ombA_cute.glif b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/C_ombA_cute.glif
new file mode 100644
index 0000000..a7607fe
--- /dev/null
+++ b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/C_ombA_cute.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="CombAcute" format="2">
+ <unicode hex="0301"/>
+ <anchor x="-221" y="1635" name="U"/>
+ <anchor x="-355" y="1100" name="_U"/>
+ <outline>
+ <contour>
+ <point x="-99" y="1568" type="line"/>
+ <point x="-524" y="1147" type="line"/>
+ <point x="-354" y="1147" type="line"/>
+ <point x="150" y="1568" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/C_ombC_ircum.glif b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/C_ombC_ircum.glif
new file mode 100644
index 0000000..6614f85
--- /dev/null
+++ b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/C_ombC_ircum.glif
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="CombCircum" format="2">
+ <unicode hex="0302"/>
+ <anchor x="-221" y="1635" name="U"/>
+ <anchor x="-320" y="1100" name="_U"/>
+ <outline>
+ <contour>
+ <point x="-619" y="1147" type="line"/>
+ <point x="-275" y="1421" type="line"/>
+ <point x="-69" y="1147" type="line"/>
+ <point x="80" y="1147" type="line"/>
+ <point x="-174" y="1568" type="line"/>
+ <point x="-344" y="1568" type="line"/>
+ <point x="-769" y="1147" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/C_ombD_iaer.glif b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/C_ombD_iaer.glif
new file mode 100644
index 0000000..d6b35b7
--- /dev/null
+++ b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/C_ombD_iaer.glif
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="CombDiaer" format="2">
+ <unicode hex="0308"/>
+ <anchor x="-253" y="1505" name="U"/>
+ <anchor x="-350" y="1100" name="_U"/>
+ <outline>
+ <contour>
+ <point x="39" y="1338" type="curve" smooth="yes"/>
+ <point x="39" y="1399"/>
+ <point x="-7" y="1450"/>
+ <point x="-72" y="1450" type="curve" smooth="yes"/>
+ <point x="-167" y="1450"/>
+ <point x="-229" y="1372"/>
+ <point x="-229" y="1299" type="curve" smooth="yes"/>
+ <point x="-229" y="1238"/>
+ <point x="-182" y="1186"/>
+ <point x="-118" y="1186" type="curve" smooth="yes"/>
+ <point x="-33" y="1186"/>
+ <point x="39" y="1259"/>
+ </contour>
+ <contour>
+ <point x="-381" y="1338" type="curve" smooth="yes"/>
+ <point x="-381" y="1399"/>
+ <point x="-427" y="1450"/>
+ <point x="-492" y="1450" type="curve" smooth="yes"/>
+ <point x="-587" y="1450"/>
+ <point x="-649" y="1372"/>
+ <point x="-649" y="1299" type="curve" smooth="yes"/>
+ <point x="-649" y="1238"/>
+ <point x="-602" y="1186"/>
+ <point x="-538" y="1186" type="curve" smooth="yes"/>
+ <point x="-453" y="1186"/>
+ <point x="-381" y="1259"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/C_ombG_rave.glif b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/C_ombG_rave.glif
new file mode 100644
index 0000000..8869bb9
--- /dev/null
+++ b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/C_ombG_rave.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="CombGrave" format="2">
+ <unicode hex="0300"/>
+ <anchor x="-201" y="1635" name="U"/>
+ <anchor x="-335" y="1100" name="_U"/>
+ <outline>
+ <contour>
+ <point x="-619" y="1568" type="line"/>
+ <point x="-284" y="1147" type="line"/>
+ <point x="-134" y="1147" type="line"/>
+ <point x="-409" y="1568" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/C_ombR_ingA_bv.glif b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/C_ombR_ingA_bv.glif
new file mode 100644
index 0000000..38232a0
--- /dev/null
+++ b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/C_ombR_ingA_bv.glif
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="CombRingAbv" format="2">
+ <unicode hex="030A"/>
+ <anchor x="-221" y="1635" name="U"/>
+ <anchor x="-385" y="1100" name="_U"/>
+ <outline>
+ <contour>
+ <point x="-377" y="1259" type="curve" smooth="yes"/>
+ <point x="-427" y="1259"/>
+ <point x="-456" y="1287"/>
+ <point x="-456" y="1329" type="curve" smooth="yes"/>
+ <point x="-456" y="1400"/>
+ <point x="-393" y="1455"/>
+ <point x="-328" y="1455" type="curve" smooth="yes"/>
+ <point x="-278" y="1455"/>
+ <point x="-248" y="1428"/>
+ <point x="-248" y="1385" type="curve" smooth="yes"/>
+ <point x="-248" y="1314"/>
+ <point x="-312" y="1259"/>
+ </contour>
+ <contour>
+ <point x="-573" y="1320" type="curve" smooth="yes"/>
+ <point x="-573" y="1224"/>
+ <point x="-498" y="1147"/>
+ <point x="-395" y="1147" type="curve" smooth="yes"/>
+ <point x="-257" y="1147"/>
+ <point x="-131" y="1263"/>
+ <point x="-131" y="1394" type="curve" smooth="yes"/>
+ <point x="-131" y="1491"/>
+ <point x="-206" y="1568"/>
+ <point x="-310" y="1568" type="curve" smooth="yes"/>
+ <point x="-448" y="1568"/>
+ <point x="-573" y="1451"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/C_ombT_ilde.glif b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/C_ombT_ilde.glif
new file mode 100644
index 0000000..f79322e
--- /dev/null
+++ b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/C_ombT_ilde.glif
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="CombTilde" format="2">
+ <unicode hex="0303"/>
+ <anchor x="-290" y="1475" name="U"/>
+ <anchor x="-385" y="1100" name="_U"/>
+ <outline>
+ <contour>
+ <point x="-646" y="1181" type="line"/>
+ <point x="-629" y="1229"/>
+ <point x="-589" y="1269"/>
+ <point x="-540" y="1269" type="curve" smooth="yes"/>
+ <point x="-503" y="1269"/>
+ <point x="-466" y="1253"/>
+ <point x="-398" y="1218" type="curve" smooth="yes"/>
+ <point x="-344" y="1190"/>
+ <point x="-296" y="1171"/>
+ <point x="-243" y="1171" type="curve" smooth="yes"/>
+ <point x="-120" y="1171"/>
+ <point x="-15" y="1286"/>
+ <point x="16" y="1411" type="curve"/>
+ <point x="-89" y="1411" type="line"/>
+ <point x="-107" y="1366"/>
+ <point x="-147" y="1323"/>
+ <point x="-194" y="1323" type="curve" smooth="yes"/>
+ <point x="-236" y="1323"/>
+ <point x="-273" y="1342"/>
+ <point x="-338" y="1370" type="curve" smooth="yes"/>
+ <point x="-401" y="1397"/>
+ <point x="-442" y="1421"/>
+ <point x="-498" y="1421" type="curve" smooth="yes"/>
+ <point x="-617" y="1421"/>
+ <point x="-721" y="1300"/>
+ <point x="-751" y="1181" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/C_omma.glif b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/C_omma.glif
new file mode 100644
index 0000000..eaff517
--- /dev/null
+++ b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/C_omma.glif
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Comma" format="2">
+ <advance width="630"/>
+ <unicode hex="002C"/>
+ <outline>
+ <contour>
+ <point x="137" y="49" type="line"/>
+ <point x="277" y="49" type="line"/>
+ <point x="252" y="-50"/>
+ <point x="145" y="-169"/>
+ <point x="73" y="-225" type="curve"/>
+ <point x="163" y="-265" type="line"/>
+ <point x="280" y="-175"/>
+ <point x="431" y="-28"/>
+ <point x="431" y="118" type="curve" smooth="yes"/>
+ <point x="431" y="193"/>
+ <point x="378" y="245"/>
+ <point x="311" y="245" type="curve" smooth="yes"/>
+ <point x="254" y="245"/>
+ <point x="190" y="209"/>
+ <point x="161" y="147" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/D_igitE_ight.glif b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/D_igitE_ight.glif
new file mode 100644
index 0000000..262f860
--- /dev/null
+++ b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/D_igitE_ight.glif
@@ -0,0 +1,63 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitEight" format="2">
+ <advance width="1180"/>
+ <unicode hex="0038"/>
+ <anchor x="515" y="-100" name="L"/>
+ <anchor x="922" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="542" y="-25" type="curve" smooth="yes"/>
+ <point x="839" y="-25"/>
+ <point x="1160" y="170"/>
+ <point x="1160" y="475" type="curve" smooth="yes"/>
+ <point x="1160" y="626"/>
+ <point x="1068" y="733"/>
+ <point x="988" y="779" type="curve"/>
+ <point x="1155" y="860"/>
+ <point x="1270" y="970"/>
+ <point x="1270" y="1151" type="curve" smooth="yes"/>
+ <point x="1270" y="1340"/>
+ <point x="1102" y="1455"/>
+ <point x="901" y="1455" type="curve" smooth="yes"/>
+ <point x="620" y="1455"/>
+ <point x="348" y="1292"/>
+ <point x="348" y="1018" type="curve" smooth="yes"/>
+ <point x="348" y="891"/>
+ <point x="427" y="814"/>
+ <point x="483" y="779" type="curve"/>
+ <point x="297" y="706"/>
+ <point x="115" y="549"/>
+ <point x="115" y="325" type="curve" smooth="yes"/>
+ <point x="115" y="111"/>
+ <point x="317" y="-25"/>
+ </contour>
+ <contour>
+ <point x="750" y="848" type="curve" smooth="yes"/>
+ <point x="628" y="848"/>
+ <point x="541" y="917"/>
+ <point x="541" y="1029" type="curve" smooth="yes"/>
+ <point x="541" y="1205"/>
+ <point x="704" y="1299"/>
+ <point x="862" y="1299" type="curve" smooth="yes"/>
+ <point x="985" y="1299"/>
+ <point x="1076" y="1235"/>
+ <point x="1076" y="1128" type="curve" smooth="yes"/>
+ <point x="1076" y="955"/>
+ <point x="907" y="848"/>
+ </contour>
+ <contour>
+ <point x="564" y="142" type="curve" smooth="yes"/>
+ <point x="413" y="142"/>
+ <point x="322" y="225"/>
+ <point x="322" y="350" type="curve" smooth="yes"/>
+ <point x="322" y="557"/>
+ <point x="520" y="696"/>
+ <point x="712" y="696" type="curve" smooth="yes"/>
+ <point x="864" y="696"/>
+ <point x="961" y="602"/>
+ <point x="961" y="476" type="curve" smooth="yes"/>
+ <point x="961" y="266"/>
+ <point x="753" y="142"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/D_igitF_ive.glif b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/D_igitF_ive.glif
new file mode 100644
index 0000000..a224838
--- /dev/null
+++ b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/D_igitF_ive.glif
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitFive" format="2">
+ <advance width="1180"/>
+ <unicode hex="0035"/>
+ <anchor x="515" y="-100" name="L"/>
+ <anchor x="922" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1296" y="1431" type="line"/>
+ <point x="491" y="1431" type="line"/>
+ <point x="302" y="671" type="line"/>
+ <point x="438" y="718"/>
+ <point x="537" y="735"/>
+ <point x="643" y="735" type="curve" smooth="yes"/>
+ <point x="784" y="735"/>
+ <point x="933" y="660"/>
+ <point x="933" y="508" type="curve" smooth="yes"/>
+ <point x="933" y="273"/>
+ <point x="710" y="152"/>
+ <point x="497" y="152" type="curve" smooth="yes"/>
+ <point x="357" y="152"/>
+ <point x="263" y="195"/>
+ <point x="170" y="284" type="curve"/>
+ <point x="89" y="78" type="line"/>
+ <point x="195" y="2"/>
+ <point x="326" y="-25"/>
+ <point x="481" y="-25" type="curve" smooth="yes"/>
+ <point x="807" y="-25"/>
+ <point x="1129" y="190"/>
+ <point x="1129" y="546" type="curve" smooth="yes"/>
+ <point x="1129" y="757"/>
+ <point x="951" y="911"/>
+ <point x="702" y="911" type="curve" smooth="yes"/>
+ <point x="629" y="911"/>
+ <point x="576" y="906"/>
+ <point x="544" y="902" type="curve"/>
+ <point x="635" y="1264" type="line"/>
+ <point x="1020" y="1264" type="line" smooth="yes"/>
+ <point x="1104" y="1264"/>
+ <point x="1179" y="1260"/>
+ <point x="1250" y="1245" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/D_igitF_our.glif b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/D_igitF_our.glif
new file mode 100644
index 0000000..eeccb48
--- /dev/null
+++ b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/D_igitF_our.glif
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitFour" format="2">
+ <advance width="1180"/>
+ <unicode hex="0034"/>
+ <anchor x="522" y="-100" name="L"/>
+ <anchor x="929" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1161" y="387" type="line"/>
+ <point x="1199" y="539" type="line"/>
+ <point x="1009" y="539" type="line"/>
+ <point x="1236" y="1450" type="line"/>
+ <point x="1026" y="1450" type="line"/>
+ <point x="144" y="539" type="line"/>
+ <point x="106" y="387" type="line"/>
+ <point x="781" y="387" type="line"/>
+ <point x="685" y="0" type="line"/>
+ <point x="875" y="0" type="line"/>
+ <point x="971" y="387" type="line"/>
+ </contour>
+ <contour>
+ <point x="985" y="1205" type="line"/>
+ <point x="819" y="539" type="line"/>
+ <point x="337" y="539" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/D_igitN_ine.glif b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/D_igitN_ine.glif
new file mode 100644
index 0000000..191cd79
--- /dev/null
+++ b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/D_igitN_ine.glif
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitNine" format="2">
+ <advance width="1180"/>
+ <unicode hex="0039"/>
+ <anchor x="515" y="-100" name="L"/>
+ <anchor x="922" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="157" y="94" type="line"/>
+ <point x="208" y="29"/>
+ <point x="355" y="-25"/>
+ <point x="473" y="-25" type="curve" smooth="yes"/>
+ <point x="999" y="-25"/>
+ <point x="1267" y="520"/>
+ <point x="1267" y="982" type="curve" smooth="yes"/>
+ <point x="1267" y="1248"/>
+ <point x="1127" y="1455"/>
+ <point x="866" y="1455" type="curve" smooth="yes"/>
+ <point x="596" y="1455"/>
+ <point x="303" y="1269"/>
+ <point x="303" y="932" type="curve" smooth="yes"/>
+ <point x="303" y="761"/>
+ <point x="425" y="574"/>
+ <point x="661" y="574" type="curve" smooth="yes"/>
+ <point x="852" y="574"/>
+ <point x="1036" y="683"/>
+ <point x="1172" y="840" type="curve"/>
+ <point x="1121" y="922" type="line"/>
+ <point x="1019" y="810"/>
+ <point x="872" y="745"/>
+ <point x="717" y="745" type="curve" smooth="yes"/>
+ <point x="584" y="745"/>
+ <point x="498" y="833"/>
+ <point x="498" y="956" type="curve" smooth="yes"/>
+ <point x="498" y="1146"/>
+ <point x="638" y="1284"/>
+ <point x="821" y="1284" type="curve" smooth="yes"/>
+ <point x="998" y="1284"/>
+ <point x="1073" y="1119"/>
+ <point x="1073" y="956" type="curve" smooth="yes"/>
+ <point x="1073" y="455"/>
+ <point x="760" y="147"/>
+ <point x="496" y="147" type="curve" smooth="yes"/>
+ <point x="410" y="147"/>
+ <point x="298" y="209"/>
+ <point x="249" y="285" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/D_igitO_ne.glif b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/D_igitO_ne.glif
new file mode 100644
index 0000000..a639774
--- /dev/null
+++ b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/D_igitO_ne.glif
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitOne" format="2">
+ <advance width="1180"/>
+ <unicode hex="0031"/>
+ <anchor x="515" y="-100" name="L"/>
+ <anchor x="922" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1021" y="167" type="line"/>
+ <point x="706" y="167" type="line"/>
+ <point x="1026" y="1450" type="line"/>
+ <point x="856" y="1450" type="line"/>
+ <point x="459" y="1243" type="line"/>
+ <point x="440" y="1066" type="line"/>
+ <point x="782" y="1235" type="line"/>
+ <point x="516" y="167" type="line"/>
+ <point x="201" y="167" type="line"/>
+ <point x="160" y="0" type="line"/>
+ <point x="980" y="0" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/D_igitS_even.glif b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/D_igitS_even.glif
new file mode 100644
index 0000000..68c6ef6
--- /dev/null
+++ b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/D_igitS_even.glif
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitSeven" format="2">
+ <advance width="1180"/>
+ <unicode hex="0037"/>
+ <anchor x="515" y="-100" name="L"/>
+ <anchor x="922" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="420" y="0" type="line"/>
+ <point x="661" y="450"/>
+ <point x="972" y="877"/>
+ <point x="1367" y="1274" type="curve"/>
+ <point x="1406" y="1431" type="line"/>
+ <point x="386" y="1431" type="line"/>
+ <point x="341" y="1245" type="line"/>
+ <point x="421" y="1260"/>
+ <point x="538" y="1264"/>
+ <point x="726" y="1264" type="curve" smooth="yes"/>
+ <point x="1126" y="1264" type="line"/>
+ <point x="774" y="889"/>
+ <point x="517" y="555"/>
+ <point x="215" y="0" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/D_igitS_ix.glif b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/D_igitS_ix.glif
new file mode 100644
index 0000000..b6be793
--- /dev/null
+++ b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/D_igitS_ix.glif
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitSix" format="2">
+ <advance width="1180"/>
+ <unicode hex="0036"/>
+ <anchor x="515" y="-100" name="L"/>
+ <anchor x="922" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1313" y="1347" type="line"/>
+ <point x="1248" y="1418"/>
+ <point x="1135" y="1455"/>
+ <point x="1017" y="1455" type="curve" smooth="yes"/>
+ <point x="481" y="1454"/>
+ <point x="208" y="915"/>
+ <point x="208" y="475" type="curve" smooth="yes"/>
+ <point x="208" y="167"/>
+ <point x="392" y="-25"/>
+ <point x="623" y="-25" type="curve" smooth="yes"/>
+ <point x="947" y="-25"/>
+ <point x="1183" y="169"/>
+ <point x="1183" y="517" type="curve" smooth="yes"/>
+ <point x="1183" y="709"/>
+ <point x="1029" y="887"/>
+ <point x="793" y="887" type="curve" smooth="yes"/>
+ <point x="636" y="887"/>
+ <point x="432" y="784"/>
+ <point x="317" y="633" type="curve"/>
+ <point x="364" y="559" type="line"/>
+ <point x="471" y="660"/>
+ <point x="596" y="716"/>
+ <point x="751" y="716" type="curve" smooth="yes"/>
+ <point x="898" y="716"/>
+ <point x="987" y="614"/>
+ <point x="987" y="454" type="curve" smooth="yes"/>
+ <point x="987" y="263"/>
+ <point x="816" y="147"/>
+ <point x="656" y="147" type="curve" smooth="yes"/>
+ <point x="491" y="147"/>
+ <point x="403" y="284"/>
+ <point x="403" y="472" type="curve" smooth="yes"/>
+ <point x="403" y="962"/>
+ <point x="664" y="1284"/>
+ <point x="985" y="1284" type="curve" smooth="yes"/>
+ <point x="1081" y="1284"/>
+ <point x="1174" y="1235"/>
+ <point x="1222" y="1156" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/D_igitT_hree.glif b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/D_igitT_hree.glif
new file mode 100644
index 0000000..e01df2c
--- /dev/null
+++ b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/D_igitT_hree.glif
@@ -0,0 +1,52 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitThree" format="2">
+ <advance width="1180"/>
+ <unicode hex="0033"/>
+ <anchor x="515" y="-100" name="L"/>
+ <anchor x="922" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="562" y="853" type="line"/>
+ <point x="521" y="686" type="line"/>
+ <point x="591" y="686" type="line" smooth="yes"/>
+ <point x="802" y="686"/>
+ <point x="944" y="606"/>
+ <point x="944" y="476" type="curve" smooth="yes"/>
+ <point x="944" y="268"/>
+ <point x="738" y="147"/>
+ <point x="551" y="147" type="curve" smooth="yes"/>
+ <point x="371" y="147"/>
+ <point x="260" y="227"/>
+ <point x="181" y="348" type="curve"/>
+ <point x="104" y="137" type="line"/>
+ <point x="185" y="41"/>
+ <point x="341" y="-25"/>
+ <point x="518" y="-25" type="curve" smooth="yes"/>
+ <point x="815" y="-25"/>
+ <point x="1141" y="168"/>
+ <point x="1141" y="475" type="curve" smooth="yes"/>
+ <point x="1141" y="670"/>
+ <point x="973" y="763"/>
+ <point x="855" y="784" type="curve"/>
+ <point x="1046" y="827"/>
+ <point x="1266" y="955"/>
+ <point x="1266" y="1163" type="curve" smooth="yes"/>
+ <point x="1266" y="1338"/>
+ <point x="1073" y="1455"/>
+ <point x="852" y="1455" type="curve" smooth="yes"/>
+ <point x="685" y="1455"/>
+ <point x="536" y="1388"/>
+ <point x="433" y="1299" type="curve"/>
+ <point x="427" y="1132" type="line"/>
+ <point x="568" y="1246"/>
+ <point x="696" y="1284"/>
+ <point x="850" y="1284" type="curve" smooth="yes"/>
+ <point x="957" y="1284"/>
+ <point x="1068" y="1236"/>
+ <point x="1068" y="1137" type="curve" smooth="yes"/>
+ <point x="1068" y="949"/>
+ <point x="781" y="853"/>
+ <point x="632" y="853" type="curve" smooth="yes"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/D_igitT_wo.glif b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/D_igitT_wo.glif
new file mode 100644
index 0000000..d1bbb54
--- /dev/null
+++ b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/D_igitT_wo.glif
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitTwo" format="2">
+ <advance width="1180"/>
+ <unicode hex="0032"/>
+ <anchor x="515" y="-100" name="L"/>
+ <anchor x="882" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1063" y="176" type="line"/>
+ <point x="980" y="163"/>
+ <point x="822" y="162"/>
+ <point x="625" y="162" type="curve" smooth="yes"/>
+ <point x="370" y="162" type="line"/>
+ <point x="783" y="393"/>
+ <point x="1210" y="830"/>
+ <point x="1210" y="1098" type="curve" smooth="yes"/>
+ <point x="1210" y="1296"/>
+ <point x="1075" y="1455"/>
+ <point x="842" y="1455" type="curve" smooth="yes"/>
+ <point x="673" y="1455"/>
+ <point x="488" y="1374"/>
+ <point x="380" y="1264" type="curve"/>
+ <point x="388" y="1098" type="line"/>
+ <point x="503" y="1203"/>
+ <point x="660" y="1279"/>
+ <point x="783" y="1279" type="curve" smooth="yes"/>
+ <point x="915" y="1279"/>
+ <point x="1003" y="1199"/>
+ <point x="1003" y="1063" type="curve" smooth="yes"/>
+ <point x="1003" y="848"/>
+ <point x="506" y="386"/>
+ <point x="101" y="167" type="curve"/>
+ <point x="60" y="0" type="line"/>
+ <point x="1020" y="0" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/D_igitZ_ero.glif b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/D_igitZ_ero.glif
new file mode 100644
index 0000000..5d1bf0e
--- /dev/null
+++ b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/D_igitZ_ero.glif
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitZero" format="2">
+ <advance width="1180"/>
+ <unicode hex="0030"/>
+ <anchor x="520" y="-100" name="L"/>
+ <anchor x="927" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1024" y="711" type="curve" smooth="yes"/>
+ <point x="925" y="312"/>
+ <point x="747" y="142"/>
+ <point x="565" y="142" type="curve" smooth="yes"/>
+ <point x="432" y="142"/>
+ <point x="360" y="218"/>
+ <point x="360" y="383" type="curve" smooth="yes"/>
+ <point x="360" y="468"/>
+ <point x="377" y="579"/>
+ <point x="412" y="720" type="curve" smooth="yes"/>
+ <point x="512" y="1120"/>
+ <point x="678" y="1289"/>
+ <point x="871" y="1289" type="curve" smooth="yes"/>
+ <point x="1006" y="1289"/>
+ <point x="1077" y="1223"/>
+ <point x="1077" y="1051" type="curve" smooth="yes"/>
+ <point x="1077" y="966"/>
+ <point x="1060" y="854"/>
+ </contour>
+ <contour>
+ <point x="1230" y="715" type="curve" smooth="yes"/>
+ <point x="1262" y="841"/>
+ <point x="1276" y="949"/>
+ <point x="1276" y="1040" type="curve" smooth="yes"/>
+ <point x="1276" y="1335"/>
+ <point x="1124" y="1455"/>
+ <point x="902" y="1455" type="curve" smooth="yes"/>
+ <point x="613" y="1455"/>
+ <point x="344" y="1267"/>
+ <point x="206" y="716" type="curve" smooth="yes"/>
+ <point x="173" y="584"/>
+ <point x="158" y="474"/>
+ <point x="158" y="381" type="curve" smooth="yes"/>
+ <point x="158" y="104"/>
+ <point x="313" y="-25"/>
+ <point x="533" y="-25" type="curve" smooth="yes"/>
+ <point x="804" y="-25"/>
+ <point x="1086" y="138"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/D_ollarS_gn.glif b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/D_ollarS_gn.glif
new file mode 100644
index 0000000..5c2db20
--- /dev/null
+++ b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/D_ollarS_gn.glif
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DollarSgn" format="2">
+ <advance width="1180"/>
+ <unicode hex="0024"/>
+ <outline>
+ <contour>
+ <point x="1225" y="1280" type="line"/>
+ <point x="1119" y="1337"/>
+ <point x="1023" y="1361"/>
+ <point x="882" y="1361" type="curve" smooth="yes"/>
+ <point x="513" y="1361"/>
+ <point x="354" y="1182"/>
+ <point x="354" y="992" type="curve" smooth="yes"/>
+ <point x="354" y="837"/>
+ <point x="446" y="771"/>
+ <point x="639" y="650" type="curve" smooth="yes"/>
+ <point x="844" y="521"/>
+ <point x="919" y="439"/>
+ <point x="919" y="357" type="curve" smooth="yes"/>
+ <point x="919" y="244"/>
+ <point x="826" y="158"/>
+ <point x="635" y="158" type="curve" smooth="yes"/>
+ <point x="469" y="158"/>
+ <point x="314" y="266"/>
+ <point x="251" y="347" type="curve"/>
+ <point x="163" y="162" type="line"/>
+ <point x="304" y="58"/>
+ <point x="453" y="0"/>
+ <point x="606" y="0" type="curve" smooth="yes"/>
+ <point x="872" y="0"/>
+ <point x="1102" y="119"/>
+ <point x="1102" y="381" type="curve" smooth="yes"/>
+ <point x="1102" y="528"/>
+ <point x="981" y="657"/>
+ <point x="801" y="771" type="curve" smooth="yes"/>
+ <point x="610" y="892"/>
+ <point x="535" y="943"/>
+ <point x="535" y="1024" type="curve" smooth="yes"/>
+ <point x="535" y="1116"/>
+ <point x="657" y="1203"/>
+ <point x="832" y="1203" type="curve" smooth="yes"/>
+ <point x="950" y="1203"/>
+ <point x="1031" y="1176"/>
+ <point x="1144" y="1104" type="curve"/>
+ </contour>
+ <contour>
+ <point x="878" y="1568" type="line"/>
+ <point x="434" y="-216" type="line"/>
+ <point x="574" y="-216" type="line"/>
+ <point x="1018" y="1568" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/D_ottedC_irc.glif b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/D_ottedC_irc.glif
new file mode 100644
index 0000000..2cdf8fd
--- /dev/null
+++ b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/D_ottedC_irc.glif
@@ -0,0 +1,235 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DottedCirc" format="2">
+ <advance width="1086"/>
+ <unicode hex="25CC"/>
+ <anchor x="493" y="0" name="H"/>
+ <anchor x="468" y="-100" name="L"/>
+ <anchor x="750" y="0" name="O"/>
+ <anchor x="743" y="1000" name="U"/>
+ <outline>
+ <contour>
+ <point x="588" y="834" type="curve" smooth="yes"/>
+ <point x="588" y="858"/>
+ <point x="571" y="867"/>
+ <point x="553" y="867" type="curve" smooth="yes"/>
+ <point x="521" y="867"/>
+ <point x="491" y="837"/>
+ <point x="491" y="809" type="curve" smooth="yes"/>
+ <point x="491" y="788"/>
+ <point x="508" y="773"/>
+ <point x="530" y="773" type="curve" smooth="yes"/>
+ <point x="564" y="773"/>
+ <point x="588" y="805"/>
+ </contour>
+ <contour>
+ <point x="677" y="124" type="curve" smooth="yes"/>
+ <point x="647" y="124"/>
+ <point x="620" y="93"/>
+ <point x="620" y="67" type="curve" smooth="yes"/>
+ <point x="620" y="46"/>
+ <point x="636" y="30"/>
+ <point x="657" y="30" type="curve" smooth="yes"/>
+ <point x="687" y="30"/>
+ <point x="718" y="60"/>
+ <point x="718" y="86" type="curve" smooth="yes"/>
+ <point x="718" y="109"/>
+ <point x="700" y="124"/>
+ </contour>
+ <contour>
+ <point x="396" y="780" type="curve" smooth="yes"/>
+ <point x="369" y="780"/>
+ <point x="336" y="753"/>
+ <point x="336" y="722" type="curve" smooth="yes"/>
+ <point x="336" y="702"/>
+ <point x="351" y="687"/>
+ <point x="374" y="687" type="curve" smooth="yes"/>
+ <point x="403" y="687"/>
+ <point x="434" y="711"/>
+ <point x="434" y="744" type="curve" smooth="yes"/>
+ <point x="434" y="764"/>
+ <point x="414" y="780"/>
+ </contour>
+ <contour>
+ <point x="873" y="175" type="curve" smooth="yes"/>
+ <point x="872" y="199"/>
+ <point x="854" y="211"/>
+ <point x="833" y="211" type="curve" smooth="yes"/>
+ <point x="803" y="211"/>
+ <point x="774" y="183"/>
+ <point x="774" y="153" type="curve" smooth="yes"/>
+ <point x="774" y="133"/>
+ <point x="789" y="119"/>
+ <point x="812" y="119" type="curve" smooth="yes"/>
+ <point x="843" y="119"/>
+ <point x="873" y="146"/>
+ </contour>
+ <contour>
+ <point x="313" y="612" type="curve" smooth="yes"/>
+ <point x="312" y="633"/>
+ <point x="296" y="650"/>
+ <point x="275" y="650" type="curve" smooth="yes"/>
+ <point x="247" y="650"/>
+ <point x="215" y="623"/>
+ <point x="215" y="592" type="curve" smooth="yes"/>
+ <point x="215" y="573"/>
+ <point x="227" y="556"/>
+ <point x="251" y="556" type="curve" smooth="yes"/>
+ <point x="278" y="556"/>
+ <point x="313" y="581"/>
+ </contour>
+ <contour>
+ <point x="994" y="306" type="curve" smooth="yes"/>
+ <point x="993" y="327"/>
+ <point x="978" y="341"/>
+ <point x="958" y="341" type="curve" smooth="yes"/>
+ <point x="933" y="341"/>
+ <point x="896" y="321"/>
+ <point x="896" y="284" type="curve" smooth="yes"/>
+ <point x="896" y="265"/>
+ <point x="909" y="249"/>
+ <point x="934" y="249" type="curve" smooth="yes"/>
+ <point x="963" y="249"/>
+ <point x="994" y="275"/>
+ </contour>
+ <contour>
+ <point x="205" y="495" type="curve" smooth="yes"/>
+ <point x="175" y="495"/>
+ <point x="145" y="468"/>
+ <point x="145" y="438" type="curve" smooth="yes"/>
+ <point x="145" y="418"/>
+ <point x="159" y="402"/>
+ <point x="183" y="402" type="curve" smooth="yes"/>
+ <point x="208" y="402"/>
+ <point x="244" y="428"/>
+ <point x="244" y="459" type="curve" smooth="yes"/>
+ <point x="244" y="479"/>
+ <point x="227" y="495"/>
+ </contour>
+ <contour>
+ <point x="1026" y="496" type="curve" smooth="yes"/>
+ <point x="999" y="496"/>
+ <point x="965" y="469"/>
+ <point x="965" y="438" type="curve" smooth="yes"/>
+ <point x="965" y="418"/>
+ <point x="979" y="403"/>
+ <point x="1004" y="403" type="curve" smooth="yes"/>
+ <point x="1033" y="403"/>
+ <point x="1064" y="431"/>
+ <point x="1064" y="460" type="curve" smooth="yes"/>
+ <point x="1064" y="480"/>
+ <point x="1048" y="496"/>
+ </contour>
+ <contour>
+ <point x="237" y="307" type="curve" smooth="yes"/>
+ <point x="237" y="327"/>
+ <point x="221" y="341"/>
+ <point x="199" y="341" type="curve" smooth="yes"/>
+ <point x="169" y="341"/>
+ <point x="138" y="314"/>
+ <point x="138" y="285" type="curve" smooth="yes"/>
+ <point x="138" y="263"/>
+ <point x="153" y="248"/>
+ <point x="175" y="248" type="curve" smooth="yes"/>
+ <point x="206" y="248"/>
+ <point x="237" y="278"/>
+ </contour>
+ <contour>
+ <point x="1071" y="613" type="curve" smooth="yes"/>
+ <point x="1071" y="634"/>
+ <point x="1055" y="650"/>
+ <point x="1034" y="650" type="curve" smooth="yes"/>
+ <point x="1003" y="650"/>
+ <point x="973" y="619"/>
+ <point x="973" y="590" type="curve" smooth="yes"/>
+ <point x="973" y="570"/>
+ <point x="989" y="556"/>
+ <point x="1009" y="556" type="curve" smooth="yes"/>
+ <point x="1041" y="556"/>
+ <point x="1071" y="585"/>
+ </contour>
+ <contour>
+ <point x="292" y="177" type="curve" smooth="yes"/>
+ <point x="292" y="197"/>
+ <point x="277" y="211"/>
+ <point x="253" y="211" type="curve" smooth="yes"/>
+ <point x="224" y="211"/>
+ <point x="194" y="181"/>
+ <point x="194" y="154" type="curve" smooth="yes"/>
+ <point x="194" y="134"/>
+ <point x="211" y="118"/>
+ <point x="232" y="118" type="curve" smooth="yes"/>
+ <point x="262" y="118"/>
+ <point x="292" y="148"/>
+ </contour>
+ <contour>
+ <point x="917" y="724" type="curve" smooth="yes"/>
+ <point x="917" y="704"/>
+ <point x="931" y="686"/>
+ <point x="954" y="686" type="curve" smooth="yes"/>
+ <point x="984" y="686"/>
+ <point x="1014" y="716"/>
+ <point x="1014" y="745" type="curve" smooth="yes"/>
+ <point x="1014" y="765"/>
+ <point x="1000" y="780"/>
+ <point x="977" y="780" type="curve" smooth="yes"/>
+ <point x="947" y="780"/>
+ <point x="917" y="753"/>
+ </contour>
+ <contour>
+ <point x="403" y="87" type="curve" smooth="yes"/>
+ <point x="403" y="107"/>
+ <point x="390" y="123"/>
+ <point x="367" y="123" type="curve" smooth="yes"/>
+ <point x="339" y="123"/>
+ <point x="305" y="96"/>
+ <point x="305" y="68" type="curve" smooth="yes"/>
+ <point x="305" y="49"/>
+ <point x="320" y="30"/>
+ <point x="343" y="30" type="curve" smooth="yes"/>
+ <point x="371" y="30"/>
+ <point x="403" y="56"/>
+ </contour>
+ <contour>
+ <point x="806" y="810" type="curve" smooth="yes"/>
+ <point x="806" y="791"/>
+ <point x="819" y="773"/>
+ <point x="842" y="773" type="curve" smooth="yes"/>
+ <point x="869" y="773"/>
+ <point x="903" y="799"/>
+ <point x="903" y="830" type="curve" smooth="yes"/>
+ <point x="903" y="850"/>
+ <point x="889" y="867"/>
+ <point x="866" y="867" type="curve" smooth="yes"/>
+ <point x="836" y="867"/>
+ <point x="806" y="839"/>
+ </contour>
+ <contour>
+ <point x="553" y="57" type="curve" smooth="yes"/>
+ <point x="553" y="78"/>
+ <point x="538" y="93"/>
+ <point x="516" y="93" type="curve" smooth="yes"/>
+ <point x="485" y="93"/>
+ <point x="456" y="65"/>
+ <point x="456" y="36" type="curve" smooth="yes"/>
+ <point x="456" y="16"/>
+ <point x="471" y="0"/>
+ <point x="493" y="0" type="curve" smooth="yes"/>
+ <point x="523" y="0"/>
+ <point x="553" y="27"/>
+ </contour>
+ <contour>
+ <point x="656" y="839" type="curve" smooth="yes"/>
+ <point x="656" y="819"/>
+ <point x="671" y="805"/>
+ <point x="693" y="805" type="curve" smooth="yes"/>
+ <point x="721" y="805"/>
+ <point x="754" y="830"/>
+ <point x="754" y="861" type="curve" smooth="yes"/>
+ <point x="754" y="882"/>
+ <point x="738" y="898"/>
+ <point x="716" y="898" type="curve" smooth="yes"/>
+ <point x="685" y="898"/>
+ <point x="656" y="868"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/E_qS_gn.glif b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/E_qS_gn.glif
new file mode 100644
index 0000000..3d756e8
--- /dev/null
+++ b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/E_qS_gn.glif
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="EqSgn" format="2">
+ <advance width="1180"/>
+ <unicode hex="003D"/>
+ <outline>
+ <contour>
+ <point x="177" y="470" type="line"/>
+ <point x="1137" y="470" type="line"/>
+ <point x="1173" y="617" type="line"/>
+ <point x="213" y="617" type="line"/>
+ </contour>
+ <contour>
+ <point x="262" y="813" type="line"/>
+ <point x="1222" y="813" type="line"/>
+ <point x="1259" y="960" type="line"/>
+ <point x="299" y="960" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/E_xclamationM_rk.glif b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/E_xclamationM_rk.glif
new file mode 100644
index 0000000..a1c14d9
--- /dev/null
+++ b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/E_xclamationM_rk.glif
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="ExclamationMrk" format="2">
+ <advance width="744"/>
+ <unicode hex="0021"/>
+ <outline>
+ <contour>
+ <point x="497" y="431" type="line"/>
+ <point x="574" y="715"/>
+ <point x="653" y="1054"/>
+ <point x="799" y="1480" type="curve"/>
+ <point x="544" y="1480" type="line"/>
+ <point x="475" y="1054"/>
+ <point x="386" y="715"/>
+ <point x="322" y="431" type="curve"/>
+ </contour>
+ <contour>
+ <point x="188" y="90" type="curve" smooth="yes"/>
+ <point x="188" y="28"/>
+ <point x="238" y="-25"/>
+ <point x="303" y="-25" type="curve" smooth="yes"/>
+ <point x="387" y="-25"/>
+ <point x="464" y="45"/>
+ <point x="464" y="125" type="curve" smooth="yes"/>
+ <point x="464" y="186"/>
+ <point x="414" y="240"/>
+ <point x="349" y="240" type="curve" smooth="yes"/>
+ <point x="265" y="240"/>
+ <point x="188" y="170"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/F_ullS_top.glif b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/F_ullS_top.glif
new file mode 100644
index 0000000..a6c4d08
--- /dev/null
+++ b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/F_ullS_top.glif
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="FullStop" format="2">
+ <advance width="620"/>
+ <unicode hex="002E"/>
+ <outline>
+ <contour>
+ <point x="148" y="90" type="curve" smooth="yes"/>
+ <point x="148" y="28"/>
+ <point x="198" y="-25"/>
+ <point x="263" y="-25" type="curve" smooth="yes"/>
+ <point x="347" y="-25"/>
+ <point x="424" y="45"/>
+ <point x="424" y="125" type="curve" smooth="yes"/>
+ <point x="424" y="186"/>
+ <point x="374" y="240"/>
+ <point x="309" y="240" type="curve" smooth="yes"/>
+ <point x="225" y="240"/>
+ <point x="148" y="170"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/G_T_S_gn.glif b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/G_T_S_gn.glif
new file mode 100644
index 0000000..12da8b3
--- /dev/null
+++ b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/G_T_S_gn.glif
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="GTSgn" format="2">
+ <advance width="1180"/>
+ <unicode hex="003E"/>
+ <outline>
+ <contour>
+ <point x="312" y="1014" type="line"/>
+ <point x="1028" y="725" type="line"/>
+ <point x="163" y="417" type="line"/>
+ <point x="119" y="240" type="line"/>
+ <point x="1197" y="632" type="line"/>
+ <point x="1239" y="799" type="line"/>
+ <point x="356" y="1191" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/G_raveA_ccent.glif b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/G_raveA_ccent.glif
new file mode 100644
index 0000000..48adfc4
--- /dev/null
+++ b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/G_raveA_ccent.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="GraveAccent" format="2">
+ <advance width="560"/>
+ <unicode hex="0060"/>
+ <anchor x="738" y="1635" name="U"/>
+ <outline>
+ <contour>
+ <point x="261" y="1568" type="line"/>
+ <point x="596" y="1147" type="line"/>
+ <point x="746" y="1147" type="line"/>
+ <point x="471" y="1568" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/H_yphen.glif b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/H_yphen.glif
new file mode 100644
index 0000000..ae8cad5
--- /dev/null
+++ b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/H_yphen.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Hyphen" format="2">
+ <advance width="840"/>
+ <unicode hex="2010"/>
+ <anchor x="645" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="155" y="544" type="line"/>
+ <point x="855" y="544" type="line"/>
+ <point x="892" y="691" type="line"/>
+ <point x="192" y="691" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/H_yphenM_inus.glif b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/H_yphenM_inus.glif
new file mode 100644
index 0000000..155b460
--- /dev/null
+++ b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/H_yphenM_inus.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="HyphenMinus" format="2">
+ <advance width="840"/>
+ <unicode hex="002D"/>
+ <anchor x="645" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="155" y="544" type="line"/>
+ <point x="855" y="544" type="line"/>
+ <point x="892" y="691" type="line"/>
+ <point x="192" y="691" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/H_yphen_S_oft.glif b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/H_yphen_S_oft.glif
new file mode 100644
index 0000000..0c7b834
--- /dev/null
+++ b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/H_yphen_S_oft.glif
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Hyphen_Soft" format="2">
+ <advance width="840"/>
+ <unicode hex="00AD"/>
+ <anchor x="645" y="1100" name="U"/>
+ <outline>
+ <component base="HyphenMinus"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_T_S_gn.glif b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_T_S_gn.glif
new file mode 100644
index 0000000..3c857a5
--- /dev/null
+++ b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_T_S_gn.glif
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LTSgn" format="2">
+ <advance width="1180"/>
+ <unicode hex="003C"/>
+ <outline>
+ <contour>
+ <point x="1123" y="417" type="line"/>
+ <point x="408" y="705" type="line"/>
+ <point x="1272" y="1014" type="line"/>
+ <point x="1316" y="1191" type="line"/>
+ <point x="239" y="799" type="line"/>
+ <point x="197" y="632" type="line"/>
+ <point x="1079" y="240" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_ftC_urlyB_rac.glif b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_ftC_urlyB_rac.glif
new file mode 100644
index 0000000..4f8c90c
--- /dev/null
+++ b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_ftC_urlyB_rac.glif
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LftCurlyBrac" format="2">
+ <advance width="980"/>
+ <unicode hex="007B"/>
+ <outline>
+ <contour>
+ <point x="713" y="-265" type="line"/>
+ <point x="660" y="-250"/>
+ <point x="526" y="-188"/>
+ <point x="526" y="-158" type="curve" smooth="yes"/>
+ <point x="526" y="-59"/>
+ <point x="649" y="404"/>
+ <point x="649" y="469" type="curve" smooth="yes"/>
+ <point x="649" y="509"/>
+ <point x="520" y="577"/>
+ <point x="520" y="602" type="curve" smooth="yes"/>
+ <point x="520" y="620"/>
+ <point x="688" y="700"/>
+ <point x="712" y="730" type="curve" smooth="yes"/>
+ <point x="741" y="767"/>
+ <point x="867" y="1326"/>
+ <point x="912" y="1372" type="curve" smooth="yes"/>
+ <point x="938" y="1399"/>
+ <point x="1073" y="1447"/>
+ <point x="1146" y="1470" type="curve"/>
+ <point x="1140" y="1607" type="line"/>
+ <point x="1030" y="1581"/>
+ <point x="856" y="1529"/>
+ <point x="805" y="1485" type="curve" smooth="yes"/>
+ <point x="714" y="1406"/>
+ <point x="572" y="796"/>
+ <point x="540" y="764" type="curve" smooth="yes"/>
+ <point x="504" y="729"/>
+ <point x="300" y="633"/>
+ <point x="300" y="601" type="curve" smooth="yes"/>
+ <point x="300" y="560"/>
+ <point x="460" y="468"/>
+ <point x="460" y="432" type="curve" smooth="yes"/>
+ <point x="460" y="362"/>
+ <point x="355" y="-53"/>
+ <point x="355" y="-219" type="curve" smooth="yes"/>
+ <point x="355" y="-247"/>
+ <point x="358" y="-268"/>
+ <point x="365" y="-279" type="curve" smooth="yes"/>
+ <point x="394" y="-323"/>
+ <point x="542" y="-375"/>
+ <point x="639" y="-402" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_ftP_aren.glif b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_ftP_aren.glif
new file mode 100644
index 0000000..bc65fc1
--- /dev/null
+++ b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_ftP_aren.glif
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LftParen" format="2">
+ <advance width="775"/>
+ <unicode hex="0028"/>
+ <outline>
+ <contour>
+ <point x="895" y="1607" type="line"/>
+ <point x="582" y="1415"/>
+ <point x="314" y="1061"/>
+ <point x="207" y="633" type="curve" smooth="yes"/>
+ <point x="176" y="508"/>
+ <point x="161" y="386"/>
+ <point x="161" y="270" type="curve" smooth="yes"/>
+ <point x="161" y="17"/>
+ <point x="233" y="-211"/>
+ <point x="374" y="-402" type="curve"/>
+ <point x="505" y="-260" type="line"/>
+ <point x="397" y="-102"/>
+ <point x="348" y="75"/>
+ <point x="348" y="270" type="curve" smooth="yes"/>
+ <point x="348" y="385"/>
+ <point x="365" y="506"/>
+ <point x="397" y="633" type="curve" smooth="yes"/>
+ <point x="484" y="982"/>
+ <point x="647" y="1254"/>
+ <point x="932" y="1455" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_ftS_qrB_rac.glif b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_ftS_qrB_rac.glif
new file mode 100644
index 0000000..6d064d1
--- /dev/null
+++ b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_ftS_qrB_rac.glif
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LftSqrBrac" format="2">
+ <advance width="770"/>
+ <unicode hex="005B"/>
+ <outline>
+ <contour>
+ <point x="484" y="-402" type="line"/>
+ <point x="521" y="-255" type="line"/>
+ <point x="266" y="-255" type="line"/>
+ <point x="679" y="1421" type="line"/>
+ <point x="934" y="1421" type="line"/>
+ <point x="970" y="1568" type="line"/>
+ <point x="530" y="1568" type="line"/>
+ <point x="44" y="-402" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_owL_ine.glif b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_owL_ine.glif
new file mode 100644
index 0000000..879d36b
--- /dev/null
+++ b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_owL_ine.glif
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LowLine" format="2">
+ <advance width="1254"/>
+ <unicode hex="005F"/>
+ <outline>
+ <contour>
+ <point x="-138" y="-314" type="line"/>
+ <point x="1135" y="-314" type="line"/>
+ <point x="1172" y="-167" type="line"/>
+ <point x="-101" y="-167" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnC_apA_.glif b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnC_apA_.glif
new file mode 100644
index 0000000..3a14b0e
--- /dev/null
+++ b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnC_apA_.glif
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapA" format="2">
+ <advance width="1395"/>
+ <unicode hex="0041"/>
+ <anchor x="1170" y="0" name="H"/>
+ <anchor x="602" y="-100" name="L"/>
+ <anchor x="1390" y="0" name="O"/>
+ <anchor x="1009" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1080" y="0" type="line"/>
+ <point x="1275" y="0" type="line"/>
+ <point x="1259" y="78"/>
+ <point x="1243" y="166"/>
+ <point x="1221" y="348" type="curve" smooth="yes"/>
+ <point x="1091" y="1431" type="line"/>
+ <point x="876" y="1431" type="line"/>
+ <point x="206" y="348" type="line" smooth="yes"/>
+ <point x="93" y="165"/>
+ <point x="35" y="79"/>
+ <point x="-20" y="0" type="curve"/>
+ <point x="195" y="0" type="line"/>
+ <point x="422" y="377" type="line"/>
+ <point x="1038" y="377" type="line"/>
+ </contour>
+ <contour>
+ <point x="944" y="1240" type="line"/>
+ <point x="1022" y="529" type="line"/>
+ <point x="514" y="529" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnC_apA_D_iaer.glif b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnC_apA_D_iaer.glif
new file mode 100644
index 0000000..6c3502c
--- /dev/null
+++ b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnC_apA_D_iaer.glif
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapADiaer" format="2">
+ <advance width="1395"/>
+ <unicode hex="00C4"/>
+ <anchor x="1170" y="0" name="H"/>
+ <anchor x="602" y="-100" name="L"/>
+ <anchor x="1390" y="0" name="O"/>
+ <anchor x="1106" y="1935" name="U"/>
+ <outline>
+ <component base="LtnCapA"/>
+ <component base="CombDiaer" xOffset="1359" yOffset="430"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnC_apB_.glif b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnC_apB_.glif
new file mode 100644
index 0000000..5445f93
--- /dev/null
+++ b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnC_apB_.glif
@@ -0,0 +1,62 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapB" format="2">
+ <advance width="1271"/>
+ <unicode hex="0042"/>
+ <anchor x="530" y="-100" name="L"/>
+ <anchor x="937" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="625" y="1284" type="line"/>
+ <point x="667" y="1286"/>
+ <point x="733" y="1289"/>
+ <point x="811" y="1289" type="curve" smooth="yes"/>
+ <point x="993" y="1289"/>
+ <point x="1080" y="1230"/>
+ <point x="1080" y="1105" type="curve" smooth="yes"/>
+ <point x="1080" y="932"/>
+ <point x="931" y="838"/>
+ <point x="698" y="838" type="curve" smooth="yes"/>
+ <point x="513" y="838" type="line"/>
+ </contour>
+ <contour>
+ <point x="226" y="446" type="line"/>
+ <point x="178" y="252"/>
+ <point x="134" y="78"/>
+ <point x="100" y="0" type="curve"/>
+ <point x="151" y="-5"/>
+ <point x="359" y="-10"/>
+ <point x="562" y="-10" type="curve" smooth="yes"/>
+ <point x="960" y="-10"/>
+ <point x="1201" y="149"/>
+ <point x="1201" y="453" type="curve" smooth="yes"/>
+ <point x="1201" y="644"/>
+ <point x="1067" y="736"/>
+ <point x="955" y="764" type="curve"/>
+ <point x="1155" y="819"/>
+ <point x="1283" y="941"/>
+ <point x="1283" y="1140" type="curve" smooth="yes"/>
+ <point x="1283" y="1310"/>
+ <point x="1136" y="1441"/>
+ <point x="869" y="1441" type="curve" smooth="yes"/>
+ <point x="700" y="1441"/>
+ <point x="546" y="1437"/>
+ <point x="456" y="1431" type="curve"/>
+ <point x="452" y="1352"/>
+ <point x="407" y="1172"/>
+ <point x="359" y="980" type="curve" smooth="yes"/>
+ </contour>
+ <contour>
+ <point x="476" y="686" type="line"/>
+ <point x="721" y="686" type="line" smooth="yes"/>
+ <point x="892" y="686"/>
+ <point x="1011" y="598"/>
+ <point x="1011" y="450" type="curve" smooth="yes"/>
+ <point x="1011" y="218"/>
+ <point x="806" y="147"/>
+ <point x="586" y="147" type="curve" smooth="yes"/>
+ <point x="474" y="147"/>
+ <point x="379" y="150"/>
+ <point x="342" y="152" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnC_apC_.glif b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnC_apC_.glif
new file mode 100644
index 0000000..c2e4948
--- /dev/null
+++ b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnC_apC_.glif
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapC" format="2">
+ <advance width="1341"/>
+ <unicode hex="0043"/>
+ <anchor x="690" y="0" name="H"/>
+ <anchor x="665" y="-100" name="L"/>
+ <anchor x="1072" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1237" y="318" type="line"/>
+ <point x="1115" y="222"/>
+ <point x="934" y="147"/>
+ <point x="752" y="147" type="curve" smooth="yes"/>
+ <point x="537" y="147"/>
+ <point x="385" y="304"/>
+ <point x="385" y="532" type="curve" smooth="yes"/>
+ <point x="385" y="964"/>
+ <point x="704" y="1289"/>
+ <point x="1037" y="1289" type="curve" smooth="yes"/>
+ <point x="1168" y="1289"/>
+ <point x="1310" y="1235"/>
+ <point x="1385" y="1132" type="curve"/>
+ <point x="1489" y="1308" type="line"/>
+ <point x="1388" y="1408"/>
+ <point x="1201" y="1455"/>
+ <point x="1058" y="1455" type="curve" smooth="yes"/>
+ <point x="645" y="1455"/>
+ <point x="185" y="1093"/>
+ <point x="185" y="513" type="curve" smooth="yes"/>
+ <point x="185" y="202"/>
+ <point x="381" y="-25"/>
+ <point x="709" y="-25" type="curve" smooth="yes"/>
+ <point x="896" y="-25"/>
+ <point x="1087" y="21"/>
+ <point x="1230" y="127" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnC_apD_.glif b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnC_apD_.glif
new file mode 100644
index 0000000..3b93811
--- /dev/null
+++ b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnC_apD_.glif
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapD" format="2">
+ <advance width="1421"/>
+ <unicode hex="0044"/>
+ <anchor x="630" y="-100" name="L"/>
+ <anchor x="1037" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="226" y="446" type="line"/>
+ <point x="176" y="252"/>
+ <point x="134" y="78"/>
+ <point x="100" y="0" type="curve"/>
+ <point x="100" y="0"/>
+ <point x="414" y="-10"/>
+ <point x="542" y="-10" type="curve" smooth="yes"/>
+ <point x="985" y="-10"/>
+ <point x="1299" y="181"/>
+ <point x="1415" y="648" type="curve" smooth="yes"/>
+ <point x="1437" y="738"/>
+ <point x="1447" y="819"/>
+ <point x="1447" y="891" type="curve" smooth="yes"/>
+ <point x="1447" y="1279"/>
+ <point x="1188" y="1441"/>
+ <point x="894" y="1441" type="curve" smooth="yes"/>
+ <point x="759" y="1441"/>
+ <point x="543" y="1437"/>
+ <point x="456" y="1431" type="curve"/>
+ <point x="452" y="1352"/>
+ <point x="407" y="1172"/>
+ <point x="359" y="980" type="curve" smooth="yes"/>
+ </contour>
+ <contour>
+ <point x="623" y="1279" type="line"/>
+ <point x="674" y="1281"/>
+ <point x="764" y="1284"/>
+ <point x="830" y="1284" type="curve" smooth="yes"/>
+ <point x="1105" y="1284"/>
+ <point x="1246" y="1140"/>
+ <point x="1246" y="850" type="curve" smooth="yes"/>
+ <point x="1246" y="784"/>
+ <point x="1236" y="710"/>
+ <point x="1216" y="629" type="curve" smooth="yes"/>
+ <point x="1134" y="300"/>
+ <point x="925" y="152"/>
+ <point x="572" y="152" type="curve" smooth="yes"/>
+ <point x="477" y="152"/>
+ <point x="391" y="158"/>
+ <point x="345" y="162" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnC_apE_.glif b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnC_apE_.glif
new file mode 100644
index 0000000..8b5f8b9
--- /dev/null
+++ b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnC_apE_.glif
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapE" format="2">
+ <advance width="1140"/>
+ <unicode hex="0045"/>
+ <anchor x="540" y="0" name="H"/>
+ <anchor x="515" y="-100" name="L"/>
+ <anchor x="857" y="0" name="O"/>
+ <anchor x="1400" y="1200" name="R"/>
+ <anchor x="922" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="511" y="828" type="line"/>
+ <point x="621" y="1269" type="line"/>
+ <point x="1266" y="1269" type="line"/>
+ <point x="1306" y="1431" type="line"/>
+ <point x="456" y="1431" type="line"/>
+ <point x="452" y="1352"/>
+ <point x="413" y="1197"/>
+ <point x="365" y="1005" type="curve" smooth="yes"/>
+ <point x="221" y="426" type="line" smooth="yes"/>
+ <point x="173" y="233"/>
+ <point x="134" y="78"/>
+ <point x="100" y="0" type="curve"/>
+ <point x="980" y="0" type="line"/>
+ <point x="1023" y="176" type="line"/>
+ <point x="940" y="163"/>
+ <point x="806" y="162"/>
+ <point x="609" y="162" type="curve" smooth="yes"/>
+ <point x="345" y="162" type="line"/>
+ <point x="472" y="671" type="line"/>
+ <point x="1042" y="671" type="line"/>
+ <point x="1081" y="828" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnC_apF_.glif b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnC_apF_.glif
new file mode 100644
index 0000000..cbc1726
--- /dev/null
+++ b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnC_apF_.glif
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapF" format="2">
+ <advance width="1130"/>
+ <unicode hex="0046"/>
+ <anchor x="510" y="-100" name="L"/>
+ <anchor x="917" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="508" y="818" type="line"/>
+ <point x="621" y="1269" type="line"/>
+ <point x="1286" y="1269" type="line"/>
+ <point x="1326" y="1431" type="line"/>
+ <point x="456" y="1431" type="line"/>
+ <point x="452" y="1352"/>
+ <point x="412" y="1193"/>
+ <point x="364" y="1000" type="curve" smooth="yes"/>
+ <point x="221" y="426" type="line" smooth="yes"/>
+ <point x="173" y="233"/>
+ <point x="134" y="78"/>
+ <point x="100" y="0" type="curve"/>
+ <point x="320" y="0" type="line"/>
+ <point x="323" y="76"/>
+ <point x="362" y="232"/>
+ <point x="411" y="426" type="curve" smooth="yes"/>
+ <point x="470" y="662" type="line"/>
+ <point x="1050" y="662" type="line"/>
+ <point x="1088" y="818" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnC_apG_.glif b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnC_apG_.glif
new file mode 100644
index 0000000..c39b75a
--- /dev/null
+++ b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnC_apG_.glif
@@ -0,0 +1,48 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapG" format="2">
+ <advance width="1406"/>
+ <unicode hex="0047"/>
+ <anchor x="685" y="0" name="H"/>
+ <anchor x="660" y="-100" name="L"/>
+ <anchor x="1067" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1403" y="710" type="line"/>
+ <point x="863" y="710" type="line"/>
+ <point x="822" y="548" type="line"/>
+ <point x="1172" y="548" type="line"/>
+ <point x="1090" y="220" type="line"/>
+ <point x="1012" y="176"/>
+ <point x="858" y="147"/>
+ <point x="739" y="147" type="curve" smooth="yes"/>
+ <point x="520" y="147"/>
+ <point x="384" y="272"/>
+ <point x="384" y="493" type="curve" smooth="yes"/>
+ <point x="384" y="560"/>
+ <point x="394" y="636"/>
+ <point x="415" y="720" type="curve" smooth="yes"/>
+ <point x="500" y="1062"/>
+ <point x="747" y="1289"/>
+ <point x="1052" y="1289" type="curve" smooth="yes"/>
+ <point x="1195" y="1289"/>
+ <point x="1335" y="1233"/>
+ <point x="1425" y="1122" type="curve"/>
+ <point x="1534" y="1298" type="line"/>
+ <point x="1409" y="1405"/>
+ <point x="1235" y="1455"/>
+ <point x="1063" y="1455" type="curve" smooth="yes"/>
+ <point x="680" y="1455"/>
+ <point x="334" y="1195"/>
+ <point x="217" y="726" type="curve" smooth="yes"/>
+ <point x="195" y="639"/>
+ <point x="185" y="559"/>
+ <point x="185" y="486" type="curve" smooth="yes"/>
+ <point x="185" y="162"/>
+ <point x="406" y="-25"/>
+ <point x="714" y="-25" type="curve" smooth="yes"/>
+ <point x="907" y="-25"/>
+ <point x="1149" y="50"/>
+ <point x="1258" y="132" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnC_apH_.glif b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnC_apH_.glif
new file mode 100644
index 0000000..f454288
--- /dev/null
+++ b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnC_apH_.glif
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapH" format="2">
+ <advance width="1455"/>
+ <unicode hex="0048"/>
+ <anchor x="225" y="0" name="H"/>
+ <anchor x="640" y="-100" name="L"/>
+ <anchor x="1047" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1230" y="0" type="line"/>
+ <point x="1234" y="78"/>
+ <point x="1273" y="233"/>
+ <point x="1321" y="426" type="curve" smooth="yes"/>
+ <point x="1465" y="1005" type="line" smooth="yes"/>
+ <point x="1513" y="1198"/>
+ <point x="1552" y="1352"/>
+ <point x="1586" y="1431" type="curve"/>
+ <point x="1381" y="1431" type="line"/>
+ <point x="1228" y="818" type="line"/>
+ <point x="508" y="818" type="line"/>
+ <point x="661" y="1431" type="line"/>
+ <point x="456" y="1431" type="line"/>
+ <point x="452" y="1352"/>
+ <point x="413" y="1197"/>
+ <point x="365" y="1005" type="curve" smooth="yes"/>
+ <point x="221" y="426" type="line" smooth="yes"/>
+ <point x="173" y="233"/>
+ <point x="134" y="78"/>
+ <point x="100" y="0" type="curve"/>
+ <point x="305" y="0" type="line"/>
+ <point x="470" y="662" type="line"/>
+ <point x="1190" y="662" type="line"/>
+ <point x="1025" y="0" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnC_apI_.glif b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnC_apI_.glif
new file mode 100644
index 0000000..78b151c
--- /dev/null
+++ b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnC_apI_.glif
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapI" format="2">
+ <advance width="955"/>
+ <unicode hex="0049"/>
+ <anchor x="417" y="0" name="H"/>
+ <anchor x="392" y="-100" name="L"/>
+ <anchor x="613" y="0" name="O"/>
+ <anchor x="1215" y="1200" name="R"/>
+ <anchor x="799" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="436" y="1431" type="line"/>
+ <point x="401" y="1289" type="line"/>
+ <point x="641" y="1289" type="line"/>
+ <point x="355" y="142" type="line"/>
+ <point x="115" y="142" type="line"/>
+ <point x="80" y="0" type="line"/>
+ <point x="755" y="0" type="line"/>
+ <point x="790" y="142" type="line"/>
+ <point x="545" y="142" type="line"/>
+ <point x="831" y="1289" type="line"/>
+ <point x="1076" y="1289" type="line"/>
+ <point x="1111" y="1431" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnC_apJ_.glif b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnC_apJ_.glif
new file mode 100644
index 0000000..417d1f8
--- /dev/null
+++ b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnC_apJ_.glif
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapJ" format="2">
+ <advance width="996"/>
+ <unicode hex="004A"/>
+ <anchor x="325" y="-100" name="L"/>
+ <anchor x="997" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="871" y="1431" type="line"/>
+ <point x="858" y="1327"/>
+ <point x="817" y="1151"/>
+ <point x="769" y="960" type="curve" smooth="yes"/>
+ <point x="648" y="475" type="line" smooth="yes"/>
+ <point x="592" y="251"/>
+ <point x="484" y="152"/>
+ <point x="337" y="152" type="curve" smooth="yes"/>
+ <point x="245" y="152"/>
+ <point x="145" y="224"/>
+ <point x="97" y="299" type="curve"/>
+ <point x="6" y="118" type="line"/>
+ <point x="58" y="39"/>
+ <point x="193" y="-25"/>
+ <point x="298" y="-25" type="curve" smooth="yes"/>
+ <point x="555" y="-25"/>
+ <point x="749" y="117"/>
+ <point x="850" y="524" type="curve" smooth="yes"/>
+ <point x="1076" y="1431" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnC_apK_.glif b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnC_apK_.glif
new file mode 100644
index 0000000..8e54a6d
--- /dev/null
+++ b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnC_apK_.glif
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapK" format="2">
+ <advance width="1261"/>
+ <unicode hex="004B"/>
+ <anchor x="210" y="0" name="H"/>
+ <anchor x="610" y="-100" name="L"/>
+ <anchor x="972" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1221" y="1431" type="line"/>
+ <point x="406" y="689" type="line"/>
+ <point x="547" y="730" type="line"/>
+ <point x="660" y="725" type="line"/>
+ <point x="1461" y="1431" type="line"/>
+ </contour>
+ <contour>
+ <point x="1170" y="0" type="line"/>
+ <point x="615" y="823" type="line"/>
+ <point x="469" y="720" type="line"/>
+ <point x="925" y="0" type="line"/>
+ </contour>
+ <contour>
+ <point x="661" y="1431" type="line"/>
+ <point x="456" y="1431" type="line"/>
+ <point x="452" y="1352"/>
+ <point x="413" y="1197"/>
+ <point x="365" y="1005" type="curve" smooth="yes"/>
+ <point x="221" y="426" type="line" smooth="yes"/>
+ <point x="173" y="233"/>
+ <point x="134" y="78"/>
+ <point x="100" y="0" type="curve"/>
+ <point x="305" y="0" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnC_apL_.glif b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnC_apL_.glif
new file mode 100644
index 0000000..d2eb932
--- /dev/null
+++ b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnC_apL_.glif
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapL" format="2">
+ <advance width="1060"/>
+ <unicode hex="004C"/>
+ <anchor x="532" y="0" name="H"/>
+ <anchor x="507" y="-100" name="L"/>
+ <anchor x="780" y="1200" name="R"/>
+ <anchor x="914" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="345" y="162" type="line"/>
+ <point x="661" y="1431" type="line"/>
+ <point x="456" y="1431" type="line"/>
+ <point x="452" y="1352"/>
+ <point x="413" y="1197"/>
+ <point x="365" y="1005" type="curve" smooth="yes"/>
+ <point x="221" y="426" type="line" smooth="yes"/>
+ <point x="173" y="233"/>
+ <point x="134" y="78"/>
+ <point x="100" y="0" type="curve"/>
+ <point x="965" y="0" type="line"/>
+ <point x="1008" y="176" type="line"/>
+ <point x="925" y="163"/>
+ <point x="766" y="162"/>
+ <point x="569" y="162" type="curve" smooth="yes"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnC_apM_.glif b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnC_apM_.glif
new file mode 100644
index 0000000..7c3c824
--- /dev/null
+++ b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnC_apM_.glif
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapM" format="2">
+ <advance width="1785"/>
+ <unicode hex="004D"/>
+ <anchor x="800" y="-100" name="L"/>
+ <anchor x="1207" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="880" y="201" type="line"/>
+ <point x="751" y="1431" type="line"/>
+ <point x="591" y="1431" type="line"/>
+ <point x="740" y="0" type="line"/>
+ <point x="935" y="0" type="line"/>
+ <point x="1793" y="1431" type="line"/>
+ <point x="1616" y="1431" type="line"/>
+ </contour>
+ <contour>
+ <point x="536" y="1431" type="line"/>
+ <point x="536" y="1431"/>
+ <point x="184" y="194"/>
+ <point x="110" y="0" type="curve"/>
+ <point x="295" y="0" type="line"/>
+ <point x="621" y="1181" type="line"/>
+ <point x="711" y="1431" type="line"/>
+ </contour>
+ <contour>
+ <point x="1560" y="0" type="line"/>
+ <point x="1579" y="194"/>
+ <point x="1846" y="1431"/>
+ <point x="1846" y="1431" type="curve"/>
+ <point x="1671" y="1431" type="line"/>
+ <point x="1641" y="1181" type="line"/>
+ <point x="1375" y="0" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnC_apN_.glif b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnC_apN_.glif
new file mode 100644
index 0000000..7306669
--- /dev/null
+++ b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnC_apN_.glif
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapN" format="2">
+ <advance width="1480"/>
+ <unicode hex="004E"/>
+ <anchor x="1170" y="0" name="H"/>
+ <anchor x="652" y="-100" name="L"/>
+ <anchor x="1059" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="491" y="1328" type="line"/>
+ <point x="1075" y="0" type="line"/>
+ <point x="1219" y="98" type="line"/>
+ <point x="636" y="1431" type="line"/>
+ </contour>
+ <contour>
+ <point x="1075" y="0" type="line"/>
+ <point x="1250" y="0" type="line"/>
+ <point x="1500" y="1005" type="line" smooth="yes"/>
+ <point x="1548" y="1198"/>
+ <point x="1588" y="1352"/>
+ <point x="1621" y="1431" type="curve"/>
+ <point x="1431" y="1431" type="line"/>
+ </contour>
+ <contour>
+ <point x="636" y="1431" type="line"/>
+ <point x="446" y="1431" type="line"/>
+ <point x="442" y="1352"/>
+ <point x="403" y="1197"/>
+ <point x="355" y="1005" type="curve" smooth="yes"/>
+ <point x="211" y="426" type="line" smooth="yes"/>
+ <point x="163" y="233"/>
+ <point x="124" y="78"/>
+ <point x="90" y="0" type="curve"/>
+ <point x="280" y="0" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnC_apO_.glif b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnC_apO_.glif
new file mode 100644
index 0000000..19c4886
--- /dev/null
+++ b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnC_apO_.glif
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapO" format="2">
+ <advance width="1447"/>
+ <unicode hex="004F"/>
+ <anchor x="657" y="0" name="H"/>
+ <anchor x="632" y="-100" name="L"/>
+ <anchor x="896" y="0" name="O"/>
+ <anchor x="1700" y="1200" name="R"/>
+ <anchor x="1039" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="719" y="147" type="curve" smooth="yes"/>
+ <point x="514" y="147"/>
+ <point x="386" y="300"/>
+ <point x="386" y="541" type="curve" smooth="yes"/>
+ <point x="386" y="871"/>
+ <point x="606" y="1284"/>
+ <point x="963" y="1284" type="curve" smooth="yes"/>
+ <point x="1164" y="1284"/>
+ <point x="1291" y="1133"/>
+ <point x="1291" y="892" type="curve" smooth="yes"/>
+ <point x="1291" y="563"/>
+ <point x="1077" y="147"/>
+ </contour>
+ <contour>
+ <point x="1492" y="931" type="curve" smooth="yes"/>
+ <point x="1492" y="1263"/>
+ <point x="1278" y="1455"/>
+ <point x="1015" y="1455" type="curve" smooth="yes"/>
+ <point x="599" y="1455"/>
+ <point x="185" y="1036"/>
+ <point x="185" y="500" type="curve" smooth="yes"/>
+ <point x="185" y="167"/>
+ <point x="400" y="-25"/>
+ <point x="666" y="-25" type="curve" smooth="yes"/>
+ <point x="1078" y="-25"/>
+ <point x="1492" y="395"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnC_apP_.glif b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnC_apP_.glif
new file mode 100644
index 0000000..5b51a57
--- /dev/null
+++ b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnC_apP_.glif
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapP" format="2">
+ <advance width="1190"/>
+ <unicode hex="0050"/>
+ <anchor x="552" y="-100" name="L"/>
+ <anchor x="959" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="443" y="554" type="line"/>
+ <point x="506" y="547"/>
+ <point x="597" y="544"/>
+ <point x="670" y="544" type="curve" smooth="yes"/>
+ <point x="1058" y="544"/>
+ <point x="1321" y="733"/>
+ <point x="1321" y="1084" type="curve" smooth="yes"/>
+ <point x="1321" y="1302"/>
+ <point x="1141" y="1441"/>
+ <point x="864" y="1441" type="curve" smooth="yes"/>
+ <point x="651" y="1441"/>
+ <point x="456" y="1431"/>
+ <point x="456" y="1431" type="curve"/>
+ <point x="452" y="1352"/>
+ <point x="407" y="1172"/>
+ <point x="359" y="980" type="curve"/>
+ <point x="221" y="426" type="line" smooth="yes"/>
+ <point x="173" y="233"/>
+ <point x="134" y="78"/>
+ <point x="100" y="0" type="curve"/>
+ <point x="320" y="0" type="line"/>
+ <point x="324" y="76"/>
+ <point x="362" y="232"/>
+ <point x="411" y="426" type="curve" smooth="yes"/>
+ </contour>
+ <contour>
+ <point x="623" y="1279" type="line"/>
+ <point x="692" y="1282"/>
+ <point x="721" y="1284"/>
+ <point x="815" y="1284" type="curve" smooth="yes"/>
+ <point x="1036" y="1284"/>
+ <point x="1121" y="1172"/>
+ <point x="1121" y="1048" type="curve" smooth="yes"/>
+ <point x="1121" y="845"/>
+ <point x="968" y="696"/>
+ <point x="693" y="696" type="curve" smooth="yes"/>
+ <point x="618" y="696"/>
+ <point x="542" y="698"/>
+ <point x="481" y="706" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnC_apQ_.glif b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnC_apQ_.glif
new file mode 100644
index 0000000..3dcbc8d
--- /dev/null
+++ b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnC_apQ_.glif
@@ -0,0 +1,52 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapQ" format="2">
+ <advance width="1459"/>
+ <unicode hex="0051"/>
+ <anchor x="589" y="-270" name="L"/>
+ <anchor x="1039" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1495" y="939" type="curve" smooth="yes"/>
+ <point x="1495" y="1266"/>
+ <point x="1306" y="1455"/>
+ <point x="1026" y="1455" type="curve" smooth="yes"/>
+ <point x="703" y="1455"/>
+ <point x="332" y="1195"/>
+ <point x="215" y="726" type="curve" smooth="yes"/>
+ <point x="194" y="642"/>
+ <point x="185" y="564"/>
+ <point x="185" y="492" type="curve" smooth="yes"/>
+ <point x="185" y="165"/>
+ <point x="388" y="-25"/>
+ <point x="652" y="-25" type="curve" smooth="yes"/>
+ <point x="714" y="-25"/>
+ <point x="781" y="-17"/>
+ <point x="829" y="0" type="curve"/>
+ <point x="898" y="0"/>
+ <point x="1133" y="-186"/>
+ <point x="1217" y="-186" type="curve" smooth="yes"/>
+ <point x="1271" y="-186"/>
+ <point x="1355" y="-79"/>
+ <point x="1388" y="-44" type="curve"/>
+ <point x="1258" y="-27"/>
+ <point x="1155" y="27"/>
+ <point x="1049" y="103" type="curve"/>
+ <point x="1253" y="217"/>
+ <point x="1495" y="528"/>
+ </contour>
+ <contour>
+ <point x="690" y="147" type="curve" smooth="yes"/>
+ <point x="492" y="147"/>
+ <point x="384" y="284"/>
+ <point x="384" y="508" type="curve" smooth="yes"/>
+ <point x="384" y="856"/>
+ <point x="609" y="1284"/>
+ <point x="994" y="1284" type="curve" smooth="yes"/>
+ <point x="1188" y="1284"/>
+ <point x="1295" y="1149"/>
+ <point x="1295" y="925" type="curve" smooth="yes"/>
+ <point x="1295" y="490"/>
+ <point x="985" y="147"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnC_apR_.glif b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnC_apR_.glif
new file mode 100644
index 0000000..c8f8186
--- /dev/null
+++ b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnC_apR_.glif
@@ -0,0 +1,55 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapR" format="2">
+ <advance width="1295"/>
+ <unicode hex="0052"/>
+ <anchor x="590" y="0" name="H"/>
+ <anchor x="525" y="-100" name="L"/>
+ <anchor x="932" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="457" y="613" type="line"/>
+ <point x="712" y="613" type="line" smooth="yes"/>
+ <point x="1010" y="613"/>
+ <point x="1303" y="784"/>
+ <point x="1303" y="1114" type="curve" smooth="yes"/>
+ <point x="1303" y="1326"/>
+ <point x="1114" y="1441"/>
+ <point x="844" y="1441" type="curve" smooth="yes"/>
+ <point x="610" y="1441"/>
+ <point x="456" y="1431"/>
+ <point x="456" y="1431" type="curve"/>
+ <point x="452" y="1352"/>
+ <point x="407" y="1172"/>
+ <point x="359" y="980" type="curve" smooth="yes"/>
+ <point x="221" y="426" type="line"/>
+ <point x="173" y="233"/>
+ <point x="134" y="78"/>
+ <point x="100" y="0" type="curve"/>
+ <point x="320" y="0" type="line"/>
+ <point x="324" y="76"/>
+ <point x="363" y="233"/>
+ <point x="411" y="426" type="curve"/>
+ </contour>
+ <contour>
+ <point x="623" y="1279" type="line"/>
+ <point x="677" y="1281"/>
+ <point x="725" y="1284"/>
+ <point x="795" y="1284" type="curve" smooth="yes"/>
+ <point x="1003" y="1284"/>
+ <point x="1104" y="1203"/>
+ <point x="1104" y="1076" type="curve" smooth="yes"/>
+ <point x="1104" y="856"/>
+ <point x="921" y="764"/>
+ <point x="685" y="764" type="curve" smooth="yes"/>
+ <point x="495" y="764" type="line"/>
+ </contour>
+ <contour>
+ <point x="656" y="622" type="line"/>
+ <point x="930" y="0" type="line"/>
+ <point x="1185" y="0" type="line"/>
+ <point x="1122" y="89"/>
+ <point x="864" y="602"/>
+ <point x="828" y="676" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnC_apS_.glif b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnC_apS_.glif
new file mode 100644
index 0000000..01e9f47
--- /dev/null
+++ b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnC_apS_.glif
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapS" format="2">
+ <advance width="1155"/>
+ <unicode hex="0053"/>
+ <anchor x="520" y="0" name="H"/>
+ <anchor x="495" y="-100" name="L"/>
+ <anchor x="902" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1260" y="1347" type="line"/>
+ <point x="1146" y="1419"/>
+ <point x="1021" y="1455"/>
+ <point x="867" y="1455" type="curve" smooth="yes"/>
+ <point x="549" y="1455"/>
+ <point x="320" y="1303"/>
+ <point x="320" y="1040" type="curve" smooth="yes"/>
+ <point x="320" y="901"/>
+ <point x="438" y="794"/>
+ <point x="622" y="691" type="curve" smooth="yes"/>
+ <point x="877" y="549"/>
+ <point x="914" y="461"/>
+ <point x="914" y="378" type="curve" smooth="yes"/>
+ <point x="914" y="256"/>
+ <point x="792" y="147"/>
+ <point x="621" y="147" type="curve" smooth="yes"/>
+ <point x="473" y="147"/>
+ <point x="278" y="235"/>
+ <point x="161" y="378" type="curve"/>
+ <point x="65" y="187" type="line"/>
+ <point x="178" y="73"/>
+ <point x="365" y="-25"/>
+ <point x="558" y="-25" type="curve" smooth="yes"/>
+ <point x="852" y="-25"/>
+ <point x="1114" y="115"/>
+ <point x="1114" y="414" type="curve" smooth="yes"/>
+ <point x="1114" y="526"/>
+ <point x="1057" y="679"/>
+ <point x="800" y="828" type="curve" smooth="yes"/>
+ <point x="597" y="946"/>
+ <point x="510" y="1005"/>
+ <point x="510" y="1079" type="curve" smooth="yes"/>
+ <point x="510" y="1210"/>
+ <point x="659" y="1284"/>
+ <point x="845" y="1284" type="curve" smooth="yes"/>
+ <point x="959" y="1284"/>
+ <point x="1075" y="1240"/>
+ <point x="1173" y="1156" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnC_apT_.glif b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnC_apT_.glif
new file mode 100644
index 0000000..0eeece4
--- /dev/null
+++ b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnC_apT_.glif
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapT" format="2">
+ <advance width="1245"/>
+ <unicode hex="0054"/>
+ <anchor x="562" y="0" name="H"/>
+ <anchor x="562" y="-100" name="L"/>
+ <anchor x="944" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="341" y="1431" type="line"/>
+ <point x="296" y="1250" type="line"/>
+ <point x="380" y="1266"/>
+ <point x="457" y="1269"/>
+ <point x="546" y="1269" type="curve" smooth="yes"/>
+ <point x="781" y="1269" type="line"/>
+ <point x="571" y="426" type="line" smooth="yes"/>
+ <point x="523" y="233"/>
+ <point x="481" y="78"/>
+ <point x="445" y="0" type="curve"/>
+ <point x="675" y="0" type="line"/>
+ <point x="677" y="78"/>
+ <point x="713" y="233"/>
+ <point x="761" y="426" type="curve" smooth="yes"/>
+ <point x="971" y="1269" type="line"/>
+ <point x="1211" y="1269" type="line" smooth="yes"/>
+ <point x="1301" y="1269"/>
+ <point x="1375" y="1266"/>
+ <point x="1451" y="1250" type="curve"/>
+ <point x="1496" y="1431" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnC_apU_.glif b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnC_apU_.glif
new file mode 100644
index 0000000..9576e20
--- /dev/null
+++ b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnC_apU_.glif
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapU" format="2">
+ <advance width="1420"/>
+ <unicode hex="0055"/>
+ <anchor x="647" y="0" name="H"/>
+ <anchor x="622" y="-100" name="L"/>
+ <anchor x="865" y="0" name="O"/>
+ <anchor x="1640" y="1200" name="R"/>
+ <anchor x="1029" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1346" y="1431" type="line"/>
+ <point x="1126" y="549" type="line" smooth="yes"/>
+ <point x="1055" y="264"/>
+ <point x="916" y="132"/>
+ <point x="682" y="132" type="curve" smooth="yes"/>
+ <point x="485" y="132"/>
+ <point x="421" y="244"/>
+ <point x="421" y="391" type="curve" smooth="yes"/>
+ <point x="421" y="451"/>
+ <point x="431" y="516"/>
+ <point x="448" y="582" type="curve" smooth="yes"/>
+ <point x="661" y="1431" type="line"/>
+ <point x="456" y="1431" type="line"/>
+ <point x="451" y="1352"/>
+ <point x="414" y="1198"/>
+ <point x="365" y="1005" type="curve" smooth="yes"/>
+ <point x="251" y="552" type="line" smooth="yes"/>
+ <point x="236" y="493"/>
+ <point x="228" y="435"/>
+ <point x="228" y="379" type="curve" smooth="yes"/>
+ <point x="228" y="157"/>
+ <point x="351" y="-25"/>
+ <point x="643" y="-25" type="curve" smooth="yes"/>
+ <point x="1020" y="-25"/>
+ <point x="1223" y="177"/>
+ <point x="1299" y="480" type="curve" smooth="yes"/>
+ <point x="1430" y="1005" type="line" smooth="yes"/>
+ <point x="1480" y="1207"/>
+ <point x="1519" y="1352"/>
+ <point x="1551" y="1431" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnC_apV_.glif b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnC_apV_.glif
new file mode 100644
index 0000000..2bf8b96
--- /dev/null
+++ b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnC_apV_.glif
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapV" format="2">
+ <advance width="1345"/>
+ <unicode hex="0056"/>
+ <anchor x="620" y="0" name="H"/>
+ <anchor x="587" y="-100" name="L"/>
+ <anchor x="820" y="0" name="O"/>
+ <anchor x="994" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1381" y="1431" type="line"/>
+ <point x="654" y="191" type="line"/>
+ <point x="536" y="1431" type="line"/>
+ <point x="331" y="1431" type="line"/>
+ <point x="344" y="1350"/>
+ <point x="355" y="1262"/>
+ <point x="377" y="1073" type="curve" smooth="yes"/>
+ <point x="500" y="0" type="line"/>
+ <point x="725" y="0" type="line"/>
+ <point x="1377" y="1073" type="line" smooth="yes"/>
+ <point x="1492" y="1263"/>
+ <point x="1550" y="1350"/>
+ <point x="1606" y="1431" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnC_apW_.glif b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnC_apW_.glif
new file mode 100644
index 0000000..553ea17
--- /dev/null
+++ b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnC_apW_.glif
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapW" format="2">
+ <advance width="2060"/>
+ <unicode hex="0057"/>
+ <anchor x="942" y="-100" name="L"/>
+ <anchor x="1349" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1535" y="0" type="line"/>
+ <point x="2107" y="1073" type="line" smooth="yes"/>
+ <point x="2208" y="1263"/>
+ <point x="2259" y="1350"/>
+ <point x="2311" y="1431" type="curve"/>
+ <point x="2081" y="1431" type="line"/>
+ <point x="1431" y="127" type="line"/>
+ <point x="1420" y="0" type="line"/>
+ </contour>
+ <contour>
+ <point x="1310" y="0" type="line"/>
+ <point x="1420" y="0" type="line"/>
+ <point x="1461" y="127" type="line"/>
+ <point x="1406" y="1431" type="line"/>
+ <point x="1231" y="1431" type="line"/>
+ <point x="1248" y="1279" type="line"/>
+ </contour>
+ <contour>
+ <point x="625" y="0" type="line"/>
+ <point x="1406" y="1431" type="line"/>
+ <point x="1221" y="1431" type="line"/>
+ <point x="521" y="127" type="line"/>
+ <point x="521" y="0" type="line"/>
+ </contour>
+ <contour>
+ <point x="546" y="1431" type="line"/>
+ <point x="336" y="1431" type="line"/>
+ <point x="348" y="1353"/>
+ <point x="355" y="1260"/>
+ <point x="362" y="1073" type="curve" smooth="yes"/>
+ <point x="400" y="0" type="line"/>
+ <point x="521" y="0" type="line"/>
+ <point x="551" y="127" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnC_apX_.glif b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnC_apX_.glif
new file mode 100644
index 0000000..2da5787
--- /dev/null
+++ b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnC_apX_.glif
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapX" format="2">
+ <advance width="1305"/>
+ <unicode hex="0058"/>
+ <anchor x="565" y="-100" name="L"/>
+ <anchor x="972" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="970" y="0" type="line"/>
+ <point x="1190" y="0" type="line"/>
+ <point x="1148" y="80"/>
+ <point x="1125" y="124"/>
+ <point x="1045" y="329" type="curve" smooth="yes"/>
+ <point x="611" y="1431" type="line"/>
+ <point x="386" y="1431" type="line"/>
+ <point x="430" y="1348"/>
+ <point x="462" y="1289"/>
+ <point x="541" y="1088" type="curve" smooth="yes"/>
+ </contour>
+ <contour>
+ <point x="752" y="872" type="line"/>
+ <point x="278" y="333" type="line" smooth="yes"/>
+ <point x="98" y="129"/>
+ <point x="53" y="84"/>
+ <point x="-30" y="0" type="curve"/>
+ <point x="210" y="0" type="line"/>
+ <point x="750" y="622" type="line"/>
+ </contour>
+ <contour>
+ <point x="765" y="622" type="line"/>
+ <point x="1183" y="1088" type="line" smooth="yes"/>
+ <point x="1360" y="1285"/>
+ <point x="1425" y="1355"/>
+ <point x="1506" y="1431" type="curve"/>
+ <point x="1261" y="1431" type="line"/>
+ <point x="767" y="872" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnC_apY_.glif b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnC_apY_.glif
new file mode 100644
index 0000000..9ec65ef
--- /dev/null
+++ b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnC_apY_.glif
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapY" format="2">
+ <advance width="1300"/>
+ <unicode hex="0059"/>
+ <anchor x="565" y="-100" name="L"/>
+ <anchor x="972" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="331" y="1431" type="line"/>
+ <point x="407" y="1285"/>
+ <point x="446" y="1173"/>
+ <point x="490" y="1044" type="curve"/>
+ <point x="661" y="549" type="line"/>
+ <point x="829" y="661" type="line"/>
+ <point x="551" y="1431" type="line"/>
+ </contour>
+ <contour>
+ <point x="1321" y="1431" type="line"/>
+ <point x="684" y="661" type="line"/>
+ <point x="796" y="549" type="line"/>
+ <point x="1215" y="1044" type="line" smooth="yes"/>
+ <point x="1322" y="1171"/>
+ <point x="1402" y="1265"/>
+ <point x="1561" y="1431" type="curve"/>
+ </contour>
+ <contour>
+ <point x="700" y="0" type="line"/>
+ <point x="704" y="78"/>
+ <point x="743" y="233"/>
+ <point x="791" y="426" type="curve" smooth="yes"/>
+ <point x="854" y="681" type="line"/>
+ <point x="664" y="681" type="line"/>
+ <point x="601" y="426" type="line" smooth="yes"/>
+ <point x="553" y="233"/>
+ <point x="514" y="78"/>
+ <point x="480" y="0" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mA_.glif b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mA_.glif
new file mode 100644
index 0000000..586e494
--- /dev/null
+++ b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mA_.glif
@@ -0,0 +1,77 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmA" format="2">
+ <advance width="1107"/>
+ <unicode hex="0061"/>
+ <anchor x="860" y="0" name="H"/>
+ <anchor x="455" y="-100" name="L"/>
+ <anchor x="1065" y="0" name="O"/>
+ <anchor x="1310" y="1000" name="R"/>
+ <anchor x="755" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="972" y="0" type="line"/>
+ <point x="965" y="48"/>
+ <point x="960" y="98"/>
+ <point x="960" y="149" type="curve" smooth="yes"/>
+ <point x="960" y="214"/>
+ <point x="967" y="284"/>
+ <point x="987" y="363" type="curve"/>
+ <point x="1077" y="726" type="line"/>
+ <point x="1081" y="744"/>
+ <point x="1084" y="762"/>
+ <point x="1084" y="779" type="curve" smooth="yes"/>
+ <point x="1084" y="912"/>
+ <point x="955" y="1019"/>
+ <point x="751" y="1019" type="curve" smooth="yes"/>
+ <point x="599" y="1019"/>
+ <point x="502" y="974"/>
+ <point x="389" y="931" type="curve"/>
+ <point x="373" y="889"/>
+ <point x="343" y="783"/>
+ <point x="331" y="740" type="curve"/>
+ <point x="468" y="820"/>
+ <point x="560" y="862"/>
+ <point x="666" y="862" type="curve" smooth="yes"/>
+ <point x="798" y="862"/>
+ <point x="885" y="810"/>
+ <point x="885" y="718" type="curve" smooth="yes"/>
+ <point x="885" y="705"/>
+ <point x="884" y="691"/>
+ <point x="880" y="677" type="curve" smooth="yes"/>
+ <point x="867" y="622" type="line"/>
+ <point x="825" y="619"/>
+ <point x="661" y="605"/>
+ <point x="591" y="598" type="curve" smooth="yes"/>
+ <point x="282" y="568"/>
+ <point x="102" y="415"/>
+ <point x="102" y="233" type="curve" smooth="yes"/>
+ <point x="102" y="103"/>
+ <point x="223" y="-25"/>
+ <point x="390" y="-25" type="curve" smooth="yes"/>
+ <point x="514" y="-25"/>
+ <point x="674" y="47"/>
+ <point x="779" y="152" type="curve"/>
+ <point x="779" y="89"/>
+ <point x="787" y="31"/>
+ <point x="792" y="0" type="curve"/>
+ </contour>
+ <contour>
+ <point x="791" y="319" type="line"/>
+ <point x="674" y="191"/>
+ <point x="553" y="137"/>
+ <point x="451" y="137" type="curve" smooth="yes"/>
+ <point x="355" y="137"/>
+ <point x="290" y="192"/>
+ <point x="290" y="264" type="curve" smooth="yes"/>
+ <point x="290" y="274"/>
+ <point x="291" y="285"/>
+ <point x="294" y="296" type="curve" smooth="yes"/>
+ <point x="315" y="380"/>
+ <point x="432" y="450"/>
+ <point x="566" y="461" type="curve" smooth="yes"/>
+ <point x="631" y="466"/>
+ <point x="782" y="483"/>
+ <point x="832" y="485" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mA_A_cute.glif b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mA_A_cute.glif
new file mode 100644
index 0000000..198d6db
--- /dev/null
+++ b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mA_A_cute.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmAAcute" format="2">
+ <advance width="1107"/>
+ <unicode hex="00E1"/>
+ <anchor x="860" y="0" name="H"/>
+ <anchor x="455" y="-100" name="L"/>
+ <anchor x="1065" y="0" name="O"/>
+ <anchor x="1310" y="1000" name="R"/>
+ <anchor x="889" y="1635" name="U"/>
+ <outline>
+ <component base="LtnSmA"/>
+ <component base="CombAcute" xOffset="1110"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mA_C_ircum.glif b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mA_C_ircum.glif
new file mode 100644
index 0000000..f5cfb16
--- /dev/null
+++ b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mA_C_ircum.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmACircum" format="2">
+ <advance width="1107"/>
+ <unicode hex="00E2"/>
+ <anchor x="860" y="0" name="H"/>
+ <anchor x="455" y="-100" name="L"/>
+ <anchor x="1065" y="0" name="O"/>
+ <anchor x="1310" y="1000" name="R"/>
+ <anchor x="854" y="1635" name="U"/>
+ <outline>
+ <component base="LtnSmA"/>
+ <component base="CombCircum" xOffset="1075"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mA_D_iaer.glif b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mA_D_iaer.glif
new file mode 100644
index 0000000..6f05301
--- /dev/null
+++ b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mA_D_iaer.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmADiaer" format="2">
+ <advance width="1107"/>
+ <unicode hex="00E4"/>
+ <anchor x="860" y="0" name="H"/>
+ <anchor x="455" y="-100" name="L"/>
+ <anchor x="1065" y="0" name="O"/>
+ <anchor x="1310" y="1000" name="R"/>
+ <anchor x="852" y="1505" name="U"/>
+ <outline>
+ <component base="LtnSmA"/>
+ <component base="CombDiaer" xOffset="1105"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mA_G_rave.glif b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mA_G_rave.glif
new file mode 100644
index 0000000..9048920
--- /dev/null
+++ b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mA_G_rave.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmAGrave" format="2">
+ <advance width="1107"/>
+ <unicode hex="00E0"/>
+ <anchor x="860" y="0" name="H"/>
+ <anchor x="455" y="-100" name="L"/>
+ <anchor x="1065" y="0" name="O"/>
+ <anchor x="1310" y="1000" name="R"/>
+ <anchor x="889" y="1635" name="U"/>
+ <outline>
+ <component base="LtnSmA"/>
+ <component base="CombGrave" xOffset="1090"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mA_R_ingA_bv.glif b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mA_R_ingA_bv.glif
new file mode 100644
index 0000000..8ada58f
--- /dev/null
+++ b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mA_R_ingA_bv.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmARingAbv" format="2">
+ <advance width="1107"/>
+ <unicode hex="00E5"/>
+ <anchor x="860" y="0" name="H"/>
+ <anchor x="455" y="-100" name="L"/>
+ <anchor x="1065" y="0" name="O"/>
+ <anchor x="1310" y="1000" name="R"/>
+ <anchor x="919" y="1635" name="U"/>
+ <outline>
+ <component base="LtnSmA"/>
+ <component base="CombRingAbv" xOffset="1140"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mA_T_ilde.glif b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mA_T_ilde.glif
new file mode 100644
index 0000000..c29348b
--- /dev/null
+++ b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mA_T_ilde.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmATilde" format="2">
+ <advance width="1107"/>
+ <unicode hex="00E3"/>
+ <anchor x="860" y="0" name="H"/>
+ <anchor x="455" y="-100" name="L"/>
+ <anchor x="1065" y="0" name="O"/>
+ <anchor x="1310" y="1000" name="R"/>
+ <anchor x="850" y="1475" name="U"/>
+ <outline>
+ <component base="LtnSmA"/>
+ <component base="CombTilde" xOffset="1140"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mB_.glif b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mB_.glif
new file mode 100644
index 0000000..b3a3696
--- /dev/null
+++ b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mB_.glif
@@ -0,0 +1,55 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmB" format="2">
+ <advance width="1144"/>
+ <unicode hex="0062"/>
+ <anchor x="530" y="0" name="H"/>
+ <anchor x="505" y="-100" name="L"/>
+ <anchor x="1345" y="1000" name="R"/>
+ <anchor x="938" y="1635" name="U"/>
+ <outline>
+ <contour>
+ <point x="437" y="1570" type="line"/>
+ <point x="437" y="1456"/>
+ <point x="402" y="1246"/>
+ <point x="367" y="1105" type="curve" smooth="yes"/>
+ <point x="110" y="85" type="line"/>
+ <point x="198" y="44"/>
+ <point x="355" y="-25"/>
+ <point x="517" y="-25" type="curve" smooth="yes"/>
+ <point x="675" y="-25"/>
+ <point x="795" y="24"/>
+ <point x="907" y="125" type="curve" smooth="yes"/>
+ <point x="1050" y="255"/>
+ <point x="1162" y="466"/>
+ <point x="1162" y="695" type="curve" smooth="yes"/>
+ <point x="1162" y="930"/>
+ <point x="1046" y="1020"/>
+ <point x="907" y="1020" type="curve" smooth="yes"/>
+ <point x="754" y="1020"/>
+ <point x="584" y="878"/>
+ <point x="456" y="719" type="curve"/>
+ <point x="552" y="1105" type="line" smooth="yes"/>
+ <point x="600" y="1296"/>
+ <point x="627" y="1508"/>
+ <point x="627" y="1570" type="curve"/>
+ </contour>
+ <contour>
+ <point x="382" y="429" type="line"/>
+ <point x="485" y="617"/>
+ <point x="708" y="850"/>
+ <point x="822" y="850" type="curve" smooth="yes"/>
+ <point x="913" y="850"/>
+ <point x="972" y="784"/>
+ <point x="972" y="635" type="curve" smooth="yes"/>
+ <point x="972" y="469"/>
+ <point x="909" y="336"/>
+ <point x="822" y="250" type="curve" smooth="yes"/>
+ <point x="741" y="169"/>
+ <point x="638" y="125"/>
+ <point x="552" y="125" type="curve" smooth="yes"/>
+ <point x="466" y="125"/>
+ <point x="376" y="167"/>
+ <point x="325" y="200" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mC_.glif b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mC_.glif
new file mode 100644
index 0000000..f54fbe9
--- /dev/null
+++ b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mC_.glif
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmC" format="2">
+ <advance width="989"/>
+ <unicode hex="0063"/>
+ <anchor x="520" y="0" name="H"/>
+ <anchor x="495" y="-100" name="L"/>
+ <anchor x="1210" y="1000" name="R"/>
+ <anchor x="785" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="917" y="255" type="line"/>
+ <point x="811" y="179"/>
+ <point x="703" y="137"/>
+ <point x="583" y="137" type="curve" smooth="yes"/>
+ <point x="427" y="137"/>
+ <point x="331" y="239"/>
+ <point x="331" y="406" type="curve" smooth="yes"/>
+ <point x="331" y="619"/>
+ <point x="499" y="858"/>
+ <point x="742" y="858" type="curve" smooth="yes"/>
+ <point x="845" y="858"/>
+ <point x="924" y="824"/>
+ <point x="998" y="760" type="curve"/>
+ <point x="1077" y="936" type="line"/>
+ <point x="1016" y="985"/>
+ <point x="902" y="1020"/>
+ <point x="789" y="1020" type="curve" smooth="yes"/>
+ <point x="420" y="1020"/>
+ <point x="139" y="737"/>
+ <point x="139" y="381" type="curve" smooth="yes"/>
+ <point x="139" y="130"/>
+ <point x="309" y="-25"/>
+ <point x="532" y="-25" type="curve" smooth="yes"/>
+ <point x="682" y="-25"/>
+ <point x="785" y="9"/>
+ <point x="904" y="83" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mD_.glif b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mD_.glif
new file mode 100644
index 0000000..4ea9ea1
--- /dev/null
+++ b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mD_.glif
@@ -0,0 +1,65 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmD" format="2">
+ <advance width="1197"/>
+ <unicode hex="0064"/>
+ <anchor x="545" y="0" name="H"/>
+ <anchor x="520" y="-100" name="L"/>
+ <anchor x="1380" y="1000" name="R"/>
+ <anchor x="953" y="1635" name="U"/>
+ <outline>
+ <contour>
+ <point x="1144" y="1570" type="line"/>
+ <point x="1144" y="1456"/>
+ <point x="1114" y="1327"/>
+ <point x="1079" y="1175" type="curve" smooth="yes"/>
+ <point x="1024" y="935" type="line"/>
+ <point x="957" y="978"/>
+ <point x="854" y="1020"/>
+ <point x="759" y="1020" type="curve" smooth="yes"/>
+ <point x="650" y="1020"/>
+ <point x="534" y="979"/>
+ <point x="429" y="895" type="curve" smooth="yes"/>
+ <point x="262" y="761"/>
+ <point x="139" y="532"/>
+ <point x="139" y="288" type="curve" smooth="yes"/>
+ <point x="139" y="94"/>
+ <point x="250" y="-25"/>
+ <point x="424" y="-25" type="curve" smooth="yes"/>
+ <point x="563" y="-25"/>
+ <point x="791" y="141"/>
+ <point x="899" y="305" type="curve"/>
+ <point x="875" y="196"/>
+ <point x="869" y="93"/>
+ <point x="869" y="0" type="curve"/>
+ <point x="1052" y="0" type="line"/>
+ <point x="1048" y="23"/>
+ <point x="1047" y="53"/>
+ <point x="1047" y="90" type="curve" smooth="yes"/>
+ <point x="1047" y="190"/>
+ <point x="1063" y="340"/>
+ <point x="1107" y="520" type="curve" smooth="yes"/>
+ <point x="1267" y="1175" type="line" smooth="yes"/>
+ <point x="1310" y="1351"/>
+ <point x="1337" y="1475"/>
+ <point x="1337" y="1570" type="curve"/>
+ </contour>
+ <contour>
+ <point x="930" y="545" type="line"/>
+ <point x="846" y="370"/>
+ <point x="592" y="130"/>
+ <point x="479" y="130" type="curve" smooth="yes"/>
+ <point x="374" y="130"/>
+ <point x="330" y="195"/>
+ <point x="330" y="316" type="curve" smooth="yes"/>
+ <point x="330" y="460"/>
+ <point x="397" y="649"/>
+ <point x="509" y="760" type="curve" smooth="yes"/>
+ <point x="572" y="822"/>
+ <point x="643" y="855"/>
+ <point x="734" y="855" type="curve" smooth="yes"/>
+ <point x="835" y="855"/>
+ <point x="898" y="832"/>
+ <point x="984" y="780" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mE_.glif b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mE_.glif
new file mode 100644
index 0000000..a3a6490
--- /dev/null
+++ b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mE_.glif
@@ -0,0 +1,52 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmE" format="2">
+ <advance width="1042"/>
+ <unicode hex="0065"/>
+ <anchor x="485" y="0" name="H"/>
+ <anchor x="484" y="-100" name="L"/>
+ <anchor x="840" y="0" name="O"/>
+ <anchor x="1285" y="1000" name="R"/>
+ <anchor x="784" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="967" y="270" type="line"/>
+ <point x="854" y="189"/>
+ <point x="700" y="135"/>
+ <point x="567" y="135" type="curve" smooth="yes"/>
+ <point x="386" y="135"/>
+ <point x="317" y="263"/>
+ <point x="317" y="420" type="curve" smooth="yes"/>
+ <point x="317" y="686"/>
+ <point x="522" y="872"/>
+ <point x="720" y="872" type="curve" smooth="yes"/>
+ <point x="813" y="872"/>
+ <point x="883" y="823"/>
+ <point x="883" y="753" type="curve" smooth="yes"/>
+ <point x="883" y="660"/>
+ <point x="766" y="590"/>
+ <point x="539" y="590" type="curve" smooth="yes"/>
+ <point x="468" y="590"/>
+ <point x="382" y="596"/>
+ <point x="279" y="610" type="curve"/>
+ <point x="279" y="477" type="line"/>
+ <point x="391" y="461"/>
+ <point x="487" y="453"/>
+ <point x="569" y="453" type="curve" smooth="yes"/>
+ <point x="931" y="453"/>
+ <point x="1077" y="609"/>
+ <point x="1077" y="791" type="curve" smooth="yes"/>
+ <point x="1077" y="899"/>
+ <point x="986" y="1020"/>
+ <point x="772" y="1020" type="curve" smooth="yes"/>
+ <point x="399" y="1020"/>
+ <point x="137" y="710"/>
+ <point x="137" y="380" type="curve" smooth="yes"/>
+ <point x="137" y="147"/>
+ <point x="258" y="-25"/>
+ <point x="523" y="-25" type="curve" smooth="yes"/>
+ <point x="689" y="-25"/>
+ <point x="849" y="26"/>
+ <point x="955" y="83" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mF_.glif b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mF_.glif
new file mode 100644
index 0000000..ede52a9
--- /dev/null
+++ b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mF_.glif
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmF" format="2">
+ <advance width="756"/>
+ <unicode hex="0066"/>
+ <anchor x="290" y="0" name="H"/>
+ <anchor x="315" y="-100" name="L"/>
+ <anchor x="908" y="1635" name="U"/>
+ <outline>
+ <contour>
+ <point x="180" y="833" type="line"/>
+ <point x="835" y="833" type="line"/>
+ <point x="871" y="975" type="line"/>
+ <point x="216" y="975" type="line"/>
+ </contour>
+ <contour>
+ <point x="1106" y="1519" type="line"/>
+ <point x="1062" y="1555"/>
+ <point x="981" y="1588"/>
+ <point x="903" y="1588" type="curve" smooth="yes"/>
+ <point x="687" y="1588"/>
+ <point x="533" y="1478"/>
+ <point x="448" y="1147" type="curve" smooth="yes"/>
+ <point x="403" y="972"/>
+ <point x="244" y="334"/>
+ <point x="223" y="0" type="curve"/>
+ <point x="436" y="0" type="line"/>
+ <point x="430" y="28"/>
+ <point x="427" y="66"/>
+ <point x="427" y="110" type="curve" smooth="yes"/>
+ <point x="427" y="213"/>
+ <point x="447" y="351"/>
+ <point x="476" y="484" type="curve" smooth="yes"/>
+ <point x="510" y="641"/>
+ <point x="558" y="846"/>
+ <point x="641" y="1186" type="curve" smooth="yes"/>
+ <point x="682" y="1353"/>
+ <point x="758" y="1421"/>
+ <point x="862" y="1421" type="curve" smooth="yes"/>
+ <point x="920" y="1421"/>
+ <point x="988" y="1392"/>
+ <point x="1022" y="1362" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mG_.glif b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mG_.glif
new file mode 100644
index 0000000..8931f8d
--- /dev/null
+++ b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mG_.glif
@@ -0,0 +1,100 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmG" format="2">
+ <advance width="1075"/>
+ <unicode hex="0067"/>
+ <anchor x="368" y="-465" name="H"/>
+ <anchor x="351" y="-535" name="L"/>
+ <anchor x="1285" y="1000" name="R"/>
+ <anchor x="730" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="360" y="389" type="line"/>
+ <point x="277" y="352"/>
+ <point x="168" y="266"/>
+ <point x="168" y="176" type="curve" smooth="yes"/>
+ <point x="168" y="96"/>
+ <point x="246" y="33"/>
+ <point x="483" y="-5" type="curve" smooth="yes"/>
+ <point x="707" y="-41"/>
+ <point x="781" y="-94"/>
+ <point x="781" y="-151" type="curve" smooth="yes"/>
+ <point x="781" y="-256"/>
+ <point x="580" y="-353"/>
+ <point x="411" y="-353" type="curve" smooth="yes"/>
+ <point x="202" y="-353"/>
+ <point x="104" y="-271"/>
+ <point x="104" y="-196" type="curve" smooth="yes"/>
+ <point x="104" y="-189"/>
+ <point x="104" y="-183"/>
+ <point x="106" y="-176" type="curve" smooth="yes"/>
+ <point x="120" y="-119"/>
+ <point x="170" y="-55"/>
+ <point x="409" y="20" type="curve"/>
+ <point x="410" y="48"/>
+ <point x="248" y="73"/>
+ <point x="248" y="73" type="curve"/>
+ <point x="53" y="12"/>
+ <point x="-51" y="-77"/>
+ <point x="-78" y="-186" type="curve" smooth="yes"/>
+ <point x="-82" y="-201"/>
+ <point x="-84" y="-217"/>
+ <point x="-84" y="-231" type="curve" smooth="yes"/>
+ <point x="-84" y="-396"/>
+ <point x="158" y="-495"/>
+ <point x="371" y="-495" type="curve" smooth="yes"/>
+ <point x="632" y="-495"/>
+ <point x="972" y="-360"/>
+ <point x="972" y="-125" type="curve" smooth="yes"/>
+ <point x="972" y="0"/>
+ <point x="849" y="90"/>
+ <point x="619" y="127" type="curve" smooth="yes"/>
+ <point x="403" y="162"/>
+ <point x="341" y="184"/>
+ <point x="341" y="218" type="curve" smooth="yes"/>
+ <point x="341" y="263"/>
+ <point x="447" y="325"/>
+ <point x="522" y="342" type="curve"/>
+ </contour>
+ <contour>
+ <point x="1244" y="1019" type="line"/>
+ <point x="1143" y="1012"/>
+ <point x="1002" y="977"/>
+ <point x="899" y="921" type="curve"/>
+ <point x="936" y="809" type="line"/>
+ <point x="1037" y="846"/>
+ <point x="1121" y="860"/>
+ <point x="1194" y="862" type="curve"/>
+ </contour>
+ <contour>
+ <point x="212" y="613" type="curve" smooth="yes"/>
+ <point x="212" y="449"/>
+ <point x="356" y="319"/>
+ <point x="554" y="319" type="curve" smooth="yes"/>
+ <point x="791" y="319"/>
+ <point x="1030" y="495"/>
+ <point x="1030" y="729" type="curve" smooth="yes"/>
+ <point x="1030" y="894"/>
+ <point x="887" y="1019"/>
+ <point x="689" y="1019" type="curve" smooth="yes"/>
+ <point x="441" y="1019"/>
+ <point x="212" y="847"/>
+ </contour>
+ <contour>
+ <point x="857" y="704" type="curve" smooth="yes"/>
+ <point x="857" y="555"/>
+ <point x="712" y="456"/>
+ <point x="578" y="456" type="curve" smooth="yes"/>
+ <point x="463" y="456"/>
+ <point x="385" y="530"/>
+ <point x="385" y="628" type="curve" smooth="yes"/>
+ <point x="385" y="643"/>
+ <point x="387" y="660"/>
+ <point x="391" y="676" type="curve" smooth="yes"/>
+ <point x="421" y="797"/>
+ <point x="530" y="877"/>
+ <point x="663" y="877" type="curve" smooth="yes"/>
+ <point x="779" y="877"/>
+ <point x="857" y="802"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mH_.glif b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mH_.glif
new file mode 100644
index 0000000..08afbac
--- /dev/null
+++ b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mH_.glif
@@ -0,0 +1,54 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmH" format="2">
+ <advance width="1185"/>
+ <unicode hex="0068"/>
+ <anchor x="190" y="0" name="H"/>
+ <anchor x="550" y="-100" name="L"/>
+ <anchor x="933" y="1635" name="U"/>
+ <outline>
+ <contour>
+ <point x="1055" y="0" type="line"/>
+ <point x="1047" y="30"/>
+ <point x="1043" y="65"/>
+ <point x="1043" y="102" type="curve" smooth="yes"/>
+ <point x="1043" y="143"/>
+ <point x="1048" y="188"/>
+ <point x="1055" y="238" type="curve" smooth="yes"/>
+ <point x="1069" y="327"/>
+ <point x="1170" y="636"/>
+ <point x="1170" y="745" type="curve" smooth="yes"/>
+ <point x="1170" y="917"/>
+ <point x="1095" y="1020"/>
+ <point x="930" y="1020" type="curve" smooth="yes"/>
+ <point x="760" y="1020"/>
+ <point x="591" y="877"/>
+ <point x="475" y="723" type="curve"/>
+ <point x="571" y="1105" type="line" smooth="yes"/>
+ <point x="609" y="1259"/>
+ <point x="645" y="1482"/>
+ <point x="645" y="1570" type="curve"/>
+ <point x="455" y="1570" type="line"/>
+ <point x="455" y="1456"/>
+ <point x="423" y="1257"/>
+ <point x="385" y="1105" type="curve" smooth="yes"/>
+ <point x="110" y="0" type="line"/>
+ <point x="295" y="0" type="line"/>
+ <point x="397" y="408" type="line"/>
+ <point x="492" y="612"/>
+ <point x="717" y="850"/>
+ <point x="840" y="850" type="curve" smooth="yes"/>
+ <point x="937" y="850"/>
+ <point x="970" y="798"/>
+ <point x="970" y="680" type="curve" smooth="yes"/>
+ <point x="970" y="592"/>
+ <point x="886" y="319"/>
+ <point x="872" y="203" type="curve" smooth="yes"/>
+ <point x="867" y="158"/>
+ <point x="864" y="115"/>
+ <point x="864" y="77" type="curve" smooth="yes"/>
+ <point x="864" y="48"/>
+ <point x="866" y="21"/>
+ <point x="870" y="0" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mI_.glif b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mI_.glif
new file mode 100644
index 0000000..65ed550
--- /dev/null
+++ b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mI_.glif
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmI" format="2">
+ <advance width="554"/>
+ <unicode hex="0069"/>
+ <anchor x="235" y="0" name="H"/>
+ <anchor x="250" y="-100" name="L"/>
+ <anchor x="455" y="0" name="O"/>
+ <anchor x="745" y="1000" name="R"/>
+ <anchor x="472" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="361" y="1297" type="curve" smooth="yes"/>
+ <point x="361" y="1237"/>
+ <point x="404" y="1186"/>
+ <point x="467" y="1186" type="curve" smooth="yes"/>
+ <point x="552" y="1186"/>
+ <point x="624" y="1259"/>
+ <point x="624" y="1338" type="curve" smooth="yes"/>
+ <point x="624" y="1399"/>
+ <point x="578" y="1450"/>
+ <point x="513" y="1450" type="curve" smooth="yes"/>
+ <point x="428" y="1450"/>
+ <point x="361" y="1375"/>
+ </contour>
+ <contour>
+ <point x="335" y="1000" type="line"/>
+ <point x="335" y="886"/>
+ <point x="286" y="688"/>
+ <point x="246" y="537" type="curve" smooth="yes"/>
+ <point x="207" y="388" type="line" smooth="yes"/>
+ <point x="180" y="284"/>
+ <point x="165" y="172"/>
+ <point x="165" y="87" type="curve" smooth="yes"/>
+ <point x="165" y="53"/>
+ <point x="167" y="24"/>
+ <point x="172" y="0" type="curve"/>
+ <point x="372" y="0" type="line"/>
+ <point x="365" y="37"/>
+ <point x="360" y="85"/>
+ <point x="360" y="136" type="curve" smooth="yes"/>
+ <point x="360" y="208"/>
+ <point x="368" y="287"/>
+ <point x="386" y="357" type="curve" smooth="yes"/>
+ <point x="431" y="536" type="line" smooth="yes"/>
+ <point x="476" y="712"/>
+ <point x="525" y="912"/>
+ <point x="525" y="1000" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mJ_.glif b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mJ_.glif
new file mode 100644
index 0000000..e9e18b8
--- /dev/null
+++ b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mJ_.glif
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmJ" format="2">
+ <advance width="602"/>
+ <unicode hex="006A"/>
+ <anchor x="-60" y="-500" name="L"/>
+ <anchor x="510" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="370" y="1000" type="line"/>
+ <point x="370" y="856"/>
+ <point x="288" y="374"/>
+ <point x="214" y="77" type="curve" smooth="yes"/>
+ <point x="152" y="-173"/>
+ <point x="29" y="-295"/>
+ <point x="-77" y="-295" type="curve" smooth="yes"/>
+ <point x="-133" y="-295"/>
+ <point x="-217" y="-264"/>
+ <point x="-253" y="-229" type="curve"/>
+ <point x="-328" y="-397" type="line"/>
+ <point x="-278" y="-437"/>
+ <point x="-170" y="-465"/>
+ <point x="-114" y="-465" type="curve" smooth="yes"/>
+ <point x="103" y="-465"/>
+ <point x="303" y="-314"/>
+ <point x="396" y="66" type="curve" smooth="yes"/>
+ <point x="455" y="307"/>
+ <point x="560" y="872"/>
+ <point x="560" y="1000" type="curve"/>
+ </contour>
+ <contour>
+ <point x="397" y="1297" type="curve" smooth="yes"/>
+ <point x="397" y="1237"/>
+ <point x="440" y="1186"/>
+ <point x="503" y="1186" type="curve" smooth="yes"/>
+ <point x="588" y="1186"/>
+ <point x="660" y="1259"/>
+ <point x="660" y="1338" type="curve" smooth="yes"/>
+ <point x="660" y="1399"/>
+ <point x="614" y="1450"/>
+ <point x="549" y="1450" type="curve" smooth="yes"/>
+ <point x="464" y="1450"/>
+ <point x="397" y="1375"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mK_.glif b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mK_.glif
new file mode 100644
index 0000000..28fbc71
--- /dev/null
+++ b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mK_.glif
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmK" format="2">
+ <advance width="1059"/>
+ <unicode hex="006B"/>
+ <anchor x="840" y="0" name="H"/>
+ <anchor x="537" y="-100" name="L"/>
+ <anchor x="1225" y="1000" name="R"/>
+ <anchor x="920" y="1635" name="U"/>
+ <outline>
+ <contour>
+ <point x="295" y="0" type="line"/>
+ <point x="570" y="1105" type="line" smooth="yes"/>
+ <point x="614" y="1280"/>
+ <point x="645" y="1482"/>
+ <point x="645" y="1570" type="curve"/>
+ <point x="455" y="1570" type="line"/>
+ <point x="455" y="1456"/>
+ <point x="424" y="1259"/>
+ <point x="386" y="1107" type="curve" smooth="yes"/>
+ <point x="338" y="915"/>
+ <point x="110" y="0"/>
+ <point x="110" y="0" type="curve"/>
+ </contour>
+ <contour>
+ <point x="909" y="1000" type="line"/>
+ <point x="885" y="863"/>
+ <point x="654" y="700"/>
+ <point x="379" y="539" type="curve"/>
+ <point x="386" y="540"/>
+ <point x="393" y="540"/>
+ <point x="400" y="540" type="curve" smooth="yes"/>
+ <point x="467" y="540"/>
+ <point x="559" y="514"/>
+ <point x="559" y="514" type="curve"/>
+ <point x="902" y="702"/>
+ <point x="1134" y="884"/>
+ <point x="1134" y="1000" type="curve"/>
+ </contour>
+ <contour>
+ <point x="1010" y="0" type="line"/>
+ <point x="863" y="238"/>
+ <point x="718" y="600"/>
+ <point x="527" y="600" type="curve"/>
+ <point x="385" y="529" type="line"/>
+ <point x="540" y="529"/>
+ <point x="667" y="246"/>
+ <point x="775" y="0" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mL_.glif b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mL_.glif
new file mode 100644
index 0000000..06d68fd
--- /dev/null
+++ b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mL_.glif
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmL" format="2">
+ <advance width="575"/>
+ <unicode hex="006C"/>
+ <anchor x="230" y="0" name="H"/>
+ <anchor x="255" y="-100" name="L"/>
+ <anchor x="740" y="1000" name="R"/>
+ <anchor x="630" y="1635" name="U"/>
+ <outline>
+ <contour>
+ <point x="465" y="1570" type="line"/>
+ <point x="465" y="1456"/>
+ <point x="434" y="1259"/>
+ <point x="396" y="1107" type="curve" smooth="yes"/>
+ <point x="241" y="489" type="line" smooth="yes"/>
+ <point x="204" y="343"/>
+ <point x="186" y="220"/>
+ <point x="186" y="104" type="curve" smooth="yes"/>
+ <point x="186" y="69"/>
+ <point x="188" y="34"/>
+ <point x="191" y="0" type="curve"/>
+ <point x="391" y="0" type="line"/>
+ <point x="386" y="32"/>
+ <point x="384" y="70"/>
+ <point x="384" y="112" type="curve" smooth="yes"/>
+ <point x="384" y="230"/>
+ <point x="402" y="380"/>
+ <point x="436" y="517" type="curve" smooth="yes"/>
+ <point x="580" y="1105" type="line" smooth="yes"/>
+ <point x="623" y="1280"/>
+ <point x="655" y="1482"/>
+ <point x="655" y="1570" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mM_.glif b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mM_.glif
new file mode 100644
index 0000000..a6b80db
--- /dev/null
+++ b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mM_.glif
@@ -0,0 +1,80 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmM" format="2">
+ <advance width="1680"/>
+ <unicode hex="006D"/>
+ <anchor x="805" y="0" name="H"/>
+ <anchor x="780" y="-100" name="L"/>
+ <anchor x="1080" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="1520" y="0" type="line"/>
+ <point x="1512" y="30"/>
+ <point x="1510" y="65"/>
+ <point x="1510" y="102" type="curve" smooth="yes"/>
+ <point x="1510" y="143"/>
+ <point x="1515" y="188"/>
+ <point x="1522" y="238" type="curve" smooth="yes"/>
+ <point x="1536" y="327"/>
+ <point x="1655" y="691"/>
+ <point x="1655" y="800" type="curve" smooth="yes"/>
+ <point x="1655" y="930"/>
+ <point x="1594" y="1020"/>
+ <point x="1445" y="1020" type="curve" smooth="yes"/>
+ <point x="1292" y="1020"/>
+ <point x="1124" y="867"/>
+ <point x="1026" y="680" type="curve"/>
+ <point x="1030" y="704"/>
+ <point x="1045" y="778"/>
+ <point x="1045" y="800" type="curve" smooth="yes"/>
+ <point x="1045" y="932"/>
+ <point x="982" y="1020"/>
+ <point x="860" y="1020" type="curve" smooth="yes"/>
+ <point x="717" y="1020"/>
+ <point x="563" y="879"/>
+ <point x="446" y="680" type="curve"/>
+ <point x="466" y="753"/>
+ <point x="476" y="880"/>
+ <point x="476" y="961" type="curve" smooth="yes"/>
+ <point x="476" y="976"/>
+ <point x="476" y="989"/>
+ <point x="475" y="1000" type="curve"/>
+ <point x="295" y="1000" type="line"/>
+ <point x="296" y="983"/>
+ <point x="296" y="964"/>
+ <point x="296" y="945" type="curve" smooth="yes"/>
+ <point x="296" y="825"/>
+ <point x="283" y="680"/>
+ <point x="262" y="595" type="curve" smooth="yes"/>
+ <point x="115" y="0" type="line"/>
+ <point x="300" y="0" type="line"/>
+ <point x="389" y="359" type="line"/>
+ <point x="475" y="573"/>
+ <point x="685" y="850"/>
+ <point x="775" y="850" type="curve" smooth="yes"/>
+ <point x="833" y="850"/>
+ <point x="865" y="813"/>
+ <point x="865" y="720" type="curve" smooth="yes"/>
+ <point x="865" y="679"/>
+ <point x="846" y="583"/>
+ <point x="822" y="486" type="curve" smooth="yes"/>
+ <point x="700" y="0" type="line"/>
+ <point x="885" y="0" type="line"/>
+ <point x="974" y="359" type="line"/>
+ <point x="1032" y="531"/>
+ <point x="1242" y="850"/>
+ <point x="1357" y="850" type="curve" smooth="yes"/>
+ <point x="1425" y="850"/>
+ <point x="1457" y="813"/>
+ <point x="1457" y="720" type="curve" smooth="yes"/>
+ <point x="1457" y="632"/>
+ <point x="1349" y="319"/>
+ <point x="1335" y="203" type="curve" smooth="yes"/>
+ <point x="1330" y="158"/>
+ <point x="1327" y="115"/>
+ <point x="1327" y="77" type="curve" smooth="yes"/>
+ <point x="1327" y="48"/>
+ <point x="1331" y="21"/>
+ <point x="1335" y="0" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mN_.glif b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mN_.glif
new file mode 100644
index 0000000..1f38f20
--- /dev/null
+++ b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mN_.glif
@@ -0,0 +1,57 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmN" format="2">
+ <advance width="1195"/>
+ <unicode hex="006E"/>
+ <anchor x="540" y="0" name="H"/>
+ <anchor x="565" y="-100" name="L"/>
+ <anchor x="815" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="1060" y="0" type="line"/>
+ <point x="1052" y="30"/>
+ <point x="1050" y="65"/>
+ <point x="1050" y="102" type="curve" smooth="yes"/>
+ <point x="1050" y="143"/>
+ <point x="1055" y="188"/>
+ <point x="1062" y="238" type="curve" smooth="yes"/>
+ <point x="1075" y="327"/>
+ <point x="1175" y="636"/>
+ <point x="1175" y="745" type="curve" smooth="yes"/>
+ <point x="1175" y="917"/>
+ <point x="1100" y="1020"/>
+ <point x="935" y="1020" type="curve" smooth="yes"/>
+ <point x="755" y="1020"/>
+ <point x="581" y="870"/>
+ <point x="445" y="672" type="curve"/>
+ <point x="463" y="740"/>
+ <point x="477" y="873"/>
+ <point x="477" y="957" type="curve" smooth="yes"/>
+ <point x="477" y="973"/>
+ <point x="476" y="988"/>
+ <point x="475" y="1000" type="curve"/>
+ <point x="295" y="1000" type="line"/>
+ <point x="295" y="961" type="line" smooth="yes"/>
+ <point x="295" y="833"/>
+ <point x="283" y="679"/>
+ <point x="262" y="595" type="curve" smooth="yes"/>
+ <point x="115" y="0" type="line"/>
+ <point x="300" y="0" type="line"/>
+ <point x="392" y="370" type="line"/>
+ <point x="478" y="573"/>
+ <point x="708" y="850"/>
+ <point x="835" y="850" type="curve" smooth="yes"/>
+ <point x="927" y="850"/>
+ <point x="975" y="798"/>
+ <point x="975" y="680" type="curve" smooth="yes"/>
+ <point x="975" y="592"/>
+ <point x="888" y="319"/>
+ <point x="875" y="203" type="curve" smooth="yes"/>
+ <point x="870" y="158"/>
+ <point x="867" y="115"/>
+ <point x="867" y="77" type="curve" smooth="yes"/>
+ <point x="867" y="48"/>
+ <point x="871" y="21"/>
+ <point x="875" y="0" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mO_.glif b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mO_.glif
new file mode 100644
index 0000000..bec7b9e
--- /dev/null
+++ b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mO_.glif
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmO" format="2">
+ <advance width="1133"/>
+ <unicode hex="006F"/>
+ <anchor x="510" y="0" name="H"/>
+ <anchor x="505" y="-100" name="L"/>
+ <anchor x="800" y="0" name="O"/>
+ <anchor x="1330" y="1000" name="R"/>
+ <anchor x="785" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="142" y="344" type="curve" smooth="yes"/>
+ <point x="142" y="114"/>
+ <point x="306" y="-25"/>
+ <point x="530" y="-25" type="curve" smooth="yes"/>
+ <point x="896" y="-25"/>
+ <point x="1138" y="314"/>
+ <point x="1138" y="648" type="curve" smooth="yes"/>
+ <point x="1138" y="879"/>
+ <point x="985" y="1020"/>
+ <point x="761" y="1020" type="curve" smooth="yes"/>
+ <point x="387" y="1020"/>
+ <point x="142" y="677"/>
+ </contour>
+ <contour>
+ <point x="721" y="862" type="curve" smooth="yes"/>
+ <point x="859" y="862"/>
+ <point x="947" y="767"/>
+ <point x="947" y="611" type="curve" smooth="yes"/>
+ <point x="947" y="391"/>
+ <point x="795" y="132"/>
+ <point x="559" y="132" type="curve" smooth="yes"/>
+ <point x="421" y="132"/>
+ <point x="333" y="226"/>
+ <point x="333" y="380" type="curve" smooth="yes"/>
+ <point x="333" y="599"/>
+ <point x="486" y="862"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mP_.glif b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mP_.glif
new file mode 100644
index 0000000..f9e06b1
--- /dev/null
+++ b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mP_.glif
@@ -0,0 +1,66 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmP" format="2">
+ <advance width="1185"/>
+ <unicode hex="0070"/>
+ <anchor x="105" y="-435" name="H"/>
+ <anchor x="405" y="-500" name="L"/>
+ <anchor x="1360" y="1000" name="R"/>
+ <anchor x="805" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="215" y="-480" type="line"/>
+ <point x="215" y="-388"/>
+ <point x="229" y="-282"/>
+ <point x="255" y="-175" type="curve" smooth="yes"/>
+ <point x="320" y="85" type="line"/>
+ <point x="399" y="20"/>
+ <point x="468" y="-25"/>
+ <point x="575" y="-25" type="curve" smooth="yes"/>
+ <point x="685" y="-25"/>
+ <point x="797" y="9"/>
+ <point x="895" y="85" type="curve" smooth="yes"/>
+ <point x="1063" y="215"/>
+ <point x="1185" y="438"/>
+ <point x="1185" y="680" type="curve" smooth="yes"/>
+ <point x="1185" y="878"/>
+ <point x="1101" y="1020"/>
+ <point x="920" y="1020" type="curve" smooth="yes"/>
+ <point x="757" y="1020"/>
+ <point x="559" y="842"/>
+ <point x="452" y="680" type="curve"/>
+ <point x="468" y="760"/>
+ <point x="477" y="860"/>
+ <point x="477" y="940" type="curve" smooth="yes"/>
+ <point x="477" y="962"/>
+ <point x="477" y="982"/>
+ <point x="475" y="1000" type="curve"/>
+ <point x="295" y="1000" type="line"/>
+ <point x="295" y="971" type="line" smooth="yes"/>
+ <point x="295" y="819"/>
+ <point x="273" y="625"/>
+ <point x="235" y="475" type="curve" smooth="yes"/>
+ <point x="70" y="-175" type="line" smooth="yes"/>
+ <point x="43" y="-281"/>
+ <point x="20" y="-398"/>
+ <point x="20" y="-480" type="curve"/>
+ </contour>
+ <contour>
+ <point x="407" y="432" type="line"/>
+ <point x="544" y="656"/>
+ <point x="732" y="850"/>
+ <point x="840" y="850" type="curve" smooth="yes"/>
+ <point x="939" y="850"/>
+ <point x="990" y="763"/>
+ <point x="990" y="630" type="curve" smooth="yes"/>
+ <point x="990" y="491"/>
+ <point x="926" y="322"/>
+ <point x="815" y="220" type="curve" smooth="yes"/>
+ <point x="759" y="168"/>
+ <point x="693" y="135"/>
+ <point x="615" y="135" type="curve" smooth="yes"/>
+ <point x="523" y="135"/>
+ <point x="479" y="161"/>
+ <point x="365" y="255" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mQ_.glif b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mQ_.glif
new file mode 100644
index 0000000..58d9f87
--- /dev/null
+++ b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mQ_.glif
@@ -0,0 +1,54 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmQ" format="2">
+ <advance width="1115"/>
+ <unicode hex="0071"/>
+ <anchor x="370" y="-500" name="L"/>
+ <anchor x="1320" y="1000" name="R"/>
+ <anchor x="770" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="843" y="-480" type="line"/>
+ <point x="843" y="-391"/>
+ <point x="858" y="-294"/>
+ <point x="885" y="-185" type="curve" smooth="yes"/>
+ <point x="1165" y="945" type="line"/>
+ <point x="1066" y="980"/>
+ <point x="946" y="1020"/>
+ <point x="825" y="1020" type="curve" smooth="yes"/>
+ <point x="675" y="1020"/>
+ <point x="550" y="977"/>
+ <point x="440" y="890" type="curve" smooth="yes"/>
+ <point x="260" y="747"/>
+ <point x="135" y="505"/>
+ <point x="135" y="285" type="curve" smooth="yes"/>
+ <point x="135" y="73"/>
+ <point x="261" y="-25"/>
+ <point x="380" y="-25" type="curve" smooth="yes"/>
+ <point x="524" y="-25"/>
+ <point x="751" y="172"/>
+ <point x="825" y="300" type="curve"/>
+ <point x="693" y="-180" type="line" smooth="yes"/>
+ <point x="662" y="-294"/>
+ <point x="648" y="-414"/>
+ <point x="648" y="-480" type="curve"/>
+ </contour>
+ <contour>
+ <point x="885" y="565" type="line"/>
+ <point x="807" y="413"/>
+ <point x="550" y="140"/>
+ <point x="455" y="140" type="curve" smooth="yes"/>
+ <point x="376" y="140"/>
+ <point x="330" y="199"/>
+ <point x="330" y="330" type="curve" smooth="yes"/>
+ <point x="330" y="481"/>
+ <point x="400" y="658"/>
+ <point x="515" y="760" type="curve" smooth="yes"/>
+ <point x="580" y="817"/>
+ <point x="658" y="855"/>
+ <point x="750" y="855" type="curve" smooth="yes"/>
+ <point x="811" y="855"/>
+ <point x="893" y="840"/>
+ <point x="947" y="817" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mR_.glif b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mR_.glif
new file mode 100644
index 0000000..8037612
--- /dev/null
+++ b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mR_.glif
@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmR" format="2">
+ <advance width="910"/>
+ <unicode hex="0072"/>
+ <anchor x="210" y="0" name="H"/>
+ <anchor x="220" y="-100" name="L"/>
+ <anchor x="670" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="300" y="0" type="line"/>
+ <point x="402" y="415" type="line"/>
+ <point x="502" y="602"/>
+ <point x="703" y="850"/>
+ <point x="785" y="850" type="curve" smooth="yes"/>
+ <point x="831" y="850"/>
+ <point x="855" y="801"/>
+ <point x="855" y="740" type="curve" smooth="yes"/>
+ <point x="855" y="715"/>
+ <point x="852" y="689"/>
+ <point x="845" y="660" type="curve"/>
+ <point x="1010" y="690" type="line"/>
+ <point x="1022" y="737"/>
+ <point x="1030" y="783"/>
+ <point x="1030" y="825" type="curve" smooth="yes"/>
+ <point x="1030" y="935"/>
+ <point x="986" y="1020"/>
+ <point x="865" y="1020" type="curve" smooth="yes"/>
+ <point x="735" y="1020"/>
+ <point x="575" y="867"/>
+ <point x="445" y="675" type="curve"/>
+ <point x="467" y="773"/>
+ <point x="475" y="929"/>
+ <point x="475" y="1000" type="curve"/>
+ <point x="295" y="1000" type="line"/>
+ <point x="295" y="961" type="line" smooth="yes"/>
+ <point x="295" y="833"/>
+ <point x="283" y="679"/>
+ <point x="262" y="595" type="curve" smooth="yes"/>
+ <point x="115" y="0" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mS_.glif b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mS_.glif
new file mode 100644
index 0000000..848ddda
--- /dev/null
+++ b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mS_.glif
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmS" format="2">
+ <advance width="945"/>
+ <unicode hex="0073"/>
+ <anchor x="435" y="0" name="H"/>
+ <anchor x="440" y="-100" name="L"/>
+ <anchor x="710" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="990" y="941" type="line"/>
+ <point x="930" y="978"/>
+ <point x="815" y="1020"/>
+ <point x="640" y="1020" type="curve" smooth="yes"/>
+ <point x="384" y="1020"/>
+ <point x="230" y="881"/>
+ <point x="230" y="716" type="curve" smooth="yes"/>
+ <point x="230" y="614"/>
+ <point x="320" y="533"/>
+ <point x="466" y="461" type="curve" smooth="yes"/>
+ <point x="638" y="376"/>
+ <point x="700" y="333"/>
+ <point x="700" y="265" type="curve" smooth="yes"/>
+ <point x="700" y="188"/>
+ <point x="621" y="132"/>
+ <point x="532" y="132" type="curve" smooth="yes"/>
+ <point x="376" y="132"/>
+ <point x="244" y="216"/>
+ <point x="159" y="325" type="curve"/>
+ <point x="71" y="158" type="line"/>
+ <point x="160" y="60"/>
+ <point x="296" y="-25"/>
+ <point x="488" y="-25" type="curve" smooth="yes"/>
+ <point x="713" y="-25"/>
+ <point x="891" y="106"/>
+ <point x="891" y="306" type="curve" smooth="yes"/>
+ <point x="891" y="432"/>
+ <point x="774" y="515"/>
+ <point x="626" y="593" type="curve" smooth="yes"/>
+ <point x="476" y="672"/>
+ <point x="418" y="695"/>
+ <point x="418" y="753" type="curve" smooth="yes"/>
+ <point x="418" y="822"/>
+ <point x="494" y="862"/>
+ <point x="619" y="862" type="curve" smooth="yes"/>
+ <point x="743" y="862"/>
+ <point x="854" y="808"/>
+ <point x="911" y="769" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mT_.glif b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mT_.glif
new file mode 100644
index 0000000..0eddfe9
--- /dev/null
+++ b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mT_.glif
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmT" format="2">
+ <advance width="815"/>
+ <unicode hex="0074"/>
+ <anchor x="455" y="0" name="H"/>
+ <anchor x="390" y="-100" name="L"/>
+ <anchor x="1025" y="1000" name="R"/>
+ <anchor x="605" y="1360" name="U"/>
+ <outline>
+ <contour>
+ <point x="752" y="211" type="line"/>
+ <point x="665" y="169"/>
+ <point x="593" y="134"/>
+ <point x="527" y="134" type="curve" smooth="yes"/>
+ <point x="448" y="134"/>
+ <point x="425" y="188"/>
+ <point x="425" y="247" type="curve" smooth="yes"/>
+ <point x="425" y="274"/>
+ <point x="429" y="301"/>
+ <point x="434" y="326" type="curve" smooth="yes"/>
+ <point x="470" y="519"/>
+ <point x="564" y="843"/>
+ <point x="677" y="1294" type="curve"/>
+ <point x="492" y="1294" type="line"/>
+ <point x="377" y="841"/>
+ <point x="263" y="429"/>
+ <point x="243" y="301" type="curve" smooth="yes"/>
+ <point x="238" y="269"/>
+ <point x="236" y="240"/>
+ <point x="236" y="213" type="curve" smooth="yes"/>
+ <point x="236" y="41"/>
+ <point x="330" y="-25"/>
+ <point x="465" y="-25" type="curve" smooth="yes"/>
+ <point x="535" y="-25"/>
+ <point x="634" y="-6"/>
+ <point x="740" y="52" type="curve"/>
+ </contour>
+ <contour>
+ <point x="177" y="833" type="line"/>
+ <point x="887" y="833" type="line"/>
+ <point x="923" y="975" type="line"/>
+ <point x="213" y="975" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mU_.glif b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mU_.glif
new file mode 100644
index 0000000..0eda3d2
--- /dev/null
+++ b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mU_.glif
@@ -0,0 +1,57 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmU" format="2">
+ <advance width="1175"/>
+ <unicode hex="0075"/>
+ <anchor x="465" y="0" name="H"/>
+ <anchor x="504" y="-100" name="L"/>
+ <anchor x="640" y="0" name="O"/>
+ <anchor x="1375" y="1000" name="R"/>
+ <anchor x="804" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="1040" y="0" type="line"/>
+ <point x="1036" y="29"/>
+ <point x="1035" y="62"/>
+ <point x="1035" y="100" type="curve" smooth="yes"/>
+ <point x="1035" y="206"/>
+ <point x="1054" y="341"/>
+ <point x="1080" y="455" type="curve" smooth="yes"/>
+ <point x="1135" y="689"/>
+ <point x="1197" y="895"/>
+ <point x="1205" y="1000" type="curve"/>
+ <point x="1010" y="1000" type="line"/>
+ <point x="1003" y="882"/>
+ <point x="971" y="769"/>
+ <point x="920" y="565" type="curve"/>
+ <point x="827" y="376"/>
+ <point x="573" y="135"/>
+ <point x="475" y="135" type="curve" smooth="yes"/>
+ <point x="409" y="135"/>
+ <point x="365" y="181"/>
+ <point x="365" y="280" type="curve" smooth="yes"/>
+ <point x="365" y="347"/>
+ <point x="407" y="500"/>
+ <point x="459" y="702" type="curve" smooth="yes"/>
+ <point x="494" y="837"/>
+ <point x="515" y="925"/>
+ <point x="520" y="1000" type="curve"/>
+ <point x="325" y="1000" type="line"/>
+ <point x="313" y="882"/>
+ <point x="295" y="809"/>
+ <point x="265" y="685" type="curve" smooth="yes"/>
+ <point x="195" y="395" type="line" smooth="yes"/>
+ <point x="179" y="330"/>
+ <point x="170" y="275"/>
+ <point x="170" y="225" type="curve" smooth="yes"/>
+ <point x="170" y="60"/>
+ <point x="257" y="-25"/>
+ <point x="410" y="-25" type="curve" smooth="yes"/>
+ <point x="551" y="-25"/>
+ <point x="745" y="118"/>
+ <point x="880" y="305" type="curve"/>
+ <point x="861" y="196"/>
+ <point x="860" y="98"/>
+ <point x="860" y="0" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mV_.glif b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mV_.glif
new file mode 100644
index 0000000..33e91d6
--- /dev/null
+++ b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mV_.glif
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmV" format="2">
+ <advance width="941"/>
+ <unicode hex="0076"/>
+ <anchor x="359" y="0" name="H"/>
+ <anchor x="350" y="-100" name="L"/>
+ <anchor x="565" y="0" name="O"/>
+ <anchor x="650" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="180" y="1000" type="line"/>
+ <point x="232" y="825"/>
+ <point x="256" y="602"/>
+ <point x="256" y="354" type="curve" smooth="yes"/>
+ <point x="256" y="241"/>
+ <point x="251" y="122"/>
+ <point x="241" y="0" type="curve"/>
+ <point x="441" y="0" type="line"/>
+ <point x="744" y="336"/>
+ <point x="1056" y="765"/>
+ <point x="1056" y="1000" type="curve"/>
+ <point x="856" y="1000" type="line"/>
+ <point x="856" y="769"/>
+ <point x="606" y="394"/>
+ <point x="404" y="176" type="curve"/>
+ <point x="421" y="277"/>
+ <point x="429" y="402"/>
+ <point x="429" y="526" type="curve" smooth="yes"/>
+ <point x="429" y="707"/>
+ <point x="412" y="887"/>
+ <point x="380" y="1000" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mW_.glif b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mW_.glif
new file mode 100644
index 0000000..1daea7c
--- /dev/null
+++ b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mW_.glif
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmW" format="2">
+ <advance width="1555"/>
+ <unicode hex="0077"/>
+ <anchor x="690" y="-100" name="L"/>
+ <anchor x="990" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="858" y="1000" type="line"/>
+ <point x="743" y="739"/>
+ <point x="588" y="466"/>
+ <point x="388" y="181" type="curve"/>
+ <point x="417" y="339"/>
+ <point x="430" y="500"/>
+ <point x="430" y="644" type="curve" smooth="yes"/>
+ <point x="430" y="784"/>
+ <point x="418" y="908"/>
+ <point x="395" y="1000" type="curve"/>
+ <point x="195" y="1000" type="line"/>
+ <point x="234" y="873"/>
+ <point x="256" y="688"/>
+ <point x="256" y="472" type="curve" smooth="yes"/>
+ <point x="256" y="326"/>
+ <point x="246" y="166"/>
+ <point x="225" y="0" type="curve"/>
+ <point x="425" y="0" type="line"/>
+ <point x="632" y="298"/>
+ <point x="825" y="583"/>
+ <point x="896" y="765" type="curve"/>
+ <point x="920" y="478"/>
+ <point x="912" y="233"/>
+ <point x="915" y="0" type="curve"/>
+ <point x="1115" y="0" type="line"/>
+ <point x="1362" y="330"/>
+ <point x="1642" y="777"/>
+ <point x="1645" y="1000" type="curve"/>
+ <point x="1445" y="1000" type="line"/>
+ <point x="1445" y="990" type="line"/>
+ <point x="1445" y="797"/>
+ <point x="1242" y="417"/>
+ <point x="1063" y="181" type="curve"/>
+ <point x="1064" y="221"/>
+ <point x="1064" y="260"/>
+ <point x="1064" y="298" type="curve" smooth="yes"/>
+ <point x="1064" y="577"/>
+ <point x="1046" y="811"/>
+ <point x="1020" y="1000" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mX_.glif b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mX_.glif
new file mode 100644
index 0000000..5508ff9
--- /dev/null
+++ b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mX_.glif
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmX" format="2">
+ <advance width="1009"/>
+ <unicode hex="0078"/>
+ <anchor x="840" y="0" name="H"/>
+ <anchor x="457" y="-100" name="L"/>
+ <anchor x="657" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="945" y="0" type="line"/>
+ <point x="765" y="133"/>
+ <point x="558" y="867"/>
+ <point x="439" y="1000" type="curve"/>
+ <point x="181" y="1000" type="line"/>
+ <point x="410" y="832"/>
+ <point x="578" y="141"/>
+ <point x="698" y="0" type="curve"/>
+ </contour>
+ <contour>
+ <point x="504" y="572" type="line"/>
+ <point x="286" y="463"/>
+ <point x="57" y="230"/>
+ <point x="30" y="0" type="curve"/>
+ <point x="230" y="0" type="line"/>
+ <point x="231" y="156"/>
+ <point x="375" y="380"/>
+ <point x="563" y="467" type="curve"/>
+ </contour>
+ <contour>
+ <point x="659" y="471" type="line"/>
+ <point x="838" y="591"/>
+ <point x="1092" y="798"/>
+ <point x="1099" y="1000" type="curve"/>
+ <point x="889" y="1000" type="line"/>
+ <point x="883" y="842"/>
+ <point x="758" y="675"/>
+ <point x="601" y="581" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mY_.glif b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mY_.glif
new file mode 100644
index 0000000..b9000c5
--- /dev/null
+++ b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/L_tnS_mY_.glif
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmY" format="2">
+ <advance width="976"/>
+ <unicode hex="0079"/>
+ <anchor x="710" y="-100" name="L"/>
+ <anchor x="1270" y="1000" name="R"/>
+ <anchor x="630" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="132" y="1000" type="line"/>
+ <point x="270" y="825"/>
+ <point x="398" y="406"/>
+ <point x="403" y="-16" type="curve"/>
+ <point x="263" y="-232"/>
+ <point x="145" y="-295"/>
+ <point x="64" y="-295" type="curve" smooth="yes"/>
+ <point x="-2" y="-295"/>
+ <point x="-69" y="-254"/>
+ <point x="-102" y="-220" type="curve"/>
+ <point x="-200" y="-377" type="line"/>
+ <point x="-141" y="-430"/>
+ <point x="-68" y="-465"/>
+ <point x="23" y="-465" type="curve" smooth="yes"/>
+ <point x="193" y="-465"/>
+ <point x="369" y="-371"/>
+ <point x="609" y="0" type="curve" smooth="yes"/>
+ <point x="877" y="414"/>
+ <point x="1056" y="808"/>
+ <point x="1056" y="964" type="curve" smooth="yes"/>
+ <point x="1056" y="978"/>
+ <point x="1055" y="990"/>
+ <point x="1052" y="1000" type="curve"/>
+ <point x="852" y="1000" type="line"/>
+ <point x="856" y="984"/>
+ <point x="858" y="967"/>
+ <point x="858" y="946" type="curve" smooth="yes"/>
+ <point x="858" y="783"/>
+ <point x="722" y="472"/>
+ <point x="548" y="189" type="curve"/>
+ <point x="548" y="484"/>
+ <point x="447" y="866"/>
+ <point x="347" y="1000" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/N_onB_reakingH_yphen.glif b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/N_onB_reakingH_yphen.glif
new file mode 100644
index 0000000..e7d9c06
--- /dev/null
+++ b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/N_onB_reakingH_yphen.glif
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="NonBreakingHyphen" format="2">
+ <advance width="840"/>
+ <unicode hex="2011"/>
+ <anchor x="645" y="1100" name="U"/>
+ <outline>
+ <component base="HyphenMinus"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/N_umS_gn.glif b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/N_umS_gn.glif
new file mode 100644
index 0000000..b7506f7
--- /dev/null
+++ b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/N_umS_gn.glif
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="NumSgn" format="2">
+ <advance width="1180"/>
+ <unicode hex="0023"/>
+ <outline>
+ <contour>
+ <point x="739" y="1333" type="line"/>
+ <point x="91" y="98" type="line"/>
+ <point x="261" y="98" type="line"/>
+ <point x="909" y="1333" type="line"/>
+ </contour>
+ <contour>
+ <point x="80" y="465" type="line"/>
+ <point x="1171" y="465" type="line"/>
+ <point x="1208" y="612" type="line"/>
+ <point x="117" y="612" type="line"/>
+ </contour>
+ <contour>
+ <point x="234" y="843" type="line"/>
+ <point x="1325" y="843" type="line"/>
+ <point x="1361" y="990" type="line"/>
+ <point x="270" y="990" type="line"/>
+ </contour>
+ <contour>
+ <point x="1164" y="1333" type="line"/>
+ <point x="516" y="98" type="line"/>
+ <point x="686" y="98" type="line"/>
+ <point x="1334" y="1333" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/P_ercentS_gn.glif b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/P_ercentS_gn.glif
new file mode 100644
index 0000000..84241ea
--- /dev/null
+++ b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/P_ercentS_gn.glif
@@ -0,0 +1,93 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="PercentSgn" format="2">
+ <advance width="1506"/>
+ <unicode hex="0025"/>
+ <outline>
+ <contour>
+ <point x="1300" y="349" type="curve" smooth="yes"/>
+ <point x="1255" y="168"/>
+ <point x="1204" y="113"/>
+ <point x="1118" y="113" type="curve" smooth="yes"/>
+ <point x="1056" y="113"/>
+ <point x="1021" y="148"/>
+ <point x="1021" y="235" type="curve" smooth="yes"/>
+ <point x="1021" y="274"/>
+ <point x="1028" y="322"/>
+ <point x="1043" y="383" type="curve" smooth="yes"/>
+ <point x="1088" y="564"/>
+ <point x="1136" y="617"/>
+ <point x="1223" y="617" type="curve" smooth="yes"/>
+ <point x="1286" y="617"/>
+ <point x="1322" y="582"/>
+ <point x="1322" y="496" type="curve" smooth="yes"/>
+ <point x="1322" y="458"/>
+ <point x="1315" y="409"/>
+ </contour>
+ <contour>
+ <point x="1468" y="361" type="curve" smooth="yes"/>
+ <point x="1483" y="419"/>
+ <point x="1489" y="470"/>
+ <point x="1489" y="515" type="curve" smooth="yes"/>
+ <point x="1489" y="677"/>
+ <point x="1400" y="755"/>
+ <point x="1263" y="755" type="curve" smooth="yes"/>
+ <point x="1089" y="755"/>
+ <point x="945" y="647"/>
+ <point x="876" y="371" type="curve" smooth="yes"/>
+ <point x="861" y="310"/>
+ <point x="854" y="256"/>
+ <point x="854" y="210" type="curve" smooth="yes"/>
+ <point x="854" y="47"/>
+ <point x="943" y="-25"/>
+ <point x="1079" y="-25" type="curve" smooth="yes"/>
+ <point x="1254" y="-25"/>
+ <point x="1396" y="72"/>
+ </contour>
+ <contour>
+ <point x="1369" y="1450" type="line"/>
+ <point x="219" y="-25" type="line"/>
+ <point x="397" y="-25" type="line"/>
+ <point x="1545" y="1450" type="line"/>
+ </contour>
+ <contour>
+ <point x="717" y="1044" type="curve" smooth="yes"/>
+ <point x="672" y="864"/>
+ <point x="621" y="809"/>
+ <point x="535" y="809" type="curve" smooth="yes"/>
+ <point x="474" y="809"/>
+ <point x="439" y="844"/>
+ <point x="439" y="930" type="curve" smooth="yes"/>
+ <point x="439" y="969"/>
+ <point x="446" y="1018"/>
+ <point x="461" y="1079" type="curve" smooth="yes"/>
+ <point x="506" y="1260"/>
+ <point x="554" y="1313"/>
+ <point x="641" y="1313" type="curve" smooth="yes"/>
+ <point x="704" y="1313"/>
+ <point x="739" y="1278"/>
+ <point x="739" y="1192" type="curve" smooth="yes"/>
+ <point x="739" y="1153"/>
+ <point x="732" y="1105"/>
+ </contour>
+ <contour>
+ <point x="886" y="1057" type="curve" smooth="yes"/>
+ <point x="900" y="1114"/>
+ <point x="907" y="1166"/>
+ <point x="907" y="1210" type="curve" smooth="yes"/>
+ <point x="907" y="1373"/>
+ <point x="817" y="1450"/>
+ <point x="680" y="1450" type="curve" smooth="yes"/>
+ <point x="506" y="1450"/>
+ <point x="362" y="1343"/>
+ <point x="293" y="1066" type="curve" smooth="yes"/>
+ <point x="278" y="1005"/>
+ <point x="271" y="952"/>
+ <point x="271" y="906" type="curve" smooth="yes"/>
+ <point x="271" y="743"/>
+ <point x="360" y="671"/>
+ <point x="497" y="671" type="curve" smooth="yes"/>
+ <point x="672" y="671"/>
+ <point x="813" y="768"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/P_lusS_gn.glif b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/P_lusS_gn.glif
new file mode 100644
index 0000000..8c4577e
--- /dev/null
+++ b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/P_lusS_gn.glif
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="PlusSgn" format="2">
+ <advance width="1180"/>
+ <unicode hex="002B"/>
+ <outline>
+ <contour>
+ <point x="748" y="1156" type="line"/>
+ <point x="529" y="279" type="line"/>
+ <point x="684" y="279" type="line"/>
+ <point x="903" y="1156" type="line"/>
+ </contour>
+ <contour>
+ <point x="256" y="647" type="line"/>
+ <point x="1146" y="647" type="line"/>
+ <point x="1182" y="794" type="line"/>
+ <point x="292" y="794" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/Q_stnM_rk.glif b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/Q_stnM_rk.glif
new file mode 100644
index 0000000..8b14a6c
--- /dev/null
+++ b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/Q_stnM_rk.glif
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="QstnMrk" format="2">
+ <advance width="1030"/>
+ <unicode hex="003F"/>
+ <outline>
+ <contour>
+ <point x="419" y="1226" type="line"/>
+ <point x="514" y="1303"/>
+ <point x="615" y="1338"/>
+ <point x="685" y="1338" type="curve" smooth="yes"/>
+ <point x="800" y="1338"/>
+ <point x="858" y="1294"/>
+ <point x="858" y="1222" type="curve" smooth="yes"/>
+ <point x="858" y="1122"/>
+ <point x="713" y="1017"/>
+ <point x="654" y="960" type="curve" smooth="yes"/>
+ <point x="538" y="850"/>
+ <point x="473" y="715"/>
+ <point x="402" y="431" type="curve"/>
+ <point x="587" y="431" type="line"/>
+ <point x="656" y="707"/>
+ <point x="697" y="778"/>
+ <point x="831" y="901" type="curve" smooth="yes"/>
+ <point x="949" y="1010"/>
+ <point x="1072" y="1146"/>
+ <point x="1072" y="1272" type="curve" smooth="yes"/>
+ <point x="1072" y="1409"/>
+ <point x="947" y="1509"/>
+ <point x="746" y="1509" type="curve" smooth="yes"/>
+ <point x="631" y="1509"/>
+ <point x="500" y="1463"/>
+ <point x="419" y="1401" type="curve"/>
+ </contour>
+ <contour>
+ <point x="278" y="90" type="curve" smooth="yes"/>
+ <point x="278" y="28"/>
+ <point x="328" y="-25"/>
+ <point x="393" y="-25" type="curve" smooth="yes"/>
+ <point x="477" y="-25"/>
+ <point x="554" y="45"/>
+ <point x="554" y="125" type="curve" smooth="yes"/>
+ <point x="554" y="186"/>
+ <point x="504" y="240"/>
+ <point x="439" y="240" type="curve" smooth="yes"/>
+ <point x="355" y="240"/>
+ <point x="278" y="170"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/Q_uotM_rk.glif b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/Q_uotM_rk.glif
new file mode 100644
index 0000000..4a8357b
--- /dev/null
+++ b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/Q_uotM_rk.glif
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="QuotMrk" format="2">
+ <advance width="1005"/>
+ <unicode hex="0022"/>
+ <outline>
+ <contour>
+ <point x="600" y="1024" type="line"/>
+ <point x="639" y="1162"/>
+ <point x="683" y="1312"/>
+ <point x="772" y="1553" type="curve"/>
+ <point x="567" y="1553" type="line"/>
+ <point x="538" y="1312"/>
+ <point x="505" y="1162"/>
+ <point x="475" y="1024" type="curve"/>
+ </contour>
+ <contour>
+ <point x="940" y="1024" type="line"/>
+ <point x="979" y="1162"/>
+ <point x="1023" y="1312"/>
+ <point x="1112" y="1553" type="curve"/>
+ <point x="907" y="1553" type="line"/>
+ <point x="878" y="1312"/>
+ <point x="845" y="1162"/>
+ <point x="815" y="1024" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/R_everseS_olidus.glif b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/R_everseS_olidus.glif
new file mode 100644
index 0000000..f146267
--- /dev/null
+++ b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/R_everseS_olidus.glif
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="ReverseSolidus" format="2">
+ <advance width="1005"/>
+ <unicode hex="005C"/>
+ <outline>
+ <contour>
+ <point x="473" y="1538" type="line"/>
+ <point x="656" y="-123" type="line"/>
+ <point x="799" y="-93" type="line"/>
+ <point x="620" y="1568" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/R_tC_urlyB_rac.glif b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/R_tC_urlyB_rac.glif
new file mode 100644
index 0000000..82df531
--- /dev/null
+++ b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/R_tC_urlyB_rac.glif
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="RtCurlyBrac" format="2">
+ <advance width="980"/>
+ <unicode hex="007D"/>
+ <outline>
+ <contour>
+ <point x="466" y="1470" type="line"/>
+ <point x="513" y="1452"/>
+ <point x="653" y="1397"/>
+ <point x="653" y="1366" type="curve" smooth="yes"/>
+ <point x="653" y="1238"/>
+ <point x="531" y="801"/>
+ <point x="531" y="737" type="curve" smooth="yes"/>
+ <point x="531" y="701"/>
+ <point x="660" y="627"/>
+ <point x="660" y="603" type="curve" smooth="yes"/>
+ <point x="660" y="585"/>
+ <point x="496" y="511"/>
+ <point x="468" y="475" type="curve" smooth="yes"/>
+ <point x="439" y="438"/>
+ <point x="312" y="-121"/>
+ <point x="268" y="-167" type="curve" smooth="yes"/>
+ <point x="241" y="-194"/>
+ <point x="106" y="-242"/>
+ <point x="33" y="-265" type="curve"/>
+ <point x="39" y="-402" type="line"/>
+ <point x="150" y="-375"/>
+ <point x="324" y="-323"/>
+ <point x="375" y="-279" type="curve" smooth="yes"/>
+ <point x="465" y="-201"/>
+ <point x="608" y="410"/>
+ <point x="639" y="441" type="curve" smooth="yes"/>
+ <point x="675" y="476"/>
+ <point x="880" y="571"/>
+ <point x="880" y="607" type="curve" smooth="yes"/>
+ <point x="880" y="639"/>
+ <point x="719" y="740"/>
+ <point x="719" y="771" type="curve" smooth="yes"/>
+ <point x="719" y="839"/>
+ <point x="825" y="1259"/>
+ <point x="825" y="1425" type="curve" smooth="yes"/>
+ <point x="825" y="1453"/>
+ <point x="822" y="1474"/>
+ <point x="815" y="1485" type="curve" smooth="yes"/>
+ <point x="786" y="1529"/>
+ <point x="638" y="1581"/>
+ <point x="540" y="1607" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/R_tP_aren.glif b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/R_tP_aren.glif
new file mode 100644
index 0000000..3950e09
--- /dev/null
+++ b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/R_tP_aren.glif
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="RtParen" format="2">
+ <advance width="775"/>
+ <unicode hex="0029"/>
+ <outline>
+ <contour>
+ <point x="467" y="1455" type="line"/>
+ <point x="578" y="1327"/>
+ <point x="628" y="1146"/>
+ <point x="628" y="946" type="curve" smooth="yes"/>
+ <point x="628" y="832"/>
+ <point x="612" y="713"/>
+ <point x="582" y="593" type="curve" smooth="yes"/>
+ <point x="497" y="252"/>
+ <point x="328" y="-8"/>
+ <point x="40" y="-260" type="curve"/>
+ <point x="99" y="-402" type="line"/>
+ <point x="444" y="-123"/>
+ <point x="673" y="194"/>
+ <point x="772" y="593" type="curve" smooth="yes"/>
+ <point x="804" y="719"/>
+ <point x="819" y="843"/>
+ <point x="819" y="959" type="curve" smooth="yes"/>
+ <point x="819" y="1236"/>
+ <point x="733" y="1472"/>
+ <point x="580" y="1607" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/R_tS_qrB_rac.glif b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/R_tS_qrB_rac.glif
new file mode 100644
index 0000000..4c13a82
--- /dev/null
+++ b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/R_tS_qrB_rac.glif
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="RtSqrBrac" format="2">
+ <advance width="770"/>
+ <unicode hex="005D"/>
+ <outline>
+ <contour>
+ <point x="434" y="-402" type="line"/>
+ <point x="920" y="1568" type="line"/>
+ <point x="480" y="1568" type="line"/>
+ <point x="444" y="1421" type="line"/>
+ <point x="699" y="1421" type="line"/>
+ <point x="286" y="-255" type="line"/>
+ <point x="31" y="-255" type="line"/>
+ <point x="-6" y="-402" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/S_emicolon.glif b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/S_emicolon.glif
new file mode 100644
index 0000000..be971ac
--- /dev/null
+++ b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/S_emicolon.glif
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Semicolon" format="2">
+ <advance width="630"/>
+ <unicode hex="003B"/>
+ <outline>
+ <contour>
+ <point x="314" y="758" type="curve" smooth="yes"/>
+ <point x="314" y="696"/>
+ <point x="365" y="642"/>
+ <point x="430" y="642" type="curve" smooth="yes"/>
+ <point x="514" y="642"/>
+ <point x="590" y="712"/>
+ <point x="590" y="792" type="curve" smooth="yes"/>
+ <point x="590" y="854"/>
+ <point x="540" y="907"/>
+ <point x="476" y="907" type="curve" smooth="yes"/>
+ <point x="393" y="907"/>
+ <point x="314" y="837"/>
+ </contour>
+ <contour>
+ <point x="137" y="49" type="line"/>
+ <point x="277" y="49" type="line"/>
+ <point x="252" y="-50"/>
+ <point x="145" y="-169"/>
+ <point x="73" y="-225" type="curve"/>
+ <point x="163" y="-265" type="line"/>
+ <point x="280" y="-175"/>
+ <point x="431" y="-28"/>
+ <point x="431" y="118" type="curve" smooth="yes"/>
+ <point x="431" y="193"/>
+ <point x="378" y="245"/>
+ <point x="311" y="245" type="curve" smooth="yes"/>
+ <point x="254" y="245"/>
+ <point x="190" y="209"/>
+ <point x="161" y="147" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/S_olidus.glif b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/S_olidus.glif
new file mode 100644
index 0000000..589697b
--- /dev/null
+++ b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/S_olidus.glif
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Solidus" format="2">
+ <advance width="980"/>
+ <unicode hex="002F"/>
+ <outline>
+ <contour>
+ <point x="1160" y="1568" type="line"/>
+ <point x="-119" y="-240" type="line"/>
+ <point x="50" y="-240" type="line"/>
+ <point x="1330" y="1568" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/S_pace.glif b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/S_pace.glif
new file mode 100644
index 0000000..c49f0f2
--- /dev/null
+++ b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/S_pace.glif
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Space" format="2">
+ <advance width="530"/>
+ <unicode hex="0020"/>
+ <outline/>
+</glyph>
diff --git a/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/T_ilde.glif b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/T_ilde.glif
new file mode 100644
index 0000000..bf260b8
--- /dev/null
+++ b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/T_ilde.glif
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Tilde" format="2">
+ <advance width="1095"/>
+ <unicode hex="007E"/>
+ <outline>
+ <contour>
+ <point x="156" y="368" type="line"/>
+ <point x="173" y="416"/>
+ <point x="215" y="456"/>
+ <point x="293" y="456" type="curve" smooth="yes"/>
+ <point x="468" y="456"/>
+ <point x="643" y="353"/>
+ <point x="873" y="353" type="curve" smooth="yes"/>
+ <point x="1032" y="353"/>
+ <point x="1137" y="472"/>
+ <point x="1169" y="598" type="curve"/>
+ <point x="1064" y="598" type="line"/>
+ <point x="1045" y="553"/>
+ <point x="1002" y="500"/>
+ <point x="919" y="500" type="curve" smooth="yes"/>
+ <point x="683" y="500"/>
+ <point x="551" y="603"/>
+ <point x="330" y="603" type="curve" smooth="yes"/>
+ <point x="184" y="603"/>
+ <point x="81" y="487"/>
+ <point x="51" y="368" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/V_ertL_ine.glif b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/V_ertL_ine.glif
new file mode 100644
index 0000000..445d622
--- /dev/null
+++ b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/V_ertL_ine.glif
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="VertLine" format="2">
+ <advance width="670"/>
+ <unicode hex="007C"/>
+ <outline>
+ <contour>
+ <point x="602" y="1578" type="line"/>
+ <point x="112" y="-392" type="line"/>
+ <point x="262" y="-392" type="line"/>
+ <point x="752" y="1578" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/_notdef.glif b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/_notdef.glif
new file mode 100644
index 0000000..a3e9354
--- /dev/null
+++ b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/_notdef.glif
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name=".notdef" format="2">
+ <advance width="1400"/>
+ <outline>
+ <contour>
+ <point x="100" y="0" type="line"/>
+ <point x="1300" y="0" type="line"/>
+ <point x="1300" y="1800" type="line"/>
+ <point x="100" y="1800" type="line"/>
+ </contour>
+ <contour>
+ <point x="150" y="1750" type="line"/>
+ <point x="1250" y="1750" type="line"/>
+ <point x="1250" y="50" type="line"/>
+ <point x="150" y="50" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/_null.glif b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/_null.glif
new file mode 100644
index 0000000..0b9caa6
--- /dev/null
+++ b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/_null.glif
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name=".null" format="2">
+ <outline/>
+</glyph>
diff --git a/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/contents.plist b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/contents.plist
new file mode 100644
index 0000000..ad2aa41
--- /dev/null
+++ b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/contents.plist
@@ -0,0 +1,232 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>.notdef</key>
+ <string>_notdef.glif</string>
+ <key>.null</key>
+ <string>_null.glif</string>
+ <key>Ampersand</key>
+ <string>A_mpersand.glif</string>
+ <key>Apos</key>
+ <string>A_pos.glif</string>
+ <key>Asterisk</key>
+ <string>A_sterisk.glif</string>
+ <key>AtSgn</key>
+ <string>A_tS_gn.glif</string>
+ <key>CircumAccent</key>
+ <string>C_ircumA_ccent.glif</string>
+ <key>Colon</key>
+ <string>C_olon.glif</string>
+ <key>CombAcute</key>
+ <string>C_ombA_cute.glif</string>
+ <key>CombCircum</key>
+ <string>C_ombC_ircum.glif</string>
+ <key>CombDiaer</key>
+ <string>C_ombD_iaer.glif</string>
+ <key>CombGrave</key>
+ <string>C_ombG_rave.glif</string>
+ <key>CombRingAbv</key>
+ <string>C_ombR_ingA_bv.glif</string>
+ <key>CombTilde</key>
+ <string>C_ombT_ilde.glif</string>
+ <key>Comma</key>
+ <string>C_omma.glif</string>
+ <key>DigitEight</key>
+ <string>D_igitE_ight.glif</string>
+ <key>DigitFive</key>
+ <string>D_igitF_ive.glif</string>
+ <key>DigitFour</key>
+ <string>D_igitF_our.glif</string>
+ <key>DigitNine</key>
+ <string>D_igitN_ine.glif</string>
+ <key>DigitOne</key>
+ <string>D_igitO_ne.glif</string>
+ <key>DigitSeven</key>
+ <string>D_igitS_even.glif</string>
+ <key>DigitSix</key>
+ <string>D_igitS_ix.glif</string>
+ <key>DigitThree</key>
+ <string>D_igitT_hree.glif</string>
+ <key>DigitTwo</key>
+ <string>D_igitT_wo.glif</string>
+ <key>DigitZero</key>
+ <string>D_igitZ_ero.glif</string>
+ <key>DollarSgn</key>
+ <string>D_ollarS_gn.glif</string>
+ <key>DottedCirc</key>
+ <string>D_ottedC_irc.glif</string>
+ <key>EqSgn</key>
+ <string>E_qS_gn.glif</string>
+ <key>ExclamationMrk</key>
+ <string>E_xclamationM_rk.glif</string>
+ <key>FullStop</key>
+ <string>F_ullS_top.glif</string>
+ <key>GTSgn</key>
+ <string>G_T_S_gn.glif</string>
+ <key>GraveAccent</key>
+ <string>G_raveA_ccent.glif</string>
+ <key>Hyphen</key>
+ <string>H_yphen.glif</string>
+ <key>HyphenMinus</key>
+ <string>H_yphenM_inus.glif</string>
+ <key>Hyphen_Soft</key>
+ <string>H_yphen_S_oft.glif</string>
+ <key>LTSgn</key>
+ <string>L_T_S_gn.glif</string>
+ <key>LftCurlyBrac</key>
+ <string>L_ftC_urlyB_rac.glif</string>
+ <key>LftParen</key>
+ <string>L_ftP_aren.glif</string>
+ <key>LftSqrBrac</key>
+ <string>L_ftS_qrB_rac.glif</string>
+ <key>LowLine</key>
+ <string>L_owL_ine.glif</string>
+ <key>LtnCapA</key>
+ <string>L_tnC_apA_.glif</string>
+ <key>LtnCapADiaer</key>
+ <string>L_tnC_apA_D_iaer.glif</string>
+ <key>LtnCapB</key>
+ <string>L_tnC_apB_.glif</string>
+ <key>LtnCapC</key>
+ <string>L_tnC_apC_.glif</string>
+ <key>LtnCapD</key>
+ <string>L_tnC_apD_.glif</string>
+ <key>LtnCapE</key>
+ <string>L_tnC_apE_.glif</string>
+ <key>LtnCapF</key>
+ <string>L_tnC_apF_.glif</string>
+ <key>LtnCapG</key>
+ <string>L_tnC_apG_.glif</string>
+ <key>LtnCapH</key>
+ <string>L_tnC_apH_.glif</string>
+ <key>LtnCapI</key>
+ <string>L_tnC_apI_.glif</string>
+ <key>LtnCapJ</key>
+ <string>L_tnC_apJ_.glif</string>
+ <key>LtnCapK</key>
+ <string>L_tnC_apK_.glif</string>
+ <key>LtnCapL</key>
+ <string>L_tnC_apL_.glif</string>
+ <key>LtnCapM</key>
+ <string>L_tnC_apM_.glif</string>
+ <key>LtnCapN</key>
+ <string>L_tnC_apN_.glif</string>
+ <key>LtnCapO</key>
+ <string>L_tnC_apO_.glif</string>
+ <key>LtnCapP</key>
+ <string>L_tnC_apP_.glif</string>
+ <key>LtnCapQ</key>
+ <string>L_tnC_apQ_.glif</string>
+ <key>LtnCapR</key>
+ <string>L_tnC_apR_.glif</string>
+ <key>LtnCapS</key>
+ <string>L_tnC_apS_.glif</string>
+ <key>LtnCapT</key>
+ <string>L_tnC_apT_.glif</string>
+ <key>LtnCapU</key>
+ <string>L_tnC_apU_.glif</string>
+ <key>LtnCapV</key>
+ <string>L_tnC_apV_.glif</string>
+ <key>LtnCapW</key>
+ <string>L_tnC_apW_.glif</string>
+ <key>LtnCapX</key>
+ <string>L_tnC_apX_.glif</string>
+ <key>LtnCapY</key>
+ <string>L_tnC_apY_.glif</string>
+ <key>LtnSmA</key>
+ <string>L_tnS_mA_.glif</string>
+ <key>LtnSmAAcute</key>
+ <string>L_tnS_mA_A_cute.glif</string>
+ <key>LtnSmACircum</key>
+ <string>L_tnS_mA_C_ircum.glif</string>
+ <key>LtnSmADiaer</key>
+ <string>L_tnS_mA_D_iaer.glif</string>
+ <key>LtnSmAGrave</key>
+ <string>L_tnS_mA_G_rave.glif</string>
+ <key>LtnSmARingAbv</key>
+ <string>L_tnS_mA_R_ingA_bv.glif</string>
+ <key>LtnSmATilde</key>
+ <string>L_tnS_mA_T_ilde.glif</string>
+ <key>LtnSmB</key>
+ <string>L_tnS_mB_.glif</string>
+ <key>LtnSmC</key>
+ <string>L_tnS_mC_.glif</string>
+ <key>LtnSmD</key>
+ <string>L_tnS_mD_.glif</string>
+ <key>LtnSmE</key>
+ <string>L_tnS_mE_.glif</string>
+ <key>LtnSmF</key>
+ <string>L_tnS_mF_.glif</string>
+ <key>LtnSmG</key>
+ <string>L_tnS_mG_.glif</string>
+ <key>LtnSmH</key>
+ <string>L_tnS_mH_.glif</string>
+ <key>LtnSmI</key>
+ <string>L_tnS_mI_.glif</string>
+ <key>LtnSmJ</key>
+ <string>L_tnS_mJ_.glif</string>
+ <key>LtnSmK</key>
+ <string>L_tnS_mK_.glif</string>
+ <key>LtnSmL</key>
+ <string>L_tnS_mL_.glif</string>
+ <key>LtnSmM</key>
+ <string>L_tnS_mM_.glif</string>
+ <key>LtnSmN</key>
+ <string>L_tnS_mN_.glif</string>
+ <key>LtnSmO</key>
+ <string>L_tnS_mO_.glif</string>
+ <key>LtnSmP</key>
+ <string>L_tnS_mP_.glif</string>
+ <key>LtnSmQ</key>
+ <string>L_tnS_mQ_.glif</string>
+ <key>LtnSmR</key>
+ <string>L_tnS_mR_.glif</string>
+ <key>LtnSmS</key>
+ <string>L_tnS_mS_.glif</string>
+ <key>LtnSmT</key>
+ <string>L_tnS_mT_.glif</string>
+ <key>LtnSmU</key>
+ <string>L_tnS_mU_.glif</string>
+ <key>LtnSmV</key>
+ <string>L_tnS_mV_.glif</string>
+ <key>LtnSmW</key>
+ <string>L_tnS_mW_.glif</string>
+ <key>LtnSmX</key>
+ <string>L_tnS_mX_.glif</string>
+ <key>LtnSmY</key>
+ <string>L_tnS_mY_.glif</string>
+ <key>NonBreakingHyphen</key>
+ <string>N_onB_reakingH_yphen.glif</string>
+ <key>NumSgn</key>
+ <string>N_umS_gn.glif</string>
+ <key>PercentSgn</key>
+ <string>P_ercentS_gn.glif</string>
+ <key>PlusSgn</key>
+ <string>P_lusS_gn.glif</string>
+ <key>QstnMrk</key>
+ <string>Q_stnM_rk.glif</string>
+ <key>QuotMrk</key>
+ <string>Q_uotM_rk.glif</string>
+ <key>ReverseSolidus</key>
+ <string>R_everseS_olidus.glif</string>
+ <key>RtCurlyBrac</key>
+ <string>R_tC_urlyB_rac.glif</string>
+ <key>RtParen</key>
+ <string>R_tP_aren.glif</string>
+ <key>RtSqrBrac</key>
+ <string>R_tS_qrB_rac.glif</string>
+ <key>Semicolon</key>
+ <string>S_emicolon.glif</string>
+ <key>Solidus</key>
+ <string>S_olidus.glif</string>
+ <key>Space</key>
+ <string>S_pace.glif</string>
+ <key>Tilde</key>
+ <string>T_ilde.glif</string>
+ <key>VertLine</key>
+ <string>V_ertL_ine.glif</string>
+ <key>nonmarkingreturn</key>
+ <string>nonmarkingreturn.glif</string>
+</dict>
+</plist>
diff --git a/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/nonmarkingreturn.glif b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/nonmarkingreturn.glif
new file mode 100644
index 0000000..9a63f06
--- /dev/null
+++ b/tests/reference/ufo/psfsetglyphorder.ufo/glyphs/nonmarkingreturn.glif
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="nonmarkingreturn" format="2">
+ <advance width="1004"/>
+ <outline/>
+</glyph>
diff --git a/tests/reference/ufo/psfsetglyphorder.ufo/layercontents.plist b/tests/reference/ufo/psfsetglyphorder.ufo/layercontents.plist
new file mode 100644
index 0000000..42b7482
--- /dev/null
+++ b/tests/reference/ufo/psfsetglyphorder.ufo/layercontents.plist
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<array>
+ <array>
+ <string>public.default</string>
+ <string>glyphs</string>
+ </array>
+</array>
+</plist>
diff --git a/tests/reference/ufo/psfsetglyphorder.ufo/lib.plist b/tests/reference/ufo/psfsetglyphorder.ufo/lib.plist
new file mode 100644
index 0000000..65224e2
--- /dev/null
+++ b/tests/reference/ufo/psfsetglyphorder.ufo/lib.plist
@@ -0,0 +1,451 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>com.schriftgestaltung.Glyphs.fontUserData</key>
+ <dict/>
+ <key>com.schriftgestaltung.appVersion</key>
+ <string>1161</string>
+ <key>com.schriftgestaltung.customName</key>
+ <string>Italic</string>
+ <key>com.schriftgestaltung.customParameter.GSFont.DisplayStrings</key>
+ <string/>
+ <key>com.schriftgestaltung.customParameter.GSFont.disablesAutomaticAlignment</key>
+ <true/>
+ <key>com.schriftgestaltung.customParameter.GSFont.disablesLastChange</key>
+ <true/>
+ <key>com.schriftgestaltung.customParameter.GSFont.useNiceNames</key>
+ <integer>0</integer>
+ <key>com.schriftgestaltung.customParameter.GSFontMaster.customValue</key>
+ <integer>0</integer>
+ <key>com.schriftgestaltung.customParameter.GSFontMaster.customValue1</key>
+ <integer>0</integer>
+ <key>com.schriftgestaltung.customParameter.GSFontMaster.customValue2</key>
+ <integer>0</integer>
+ <key>com.schriftgestaltung.customParameter.GSFontMaster.customValue3</key>
+ <integer>0</integer>
+ <key>com.schriftgestaltung.customParameter.GSFontMaster.iconName</key>
+ <string/>
+ <key>com.schriftgestaltung.customParameter.GSFontMaster.weightValue</key>
+ <integer>400</integer>
+ <key>com.schriftgestaltung.customParameter.GSFontMaster.widthValue</key>
+ <integer>100</integer>
+ <key>com.schriftgestaltung.disablesAutomaticAlignment</key>
+ <true/>
+ <key>com.schriftgestaltung.disablesLastChange</key>
+ <true/>
+ <key>com.schriftgestaltung.fontMasterOrder</key>
+ <integer>0</integer>
+ <key>com.schriftgestaltung.glyphOrder</key>
+ <array>
+ <string>.notdef</string>
+ <string>.null</string>
+ <string>nonmarkingreturn</string>
+ <string>Space</string>
+ <string>ExclamationMrk</string>
+ <string>QuotMrk</string>
+ <string>NumSgn</string>
+ <string>DollarSgn</string>
+ <string>PercentSgn</string>
+ <string>Ampersand</string>
+ <string>Apos</string>
+ <string>LftParen</string>
+ <string>RtParen</string>
+ <string>Asterisk</string>
+ <string>PlusSgn</string>
+ <string>Comma</string>
+ <string>HyphenMinus</string>
+ <string>FullStop</string>
+ <string>Solidus</string>
+ <string>DigitZero</string>
+ <string>DigitOne</string>
+ <string>DigitTwo</string>
+ <string>DigitThree</string>
+ <string>DigitFour</string>
+ <string>DigitFive</string>
+ <string>DigitSix</string>
+ <string>DigitSeven</string>
+ <string>DigitEight</string>
+ <string>DigitNine</string>
+ <string>Colon</string>
+ <string>Semicolon</string>
+ <string>LTSgn</string>
+ <string>EqSgn</string>
+ <string>GTSgn</string>
+ <string>QstnMrk</string>
+ <string>AtSgn</string>
+ <string>LtnCapA</string>
+ <string>LtnCapA.alt</string>
+ <string>LtnCapB</string>
+ <string>LtnCapC</string>
+ <string>LtnCapD</string>
+ <string>LtnCapE</string>
+ <string>LtnCapF</string>
+ <string>LtnCapG</string>
+ <string>LtnCapH</string>
+ <string>LtnCapI</string>
+ <string>LtnCapJ</string>
+ <string>LtnCapK</string>
+ <string>LtnCapL</string>
+ <string>LtnCapM</string>
+ <string>LtnCapN</string>
+ <string>LtnCapO</string>
+ <string>LtnCapP</string>
+ <string>LtnCapQ</string>
+ <string>LtnCapR</string>
+ <string>LtnCapS</string>
+ <string>LtnCapT</string>
+ <string>LtnCapU</string>
+ <string>LtnCapV</string>
+ <string>LtnCapW</string>
+ <string>LtnCapX</string>
+ <string>LtnCapY</string>
+ <string>LftSqrBrac</string>
+ <string>ReverseSolidus</string>
+ <string>RtSqrBrac</string>
+ <string>CircumAccent</string>
+ <string>LowLine</string>
+ <string>GraveAccent</string>
+ <string>LtnSmA</string>
+ <string>LtnSmB</string>
+ <string>LtnSmC</string>
+ <string>LtnSmD</string>
+ <string>LtnSmE</string>
+ <string>LtnSmF</string>
+ <string>LtnSmG</string>
+ <string>LtnSmH</string>
+ <string>LtnSmI</string>
+ <string>LtnSmJ</string>
+ <string>LtnSmK</string>
+ <string>LtnSmL</string>
+ <string>LtnSmM</string>
+ <string>LtnSmN</string>
+ <string>LtnSmO</string>
+ <string>LtnSmP</string>
+ <string>LtnSmQ</string>
+ <string>LtnSmR</string>
+ <string>LtnSmS</string>
+ <string>LtnSmT</string>
+ <string>LtnSmU</string>
+ <string>LtnSmV</string>
+ <string>LtnSmW</string>
+ <string>LtnSmX</string>
+ <string>LtnSmY</string>
+ <string>LftCurlyBrac</string>
+ <string>VertLine</string>
+ <string>RtCurlyBrac</string>
+ <string>Tilde</string>
+ <string>LtnCapADiaer</string>
+ <string>LtnSmAAcute</string>
+ <string>LtnSmAGrave</string>
+ <string>LtnSmACircum</string>
+ <string>LtnSmADiaer</string>
+ <string>LtnSmATilde</string>
+ <string>LtnSmARingAbv</string>
+ <string>DottedCirc</string>
+ <string>Hyphen</string>
+ <string>NonBreakingHyphen</string>
+ <string>Hyphen_Soft</string>
+ <string>CombAcute</string>
+ <string>CombGrave</string>
+ <string>CombCircum</string>
+ <string>CombTilde</string>
+ <string>CombDiaer</string>
+ <string>CombRingAbv</string>
+ </array>
+ <key>com.schriftgestaltung.keyboardIncrement</key>
+ <integer>1</integer>
+ <key>com.schriftgestaltung.weight</key>
+ <string>Regular</string>
+ <key>com.schriftgestaltung.weightValue</key>
+ <integer>400</integer>
+ <key>com.schriftgestaltung.width</key>
+ <string>Regular</string>
+ <key>com.schriftgestaltung.widthValue</key>
+ <integer>100</integer>
+ <key>org.sil.lcg.toneLetters</key>
+ <dict>
+ <key>contourWidth</key>
+ <integer>480</integer>
+ <key>dotSize</key>
+ <integer>180</integer>
+ <key>dotSpacing</key>
+ <integer>200</integer>
+ <key>glyphDepth</key>
+ <integer>-25</integer>
+ <key>glyphHeight</key>
+ <integer>1600</integer>
+ <key>italicAngle</key>
+ <integer>14</integer>
+ <key>marginDotLeft</key>
+ <integer>120</integer>
+ <key>marginDotRight</key>
+ <integer>160</integer>
+ <key>marginFlatLeft</key>
+ <integer>120</integer>
+ <key>marginFlatRight</key>
+ <integer>160</integer>
+ <key>marginPointLeft</key>
+ <integer>100</integer>
+ <key>marginPointRight</key>
+ <integer>140</integer>
+ <key>strokeThickness</key>
+ <integer>120</integer>
+ </dict>
+ <key>public.glyphOrder</key>
+ <array>
+ <string>nonmarkingreturn</string>
+ <string>HyphenMinus</string>
+ <string>ReverseSolidus</string>
+ <string>CircumAccent</string>
+ <string>LtnSmAAcute</string>
+ <string>LtnSmEAcute</string>
+ <string>LtnSmIAcute</string>
+ <string>LtnSmOAcute</string>
+ <string>LtnSmUAcute</string>
+ <string>Bullet</string>
+ <string>AcuteAccent</string>
+ <string>LtnCapEAcute</string>
+ <string>LtnCapAAcute</string>
+ <string>LtnCapIAcute</string>
+ <string>LtnCapOAcute</string>
+ <string>LtnCapUAcute</string>
+ <string>ModCircumAccent</string>
+ <string>DblAcuteAccent</string>
+ <string>LtnSmYAcute</string>
+ <string>LtnCapYAcute</string>
+ <string>SupOne</string>
+ <string>SupThree</string>
+ <string>VulgFracOneHalf</string>
+ <string>VulgFracOneQuarter</string>
+ <string>VulgFracThreeQuarters</string>
+ <string>BulletOperator</string>
+ <string>CombAcute</string>
+ </array>
+ <key>public.postscriptNames</key>
+ <dict>
+ <key>Ampersand</key>
+ <string>ampersand</string>
+ <key>Apos</key>
+ <string>quotesingle</string>
+ <key>Asterisk</key>
+ <string>asterisk</string>
+ <key>AtSgn</key>
+ <string>at</string>
+ <key>CircumAccent</key>
+ <string>asciicircum</string>
+ <key>Colon</key>
+ <string>colon</string>
+ <key>CombAcute</key>
+ <string>acutecomb</string>
+ <key>CombCircum</key>
+ <string>uni0302</string>
+ <key>CombDiaer</key>
+ <string>uni0308</string>
+ <key>CombGrave</key>
+ <string>gravecomb</string>
+ <key>CombRingAbv</key>
+ <string>uni030A</string>
+ <key>CombTilde</key>
+ <string>tildecomb</string>
+ <key>Comma</key>
+ <string>comma</string>
+ <key>DigitEight</key>
+ <string>eight</string>
+ <key>DigitFive</key>
+ <string>five</string>
+ <key>DigitFour</key>
+ <string>four</string>
+ <key>DigitNine</key>
+ <string>nine</string>
+ <key>DigitOne</key>
+ <string>one</string>
+ <key>DigitSeven</key>
+ <string>seven</string>
+ <key>DigitSix</key>
+ <string>six</string>
+ <key>DigitThree</key>
+ <string>three</string>
+ <key>DigitTwo</key>
+ <string>two</string>
+ <key>DigitZero</key>
+ <string>zero</string>
+ <key>DollarSgn</key>
+ <string>dollar</string>
+ <key>DottedCirc</key>
+ <string>uni25CC</string>
+ <key>EqSgn</key>
+ <string>equal</string>
+ <key>ExclamationMrk</key>
+ <string>exclam</string>
+ <key>FullStop</key>
+ <string>period</string>
+ <key>GTSgn</key>
+ <string>greater</string>
+ <key>GraveAccent</key>
+ <string>grave</string>
+ <key>Hyphen</key>
+ <string>uni2010</string>
+ <key>HyphenMinus</key>
+ <string>hyphen</string>
+ <key>Hyphen_Soft</key>
+ <string>uni00AD</string>
+ <key>LTSgn</key>
+ <string>less</string>
+ <key>LftCurlyBrac</key>
+ <string>braceleft</string>
+ <key>LftParen</key>
+ <string>parenleft</string>
+ <key>LftSqrBrac</key>
+ <string>bracketleft</string>
+ <key>LowLine</key>
+ <string>underscore</string>
+ <key>LtnCapA</key>
+ <string>A</string>
+ <key>LtnCapA.alt</key>
+ <string>A</string>
+ <key>LtnCapADiaer</key>
+ <string>Adieresis</string>
+ <key>LtnCapB</key>
+ <string>B</string>
+ <key>LtnCapC</key>
+ <string>C</string>
+ <key>LtnCapD</key>
+ <string>D</string>
+ <key>LtnCapE</key>
+ <string>E</string>
+ <key>LtnCapF</key>
+ <string>F</string>
+ <key>LtnCapG</key>
+ <string>G</string>
+ <key>LtnCapH</key>
+ <string>H</string>
+ <key>LtnCapI</key>
+ <string>I</string>
+ <key>LtnCapJ</key>
+ <string>J</string>
+ <key>LtnCapK</key>
+ <string>K</string>
+ <key>LtnCapL</key>
+ <string>L</string>
+ <key>LtnCapM</key>
+ <string>M</string>
+ <key>LtnCapN</key>
+ <string>N</string>
+ <key>LtnCapO</key>
+ <string>O</string>
+ <key>LtnCapP</key>
+ <string>P</string>
+ <key>LtnCapQ</key>
+ <string>Q</string>
+ <key>LtnCapR</key>
+ <string>R</string>
+ <key>LtnCapS</key>
+ <string>S</string>
+ <key>LtnCapT</key>
+ <string>T</string>
+ <key>LtnCapU</key>
+ <string>U</string>
+ <key>LtnCapV</key>
+ <string>V</string>
+ <key>LtnCapW</key>
+ <string>W</string>
+ <key>LtnCapX</key>
+ <string>X</string>
+ <key>LtnCapY</key>
+ <string>Y</string>
+ <key>LtnSmA</key>
+ <string>a</string>
+ <key>LtnSmAAcute</key>
+ <string>aacute</string>
+ <key>LtnSmACircum</key>
+ <string>acircumflex</string>
+ <key>LtnSmADiaer</key>
+ <string>adieresis</string>
+ <key>LtnSmAGrave</key>
+ <string>agrave</string>
+ <key>LtnSmARingAbv</key>
+ <string>aring</string>
+ <key>LtnSmATilde</key>
+ <string>atilde</string>
+ <key>LtnSmB</key>
+ <string>b</string>
+ <key>LtnSmC</key>
+ <string>c</string>
+ <key>LtnSmD</key>
+ <string>d</string>
+ <key>LtnSmE</key>
+ <string>e</string>
+ <key>LtnSmF</key>
+ <string>f</string>
+ <key>LtnSmG</key>
+ <string>g</string>
+ <key>LtnSmH</key>
+ <string>h</string>
+ <key>LtnSmI</key>
+ <string>i</string>
+ <key>LtnSmJ</key>
+ <string>j</string>
+ <key>LtnSmK</key>
+ <string>k</string>
+ <key>LtnSmL</key>
+ <string>l</string>
+ <key>LtnSmM</key>
+ <string>m</string>
+ <key>LtnSmN</key>
+ <string>n</string>
+ <key>LtnSmO</key>
+ <string>o</string>
+ <key>LtnSmP</key>
+ <string>p</string>
+ <key>LtnSmQ</key>
+ <string>q</string>
+ <key>LtnSmR</key>
+ <string>r</string>
+ <key>LtnSmS</key>
+ <string>s</string>
+ <key>LtnSmT</key>
+ <string>t</string>
+ <key>LtnSmU</key>
+ <string>u</string>
+ <key>LtnSmV</key>
+ <string>v</string>
+ <key>LtnSmW</key>
+ <string>w</string>
+ <key>LtnSmX</key>
+ <string>x</string>
+ <key>LtnSmY</key>
+ <string>y</string>
+ <key>NonBreakingHyphen</key>
+ <string>uni2011</string>
+ <key>NumSgn</key>
+ <string>numbersign</string>
+ <key>PercentSgn</key>
+ <string>percent</string>
+ <key>PlusSgn</key>
+ <string>plus</string>
+ <key>QstnMrk</key>
+ <string>question</string>
+ <key>QuotMrk</key>
+ <string>quotedbl</string>
+ <key>ReverseSolidus</key>
+ <string>backslash</string>
+ <key>RtCurlyBrac</key>
+ <string>braceright</string>
+ <key>RtParen</key>
+ <string>parenright</string>
+ <key>RtSqrBrac</key>
+ <string>bracketright</string>
+ <key>Semicolon</key>
+ <string>semicolon</string>
+ <key>Solidus</key>
+ <string>slash</string>
+ <key>Space</key>
+ <string>space</string>
+ <key>Tilde</key>
+ <string>asciitilde</string>
+ <key>VertLine</key>
+ <string>bar</string>
+ </dict>
+</dict>
+</plist>
diff --git a/tests/reference/ufo/psfsetglyphorder.ufo/metainfo.plist b/tests/reference/ufo/psfsetglyphorder.ufo/metainfo.plist
new file mode 100644
index 0000000..aa10c5c
--- /dev/null
+++ b/tests/reference/ufo/psfsetglyphorder.ufo/metainfo.plist
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>creator</key>
+ <string>org.sil.scripts.pysilfont</string>
+ <key>formatVersion</key>
+ <integer>3</integer>
+</dict>
+</plist>
diff --git a/tests/reference/ufo/psfsetkeys.lg b/tests/reference/ufo/psfsetkeys.lg
new file mode 100644
index 0000000..9013f01
--- /dev/null
+++ b/tests/reference/ufo/psfsetkeys.lg
@@ -0,0 +1,27 @@
+2021-06-29 14:42:22 Progress: Running: psfsetkeys tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo -k org.sil.newkey -v newvalue -l local/testresults/ufo/psfsetkeys.log -p loglevel=i -p checkfix=fix
+2021-06-29 14:42:22 Progress: Reading UFO: tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo
+2021-06-29 14:42:22 Info: Processing Glyph Layer 0: public.defaultglyphs
+2021-06-29 14:42:22 Progress: Checking fontinfo.plist metadata
+2021-06-29 14:42:22 Warning: macintoshFONDName removed from fontinfo. Old value: My Test
+2021-06-29 14:42:22 Info: Types: Old - string, New - NoneType
+2021-06-29 14:42:22 Warning: openTypeOS2FamilyClass removed from fontinfo. Old value: [0, 0]
+2021-06-29 14:42:22 Info: Types: Old - list, New - NoneType
+2021-06-29 14:42:22 Warning: postscriptFamilyBlues removed from fontinfo. Old value: []
+2021-06-29 14:42:22 Info: Types: Old - list, New - NoneType
+2021-06-29 14:42:22 Warning: openTypeOS2Selection added New value: [7]
+2021-06-29 14:42:22 Info: Types: Old - NoneType, New - list
+2021-06-29 14:42:22 Warning: openTypeHheaAscender updated Old value: 2200, new value: 2100
+2021-06-29 14:42:22 Info: Types: Old - int, New - int
+2021-06-29 14:42:22 Progress: Checking lib.plist metadata
+2021-06-29 14:42:22 Warning: com.schriftgestaltung.disablesAutomaticAlignment deleted - obsolete key Old value: True
+2021-06-29 14:42:22 Info: Types: Old - bool, New - NoneType
+2021-06-29 14:42:22 Warning: com.schriftgestaltung.disablesLastChange deleted - obsolete key Old value: True
+2021-06-29 14:42:22 Info: Types: Old - bool, New - NoneType
+2021-06-29 14:42:22 Progress: Check & fix results:- Errors: 0, Changes made: 7, Other warnings: 0
+2021-06-29 14:42:22 Progress: See log file for details
+2021-06-29 14:42:22 Info: Adding keys to fontinfo
+2021-06-29 14:42:22 Info: org.sil.newkey added, value: newvalue
+2021-06-29 14:42:22 Progress: Processing font for output
+2021-06-29 14:42:22 Progress: Output UFO already exists - reading for comparison
+2021-06-29 14:42:22 Progress: Writing font to local/testresults/ufo/psfsetkeys.ufo
+2021-06-29 14:42:22 Info: Processing glyphs directory
diff --git a/tests/reference/ufo/psfsetkeys.ufo/fontinfo.plist b/tests/reference/ufo/psfsetkeys.ufo/fontinfo.plist
new file mode 100644
index 0000000..6d494b6
--- /dev/null
+++ b/tests/reference/ufo/psfsetkeys.ufo/fontinfo.plist
@@ -0,0 +1,242 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>ascender</key>
+ <integer>2100</integer>
+ <key>capHeight</key>
+ <integer>1485</integer>
+ <key>copyright</key>
+ <string>Copyright (c) 2004-2021 SIL International</string>
+ <key>descender</key>
+ <integer>-550</integer>
+ <key>familyName</key>
+ <string>Psf Test</string>
+ <key>italicAngle</key>
+ <integer>-14</integer>
+ <key>openTypeHeadCreated</key>
+ <string>2021/06/29 14:43:52</string>
+ <key>openTypeHheaAscender</key>
+ <integer>2100</integer>
+ <key>openTypeHheaDescender</key>
+ <integer>-550</integer>
+ <key>openTypeHheaLineGap</key>
+ <integer>0</integer>
+ <key>openTypeNameDescription</key>
+ <string>Copyright (c) 2004-2021 SIL International</string>
+ <key>openTypeNameDesigner</key>
+ <string>Victor Gaultney, Annie Olsen, Julie Remington, Don Collingsworth, Eric Hays, Becca Hirsbrunner</string>
+ <key>openTypeNameDesignerURL</key>
+ <string>http://scripts.sil.org/</string>
+ <key>openTypeNameLicense</key>
+ <string>Copyright (c) 2004-2021 SIL International (http://www.sil.org/) with Reserved Font Names "Andika" and "SIL".
+
+This Font Software is licensed under the SIL Open Font License, Version 1.1. This license is copied below, and is also available with a FAQ at: http://scripts.sil.org/OFL
+
+
+-----------------------------------------------------------
+SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
+-----------------------------------------------------------
+
+PREAMBLE
+The goals of the Open Font License (OFL) are to stimulate worldwide development of collaborative font projects, to support the font creation efforts of academic and linguistic communities, and to provide a free and open framework in which fonts may be shared and improved in partnership with others.
+
+The OFL allows the licensed fonts to be used, studied, modified and redistributed freely as long as they are not sold by themselves. The fonts, including any derivative works, can be bundled, embedded, redistributed and/or sold with any software provided that any reserved names are not used by derivative works. The fonts and derivatives, however, cannot be released under any other type of license. The requirement for fonts to remain under this license does not apply to any document created using the fonts or their derivatives.
+
+DEFINITIONS
+"Font Software" refers to the set of files released by the Copyright Holder(s) under this license and clearly marked as such. This may include source files, build scripts and documentation.
+
+"Reserved Font Name" refers to any names specified as such after the copyright statement(s).
+
+"Original Version" refers to the collection of Font Software components as distributed by the Copyright Holder(s).
+
+"Modified Version" refers to any derivative made by adding to, deleting, or substituting -- in part or in whole -- any of the components of the Original Version, by changing formats or by porting the Font Software to a new environment.
+
+"Author" refers to any designer, engineer, programmer, technical writer or other person who contributed to the Font Software.
+
+PERMISSION &amp; CONDITIONS
+Permission is hereby granted, free of charge, to any person obtaining a copy of the Font Software, to use, study, copy, merge, embed, modify, redistribute, and sell modified and unmodified copies of the Font Software, subject to the following conditions:
+
+1) Neither the Font Software nor any of its individual components, in Original or Modified Versions, may be sold by itself.
+
+2) Original or Modified Versions of the Font Software may be bundled, redistributed and/or sold with any software, provided that each copy contains the above copyright notice and this license. These can be included either as stand-alone text files, human-readable headers or in the appropriate machine-readable metadata fields within text or binary files as long as those fields can be easily viewed by the user.
+
+3) No Modified Version of the Font Software may use the Reserved Font Name(s) unless explicit written permission is granted by the corresponding Copyright Holder. This restriction only applies to the primary font name as presented to the users.
+
+4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font Software shall not be used to promote, endorse or advertise any Modified Version, except to acknowledge the contribution(s) of the Copyright Holder(s) and the Author(s) or with their explicit written permission.
+
+5) The Font Software, modified or unmodified, in part or in whole, must be distributed entirely under this license, and must not be distributed under any other license. The requirement for fonts to remain under this license does not apply to any document created using the Font Software.
+
+TERMINATION
+This license becomes null and void if any of the above conditions are not met.
+
+DISCLAIMER
+THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM OTHER DEALINGS IN THE FONT SOFTWARE.</string>
+ <key>openTypeNameLicenseURL</key>
+ <string>http://scripts.sil.org/OFL</string>
+ <key>openTypeNameManufacturer</key>
+ <string>SIL International</string>
+ <key>openTypeNameManufacturerURL</key>
+ <string>http://scripts.sil.org</string>
+ <key>openTypeNamePreferredFamilyName</key>
+ <string>Psf Test</string>
+ <key>openTypeNamePreferredSubfamilyName</key>
+ <string>Bold Italic</string>
+ <key>openTypeNameUniqueID</key>
+ <string>SIL International: Psf Test Bold Italic: 2022</string>
+ <key>openTypeNameVersion</key>
+ <string>Version 5.550</string>
+ <key>openTypeOS2CodePageRanges</key>
+ <array>
+ <integer>0</integer>
+ <integer>1</integer>
+ <integer>2</integer>
+ <integer>4</integer>
+ <integer>7</integer>
+ <integer>8</integer>
+ </array>
+ <key>openTypeOS2Panose</key>
+ <array>
+ <integer>2</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ </array>
+ <key>openTypeOS2Selection</key>
+ <array>
+ <integer>7</integer>
+ </array>
+ <key>openTypeOS2StrikeoutPosition</key>
+ <integer>700</integer>
+ <key>openTypeOS2StrikeoutSize</key>
+ <integer>100</integer>
+ <key>openTypeOS2SubscriptXOffset</key>
+ <integer>0</integer>
+ <key>openTypeOS2SubscriptXSize</key>
+ <integer>1433</integer>
+ <key>openTypeOS2SubscriptYOffset</key>
+ <integer>286</integer>
+ <key>openTypeOS2SubscriptYSize</key>
+ <integer>1331</integer>
+ <key>openTypeOS2SuperscriptXOffset</key>
+ <integer>0</integer>
+ <key>openTypeOS2SuperscriptXSize</key>
+ <integer>1433</integer>
+ <key>openTypeOS2SuperscriptYOffset</key>
+ <integer>976</integer>
+ <key>openTypeOS2SuperscriptYSize</key>
+ <integer>1331</integer>
+ <key>openTypeOS2Type</key>
+ <array/>
+ <key>openTypeOS2TypoAscender</key>
+ <integer>2100</integer>
+ <key>openTypeOS2TypoDescender</key>
+ <integer>-550</integer>
+ <key>openTypeOS2TypoLineGap</key>
+ <integer>0</integer>
+ <key>openTypeOS2UnicodeRanges</key>
+ <array>
+ <integer>0</integer>
+ <integer>1</integer>
+ <integer>6</integer>
+ <integer>7</integer>
+ <integer>31</integer>
+ <integer>33</integer>
+ <integer>35</integer>
+ <integer>36</integer>
+ <integer>37</integer>
+ <integer>38</integer>
+ <integer>39</integer>
+ <integer>40</integer>
+ <integer>45</integer>
+ <integer>46</integer>
+ <integer>47</integer>
+ <integer>57</integer>
+ <integer>60</integer>
+ <integer>62</integer>
+ <integer>64</integer>
+ <integer>67</integer>
+ <integer>69</integer>
+ <integer>89</integer>
+ </array>
+ <key>openTypeOS2VendorID</key>
+ <string>SIL</string>
+ <key>openTypeOS2WeightClass</key>
+ <integer>700</integer>
+ <key>openTypeOS2WidthClass</key>
+ <integer>5</integer>
+ <key>openTypeOS2WinAscent</key>
+ <integer>2100</integer>
+ <key>openTypeOS2WinDescent</key>
+ <integer>550</integer>
+ <key>org.sil.newkey</key>
+ <string>newvalue</string>
+ <key>postscriptBlueValues</key>
+ <array>
+ <integer>-490</integer>
+ <integer>-490</integer>
+ <integer>-25</integer>
+ <integer>0</integer>
+ <integer>1020</integer>
+ <integer>1040</integer>
+ <integer>1455</integer>
+ <integer>1485</integer>
+ <integer>1600</integer>
+ <integer>1620</integer>
+ </array>
+ <key>postscriptFontName</key>
+ <string>PsfTest-BoldItalic</string>
+ <key>postscriptFullName</key>
+ <string>Psf Test Bold Italic</string>
+ <key>postscriptStemSnapH</key>
+ <array>
+ <integer>140</integer>
+ <integer>145</integer>
+ <integer>150</integer>
+ <integer>155</integer>
+ <integer>160</integer>
+ <integer>165</integer>
+ <integer>170</integer>
+ <integer>175</integer>
+ <integer>185</integer>
+ <integer>270</integer>
+ </array>
+ <key>postscriptStemSnapV</key>
+ <array>
+ <integer>165</integer>
+ <integer>180</integer>
+ <integer>185</integer>
+ <integer>190</integer>
+ <integer>195</integer>
+ <integer>200</integer>
+ <integer>205</integer>
+ <integer>270</integer>
+ </array>
+ <key>postscriptUnderlinePosition</key>
+ <integer>-110</integer>
+ <key>postscriptUnderlineThickness</key>
+ <integer>80</integer>
+ <key>styleMapFamilyName</key>
+ <string>Psf Test</string>
+ <key>styleMapStyleName</key>
+ <string>bold italic</string>
+ <key>styleName</key>
+ <string>Bold Italic</string>
+ <key>trademark</key>
+ <string>Andika is a trademark of SIL International.</string>
+ <key>unitsPerEm</key>
+ <integer>2048</integer>
+ <key>versionMajor</key>
+ <integer>5</integer>
+ <key>versionMinor</key>
+ <integer>550</integer>
+ <key>xHeight</key>
+ <integer>1040</integer>
+</dict>
+</plist>
diff --git a/tests/reference/ufo/psfsetkeys.ufo/glyphs/A_mpersand.glif b/tests/reference/ufo/psfsetkeys.ufo/glyphs/A_mpersand.glif
new file mode 100644
index 0000000..f3fb1c7
--- /dev/null
+++ b/tests/reference/ufo/psfsetkeys.ufo/glyphs/A_mpersand.glif
@@ -0,0 +1,61 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Ampersand" format="2">
+ <advance width="1333"/>
+ <unicode hex="0026"/>
+ <outline>
+ <contour>
+ <point x="1146" y="594" type="line"/>
+ <point x="1040" y="429"/>
+ <point x="712" y="198"/>
+ <point x="537" y="198" type="curve" smooth="yes"/>
+ <point x="437" y="198"/>
+ <point x="363" y="257"/>
+ <point x="363" y="345" type="curve" smooth="yes"/>
+ <point x="363" y="490"/>
+ <point x="474" y="535"/>
+ <point x="695" y="693" type="curve" smooth="yes"/>
+ <point x="940" y="868"/>
+ <point x="1160" y="1032"/>
+ <point x="1160" y="1213" type="curve" smooth="yes"/>
+ <point x="1160" y="1361"/>
+ <point x="1026" y="1470"/>
+ <point x="849" y="1470" type="curve" smooth="yes"/>
+ <point x="637" y="1470"/>
+ <point x="414" y="1364"/>
+ <point x="414" y="1124" type="curve" smooth="yes"/>
+ <point x="414" y="968"/>
+ <point x="552" y="751"/>
+ <point x="661" y="535" type="curve" smooth="yes"/>
+ <point x="842" y="177"/>
+ <point x="969" y="-25"/>
+ <point x="1021" y="-25" type="curve" smooth="yes"/>
+ <point x="1056" y="-25"/>
+ <point x="1205" y="57"/>
+ <point x="1250" y="89" type="curve"/>
+ <point x="1165" y="129"/>
+ <point x="1073" y="302"/>
+ <point x="890" y="673" type="curve" smooth="yes"/>
+ <point x="788" y="881"/>
+ <point x="651" y="1063"/>
+ <point x="651" y="1163" type="curve" smooth="yes"/>
+ <point x="651" y="1245"/>
+ <point x="729" y="1307"/>
+ <point x="803" y="1307" type="curve" smooth="yes"/>
+ <point x="873" y="1307"/>
+ <point x="926" y="1250"/>
+ <point x="926" y="1184" type="curve" smooth="yes"/>
+ <point x="926" y="1081"/>
+ <point x="821" y="997"/>
+ <point x="600" y="832" type="curve" smooth="yes"/>
+ <point x="392" y="677"/>
+ <point x="108" y="540"/>
+ <point x="108" y="268" type="curve" smooth="yes"/>
+ <point x="108" y="98"/>
+ <point x="229" y="-25"/>
+ <point x="466" y="-25" type="curve" smooth="yes"/>
+ <point x="749" y="-25"/>
+ <point x="1120" y="261"/>
+ <point x="1237" y="421" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetkeys.ufo/glyphs/A_pos.glif b/tests/reference/ufo/psfsetkeys.ufo/glyphs/A_pos.glif
new file mode 100644
index 0000000..68b000e
--- /dev/null
+++ b/tests/reference/ufo/psfsetkeys.ufo/glyphs/A_pos.glif
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Apos" format="2">
+ <advance width="605"/>
+ <unicode hex="0027"/>
+ <outline>
+ <contour>
+ <point x="598" y="1035" type="line"/>
+ <point x="637" y="1174"/>
+ <point x="676" y="1326"/>
+ <point x="766" y="1569" type="curve"/>
+ <point x="521" y="1569" type="line"/>
+ <point x="491" y="1326"/>
+ <point x="453" y="1174"/>
+ <point x="423" y="1035" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetkeys.ufo/glyphs/A_sterisk.glif b/tests/reference/ufo/psfsetkeys.ufo/glyphs/A_sterisk.glif
new file mode 100644
index 0000000..a36131c
--- /dev/null
+++ b/tests/reference/ufo/psfsetkeys.ufo/glyphs/A_sterisk.glif
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Asterisk" format="2">
+ <advance width="1020"/>
+ <unicode hex="002A"/>
+ <outline>
+ <contour>
+ <point x="1135" y="1478" type="line"/>
+ <point x="1039" y="1412"/>
+ <point x="956" y="1353"/>
+ <point x="856" y="1295" type="curve"/>
+ <point x="885" y="1391"/>
+ <point x="915" y="1471"/>
+ <point x="958" y="1584" type="curve"/>
+ <point x="759" y="1584" type="line"/>
+ <point x="753" y="1482"/>
+ <point x="748" y="1398"/>
+ <point x="730" y="1295" type="curve"/>
+ <point x="658" y="1346"/>
+ <point x="599" y="1394"/>
+ <point x="532" y="1461" type="curve"/>
+ <point x="388" y="1293" type="line"/>
+ <point x="484" y="1258"/>
+ <point x="575" y="1222"/>
+ <point x="647" y="1184" type="curve"/>
+ <point x="552" y="1141"/>
+ <point x="459" y="1109"/>
+ <point x="341" y="1066" type="curve"/>
+ <point x="398" y="888" type="line"/>
+ <point x="494" y="958"/>
+ <point x="575" y="1016"/>
+ <point x="674" y="1076" type="curve"/>
+ <point x="641" y="973"/>
+ <point x="610" y="887"/>
+ <point x="566" y="785" type="curve"/>
+ <point x="767" y="785" type="line"/>
+ <point x="773" y="897"/>
+ <point x="785" y="977"/>
+ <point x="800" y="1073" type="curve"/>
+ <point x="875" y="1017"/>
+ <point x="929" y="971"/>
+ <point x="995" y="905" type="curve"/>
+ <point x="1144" y="1078" type="line"/>
+ <point x="1045" y="1116"/>
+ <point x="967" y="1143"/>
+ <point x="886" y="1184" type="curve"/>
+ <point x="984" y="1229"/>
+ <point x="1075" y="1264"/>
+ <point x="1190" y="1308" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetkeys.ufo/glyphs/A_tS_gn.glif b/tests/reference/ufo/psfsetkeys.ufo/glyphs/A_tS_gn.glif
new file mode 100644
index 0000000..e2233cf
--- /dev/null
+++ b/tests/reference/ufo/psfsetkeys.ufo/glyphs/A_tS_gn.glif
@@ -0,0 +1,104 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="AtSgn" format="2">
+ <advance width="1693"/>
+ <unicode hex="0040"/>
+ <outline>
+ <contour>
+ <point x="1082" y="10" type="line"/>
+ <point x="1008" y="-34"/>
+ <point x="933" y="-59"/>
+ <point x="840" y="-59" type="curve" smooth="yes"/>
+ <point x="540" y="-59"/>
+ <point x="362" y="143"/>
+ <point x="362" y="434" type="curve" smooth="yes"/>
+ <point x="362" y="498"/>
+ <point x="371" y="567"/>
+ <point x="389" y="639" type="curve" smooth="yes"/>
+ <point x="480" y="1003"/>
+ <point x="783" y="1228"/>
+ <point x="1121" y="1228" type="curve" smooth="yes"/>
+ <point x="1424" y="1228"/>
+ <point x="1581" y="1069"/>
+ <point x="1581" y="813" type="curve" smooth="yes"/>
+ <point x="1581" y="753"/>
+ <point x="1572" y="688"/>
+ <point x="1555" y="619" type="curve" smooth="yes"/>
+ <point x="1506" y="418"/>
+ <point x="1400" y="331"/>
+ <point x="1340" y="331" type="curve" smooth="yes"/>
+ <point x="1307" y="331"/>
+ <point x="1287" y="362"/>
+ <point x="1287" y="432" type="curve" smooth="yes"/>
+ <point x="1287" y="482"/>
+ <point x="1297" y="551"/>
+ <point x="1320" y="643" type="curve" smooth="yes"/>
+ <point x="1401" y="970" type="line"/>
+ <point x="1323" y="1005"/>
+ <point x="1182" y="1030"/>
+ <point x="1101" y="1030" type="curve" smooth="yes"/>
+ <point x="937" y="1030"/>
+ <point x="822" y="974"/>
+ <point x="710" y="862" type="curve" smooth="yes"/>
+ <point x="637" y="789"/>
+ <point x="569" y="677"/>
+ <point x="539" y="556" type="curve" smooth="yes"/>
+ <point x="529" y="518"/>
+ <point x="525" y="481"/>
+ <point x="525" y="447" type="curve" smooth="yes"/>
+ <point x="525" y="279"/>
+ <point x="629" y="161"/>
+ <point x="740" y="161" type="curve" smooth="yes"/>
+ <point x="867" y="161"/>
+ <point x="1034" y="328"/>
+ <point x="1117" y="450" type="curve"/>
+ <point x="1112" y="422"/>
+ <point x="1110" y="394"/>
+ <point x="1110" y="367" type="curve" smooth="yes"/>
+ <point x="1110" y="252"/>
+ <point x="1157" y="155"/>
+ <point x="1291" y="155" type="curve" smooth="yes"/>
+ <point x="1454" y="155"/>
+ <point x="1674" y="332"/>
+ <point x="1752" y="646" type="curve" smooth="yes"/>
+ <point x="1768" y="710"/>
+ <point x="1775" y="771"/>
+ <point x="1775" y="829" type="curve" smooth="yes"/>
+ <point x="1775" y="1169"/>
+ <point x="1520" y="1411"/>
+ <point x="1156" y="1411" type="curve" smooth="yes"/>
+ <point x="731" y="1411"/>
+ <point x="322" y="1180"/>
+ <point x="183" y="624" type="curve" smooth="yes"/>
+ <point x="163" y="544"/>
+ <point x="154" y="469"/>
+ <point x="154" y="398" type="curve" smooth="yes"/>
+ <point x="154" y="-1"/>
+ <point x="448" y="-243"/>
+ <point x="789" y="-243" type="curve" smooth="yes"/>
+ <point x="924" y="-243"/>
+ <point x="1076" y="-206"/>
+ <point x="1193" y="-137" type="curve"/>
+ </contour>
+ <contour>
+ <point x="1135" y="703" type="line"/>
+ <point x="1069" y="566"/>
+ <point x="899" y="346"/>
+ <point x="809" y="346" type="curve" smooth="yes"/>
+ <point x="757" y="346"/>
+ <point x="726" y="386"/>
+ <point x="726" y="463" type="curve" smooth="yes"/>
+ <point x="726" y="493"/>
+ <point x="731" y="528"/>
+ <point x="741" y="569" type="curve" smooth="yes"/>
+ <point x="760" y="645"/>
+ <point x="803" y="731"/>
+ <point x="853" y="778" type="curve" smooth="yes"/>
+ <point x="901" y="824"/>
+ <point x="957" y="846"/>
+ <point x="1025" y="846" type="curve" smooth="yes"/>
+ <point x="1099" y="846"/>
+ <point x="1133" y="828"/>
+ <point x="1162" y="812" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetkeys.ufo/glyphs/C_ircumA_ccent.glif b/tests/reference/ufo/psfsetkeys.ufo/glyphs/C_ircumA_ccent.glif
new file mode 100644
index 0000000..b60b998
--- /dev/null
+++ b/tests/reference/ufo/psfsetkeys.ufo/glyphs/C_ircumA_ccent.glif
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="CircumAccent" format="2">
+ <advance width="860"/>
+ <unicode hex="005E"/>
+ <anchor x="788" y="1635" name="U"/>
+ <outline>
+ <contour>
+ <point x="1056" y="1188" type="line"/>
+ <point x="845" y="1584" type="line"/>
+ <point x="545" y="1584" type="line"/>
+ <point x="177" y="1188" type="line"/>
+ <point x="417" y="1188" type="line"/>
+ <point x="674" y="1416" type="line"/>
+ <point x="817" y="1188" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetkeys.ufo/glyphs/C_olon.glif b/tests/reference/ufo/psfsetkeys.ufo/glyphs/C_olon.glif
new file mode 100644
index 0000000..37f30d8
--- /dev/null
+++ b/tests/reference/ufo/psfsetkeys.ufo/glyphs/C_olon.glif
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Colon" format="2">
+ <advance width="690"/>
+ <unicode hex="003A"/>
+ <outline>
+ <contour>
+ <point x="171" y="116" type="curve" smooth="yes"/>
+ <point x="171" y="35"/>
+ <point x="232" y="-25"/>
+ <point x="318" y="-25" type="curve" smooth="yes"/>
+ <point x="436" y="-25"/>
+ <point x="531" y="71"/>
+ <point x="531" y="181" type="curve" smooth="yes"/>
+ <point x="531" y="261"/>
+ <point x="472" y="322"/>
+ <point x="385" y="322" type="curve" smooth="yes"/>
+ <point x="268" y="322"/>
+ <point x="171" y="226"/>
+ </contour>
+ <contour>
+ <point x="319" y="710" type="curve" smooth="yes"/>
+ <point x="319" y="629"/>
+ <point x="380" y="569"/>
+ <point x="466" y="569" type="curve" smooth="yes"/>
+ <point x="584" y="569"/>
+ <point x="679" y="665"/>
+ <point x="679" y="775" type="curve" smooth="yes"/>
+ <point x="679" y="855"/>
+ <point x="620" y="916"/>
+ <point x="533" y="916" type="curve" smooth="yes"/>
+ <point x="416" y="916"/>
+ <point x="319" y="820"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetkeys.ufo/glyphs/C_ombA_cute.glif b/tests/reference/ufo/psfsetkeys.ufo/glyphs/C_ombA_cute.glif
new file mode 100644
index 0000000..f3ea065
--- /dev/null
+++ b/tests/reference/ufo/psfsetkeys.ufo/glyphs/C_ombA_cute.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="CombAcute" format="2">
+ <unicode hex="0301"/>
+ <anchor x="-251" y="1635" name="U"/>
+ <anchor x="-325" y="1100" name="_U"/>
+ <outline>
+ <contour>
+ <point x="-165" y="1584" type="line"/>
+ <point x="-523" y="1188" type="line"/>
+ <point x="-283" y="1188" type="line"/>
+ <point x="204" y="1584" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetkeys.ufo/glyphs/C_ombC_ircum.glif b/tests/reference/ufo/psfsetkeys.ufo/glyphs/C_ombC_ircum.glif
new file mode 100644
index 0000000..9dc18ac
--- /dev/null
+++ b/tests/reference/ufo/psfsetkeys.ufo/glyphs/C_ombC_ircum.glif
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="CombCircum" format="2">
+ <unicode hex="0302"/>
+ <anchor x="-239" y="1635" name="U"/>
+ <anchor x="-330" y="1100" name="_U"/>
+ <outline>
+ <contour>
+ <point x="88" y="1188" type="line"/>
+ <point x="-123" y="1584" type="line"/>
+ <point x="-423" y="1584" type="line"/>
+ <point x="-791" y="1188" type="line"/>
+ <point x="-551" y="1188" type="line"/>
+ <point x="-294" y="1416" type="line"/>
+ <point x="-151" y="1188" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetkeys.ufo/glyphs/C_ombD_iaer.glif b/tests/reference/ufo/psfsetkeys.ufo/glyphs/C_ombD_iaer.glif
new file mode 100644
index 0000000..490587d
--- /dev/null
+++ b/tests/reference/ufo/psfsetkeys.ufo/glyphs/C_ombD_iaer.glif
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="CombDiaer" format="2">
+ <unicode hex="0308"/>
+ <anchor x="-243" y="1585" name="U"/>
+ <anchor x="-365" y="1100" name="_U"/>
+ <outline>
+ <contour>
+ <point x="-233" y="1338" type="curve" smooth="yes"/>
+ <point x="-233" y="1256"/>
+ <point x="-172" y="1198"/>
+ <point x="-86" y="1198" type="curve" smooth="yes"/>
+ <point x="32" y="1198"/>
+ <point x="126" y="1294"/>
+ <point x="126" y="1404" type="curve" smooth="yes"/>
+ <point x="126" y="1484"/>
+ <point x="66" y="1544"/>
+ <point x="-21" y="1544" type="curve" smooth="yes"/>
+ <point x="-139" y="1544"/>
+ <point x="-233" y="1447"/>
+ </contour>
+ <contour>
+ <point x="-723" y="1338" type="curve" smooth="yes"/>
+ <point x="-723" y="1256"/>
+ <point x="-662" y="1198"/>
+ <point x="-576" y="1198" type="curve" smooth="yes"/>
+ <point x="-457" y="1198"/>
+ <point x="-363" y="1293"/>
+ <point x="-363" y="1404" type="curve" smooth="yes"/>
+ <point x="-363" y="1484"/>
+ <point x="-423" y="1544"/>
+ <point x="-510" y="1544" type="curve" smooth="yes"/>
+ <point x="-628" y="1544"/>
+ <point x="-723" y="1448"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetkeys.ufo/glyphs/C_ombG_rave.glif b/tests/reference/ufo/psfsetkeys.ufo/glyphs/C_ombG_rave.glif
new file mode 100644
index 0000000..49617c2
--- /dev/null
+++ b/tests/reference/ufo/psfsetkeys.ufo/glyphs/C_ombG_rave.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="CombGrave" format="2">
+ <unicode hex="0300"/>
+ <anchor x="-241" y="1635" name="U"/>
+ <anchor x="-415" y="1100" name="_U"/>
+ <outline>
+ <contour>
+ <point x="-725" y="1584" type="line"/>
+ <point x="-403" y="1188" type="line"/>
+ <point x="-173" y="1188" type="line"/>
+ <point x="-395" y="1584" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetkeys.ufo/glyphs/C_ombR_ingA_bv.glif b/tests/reference/ufo/psfsetkeys.ufo/glyphs/C_ombR_ingA_bv.glif
new file mode 100644
index 0000000..27f9832
--- /dev/null
+++ b/tests/reference/ufo/psfsetkeys.ufo/glyphs/C_ombR_ingA_bv.glif
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="CombRingAbv" format="2">
+ <unicode hex="030A"/>
+ <anchor x="-221" y="1635" name="U"/>
+ <anchor x="-357" y="1100" name="_U"/>
+ <outline>
+ <contour>
+ <point x="-358" y="1292" type="curve" smooth="yes"/>
+ <point x="-406" y="1292"/>
+ <point x="-442" y="1330"/>
+ <point x="-442" y="1375" type="curve" smooth="yes"/>
+ <point x="-442" y="1440"/>
+ <point x="-385" y="1480"/>
+ <point x="-331" y="1480" type="curve" smooth="yes"/>
+ <point x="-283" y="1480"/>
+ <point x="-247" y="1443"/>
+ <point x="-247" y="1398" type="curve" smooth="yes"/>
+ <point x="-247" y="1335"/>
+ <point x="-301" y="1292"/>
+ </contour>
+ <contour>
+ <point x="-598" y="1348" type="curve" smooth="yes"/>
+ <point x="-598" y="1238"/>
+ <point x="-504" y="1148"/>
+ <point x="-384" y="1148" type="curve" smooth="yes"/>
+ <point x="-223" y="1148"/>
+ <point x="-92" y="1271"/>
+ <point x="-92" y="1424" type="curve" smooth="yes"/>
+ <point x="-92" y="1534"/>
+ <point x="-186" y="1624"/>
+ <point x="-306" y="1624" type="curve" smooth="yes"/>
+ <point x="-467" y="1624"/>
+ <point x="-598" y="1501"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetkeys.ufo/glyphs/C_ombT_ilde.glif b/tests/reference/ufo/psfsetkeys.ufo/glyphs/C_ombT_ilde.glif
new file mode 100644
index 0000000..1aa1b62
--- /dev/null
+++ b/tests/reference/ufo/psfsetkeys.ufo/glyphs/C_ombT_ilde.glif
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="CombTilde" format="2">
+ <unicode hex="0303"/>
+ <anchor x="-355" y="1490" name="U"/>
+ <anchor x="-390" y="1100" name="_U"/>
+ <outline>
+ <contour>
+ <point x="-687" y="1178" type="line"/>
+ <point x="-673" y="1232"/>
+ <point x="-628" y="1271"/>
+ <point x="-584" y="1271" type="curve" smooth="yes"/>
+ <point x="-546" y="1271"/>
+ <point x="-498" y="1247"/>
+ <point x="-437" y="1217" type="curve" smooth="yes"/>
+ <point x="-375" y="1187"/>
+ <point x="-327" y="1168"/>
+ <point x="-265" y="1168" type="curve" smooth="yes"/>
+ <point x="-129" y="1168"/>
+ <point x="-13" y="1294"/>
+ <point x="30" y="1465" type="curve"/>
+ <point x="-125" y="1465" type="line"/>
+ <point x="-138" y="1415"/>
+ <point x="-190" y="1373"/>
+ <point x="-235" y="1373" type="curve" smooth="yes"/>
+ <point x="-272" y="1373"/>
+ <point x="-306" y="1399"/>
+ <point x="-366" y="1423" type="curve" smooth="yes"/>
+ <point x="-438" y="1452"/>
+ <point x="-498" y="1475"/>
+ <point x="-563" y="1475" type="curve" smooth="yes"/>
+ <point x="-695" y="1475"/>
+ <point x="-802" y="1336"/>
+ <point x="-842" y="1178" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetkeys.ufo/glyphs/C_omma.glif b/tests/reference/ufo/psfsetkeys.ufo/glyphs/C_omma.glif
new file mode 100644
index 0000000..4105316
--- /dev/null
+++ b/tests/reference/ufo/psfsetkeys.ufo/glyphs/C_omma.glif
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Comma" format="2">
+ <advance width="645"/>
+ <unicode hex="002C"/>
+ <outline>
+ <contour>
+ <point x="137" y="49" type="line"/>
+ <point x="297" y="49" type="line"/>
+ <point x="276" y="-34"/>
+ <point x="192" y="-151"/>
+ <point x="59" y="-262" type="curve"/>
+ <point x="187" y="-332" type="line"/>
+ <point x="337" y="-222"/>
+ <point x="539" y="-11"/>
+ <point x="539" y="165" type="curve" smooth="yes"/>
+ <point x="539" y="262"/>
+ <point x="495" y="337"/>
+ <point x="379" y="337" type="curve" smooth="yes"/>
+ <point x="266" y="337"/>
+ <point x="187" y="252"/>
+ <point x="169" y="178" type="curve" smooth="yes"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetkeys.ufo/glyphs/D_igitE_ight.glif b/tests/reference/ufo/psfsetkeys.ufo/glyphs/D_igitE_ight.glif
new file mode 100644
index 0000000..9272dc9
--- /dev/null
+++ b/tests/reference/ufo/psfsetkeys.ufo/glyphs/D_igitE_ight.glif
@@ -0,0 +1,63 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitEight" format="2">
+ <advance width="1180"/>
+ <unicode hex="0038"/>
+ <anchor x="515" y="-100" name="L"/>
+ <anchor x="922" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="543" y="-25" type="curve" smooth="yes"/>
+ <point x="860" y="-25"/>
+ <point x="1182" y="176"/>
+ <point x="1182" y="498" type="curve" smooth="yes"/>
+ <point x="1182" y="642"/>
+ <point x="1090" y="742"/>
+ <point x="1011" y="787" type="curve"/>
+ <point x="1159" y="866"/>
+ <point x="1279" y="994"/>
+ <point x="1279" y="1163" type="curve" smooth="yes"/>
+ <point x="1279" y="1342"/>
+ <point x="1123" y="1470"/>
+ <point x="906" y="1470" type="curve" smooth="yes"/>
+ <point x="632" y="1470"/>
+ <point x="349" y="1310"/>
+ <point x="349" y="1028" type="curve" smooth="yes"/>
+ <point x="349" y="904"/>
+ <point x="412" y="821"/>
+ <point x="466" y="787" type="curve"/>
+ <point x="270" y="703"/>
+ <point x="108" y="563"/>
+ <point x="108" y="341" type="curve" smooth="yes"/>
+ <point x="108" y="123"/>
+ <point x="301" y="-25"/>
+ </contour>
+ <contour>
+ <point x="760" y="886" type="curve" smooth="yes"/>
+ <point x="651" y="886"/>
+ <point x="593" y="939"/>
+ <point x="593" y="1038" type="curve" smooth="yes"/>
+ <point x="593" y="1175"/>
+ <point x="721" y="1277"/>
+ <point x="858" y="1277" type="curve" smooth="yes"/>
+ <point x="976" y="1277"/>
+ <point x="1028" y="1221"/>
+ <point x="1028" y="1127" type="curve" smooth="yes"/>
+ <point x="1028" y="993"/>
+ <point x="898" y="886"/>
+ </contour>
+ <contour>
+ <point x="595" y="183" type="curve" smooth="yes"/>
+ <point x="458" y="183"/>
+ <point x="375" y="267"/>
+ <point x="375" y="384" type="curve" smooth="yes"/>
+ <point x="375" y="549"/>
+ <point x="549" y="673"/>
+ <point x="707" y="673" type="curve" smooth="yes"/>
+ <point x="833" y="673"/>
+ <point x="920" y="602"/>
+ <point x="920" y="477" type="curve" smooth="yes"/>
+ <point x="920" y="317"/>
+ <point x="759" y="183"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetkeys.ufo/glyphs/D_igitF_ive.glif b/tests/reference/ufo/psfsetkeys.ufo/glyphs/D_igitF_ive.glif
new file mode 100644
index 0000000..1c4dd99
--- /dev/null
+++ b/tests/reference/ufo/psfsetkeys.ufo/glyphs/D_igitF_ive.glif
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitFive" format="2">
+ <advance width="1180"/>
+ <unicode hex="0035"/>
+ <anchor x="515" y="-100" name="L"/>
+ <anchor x="922" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1330" y="1445" type="line"/>
+ <point x="475" y="1445" type="line"/>
+ <point x="274" y="639" type="line"/>
+ <point x="410" y="686"/>
+ <point x="519" y="703"/>
+ <point x="625" y="703" type="curve" smooth="yes"/>
+ <point x="763" y="703"/>
+ <point x="867" y="630"/>
+ <point x="867" y="507" type="curve" smooth="yes"/>
+ <point x="867" y="318"/>
+ <point x="680" y="213"/>
+ <point x="503" y="213" type="curve" smooth="yes"/>
+ <point x="363" y="213"/>
+ <point x="255" y="260"/>
+ <point x="168" y="356" type="curve"/>
+ <point x="59" y="79" type="line"/>
+ <point x="165" y="2"/>
+ <point x="308" y="-25"/>
+ <point x="483" y="-25" type="curve" smooth="yes"/>
+ <point x="841" y="-25"/>
+ <point x="1155" y="204"/>
+ <point x="1155" y="564" type="curve" smooth="yes"/>
+ <point x="1155" y="774"/>
+ <point x="1007" y="921"/>
+ <point x="774" y="921" type="curve" smooth="yes"/>
+ <point x="712" y="921"/>
+ <point x="632" y="902"/>
+ <point x="595" y="886" type="curve"/>
+ <point x="674" y="1203" type="line"/>
+ <point x="1004" y="1203" type="line" smooth="yes"/>
+ <point x="1088" y="1203"/>
+ <point x="1193" y="1199"/>
+ <point x="1264" y="1183" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetkeys.ufo/glyphs/D_igitF_our.glif b/tests/reference/ufo/psfsetkeys.ufo/glyphs/D_igitF_our.glif
new file mode 100644
index 0000000..617709f
--- /dev/null
+++ b/tests/reference/ufo/psfsetkeys.ufo/glyphs/D_igitF_our.glif
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitFour" format="2">
+ <advance width="1180"/>
+ <unicode hex="0034"/>
+ <anchor x="522" y="-100" name="L"/>
+ <anchor x="929" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1180" y="342" type="line"/>
+ <point x="1235" y="564" type="line"/>
+ <point x="1075" y="564" type="line"/>
+ <point x="1295" y="1445" type="line"/>
+ <point x="945" y="1445" type="line"/>
+ <point x="120" y="564" type="line"/>
+ <point x="65" y="342" type="line"/>
+ <point x="755" y="342" type="line"/>
+ <point x="670" y="0" type="line"/>
+ <point x="935" y="0" type="line"/>
+ <point x="1020" y="342" type="line"/>
+ </contour>
+ <contour>
+ <point x="954" y="1143" type="line"/>
+ <point x="810" y="564" type="line"/>
+ <point x="385" y="564" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetkeys.ufo/glyphs/D_igitN_ine.glif b/tests/reference/ufo/psfsetkeys.ufo/glyphs/D_igitN_ine.glif
new file mode 100644
index 0000000..85e36a0
--- /dev/null
+++ b/tests/reference/ufo/psfsetkeys.ufo/glyphs/D_igitN_ine.glif
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitNine" format="2">
+ <advance width="1180"/>
+ <unicode hex="0039"/>
+ <anchor x="515" y="-100" name="L"/>
+ <anchor x="922" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="119" y="84" type="line"/>
+ <point x="199" y="25"/>
+ <point x="327" y="-25"/>
+ <point x="455" y="-25" type="curve" smooth="yes"/>
+ <point x="979" y="-25"/>
+ <point x="1289" y="533"/>
+ <point x="1289" y="979" type="curve" smooth="yes"/>
+ <point x="1289" y="1248"/>
+ <point x="1164" y="1470"/>
+ <point x="833" y="1470" type="curve" smooth="yes"/>
+ <point x="554" y="1470"/>
+ <point x="255" y="1239"/>
+ <point x="255" y="932" type="curve" smooth="yes"/>
+ <point x="255" y="736"/>
+ <point x="399" y="570"/>
+ <point x="644" y="570" type="curve" smooth="yes"/>
+ <point x="833" y="570"/>
+ <point x="1027" y="700"/>
+ <point x="1164" y="859" type="curve"/>
+ <point x="1123" y="981" type="line"/>
+ <point x="1021" y="868"/>
+ <point x="863" y="782"/>
+ <point x="728" y="782" type="curve" smooth="yes"/>
+ <point x="589" y="782"/>
+ <point x="519" y="845"/>
+ <point x="519" y="955" type="curve" smooth="yes"/>
+ <point x="519" y="1133"/>
+ <point x="653" y="1237"/>
+ <point x="801" y="1237" type="curve" smooth="yes"/>
+ <point x="951" y="1237"/>
+ <point x="1029" y="1136"/>
+ <point x="1029" y="965" type="curve" smooth="yes"/>
+ <point x="1029" y="476"/>
+ <point x="710" y="208"/>
+ <point x="513" y="208" type="curve" smooth="yes"/>
+ <point x="417" y="208"/>
+ <point x="301" y="252"/>
+ <point x="237" y="337" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetkeys.ufo/glyphs/D_igitO_ne.glif b/tests/reference/ufo/psfsetkeys.ufo/glyphs/D_igitO_ne.glif
new file mode 100644
index 0000000..df3633d
--- /dev/null
+++ b/tests/reference/ufo/psfsetkeys.ufo/glyphs/D_igitO_ne.glif
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitOne" format="2">
+ <advance width="1180"/>
+ <unicode hex="0031"/>
+ <anchor x="515" y="-100" name="L"/>
+ <anchor x="922" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="490" y="233" type="line"/>
+ <point x="183" y="233" type="line"/>
+ <point x="125" y="0" type="line"/>
+ <point x="1015" y="0" type="line"/>
+ <point x="1073" y="233" type="line"/>
+ <point x="765" y="233" type="line"/>
+ <point x="1067" y="1445" type="line"/>
+ <point x="792" y="1445" type="line"/>
+ <point x="432" y="1265" type="line"/>
+ <point x="403" y="1008" type="line"/>
+ <point x="720" y="1158" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetkeys.ufo/glyphs/D_igitS_even.glif b/tests/reference/ufo/psfsetkeys.ufo/glyphs/D_igitS_even.glif
new file mode 100644
index 0000000..23ac13b
--- /dev/null
+++ b/tests/reference/ufo/psfsetkeys.ufo/glyphs/D_igitS_even.glif
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitSeven" format="2">
+ <advance width="1180"/>
+ <unicode hex="0037"/>
+ <anchor x="515" y="-100" name="L"/>
+ <anchor x="922" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="480" y="0" type="line"/>
+ <point x="722" y="454"/>
+ <point x="1004" y="846"/>
+ <point x="1400" y="1247" type="curve"/>
+ <point x="1450" y="1445" type="line"/>
+ <point x="390" y="1445" type="line"/>
+ <point x="324" y="1178" type="line"/>
+ <point x="404" y="1194"/>
+ <point x="521" y="1198"/>
+ <point x="709" y="1198" type="curve" smooth="yes"/>
+ <point x="1039" y="1198" type="line"/>
+ <point x="689" y="829"/>
+ <point x="488" y="560"/>
+ <point x="175" y="0" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetkeys.ufo/glyphs/D_igitS_ix.glif b/tests/reference/ufo/psfsetkeys.ufo/glyphs/D_igitS_ix.glif
new file mode 100644
index 0000000..5fad278
--- /dev/null
+++ b/tests/reference/ufo/psfsetkeys.ufo/glyphs/D_igitS_ix.glif
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitSix" format="2">
+ <advance width="1180"/>
+ <unicode hex="0036"/>
+ <anchor x="525" y="-100" name="L"/>
+ <anchor x="932" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1347" y="1371" type="line"/>
+ <point x="1260" y="1440"/>
+ <point x="1149" y="1470"/>
+ <point x="1011" y="1470" type="curve" smooth="yes"/>
+ <point x="493" y="1470"/>
+ <point x="181" y="971"/>
+ <point x="181" y="500" type="curve" smooth="yes"/>
+ <point x="181" y="188"/>
+ <point x="368" y="-25"/>
+ <point x="635" y="-25" type="curve" smooth="yes"/>
+ <point x="954" y="-25"/>
+ <point x="1207" y="192"/>
+ <point x="1207" y="498" type="curve" smooth="yes"/>
+ <point x="1207" y="714"/>
+ <point x="1058" y="916"/>
+ <point x="813" y="916" type="curve" smooth="yes"/>
+ <point x="622" y="916"/>
+ <point x="477" y="802"/>
+ <point x="326" y="648" type="curve"/>
+ <point x="363" y="525" type="line"/>
+ <point x="470" y="637"/>
+ <point x="595" y="703"/>
+ <point x="750" y="703" type="curve" smooth="yes"/>
+ <point x="882" y="703"/>
+ <point x="954" y="586"/>
+ <point x="954" y="466" type="curve" smooth="yes"/>
+ <point x="954" y="325"/>
+ <point x="828" y="208"/>
+ <point x="677" y="208" type="curve" smooth="yes"/>
+ <point x="526" y="208"/>
+ <point x="447" y="350"/>
+ <point x="447" y="533" type="curve" smooth="yes"/>
+ <point x="447" y="978"/>
+ <point x="738" y="1237"/>
+ <point x="953" y="1237" type="curve" smooth="yes"/>
+ <point x="1049" y="1237"/>
+ <point x="1155" y="1204"/>
+ <point x="1220" y="1119" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetkeys.ufo/glyphs/D_igitT_hree.glif b/tests/reference/ufo/psfsetkeys.ufo/glyphs/D_igitT_hree.glif
new file mode 100644
index 0000000..5be951b
--- /dev/null
+++ b/tests/reference/ufo/psfsetkeys.ufo/glyphs/D_igitT_hree.glif
@@ -0,0 +1,52 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitThree" format="2">
+ <advance width="1180"/>
+ <unicode hex="0033"/>
+ <anchor x="515" y="-100" name="L"/>
+ <anchor x="922" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="548" y="876" type="line"/>
+ <point x="489" y="639" type="line"/>
+ <point x="579" y="639" type="line" smooth="yes"/>
+ <point x="778" y="639"/>
+ <point x="880" y="555"/>
+ <point x="880" y="452" type="curve" smooth="yes"/>
+ <point x="880" y="295"/>
+ <point x="726" y="208"/>
+ <point x="576" y="208" type="curve" smooth="yes"/>
+ <point x="386" y="208"/>
+ <point x="253" y="279"/>
+ <point x="174" y="401" type="curve"/>
+ <point x="72" y="129" type="line"/>
+ <point x="162" y="32"/>
+ <point x="321" y="-25"/>
+ <point x="518" y="-25" type="curve" smooth="yes"/>
+ <point x="867" y="-25"/>
+ <point x="1163" y="169"/>
+ <point x="1163" y="471" type="curve" smooth="yes"/>
+ <point x="1163" y="644"/>
+ <point x="999" y="751"/>
+ <point x="882" y="772" type="curve"/>
+ <point x="1076" y="817"/>
+ <point x="1296" y="963"/>
+ <point x="1296" y="1172" type="curve" smooth="yes"/>
+ <point x="1296" y="1348"/>
+ <point x="1112" y="1470"/>
+ <point x="856" y="1470" type="curve" smooth="yes"/>
+ <point x="689" y="1470"/>
+ <point x="529" y="1402"/>
+ <point x="427" y="1312" type="curve"/>
+ <point x="405" y="1084" type="line"/>
+ <point x="546" y="1199"/>
+ <point x="664" y="1237"/>
+ <point x="818" y="1237" type="curve" smooth="yes"/>
+ <point x="928" y="1237"/>
+ <point x="1001" y="1178"/>
+ <point x="1001" y="1100" type="curve" smooth="yes"/>
+ <point x="1001" y="975"/>
+ <point x="819" y="876"/>
+ <point x="638" y="876" type="curve" smooth="yes"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetkeys.ufo/glyphs/D_igitT_wo.glif b/tests/reference/ufo/psfsetkeys.ufo/glyphs/D_igitT_wo.glif
new file mode 100644
index 0000000..001d438
--- /dev/null
+++ b/tests/reference/ufo/psfsetkeys.ufo/glyphs/D_igitT_wo.glif
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitTwo" format="2">
+ <advance width="1180"/>
+ <unicode hex="0032"/>
+ <anchor x="515" y="-100" name="L"/>
+ <anchor x="882" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1094" y="257" type="line"/>
+ <point x="1010" y="244"/>
+ <point x="942" y="243"/>
+ <point x="745" y="243" type="curve" smooth="yes"/>
+ <point x="480" y="243" type="line"/>
+ <point x="875" y="492"/>
+ <point x="1255" y="786"/>
+ <point x="1255" y="1125" type="curve" smooth="yes"/>
+ <point x="1255" y="1324"/>
+ <point x="1106" y="1470"/>
+ <point x="846" y="1470" type="curve" smooth="yes"/>
+ <point x="667" y="1470"/>
+ <point x="472" y="1388"/>
+ <point x="363" y="1277" type="curve"/>
+ <point x="374" y="1039" type="line"/>
+ <point x="489" y="1146"/>
+ <point x="646" y="1223"/>
+ <point x="762" y="1223" type="curve" smooth="yes"/>
+ <point x="890" y="1223"/>
+ <point x="949" y="1138"/>
+ <point x="949" y="1040" type="curve" smooth="yes"/>
+ <point x="949" y="805"/>
+ <point x="500" y="440"/>
+ <point x="104" y="218" type="curve"/>
+ <point x="50" y="0" type="line"/>
+ <point x="1030" y="0" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetkeys.ufo/glyphs/D_igitZ_ero.glif b/tests/reference/ufo/psfsetkeys.ufo/glyphs/D_igitZ_ero.glif
new file mode 100644
index 0000000..895a8e4
--- /dev/null
+++ b/tests/reference/ufo/psfsetkeys.ufo/glyphs/D_igitZ_ero.glif
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitZero" format="2">
+ <advance width="1180"/>
+ <unicode hex="0030"/>
+ <anchor x="520" y="-100" name="L"/>
+ <anchor x="927" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="959" y="683" type="curve" smooth="yes"/>
+ <point x="873" y="339"/>
+ <point x="762" y="203"/>
+ <point x="600" y="203" type="curve" smooth="yes"/>
+ <point x="469" y="203"/>
+ <point x="432" y="294"/>
+ <point x="432" y="454" type="curve" smooth="yes"/>
+ <point x="432" y="537"/>
+ <point x="447" y="630"/>
+ <point x="478" y="755" type="curve" smooth="yes"/>
+ <point x="564" y="1099"/>
+ <point x="676" y="1242"/>
+ <point x="839" y="1242" type="curve" smooth="yes"/>
+ <point x="971" y="1242"/>
+ <point x="1010" y="1140"/>
+ <point x="1010" y="992" type="curve" smooth="yes"/>
+ <point x="1010" y="907"/>
+ <point x="991" y="811"/>
+ </contour>
+ <contour>
+ <point x="1246" y="689" type="curve" smooth="yes"/>
+ <point x="1281" y="828"/>
+ <point x="1298" y="927"/>
+ <point x="1298" y="1028" type="curve" smooth="yes"/>
+ <point x="1298" y="1317"/>
+ <point x="1158" y="1470"/>
+ <point x="906" y="1470" type="curve" smooth="yes"/>
+ <point x="587" y="1470"/>
+ <point x="329" y="1302"/>
+ <point x="190" y="745" type="curve" smooth="yes"/>
+ <point x="157" y="611"/>
+ <point x="141" y="516"/>
+ <point x="141" y="420" type="curve" smooth="yes"/>
+ <point x="141" y="131"/>
+ <point x="292" y="-25"/>
+ <point x="533" y="-25" type="curve" smooth="yes"/>
+ <point x="854" y="-25"/>
+ <point x="1103" y="115"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetkeys.ufo/glyphs/D_ollarS_gn.glif b/tests/reference/ufo/psfsetkeys.ufo/glyphs/D_ollarS_gn.glif
new file mode 100644
index 0000000..0b8bdfc
--- /dev/null
+++ b/tests/reference/ufo/psfsetkeys.ufo/glyphs/D_ollarS_gn.glif
@@ -0,0 +1,57 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DollarSgn" format="2">
+ <advance width="1180"/>
+ <unicode hex="0024"/>
+ <outline>
+ <contour>
+ <point x="879" y="1584" type="line"/>
+ <point x="679" y="780" type="line"/>
+ <point x="634" y="719" type="line"/>
+ <point x="400" y="-218" type="line"/>
+ <point x="576" y="-218" type="line"/>
+ <point x="795" y="661" type="line"/>
+ <point x="842" y="727" type="line"/>
+ <point x="1055" y="1584" type="line"/>
+ </contour>
+ <contour>
+ <point x="1250" y="1303" type="line"/>
+ <point x="1145" y="1355"/>
+ <point x="1026" y="1375"/>
+ <point x="885" y="1375" type="curve" smooth="yes"/>
+ <point x="537" y="1375"/>
+ <point x="345" y="1216"/>
+ <point x="345" y="984" type="curve" smooth="yes"/>
+ <point x="345" y="841"/>
+ <point x="441" y="726"/>
+ <point x="638" y="622" type="curve" smooth="yes"/>
+ <point x="832" y="519"/>
+ <point x="881" y="451"/>
+ <point x="881" y="381" type="curve" smooth="yes"/>
+ <point x="881" y="274"/>
+ <point x="817" y="209"/>
+ <point x="613" y="209" type="curve" smooth="yes"/>
+ <point x="462" y="209"/>
+ <point x="336" y="298"/>
+ <point x="259" y="389" type="curve"/>
+ <point x="133" y="143" type="line"/>
+ <point x="243" y="56"/>
+ <point x="378" y="0"/>
+ <point x="566" y="0" type="curve" smooth="yes"/>
+ <point x="879" y="0"/>
+ <point x="1120" y="142"/>
+ <point x="1120" y="396" type="curve" smooth="yes"/>
+ <point x="1120" y="562"/>
+ <point x="1028" y="682"/>
+ <point x="817" y="803" type="curve" smooth="yes"/>
+ <point x="635" y="908"/>
+ <point x="592" y="958"/>
+ <point x="592" y="1016" type="curve" smooth="yes"/>
+ <point x="592" y="1113"/>
+ <point x="649" y="1176"/>
+ <point x="826" y="1176" type="curve" smooth="yes"/>
+ <point x="954" y="1176"/>
+ <point x="1048" y="1135"/>
+ <point x="1134" y="1066" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetkeys.ufo/glyphs/D_ottedC_irc.glif b/tests/reference/ufo/psfsetkeys.ufo/glyphs/D_ottedC_irc.glif
new file mode 100644
index 0000000..f7581b6
--- /dev/null
+++ b/tests/reference/ufo/psfsetkeys.ufo/glyphs/D_ottedC_irc.glif
@@ -0,0 +1,235 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DottedCirc" format="2">
+ <advance width="1086"/>
+ <unicode hex="25CC"/>
+ <anchor x="493" y="0" name="H"/>
+ <anchor x="545" y="-100" name="L"/>
+ <anchor x="750" y="0" name="O"/>
+ <anchor x="645" y="1000" name="U"/>
+ <outline>
+ <contour>
+ <point x="443" y="837" type="curve" smooth="yes"/>
+ <point x="443" y="864"/>
+ <point x="423" y="885"/>
+ <point x="398" y="885" type="curve" smooth="yes"/>
+ <point x="371" y="885"/>
+ <point x="348" y="861"/>
+ <point x="348" y="837" type="curve" smooth="yes"/>
+ <point x="348" y="809"/>
+ <point x="372" y="789"/>
+ <point x="398" y="789" type="curve" smooth="yes"/>
+ <point x="425" y="789"/>
+ <point x="443" y="812"/>
+ </contour>
+ <contour>
+ <point x="758" y="79" type="curve" smooth="yes"/>
+ <point x="758" y="106"/>
+ <point x="736" y="127"/>
+ <point x="710" y="127" type="curve" smooth="yes"/>
+ <point x="685" y="127"/>
+ <point x="662" y="103"/>
+ <point x="662" y="80" type="curve" smooth="yes"/>
+ <point x="662" y="52"/>
+ <point x="686" y="31"/>
+ <point x="710" y="31" type="curve" smooth="yes"/>
+ <point x="737" y="31"/>
+ <point x="758" y="55"/>
+ </contour>
+ <contour>
+ <point x="310" y="749" type="curve" smooth="yes"/>
+ <point x="310" y="775"/>
+ <point x="288" y="796"/>
+ <point x="263" y="796" type="curve" smooth="yes"/>
+ <point x="238" y="796"/>
+ <point x="215" y="774"/>
+ <point x="215" y="747" type="curve" smooth="yes"/>
+ <point x="215" y="722"/>
+ <point x="236" y="701"/>
+ <point x="263" y="701" type="curve" smooth="yes"/>
+ <point x="291" y="701"/>
+ <point x="310" y="720"/>
+ </contour>
+ <contour>
+ <point x="891" y="168" type="curve" smooth="yes"/>
+ <point x="891" y="197"/>
+ <point x="870" y="215"/>
+ <point x="843" y="215" type="curve" smooth="yes"/>
+ <point x="817" y="215"/>
+ <point x="795" y="194"/>
+ <point x="795" y="168" type="curve" smooth="yes"/>
+ <point x="795" y="143"/>
+ <point x="816" y="121"/>
+ <point x="843" y="121" type="curve" smooth="yes"/>
+ <point x="871" y="121"/>
+ <point x="891" y="143"/>
+ </contour>
+ <contour>
+ <point x="222" y="613" type="curve" smooth="yes"/>
+ <point x="222" y="640"/>
+ <point x="199" y="663"/>
+ <point x="173" y="663" type="curve" smooth="yes"/>
+ <point x="149" y="663"/>
+ <point x="126" y="642"/>
+ <point x="126" y="615" type="curve" smooth="yes"/>
+ <point x="126" y="591"/>
+ <point x="145" y="567"/>
+ <point x="173" y="567" type="curve" smooth="yes"/>
+ <point x="197" y="567"/>
+ <point x="222" y="587"/>
+ </contour>
+ <contour>
+ <point x="980" y="301" type="curve" smooth="yes"/>
+ <point x="980" y="327"/>
+ <point x="957" y="348"/>
+ <point x="932" y="348" type="curve" smooth="yes"/>
+ <point x="908" y="348"/>
+ <point x="884" y="332"/>
+ <point x="884" y="301" type="curve" smooth="yes"/>
+ <point x="884" y="277"/>
+ <point x="902" y="254"/>
+ <point x="932" y="254" type="curve" smooth="yes"/>
+ <point x="957" y="254"/>
+ <point x="980" y="274"/>
+ </contour>
+ <contour>
+ <point x="191" y="459" type="curve" smooth="yes"/>
+ <point x="191" y="484"/>
+ <point x="168" y="505"/>
+ <point x="143" y="505" type="curve" smooth="yes"/>
+ <point x="116" y="505"/>
+ <point x="95" y="484"/>
+ <point x="95" y="458" type="curve" smooth="yes"/>
+ <point x="95" y="433"/>
+ <point x="115" y="410"/>
+ <point x="143" y="410" type="curve" smooth="yes"/>
+ <point x="167" y="410"/>
+ <point x="191" y="432"/>
+ </contour>
+ <contour>
+ <point x="1011" y="458" type="curve" smooth="yes"/>
+ <point x="1011" y="484"/>
+ <point x="990" y="506"/>
+ <point x="964" y="506" type="curve" smooth="yes"/>
+ <point x="940" y="506"/>
+ <point x="915" y="484"/>
+ <point x="915" y="457" type="curve" smooth="yes"/>
+ <point x="915" y="433"/>
+ <point x="936" y="411"/>
+ <point x="964" y="411" type="curve" smooth="yes"/>
+ <point x="990" y="411"/>
+ <point x="1011" y="433"/>
+ </contour>
+ <contour>
+ <point x="222" y="302" type="curve" smooth="yes"/>
+ <point x="222" y="328"/>
+ <point x="200" y="348"/>
+ <point x="174" y="348" type="curve" smooth="yes"/>
+ <point x="147" y="348"/>
+ <point x="126" y="326"/>
+ <point x="126" y="302" type="curve" smooth="yes"/>
+ <point x="126" y="275"/>
+ <point x="149" y="253"/>
+ <point x="174" y="253" type="curve" smooth="yes"/>
+ <point x="201" y="253"/>
+ <point x="222" y="277"/>
+ </contour>
+ <contour>
+ <point x="980" y="615" type="curve" smooth="yes"/>
+ <point x="980" y="642"/>
+ <point x="955" y="663"/>
+ <point x="931" y="663" type="curve" smooth="yes"/>
+ <point x="904" y="663"/>
+ <point x="885" y="638"/>
+ <point x="885" y="614" type="curve" smooth="yes"/>
+ <point x="885" y="588"/>
+ <point x="907" y="567"/>
+ <point x="931" y="567" type="curve" smooth="yes"/>
+ <point x="959" y="567"/>
+ <point x="980" y="591"/>
+ </contour>
+ <contour>
+ <point x="310" y="168" type="curve" smooth="yes"/>
+ <point x="310" y="195"/>
+ <point x="291" y="215"/>
+ <point x="263" y="215" type="curve" smooth="yes"/>
+ <point x="238" y="215"/>
+ <point x="215" y="190"/>
+ <point x="215" y="168" type="curve" smooth="yes"/>
+ <point x="215" y="143"/>
+ <point x="238" y="120"/>
+ <point x="263" y="120" type="curve" smooth="yes"/>
+ <point x="289" y="120"/>
+ <point x="310" y="143"/>
+ </contour>
+ <contour>
+ <point x="890" y="748" type="curve" smooth="yes"/>
+ <point x="890" y="774"/>
+ <point x="870" y="796"/>
+ <point x="843" y="796" type="curve" smooth="yes"/>
+ <point x="815" y="796"/>
+ <point x="796" y="773"/>
+ <point x="796" y="748" type="curve" smooth="yes"/>
+ <point x="796" y="724"/>
+ <point x="817" y="700"/>
+ <point x="843" y="700" type="curve" smooth="yes"/>
+ <point x="869" y="700"/>
+ <point x="890" y="722"/>
+ </contour>
+ <contour>
+ <point x="444" y="78" type="curve" smooth="yes"/>
+ <point x="444" y="102"/>
+ <point x="423" y="126"/>
+ <point x="396" y="126" type="curve" smooth="yes"/>
+ <point x="370" y="126"/>
+ <point x="348" y="102"/>
+ <point x="348" y="78" type="curve" smooth="yes"/>
+ <point x="348" y="55"/>
+ <point x="370" y="31"/>
+ <point x="396" y="31" type="curve" smooth="yes"/>
+ <point x="420" y="31"/>
+ <point x="444" y="51"/>
+ </contour>
+ <contour>
+ <point x="758" y="836" type="curve" smooth="yes"/>
+ <point x="758" y="861"/>
+ <point x="737" y="885"/>
+ <point x="710" y="885" type="curve" smooth="yes"/>
+ <point x="684" y="885"/>
+ <point x="663" y="862"/>
+ <point x="663" y="838" type="curve" smooth="yes"/>
+ <point x="663" y="814"/>
+ <point x="683" y="789"/>
+ <point x="710" y="789" type="curve" smooth="yes"/>
+ <point x="734" y="789"/>
+ <point x="758" y="809"/>
+ </contour>
+ <contour>
+ <point x="601" y="47" type="curve" smooth="yes"/>
+ <point x="601" y="73"/>
+ <point x="579" y="95"/>
+ <point x="553" y="95" type="curve" smooth="yes"/>
+ <point x="527" y="95"/>
+ <point x="506" y="73"/>
+ <point x="506" y="47" type="curve" smooth="yes"/>
+ <point x="506" y="21"/>
+ <point x="527" y="0"/>
+ <point x="553" y="0" type="curve" smooth="yes"/>
+ <point x="579" y="0"/>
+ <point x="601" y="21"/>
+ </contour>
+ <contour>
+ <point x="601" y="868" type="curve" smooth="yes"/>
+ <point x="601" y="894"/>
+ <point x="579" y="916"/>
+ <point x="553" y="916" type="curve" smooth="yes"/>
+ <point x="527" y="916"/>
+ <point x="506" y="894"/>
+ <point x="506" y="868" type="curve" smooth="yes"/>
+ <point x="506" y="842"/>
+ <point x="527" y="821"/>
+ <point x="553" y="821" type="curve" smooth="yes"/>
+ <point x="579" y="821"/>
+ <point x="601" y="842"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetkeys.ufo/glyphs/E_qS_gn.glif b/tests/reference/ufo/psfsetkeys.ufo/glyphs/E_qS_gn.glif
new file mode 100644
index 0000000..0461eab
--- /dev/null
+++ b/tests/reference/ufo/psfsetkeys.ufo/glyphs/E_qS_gn.glif
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="EqSgn" format="2">
+ <advance width="1180"/>
+ <unicode hex="003D"/>
+ <outline>
+ <contour>
+ <point x="168" y="436" type="line"/>
+ <point x="1128" y="436" type="line"/>
+ <point x="1180" y="643" type="line"/>
+ <point x="220" y="643" type="line"/>
+ </contour>
+ <contour>
+ <point x="259" y="802" type="line"/>
+ <point x="1219" y="802" type="line"/>
+ <point x="1271" y="1010" type="line"/>
+ <point x="311" y="1010" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetkeys.ufo/glyphs/E_xclamationM_rk.glif b/tests/reference/ufo/psfsetkeys.ufo/glyphs/E_xclamationM_rk.glif
new file mode 100644
index 0000000..167f45e
--- /dev/null
+++ b/tests/reference/ufo/psfsetkeys.ufo/glyphs/E_xclamationM_rk.glif
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="ExclamationMrk" format="2">
+ <advance width="760"/>
+ <unicode hex="0021"/>
+ <outline>
+ <contour>
+ <point x="593" y="495" type="line"/>
+ <point x="670" y="782"/>
+ <point x="736" y="1065"/>
+ <point x="882" y="1495" type="curve"/>
+ <point x="547" y="1495" type="line"/>
+ <point x="478" y="1065"/>
+ <point x="402" y="782"/>
+ <point x="338" y="495" type="curve"/>
+ </contour>
+ <contour>
+ <point x="201" y="116" type="curve" smooth="yes"/>
+ <point x="201" y="35"/>
+ <point x="262" y="-25"/>
+ <point x="348" y="-25" type="curve" smooth="yes"/>
+ <point x="466" y="-25"/>
+ <point x="561" y="71"/>
+ <point x="561" y="181" type="curve" smooth="yes"/>
+ <point x="561" y="261"/>
+ <point x="502" y="322"/>
+ <point x="415" y="322" type="curve" smooth="yes"/>
+ <point x="298" y="322"/>
+ <point x="201" y="226"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetkeys.ufo/glyphs/F_ullS_top.glif b/tests/reference/ufo/psfsetkeys.ufo/glyphs/F_ullS_top.glif
new file mode 100644
index 0000000..cfedcd4
--- /dev/null
+++ b/tests/reference/ufo/psfsetkeys.ufo/glyphs/F_ullS_top.glif
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="FullStop" format="2">
+ <advance width="690"/>
+ <unicode hex="002E"/>
+ <outline>
+ <contour>
+ <point x="171" y="116" type="curve" smooth="yes"/>
+ <point x="171" y="35"/>
+ <point x="232" y="-25"/>
+ <point x="318" y="-25" type="curve" smooth="yes"/>
+ <point x="436" y="-25"/>
+ <point x="531" y="71"/>
+ <point x="531" y="181" type="curve" smooth="yes"/>
+ <point x="531" y="261"/>
+ <point x="472" y="322"/>
+ <point x="385" y="322" type="curve" smooth="yes"/>
+ <point x="268" y="322"/>
+ <point x="171" y="226"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetkeys.ufo/glyphs/G_T_S_gn.glif b/tests/reference/ufo/psfsetkeys.ufo/glyphs/G_T_S_gn.glif
new file mode 100644
index 0000000..6dab866
--- /dev/null
+++ b/tests/reference/ufo/psfsetkeys.ufo/glyphs/G_T_S_gn.glif
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="GTSgn" format="2">
+ <advance width="1180"/>
+ <unicode hex="003E"/>
+ <outline>
+ <contour>
+ <point x="130" y="243" type="line"/>
+ <point x="1186" y="629" type="line"/>
+ <point x="1233" y="817" type="line"/>
+ <point x="369" y="1203" type="line"/>
+ <point x="313" y="975" type="line"/>
+ <point x="930" y="733" type="line"/>
+ <point x="187" y="470" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetkeys.ufo/glyphs/G_raveA_ccent.glif b/tests/reference/ufo/psfsetkeys.ufo/glyphs/G_raveA_ccent.glif
new file mode 100644
index 0000000..f745b6a
--- /dev/null
+++ b/tests/reference/ufo/psfsetkeys.ufo/glyphs/G_raveA_ccent.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="GraveAccent" format="2">
+ <advance width="620"/>
+ <unicode hex="0060"/>
+ <anchor x="848" y="1635" name="U"/>
+ <outline>
+ <contour>
+ <point x="265" y="1584" type="line"/>
+ <point x="587" y="1188" type="line"/>
+ <point x="817" y="1188" type="line"/>
+ <point x="595" y="1584" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetkeys.ufo/glyphs/H_yphen.glif b/tests/reference/ufo/psfsetkeys.ufo/glyphs/H_yphen.glif
new file mode 100644
index 0000000..810f855
--- /dev/null
+++ b/tests/reference/ufo/psfsetkeys.ufo/glyphs/H_yphen.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Hyphen" format="2">
+ <advance width="860"/>
+ <unicode hex="2010"/>
+ <anchor x="655" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="139" y="520" type="line"/>
+ <point x="879" y="520" type="line"/>
+ <point x="931" y="728" type="line"/>
+ <point x="191" y="728" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetkeys.ufo/glyphs/H_yphenM_inus.glif b/tests/reference/ufo/psfsetkeys.ufo/glyphs/H_yphenM_inus.glif
new file mode 100644
index 0000000..d8ce949
--- /dev/null
+++ b/tests/reference/ufo/psfsetkeys.ufo/glyphs/H_yphenM_inus.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="HyphenMinus" format="2">
+ <advance width="875"/>
+ <unicode hex="002D"/>
+ <anchor x="665" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="149" y="520" type="line"/>
+ <point x="884" y="520" type="line"/>
+ <point x="936" y="728" type="line"/>
+ <point x="201" y="728" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetkeys.ufo/glyphs/H_yphen_S_oft.glif b/tests/reference/ufo/psfsetkeys.ufo/glyphs/H_yphen_S_oft.glif
new file mode 100644
index 0000000..2f651fa
--- /dev/null
+++ b/tests/reference/ufo/psfsetkeys.ufo/glyphs/H_yphen_S_oft.glif
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Hyphen_Soft" format="2">
+ <advance width="875"/>
+ <unicode hex="00AD"/>
+ <anchor x="665" y="1100" name="U"/>
+ <outline>
+ <component base="HyphenMinus"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_T_S_gn.glif b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_T_S_gn.glif
new file mode 100644
index 0000000..b2883d3
--- /dev/null
+++ b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_T_S_gn.glif
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LTSgn" format="2">
+ <advance width="1180"/>
+ <unicode hex="003C"/>
+ <outline>
+ <contour>
+ <point x="1127" y="470" type="line"/>
+ <point x="510" y="713" type="line"/>
+ <point x="1253" y="975" type="line"/>
+ <point x="1309" y="1203" type="line"/>
+ <point x="253" y="817" type="line"/>
+ <point x="206" y="629" type="line"/>
+ <point x="1070" y="243" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_ftC_urlyB_rac.glif b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_ftC_urlyB_rac.glif
new file mode 100644
index 0000000..c92f889
--- /dev/null
+++ b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_ftC_urlyB_rac.glif
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LftCurlyBrac" format="2">
+ <advance width="1020"/>
+ <unicode hex="007B"/>
+ <outline>
+ <contour>
+ <point x="790" y="-177" type="line"/>
+ <point x="717" y="-149"/>
+ <point x="597" y="-129"/>
+ <point x="597" y="-79" type="curve" smooth="yes"/>
+ <point x="597" y="16"/>
+ <point x="695" y="378"/>
+ <point x="695" y="435" type="curve" smooth="yes"/>
+ <point x="695" y="476"/>
+ <point x="574" y="568"/>
+ <point x="574" y="605" type="curve" smooth="yes"/>
+ <point x="574" y="644"/>
+ <point x="742" y="733"/>
+ <point x="776" y="777" type="curve" smooth="yes"/>
+ <point x="803" y="812"/>
+ <point x="908" y="1276"/>
+ <point x="953" y="1317" type="curve" smooth="yes"/>
+ <point x="975" y="1337"/>
+ <point x="1090" y="1376"/>
+ <point x="1157" y="1395" type="curve"/>
+ <point x="1165" y="1624" type="line"/>
+ <point x="1031" y="1597"/>
+ <point x="827" y="1546"/>
+ <point x="768" y="1500" type="curve" smooth="yes"/>
+ <point x="677" y="1428"/>
+ <point x="542" y="843"/>
+ <point x="512" y="812" type="curve" smooth="yes"/>
+ <point x="472" y="770"/>
+ <point x="260" y="659"/>
+ <point x="260" y="601" type="curve" smooth="yes"/>
+ <point x="260" y="540"/>
+ <point x="412" y="434"/>
+ <point x="412" y="399" type="curve" smooth="yes"/>
+ <point x="412" y="337"/>
+ <point x="311" y="-52"/>
+ <point x="311" y="-216" type="curve" smooth="yes"/>
+ <point x="311" y="-248"/>
+ <point x="315" y="-271"/>
+ <point x="324" y="-282" type="curve" smooth="yes"/>
+ <point x="362" y="-330"/>
+ <point x="554" y="-379"/>
+ <point x="683" y="-406" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_ftP_aren.glif b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_ftP_aren.glif
new file mode 100644
index 0000000..42e4531
--- /dev/null
+++ b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_ftP_aren.glif
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LftParen" format="2">
+ <advance width="840"/>
+ <unicode hex="0028"/>
+ <outline>
+ <contour>
+ <point x="899" y="1624" type="line"/>
+ <point x="586" y="1430"/>
+ <point x="317" y="1081"/>
+ <point x="209" y="649" type="curve" smooth="yes"/>
+ <point x="177" y="521"/>
+ <point x="161" y="397"/>
+ <point x="161" y="277" type="curve" smooth="yes"/>
+ <point x="161" y="20"/>
+ <point x="234" y="-214"/>
+ <point x="373" y="-406" type="curve"/>
+ <point x="565" y="-198" type="line"/>
+ <point x="479" y="-42"/>
+ <point x="436" y="130"/>
+ <point x="436" y="315" type="curve" smooth="yes"/>
+ <point x="436" y="422"/>
+ <point x="450" y="534"/>
+ <point x="479" y="649" type="curve" smooth="yes"/>
+ <point x="559" y="972"/>
+ <point x="715" y="1216"/>
+ <point x="966" y="1411" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_ftS_qrB_rac.glif b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_ftS_qrB_rac.glif
new file mode 100644
index 0000000..db76a2d
--- /dev/null
+++ b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_ftS_qrB_rac.glif
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LftSqrBrac" format="2">
+ <advance width="830"/>
+ <unicode hex="005B"/>
+ <outline>
+ <contour>
+ <point x="553" y="-406" type="line"/>
+ <point x="605" y="-198" type="line"/>
+ <point x="365" y="-198" type="line"/>
+ <point x="753" y="1376" type="line"/>
+ <point x="993" y="1376" type="line"/>
+ <point x="1044" y="1584" type="line"/>
+ <point x="524" y="1584" type="line"/>
+ <point x="33" y="-406" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_owL_ine.glif b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_owL_ine.glif
new file mode 100644
index 0000000..de8a991
--- /dev/null
+++ b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_owL_ine.glif
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LowLine" format="2">
+ <advance width="1254"/>
+ <unicode hex="005F"/>
+ <outline>
+ <contour>
+ <point x="-146" y="-347" type="line"/>
+ <point x="1127" y="-347" type="line"/>
+ <point x="1179" y="-139" type="line"/>
+ <point x="-94" y="-139" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnC_apA_.glif b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnC_apA_.glif
new file mode 100644
index 0000000..592502c
--- /dev/null
+++ b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnC_apA_.glif
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapA" format="2">
+ <advance width="1465"/>
+ <unicode hex="0041"/>
+ <anchor x="1215" y="0" name="H"/>
+ <anchor x="647" y="-100" name="L"/>
+ <anchor x="1435" y="0" name="O"/>
+ <anchor x="1054" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1055" y="0" type="line"/>
+ <point x="1338" y="0" type="line"/>
+ <point x="1322" y="79"/>
+ <point x="1312" y="166"/>
+ <point x="1295" y="351" type="curve" smooth="yes"/>
+ <point x="1198" y="1445" type="line"/>
+ <point x="842" y="1445" type="line"/>
+ <point x="199" y="351" type="line" smooth="yes"/>
+ <point x="89" y="164"/>
+ <point x="37" y="80"/>
+ <point x="-18" y="0" type="curve"/>
+ <point x="290" y="0" type="line"/>
+ <point x="487" y="351" type="line"/>
+ <point x="1031" y="351" type="line"/>
+ </contour>
+ <contour>
+ <point x="973" y="1216" type="line"/>
+ <point x="1016" y="564" type="line"/>
+ <point x="606" y="564" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnC_apA_D_iaer.glif b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnC_apA_D_iaer.glif
new file mode 100644
index 0000000..17600b4
--- /dev/null
+++ b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnC_apA_D_iaer.glif
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapADiaer" format="2">
+ <advance width="1465"/>
+ <unicode hex="00C4"/>
+ <anchor x="1215" y="0" name="H"/>
+ <anchor x="647" y="-100" name="L"/>
+ <anchor x="1435" y="0" name="O"/>
+ <anchor x="1176" y="2015" name="U"/>
+ <outline>
+ <component base="LtnCapA"/>
+ <component base="CombDiaer" xOffset="1419" yOffset="430"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnC_apB_.glif b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnC_apB_.glif
new file mode 100644
index 0000000..2b14150
--- /dev/null
+++ b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnC_apB_.glif
@@ -0,0 +1,62 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapB" format="2">
+ <advance width="1367"/>
+ <unicode hex="0042"/>
+ <anchor x="585" y="-100" name="L"/>
+ <anchor x="992" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="698" y="1236" type="line"/>
+ <point x="735" y="1237"/>
+ <point x="791" y="1240"/>
+ <point x="860" y="1240" type="curve" smooth="yes"/>
+ <point x="1021" y="1240"/>
+ <point x="1101" y="1179"/>
+ <point x="1101" y="1087" type="curve" smooth="yes"/>
+ <point x="1101" y="932"/>
+ <point x="962" y="866"/>
+ <point x="770" y="866" type="curve" smooth="yes"/>
+ <point x="605" y="866" type="line"/>
+ </contour>
+ <contour>
+ <point x="217" y="450" type="line"/>
+ <point x="168" y="254"/>
+ <point x="124" y="79"/>
+ <point x="90" y="0" type="curve"/>
+ <point x="161" y="-3"/>
+ <point x="368" y="-10"/>
+ <point x="598" y="-10" type="curve" smooth="yes"/>
+ <point x="1055" y="-10"/>
+ <point x="1298" y="206"/>
+ <point x="1298" y="508" type="curve" smooth="yes"/>
+ <point x="1298" y="673"/>
+ <point x="1188" y="759"/>
+ <point x="1072" y="792" type="curve"/>
+ <point x="1254" y="848"/>
+ <point x="1388" y="956"/>
+ <point x="1388" y="1155" type="curve" smooth="yes"/>
+ <point x="1388" y="1359"/>
+ <point x="1181" y="1455"/>
+ <point x="897" y="1455" type="curve" smooth="yes"/>
+ <point x="704" y="1455"/>
+ <point x="549" y="1451"/>
+ <point x="450" y="1445" type="curve"/>
+ <point x="445" y="1366"/>
+ <point x="399" y="1182"/>
+ <point x="351" y="990" type="curve" smooth="yes"/>
+ </contour>
+ <contour>
+ <point x="552" y="651" type="line"/>
+ <point x="745" y="651" type="line" smooth="yes"/>
+ <point x="927" y="651"/>
+ <point x="1019" y="577"/>
+ <point x="1019" y="468" type="curve" smooth="yes"/>
+ <point x="1019" y="295"/>
+ <point x="879" y="213"/>
+ <point x="675" y="213" type="curve" smooth="yes"/>
+ <point x="575" y="213"/>
+ <point x="476" y="216"/>
+ <point x="444" y="218" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnC_apC_.glif b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnC_apC_.glif
new file mode 100644
index 0000000..569eba9
--- /dev/null
+++ b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnC_apC_.glif
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapC" format="2">
+ <advance width="1357"/>
+ <unicode hex="0043"/>
+ <anchor x="685" y="0" name="H"/>
+ <anchor x="660" y="-100" name="L"/>
+ <anchor x="1067" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1286" y="391" type="line"/>
+ <point x="1149" y="280"/>
+ <point x="966" y="218"/>
+ <point x="816" y="218" type="curve" smooth="yes"/>
+ <point x="594" y="218"/>
+ <point x="472" y="349"/>
+ <point x="472" y="588" type="curve" smooth="yes"/>
+ <point x="472" y="922"/>
+ <point x="690" y="1230"/>
+ <point x="1039" y="1230" type="curve" smooth="yes"/>
+ <point x="1170" y="1230"/>
+ <point x="1298" y="1188"/>
+ <point x="1385" y="1093" type="curve"/>
+ <point x="1515" y="1331" type="line"/>
+ <point x="1408" y="1418"/>
+ <point x="1247" y="1470"/>
+ <point x="1073" y="1470" type="curve" smooth="yes"/>
+ <point x="545" y="1470"/>
+ <point x="191" y="1032"/>
+ <point x="191" y="544" type="curve" smooth="yes"/>
+ <point x="191" y="210"/>
+ <point x="404" y="-25"/>
+ <point x="750" y="-25" type="curve" smooth="yes"/>
+ <point x="921" y="-25"/>
+ <point x="1124" y="27"/>
+ <point x="1271" y="124" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnC_apD_.glif b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnC_apD_.glif
new file mode 100644
index 0000000..093d346
--- /dev/null
+++ b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnC_apD_.glif
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapD" format="2">
+ <advance width="1465"/>
+ <unicode hex="0044"/>
+ <anchor x="690" y="-100" name="L"/>
+ <anchor x="1122" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="217" y="450" type="line" smooth="yes"/>
+ <point x="167" y="251"/>
+ <point x="124" y="79"/>
+ <point x="90" y="0" type="curve"/>
+ <point x="90" y="0"/>
+ <point x="431" y="-10"/>
+ <point x="566" y="-10" type="curve" smooth="yes"/>
+ <point x="1036" y="-10"/>
+ <point x="1361" y="195"/>
+ <point x="1471" y="648" type="curve" smooth="yes"/>
+ <point x="1494" y="742"/>
+ <point x="1505" y="827"/>
+ <point x="1505" y="902" type="curve" smooth="yes"/>
+ <point x="1505" y="1325"/>
+ <point x="1172" y="1455"/>
+ <point x="912" y="1455" type="curve" smooth="yes"/>
+ <point x="769" y="1455"/>
+ <point x="540" y="1451"/>
+ <point x="450" y="1445" type="curve"/>
+ <point x="445" y="1371"/>
+ <point x="404" y="1205"/>
+ <point x="359" y="1024" type="curve" smooth="yes"/>
+ </contour>
+ <contour>
+ <point x="696" y="1229" type="line"/>
+ <point x="738" y="1231"/>
+ <point x="809" y="1234"/>
+ <point x="864" y="1234" type="curve" smooth="yes"/>
+ <point x="1077" y="1234"/>
+ <point x="1212" y="1104"/>
+ <point x="1212" y="871" type="curve" smooth="yes"/>
+ <point x="1212" y="805"/>
+ <point x="1201" y="731"/>
+ <point x="1181" y="647" type="curve" smooth="yes"/>
+ <point x="1108" y="346"/>
+ <point x="930" y="219"/>
+ <point x="647" y="219" type="curve" smooth="yes"/>
+ <point x="568" y="219"/>
+ <point x="485" y="225"/>
+ <point x="447" y="229" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnC_apE_.glif b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnC_apE_.glif
new file mode 100644
index 0000000..8e7a0a1
--- /dev/null
+++ b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnC_apE_.glif
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapE" format="2">
+ <advance width="1192"/>
+ <unicode hex="0045"/>
+ <anchor x="550" y="0" name="H"/>
+ <anchor x="525" y="-100" name="L"/>
+ <anchor x="944" y="0" name="O"/>
+ <anchor x="1487" y="1200" name="R"/>
+ <anchor x="932" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="605" y="866" type="line"/>
+ <point x="693" y="1217" type="line"/>
+ <point x="1315" y="1217" type="line"/>
+ <point x="1372" y="1445" type="line"/>
+ <point x="450" y="1445" type="line"/>
+ <point x="444" y="1366"/>
+ <point x="406" y="1210"/>
+ <point x="358" y="1015" type="curve" smooth="yes"/>
+ <point x="212" y="431" type="line" smooth="yes"/>
+ <point x="163" y="236"/>
+ <point x="123" y="79"/>
+ <point x="90" y="0" type="curve"/>
+ <point x="1042" y="0" type="line"/>
+ <point x="1102" y="243" type="line"/>
+ <point x="1021" y="229"/>
+ <point x="895" y="228"/>
+ <point x="704" y="228" type="curve" smooth="yes"/>
+ <point x="446" y="228" type="line"/>
+ <point x="550" y="644" type="line"/>
+ <point x="1097" y="644" type="line"/>
+ <point x="1152" y="866" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnC_apF_.glif b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnC_apF_.glif
new file mode 100644
index 0000000..df3370c
--- /dev/null
+++ b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnC_apF_.glif
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapF" format="2">
+ <advance width="1180"/>
+ <unicode hex="0046"/>
+ <anchor x="545" y="-100" name="L"/>
+ <anchor x="952" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="602" y="851" type="line"/>
+ <point x="693" y="1217" type="line"/>
+ <point x="1333" y="1217" type="line"/>
+ <point x="1390" y="1445" type="line"/>
+ <point x="450" y="1445" type="line"/>
+ <point x="445" y="1366"/>
+ <point x="405" y="1205"/>
+ <point x="356" y="1010" type="curve" smooth="yes"/>
+ <point x="212" y="431" type="line" smooth="yes"/>
+ <point x="163" y="236"/>
+ <point x="123" y="79"/>
+ <point x="90" y="0" type="curve"/>
+ <point x="405" y="0" type="line"/>
+ <point x="407" y="72"/>
+ <point x="444" y="220"/>
+ <point x="490" y="404" type="curve" smooth="yes"/>
+ <point x="546" y="629" type="line"/>
+ <point x="1101" y="629" type="line"/>
+ <point x="1157" y="851" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnC_apG_.glif b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnC_apG_.glif
new file mode 100644
index 0000000..7d36953
--- /dev/null
+++ b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnC_apG_.glif
@@ -0,0 +1,48 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapG" format="2">
+ <advance width="1452"/>
+ <unicode hex="0047"/>
+ <anchor x="747" y="0" name="H"/>
+ <anchor x="722" y="-100" name="L"/>
+ <anchor x="1129" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1480" y="767" type="line"/>
+ <point x="910" y="767" type="line"/>
+ <point x="855" y="544" type="line"/>
+ <point x="1170" y="544" type="line"/>
+ <point x="1104" y="271" type="line"/>
+ <point x="1015" y="231"/>
+ <point x="916" y="218"/>
+ <point x="805" y="218" type="curve" smooth="yes"/>
+ <point x="593" y="218"/>
+ <point x="475" y="352"/>
+ <point x="475" y="567" type="curve" smooth="yes"/>
+ <point x="475" y="633"/>
+ <point x="484" y="708"/>
+ <point x="505" y="789" type="curve" smooth="yes"/>
+ <point x="581" y="1079"/>
+ <point x="802" y="1230"/>
+ <point x="1067" y="1230" type="curve" smooth="yes"/>
+ <point x="1220" y="1230"/>
+ <point x="1334" y="1193"/>
+ <point x="1449" y="1096" type="curve"/>
+ <point x="1594" y="1332" type="line"/>
+ <point x="1447" y="1437"/>
+ <point x="1275" y="1470"/>
+ <point x="1094" y="1470" type="curve" smooth="yes"/>
+ <point x="709" y="1470"/>
+ <point x="345" y="1257"/>
+ <point x="227" y="783" type="curve" smooth="yes"/>
+ <point x="205" y="694"/>
+ <point x="194" y="611"/>
+ <point x="194" y="534" type="curve" smooth="yes"/>
+ <point x="194" y="176"/>
+ <point x="419" y="-25"/>
+ <point x="768" y="-25" type="curve" smooth="yes"/>
+ <point x="940" y="-25"/>
+ <point x="1105" y="10"/>
+ <point x="1325" y="133" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnC_apH_.glif b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnC_apH_.glif
new file mode 100644
index 0000000..a49f5fb
--- /dev/null
+++ b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnC_apH_.glif
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapH" format="2">
+ <advance width="1495"/>
+ <unicode hex="0048"/>
+ <anchor x="245" y="0" name="H"/>
+ <anchor x="660" y="-100" name="L"/>
+ <anchor x="1067" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1340" y="1445" type="line"/>
+ <point x="1192" y="851" type="line"/>
+ <point x="602" y="851" type="line"/>
+ <point x="750" y="1445" type="line"/>
+ <point x="450" y="1445" type="line"/>
+ <point x="445" y="1366"/>
+ <point x="408" y="1215"/>
+ <point x="359" y="1020" type="curve" smooth="yes"/>
+ <point x="211" y="426" type="line" smooth="yes"/>
+ <point x="162" y="231"/>
+ <point x="124" y="79"/>
+ <point x="90" y="0" type="curve"/>
+ <point x="90" y="0"/>
+ <point x="390" y="0"/>
+ <point x="390" y="0" type="curve"/>
+ <point x="546" y="629" type="line"/>
+ <point x="1136" y="629" type="line"/>
+ <point x="980" y="0" type="line"/>
+ <point x="980" y="0"/>
+ <point x="1280" y="0"/>
+ <point x="1280" y="0" type="curve"/>
+ <point x="1284" y="79"/>
+ <point x="1322" y="231"/>
+ <point x="1371" y="426" type="curve" smooth="yes"/>
+ <point x="1519" y="1020" type="line" smooth="yes"/>
+ <point x="1567" y="1215"/>
+ <point x="1605" y="1366"/>
+ <point x="1640" y="1445" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnC_apI_.glif b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnC_apI_.glif
new file mode 100644
index 0000000..fc059de
--- /dev/null
+++ b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnC_apI_.glif
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapI" format="2">
+ <advance width="1025"/>
+ <unicode hex="0049"/>
+ <anchor x="460" y="0" name="H"/>
+ <anchor x="431" y="-100" name="L"/>
+ <anchor x="652" y="0" name="O"/>
+ <anchor x="1254" y="1200" name="R"/>
+ <anchor x="842" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="430" y="1445" type="line"/>
+ <point x="379" y="1242" type="line"/>
+ <point x="619" y="1242" type="line"/>
+ <point x="360" y="203" type="line"/>
+ <point x="120" y="203" type="line"/>
+ <point x="70" y="0" type="line"/>
+ <point x="835" y="0" type="line"/>
+ <point x="885" y="203" type="line"/>
+ <point x="645" y="203" type="line"/>
+ <point x="904" y="1242" type="line"/>
+ <point x="1144" y="1242" type="line"/>
+ <point x="1195" y="1445" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnC_apJ_.glif b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnC_apJ_.glif
new file mode 100644
index 0000000..6a3a604
--- /dev/null
+++ b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnC_apJ_.glif
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapJ" format="2">
+ <advance width="1010"/>
+ <unicode hex="004A"/>
+ <anchor x="330" y="-100" name="L"/>
+ <anchor x="1027" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="855" y="1445" type="line"/>
+ <point x="842" y="1340"/>
+ <point x="799" y="1163"/>
+ <point x="751" y="970" type="curve" smooth="yes"/>
+ <point x="647" y="552" type="line" smooth="yes"/>
+ <point x="602" y="370"/>
+ <point x="516" y="225"/>
+ <point x="341" y="225" type="curve" smooth="yes"/>
+ <point x="260" y="225"/>
+ <point x="159" y="267"/>
+ <point x="104" y="344" type="curve"/>
+ <point x="-8" y="89" type="line"/>
+ <point x="51" y="19"/>
+ <point x="191" y="-25"/>
+ <point x="326" y="-25" type="curve" smooth="yes"/>
+ <point x="611" y="-25"/>
+ <point x="826" y="128"/>
+ <point x="927" y="530" type="curve" smooth="yes"/>
+ <point x="947" y="612"/>
+ <point x="1155" y="1445"/>
+ <point x="1155" y="1445" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnC_apK_.glif b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnC_apK_.glif
new file mode 100644
index 0000000..44d4d68
--- /dev/null
+++ b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnC_apK_.glif
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapK" format="2">
+ <advance width="1410"/>
+ <unicode hex="004B"/>
+ <anchor x="260" y="0" name="H"/>
+ <anchor x="655" y="-100" name="L"/>
+ <anchor x="1047" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="750" y="1445" type="line"/>
+ <point x="450" y="1445" type="line"/>
+ <point x="444" y="1366"/>
+ <point x="406" y="1210"/>
+ <point x="358" y="1015" type="curve" smooth="yes"/>
+ <point x="212" y="431" type="line" smooth="yes"/>
+ <point x="163" y="236"/>
+ <point x="123" y="79"/>
+ <point x="90" y="0" type="curve"/>
+ <point x="390" y="0" type="line"/>
+ </contour>
+ <contour>
+ <point x="1244" y="1445" type="line"/>
+ <point x="461" y="697" type="line"/>
+ <point x="634" y="738" type="line"/>
+ <point x="758" y="724" type="line"/>
+ <point x="1580" y="1445" type="line"/>
+ </contour>
+ <contour>
+ <point x="509" y="724" type="line"/>
+ <point x="950" y="0" type="line"/>
+ <point x="1300" y="0" type="line"/>
+ <point x="738" y="801" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnC_apL_.glif b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnC_apL_.glif
new file mode 100644
index 0000000..f8d6959
--- /dev/null
+++ b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnC_apL_.glif
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapL" format="2">
+ <advance width="1110"/>
+ <unicode hex="004C"/>
+ <anchor x="560" y="0" name="H"/>
+ <anchor x="535" y="-100" name="L"/>
+ <anchor x="890" y="1200" name="R"/>
+ <anchor x="942" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="446" y="228" type="line"/>
+ <point x="750" y="1445" type="line"/>
+ <point x="450" y="1445" type="line"/>
+ <point x="444" y="1366"/>
+ <point x="406" y="1210"/>
+ <point x="358" y="1015" type="curve" smooth="yes"/>
+ <point x="212" y="431" type="line" smooth="yes"/>
+ <point x="163" y="236"/>
+ <point x="123" y="79"/>
+ <point x="90" y="0" type="curve"/>
+ <point x="1025" y="0" type="line"/>
+ <point x="1085" y="243" type="line"/>
+ <point x="1005" y="229"/>
+ <point x="851" y="228"/>
+ <point x="662" y="228" type="curve" smooth="yes"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnC_apM_.glif b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnC_apM_.glif
new file mode 100644
index 0000000..67d1463
--- /dev/null
+++ b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnC_apM_.glif
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapM" format="2">
+ <advance width="1835"/>
+ <unicode hex="004D"/>
+ <anchor x="830" y="-100" name="L"/>
+ <anchor x="1237" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="919" y="272" type="line"/>
+ <point x="865" y="1445" type="line"/>
+ <point x="615" y="1445" type="line"/>
+ <point x="664" y="1158" type="line"/>
+ <point x="710" y="0" type="line"/>
+ <point x="1005" y="0" type="line"/>
+ <point x="1625" y="1158" type="line"/>
+ <point x="1817" y="1445" type="line"/>
+ <point x="1550" y="1445" type="line"/>
+ </contour>
+ <contour>
+ <point x="520" y="1445" type="line"/>
+ <point x="520" y="1445"/>
+ <point x="164" y="196"/>
+ <point x="90" y="0" type="curve"/>
+ <point x="360" y="0" type="line"/>
+ <point x="686" y="1193" type="line"/>
+ <point x="785" y="1445" type="line"/>
+ </contour>
+ <contour>
+ <point x="1630" y="0" type="line"/>
+ <point x="1649" y="196"/>
+ <point x="1910" y="1445"/>
+ <point x="1910" y="1445" type="curve"/>
+ <point x="1640" y="1445" type="line"/>
+ <point x="1622" y="1193" type="line"/>
+ <point x="1360" y="0" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnC_apN_.glif b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnC_apN_.glif
new file mode 100644
index 0000000..838490a
--- /dev/null
+++ b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnC_apN_.glif
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapN" format="2">
+ <advance width="1525"/>
+ <unicode hex="004E"/>
+ <anchor x="1180" y="0" name="H"/>
+ <anchor x="680" y="-100" name="L"/>
+ <anchor x="1087" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="506" y="1297" type="line"/>
+ <point x="1035" y="0" type="line"/>
+ <point x="1253" y="148" type="line"/>
+ <point x="725" y="1445" type="line"/>
+ </contour>
+ <contour>
+ <point x="1035" y="0" type="line"/>
+ <point x="1305" y="0" type="line"/>
+ <point x="1558" y="1015" type="line" smooth="yes"/>
+ <point x="1606" y="1210"/>
+ <point x="1646" y="1366"/>
+ <point x="1680" y="1445" type="curve"/>
+ <point x="1395" y="1445" type="line"/>
+ </contour>
+ <contour>
+ <point x="725" y="1445" type="line"/>
+ <point x="440" y="1445" type="line"/>
+ <point x="434" y="1366"/>
+ <point x="396" y="1210"/>
+ <point x="348" y="1015" type="curve" smooth="yes"/>
+ <point x="202" y="431" type="line" smooth="yes"/>
+ <point x="153" y="236"/>
+ <point x="113" y="79"/>
+ <point x="80" y="0" type="curve"/>
+ <point x="365" y="0" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnC_apO_.glif b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnC_apO_.glif
new file mode 100644
index 0000000..4410e20
--- /dev/null
+++ b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnC_apO_.glif
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapO" format="2">
+ <advance width="1480"/>
+ <unicode hex="004F"/>
+ <anchor x="680" y="0" name="H"/>
+ <anchor x="655" y="-100" name="L"/>
+ <anchor x="916" y="0" name="O"/>
+ <anchor x="1720" y="1200" name="R"/>
+ <anchor x="1062" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="754" y="218" type="curve" smooth="yes"/>
+ <point x="580" y="218"/>
+ <point x="471" y="345"/>
+ <point x="471" y="568" type="curve" smooth="yes"/>
+ <point x="471" y="922"/>
+ <point x="664" y="1228"/>
+ <point x="966" y="1228" type="curve" smooth="yes"/>
+ <point x="1134" y="1228"/>
+ <point x="1237" y="1106"/>
+ <point x="1237" y="891" type="curve" smooth="yes"/>
+ <point x="1237" y="540"/>
+ <point x="1060" y="218"/>
+ </contour>
+ <contour>
+ <point x="1519" y="911" type="curve" smooth="yes"/>
+ <point x="1519" y="1249"/>
+ <point x="1350" y="1470"/>
+ <point x="1026" y="1470" type="curve" smooth="yes"/>
+ <point x="510" y="1470"/>
+ <point x="191" y="1010"/>
+ <point x="191" y="539" type="curve" smooth="yes"/>
+ <point x="191" y="199"/>
+ <point x="401" y="-25"/>
+ <point x="693" y="-25" type="curve" smooth="yes"/>
+ <point x="1121" y="-25"/>
+ <point x="1519" y="337"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnC_apP_.glif b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnC_apP_.glif
new file mode 100644
index 0000000..b0d40c0
--- /dev/null
+++ b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnC_apP_.glif
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapP" format="2">
+ <advance width="1255"/>
+ <unicode hex="0050"/>
+ <anchor x="600" y="-100" name="L"/>
+ <anchor x="970" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="519" y="518" type="line"/>
+ <point x="582" y="511"/>
+ <point x="661" y="508"/>
+ <point x="734" y="508" type="curve" smooth="yes"/>
+ <point x="1118" y="508"/>
+ <point x="1393" y="718"/>
+ <point x="1393" y="1076" type="curve" smooth="yes"/>
+ <point x="1393" y="1306"/>
+ <point x="1215" y="1455"/>
+ <point x="940" y="1455" type="curve" smooth="yes"/>
+ <point x="727" y="1455"/>
+ <point x="450" y="1445"/>
+ <point x="450" y="1445" type="curve"/>
+ <point x="445" y="1366"/>
+ <point x="400" y="1184"/>
+ <point x="351" y="990" type="curve" smooth="yes"/>
+ <point x="212" y="431" type="line" smooth="yes"/>
+ <point x="164" y="237"/>
+ <point x="124" y="79"/>
+ <point x="90" y="0" type="curve"/>
+ <point x="405" y="0" type="line"/>
+ <point x="410" y="77"/>
+ <point x="448" y="235"/>
+ <point x="497" y="431" type="curve" smooth="yes"/>
+ </contour>
+ <contour>
+ <point x="696" y="1228" type="line"/>
+ <point x="752" y="1231"/>
+ <point x="781" y="1233"/>
+ <point x="849" y="1233" type="curve" smooth="yes"/>
+ <point x="1020" y="1233"/>
+ <point x="1103" y="1135"/>
+ <point x="1103" y="1020" type="curve" smooth="yes"/>
+ <point x="1103" y="827"/>
+ <point x="965" y="723"/>
+ <point x="758" y="723" type="curve" smooth="yes"/>
+ <point x="696" y="723"/>
+ <point x="614" y="726"/>
+ <point x="572" y="733" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnC_apQ_.glif b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnC_apQ_.glif
new file mode 100644
index 0000000..7013e5f
--- /dev/null
+++ b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnC_apQ_.glif
@@ -0,0 +1,52 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapQ" format="2">
+ <advance width="1488"/>
+ <unicode hex="0051"/>
+ <anchor x="619" y="-270" name="L"/>
+ <anchor x="1069" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1527" y="922" type="curve" smooth="yes"/>
+ <point x="1527" y="1259"/>
+ <point x="1324" y="1470"/>
+ <point x="1029" y="1470" type="curve" smooth="yes"/>
+ <point x="663" y="1470"/>
+ <point x="339" y="1229"/>
+ <point x="221" y="755" type="curve" smooth="yes"/>
+ <point x="201" y="673"/>
+ <point x="191" y="597"/>
+ <point x="191" y="526" type="curve" smooth="yes"/>
+ <point x="191" y="185"/>
+ <point x="410" y="-25"/>
+ <point x="696" y="-25" type="curve" smooth="yes"/>
+ <point x="743" y="-25"/>
+ <point x="787" y="-23"/>
+ <point x="838" y="-15" type="curve"/>
+ <point x="907" y="-15"/>
+ <point x="1162" y="-221"/>
+ <point x="1246" y="-221" type="curve" smooth="yes"/>
+ <point x="1310" y="-221"/>
+ <point x="1422" y="-74"/>
+ <point x="1468" y="-22" type="curve"/>
+ <point x="1331" y="-6"/>
+ <point x="1227" y="60"/>
+ <point x="1115" y="134" type="curve"/>
+ <point x="1312" y="242"/>
+ <point x="1527" y="566"/>
+ </contour>
+ <contour>
+ <point x="757" y="218" type="curve" smooth="yes"/>
+ <point x="563" y="218"/>
+ <point x="471" y="355"/>
+ <point x="471" y="558" type="curve" smooth="yes"/>
+ <point x="471" y="912"/>
+ <point x="677" y="1228"/>
+ <point x="969" y="1228" type="curve" smooth="yes"/>
+ <point x="1147" y="1228"/>
+ <point x="1246" y="1106"/>
+ <point x="1246" y="891" type="curve" smooth="yes"/>
+ <point x="1246" y="560"/>
+ <point x="1053" y="218"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnC_apR_.glif b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnC_apR_.glif
new file mode 100644
index 0000000..9133fd2
--- /dev/null
+++ b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnC_apR_.glif
@@ -0,0 +1,55 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapR" format="2">
+ <advance width="1360"/>
+ <unicode hex="0052"/>
+ <anchor x="630" y="0" name="H"/>
+ <anchor x="605" y="-100" name="L"/>
+ <anchor x="982" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="534" y="579" type="line"/>
+ <point x="749" y="579" type="line" smooth="yes"/>
+ <point x="1071" y="579"/>
+ <point x="1378" y="761"/>
+ <point x="1378" y="1117" type="curve" smooth="yes"/>
+ <point x="1378" y="1332"/>
+ <point x="1199" y="1455"/>
+ <point x="932" y="1455" type="curve" smooth="yes"/>
+ <point x="698" y="1455"/>
+ <point x="450" y="1445"/>
+ <point x="450" y="1445" type="curve"/>
+ <point x="445" y="1366"/>
+ <point x="400" y="1184"/>
+ <point x="351" y="990" type="curve" smooth="yes"/>
+ <point x="212" y="431" type="line"/>
+ <point x="164" y="236"/>
+ <point x="124" y="79"/>
+ <point x="90" y="0" type="curve"/>
+ <point x="405" y="0" type="line"/>
+ <point x="410" y="77"/>
+ <point x="448" y="236"/>
+ <point x="497" y="431" type="curve"/>
+ </contour>
+ <contour>
+ <point x="696" y="1228" type="line"/>
+ <point x="749" y="1231"/>
+ <point x="764" y="1233"/>
+ <point x="842" y="1233" type="curve" smooth="yes"/>
+ <point x="995" y="1233"/>
+ <point x="1089" y="1167"/>
+ <point x="1089" y="1060" type="curve" smooth="yes"/>
+ <point x="1089" y="899"/>
+ <point x="956" y="792"/>
+ <point x="782" y="792" type="curve" smooth="yes"/>
+ <point x="587" y="792" type="line"/>
+ </contour>
+ <contour>
+ <point x="652" y="629" type="line"/>
+ <point x="915" y="0" type="line"/>
+ <point x="1270" y="0" type="line"/>
+ <point x="1220" y="72"/>
+ <point x="962" y="623"/>
+ <point x="936" y="680" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnC_apS_.glif b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnC_apS_.glif
new file mode 100644
index 0000000..79fe933
--- /dev/null
+++ b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnC_apS_.glif
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapS" format="2">
+ <advance width="1223"/>
+ <unicode hex="0053"/>
+ <anchor x="556" y="0" name="H"/>
+ <anchor x="531" y="-100" name="L"/>
+ <anchor x="938" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1339" y="1361" type="line"/>
+ <point x="1232" y="1430"/>
+ <point x="1086" y="1470"/>
+ <point x="916" y="1470" type="curve" smooth="yes"/>
+ <point x="600" y="1470"/>
+ <point x="332" y="1333"/>
+ <point x="332" y="1053" type="curve" smooth="yes"/>
+ <point x="332" y="889"/>
+ <point x="413" y="800"/>
+ <point x="621" y="658" type="curve" smooth="yes"/>
+ <point x="829" y="516"/>
+ <point x="885" y="448"/>
+ <point x="885" y="374" type="curve" smooth="yes"/>
+ <point x="885" y="276"/>
+ <point x="772" y="218"/>
+ <point x="624" y="218" type="curve" smooth="yes"/>
+ <point x="463" y="218"/>
+ <point x="270" y="340"/>
+ <point x="184" y="461" type="curve"/>
+ <point x="67" y="189" type="line"/>
+ <point x="147" y="91"/>
+ <point x="394" y="-25"/>
+ <point x="573" y="-25" type="curve" smooth="yes"/>
+ <point x="923" y="-25"/>
+ <point x="1182" y="124"/>
+ <point x="1182" y="419" type="curve" smooth="yes"/>
+ <point x="1182" y="584"/>
+ <point x="1077" y="682"/>
+ <point x="881" y="831" type="curve" smooth="yes"/>
+ <point x="728" y="947"/>
+ <point x="628" y="1010"/>
+ <point x="628" y="1082" type="curve" smooth="yes"/>
+ <point x="628" y="1198"/>
+ <point x="790" y="1230"/>
+ <point x="877" y="1230" type="curve" smooth="yes"/>
+ <point x="1018" y="1230"/>
+ <point x="1119" y="1189"/>
+ <point x="1228" y="1099" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnC_apT_.glif b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnC_apT_.glif
new file mode 100644
index 0000000..b7aa4cd
--- /dev/null
+++ b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnC_apT_.glif
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapT" format="2">
+ <advance width="1255"/>
+ <unicode hex="0054"/>
+ <anchor x="572" y="0" name="H"/>
+ <anchor x="547" y="-100" name="L"/>
+ <anchor x="954" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="345" y="1445" type="line"/>
+ <point x="283" y="1198" type="line"/>
+ <point x="359" y="1215"/>
+ <point x="439" y="1218"/>
+ <point x="519" y="1218" type="curve" smooth="yes"/>
+ <point x="731" y="1218" type="line"/>
+ <point x="529" y="409" type="line" smooth="yes"/>
+ <point x="483" y="224"/>
+ <point x="443" y="75"/>
+ <point x="408" y="0" type="curve"/>
+ <point x="733" y="0" type="line"/>
+ <point x="734" y="75"/>
+ <point x="768" y="224"/>
+ <point x="814" y="409" type="curve" smooth="yes"/>
+ <point x="1016" y="1218" type="line"/>
+ <point x="1232" y="1218" type="line" smooth="yes"/>
+ <point x="1313" y="1218"/>
+ <point x="1390" y="1215"/>
+ <point x="1458" y="1198" type="curve"/>
+ <point x="1520" y="1445" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnC_apU_.glif b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnC_apU_.glif
new file mode 100644
index 0000000..a01a283
--- /dev/null
+++ b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnC_apU_.glif
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapU" format="2">
+ <advance width="1470"/>
+ <unicode hex="0055"/>
+ <anchor x="672" y="0" name="H"/>
+ <anchor x="647" y="-100" name="L"/>
+ <anchor x="890" y="0" name="O"/>
+ <anchor x="1720" y="1200" name="R"/>
+ <anchor x="1054" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1315" y="1445" type="line"/>
+ <point x="1093" y="554" type="line" smooth="yes"/>
+ <point x="1040" y="341"/>
+ <point x="952" y="202"/>
+ <point x="735" y="202" type="curve" smooth="yes"/>
+ <point x="572" y="202"/>
+ <point x="515" y="305"/>
+ <point x="515" y="435" type="curve" smooth="yes"/>
+ <point x="515" y="482"/>
+ <point x="523" y="533"/>
+ <point x="535" y="583" type="curve" smooth="yes"/>
+ <point x="750" y="1445" type="line"/>
+ <point x="450" y="1445" type="line"/>
+ <point x="444" y="1366"/>
+ <point x="406" y="1210"/>
+ <point x="358" y="1015" type="curve" smooth="yes"/>
+ <point x="249" y="570" type="line" smooth="yes"/>
+ <point x="235" y="512"/>
+ <point x="228" y="457"/>
+ <point x="228" y="404" type="curve" smooth="yes"/>
+ <point x="228" y="155"/>
+ <point x="385" y="-25"/>
+ <point x="698" y="-25" type="curve" smooth="yes"/>
+ <point x="1063" y="-25"/>
+ <point x="1275" y="148"/>
+ <point x="1356" y="470" type="curve" smooth="yes"/>
+ <point x="1493" y="1015" type="line" smooth="yes"/>
+ <point x="1544" y="1220"/>
+ <point x="1582" y="1366"/>
+ <point x="1615" y="1445" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnC_apV_.glif b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnC_apV_.glif
new file mode 100644
index 0000000..07a71af
--- /dev/null
+++ b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnC_apV_.glif
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapV" format="2">
+ <advance width="1445"/>
+ <unicode hex="0056"/>
+ <anchor x="670" y="0" name="H"/>
+ <anchor x="637" y="-100" name="L"/>
+ <anchor x="870" y="0" name="O"/>
+ <anchor x="1044" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1405" y="1445" type="line"/>
+ <point x="721" y="257" type="line"/>
+ <point x="620" y="1445" type="line"/>
+ <point x="325" y="1445" type="line"/>
+ <point x="339" y="1364"/>
+ <point x="354" y="1275"/>
+ <point x="375" y="1084" type="curve" smooth="yes"/>
+ <point x="495" y="0" type="line"/>
+ <point x="830" y="0" type="line"/>
+ <point x="1490" y="1084" type="line" smooth="yes"/>
+ <point x="1606" y="1276"/>
+ <point x="1664" y="1364"/>
+ <point x="1720" y="1445" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnC_apW_.glif b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnC_apW_.glif
new file mode 100644
index 0000000..f0e3607
--- /dev/null
+++ b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnC_apW_.glif
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapW" format="2">
+ <advance width="2115"/>
+ <unicode hex="0057"/>
+ <anchor x="967" y="-100" name="L"/>
+ <anchor x="1374" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1430" y="0" type="line"/>
+ <point x="1595" y="0" type="line"/>
+ <point x="2165" y="1084" type="line" smooth="yes"/>
+ <point x="2266" y="1277"/>
+ <point x="2318" y="1364"/>
+ <point x="2370" y="1445" type="curve"/>
+ <point x="2050" y="1445" type="line"/>
+ <point x="1432" y="129" type="line"/>
+ </contour>
+ <contour>
+ <point x="1470" y="1445" type="line"/>
+ <point x="1220" y="1445" type="line"/>
+ <point x="1257" y="1292" type="line"/>
+ <point x="1280" y="0" type="line"/>
+ <point x="1450" y="0" type="line"/>
+ <point x="1492" y="129" type="line"/>
+ </contour>
+ <contour>
+ <point x="540" y="0" type="line"/>
+ <point x="705" y="0" type="line"/>
+ <point x="1367" y="1292" type="line"/>
+ <point x="1470" y="1445" type="line"/>
+ <point x="1210" y="1445" type="line"/>
+ <point x="542" y="129" type="line"/>
+ </contour>
+ <contour>
+ <point x="630" y="1445" type="line"/>
+ <point x="330" y="1445" type="line"/>
+ <point x="341" y="1367"/>
+ <point x="349" y="1273"/>
+ <point x="355" y="1084" type="curve" smooth="yes"/>
+ <point x="390" y="0" type="line"/>
+ <point x="560" y="0" type="line"/>
+ <point x="602" y="129" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnC_apX_.glif b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnC_apX_.glif
new file mode 100644
index 0000000..633303c
--- /dev/null
+++ b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnC_apX_.glif
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapX" format="2">
+ <advance width="1345"/>
+ <unicode hex="0058"/>
+ <anchor x="585" y="-100" name="L"/>
+ <anchor x="992" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="930" y="0" type="line"/>
+ <point x="1240" y="0" type="line"/>
+ <point x="1199" y="81"/>
+ <point x="1172" y="125"/>
+ <point x="1096" y="333" type="curve" smooth="yes"/>
+ <point x="690" y="1445" type="line"/>
+ <point x="375" y="1445" type="line"/>
+ <point x="418" y="1362"/>
+ <point x="454" y="1304"/>
+ <point x="529" y="1099" type="curve" smooth="yes"/>
+ </contour>
+ <contour>
+ <point x="768" y="938" type="line"/>
+ <point x="269" y="337" type="line" smooth="yes"/>
+ <point x="94" y="126"/>
+ <point x="44" y="85"/>
+ <point x="-40" y="0" type="curve"/>
+ <point x="290" y="0" type="line"/>
+ <point x="790" y="603" type="line"/>
+ </contour>
+ <contour>
+ <point x="830" y="603" type="line"/>
+ <point x="1251" y="1099" type="line" smooth="yes"/>
+ <point x="1423" y="1302"/>
+ <point x="1492" y="1369"/>
+ <point x="1575" y="1445" type="curve"/>
+ <point x="1240" y="1445" type="line"/>
+ <point x="808" y="938" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnC_apY_.glif b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnC_apY_.glif
new file mode 100644
index 0000000..49af854
--- /dev/null
+++ b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnC_apY_.glif
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapY" format="2">
+ <advance width="1344"/>
+ <unicode hex="0059"/>
+ <anchor x="587" y="-100" name="L"/>
+ <anchor x="994" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="325" y="1445" type="line"/>
+ <point x="400" y="1298"/>
+ <point x="438" y="1185"/>
+ <point x="482" y="1054" type="curve" smooth="yes"/>
+ <point x="653" y="554" type="line"/>
+ <point x="868" y="668" type="line"/>
+ <point x="637" y="1445" type="line"/>
+ </contour>
+ <contour>
+ <point x="1282" y="1445" type="line"/>
+ <point x="668" y="668" type="line"/>
+ <point x="848" y="554" type="line"/>
+ <point x="1271" y="1054" type="line" smooth="yes"/>
+ <point x="1379" y="1183"/>
+ <point x="1459" y="1278"/>
+ <point x="1619" y="1445" type="curve"/>
+ </contour>
+ <contour>
+ <point x="770" y="0" type="line"/>
+ <point x="774" y="79"/>
+ <point x="813" y="236"/>
+ <point x="862" y="431" type="curve" smooth="yes"/>
+ <point x="926" y="688" type="line"/>
+ <point x="641" y="688" type="line"/>
+ <point x="577" y="431" type="line" smooth="yes"/>
+ <point x="528" y="236"/>
+ <point x="488" y="79"/>
+ <point x="455" y="0" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mA_.glif b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mA_.glif
new file mode 100644
index 0000000..0208140
--- /dev/null
+++ b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mA_.glif
@@ -0,0 +1,79 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmA" format="2">
+ <advance width="1185"/>
+ <unicode hex="0061"/>
+ <anchor x="925" y="0" name="H"/>
+ <anchor x="525" y="-100" name="L"/>
+ <anchor x="1125" y="0" name="O"/>
+ <anchor x="1335" y="1000" name="R"/>
+ <anchor x="825" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="1060" y="0" type="line"/>
+ <point x="1054" y="44"/>
+ <point x="1051" y="87"/>
+ <point x="1051" y="133" type="curve" smooth="yes"/>
+ <point x="1051" y="204"/>
+ <point x="1059" y="280"/>
+ <point x="1081" y="366" type="curve"/>
+ <point x="1128" y="557"/>
+ <point x="1156" y="665"/>
+ <point x="1170" y="722" type="curve"/>
+ <point x="1174" y="738"/>
+ <point x="1176" y="754"/>
+ <point x="1176" y="770" type="curve" smooth="yes"/>
+ <point x="1176" y="909"/>
+ <point x="1026" y="1030"/>
+ <point x="791" y="1030" type="curve" smooth="yes"/>
+ <point x="632" y="1030"/>
+ <point x="514" y="994"/>
+ <point x="389" y="940" type="curve"/>
+ <point x="363" y="859"/>
+ <point x="327" y="728"/>
+ <point x="315" y="684" type="curve"/>
+ <point x="452" y="765"/>
+ <point x="565" y="808"/>
+ <point x="673" y="808" type="curve" smooth="yes"/>
+ <point x="809" y="808"/>
+ <point x="885" y="760"/>
+ <point x="885" y="709" type="curve" smooth="yes"/>
+ <point x="885" y="705"/>
+ <point x="884" y="700"/>
+ <point x="883" y="696" type="curve" smooth="yes"/>
+ <point x="872" y="653" type="line"/>
+ <point x="831" y="652"/>
+ <point x="669" y="643"/>
+ <point x="598" y="636" type="curve" smooth="yes"/>
+ <point x="367" y="614"/>
+ <point x="109" y="474"/>
+ <point x="109" y="236" type="curve" smooth="yes"/>
+ <point x="109" y="97"/>
+ <point x="215" y="-25"/>
+ <point x="388" y="-25" type="curve" smooth="yes"/>
+ <point x="505" y="-25"/>
+ <point x="633" y="23"/>
+ <point x="773" y="134" type="curve"/>
+ <point x="773" y="78"/>
+ <point x="784" y="28"/>
+ <point x="790" y="0" type="curve"/>
+ </contour>
+ <contour>
+ <point x="797" y="351" type="line"/>
+ <point x="669" y="223"/>
+ <point x="590" y="203"/>
+ <point x="508" y="203" type="curve" smooth="yes"/>
+ <point x="438" y="203"/>
+ <point x="398" y="246"/>
+ <point x="398" y="299" type="curve" smooth="yes"/>
+ <point x="398" y="308"/>
+ <point x="399" y="317"/>
+ <point x="401" y="326" type="curve" smooth="yes"/>
+ <point x="417" y="391"/>
+ <point x="471" y="438"/>
+ <point x="612" y="452" type="curve" smooth="yes"/>
+ <point x="665" y="458"/>
+ <point x="786" y="469"/>
+ <point x="827" y="470" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mA_A_cute.glif b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mA_A_cute.glif
new file mode 100644
index 0000000..a91e18b
--- /dev/null
+++ b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mA_A_cute.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmAAcute" format="2">
+ <advance width="1185"/>
+ <unicode hex="00E1"/>
+ <anchor x="925" y="0" name="H"/>
+ <anchor x="525" y="-100" name="L"/>
+ <anchor x="1125" y="0" name="O"/>
+ <anchor x="1335" y="1000" name="R"/>
+ <anchor x="899" y="1635" name="U"/>
+ <outline>
+ <component base="LtnSmA"/>
+ <component base="CombAcute" xOffset="1150"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mA_C_ircum.glif b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mA_C_ircum.glif
new file mode 100644
index 0000000..c17afb1
--- /dev/null
+++ b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mA_C_ircum.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmACircum" format="2">
+ <advance width="1185"/>
+ <unicode hex="00E2"/>
+ <anchor x="925" y="0" name="H"/>
+ <anchor x="525" y="-100" name="L"/>
+ <anchor x="1125" y="0" name="O"/>
+ <anchor x="1335" y="1000" name="R"/>
+ <anchor x="916" y="1635" name="U"/>
+ <outline>
+ <component base="LtnSmA"/>
+ <component base="CombCircum" xOffset="1155"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mA_D_iaer.glif b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mA_D_iaer.glif
new file mode 100644
index 0000000..af45db4
--- /dev/null
+++ b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mA_D_iaer.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmADiaer" format="2">
+ <advance width="1185"/>
+ <unicode hex="00E4"/>
+ <anchor x="925" y="0" name="H"/>
+ <anchor x="525" y="-100" name="L"/>
+ <anchor x="1125" y="0" name="O"/>
+ <anchor x="1335" y="1000" name="R"/>
+ <anchor x="947" y="1585" name="U"/>
+ <outline>
+ <component base="LtnSmA"/>
+ <component base="CombDiaer" xOffset="1190"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mA_G_rave.glif b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mA_G_rave.glif
new file mode 100644
index 0000000..2374c69
--- /dev/null
+++ b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mA_G_rave.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmAGrave" format="2">
+ <advance width="1185"/>
+ <unicode hex="00E0"/>
+ <anchor x="925" y="0" name="H"/>
+ <anchor x="525" y="-100" name="L"/>
+ <anchor x="1125" y="0" name="O"/>
+ <anchor x="1335" y="1000" name="R"/>
+ <anchor x="999" y="1635" name="U"/>
+ <outline>
+ <component base="LtnSmA"/>
+ <component base="CombGrave" xOffset="1240"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mA_R_ingA_bv.glif b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mA_R_ingA_bv.glif
new file mode 100644
index 0000000..f8a7dcc
--- /dev/null
+++ b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mA_R_ingA_bv.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmARingAbv" format="2">
+ <advance width="1185"/>
+ <unicode hex="00E5"/>
+ <anchor x="925" y="0" name="H"/>
+ <anchor x="525" y="-100" name="L"/>
+ <anchor x="1125" y="0" name="O"/>
+ <anchor x="1335" y="1000" name="R"/>
+ <anchor x="961" y="1635" name="U"/>
+ <outline>
+ <component base="LtnSmA"/>
+ <component base="CombRingAbv" xOffset="1182"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mA_T_ilde.glif b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mA_T_ilde.glif
new file mode 100644
index 0000000..4a46027
--- /dev/null
+++ b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mA_T_ilde.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmATilde" format="2">
+ <advance width="1185"/>
+ <unicode hex="00E3"/>
+ <anchor x="925" y="0" name="H"/>
+ <anchor x="525" y="-100" name="L"/>
+ <anchor x="1125" y="0" name="O"/>
+ <anchor x="1335" y="1000" name="R"/>
+ <anchor x="860" y="1490" name="U"/>
+ <outline>
+ <component base="LtnSmA"/>
+ <component base="CombTilde" xOffset="1215"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mB_.glif b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mB_.glif
new file mode 100644
index 0000000..92bd16b
--- /dev/null
+++ b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mB_.glif
@@ -0,0 +1,55 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmB" format="2">
+ <advance width="1229"/>
+ <unicode hex="0062"/>
+ <anchor x="550" y="0" name="H"/>
+ <anchor x="525" y="-100" name="L"/>
+ <anchor x="1405" y="1000" name="R"/>
+ <anchor x="958" y="1635" name="U"/>
+ <outline>
+ <contour>
+ <point x="482" y="432" type="line"/>
+ <point x="576" y="610"/>
+ <point x="726" y="787"/>
+ <point x="829" y="787" type="curve" smooth="yes"/>
+ <point x="911" y="787"/>
+ <point x="946" y="705"/>
+ <point x="946" y="590" type="curve" smooth="yes"/>
+ <point x="946" y="465"/>
+ <point x="897" y="350"/>
+ <point x="823" y="275" type="curve" smooth="yes"/>
+ <point x="769" y="221"/>
+ <point x="703" y="188"/>
+ <point x="631" y="188" type="curve" smooth="yes"/>
+ <point x="564" y="188"/>
+ <point x="502" y="202"/>
+ <point x="434" y="238" type="curve"/>
+ </contour>
+ <contour>
+ <point x="445" y="1585" type="line"/>
+ <point x="445" y="1439"/>
+ <point x="404" y="1242"/>
+ <point x="367" y="1095" type="curve" smooth="yes"/>
+ <point x="110" y="64" type="line"/>
+ <point x="252" y="16"/>
+ <point x="400" y="-25"/>
+ <point x="593" y="-25" type="curve" smooth="yes"/>
+ <point x="727" y="-25"/>
+ <point x="845" y="19"/>
+ <point x="942" y="91" type="curve" smooth="yes"/>
+ <point x="1122" y="224"/>
+ <point x="1229" y="453"/>
+ <point x="1229" y="672" type="curve" smooth="yes"/>
+ <point x="1229" y="906"/>
+ <point x="1138" y="1030"/>
+ <point x="985" y="1030" type="curve" smooth="yes"/>
+ <point x="822" y="1030"/>
+ <point x="684" y="906"/>
+ <point x="562" y="756" type="curve"/>
+ <point x="646" y="1095" type="line" smooth="yes"/>
+ <point x="686" y="1255"/>
+ <point x="725" y="1474"/>
+ <point x="725" y="1585" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mC_.glif b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mC_.glif
new file mode 100644
index 0000000..62c096c
--- /dev/null
+++ b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mC_.glif
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmC" format="2">
+ <advance width="1019"/>
+ <unicode hex="0063"/>
+ <anchor x="495" y="0" name="H"/>
+ <anchor x="490" y="-100" name="L"/>
+ <anchor x="1210" y="1000" name="R"/>
+ <anchor x="790" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="1099" y="959" type="line"/>
+ <point x="1035" y="997"/>
+ <point x="928" y="1030"/>
+ <point x="796" y="1030" type="curve" smooth="yes"/>
+ <point x="446" y="1030"/>
+ <point x="150" y="774"/>
+ <point x="150" y="386" type="curve" smooth="yes"/>
+ <point x="150" y="137"/>
+ <point x="341" y="-25"/>
+ <point x="569" y="-25" type="curve" smooth="yes"/>
+ <point x="718" y="-25"/>
+ <point x="835" y="11"/>
+ <point x="927" y="69" type="curve"/>
+ <point x="937" y="311" type="line"/>
+ <point x="840" y="238"/>
+ <point x="755" y="203"/>
+ <point x="625" y="203" type="curve" smooth="yes"/>
+ <point x="494" y="203"/>
+ <point x="417" y="302"/>
+ <point x="417" y="416" type="curve" smooth="yes"/>
+ <point x="417" y="661"/>
+ <point x="588" y="802"/>
+ <point x="754" y="802" type="curve" smooth="yes"/>
+ <point x="857" y="802"/>
+ <point x="918" y="781"/>
+ <point x="993" y="720" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mD_.glif b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mD_.glif
new file mode 100644
index 0000000..fa38d37
--- /dev/null
+++ b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mD_.glif
@@ -0,0 +1,65 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmD" format="2">
+ <advance width="1265"/>
+ <unicode hex="0064"/>
+ <anchor x="535" y="0" name="H"/>
+ <anchor x="540" y="-100" name="L"/>
+ <anchor x="1475" y="1000" name="R"/>
+ <anchor x="958" y="1635" name="U"/>
+ <outline>
+ <contour>
+ <point x="913" y="558" type="line"/>
+ <point x="861" y="438"/>
+ <point x="666" y="200"/>
+ <point x="560" y="200" type="curve" smooth="yes"/>
+ <point x="470" y="200"/>
+ <point x="427" y="263"/>
+ <point x="427" y="367" type="curve" smooth="yes"/>
+ <point x="427" y="480"/>
+ <point x="469" y="626"/>
+ <point x="554" y="714" type="curve" smooth="yes"/>
+ <point x="599" y="761"/>
+ <point x="657" y="792"/>
+ <point x="727" y="792" type="curve" smooth="yes"/>
+ <point x="820" y="792"/>
+ <point x="876" y="775"/>
+ <point x="957" y="731" type="curve"/>
+ </contour>
+ <contour>
+ <point x="1144" y="1585" type="line"/>
+ <point x="1144" y="1471"/>
+ <point x="1116" y="1327"/>
+ <point x="1079" y="1175" type="curve" smooth="yes"/>
+ <point x="1020" y="935" type="line"/>
+ <point x="949" y="989"/>
+ <point x="845" y="1030"/>
+ <point x="756" y="1030" type="curve" smooth="yes"/>
+ <point x="630" y="1030"/>
+ <point x="518" y="987"/>
+ <point x="426" y="917" type="curve" smooth="yes"/>
+ <point x="250" y="784"/>
+ <point x="145" y="553"/>
+ <point x="145" y="341" type="curve" smooth="yes"/>
+ <point x="145" y="130"/>
+ <point x="258" y="-25"/>
+ <point x="448" y="-25" type="curve" smooth="yes"/>
+ <point x="597" y="-25"/>
+ <point x="785" y="145"/>
+ <point x="867" y="267" type="curve"/>
+ <point x="855" y="181"/>
+ <point x="855" y="72"/>
+ <point x="855" y="0" type="curve"/>
+ <point x="1130" y="0" type="line"/>
+ <point x="1126" y="23"/>
+ <point x="1125" y="63"/>
+ <point x="1125" y="100" type="curve" smooth="yes"/>
+ <point x="1125" y="200"/>
+ <point x="1142" y="340"/>
+ <point x="1185" y="520" type="curve" smooth="yes"/>
+ <point x="1345" y="1190" type="line" smooth="yes"/>
+ <point x="1387" y="1366"/>
+ <point x="1415" y="1490"/>
+ <point x="1415" y="1585" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mE_.glif b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mE_.glif
new file mode 100644
index 0000000..49f5856
--- /dev/null
+++ b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mE_.glif
@@ -0,0 +1,52 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmE" format="2">
+ <advance width="1087"/>
+ <unicode hex="0065"/>
+ <anchor x="509" y="0" name="H"/>
+ <anchor x="555" y="-100" name="L"/>
+ <anchor x="840" y="0" name="O"/>
+ <anchor x="1320" y="1000" name="R"/>
+ <anchor x="752" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="1013" y="303" type="line"/>
+ <point x="871" y="230"/>
+ <point x="739" y="198"/>
+ <point x="608" y="198" type="curve" smooth="yes"/>
+ <point x="459" y="198"/>
+ <point x="401" y="297"/>
+ <point x="401" y="428" type="curve" smooth="yes"/>
+ <point x="401" y="683"/>
+ <point x="552" y="822"/>
+ <point x="713" y="822" type="curve" smooth="yes"/>
+ <point x="811" y="822"/>
+ <point x="869" y="782"/>
+ <point x="869" y="720" type="curve" smooth="yes"/>
+ <point x="869" y="635"/>
+ <point x="777" y="580"/>
+ <point x="533" y="580" type="curve" smooth="yes"/>
+ <point x="461" y="580"/>
+ <point x="385" y="589"/>
+ <point x="283" y="610" type="curve"/>
+ <point x="283" y="437" type="line"/>
+ <point x="353" y="422"/>
+ <point x="487" y="413"/>
+ <point x="569" y="413" type="curve" smooth="yes"/>
+ <point x="935" y="413"/>
+ <point x="1125" y="583"/>
+ <point x="1125" y="774" type="curve" smooth="yes"/>
+ <point x="1125" y="922"/>
+ <point x="993" y="1030"/>
+ <point x="769" y="1030" type="curve" smooth="yes"/>
+ <point x="435" y="1030"/>
+ <point x="148" y="775"/>
+ <point x="148" y="388" type="curve" smooth="yes"/>
+ <point x="148" y="135"/>
+ <point x="332" y="-25"/>
+ <point x="556" y="-25" type="curve" smooth="yes"/>
+ <point x="712" y="-25"/>
+ <point x="835" y="2"/>
+ <point x="997" y="74" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mF_.glif b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mF_.glif
new file mode 100644
index 0000000..fd86bf3
--- /dev/null
+++ b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mF_.glif
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmF" format="2">
+ <advance width="859"/>
+ <unicode hex="0066"/>
+ <anchor x="320" y="0" name="H"/>
+ <anchor x="400" y="-100" name="L"/>
+ <anchor x="948" y="1635" name="U"/>
+ <outline>
+ <contour>
+ <point x="180" y="797" type="line"/>
+ <point x="915" y="797" type="line"/>
+ <point x="965" y="995" type="line"/>
+ <point x="230" y="995" type="line"/>
+ </contour>
+ <contour>
+ <point x="1189" y="1534" type="line"/>
+ <point x="1139" y="1572"/>
+ <point x="1040" y="1604"/>
+ <point x="966" y="1604" type="curve" smooth="yes"/>
+ <point x="719" y="1604"/>
+ <point x="535" y="1455"/>
+ <point x="460" y="1158" type="curve" smooth="yes"/>
+ <point x="416" y="983"/>
+ <point x="253" y="334"/>
+ <point x="232" y="0" type="curve"/>
+ <point x="542" y="0" type="line"/>
+ <point x="536" y="28"/>
+ <point x="533" y="66"/>
+ <point x="533" y="110" type="curve" smooth="yes"/>
+ <point x="533" y="213"/>
+ <point x="550" y="356"/>
+ <point x="581" y="489" type="curve" smooth="yes"/>
+ <point x="649" y="784"/>
+ <point x="682" y="926"/>
+ <point x="735" y="1147" type="curve" smooth="yes"/>
+ <point x="774" y="1309"/>
+ <point x="836" y="1373"/>
+ <point x="932" y="1373" type="curve" smooth="yes"/>
+ <point x="981" y="1373"/>
+ <point x="1043" y="1348"/>
+ <point x="1076" y="1309" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mG_.glif b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mG_.glif
new file mode 100644
index 0000000..c651c04
--- /dev/null
+++ b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mG_.glif
@@ -0,0 +1,91 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmG" format="2">
+ <advance width="1120"/>
+ <unicode hex="0067"/>
+ <anchor x="420" y="-465" name="H"/>
+ <anchor x="403" y="-535" name="L"/>
+ <anchor x="1360" y="1000" name="R"/>
+ <anchor x="782" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="1027" y="-117" type="curve" smooth="yes"/>
+ <point x="1027" y="8"/>
+ <point x="938" y="114"/>
+ <point x="702" y="163" type="curve" smooth="yes"/>
+ <point x="473" y="210"/>
+ <point x="402" y="217"/>
+ <point x="402" y="249" type="curve" smooth="yes"/>
+ <point x="402" y="279"/>
+ <point x="493" y="321"/>
+ <point x="584" y="346" type="curve"/>
+ <point x="359" y="391" type="line"/>
+ <point x="263" y="354"/>
+ <point x="161" y="283"/>
+ <point x="161" y="188" type="curve" smooth="yes"/>
+ <point x="161" y="101"/>
+ <point x="230" y="4"/>
+ <point x="451" y="-23" type="curve" smooth="yes"/>
+ <point x="669" y="-50"/>
+ <point x="740" y="-97"/>
+ <point x="740" y="-157" type="curve" smooth="yes"/>
+ <point x="740" y="-245"/>
+ <point x="591" y="-299"/>
+ <point x="457" y="-299" type="curve" smooth="yes"/>
+ <point x="286" y="-299"/>
+ <point x="197" y="-233"/>
+ <point x="197" y="-180" type="curve" smooth="yes"/>
+ <point x="197" y="-74"/>
+ <point x="405" y="-4"/>
+ <point x="476" y="20" type="curve"/>
+ <point x="476" y="49"/>
+ <point x="250" y="74"/>
+ <point x="250" y="74" type="curve"/>
+ <point x="103" y="20"/>
+ <point x="-91" y="-65"/>
+ <point x="-91" y="-233" type="curve" smooth="yes"/>
+ <point x="-91" y="-409"/>
+ <point x="166" y="-500"/>
+ <point x="392" y="-500" type="curve" smooth="yes"/>
+ <point x="690" y="-500"/>
+ <point x="1027" y="-380"/>
+ </contour>
+ <contour>
+ <point x="1268" y="1030" type="line"/>
+ <point x="1168" y="1023"/>
+ <point x="1027" y="987"/>
+ <point x="924" y="931" type="curve"/>
+ <point x="946" y="762" type="line"/>
+ <point x="1048" y="800"/>
+ <point x="1132" y="815"/>
+ <point x="1205" y="817" type="curve"/>
+ </contour>
+ <contour>
+ <point x="198" y="627" type="curve" smooth="yes"/>
+ <point x="198" y="450"/>
+ <point x="353" y="302"/>
+ <point x="572" y="302" type="curve" smooth="yes"/>
+ <point x="824" y="302"/>
+ <point x="1087" y="444"/>
+ <point x="1087" y="702" type="curve" smooth="yes"/>
+ <point x="1087" y="874"/>
+ <point x="955" y="1030"/>
+ <point x="703" y="1030" type="curve" smooth="yes"/>
+ <point x="454" y="1030"/>
+ <point x="198" y="881"/>
+ </contour>
+ <contour>
+ <point x="663" y="829" type="curve" smooth="yes"/>
+ <point x="761" y="829"/>
+ <point x="842" y="762"/>
+ <point x="842" y="675" type="curve" smooth="yes"/>
+ <point x="842" y="559"/>
+ <point x="733" y="496"/>
+ <point x="620" y="496" type="curve" smooth="yes"/>
+ <point x="524" y="496"/>
+ <point x="450" y="569"/>
+ <point x="450" y="653" type="curve" smooth="yes"/>
+ <point x="450" y="769"/>
+ <point x="560" y="829"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mH_.glif b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mH_.glif
new file mode 100644
index 0000000..7160c61
--- /dev/null
+++ b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mH_.glif
@@ -0,0 +1,54 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmH" format="2">
+ <advance width="1273"/>
+ <unicode hex="0068"/>
+ <anchor x="220" y="0" name="H"/>
+ <anchor x="635" y="-100" name="L"/>
+ <anchor x="968" y="1635" name="U"/>
+ <outline>
+ <contour>
+ <point x="1140" y="0" type="line"/>
+ <point x="1135" y="29"/>
+ <point x="1129" y="60"/>
+ <point x="1129" y="90" type="curve" smooth="yes"/>
+ <point x="1129" y="135"/>
+ <point x="1134" y="170"/>
+ <point x="1141" y="215" type="curve" smooth="yes"/>
+ <point x="1171" y="400"/>
+ <point x="1253" y="590"/>
+ <point x="1253" y="725" type="curve" smooth="yes"/>
+ <point x="1253" y="900"/>
+ <point x="1183" y="1030"/>
+ <point x="990" y="1030" type="curve" smooth="yes"/>
+ <point x="849" y="1030"/>
+ <point x="694" y="902"/>
+ <point x="566" y="740" type="curve"/>
+ <point x="656" y="1095" type="line" smooth="yes"/>
+ <point x="696" y="1255"/>
+ <point x="735" y="1474"/>
+ <point x="735" y="1585" type="curve"/>
+ <point x="455" y="1585" type="line"/>
+ <point x="455" y="1439"/>
+ <point x="413" y="1242"/>
+ <point x="377" y="1095" type="curve" smooth="yes"/>
+ <point x="105" y="0" type="line"/>
+ <point x="385" y="0" type="line"/>
+ <point x="485" y="400" type="line"/>
+ <point x="580" y="596"/>
+ <point x="745" y="787"/>
+ <point x="850" y="787" type="curve" smooth="yes"/>
+ <point x="937" y="787"/>
+ <point x="953" y="722"/>
+ <point x="953" y="625" type="curve" smooth="yes"/>
+ <point x="953" y="529"/>
+ <point x="889" y="374"/>
+ <point x="863" y="213" type="curve" smooth="yes"/>
+ <point x="857" y="174"/>
+ <point x="853" y="134"/>
+ <point x="853" y="95" type="curve" smooth="yes"/>
+ <point x="853" y="63"/>
+ <point x="854" y="31"/>
+ <point x="860" y="0" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mI_.glif b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mI_.glif
new file mode 100644
index 0000000..c19769e
--- /dev/null
+++ b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mI_.glif
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmI" format="2">
+ <advance width="625"/>
+ <unicode hex="0069"/>
+ <anchor x="260" y="0" name="H"/>
+ <anchor x="335" y="-100" name="L"/>
+ <anchor x="520" y="0" name="O"/>
+ <anchor x="830" y="1000" name="R"/>
+ <anchor x="535" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="341" y="1010" type="line"/>
+ <point x="341" y="877"/>
+ <point x="290" y="698"/>
+ <point x="252" y="547" type="curve" smooth="yes"/>
+ <point x="213" y="390" type="line" smooth="yes"/>
+ <point x="193" y="309"/>
+ <point x="170" y="191"/>
+ <point x="170" y="88" type="curve" smooth="yes"/>
+ <point x="170" y="57"/>
+ <point x="172" y="27"/>
+ <point x="177" y="0" type="curve"/>
+ <point x="472" y="0" type="line"/>
+ <point x="463" y="39"/>
+ <point x="459" y="82"/>
+ <point x="459" y="126" type="curve" smooth="yes"/>
+ <point x="459" y="217"/>
+ <point x="475" y="310"/>
+ <point x="486" y="358" type="curve" smooth="yes"/>
+ <point x="531" y="546" type="line" smooth="yes"/>
+ <point x="572" y="719"/>
+ <point x="621" y="875"/>
+ <point x="625" y="1010" type="curve"/>
+ </contour>
+ <contour>
+ <point x="404" y="1341" type="curve" smooth="yes"/>
+ <point x="404" y="1259"/>
+ <point x="462" y="1197"/>
+ <point x="548" y="1197" type="curve" smooth="yes"/>
+ <point x="668" y="1197"/>
+ <point x="759" y="1292"/>
+ <point x="759" y="1403" type="curve" smooth="yes"/>
+ <point x="759" y="1483"/>
+ <point x="701" y="1544"/>
+ <point x="614" y="1544" type="curve" smooth="yes"/>
+ <point x="496" y="1544"/>
+ <point x="404" y="1451"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mJ_.glif b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mJ_.glif
new file mode 100644
index 0000000..a454f7a
--- /dev/null
+++ b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mJ_.glif
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmJ" format="2">
+ <advance width="695"/>
+ <unicode hex="006A"/>
+ <anchor x="-45" y="-500" name="L"/>
+ <anchor x="565" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="361" y="1010" type="line"/>
+ <point x="361" y="866"/>
+ <point x="284" y="395"/>
+ <point x="205" y="87" type="curve" smooth="yes"/>
+ <point x="148" y="-136"/>
+ <point x="54" y="-221"/>
+ <point x="-56" y="-221" type="curve" smooth="yes"/>
+ <point x="-137" y="-221"/>
+ <point x="-217" y="-187"/>
+ <point x="-252" y="-150" type="curve"/>
+ <point x="-355" y="-385" type="line"/>
+ <point x="-321" y="-417"/>
+ <point x="-172" y="-465"/>
+ <point x="-79" y="-465" type="curve" smooth="yes"/>
+ <point x="170" y="-465"/>
+ <point x="388" y="-295"/>
+ <point x="481" y="75" type="curve" smooth="yes"/>
+ <point x="501" y="157"/>
+ <point x="646" y="882"/>
+ <point x="646" y="1010" type="curve"/>
+ </contour>
+ <contour>
+ <point x="395" y="1341" type="curve" smooth="yes"/>
+ <point x="395" y="1259"/>
+ <point x="453" y="1197"/>
+ <point x="539" y="1197" type="curve" smooth="yes"/>
+ <point x="659" y="1197"/>
+ <point x="750" y="1292"/>
+ <point x="750" y="1403" type="curve" smooth="yes"/>
+ <point x="750" y="1483"/>
+ <point x="692" y="1544"/>
+ <point x="605" y="1544" type="curve" smooth="yes"/>
+ <point x="487" y="1544"/>
+ <point x="395" y="1451"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mK_.glif b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mK_.glif
new file mode 100644
index 0000000..ed9d720
--- /dev/null
+++ b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mK_.glif
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmK" format="2">
+ <advance width="1209"/>
+ <unicode hex="006B"/>
+ <anchor x="880" y="0" name="H"/>
+ <anchor x="600" y="-100" name="L"/>
+ <anchor x="1330" y="1000" name="R"/>
+ <anchor x="943" y="1635" name="U"/>
+ <outline>
+ <contour>
+ <point x="964" y="1010" type="line"/>
+ <point x="920" y="864"/>
+ <point x="682" y="702"/>
+ <point x="483" y="576" type="curve"/>
+ <point x="676" y="518" type="line"/>
+ <point x="915" y="662"/>
+ <point x="1289" y="867"/>
+ <point x="1289" y="1010" type="curve"/>
+ </contour>
+ <contour>
+ <point x="1168" y="0" type="line"/>
+ <point x="992" y="302"/>
+ <point x="856" y="620"/>
+ <point x="633" y="620" type="curve"/>
+ <point x="442" y="529" type="line"/>
+ <point x="606" y="529"/>
+ <point x="722" y="252"/>
+ <point x="831" y="0" type="curve"/>
+ </contour>
+ <contour>
+ <point x="394" y="0" type="line"/>
+ <point x="669" y="1105" type="line" smooth="yes"/>
+ <point x="713" y="1280"/>
+ <point x="744" y="1497"/>
+ <point x="744" y="1585" type="curve"/>
+ <point x="462" y="1585" type="line"/>
+ <point x="462" y="1471"/>
+ <point x="431" y="1274"/>
+ <point x="393" y="1122" type="curve" smooth="yes"/>
+ <point x="345" y="928"/>
+ <point x="115" y="0"/>
+ <point x="115" y="0" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mL_.glif b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mL_.glif
new file mode 100644
index 0000000..3ecb48c
--- /dev/null
+++ b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mL_.glif
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmL" format="2">
+ <advance width="641"/>
+ <unicode hex="006C"/>
+ <anchor x="275" y="0" name="H"/>
+ <anchor x="350" y="-100" name="L"/>
+ <anchor x="850" y="1000" name="R"/>
+ <anchor x="630" y="1635" name="U"/>
+ <outline>
+ <contour>
+ <point x="461" y="1585" type="line"/>
+ <point x="461" y="1439"/>
+ <point x="420" y="1242"/>
+ <point x="383" y="1095" type="curve" smooth="yes"/>
+ <point x="232" y="488" type="line" smooth="yes"/>
+ <point x="208" y="394"/>
+ <point x="175" y="269"/>
+ <point x="175" y="116" type="curve" smooth="yes"/>
+ <point x="175" y="89"/>
+ <point x="178" y="30"/>
+ <point x="180" y="0" type="curve"/>
+ <point x="470" y="0" type="line"/>
+ <point x="464" y="39"/>
+ <point x="461" y="80"/>
+ <point x="461" y="121" type="curve" smooth="yes"/>
+ <point x="461" y="277"/>
+ <point x="498" y="434"/>
+ <point x="518" y="515" type="curve" smooth="yes"/>
+ <point x="662" y="1095" type="line" smooth="yes"/>
+ <point x="702" y="1255"/>
+ <point x="741" y="1474"/>
+ <point x="741" y="1585" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mM_.glif b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mM_.glif
new file mode 100644
index 0000000..6f5967a
--- /dev/null
+++ b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mM_.glif
@@ -0,0 +1,80 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmM" format="2">
+ <advance width="1770"/>
+ <unicode hex="006D"/>
+ <anchor x="830" y="0" name="H"/>
+ <anchor x="805" y="-100" name="L"/>
+ <anchor x="1105" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="1609" y="0" type="line"/>
+ <point x="1604" y="29"/>
+ <point x="1602" y="60"/>
+ <point x="1602" y="90" type="curve" smooth="yes"/>
+ <point x="1602" y="136"/>
+ <point x="1606" y="181"/>
+ <point x="1613" y="228" type="curve" smooth="yes"/>
+ <point x="1628" y="333"/>
+ <point x="1747" y="670"/>
+ <point x="1747" y="822" type="curve" smooth="yes"/>
+ <point x="1747" y="958"/>
+ <point x="1681" y="1030"/>
+ <point x="1547" y="1030" type="curve" smooth="yes"/>
+ <point x="1391" y="1030"/>
+ <point x="1227" y="876"/>
+ <point x="1120" y="705" type="curve"/>
+ <point x="1125" y="738"/>
+ <point x="1127" y="769"/>
+ <point x="1127" y="798" type="curve" smooth="yes"/>
+ <point x="1127" y="944"/>
+ <point x="1067" y="1030"/>
+ <point x="941" y="1030" type="curve" smooth="yes"/>
+ <point x="815" y="1030"/>
+ <point x="664" y="911"/>
+ <point x="537" y="715" type="curve"/>
+ <point x="553" y="840"/>
+ <point x="556" y="911"/>
+ <point x="556" y="955" type="curve" smooth="yes"/>
+ <point x="556" y="981"/>
+ <point x="554" y="998"/>
+ <point x="551" y="1010" type="curve"/>
+ <point x="291" y="1010" type="line"/>
+ <point x="293" y="999"/>
+ <point x="294" y="975"/>
+ <point x="294" y="942" type="curve" smooth="yes"/>
+ <point x="294" y="855"/>
+ <point x="286" y="710"/>
+ <point x="261" y="609" type="curve" smooth="yes"/>
+ <point x="110" y="0" type="line"/>
+ <point x="390" y="0" type="line"/>
+ <point x="479" y="370" type="line"/>
+ <point x="541" y="552"/>
+ <point x="711" y="787"/>
+ <point x="791" y="787" type="curve" smooth="yes"/>
+ <point x="843" y="787"/>
+ <point x="857" y="741"/>
+ <point x="857" y="688" type="curve" smooth="yes"/>
+ <point x="857" y="625"/>
+ <point x="832" y="535"/>
+ <point x="819" y="483" type="curve" smooth="yes"/>
+ <point x="695" y="0" type="line"/>
+ <point x="975" y="0" type="line"/>
+ <point x="1067" y="370" type="line"/>
+ <point x="1139" y="556"/>
+ <point x="1300" y="787"/>
+ <point x="1381" y="787" type="curve" smooth="yes"/>
+ <point x="1434" y="787"/>
+ <point x="1450" y="762"/>
+ <point x="1450" y="706" type="curve" smooth="yes"/>
+ <point x="1450" y="592"/>
+ <point x="1350" y="331"/>
+ <point x="1330" y="205" type="curve" smooth="yes"/>
+ <point x="1324" y="168"/>
+ <point x="1321" y="132"/>
+ <point x="1321" y="95" type="curve" smooth="yes"/>
+ <point x="1321" y="63"/>
+ <point x="1323" y="31"/>
+ <point x="1329" y="0" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mN_.glif b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mN_.glif
new file mode 100644
index 0000000..009224e
--- /dev/null
+++ b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mN_.glif
@@ -0,0 +1,57 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmN" format="2">
+ <advance width="1281"/>
+ <unicode hex="006E"/>
+ <anchor x="560" y="0" name="H"/>
+ <anchor x="635" y="-100" name="L"/>
+ <anchor x="835" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="1145" y="0" type="line"/>
+ <point x="1140" y="29"/>
+ <point x="1138" y="60"/>
+ <point x="1138" y="90" type="curve" smooth="yes"/>
+ <point x="1138" y="136"/>
+ <point x="1141" y="182"/>
+ <point x="1149" y="228" type="curve" smooth="yes"/>
+ <point x="1173" y="366"/>
+ <point x="1258" y="591"/>
+ <point x="1258" y="725" type="curve" smooth="yes"/>
+ <point x="1258" y="890"/>
+ <point x="1188" y="1030"/>
+ <point x="995" y="1030" type="curve" smooth="yes"/>
+ <point x="844" y="1030"/>
+ <point x="685" y="903"/>
+ <point x="546" y="715" type="curve"/>
+ <point x="555" y="771"/>
+ <point x="569" y="875"/>
+ <point x="569" y="933" type="curve" smooth="yes"/>
+ <point x="569" y="962"/>
+ <point x="568" y="988"/>
+ <point x="565" y="1010" type="curve"/>
+ <point x="290" y="1010" type="line"/>
+ <point x="290" y="962" type="line" smooth="yes"/>
+ <point x="290" y="859"/>
+ <point x="280" y="685"/>
+ <point x="261" y="609" type="curve" smooth="yes"/>
+ <point x="110" y="0" type="line"/>
+ <point x="388" y="0" type="line"/>
+ <point x="490" y="405" type="line"/>
+ <point x="569" y="569"/>
+ <point x="740" y="787"/>
+ <point x="835" y="787" type="curve" smooth="yes"/>
+ <point x="922" y="787"/>
+ <point x="958" y="732"/>
+ <point x="958" y="625" type="curve" smooth="yes"/>
+ <point x="958" y="527"/>
+ <point x="891" y="369"/>
+ <point x="866" y="205" type="curve" smooth="yes"/>
+ <point x="860" y="168"/>
+ <point x="857" y="132"/>
+ <point x="857" y="95" type="curve" smooth="yes"/>
+ <point x="857" y="63"/>
+ <point x="859" y="31"/>
+ <point x="865" y="0" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mO_.glif b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mO_.glif
new file mode 100644
index 0000000..d21fb58
--- /dev/null
+++ b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mO_.glif
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmO" format="2">
+ <advance width="1139"/>
+ <unicode hex="006F"/>
+ <anchor x="518" y="0" name="H"/>
+ <anchor x="530" y="-100" name="L"/>
+ <anchor x="730" y="0" name="O"/>
+ <anchor x="1350" y="1000" name="R"/>
+ <anchor x="795" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="140" y="370" type="curve" smooth="yes"/>
+ <point x="140" y="128"/>
+ <point x="289" y="-25"/>
+ <point x="520" y="-25" type="curve" smooth="yes"/>
+ <point x="906" y="-25"/>
+ <point x="1144" y="295"/>
+ <point x="1144" y="641" type="curve" smooth="yes"/>
+ <point x="1144" y="880"/>
+ <point x="1003" y="1030"/>
+ <point x="773" y="1030" type="curve" smooth="yes"/>
+ <point x="390" y="1030"/>
+ <point x="140" y="718"/>
+ </contour>
+ <contour>
+ <point x="718" y="807" type="curve" smooth="yes"/>
+ <point x="826" y="807"/>
+ <point x="879" y="737"/>
+ <point x="879" y="612" type="curve" smooth="yes"/>
+ <point x="879" y="413"/>
+ <point x="764" y="198"/>
+ <point x="566" y="198" type="curve" smooth="yes"/>
+ <point x="464" y="198"/>
+ <point x="404" y="264"/>
+ <point x="404" y="385" type="curve" smooth="yes"/>
+ <point x="404" y="570"/>
+ <point x="512" y="807"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mP_.glif b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mP_.glif
new file mode 100644
index 0000000..55c6e8b
--- /dev/null
+++ b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mP_.glif
@@ -0,0 +1,66 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmP" format="2">
+ <advance width="1272"/>
+ <unicode hex="0070"/>
+ <anchor x="121" y="-435" name="H"/>
+ <anchor x="555" y="-500" name="L"/>
+ <anchor x="1425" y="1000" name="R"/>
+ <anchor x="855" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="523" y="500" type="line"/>
+ <point x="605" y="650"/>
+ <point x="765" y="794"/>
+ <point x="854" y="794" type="curve" smooth="yes"/>
+ <point x="932" y="794"/>
+ <point x="975" y="719"/>
+ <point x="975" y="609" type="curve" smooth="yes"/>
+ <point x="975" y="478"/>
+ <point x="924" y="334"/>
+ <point x="823" y="258" type="curve" smooth="yes"/>
+ <point x="778" y="224"/>
+ <point x="723" y="204"/>
+ <point x="658" y="204" type="curve" smooth="yes"/>
+ <point x="589" y="204"/>
+ <point x="517" y="243"/>
+ <point x="473" y="297" type="curve"/>
+ </contour>
+ <contour>
+ <point x="300" y="1010" type="line"/>
+ <point x="300" y="962" type="line" smooth="yes"/>
+ <point x="300" y="859"/>
+ <point x="290" y="685"/>
+ <point x="271" y="609" type="curve" smooth="yes"/>
+ <point x="75" y="-180" type="line" smooth="yes"/>
+ <point x="49" y="-286"/>
+ <point x="25" y="-403"/>
+ <point x="25" y="-485" type="curve"/>
+ <point x="314" y="-485" type="line"/>
+ <point x="314" y="-393"/>
+ <point x="328" y="-287"/>
+ <point x="362" y="-149" type="curve" smooth="yes"/>
+ <point x="415" y="64" type="line"/>
+ <point x="495" y="10"/>
+ <point x="562" y="-25"/>
+ <point x="667" y="-25" type="curve" smooth="yes"/>
+ <point x="750" y="-25"/>
+ <point x="833" y="-2"/>
+ <point x="909" y="40" type="curve" smooth="yes"/>
+ <point x="1112" y="152"/>
+ <point x="1267" y="398"/>
+ <point x="1267" y="685" type="curve" smooth="yes"/>
+ <point x="1267" y="884"/>
+ <point x="1176" y="1030"/>
+ <point x="1004" y="1030" type="curve" smooth="yes"/>
+ <point x="849" y="1030"/>
+ <point x="677" y="901"/>
+ <point x="565" y="752" type="curve"/>
+ <point x="574" y="808"/>
+ <point x="579" y="875"/>
+ <point x="579" y="933" type="curve" smooth="yes"/>
+ <point x="579" y="962"/>
+ <point x="578" y="988"/>
+ <point x="575" y="1010" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mQ_.glif b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mQ_.glif
new file mode 100644
index 0000000..d3068d2
--- /dev/null
+++ b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mQ_.glif
@@ -0,0 +1,54 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmQ" format="2">
+ <advance width="1206"/>
+ <unicode hex="0071"/>
+ <anchor x="415" y="-500" name="L"/>
+ <anchor x="1400" y="1000" name="R"/>
+ <anchor x="815" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="889" y="583" type="line"/>
+ <point x="832" y="467"/>
+ <point x="615" y="211"/>
+ <point x="520" y="211" type="curve" smooth="yes"/>
+ <point x="457" y="211"/>
+ <point x="429" y="263"/>
+ <point x="429" y="362" type="curve" smooth="yes"/>
+ <point x="429" y="484"/>
+ <point x="469" y="616"/>
+ <point x="551" y="702" type="curve" smooth="yes"/>
+ <point x="605" y="758"/>
+ <point x="676" y="794"/>
+ <point x="765" y="794" type="curve" smooth="yes"/>
+ <point x="806" y="794"/>
+ <point x="897" y="781"/>
+ <point x="933" y="762" type="curve"/>
+ </contour>
+ <contour>
+ <point x="936" y="-485" type="line"/>
+ <point x="936" y="-396"/>
+ <point x="951" y="-299"/>
+ <point x="978" y="-190" type="curve" smooth="yes"/>
+ <point x="1261" y="955" type="line"/>
+ <point x="1134" y="991"/>
+ <point x="972" y="1030"/>
+ <point x="819" y="1030" type="curve" smooth="yes"/>
+ <point x="678" y="1030"/>
+ <point x="516" y="969"/>
+ <point x="403" y="874" type="curve" smooth="yes"/>
+ <point x="244" y="739"/>
+ <point x="145" y="535"/>
+ <point x="145" y="331" type="curve" smooth="yes"/>
+ <point x="145" y="105"/>
+ <point x="275" y="-25"/>
+ <point x="391" y="-25" type="curve" smooth="yes"/>
+ <point x="529" y="-25"/>
+ <point x="729" y="134"/>
+ <point x="838" y="300" type="curve"/>
+ <point x="706" y="-185" type="line" smooth="yes"/>
+ <point x="675" y="-299"/>
+ <point x="661" y="-419"/>
+ <point x="661" y="-485" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mR_.glif b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mR_.glif
new file mode 100644
index 0000000..48a3cc8
--- /dev/null
+++ b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mR_.glif
@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmR" format="2">
+ <advance width="1021"/>
+ <unicode hex="0072"/>
+ <anchor x="225" y="0" name="H"/>
+ <anchor x="255" y="-100" name="L"/>
+ <anchor x="765" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="390" y="0" type="line"/>
+ <point x="494" y="420" type="line"/>
+ <point x="555" y="557"/>
+ <point x="727" y="773"/>
+ <point x="810" y="773" type="curve" smooth="yes"/>
+ <point x="864" y="773"/>
+ <point x="887" y="737"/>
+ <point x="887" y="678" type="curve" smooth="yes"/>
+ <point x="887" y="662"/>
+ <point x="885" y="644"/>
+ <point x="882" y="624" type="curve"/>
+ <point x="1114" y="658" type="line"/>
+ <point x="1123" y="706"/>
+ <point x="1136" y="752"/>
+ <point x="1136" y="794" type="curve" smooth="yes"/>
+ <point x="1136" y="931"/>
+ <point x="1084" y="1030"/>
+ <point x="963" y="1030" type="curve" smooth="yes"/>
+ <point x="828" y="1030"/>
+ <point x="670" y="883"/>
+ <point x="544" y="716" type="curve"/>
+ <point x="555" y="787"/>
+ <point x="570" y="960"/>
+ <point x="570" y="1010" type="curve"/>
+ <point x="295" y="1010" type="line"/>
+ <point x="295" y="962" type="line" smooth="yes"/>
+ <point x="295" y="894"/>
+ <point x="281" y="689"/>
+ <point x="261" y="609" type="curve" smooth="yes"/>
+ <point x="110" y="0" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mS_.glif b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mS_.glif
new file mode 100644
index 0000000..568c40a
--- /dev/null
+++ b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mS_.glif
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmS" format="2">
+ <advance width="1015"/>
+ <unicode hex="0073"/>
+ <anchor x="455" y="0" name="H"/>
+ <anchor x="530" y="-100" name="L"/>
+ <anchor x="745" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="1058" y="952" type="line"/>
+ <point x="990" y="990"/>
+ <point x="854" y="1030"/>
+ <point x="691" y="1030" type="curve" smooth="yes"/>
+ <point x="457" y="1030"/>
+ <point x="217" y="936"/>
+ <point x="217" y="722" type="curve" smooth="yes"/>
+ <point x="217" y="593"/>
+ <point x="306" y="517"/>
+ <point x="501" y="430" type="curve" smooth="yes"/>
+ <point x="648" y="364"/>
+ <point x="710" y="345"/>
+ <point x="710" y="288" type="curve" smooth="yes"/>
+ <point x="710" y="224"/>
+ <point x="649" y="197"/>
+ <point x="549" y="197" type="curve" smooth="yes"/>
+ <point x="392" y="197"/>
+ <point x="276" y="280"/>
+ <point x="197" y="371" type="curve"/>
+ <point x="72" y="129" type="line"/>
+ <point x="143" y="68"/>
+ <point x="319" y="-25"/>
+ <point x="498" y="-25" type="curve" smooth="yes"/>
+ <point x="767" y="-25"/>
+ <point x="979" y="104"/>
+ <point x="979" y="315" type="curve" smooth="yes"/>
+ <point x="979" y="440"/>
+ <point x="884" y="513"/>
+ <point x="695" y="600" type="curve" smooth="yes"/>
+ <point x="581" y="652"/>
+ <point x="477" y="688"/>
+ <point x="477" y="743" type="curve" smooth="yes"/>
+ <point x="477" y="785"/>
+ <point x="548" y="808"/>
+ <point x="646" y="808" type="curve" smooth="yes"/>
+ <point x="785" y="808"/>
+ <point x="895" y="764"/>
+ <point x="961" y="716" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mT_.glif b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mT_.glif
new file mode 100644
index 0000000..c6a02c1
--- /dev/null
+++ b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mT_.glif
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmT" format="2">
+ <advance width="900"/>
+ <unicode hex="0074"/>
+ <anchor x="470" y="0" name="H"/>
+ <anchor x="520" y="-100" name="L"/>
+ <anchor x="1075" y="1000" name="R"/>
+ <anchor x="640" y="1360" name="U"/>
+ <outline>
+ <contour>
+ <point x="831" y="278" type="line"/>
+ <point x="740" y="230"/>
+ <point x="670" y="204"/>
+ <point x="619" y="204" type="curve" smooth="yes"/>
+ <point x="556" y="204"/>
+ <point x="536" y="250"/>
+ <point x="536" y="318" type="curve" smooth="yes"/>
+ <point x="536" y="347"/>
+ <point x="539" y="380"/>
+ <point x="545" y="415" type="curve" smooth="yes"/>
+ <point x="567" y="549"/>
+ <point x="700" y="1039"/>
+ <point x="767" y="1307" type="curve"/>
+ <point x="487" y="1307" type="line"/>
+ <point x="419" y="1038"/>
+ <point x="265" y="471"/>
+ <point x="243" y="328" type="curve" smooth="yes"/>
+ <point x="239" y="302"/>
+ <point x="237" y="277"/>
+ <point x="237" y="253" type="curve" smooth="yes"/>
+ <point x="237" y="73"/>
+ <point x="351" y="-25"/>
+ <point x="518" y="-25" type="curve" smooth="yes"/>
+ <point x="590" y="-25"/>
+ <point x="703" y="-4"/>
+ <point x="812" y="55" type="curve"/>
+ </contour>
+ <contour>
+ <point x="945" y="797" type="line"/>
+ <point x="995" y="995" type="line"/>
+ <point x="220" y="995" type="line"/>
+ <point x="170" y="797" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mU_.glif b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mU_.glif
new file mode 100644
index 0000000..5067d38
--- /dev/null
+++ b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mU_.glif
@@ -0,0 +1,57 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmU" format="2">
+ <advance width="1257"/>
+ <unicode hex="0075"/>
+ <anchor x="455" y="0" name="H"/>
+ <anchor x="530" y="-100" name="L"/>
+ <anchor x="630" y="0" name="O"/>
+ <anchor x="1448" y="1000" name="R"/>
+ <anchor x="830" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="1117" y="0" type="line"/>
+ <point x="1113" y="29"/>
+ <point x="1112" y="62"/>
+ <point x="1112" y="100" type="curve" smooth="yes"/>
+ <point x="1112" y="206"/>
+ <point x="1131" y="341"/>
+ <point x="1157" y="455" type="curve" smooth="yes"/>
+ <point x="1212" y="689"/>
+ <point x="1274" y="905"/>
+ <point x="1282" y="1010" type="curve"/>
+ <point x="993" y="1010" type="line"/>
+ <point x="981" y="889"/>
+ <point x="992" y="918"/>
+ <point x="910" y="595" type="curve"/>
+ <point x="835" y="427"/>
+ <point x="618" y="205"/>
+ <point x="537" y="205" type="curve" smooth="yes"/>
+ <point x="491" y="205"/>
+ <point x="462" y="236"/>
+ <point x="462" y="308" type="curve" smooth="yes"/>
+ <point x="462" y="405"/>
+ <point x="536" y="663"/>
+ <point x="549" y="712" type="curve" smooth="yes"/>
+ <point x="583" y="847"/>
+ <point x="605" y="935"/>
+ <point x="610" y="1010" type="curve"/>
+ <point x="323" y="1010" type="line"/>
+ <point x="312" y="891"/>
+ <point x="296" y="819"/>
+ <point x="264" y="693" type="curve" smooth="yes"/>
+ <point x="191" y="401" type="line" smooth="yes"/>
+ <point x="173" y="330"/>
+ <point x="165" y="267"/>
+ <point x="165" y="214" type="curve" smooth="yes"/>
+ <point x="165" y="55"/>
+ <point x="252" y="-25"/>
+ <point x="381" y="-25" type="curve" smooth="yes"/>
+ <point x="545" y="-25"/>
+ <point x="769" y="160"/>
+ <point x="860" y="295" type="curve"/>
+ <point x="850" y="227"/>
+ <point x="842" y="53"/>
+ <point x="842" y="0" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mV_.glif b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mV_.glif
new file mode 100644
index 0000000..d7ceb46
--- /dev/null
+++ b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mV_.glif
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmV" format="2">
+ <advance width="1049"/>
+ <unicode hex="0076"/>
+ <anchor x="505" y="0" name="H"/>
+ <anchor x="410" y="-100" name="L"/>
+ <anchor x="690" y="0" name="O"/>
+ <anchor x="695" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="881" y="1010" type="line"/>
+ <point x="881" y="788"/>
+ <point x="719" y="534"/>
+ <point x="507" y="270" type="curve"/>
+ <point x="516" y="353"/>
+ <point x="521" y="457"/>
+ <point x="521" y="564" type="curve" smooth="yes"/>
+ <point x="521" y="730"/>
+ <point x="507" y="903"/>
+ <point x="472" y="1010" type="curve"/>
+ <point x="195" y="1010" type="line"/>
+ <point x="259" y="758"/>
+ <point x="282" y="509"/>
+ <point x="282" y="262" type="curve" smooth="yes"/>
+ <point x="282" y="174"/>
+ <point x="279" y="87"/>
+ <point x="274" y="0" type="curve"/>
+ <point x="535" y="0" type="line"/>
+ <point x="823" y="314"/>
+ <point x="1159" y="766"/>
+ <point x="1159" y="1010" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mW_.glif b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mW_.glif
new file mode 100644
index 0000000..02f3211
--- /dev/null
+++ b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mW_.glif
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmW" format="2">
+ <advance width="1620"/>
+ <unicode hex="0077"/>
+ <anchor x="700" y="-100" name="L"/>
+ <anchor x="1000" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="850" y="1010" type="line"/>
+ <point x="758" y="793"/>
+ <point x="592" y="496"/>
+ <point x="438" y="242" type="curve"/>
+ <point x="459" y="351"/>
+ <point x="476" y="509"/>
+ <point x="476" y="669" type="curve" smooth="yes"/>
+ <point x="476" y="788"/>
+ <point x="468" y="908"/>
+ <point x="448" y="1010" type="curve"/>
+ <point x="190" y="1010" type="line"/>
+ <point x="230" y="831"/>
+ <point x="236" y="678"/>
+ <point x="236" y="494" type="curve" smooth="yes"/>
+ <point x="236" y="364"/>
+ <point x="228" y="211"/>
+ <point x="209" y="0" type="curve"/>
+ <point x="499" y="0" type="line"/>
+ <point x="624" y="181"/>
+ <point x="838" y="560"/>
+ <point x="901" y="690" type="curve"/>
+ <point x="919" y="477"/>
+ <point x="919" y="212"/>
+ <point x="919" y="0" type="curve"/>
+ <point x="1179" y="0" type="line"/>
+ <point x="1430" y="328"/>
+ <point x="1710" y="775"/>
+ <point x="1710" y="1010" type="curve"/>
+ <point x="1432" y="1010" type="line"/>
+ <point x="1432" y="995" type="line" smooth="yes"/>
+ <point x="1432" y="797"/>
+ <point x="1245" y="435"/>
+ <point x="1106" y="242" type="curve"/>
+ <point x="1108" y="298"/>
+ <point x="1108" y="355"/>
+ <point x="1108" y="411" type="curve" smooth="yes"/>
+ <point x="1108" y="637"/>
+ <point x="1096" y="860"/>
+ <point x="1070" y="1010" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mX_.glif b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mX_.glif
new file mode 100644
index 0000000..2e620de
--- /dev/null
+++ b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mX_.glif
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmX" format="2">
+ <advance width="1104"/>
+ <unicode hex="0078"/>
+ <anchor x="900" y="0" name="H"/>
+ <anchor x="505" y="-100" name="L"/>
+ <anchor x="730" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="1040" y="0" type="line"/>
+ <point x="860" y="133"/>
+ <point x="655" y="882"/>
+ <point x="524" y="1010" type="curve"/>
+ <point x="186" y="1010" type="line"/>
+ <point x="425" y="832"/>
+ <point x="593" y="141"/>
+ <point x="713" y="0" type="curve"/>
+ </contour>
+ <contour>
+ <point x="509" y="572" type="line"/>
+ <point x="291" y="463"/>
+ <point x="62" y="230"/>
+ <point x="35" y="0" type="curve"/>
+ <point x="335" y="0" type="line"/>
+ <point x="336" y="156"/>
+ <point x="470" y="390"/>
+ <point x="658" y="477" type="curve"/>
+ </contour>
+ <contour>
+ <point x="764" y="471" type="line"/>
+ <point x="943" y="591"/>
+ <point x="1197" y="808"/>
+ <point x="1204" y="1010" type="curve"/>
+ <point x="894" y="1010" type="line"/>
+ <point x="894" y="852"/>
+ <point x="773" y="665"/>
+ <point x="616" y="571" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mY_.glif b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mY_.glif
new file mode 100644
index 0000000..f2ae46b
--- /dev/null
+++ b/tests/reference/ufo/psfsetkeys.ufo/glyphs/L_tnS_mY_.glif
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmY" format="2">
+ <advance width="1041"/>
+ <unicode hex="0079"/>
+ <anchor x="810" y="-100" name="L"/>
+ <anchor x="1325" y="1000" name="R"/>
+ <anchor x="640" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="847" y="1010" type="line"/>
+ <point x="851" y="994"/>
+ <point x="852" y="977"/>
+ <point x="852" y="958" type="curve" smooth="yes"/>
+ <point x="852" y="786"/>
+ <point x="713" y="473"/>
+ <point x="596" y="260" type="curve"/>
+ <point x="596" y="478"/>
+ <point x="503" y="877"/>
+ <point x="403" y="1010" type="curve"/>
+ <point x="120" y="1010" type="line"/>
+ <point x="259" y="811"/>
+ <point x="401" y="401"/>
+ <point x="409" y="-18" type="curve"/>
+ <point x="283" y="-207"/>
+ <point x="183" y="-250"/>
+ <point x="114" y="-250" type="curve" smooth="yes"/>
+ <point x="48" y="-250"/>
+ <point x="-33" y="-201"/>
+ <point x="-63" y="-165" type="curve"/>
+ <point x="-195" y="-381" type="line"/>
+ <point x="-136" y="-435"/>
+ <point x="-13" y="-465"/>
+ <point x="78" y="-465" type="curve" smooth="yes"/>
+ <point x="260" y="-465"/>
+ <point x="447" y="-385"/>
+ <point x="684" y="0" type="curve" smooth="yes"/>
+ <point x="919" y="381"/>
+ <point x="1116" y="766"/>
+ <point x="1116" y="960" type="curve" smooth="yes"/>
+ <point x="1116" y="978"/>
+ <point x="1114" y="995"/>
+ <point x="1110" y="1010" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetkeys.ufo/glyphs/N_onB_reakingH_yphen.glif b/tests/reference/ufo/psfsetkeys.ufo/glyphs/N_onB_reakingH_yphen.glif
new file mode 100644
index 0000000..cd90adf
--- /dev/null
+++ b/tests/reference/ufo/psfsetkeys.ufo/glyphs/N_onB_reakingH_yphen.glif
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="NonBreakingHyphen" format="2">
+ <advance width="875"/>
+ <unicode hex="2011"/>
+ <anchor x="665" y="1100" name="U"/>
+ <outline>
+ <component base="HyphenMinus"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetkeys.ufo/glyphs/N_umS_gn.glif b/tests/reference/ufo/psfsetkeys.ufo/glyphs/N_umS_gn.glif
new file mode 100644
index 0000000..1d3e5e9
--- /dev/null
+++ b/tests/reference/ufo/psfsetkeys.ufo/glyphs/N_umS_gn.glif
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="NumSgn" format="2">
+ <advance width="1180"/>
+ <unicode hex="0023"/>
+ <outline>
+ <contour>
+ <point x="667" y="1346" type="line"/>
+ <point x="16" y="99" type="line"/>
+ <point x="256" y="99" type="line"/>
+ <point x="907" y="1346" type="line"/>
+ </contour>
+ <contour>
+ <point x="54" y="421" type="line"/>
+ <point x="1145" y="421" type="line"/>
+ <point x="1197" y="629" type="line"/>
+ <point x="106" y="629" type="line"/>
+ </contour>
+ <contour>
+ <point x="218" y="841" type="line"/>
+ <point x="1309" y="841" type="line"/>
+ <point x="1361" y="1049" type="line"/>
+ <point x="270" y="1049" type="line"/>
+ </contour>
+ <contour>
+ <point x="1142" y="1346" type="line"/>
+ <point x="491" y="99" type="line"/>
+ <point x="731" y="99" type="line"/>
+ <point x="1382" y="1346" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetkeys.ufo/glyphs/P_ercentS_gn.glif b/tests/reference/ufo/psfsetkeys.ufo/glyphs/P_ercentS_gn.glif
new file mode 100644
index 0000000..f87ea9f
--- /dev/null
+++ b/tests/reference/ufo/psfsetkeys.ufo/glyphs/P_ercentS_gn.glif
@@ -0,0 +1,93 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="PercentSgn" format="2">
+ <advance width="1545"/>
+ <unicode hex="0025"/>
+ <outline>
+ <contour>
+ <point x="1375" y="1465" type="line"/>
+ <point x="221" y="-25" type="line"/>
+ <point x="435" y="-25" type="line"/>
+ <point x="1587" y="1465" type="line"/>
+ </contour>
+ <contour>
+ <point x="714" y="1043" type="curve" smooth="yes"/>
+ <point x="669" y="861"/>
+ <point x="611" y="807"/>
+ <point x="535" y="807" type="curve" smooth="yes"/>
+ <point x="486" y="807"/>
+ <point x="461" y="843"/>
+ <point x="461" y="917" type="curve" smooth="yes"/>
+ <point x="461" y="963"/>
+ <point x="471" y="1023"/>
+ <point x="490" y="1099" type="curve" smooth="yes"/>
+ <point x="535" y="1281"/>
+ <point x="580" y="1336"/>
+ <point x="657" y="1336" type="curve" smooth="yes"/>
+ <point x="710" y="1336"/>
+ <point x="739" y="1296"/>
+ <point x="739" y="1212" type="curve" smooth="yes"/>
+ <point x="739" y="1168"/>
+ <point x="731" y="1111"/>
+ </contour>
+ <contour>
+ <point x="926" y="1054" type="curve" smooth="yes"/>
+ <point x="939" y="1107"/>
+ <point x="946" y="1156"/>
+ <point x="946" y="1199" type="curve" smooth="yes"/>
+ <point x="946" y="1374"/>
+ <point x="842" y="1465"/>
+ <point x="694" y="1465" type="curve" smooth="yes"/>
+ <point x="510" y="1465"/>
+ <point x="346" y="1369"/>
+ <point x="277" y="1090" type="curve" smooth="yes"/>
+ <point x="262" y="1031"/>
+ <point x="255" y="979"/>
+ <point x="255" y="933" type="curve" smooth="yes"/>
+ <point x="255" y="761"/>
+ <point x="353" y="678"/>
+ <point x="499" y="678" type="curve" smooth="yes"/>
+ <point x="684" y="678"/>
+ <point x="853" y="762"/>
+ </contour>
+ <contour>
+ <point x="1314" y="337" type="curve" smooth="yes"/>
+ <point x="1268" y="155"/>
+ <point x="1220" y="104"/>
+ <point x="1144" y="104" type="curve" smooth="yes"/>
+ <point x="1093" y="104"/>
+ <point x="1065" y="144"/>
+ <point x="1065" y="227" type="curve" smooth="yes"/>
+ <point x="1065" y="272"/>
+ <point x="1073" y="329"/>
+ <point x="1090" y="398" type="curve" smooth="yes"/>
+ <point x="1136" y="580"/>
+ <point x="1190" y="634"/>
+ <point x="1267" y="634" type="curve" smooth="yes"/>
+ <point x="1317" y="634"/>
+ <point x="1342" y="596"/>
+ <point x="1342" y="520" type="curve" smooth="yes"/>
+ <point x="1342" y="473"/>
+ <point x="1333" y="412"/>
+ </contour>
+ <contour>
+ <point x="1526" y="350" type="curve" smooth="yes"/>
+ <point x="1540" y="406"/>
+ <point x="1546" y="456"/>
+ <point x="1546" y="501" type="curve" smooth="yes"/>
+ <point x="1546" y="673"/>
+ <point x="1450" y="762"/>
+ <point x="1303" y="762" type="curve" smooth="yes"/>
+ <point x="1119" y="762"/>
+ <point x="946" y="665"/>
+ <point x="876" y="386" type="curve" smooth="yes"/>
+ <point x="862" y="331"/>
+ <point x="856" y="281"/>
+ <point x="856" y="237" type="curve" smooth="yes"/>
+ <point x="856" y="60"/>
+ <point x="960" y="-25"/>
+ <point x="1108" y="-25" type="curve" smooth="yes"/>
+ <point x="1293" y="-25"/>
+ <point x="1453" y="58"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetkeys.ufo/glyphs/P_lusS_gn.glif b/tests/reference/ufo/psfsetkeys.ufo/glyphs/P_lusS_gn.glif
new file mode 100644
index 0000000..bb54e70
--- /dev/null
+++ b/tests/reference/ufo/psfsetkeys.ufo/glyphs/P_lusS_gn.glif
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="PlusSgn" format="2">
+ <advance width="1180"/>
+ <unicode hex="002B"/>
+ <outline>
+ <contour>
+ <point x="722" y="1168" type="line"/>
+ <point x="500" y="282" type="line"/>
+ <point x="715" y="282" type="line"/>
+ <point x="936" y="1168" type="line"/>
+ </contour>
+ <contour>
+ <point x="250" y="624" type="line"/>
+ <point x="1140" y="624" type="line"/>
+ <point x="1192" y="832" type="line"/>
+ <point x="302" y="832" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetkeys.ufo/glyphs/Q_stnM_rk.glif b/tests/reference/ufo/psfsetkeys.ufo/glyphs/Q_stnM_rk.glif
new file mode 100644
index 0000000..5acaded
--- /dev/null
+++ b/tests/reference/ufo/psfsetkeys.ufo/glyphs/Q_stnM_rk.glif
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="QstnMrk" format="2">
+ <advance width="1070"/>
+ <unicode hex="003F"/>
+ <outline>
+ <contour>
+ <point x="703" y="495" type="line"/>
+ <point x="745" y="664"/>
+ <point x="787" y="792"/>
+ <point x="931" y="933" type="curve" smooth="yes"/>
+ <point x="1034" y="1033"/>
+ <point x="1143" y="1118"/>
+ <point x="1143" y="1256" type="curve" smooth="yes"/>
+ <point x="1143" y="1404"/>
+ <point x="1022" y="1525"/>
+ <point x="800" y="1525" type="curve" smooth="yes"/>
+ <point x="675" y="1525"/>
+ <point x="508" y="1455"/>
+ <point x="427" y="1393" type="curve"/>
+ <point x="413" y="1156" type="line"/>
+ <point x="508" y="1235"/>
+ <point x="621" y="1282"/>
+ <point x="721" y="1282" type="curve" smooth="yes"/>
+ <point x="811" y="1282"/>
+ <point x="846" y="1238"/>
+ <point x="846" y="1189" type="curve" smooth="yes"/>
+ <point x="846" y="1109"/>
+ <point x="760" y="1086"/>
+ <point x="650" y="956" type="curve" smooth="yes"/>
+ <point x="564" y="855"/>
+ <point x="490" y="703"/>
+ <point x="438" y="495" type="curve"/>
+ </contour>
+ <contour>
+ <point x="306" y="116" type="curve" smooth="yes"/>
+ <point x="306" y="35"/>
+ <point x="367" y="-25"/>
+ <point x="453" y="-25" type="curve" smooth="yes"/>
+ <point x="571" y="-25"/>
+ <point x="666" y="71"/>
+ <point x="666" y="181" type="curve" smooth="yes"/>
+ <point x="666" y="261"/>
+ <point x="607" y="322"/>
+ <point x="520" y="322" type="curve" smooth="yes"/>
+ <point x="403" y="322"/>
+ <point x="306" y="226"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetkeys.ufo/glyphs/Q_uotM_rk.glif b/tests/reference/ufo/psfsetkeys.ufo/glyphs/Q_uotM_rk.glif
new file mode 100644
index 0000000..f33fd18
--- /dev/null
+++ b/tests/reference/ufo/psfsetkeys.ufo/glyphs/Q_uotM_rk.glif
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="QuotMrk" format="2">
+ <advance width="1065"/>
+ <unicode hex="0022"/>
+ <outline>
+ <contour>
+ <point x="648" y="1035" type="line"/>
+ <point x="687" y="1174"/>
+ <point x="726" y="1326"/>
+ <point x="816" y="1569" type="curve"/>
+ <point x="571" y="1569" type="line"/>
+ <point x="541" y="1326"/>
+ <point x="503" y="1174"/>
+ <point x="473" y="1035" type="curve"/>
+ </contour>
+ <contour>
+ <point x="1008" y="1035" type="line"/>
+ <point x="1047" y="1174"/>
+ <point x="1086" y="1326"/>
+ <point x="1176" y="1569" type="curve"/>
+ <point x="931" y="1569" type="line"/>
+ <point x="901" y="1326"/>
+ <point x="863" y="1174"/>
+ <point x="833" y="1035" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetkeys.ufo/glyphs/R_everseS_olidus.glif b/tests/reference/ufo/psfsetkeys.ufo/glyphs/R_everseS_olidus.glif
new file mode 100644
index 0000000..0068c20
--- /dev/null
+++ b/tests/reference/ufo/psfsetkeys.ufo/glyphs/R_everseS_olidus.glif
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="ReverseSolidus" format="2">
+ <advance width="1060"/>
+ <unicode hex="005C"/>
+ <outline>
+ <contour>
+ <point x="344" y="1584" type="line"/>
+ <point x="719" y="-243" type="line"/>
+ <point x="949" y="-243" type="line"/>
+ <point x="574" y="1584" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetkeys.ufo/glyphs/R_tC_urlyB_rac.glif b/tests/reference/ufo/psfsetkeys.ufo/glyphs/R_tC_urlyB_rac.glif
new file mode 100644
index 0000000..726adad
--- /dev/null
+++ b/tests/reference/ufo/psfsetkeys.ufo/glyphs/R_tC_urlyB_rac.glif
@@ -0,0 +1,47 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="RtCurlyBrac" format="2">
+ <advance width="1020"/>
+ <unicode hex="007D"/>
+ <outline>
+ <contour>
+ <point x="442" y="1395" type="line"/>
+ <point x="513" y="1366"/>
+ <point x="611" y="1344"/>
+ <point x="611" y="1296" type="curve" smooth="yes"/>
+ <point x="611" y="1200"/>
+ <point x="515" y="837"/>
+ <point x="515" y="782" type="curve" smooth="yes"/>
+ <point x="515" y="743"/>
+ <point x="633" y="649"/>
+ <point x="633" y="613" type="curve" smooth="yes"/>
+ <point x="633" y="573"/>
+ <point x="465" y="486"/>
+ <point x="429" y="441" type="curve" smooth="yes"/>
+ <point x="403" y="407"/>
+ <point x="300" y="-59"/>
+ <point x="255" y="-99" type="curve" smooth="yes"/>
+ <point x="230" y="-121"/>
+ <point x="97" y="-158"/>
+ <point x="25" y="-177" type="curve"/>
+ <point x="17" y="-406" type="line"/>
+ <point x="160" y="-379"/>
+ <point x="377" y="-330"/>
+ <point x="439" y="-282" type="curve" smooth="yes"/>
+ <point x="532" y="-211"/>
+ <point x="666" y="374"/>
+ <point x="696" y="406" type="curve" smooth="yes"/>
+ <point x="734" y="446"/>
+ <point x="947" y="559"/>
+ <point x="947" y="616" type="curve" smooth="yes"/>
+ <point x="947" y="676"/>
+ <point x="796" y="783"/>
+ <point x="796" y="819" type="curve" smooth="yes"/>
+ <point x="796" y="880"/>
+ <point x="896" y="1288"/>
+ <point x="896" y="1453" type="curve" smooth="yes"/>
+ <point x="896" y="1529"/>
+ <point x="709" y="1591"/>
+ <point x="549" y="1624" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetkeys.ufo/glyphs/R_tP_aren.glif b/tests/reference/ufo/psfsetkeys.ufo/glyphs/R_tP_aren.glif
new file mode 100644
index 0000000..544faff
--- /dev/null
+++ b/tests/reference/ufo/psfsetkeys.ufo/glyphs/R_tP_aren.glif
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="RtParen" format="2">
+ <advance width="840"/>
+ <unicode hex="0029"/>
+ <outline>
+ <contour>
+ <point x="476" y="1411" type="line"/>
+ <point x="572" y="1290"/>
+ <point x="616" y="1127"/>
+ <point x="616" y="944" type="curve" smooth="yes"/>
+ <point x="616" y="832"/>
+ <point x="599" y="712"/>
+ <point x="569" y="589" type="curve" smooth="yes"/>
+ <point x="491" y="275"/>
+ <point x="333" y="48"/>
+ <point x="75" y="-198" type="curve"/>
+ <point x="163" y="-406" type="line"/>
+ <point x="509" y="-124"/>
+ <point x="743" y="206"/>
+ <point x="844" y="609" type="curve" smooth="yes"/>
+ <point x="876" y="735"/>
+ <point x="891" y="858"/>
+ <point x="891" y="973" type="curve" smooth="yes"/>
+ <point x="891" y="1252"/>
+ <point x="803" y="1487"/>
+ <point x="649" y="1624" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetkeys.ufo/glyphs/R_tS_qrB_rac.glif b/tests/reference/ufo/psfsetkeys.ufo/glyphs/R_tS_qrB_rac.glif
new file mode 100644
index 0000000..804527d
--- /dev/null
+++ b/tests/reference/ufo/psfsetkeys.ufo/glyphs/R_tS_qrB_rac.glif
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="RtSqrBrac" format="2">
+ <advance width="830"/>
+ <unicode hex="005D"/>
+ <outline>
+ <contour>
+ <point x="503" y="-406" type="line"/>
+ <point x="994" y="1584" type="line"/>
+ <point x="474" y="1584" type="line"/>
+ <point x="423" y="1376" type="line"/>
+ <point x="663" y="1376" type="line"/>
+ <point x="275" y="-198" type="line"/>
+ <point x="35" y="-198" type="line"/>
+ <point x="-17" y="-406" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetkeys.ufo/glyphs/S_emicolon.glif b/tests/reference/ufo/psfsetkeys.ufo/glyphs/S_emicolon.glif
new file mode 100644
index 0000000..1c9af02
--- /dev/null
+++ b/tests/reference/ufo/psfsetkeys.ufo/glyphs/S_emicolon.glif
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Semicolon" format="2">
+ <advance width="690"/>
+ <unicode hex="003B"/>
+ <outline>
+ <contour>
+ <point x="137" y="49" type="line"/>
+ <point x="297" y="49" type="line"/>
+ <point x="276" y="-34"/>
+ <point x="192" y="-151"/>
+ <point x="59" y="-262" type="curve"/>
+ <point x="187" y="-332" type="line"/>
+ <point x="337" y="-222"/>
+ <point x="539" y="-11"/>
+ <point x="539" y="165" type="curve" smooth="yes"/>
+ <point x="539" y="262"/>
+ <point x="495" y="337"/>
+ <point x="379" y="337" type="curve" smooth="yes"/>
+ <point x="266" y="337"/>
+ <point x="187" y="252"/>
+ <point x="169" y="178" type="curve" smooth="yes"/>
+ </contour>
+ <contour>
+ <point x="319" y="710" type="curve" smooth="yes"/>
+ <point x="319" y="629"/>
+ <point x="380" y="569"/>
+ <point x="466" y="569" type="curve" smooth="yes"/>
+ <point x="584" y="569"/>
+ <point x="679" y="665"/>
+ <point x="679" y="775" type="curve" smooth="yes"/>
+ <point x="679" y="855"/>
+ <point x="620" y="916"/>
+ <point x="533" y="916" type="curve" smooth="yes"/>
+ <point x="416" y="916"/>
+ <point x="319" y="820"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetkeys.ufo/glyphs/S_olidus.glif b/tests/reference/ufo/psfsetkeys.ufo/glyphs/S_olidus.glif
new file mode 100644
index 0000000..0bac67c
--- /dev/null
+++ b/tests/reference/ufo/psfsetkeys.ufo/glyphs/S_olidus.glif
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Solidus" format="2">
+ <advance width="1060"/>
+ <unicode hex="002F"/>
+ <outline>
+ <contour>
+ <point x="1164" y="1584" type="line"/>
+ <point x="-120" y="-243" type="line"/>
+ <point x="129" y="-243" type="line"/>
+ <point x="1414" y="1584" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetkeys.ufo/glyphs/S_pace.glif b/tests/reference/ufo/psfsetkeys.ufo/glyphs/S_pace.glif
new file mode 100644
index 0000000..c49f0f2
--- /dev/null
+++ b/tests/reference/ufo/psfsetkeys.ufo/glyphs/S_pace.glif
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Space" format="2">
+ <advance width="530"/>
+ <unicode hex="0020"/>
+ <outline/>
+</glyph>
diff --git a/tests/reference/ufo/psfsetkeys.ufo/glyphs/T_ilde.glif b/tests/reference/ufo/psfsetkeys.ufo/glyphs/T_ilde.glif
new file mode 100644
index 0000000..26c105f
--- /dev/null
+++ b/tests/reference/ufo/psfsetkeys.ufo/glyphs/T_ilde.glif
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Tilde" format="2">
+ <advance width="1155"/>
+ <unicode hex="007E"/>
+ <outline>
+ <contour>
+ <point x="190" y="342" type="line"/>
+ <point x="207" y="390"/>
+ <point x="249" y="431"/>
+ <point x="327" y="431" type="curve" smooth="yes"/>
+ <point x="502" y="431"/>
+ <point x="676" y="327"/>
+ <point x="906" y="327" type="curve" smooth="yes"/>
+ <point x="1065" y="327"/>
+ <point x="1206" y="507"/>
+ <point x="1238" y="634" type="curve"/>
+ <point x="1093" y="634" type="line"/>
+ <point x="1074" y="588"/>
+ <point x="1031" y="535"/>
+ <point x="948" y="535" type="curve" smooth="yes"/>
+ <point x="712" y="535"/>
+ <point x="580" y="639"/>
+ <point x="359" y="639" type="curve" smooth="yes"/>
+ <point x="203" y="639"/>
+ <point x="75" y="462"/>
+ <point x="45" y="342" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetkeys.ufo/glyphs/V_ertL_ine.glif b/tests/reference/ufo/psfsetkeys.ufo/glyphs/V_ertL_ine.glif
new file mode 100644
index 0000000..204ac86
--- /dev/null
+++ b/tests/reference/ufo/psfsetkeys.ufo/glyphs/V_ertL_ine.glif
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="VertLine" format="2">
+ <advance width="670"/>
+ <unicode hex="007C"/>
+ <outline>
+ <contour>
+ <point x="574" y="1594" type="line"/>
+ <point x="83" y="-396" type="line"/>
+ <point x="293" y="-396" type="line"/>
+ <point x="784" y="1594" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetkeys.ufo/glyphs/_notdef.glif b/tests/reference/ufo/psfsetkeys.ufo/glyphs/_notdef.glif
new file mode 100644
index 0000000..a3e9354
--- /dev/null
+++ b/tests/reference/ufo/psfsetkeys.ufo/glyphs/_notdef.glif
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name=".notdef" format="2">
+ <advance width="1400"/>
+ <outline>
+ <contour>
+ <point x="100" y="0" type="line"/>
+ <point x="1300" y="0" type="line"/>
+ <point x="1300" y="1800" type="line"/>
+ <point x="100" y="1800" type="line"/>
+ </contour>
+ <contour>
+ <point x="150" y="1750" type="line"/>
+ <point x="1250" y="1750" type="line"/>
+ <point x="1250" y="50" type="line"/>
+ <point x="150" y="50" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetkeys.ufo/glyphs/_null.glif b/tests/reference/ufo/psfsetkeys.ufo/glyphs/_null.glif
new file mode 100644
index 0000000..0b9caa6
--- /dev/null
+++ b/tests/reference/ufo/psfsetkeys.ufo/glyphs/_null.glif
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name=".null" format="2">
+ <outline/>
+</glyph>
diff --git a/tests/reference/ufo/psfsetkeys.ufo/glyphs/contents.plist b/tests/reference/ufo/psfsetkeys.ufo/glyphs/contents.plist
new file mode 100644
index 0000000..ad2aa41
--- /dev/null
+++ b/tests/reference/ufo/psfsetkeys.ufo/glyphs/contents.plist
@@ -0,0 +1,232 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>.notdef</key>
+ <string>_notdef.glif</string>
+ <key>.null</key>
+ <string>_null.glif</string>
+ <key>Ampersand</key>
+ <string>A_mpersand.glif</string>
+ <key>Apos</key>
+ <string>A_pos.glif</string>
+ <key>Asterisk</key>
+ <string>A_sterisk.glif</string>
+ <key>AtSgn</key>
+ <string>A_tS_gn.glif</string>
+ <key>CircumAccent</key>
+ <string>C_ircumA_ccent.glif</string>
+ <key>Colon</key>
+ <string>C_olon.glif</string>
+ <key>CombAcute</key>
+ <string>C_ombA_cute.glif</string>
+ <key>CombCircum</key>
+ <string>C_ombC_ircum.glif</string>
+ <key>CombDiaer</key>
+ <string>C_ombD_iaer.glif</string>
+ <key>CombGrave</key>
+ <string>C_ombG_rave.glif</string>
+ <key>CombRingAbv</key>
+ <string>C_ombR_ingA_bv.glif</string>
+ <key>CombTilde</key>
+ <string>C_ombT_ilde.glif</string>
+ <key>Comma</key>
+ <string>C_omma.glif</string>
+ <key>DigitEight</key>
+ <string>D_igitE_ight.glif</string>
+ <key>DigitFive</key>
+ <string>D_igitF_ive.glif</string>
+ <key>DigitFour</key>
+ <string>D_igitF_our.glif</string>
+ <key>DigitNine</key>
+ <string>D_igitN_ine.glif</string>
+ <key>DigitOne</key>
+ <string>D_igitO_ne.glif</string>
+ <key>DigitSeven</key>
+ <string>D_igitS_even.glif</string>
+ <key>DigitSix</key>
+ <string>D_igitS_ix.glif</string>
+ <key>DigitThree</key>
+ <string>D_igitT_hree.glif</string>
+ <key>DigitTwo</key>
+ <string>D_igitT_wo.glif</string>
+ <key>DigitZero</key>
+ <string>D_igitZ_ero.glif</string>
+ <key>DollarSgn</key>
+ <string>D_ollarS_gn.glif</string>
+ <key>DottedCirc</key>
+ <string>D_ottedC_irc.glif</string>
+ <key>EqSgn</key>
+ <string>E_qS_gn.glif</string>
+ <key>ExclamationMrk</key>
+ <string>E_xclamationM_rk.glif</string>
+ <key>FullStop</key>
+ <string>F_ullS_top.glif</string>
+ <key>GTSgn</key>
+ <string>G_T_S_gn.glif</string>
+ <key>GraveAccent</key>
+ <string>G_raveA_ccent.glif</string>
+ <key>Hyphen</key>
+ <string>H_yphen.glif</string>
+ <key>HyphenMinus</key>
+ <string>H_yphenM_inus.glif</string>
+ <key>Hyphen_Soft</key>
+ <string>H_yphen_S_oft.glif</string>
+ <key>LTSgn</key>
+ <string>L_T_S_gn.glif</string>
+ <key>LftCurlyBrac</key>
+ <string>L_ftC_urlyB_rac.glif</string>
+ <key>LftParen</key>
+ <string>L_ftP_aren.glif</string>
+ <key>LftSqrBrac</key>
+ <string>L_ftS_qrB_rac.glif</string>
+ <key>LowLine</key>
+ <string>L_owL_ine.glif</string>
+ <key>LtnCapA</key>
+ <string>L_tnC_apA_.glif</string>
+ <key>LtnCapADiaer</key>
+ <string>L_tnC_apA_D_iaer.glif</string>
+ <key>LtnCapB</key>
+ <string>L_tnC_apB_.glif</string>
+ <key>LtnCapC</key>
+ <string>L_tnC_apC_.glif</string>
+ <key>LtnCapD</key>
+ <string>L_tnC_apD_.glif</string>
+ <key>LtnCapE</key>
+ <string>L_tnC_apE_.glif</string>
+ <key>LtnCapF</key>
+ <string>L_tnC_apF_.glif</string>
+ <key>LtnCapG</key>
+ <string>L_tnC_apG_.glif</string>
+ <key>LtnCapH</key>
+ <string>L_tnC_apH_.glif</string>
+ <key>LtnCapI</key>
+ <string>L_tnC_apI_.glif</string>
+ <key>LtnCapJ</key>
+ <string>L_tnC_apJ_.glif</string>
+ <key>LtnCapK</key>
+ <string>L_tnC_apK_.glif</string>
+ <key>LtnCapL</key>
+ <string>L_tnC_apL_.glif</string>
+ <key>LtnCapM</key>
+ <string>L_tnC_apM_.glif</string>
+ <key>LtnCapN</key>
+ <string>L_tnC_apN_.glif</string>
+ <key>LtnCapO</key>
+ <string>L_tnC_apO_.glif</string>
+ <key>LtnCapP</key>
+ <string>L_tnC_apP_.glif</string>
+ <key>LtnCapQ</key>
+ <string>L_tnC_apQ_.glif</string>
+ <key>LtnCapR</key>
+ <string>L_tnC_apR_.glif</string>
+ <key>LtnCapS</key>
+ <string>L_tnC_apS_.glif</string>
+ <key>LtnCapT</key>
+ <string>L_tnC_apT_.glif</string>
+ <key>LtnCapU</key>
+ <string>L_tnC_apU_.glif</string>
+ <key>LtnCapV</key>
+ <string>L_tnC_apV_.glif</string>
+ <key>LtnCapW</key>
+ <string>L_tnC_apW_.glif</string>
+ <key>LtnCapX</key>
+ <string>L_tnC_apX_.glif</string>
+ <key>LtnCapY</key>
+ <string>L_tnC_apY_.glif</string>
+ <key>LtnSmA</key>
+ <string>L_tnS_mA_.glif</string>
+ <key>LtnSmAAcute</key>
+ <string>L_tnS_mA_A_cute.glif</string>
+ <key>LtnSmACircum</key>
+ <string>L_tnS_mA_C_ircum.glif</string>
+ <key>LtnSmADiaer</key>
+ <string>L_tnS_mA_D_iaer.glif</string>
+ <key>LtnSmAGrave</key>
+ <string>L_tnS_mA_G_rave.glif</string>
+ <key>LtnSmARingAbv</key>
+ <string>L_tnS_mA_R_ingA_bv.glif</string>
+ <key>LtnSmATilde</key>
+ <string>L_tnS_mA_T_ilde.glif</string>
+ <key>LtnSmB</key>
+ <string>L_tnS_mB_.glif</string>
+ <key>LtnSmC</key>
+ <string>L_tnS_mC_.glif</string>
+ <key>LtnSmD</key>
+ <string>L_tnS_mD_.glif</string>
+ <key>LtnSmE</key>
+ <string>L_tnS_mE_.glif</string>
+ <key>LtnSmF</key>
+ <string>L_tnS_mF_.glif</string>
+ <key>LtnSmG</key>
+ <string>L_tnS_mG_.glif</string>
+ <key>LtnSmH</key>
+ <string>L_tnS_mH_.glif</string>
+ <key>LtnSmI</key>
+ <string>L_tnS_mI_.glif</string>
+ <key>LtnSmJ</key>
+ <string>L_tnS_mJ_.glif</string>
+ <key>LtnSmK</key>
+ <string>L_tnS_mK_.glif</string>
+ <key>LtnSmL</key>
+ <string>L_tnS_mL_.glif</string>
+ <key>LtnSmM</key>
+ <string>L_tnS_mM_.glif</string>
+ <key>LtnSmN</key>
+ <string>L_tnS_mN_.glif</string>
+ <key>LtnSmO</key>
+ <string>L_tnS_mO_.glif</string>
+ <key>LtnSmP</key>
+ <string>L_tnS_mP_.glif</string>
+ <key>LtnSmQ</key>
+ <string>L_tnS_mQ_.glif</string>
+ <key>LtnSmR</key>
+ <string>L_tnS_mR_.glif</string>
+ <key>LtnSmS</key>
+ <string>L_tnS_mS_.glif</string>
+ <key>LtnSmT</key>
+ <string>L_tnS_mT_.glif</string>
+ <key>LtnSmU</key>
+ <string>L_tnS_mU_.glif</string>
+ <key>LtnSmV</key>
+ <string>L_tnS_mV_.glif</string>
+ <key>LtnSmW</key>
+ <string>L_tnS_mW_.glif</string>
+ <key>LtnSmX</key>
+ <string>L_tnS_mX_.glif</string>
+ <key>LtnSmY</key>
+ <string>L_tnS_mY_.glif</string>
+ <key>NonBreakingHyphen</key>
+ <string>N_onB_reakingH_yphen.glif</string>
+ <key>NumSgn</key>
+ <string>N_umS_gn.glif</string>
+ <key>PercentSgn</key>
+ <string>P_ercentS_gn.glif</string>
+ <key>PlusSgn</key>
+ <string>P_lusS_gn.glif</string>
+ <key>QstnMrk</key>
+ <string>Q_stnM_rk.glif</string>
+ <key>QuotMrk</key>
+ <string>Q_uotM_rk.glif</string>
+ <key>ReverseSolidus</key>
+ <string>R_everseS_olidus.glif</string>
+ <key>RtCurlyBrac</key>
+ <string>R_tC_urlyB_rac.glif</string>
+ <key>RtParen</key>
+ <string>R_tP_aren.glif</string>
+ <key>RtSqrBrac</key>
+ <string>R_tS_qrB_rac.glif</string>
+ <key>Semicolon</key>
+ <string>S_emicolon.glif</string>
+ <key>Solidus</key>
+ <string>S_olidus.glif</string>
+ <key>Space</key>
+ <string>S_pace.glif</string>
+ <key>Tilde</key>
+ <string>T_ilde.glif</string>
+ <key>VertLine</key>
+ <string>V_ertL_ine.glif</string>
+ <key>nonmarkingreturn</key>
+ <string>nonmarkingreturn.glif</string>
+</dict>
+</plist>
diff --git a/tests/reference/ufo/psfsetkeys.ufo/glyphs/nonmarkingreturn.glif b/tests/reference/ufo/psfsetkeys.ufo/glyphs/nonmarkingreturn.glif
new file mode 100644
index 0000000..9a63f06
--- /dev/null
+++ b/tests/reference/ufo/psfsetkeys.ufo/glyphs/nonmarkingreturn.glif
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="nonmarkingreturn" format="2">
+ <advance width="1004"/>
+ <outline/>
+</glyph>
diff --git a/tests/reference/ufo/psfsetkeys.ufo/layercontents.plist b/tests/reference/ufo/psfsetkeys.ufo/layercontents.plist
new file mode 100644
index 0000000..42b7482
--- /dev/null
+++ b/tests/reference/ufo/psfsetkeys.ufo/layercontents.plist
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<array>
+ <array>
+ <string>public.default</string>
+ <string>glyphs</string>
+ </array>
+</array>
+</plist>
diff --git a/tests/reference/ufo/psfsetkeys.ufo/lib.plist b/tests/reference/ufo/psfsetkeys.ufo/lib.plist
new file mode 100644
index 0000000..002f2fb
--- /dev/null
+++ b/tests/reference/ufo/psfsetkeys.ufo/lib.plist
@@ -0,0 +1,534 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>com.schriftgestaltung.Glyphs.fontUserData</key>
+ <dict/>
+ <key>com.schriftgestaltung.appVersion</key>
+ <string>1161</string>
+ <key>com.schriftgestaltung.customName</key>
+ <string>Italic</string>
+ <key>com.schriftgestaltung.customParameter.GSFont.DisplayStrings</key>
+ <string/>
+ <key>com.schriftgestaltung.customParameter.GSFont.disablesAutomaticAlignment</key>
+ <true/>
+ <key>com.schriftgestaltung.customParameter.GSFont.disablesLastChange</key>
+ <true/>
+ <key>com.schriftgestaltung.customParameter.GSFont.useNiceNames</key>
+ <integer>0</integer>
+ <key>com.schriftgestaltung.customParameter.GSFontMaster.customValue</key>
+ <integer>0</integer>
+ <key>com.schriftgestaltung.customParameter.GSFontMaster.customValue1</key>
+ <integer>0</integer>
+ <key>com.schriftgestaltung.customParameter.GSFontMaster.customValue2</key>
+ <integer>0</integer>
+ <key>com.schriftgestaltung.customParameter.GSFontMaster.customValue3</key>
+ <integer>0</integer>
+ <key>com.schriftgestaltung.customParameter.GSFontMaster.iconName</key>
+ <string/>
+ <key>com.schriftgestaltung.customParameter.GSFontMaster.weightValue</key>
+ <integer>700</integer>
+ <key>com.schriftgestaltung.customParameter.GSFontMaster.widthValue</key>
+ <integer>100</integer>
+ <key>com.schriftgestaltung.fontMasterOrder</key>
+ <integer>1</integer>
+ <key>com.schriftgestaltung.glyphOrder</key>
+ <array>
+ <string>.notdef</string>
+ <string>.null</string>
+ <string>nonmarkingreturn</string>
+ <string>Space</string>
+ <string>ExclamationMrk</string>
+ <string>QuotMrk</string>
+ <string>NumSgn</string>
+ <string>DollarSgn</string>
+ <string>PercentSgn</string>
+ <string>Ampersand</string>
+ <string>Apos</string>
+ <string>LftParen</string>
+ <string>RtParen</string>
+ <string>Asterisk</string>
+ <string>PlusSgn</string>
+ <string>Comma</string>
+ <string>HyphenMinus</string>
+ <string>FullStop</string>
+ <string>Solidus</string>
+ <string>DigitZero</string>
+ <string>DigitOne</string>
+ <string>DigitTwo</string>
+ <string>DigitThree</string>
+ <string>DigitFour</string>
+ <string>DigitFive</string>
+ <string>DigitSix</string>
+ <string>DigitSeven</string>
+ <string>DigitEight</string>
+ <string>DigitNine</string>
+ <string>Colon</string>
+ <string>Semicolon</string>
+ <string>LTSgn</string>
+ <string>EqSgn</string>
+ <string>GTSgn</string>
+ <string>QstnMrk</string>
+ <string>AtSgn</string>
+ <string>LtnCapA</string>
+ <string>LtnCapA.alt</string>
+ <string>LtnCapB</string>
+ <string>LtnCapC</string>
+ <string>LtnCapD</string>
+ <string>LtnCapE</string>
+ <string>LtnCapF</string>
+ <string>LtnCapG</string>
+ <string>LtnCapH</string>
+ <string>LtnCapI</string>
+ <string>LtnCapJ</string>
+ <string>LtnCapK</string>
+ <string>LtnCapL</string>
+ <string>LtnCapM</string>
+ <string>LtnCapN</string>
+ <string>LtnCapO</string>
+ <string>LtnCapP</string>
+ <string>LtnCapQ</string>
+ <string>LtnCapR</string>
+ <string>LtnCapS</string>
+ <string>LtnCapT</string>
+ <string>LtnCapU</string>
+ <string>LtnCapV</string>
+ <string>LtnCapW</string>
+ <string>LtnCapX</string>
+ <string>LtnCapY</string>
+ <string>LftSqrBrac</string>
+ <string>ReverseSolidus</string>
+ <string>RtSqrBrac</string>
+ <string>CircumAccent</string>
+ <string>LowLine</string>
+ <string>GraveAccent</string>
+ <string>LtnSmA</string>
+ <string>LtnSmB</string>
+ <string>LtnSmC</string>
+ <string>LtnSmD</string>
+ <string>LtnSmE</string>
+ <string>LtnSmF</string>
+ <string>LtnSmG</string>
+ <string>LtnSmH</string>
+ <string>LtnSmI</string>
+ <string>LtnSmJ</string>
+ <string>LtnSmK</string>
+ <string>LtnSmL</string>
+ <string>LtnSmM</string>
+ <string>LtnSmN</string>
+ <string>LtnSmO</string>
+ <string>LtnSmP</string>
+ <string>LtnSmQ</string>
+ <string>LtnSmR</string>
+ <string>LtnSmS</string>
+ <string>LtnSmT</string>
+ <string>LtnSmU</string>
+ <string>LtnSmV</string>
+ <string>LtnSmW</string>
+ <string>LtnSmX</string>
+ <string>LtnSmY</string>
+ <string>LftCurlyBrac</string>
+ <string>VertLine</string>
+ <string>RtCurlyBrac</string>
+ <string>Tilde</string>
+ <string>LtnCapADiaer</string>
+ <string>LtnSmAAcute</string>
+ <string>LtnSmAGrave</string>
+ <string>LtnSmACircum</string>
+ <string>LtnSmADiaer</string>
+ <string>LtnSmATilde</string>
+ <string>LtnSmARingAbv</string>
+ <string>DottedCirc</string>
+ <string>Hyphen</string>
+ <string>NonBreakingHyphen</string>
+ <string>Hyphen_Soft</string>
+ <string>CombAcute</string>
+ <string>CombGrave</string>
+ <string>CombCircum</string>
+ <string>CombTilde</string>
+ <string>CombDiaer</string>
+ <string>CombRingAbv</string>
+ </array>
+ <key>com.schriftgestaltung.keyboardIncrement</key>
+ <integer>1</integer>
+ <key>com.schriftgestaltung.weight</key>
+ <string>Bold</string>
+ <key>com.schriftgestaltung.weightValue</key>
+ <integer>700</integer>
+ <key>com.schriftgestaltung.width</key>
+ <string>Regular</string>
+ <key>com.schriftgestaltung.widthValue</key>
+ <integer>100</integer>
+ <key>org.sil.lcg.toneLetters</key>
+ <dict>
+ <key>contourWidth</key>
+ <integer>540</integer>
+ <key>dotSize</key>
+ <integer>280</integer>
+ <key>dotSpacing</key>
+ <integer>200</integer>
+ <key>glyphDepth</key>
+ <integer>-25</integer>
+ <key>glyphHeight</key>
+ <integer>1600</integer>
+ <key>italicAngle</key>
+ <integer>14</integer>
+ <key>marginDotLeft</key>
+ <integer>100</integer>
+ <key>marginDotRight</key>
+ <integer>140</integer>
+ <key>marginFlatLeft</key>
+ <integer>100</integer>
+ <key>marginFlatRight</key>
+ <integer>140</integer>
+ <key>marginPointLeft</key>
+ <integer>80</integer>
+ <key>marginPointRight</key>
+ <integer>120</integer>
+ <key>strokeThickness</key>
+ <integer>200</integer>
+ </dict>
+ <key>public.glyphOrder</key>
+ <array>
+ <string>.notdef</string>
+ <string>.null</string>
+ <string>nonmarkingreturn</string>
+ <string>Space</string>
+ <string>ExclamationMrk</string>
+ <string>QuotMrk</string>
+ <string>NumSgn</string>
+ <string>DollarSgn</string>
+ <string>PercentSgn</string>
+ <string>Ampersand</string>
+ <string>Apos</string>
+ <string>LftParen</string>
+ <string>RtParen</string>
+ <string>Asterisk</string>
+ <string>PlusSgn</string>
+ <string>Comma</string>
+ <string>HyphenMinus</string>
+ <string>FullStop</string>
+ <string>Solidus</string>
+ <string>DigitZero</string>
+ <string>DigitOne</string>
+ <string>DigitTwo</string>
+ <string>DigitThree</string>
+ <string>DigitFour</string>
+ <string>DigitFive</string>
+ <string>DigitSix</string>
+ <string>DigitSeven</string>
+ <string>DigitEight</string>
+ <string>DigitNine</string>
+ <string>Colon</string>
+ <string>Semicolon</string>
+ <string>LTSgn</string>
+ <string>EqSgn</string>
+ <string>GTSgn</string>
+ <string>QstnMrk</string>
+ <string>AtSgn</string>
+ <string>LtnCapA</string>
+ <string>LtnCapA.alt</string>
+ <string>LtnCapB</string>
+ <string>LtnCapC</string>
+ <string>LtnCapD</string>
+ <string>LtnCapE</string>
+ <string>LtnCapF</string>
+ <string>LtnCapG</string>
+ <string>LtnCapH</string>
+ <string>LtnCapI</string>
+ <string>LtnCapJ</string>
+ <string>LtnCapK</string>
+ <string>LtnCapL</string>
+ <string>LtnCapM</string>
+ <string>LtnCapN</string>
+ <string>LtnCapO</string>
+ <string>LtnCapP</string>
+ <string>LtnCapQ</string>
+ <string>LtnCapR</string>
+ <string>LtnCapS</string>
+ <string>LtnCapT</string>
+ <string>LtnCapU</string>
+ <string>LtnCapV</string>
+ <string>LtnCapW</string>
+ <string>LtnCapX</string>
+ <string>LtnCapY</string>
+ <string>LftSqrBrac</string>
+ <string>ReverseSolidus</string>
+ <string>RtSqrBrac</string>
+ <string>CircumAccent</string>
+ <string>LowLine</string>
+ <string>GraveAccent</string>
+ <string>LtnSmA</string>
+ <string>LtnSmB</string>
+ <string>LtnSmC</string>
+ <string>LtnSmD</string>
+ <string>LtnSmE</string>
+ <string>LtnSmF</string>
+ <string>LtnSmG</string>
+ <string>LtnSmH</string>
+ <string>LtnSmI</string>
+ <string>LtnSmJ</string>
+ <string>LtnSmK</string>
+ <string>LtnSmL</string>
+ <string>LtnSmM</string>
+ <string>LtnSmN</string>
+ <string>LtnSmO</string>
+ <string>LtnSmP</string>
+ <string>LtnSmQ</string>
+ <string>LtnSmR</string>
+ <string>LtnSmS</string>
+ <string>LtnSmT</string>
+ <string>LtnSmU</string>
+ <string>LtnSmV</string>
+ <string>LtnSmW</string>
+ <string>LtnSmX</string>
+ <string>LtnSmY</string>
+ <string>LftCurlyBrac</string>
+ <string>VertLine</string>
+ <string>RtCurlyBrac</string>
+ <string>Tilde</string>
+ <string>LtnCapADiaer</string>
+ <string>LtnSmAAcute</string>
+ <string>LtnSmAGrave</string>
+ <string>LtnSmACircum</string>
+ <string>LtnSmADiaer</string>
+ <string>LtnSmATilde</string>
+ <string>LtnSmARingAbv</string>
+ <string>DottedCirc</string>
+ <string>Hyphen</string>
+ <string>NonBreakingHyphen</string>
+ <string>Hyphen_Soft</string>
+ <string>CombAcute</string>
+ <string>CombGrave</string>
+ <string>CombCircum</string>
+ <string>CombTilde</string>
+ <string>CombDiaer</string>
+ <string>CombRingAbv</string>
+ </array>
+ <key>public.postscriptNames</key>
+ <dict>
+ <key>Ampersand</key>
+ <string>ampersand</string>
+ <key>Apos</key>
+ <string>quotesingle</string>
+ <key>Asterisk</key>
+ <string>asterisk</string>
+ <key>AtSgn</key>
+ <string>at</string>
+ <key>CircumAccent</key>
+ <string>asciicircum</string>
+ <key>Colon</key>
+ <string>colon</string>
+ <key>CombAcute</key>
+ <string>acutecomb</string>
+ <key>CombCircum</key>
+ <string>uni0302</string>
+ <key>CombDiaer</key>
+ <string>uni0308</string>
+ <key>CombGrave</key>
+ <string>gravecomb</string>
+ <key>CombRingAbv</key>
+ <string>uni030A</string>
+ <key>CombTilde</key>
+ <string>tildecomb</string>
+ <key>Comma</key>
+ <string>comma</string>
+ <key>DigitEight</key>
+ <string>eight</string>
+ <key>DigitFive</key>
+ <string>five</string>
+ <key>DigitFour</key>
+ <string>four</string>
+ <key>DigitNine</key>
+ <string>nine</string>
+ <key>DigitOne</key>
+ <string>one</string>
+ <key>DigitSeven</key>
+ <string>seven</string>
+ <key>DigitSix</key>
+ <string>six</string>
+ <key>DigitThree</key>
+ <string>three</string>
+ <key>DigitTwo</key>
+ <string>two</string>
+ <key>DigitZero</key>
+ <string>zero</string>
+ <key>DollarSgn</key>
+ <string>dollar</string>
+ <key>DottedCirc</key>
+ <string>uni25CC</string>
+ <key>EqSgn</key>
+ <string>equal</string>
+ <key>ExclamationMrk</key>
+ <string>exclam</string>
+ <key>FullStop</key>
+ <string>period</string>
+ <key>GTSgn</key>
+ <string>greater</string>
+ <key>GraveAccent</key>
+ <string>grave</string>
+ <key>Hyphen</key>
+ <string>uni2010</string>
+ <key>HyphenMinus</key>
+ <string>hyphen</string>
+ <key>Hyphen_Soft</key>
+ <string>uni00AD</string>
+ <key>LTSgn</key>
+ <string>less</string>
+ <key>LftCurlyBrac</key>
+ <string>braceleft</string>
+ <key>LftParen</key>
+ <string>parenleft</string>
+ <key>LftSqrBrac</key>
+ <string>bracketleft</string>
+ <key>LowLine</key>
+ <string>underscore</string>
+ <key>LtnCapA</key>
+ <string>A</string>
+ <key>LtnCapA.alt</key>
+ <string>A</string>
+ <key>LtnCapADiaer</key>
+ <string>Adieresis</string>
+ <key>LtnCapB</key>
+ <string>B</string>
+ <key>LtnCapC</key>
+ <string>C</string>
+ <key>LtnCapD</key>
+ <string>D</string>
+ <key>LtnCapE</key>
+ <string>E</string>
+ <key>LtnCapF</key>
+ <string>F</string>
+ <key>LtnCapG</key>
+ <string>G</string>
+ <key>LtnCapH</key>
+ <string>H</string>
+ <key>LtnCapI</key>
+ <string>I</string>
+ <key>LtnCapJ</key>
+ <string>J</string>
+ <key>LtnCapK</key>
+ <string>K</string>
+ <key>LtnCapL</key>
+ <string>L</string>
+ <key>LtnCapM</key>
+ <string>M</string>
+ <key>LtnCapN</key>
+ <string>N</string>
+ <key>LtnCapO</key>
+ <string>O</string>
+ <key>LtnCapP</key>
+ <string>P</string>
+ <key>LtnCapQ</key>
+ <string>Q</string>
+ <key>LtnCapR</key>
+ <string>R</string>
+ <key>LtnCapS</key>
+ <string>S</string>
+ <key>LtnCapT</key>
+ <string>T</string>
+ <key>LtnCapU</key>
+ <string>U</string>
+ <key>LtnCapV</key>
+ <string>V</string>
+ <key>LtnCapW</key>
+ <string>W</string>
+ <key>LtnCapX</key>
+ <string>X</string>
+ <key>LtnCapY</key>
+ <string>Y</string>
+ <key>LtnSmA</key>
+ <string>a</string>
+ <key>LtnSmAAcute</key>
+ <string>aacute</string>
+ <key>LtnSmACircum</key>
+ <string>acircumflex</string>
+ <key>LtnSmADiaer</key>
+ <string>adieresis</string>
+ <key>LtnSmAGrave</key>
+ <string>agrave</string>
+ <key>LtnSmARingAbv</key>
+ <string>aring</string>
+ <key>LtnSmATilde</key>
+ <string>atilde</string>
+ <key>LtnSmB</key>
+ <string>b</string>
+ <key>LtnSmC</key>
+ <string>c</string>
+ <key>LtnSmD</key>
+ <string>d</string>
+ <key>LtnSmE</key>
+ <string>e</string>
+ <key>LtnSmF</key>
+ <string>f</string>
+ <key>LtnSmG</key>
+ <string>g</string>
+ <key>LtnSmH</key>
+ <string>h</string>
+ <key>LtnSmI</key>
+ <string>i</string>
+ <key>LtnSmJ</key>
+ <string>j</string>
+ <key>LtnSmK</key>
+ <string>k</string>
+ <key>LtnSmL</key>
+ <string>l</string>
+ <key>LtnSmM</key>
+ <string>m</string>
+ <key>LtnSmN</key>
+ <string>n</string>
+ <key>LtnSmO</key>
+ <string>o</string>
+ <key>LtnSmP</key>
+ <string>p</string>
+ <key>LtnSmQ</key>
+ <string>q</string>
+ <key>LtnSmR</key>
+ <string>r</string>
+ <key>LtnSmS</key>
+ <string>s</string>
+ <key>LtnSmT</key>
+ <string>t</string>
+ <key>LtnSmU</key>
+ <string>u</string>
+ <key>LtnSmV</key>
+ <string>v</string>
+ <key>LtnSmW</key>
+ <string>w</string>
+ <key>LtnSmX</key>
+ <string>x</string>
+ <key>LtnSmY</key>
+ <string>y</string>
+ <key>NonBreakingHyphen</key>
+ <string>uni2011</string>
+ <key>NumSgn</key>
+ <string>numbersign</string>
+ <key>PercentSgn</key>
+ <string>percent</string>
+ <key>PlusSgn</key>
+ <string>plus</string>
+ <key>QstnMrk</key>
+ <string>question</string>
+ <key>QuotMrk</key>
+ <string>quotedbl</string>
+ <key>ReverseSolidus</key>
+ <string>backslash</string>
+ <key>RtCurlyBrac</key>
+ <string>braceright</string>
+ <key>RtParen</key>
+ <string>parenright</string>
+ <key>RtSqrBrac</key>
+ <string>bracketright</string>
+ <key>Semicolon</key>
+ <string>semicolon</string>
+ <key>Solidus</key>
+ <string>slash</string>
+ <key>Space</key>
+ <string>space</string>
+ <key>Tilde</key>
+ <string>asciitilde</string>
+ <key>VertLine</key>
+ <string>bar</string>
+ </dict>
+</dict>
+</plist>
diff --git a/tests/reference/ufo/psfsetkeys.ufo/metainfo.plist b/tests/reference/ufo/psfsetkeys.ufo/metainfo.plist
new file mode 100644
index 0000000..aa10c5c
--- /dev/null
+++ b/tests/reference/ufo/psfsetkeys.ufo/metainfo.plist
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>creator</key>
+ <string>org.sil.scripts.pysilfont</string>
+ <key>formatVersion</key>
+ <integer>3</integer>
+</dict>
+</plist>
diff --git a/tests/reference/ufo/psfsetpsnames.lg b/tests/reference/ufo/psfsetpsnames.lg
new file mode 100644
index 0000000..510c1b9
--- /dev/null
+++ b/tests/reference/ufo/psfsetpsnames.lg
@@ -0,0 +1,155 @@
+2021-06-29 14:42:22 Progress: Running: psfsetpsnames tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo -i tests/input/glyph_data.csv -l local/testresults/ufo/psfsetpsnames.log -p loglevel=i
+2021-06-29 14:42:22 Progress: Opening file for input: tests/input/glyph_data.csv
+2021-06-29 14:42:22 Progress: Reading UFO: tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo
+2021-06-29 14:42:22 Info: Processing Glyph Layer 0: public.defaultglyphs
+2021-06-29 14:42:22 Progress: Checking fontinfo.plist metadata
+2021-06-29 14:42:22 Warning: macintoshFONDName would be removed from fontinfo Old value: My Test
+2021-06-29 14:42:22 Info: Types: Old - string, New - NoneType
+2021-06-29 14:42:22 Warning: openTypeOS2FamilyClass would be removed from fontinfo Old value: [0, 0]
+2021-06-29 14:42:22 Info: Types: Old - list, New - NoneType
+2021-06-29 14:42:22 Warning: postscriptFamilyBlues would be removed from fontinfo Old value: []
+2021-06-29 14:42:22 Info: Types: Old - list, New - NoneType
+2021-06-29 14:42:22 Warning: openTypeOS2Selection would be added New value: [7]
+2021-06-29 14:42:22 Info: Types: Old - NoneType, New - list
+2021-06-29 14:42:22 Warning: openTypeHheaAscender would be updated Old value: 2200, new value: 2100
+2021-06-29 14:42:22 Info: Types: Old - int, New - int
+2021-06-29 14:42:22 Progress: Checking lib.plist metadata
+2021-06-29 14:42:22 Warning: com.schriftgestaltung.disablesAutomaticAlignment would be deleted - obsolete key Old value: True
+2021-06-29 14:42:22 Info: Types: Old - bool, New - NoneType
+2021-06-29 14:42:22 Warning: com.schriftgestaltung.disablesLastChange would be deleted - obsolete key Old value: True
+2021-06-29 14:42:22 Info: Types: Old - bool, New - NoneType
+2021-06-29 14:42:22 Progress: Check & fix results:- Errors: 0, Changes to make: 7, Other warnings: 0
+2021-06-29 14:42:22 Progress: See log file for details
+2021-06-29 14:42:22 Info: No glyph in font for AcuteAccent on line 2
+2021-06-29 14:42:22 Info: No glyph in font for Bullet on line 3
+2021-06-29 14:42:22 Info: No glyph in font for BulletOperator on line 4
+2021-06-29 14:42:22 Info: No glyph in font for DblAcuteAccent on line 7
+2021-06-29 14:42:22 Info: No glyph in font for LtnCapAAcute on line 9
+2021-06-29 14:42:22 Info: No glyph in font for LtnCapEAcute on line 10
+2021-06-29 14:42:22 Info: No glyph in font for LtnCapIAcute on line 11
+2021-06-29 14:42:22 Info: No glyph in font for LtnCapOAcute on line 12
+2021-06-29 14:42:22 Info: No glyph in font for LtnCapUAcute on line 13
+2021-06-29 14:42:22 Info: No glyph in font for LtnCapYAcute on line 14
+2021-06-29 14:42:22 Info: No glyph in font for LtnSmEAcute on line 16
+2021-06-29 14:42:22 Info: No glyph in font for LtnSmIAcute on line 17
+2021-06-29 14:42:22 Info: No glyph in font for LtnSmOAcute on line 18
+2021-06-29 14:42:22 Info: No glyph in font for LtnSmUAcute on line 19
+2021-06-29 14:42:22 Info: No glyph in font for LtnSmYAcute on line 20
+2021-06-29 14:42:22 Info: No glyph in font for ModCircumAccent on line 21
+2021-06-29 14:42:22 Info: No glyph in font for SupOne on line 24
+2021-06-29 14:42:22 Info: No glyph in font for SupThree on line 25
+2021-06-29 14:42:22 Info: No glyph in font for VulgFracOneHalf on line 26
+2021-06-29 14:42:22 Info: No glyph in font for VulgFracOneQuarter on line 27
+2021-06-29 14:42:22 Info: No glyph in font for VulgFracThreeQuarters on line 28
+2021-06-29 14:42:22 Info: No PS name in input file for font glyph .notdef
+2021-06-29 14:42:22 Info: No PS name in input file for font glyph .null
+2021-06-29 14:42:22 Info: No PS name in input file for font glyph Ampersand
+2021-06-29 14:42:22 Info: No PS name in input file for font glyph Apos
+2021-06-29 14:42:22 Info: No PS name in input file for font glyph Asterisk
+2021-06-29 14:42:22 Info: No PS name in input file for font glyph AtSgn
+2021-06-29 14:42:22 Info: No PS name in input file for font glyph Colon
+2021-06-29 14:42:22 Info: No PS name in input file for font glyph CombCircum
+2021-06-29 14:42:22 Info: No PS name in input file for font glyph CombDiaer
+2021-06-29 14:42:22 Info: No PS name in input file for font glyph CombGrave
+2021-06-29 14:42:22 Info: No PS name in input file for font glyph CombRingAbv
+2021-06-29 14:42:22 Info: No PS name in input file for font glyph CombTilde
+2021-06-29 14:42:22 Info: No PS name in input file for font glyph Comma
+2021-06-29 14:42:22 Info: No PS name in input file for font glyph DigitEight
+2021-06-29 14:42:22 Info: No PS name in input file for font glyph DigitFive
+2021-06-29 14:42:22 Info: No PS name in input file for font glyph DigitFour
+2021-06-29 14:42:22 Info: No PS name in input file for font glyph DigitNine
+2021-06-29 14:42:22 Info: No PS name in input file for font glyph DigitOne
+2021-06-29 14:42:22 Info: No PS name in input file for font glyph DigitSeven
+2021-06-29 14:42:22 Info: No PS name in input file for font glyph DigitSix
+2021-06-29 14:42:22 Info: No PS name in input file for font glyph DigitThree
+2021-06-29 14:42:22 Info: No PS name in input file for font glyph DigitTwo
+2021-06-29 14:42:22 Info: No PS name in input file for font glyph DigitZero
+2021-06-29 14:42:22 Info: No PS name in input file for font glyph DollarSgn
+2021-06-29 14:42:22 Info: No PS name in input file for font glyph DottedCirc
+2021-06-29 14:42:22 Info: No PS name in input file for font glyph EqSgn
+2021-06-29 14:42:22 Info: No PS name in input file for font glyph ExclamationMrk
+2021-06-29 14:42:22 Info: No PS name in input file for font glyph FullStop
+2021-06-29 14:42:22 Info: No PS name in input file for font glyph GTSgn
+2021-06-29 14:42:22 Info: No PS name in input file for font glyph GraveAccent
+2021-06-29 14:42:22 Info: No PS name in input file for font glyph Hyphen
+2021-06-29 14:42:22 Info: No PS name in input file for font glyph Hyphen_Soft
+2021-06-29 14:42:22 Info: No PS name in input file for font glyph LTSgn
+2021-06-29 14:42:22 Info: No PS name in input file for font glyph LftCurlyBrac
+2021-06-29 14:42:22 Info: No PS name in input file for font glyph LftParen
+2021-06-29 14:42:22 Info: No PS name in input file for font glyph LftSqrBrac
+2021-06-29 14:42:22 Info: No PS name in input file for font glyph LowLine
+2021-06-29 14:42:22 Info: No PS name in input file for font glyph LtnCapA
+2021-06-29 14:42:22 Info: No PS name in input file for font glyph LtnCapADiaer
+2021-06-29 14:42:22 Info: No PS name in input file for font glyph LtnCapB
+2021-06-29 14:42:22 Info: No PS name in input file for font glyph LtnCapC
+2021-06-29 14:42:22 Info: No PS name in input file for font glyph LtnCapD
+2021-06-29 14:42:22 Info: No PS name in input file for font glyph LtnCapE
+2021-06-29 14:42:22 Info: No PS name in input file for font glyph LtnCapF
+2021-06-29 14:42:22 Info: No PS name in input file for font glyph LtnCapG
+2021-06-29 14:42:22 Info: No PS name in input file for font glyph LtnCapH
+2021-06-29 14:42:22 Info: No PS name in input file for font glyph LtnCapI
+2021-06-29 14:42:22 Info: No PS name in input file for font glyph LtnCapJ
+2021-06-29 14:42:22 Info: No PS name in input file for font glyph LtnCapK
+2021-06-29 14:42:22 Info: No PS name in input file for font glyph LtnCapL
+2021-06-29 14:42:22 Info: No PS name in input file for font glyph LtnCapM
+2021-06-29 14:42:22 Info: No PS name in input file for font glyph LtnCapN
+2021-06-29 14:42:22 Info: No PS name in input file for font glyph LtnCapO
+2021-06-29 14:42:22 Info: No PS name in input file for font glyph LtnCapP
+2021-06-29 14:42:22 Info: No PS name in input file for font glyph LtnCapQ
+2021-06-29 14:42:22 Info: No PS name in input file for font glyph LtnCapR
+2021-06-29 14:42:22 Info: No PS name in input file for font glyph LtnCapS
+2021-06-29 14:42:22 Info: No PS name in input file for font glyph LtnCapT
+2021-06-29 14:42:22 Info: No PS name in input file for font glyph LtnCapU
+2021-06-29 14:42:22 Info: No PS name in input file for font glyph LtnCapV
+2021-06-29 14:42:22 Info: No PS name in input file for font glyph LtnCapW
+2021-06-29 14:42:22 Info: No PS name in input file for font glyph LtnCapX
+2021-06-29 14:42:22 Info: No PS name in input file for font glyph LtnCapY
+2021-06-29 14:42:22 Info: No PS name in input file for font glyph LtnSmA
+2021-06-29 14:42:22 Info: No PS name in input file for font glyph LtnSmACircum
+2021-06-29 14:42:22 Info: No PS name in input file for font glyph LtnSmADiaer
+2021-06-29 14:42:22 Info: No PS name in input file for font glyph LtnSmAGrave
+2021-06-29 14:42:22 Info: No PS name in input file for font glyph LtnSmARingAbv
+2021-06-29 14:42:22 Info: No PS name in input file for font glyph LtnSmATilde
+2021-06-29 14:42:22 Info: No PS name in input file for font glyph LtnSmB
+2021-06-29 14:42:22 Info: No PS name in input file for font glyph LtnSmC
+2021-06-29 14:42:22 Info: No PS name in input file for font glyph LtnSmD
+2021-06-29 14:42:22 Info: No PS name in input file for font glyph LtnSmE
+2021-06-29 14:42:22 Info: No PS name in input file for font glyph LtnSmF
+2021-06-29 14:42:22 Info: No PS name in input file for font glyph LtnSmG
+2021-06-29 14:42:22 Info: No PS name in input file for font glyph LtnSmH
+2021-06-29 14:42:22 Info: No PS name in input file for font glyph LtnSmI
+2021-06-29 14:42:22 Info: No PS name in input file for font glyph LtnSmJ
+2021-06-29 14:42:22 Info: No PS name in input file for font glyph LtnSmK
+2021-06-29 14:42:22 Info: No PS name in input file for font glyph LtnSmL
+2021-06-29 14:42:22 Info: No PS name in input file for font glyph LtnSmM
+2021-06-29 14:42:22 Info: No PS name in input file for font glyph LtnSmN
+2021-06-29 14:42:22 Info: No PS name in input file for font glyph LtnSmO
+2021-06-29 14:42:22 Info: No PS name in input file for font glyph LtnSmP
+2021-06-29 14:42:22 Info: No PS name in input file for font glyph LtnSmQ
+2021-06-29 14:42:22 Info: No PS name in input file for font glyph LtnSmR
+2021-06-29 14:42:22 Info: No PS name in input file for font glyph LtnSmS
+2021-06-29 14:42:22 Info: No PS name in input file for font glyph LtnSmT
+2021-06-29 14:42:22 Info: No PS name in input file for font glyph LtnSmU
+2021-06-29 14:42:22 Info: No PS name in input file for font glyph LtnSmV
+2021-06-29 14:42:22 Info: No PS name in input file for font glyph LtnSmW
+2021-06-29 14:42:22 Info: No PS name in input file for font glyph LtnSmX
+2021-06-29 14:42:22 Info: No PS name in input file for font glyph LtnSmY
+2021-06-29 14:42:22 Info: No PS name in input file for font glyph NonBreakingHyphen
+2021-06-29 14:42:22 Info: No PS name in input file for font glyph NumSgn
+2021-06-29 14:42:22 Info: No PS name in input file for font glyph PercentSgn
+2021-06-29 14:42:22 Info: No PS name in input file for font glyph PlusSgn
+2021-06-29 14:42:22 Info: No PS name in input file for font glyph QstnMrk
+2021-06-29 14:42:22 Info: No PS name in input file for font glyph QuotMrk
+2021-06-29 14:42:22 Info: No PS name in input file for font glyph RtCurlyBrac
+2021-06-29 14:42:22 Info: No PS name in input file for font glyph RtParen
+2021-06-29 14:42:22 Info: No PS name in input file for font glyph RtSqrBrac
+2021-06-29 14:42:22 Info: No PS name in input file for font glyph Semicolon
+2021-06-29 14:42:22 Info: No PS name in input file for font glyph Solidus
+2021-06-29 14:42:22 Info: No PS name in input file for font glyph Space
+2021-06-29 14:42:22 Info: No PS name in input file for font glyph Tilde
+2021-06-29 14:42:22 Info: No PS name in input file for font glyph VertLine
+2021-06-29 14:42:22 Info: No PS name in input file for font glyph nonmarkingreturn
+2021-06-29 14:42:22 Progress: Processing font for output
+2021-06-29 14:42:22 Progress: Output UFO already exists - reading for comparison
+2021-06-29 14:42:22 Progress: Writing font to local/testresults/ufo/psfsetpsnames.ufo
+2021-06-29 14:42:22 Info: Processing glyphs directory
diff --git a/tests/reference/ufo/psfsetpsnames.ufo/fontinfo.plist b/tests/reference/ufo/psfsetpsnames.ufo/fontinfo.plist
new file mode 100644
index 0000000..cab026a
--- /dev/null
+++ b/tests/reference/ufo/psfsetpsnames.ufo/fontinfo.plist
@@ -0,0 +1,245 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>ascender</key>
+ <integer>2100</integer>
+ <key>capHeight</key>
+ <integer>1485</integer>
+ <key>copyright</key>
+ <string>Copyright (c) 2004-2021 SIL International</string>
+ <key>descender</key>
+ <integer>-550</integer>
+ <key>familyName</key>
+ <string>Psf Test</string>
+ <key>italicAngle</key>
+ <integer>-14</integer>
+ <key>macintoshFONDName</key>
+ <string>My Test</string>
+ <key>openTypeHeadCreated</key>
+ <string>2021/01/29 10:05:07</string>
+ <key>openTypeHheaAscender</key>
+ <integer>2200</integer>
+ <key>openTypeHheaDescender</key>
+ <integer>-550</integer>
+ <key>openTypeHheaLineGap</key>
+ <integer>0</integer>
+ <key>openTypeNameDescription</key>
+ <string>Copyright (c) 2004-2021 SIL International</string>
+ <key>openTypeNameDesigner</key>
+ <string>Victor Gaultney, Annie Olsen, Julie Remington, Don Collingsworth, Eric Hays, Becca Hirsbrunner</string>
+ <key>openTypeNameDesignerURL</key>
+ <string>http://scripts.sil.org/</string>
+ <key>openTypeNameLicense</key>
+ <string>Copyright (c) 2004-2021 SIL International (http://www.sil.org/) with Reserved Font Names "Andika" and "SIL".
+
+This Font Software is licensed under the SIL Open Font License, Version 1.1. This license is copied below, and is also available with a FAQ at: http://scripts.sil.org/OFL
+
+
+-----------------------------------------------------------
+SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
+-----------------------------------------------------------
+
+PREAMBLE
+The goals of the Open Font License (OFL) are to stimulate worldwide development of collaborative font projects, to support the font creation efforts of academic and linguistic communities, and to provide a free and open framework in which fonts may be shared and improved in partnership with others.
+
+The OFL allows the licensed fonts to be used, studied, modified and redistributed freely as long as they are not sold by themselves. The fonts, including any derivative works, can be bundled, embedded, redistributed and/or sold with any software provided that any reserved names are not used by derivative works. The fonts and derivatives, however, cannot be released under any other type of license. The requirement for fonts to remain under this license does not apply to any document created using the fonts or their derivatives.
+
+DEFINITIONS
+"Font Software" refers to the set of files released by the Copyright Holder(s) under this license and clearly marked as such. This may include source files, build scripts and documentation.
+
+"Reserved Font Name" refers to any names specified as such after the copyright statement(s).
+
+"Original Version" refers to the collection of Font Software components as distributed by the Copyright Holder(s).
+
+"Modified Version" refers to any derivative made by adding to, deleting, or substituting -- in part or in whole -- any of the components of the Original Version, by changing formats or by porting the Font Software to a new environment.
+
+"Author" refers to any designer, engineer, programmer, technical writer or other person who contributed to the Font Software.
+
+PERMISSION &amp; CONDITIONS
+Permission is hereby granted, free of charge, to any person obtaining a copy of the Font Software, to use, study, copy, merge, embed, modify, redistribute, and sell modified and unmodified copies of the Font Software, subject to the following conditions:
+
+1) Neither the Font Software nor any of its individual components, in Original or Modified Versions, may be sold by itself.
+
+2) Original or Modified Versions of the Font Software may be bundled, redistributed and/or sold with any software, provided that each copy contains the above copyright notice and this license. These can be included either as stand-alone text files, human-readable headers or in the appropriate machine-readable metadata fields within text or binary files as long as those fields can be easily viewed by the user.
+
+3) No Modified Version of the Font Software may use the Reserved Font Name(s) unless explicit written permission is granted by the corresponding Copyright Holder. This restriction only applies to the primary font name as presented to the users.
+
+4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font Software shall not be used to promote, endorse or advertise any Modified Version, except to acknowledge the contribution(s) of the Copyright Holder(s) and the Author(s) or with their explicit written permission.
+
+5) The Font Software, modified or unmodified, in part or in whole, must be distributed entirely under this license, and must not be distributed under any other license. The requirement for fonts to remain under this license does not apply to any document created using the Font Software.
+
+TERMINATION
+This license becomes null and void if any of the above conditions are not met.
+
+DISCLAIMER
+THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM OTHER DEALINGS IN THE FONT SOFTWARE.</string>
+ <key>openTypeNameLicenseURL</key>
+ <string>http://scripts.sil.org/OFL</string>
+ <key>openTypeNameManufacturer</key>
+ <string>SIL International</string>
+ <key>openTypeNameManufacturerURL</key>
+ <string>http://scripts.sil.org</string>
+ <key>openTypeNamePreferredFamilyName</key>
+ <string>Psf Test</string>
+ <key>openTypeNamePreferredSubfamilyName</key>
+ <string>Bold Italic</string>
+ <key>openTypeNameUniqueID</key>
+ <string>SIL International: Psf Test Bold Italic: 2022</string>
+ <key>openTypeNameVersion</key>
+ <string>Version 5.550</string>
+ <key>openTypeOS2CodePageRanges</key>
+ <array>
+ <integer>0</integer>
+ <integer>1</integer>
+ <integer>2</integer>
+ <integer>4</integer>
+ <integer>7</integer>
+ <integer>8</integer>
+ </array>
+ <key>openTypeOS2FamilyClass</key>
+ <array>
+ <integer>0</integer>
+ <integer>0</integer>
+ </array>
+ <key>openTypeOS2Panose</key>
+ <array>
+ <integer>2</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ </array>
+ <key>openTypeOS2StrikeoutPosition</key>
+ <integer>700</integer>
+ <key>openTypeOS2StrikeoutSize</key>
+ <integer>100</integer>
+ <key>openTypeOS2SubscriptXOffset</key>
+ <integer>0</integer>
+ <key>openTypeOS2SubscriptXSize</key>
+ <integer>1433</integer>
+ <key>openTypeOS2SubscriptYOffset</key>
+ <integer>286</integer>
+ <key>openTypeOS2SubscriptYSize</key>
+ <integer>1331</integer>
+ <key>openTypeOS2SuperscriptXOffset</key>
+ <integer>0</integer>
+ <key>openTypeOS2SuperscriptXSize</key>
+ <integer>1433</integer>
+ <key>openTypeOS2SuperscriptYOffset</key>
+ <integer>976</integer>
+ <key>openTypeOS2SuperscriptYSize</key>
+ <integer>1331</integer>
+ <key>openTypeOS2Type</key>
+ <array/>
+ <key>openTypeOS2TypoAscender</key>
+ <integer>2100</integer>
+ <key>openTypeOS2TypoDescender</key>
+ <integer>-550</integer>
+ <key>openTypeOS2TypoLineGap</key>
+ <integer>0</integer>
+ <key>openTypeOS2UnicodeRanges</key>
+ <array>
+ <integer>0</integer>
+ <integer>1</integer>
+ <integer>6</integer>
+ <integer>7</integer>
+ <integer>31</integer>
+ <integer>33</integer>
+ <integer>35</integer>
+ <integer>36</integer>
+ <integer>37</integer>
+ <integer>38</integer>
+ <integer>39</integer>
+ <integer>40</integer>
+ <integer>45</integer>
+ <integer>46</integer>
+ <integer>47</integer>
+ <integer>57</integer>
+ <integer>60</integer>
+ <integer>62</integer>
+ <integer>64</integer>
+ <integer>67</integer>
+ <integer>69</integer>
+ <integer>89</integer>
+ </array>
+ <key>openTypeOS2VendorID</key>
+ <string>SIL</string>
+ <key>openTypeOS2WeightClass</key>
+ <integer>700</integer>
+ <key>openTypeOS2WidthClass</key>
+ <integer>5</integer>
+ <key>openTypeOS2WinAscent</key>
+ <integer>2100</integer>
+ <key>openTypeOS2WinDescent</key>
+ <integer>550</integer>
+ <key>postscriptBlueValues</key>
+ <array>
+ <integer>-490</integer>
+ <integer>-490</integer>
+ <integer>-25</integer>
+ <integer>0</integer>
+ <integer>1020</integer>
+ <integer>1040</integer>
+ <integer>1455</integer>
+ <integer>1485</integer>
+ <integer>1600</integer>
+ <integer>1620</integer>
+ </array>
+ <key>postscriptFamilyBlues</key>
+ <array/>
+ <key>postscriptFontName</key>
+ <string>PsfTest-BoldItalic</string>
+ <key>postscriptFullName</key>
+ <string>Psf Test Bold Italic</string>
+ <key>postscriptStemSnapH</key>
+ <array>
+ <integer>140</integer>
+ <integer>145</integer>
+ <integer>150</integer>
+ <integer>155</integer>
+ <integer>160</integer>
+ <integer>165</integer>
+ <integer>170</integer>
+ <integer>175</integer>
+ <integer>185</integer>
+ <integer>270</integer>
+ </array>
+ <key>postscriptStemSnapV</key>
+ <array>
+ <integer>165</integer>
+ <integer>180</integer>
+ <integer>185</integer>
+ <integer>190</integer>
+ <integer>195</integer>
+ <integer>200</integer>
+ <integer>205</integer>
+ <integer>270</integer>
+ </array>
+ <key>postscriptUnderlinePosition</key>
+ <integer>-110</integer>
+ <key>postscriptUnderlineThickness</key>
+ <integer>80</integer>
+ <key>styleMapFamilyName</key>
+ <string>Psf Test</string>
+ <key>styleMapStyleName</key>
+ <string>bold italic</string>
+ <key>styleName</key>
+ <string>Bold Italic</string>
+ <key>trademark</key>
+ <string>Andika is a trademark of SIL International.</string>
+ <key>unitsPerEm</key>
+ <integer>2048</integer>
+ <key>versionMajor</key>
+ <integer>5</integer>
+ <key>versionMinor</key>
+ <integer>550</integer>
+ <key>xHeight</key>
+ <integer>1040</integer>
+</dict>
+</plist>
diff --git a/tests/reference/ufo/psfsetpsnames.ufo/glyphs/A_mpersand.glif b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/A_mpersand.glif
new file mode 100644
index 0000000..f3fb1c7
--- /dev/null
+++ b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/A_mpersand.glif
@@ -0,0 +1,61 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Ampersand" format="2">
+ <advance width="1333"/>
+ <unicode hex="0026"/>
+ <outline>
+ <contour>
+ <point x="1146" y="594" type="line"/>
+ <point x="1040" y="429"/>
+ <point x="712" y="198"/>
+ <point x="537" y="198" type="curve" smooth="yes"/>
+ <point x="437" y="198"/>
+ <point x="363" y="257"/>
+ <point x="363" y="345" type="curve" smooth="yes"/>
+ <point x="363" y="490"/>
+ <point x="474" y="535"/>
+ <point x="695" y="693" type="curve" smooth="yes"/>
+ <point x="940" y="868"/>
+ <point x="1160" y="1032"/>
+ <point x="1160" y="1213" type="curve" smooth="yes"/>
+ <point x="1160" y="1361"/>
+ <point x="1026" y="1470"/>
+ <point x="849" y="1470" type="curve" smooth="yes"/>
+ <point x="637" y="1470"/>
+ <point x="414" y="1364"/>
+ <point x="414" y="1124" type="curve" smooth="yes"/>
+ <point x="414" y="968"/>
+ <point x="552" y="751"/>
+ <point x="661" y="535" type="curve" smooth="yes"/>
+ <point x="842" y="177"/>
+ <point x="969" y="-25"/>
+ <point x="1021" y="-25" type="curve" smooth="yes"/>
+ <point x="1056" y="-25"/>
+ <point x="1205" y="57"/>
+ <point x="1250" y="89" type="curve"/>
+ <point x="1165" y="129"/>
+ <point x="1073" y="302"/>
+ <point x="890" y="673" type="curve" smooth="yes"/>
+ <point x="788" y="881"/>
+ <point x="651" y="1063"/>
+ <point x="651" y="1163" type="curve" smooth="yes"/>
+ <point x="651" y="1245"/>
+ <point x="729" y="1307"/>
+ <point x="803" y="1307" type="curve" smooth="yes"/>
+ <point x="873" y="1307"/>
+ <point x="926" y="1250"/>
+ <point x="926" y="1184" type="curve" smooth="yes"/>
+ <point x="926" y="1081"/>
+ <point x="821" y="997"/>
+ <point x="600" y="832" type="curve" smooth="yes"/>
+ <point x="392" y="677"/>
+ <point x="108" y="540"/>
+ <point x="108" y="268" type="curve" smooth="yes"/>
+ <point x="108" y="98"/>
+ <point x="229" y="-25"/>
+ <point x="466" y="-25" type="curve" smooth="yes"/>
+ <point x="749" y="-25"/>
+ <point x="1120" y="261"/>
+ <point x="1237" y="421" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetpsnames.ufo/glyphs/A_pos.glif b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/A_pos.glif
new file mode 100644
index 0000000..68b000e
--- /dev/null
+++ b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/A_pos.glif
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Apos" format="2">
+ <advance width="605"/>
+ <unicode hex="0027"/>
+ <outline>
+ <contour>
+ <point x="598" y="1035" type="line"/>
+ <point x="637" y="1174"/>
+ <point x="676" y="1326"/>
+ <point x="766" y="1569" type="curve"/>
+ <point x="521" y="1569" type="line"/>
+ <point x="491" y="1326"/>
+ <point x="453" y="1174"/>
+ <point x="423" y="1035" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetpsnames.ufo/glyphs/A_sterisk.glif b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/A_sterisk.glif
new file mode 100644
index 0000000..a36131c
--- /dev/null
+++ b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/A_sterisk.glif
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Asterisk" format="2">
+ <advance width="1020"/>
+ <unicode hex="002A"/>
+ <outline>
+ <contour>
+ <point x="1135" y="1478" type="line"/>
+ <point x="1039" y="1412"/>
+ <point x="956" y="1353"/>
+ <point x="856" y="1295" type="curve"/>
+ <point x="885" y="1391"/>
+ <point x="915" y="1471"/>
+ <point x="958" y="1584" type="curve"/>
+ <point x="759" y="1584" type="line"/>
+ <point x="753" y="1482"/>
+ <point x="748" y="1398"/>
+ <point x="730" y="1295" type="curve"/>
+ <point x="658" y="1346"/>
+ <point x="599" y="1394"/>
+ <point x="532" y="1461" type="curve"/>
+ <point x="388" y="1293" type="line"/>
+ <point x="484" y="1258"/>
+ <point x="575" y="1222"/>
+ <point x="647" y="1184" type="curve"/>
+ <point x="552" y="1141"/>
+ <point x="459" y="1109"/>
+ <point x="341" y="1066" type="curve"/>
+ <point x="398" y="888" type="line"/>
+ <point x="494" y="958"/>
+ <point x="575" y="1016"/>
+ <point x="674" y="1076" type="curve"/>
+ <point x="641" y="973"/>
+ <point x="610" y="887"/>
+ <point x="566" y="785" type="curve"/>
+ <point x="767" y="785" type="line"/>
+ <point x="773" y="897"/>
+ <point x="785" y="977"/>
+ <point x="800" y="1073" type="curve"/>
+ <point x="875" y="1017"/>
+ <point x="929" y="971"/>
+ <point x="995" y="905" type="curve"/>
+ <point x="1144" y="1078" type="line"/>
+ <point x="1045" y="1116"/>
+ <point x="967" y="1143"/>
+ <point x="886" y="1184" type="curve"/>
+ <point x="984" y="1229"/>
+ <point x="1075" y="1264"/>
+ <point x="1190" y="1308" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetpsnames.ufo/glyphs/A_tS_gn.glif b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/A_tS_gn.glif
new file mode 100644
index 0000000..e2233cf
--- /dev/null
+++ b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/A_tS_gn.glif
@@ -0,0 +1,104 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="AtSgn" format="2">
+ <advance width="1693"/>
+ <unicode hex="0040"/>
+ <outline>
+ <contour>
+ <point x="1082" y="10" type="line"/>
+ <point x="1008" y="-34"/>
+ <point x="933" y="-59"/>
+ <point x="840" y="-59" type="curve" smooth="yes"/>
+ <point x="540" y="-59"/>
+ <point x="362" y="143"/>
+ <point x="362" y="434" type="curve" smooth="yes"/>
+ <point x="362" y="498"/>
+ <point x="371" y="567"/>
+ <point x="389" y="639" type="curve" smooth="yes"/>
+ <point x="480" y="1003"/>
+ <point x="783" y="1228"/>
+ <point x="1121" y="1228" type="curve" smooth="yes"/>
+ <point x="1424" y="1228"/>
+ <point x="1581" y="1069"/>
+ <point x="1581" y="813" type="curve" smooth="yes"/>
+ <point x="1581" y="753"/>
+ <point x="1572" y="688"/>
+ <point x="1555" y="619" type="curve" smooth="yes"/>
+ <point x="1506" y="418"/>
+ <point x="1400" y="331"/>
+ <point x="1340" y="331" type="curve" smooth="yes"/>
+ <point x="1307" y="331"/>
+ <point x="1287" y="362"/>
+ <point x="1287" y="432" type="curve" smooth="yes"/>
+ <point x="1287" y="482"/>
+ <point x="1297" y="551"/>
+ <point x="1320" y="643" type="curve" smooth="yes"/>
+ <point x="1401" y="970" type="line"/>
+ <point x="1323" y="1005"/>
+ <point x="1182" y="1030"/>
+ <point x="1101" y="1030" type="curve" smooth="yes"/>
+ <point x="937" y="1030"/>
+ <point x="822" y="974"/>
+ <point x="710" y="862" type="curve" smooth="yes"/>
+ <point x="637" y="789"/>
+ <point x="569" y="677"/>
+ <point x="539" y="556" type="curve" smooth="yes"/>
+ <point x="529" y="518"/>
+ <point x="525" y="481"/>
+ <point x="525" y="447" type="curve" smooth="yes"/>
+ <point x="525" y="279"/>
+ <point x="629" y="161"/>
+ <point x="740" y="161" type="curve" smooth="yes"/>
+ <point x="867" y="161"/>
+ <point x="1034" y="328"/>
+ <point x="1117" y="450" type="curve"/>
+ <point x="1112" y="422"/>
+ <point x="1110" y="394"/>
+ <point x="1110" y="367" type="curve" smooth="yes"/>
+ <point x="1110" y="252"/>
+ <point x="1157" y="155"/>
+ <point x="1291" y="155" type="curve" smooth="yes"/>
+ <point x="1454" y="155"/>
+ <point x="1674" y="332"/>
+ <point x="1752" y="646" type="curve" smooth="yes"/>
+ <point x="1768" y="710"/>
+ <point x="1775" y="771"/>
+ <point x="1775" y="829" type="curve" smooth="yes"/>
+ <point x="1775" y="1169"/>
+ <point x="1520" y="1411"/>
+ <point x="1156" y="1411" type="curve" smooth="yes"/>
+ <point x="731" y="1411"/>
+ <point x="322" y="1180"/>
+ <point x="183" y="624" type="curve" smooth="yes"/>
+ <point x="163" y="544"/>
+ <point x="154" y="469"/>
+ <point x="154" y="398" type="curve" smooth="yes"/>
+ <point x="154" y="-1"/>
+ <point x="448" y="-243"/>
+ <point x="789" y="-243" type="curve" smooth="yes"/>
+ <point x="924" y="-243"/>
+ <point x="1076" y="-206"/>
+ <point x="1193" y="-137" type="curve"/>
+ </contour>
+ <contour>
+ <point x="1135" y="703" type="line"/>
+ <point x="1069" y="566"/>
+ <point x="899" y="346"/>
+ <point x="809" y="346" type="curve" smooth="yes"/>
+ <point x="757" y="346"/>
+ <point x="726" y="386"/>
+ <point x="726" y="463" type="curve" smooth="yes"/>
+ <point x="726" y="493"/>
+ <point x="731" y="528"/>
+ <point x="741" y="569" type="curve" smooth="yes"/>
+ <point x="760" y="645"/>
+ <point x="803" y="731"/>
+ <point x="853" y="778" type="curve" smooth="yes"/>
+ <point x="901" y="824"/>
+ <point x="957" y="846"/>
+ <point x="1025" y="846" type="curve" smooth="yes"/>
+ <point x="1099" y="846"/>
+ <point x="1133" y="828"/>
+ <point x="1162" y="812" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetpsnames.ufo/glyphs/C_ircumA_ccent.glif b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/C_ircumA_ccent.glif
new file mode 100644
index 0000000..b60b998
--- /dev/null
+++ b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/C_ircumA_ccent.glif
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="CircumAccent" format="2">
+ <advance width="860"/>
+ <unicode hex="005E"/>
+ <anchor x="788" y="1635" name="U"/>
+ <outline>
+ <contour>
+ <point x="1056" y="1188" type="line"/>
+ <point x="845" y="1584" type="line"/>
+ <point x="545" y="1584" type="line"/>
+ <point x="177" y="1188" type="line"/>
+ <point x="417" y="1188" type="line"/>
+ <point x="674" y="1416" type="line"/>
+ <point x="817" y="1188" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetpsnames.ufo/glyphs/C_olon.glif b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/C_olon.glif
new file mode 100644
index 0000000..37f30d8
--- /dev/null
+++ b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/C_olon.glif
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Colon" format="2">
+ <advance width="690"/>
+ <unicode hex="003A"/>
+ <outline>
+ <contour>
+ <point x="171" y="116" type="curve" smooth="yes"/>
+ <point x="171" y="35"/>
+ <point x="232" y="-25"/>
+ <point x="318" y="-25" type="curve" smooth="yes"/>
+ <point x="436" y="-25"/>
+ <point x="531" y="71"/>
+ <point x="531" y="181" type="curve" smooth="yes"/>
+ <point x="531" y="261"/>
+ <point x="472" y="322"/>
+ <point x="385" y="322" type="curve" smooth="yes"/>
+ <point x="268" y="322"/>
+ <point x="171" y="226"/>
+ </contour>
+ <contour>
+ <point x="319" y="710" type="curve" smooth="yes"/>
+ <point x="319" y="629"/>
+ <point x="380" y="569"/>
+ <point x="466" y="569" type="curve" smooth="yes"/>
+ <point x="584" y="569"/>
+ <point x="679" y="665"/>
+ <point x="679" y="775" type="curve" smooth="yes"/>
+ <point x="679" y="855"/>
+ <point x="620" y="916"/>
+ <point x="533" y="916" type="curve" smooth="yes"/>
+ <point x="416" y="916"/>
+ <point x="319" y="820"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetpsnames.ufo/glyphs/C_ombA_cute.glif b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/C_ombA_cute.glif
new file mode 100644
index 0000000..f3ea065
--- /dev/null
+++ b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/C_ombA_cute.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="CombAcute" format="2">
+ <unicode hex="0301"/>
+ <anchor x="-251" y="1635" name="U"/>
+ <anchor x="-325" y="1100" name="_U"/>
+ <outline>
+ <contour>
+ <point x="-165" y="1584" type="line"/>
+ <point x="-523" y="1188" type="line"/>
+ <point x="-283" y="1188" type="line"/>
+ <point x="204" y="1584" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetpsnames.ufo/glyphs/C_ombC_ircum.glif b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/C_ombC_ircum.glif
new file mode 100644
index 0000000..9dc18ac
--- /dev/null
+++ b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/C_ombC_ircum.glif
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="CombCircum" format="2">
+ <unicode hex="0302"/>
+ <anchor x="-239" y="1635" name="U"/>
+ <anchor x="-330" y="1100" name="_U"/>
+ <outline>
+ <contour>
+ <point x="88" y="1188" type="line"/>
+ <point x="-123" y="1584" type="line"/>
+ <point x="-423" y="1584" type="line"/>
+ <point x="-791" y="1188" type="line"/>
+ <point x="-551" y="1188" type="line"/>
+ <point x="-294" y="1416" type="line"/>
+ <point x="-151" y="1188" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetpsnames.ufo/glyphs/C_ombD_iaer.glif b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/C_ombD_iaer.glif
new file mode 100644
index 0000000..490587d
--- /dev/null
+++ b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/C_ombD_iaer.glif
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="CombDiaer" format="2">
+ <unicode hex="0308"/>
+ <anchor x="-243" y="1585" name="U"/>
+ <anchor x="-365" y="1100" name="_U"/>
+ <outline>
+ <contour>
+ <point x="-233" y="1338" type="curve" smooth="yes"/>
+ <point x="-233" y="1256"/>
+ <point x="-172" y="1198"/>
+ <point x="-86" y="1198" type="curve" smooth="yes"/>
+ <point x="32" y="1198"/>
+ <point x="126" y="1294"/>
+ <point x="126" y="1404" type="curve" smooth="yes"/>
+ <point x="126" y="1484"/>
+ <point x="66" y="1544"/>
+ <point x="-21" y="1544" type="curve" smooth="yes"/>
+ <point x="-139" y="1544"/>
+ <point x="-233" y="1447"/>
+ </contour>
+ <contour>
+ <point x="-723" y="1338" type="curve" smooth="yes"/>
+ <point x="-723" y="1256"/>
+ <point x="-662" y="1198"/>
+ <point x="-576" y="1198" type="curve" smooth="yes"/>
+ <point x="-457" y="1198"/>
+ <point x="-363" y="1293"/>
+ <point x="-363" y="1404" type="curve" smooth="yes"/>
+ <point x="-363" y="1484"/>
+ <point x="-423" y="1544"/>
+ <point x="-510" y="1544" type="curve" smooth="yes"/>
+ <point x="-628" y="1544"/>
+ <point x="-723" y="1448"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetpsnames.ufo/glyphs/C_ombG_rave.glif b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/C_ombG_rave.glif
new file mode 100644
index 0000000..49617c2
--- /dev/null
+++ b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/C_ombG_rave.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="CombGrave" format="2">
+ <unicode hex="0300"/>
+ <anchor x="-241" y="1635" name="U"/>
+ <anchor x="-415" y="1100" name="_U"/>
+ <outline>
+ <contour>
+ <point x="-725" y="1584" type="line"/>
+ <point x="-403" y="1188" type="line"/>
+ <point x="-173" y="1188" type="line"/>
+ <point x="-395" y="1584" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetpsnames.ufo/glyphs/C_ombR_ingA_bv.glif b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/C_ombR_ingA_bv.glif
new file mode 100644
index 0000000..27f9832
--- /dev/null
+++ b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/C_ombR_ingA_bv.glif
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="CombRingAbv" format="2">
+ <unicode hex="030A"/>
+ <anchor x="-221" y="1635" name="U"/>
+ <anchor x="-357" y="1100" name="_U"/>
+ <outline>
+ <contour>
+ <point x="-358" y="1292" type="curve" smooth="yes"/>
+ <point x="-406" y="1292"/>
+ <point x="-442" y="1330"/>
+ <point x="-442" y="1375" type="curve" smooth="yes"/>
+ <point x="-442" y="1440"/>
+ <point x="-385" y="1480"/>
+ <point x="-331" y="1480" type="curve" smooth="yes"/>
+ <point x="-283" y="1480"/>
+ <point x="-247" y="1443"/>
+ <point x="-247" y="1398" type="curve" smooth="yes"/>
+ <point x="-247" y="1335"/>
+ <point x="-301" y="1292"/>
+ </contour>
+ <contour>
+ <point x="-598" y="1348" type="curve" smooth="yes"/>
+ <point x="-598" y="1238"/>
+ <point x="-504" y="1148"/>
+ <point x="-384" y="1148" type="curve" smooth="yes"/>
+ <point x="-223" y="1148"/>
+ <point x="-92" y="1271"/>
+ <point x="-92" y="1424" type="curve" smooth="yes"/>
+ <point x="-92" y="1534"/>
+ <point x="-186" y="1624"/>
+ <point x="-306" y="1624" type="curve" smooth="yes"/>
+ <point x="-467" y="1624"/>
+ <point x="-598" y="1501"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetpsnames.ufo/glyphs/C_ombT_ilde.glif b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/C_ombT_ilde.glif
new file mode 100644
index 0000000..1aa1b62
--- /dev/null
+++ b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/C_ombT_ilde.glif
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="CombTilde" format="2">
+ <unicode hex="0303"/>
+ <anchor x="-355" y="1490" name="U"/>
+ <anchor x="-390" y="1100" name="_U"/>
+ <outline>
+ <contour>
+ <point x="-687" y="1178" type="line"/>
+ <point x="-673" y="1232"/>
+ <point x="-628" y="1271"/>
+ <point x="-584" y="1271" type="curve" smooth="yes"/>
+ <point x="-546" y="1271"/>
+ <point x="-498" y="1247"/>
+ <point x="-437" y="1217" type="curve" smooth="yes"/>
+ <point x="-375" y="1187"/>
+ <point x="-327" y="1168"/>
+ <point x="-265" y="1168" type="curve" smooth="yes"/>
+ <point x="-129" y="1168"/>
+ <point x="-13" y="1294"/>
+ <point x="30" y="1465" type="curve"/>
+ <point x="-125" y="1465" type="line"/>
+ <point x="-138" y="1415"/>
+ <point x="-190" y="1373"/>
+ <point x="-235" y="1373" type="curve" smooth="yes"/>
+ <point x="-272" y="1373"/>
+ <point x="-306" y="1399"/>
+ <point x="-366" y="1423" type="curve" smooth="yes"/>
+ <point x="-438" y="1452"/>
+ <point x="-498" y="1475"/>
+ <point x="-563" y="1475" type="curve" smooth="yes"/>
+ <point x="-695" y="1475"/>
+ <point x="-802" y="1336"/>
+ <point x="-842" y="1178" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetpsnames.ufo/glyphs/C_omma.glif b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/C_omma.glif
new file mode 100644
index 0000000..4105316
--- /dev/null
+++ b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/C_omma.glif
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Comma" format="2">
+ <advance width="645"/>
+ <unicode hex="002C"/>
+ <outline>
+ <contour>
+ <point x="137" y="49" type="line"/>
+ <point x="297" y="49" type="line"/>
+ <point x="276" y="-34"/>
+ <point x="192" y="-151"/>
+ <point x="59" y="-262" type="curve"/>
+ <point x="187" y="-332" type="line"/>
+ <point x="337" y="-222"/>
+ <point x="539" y="-11"/>
+ <point x="539" y="165" type="curve" smooth="yes"/>
+ <point x="539" y="262"/>
+ <point x="495" y="337"/>
+ <point x="379" y="337" type="curve" smooth="yes"/>
+ <point x="266" y="337"/>
+ <point x="187" y="252"/>
+ <point x="169" y="178" type="curve" smooth="yes"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetpsnames.ufo/glyphs/D_igitE_ight.glif b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/D_igitE_ight.glif
new file mode 100644
index 0000000..9272dc9
--- /dev/null
+++ b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/D_igitE_ight.glif
@@ -0,0 +1,63 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitEight" format="2">
+ <advance width="1180"/>
+ <unicode hex="0038"/>
+ <anchor x="515" y="-100" name="L"/>
+ <anchor x="922" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="543" y="-25" type="curve" smooth="yes"/>
+ <point x="860" y="-25"/>
+ <point x="1182" y="176"/>
+ <point x="1182" y="498" type="curve" smooth="yes"/>
+ <point x="1182" y="642"/>
+ <point x="1090" y="742"/>
+ <point x="1011" y="787" type="curve"/>
+ <point x="1159" y="866"/>
+ <point x="1279" y="994"/>
+ <point x="1279" y="1163" type="curve" smooth="yes"/>
+ <point x="1279" y="1342"/>
+ <point x="1123" y="1470"/>
+ <point x="906" y="1470" type="curve" smooth="yes"/>
+ <point x="632" y="1470"/>
+ <point x="349" y="1310"/>
+ <point x="349" y="1028" type="curve" smooth="yes"/>
+ <point x="349" y="904"/>
+ <point x="412" y="821"/>
+ <point x="466" y="787" type="curve"/>
+ <point x="270" y="703"/>
+ <point x="108" y="563"/>
+ <point x="108" y="341" type="curve" smooth="yes"/>
+ <point x="108" y="123"/>
+ <point x="301" y="-25"/>
+ </contour>
+ <contour>
+ <point x="760" y="886" type="curve" smooth="yes"/>
+ <point x="651" y="886"/>
+ <point x="593" y="939"/>
+ <point x="593" y="1038" type="curve" smooth="yes"/>
+ <point x="593" y="1175"/>
+ <point x="721" y="1277"/>
+ <point x="858" y="1277" type="curve" smooth="yes"/>
+ <point x="976" y="1277"/>
+ <point x="1028" y="1221"/>
+ <point x="1028" y="1127" type="curve" smooth="yes"/>
+ <point x="1028" y="993"/>
+ <point x="898" y="886"/>
+ </contour>
+ <contour>
+ <point x="595" y="183" type="curve" smooth="yes"/>
+ <point x="458" y="183"/>
+ <point x="375" y="267"/>
+ <point x="375" y="384" type="curve" smooth="yes"/>
+ <point x="375" y="549"/>
+ <point x="549" y="673"/>
+ <point x="707" y="673" type="curve" smooth="yes"/>
+ <point x="833" y="673"/>
+ <point x="920" y="602"/>
+ <point x="920" y="477" type="curve" smooth="yes"/>
+ <point x="920" y="317"/>
+ <point x="759" y="183"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetpsnames.ufo/glyphs/D_igitF_ive.glif b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/D_igitF_ive.glif
new file mode 100644
index 0000000..1c4dd99
--- /dev/null
+++ b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/D_igitF_ive.glif
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitFive" format="2">
+ <advance width="1180"/>
+ <unicode hex="0035"/>
+ <anchor x="515" y="-100" name="L"/>
+ <anchor x="922" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1330" y="1445" type="line"/>
+ <point x="475" y="1445" type="line"/>
+ <point x="274" y="639" type="line"/>
+ <point x="410" y="686"/>
+ <point x="519" y="703"/>
+ <point x="625" y="703" type="curve" smooth="yes"/>
+ <point x="763" y="703"/>
+ <point x="867" y="630"/>
+ <point x="867" y="507" type="curve" smooth="yes"/>
+ <point x="867" y="318"/>
+ <point x="680" y="213"/>
+ <point x="503" y="213" type="curve" smooth="yes"/>
+ <point x="363" y="213"/>
+ <point x="255" y="260"/>
+ <point x="168" y="356" type="curve"/>
+ <point x="59" y="79" type="line"/>
+ <point x="165" y="2"/>
+ <point x="308" y="-25"/>
+ <point x="483" y="-25" type="curve" smooth="yes"/>
+ <point x="841" y="-25"/>
+ <point x="1155" y="204"/>
+ <point x="1155" y="564" type="curve" smooth="yes"/>
+ <point x="1155" y="774"/>
+ <point x="1007" y="921"/>
+ <point x="774" y="921" type="curve" smooth="yes"/>
+ <point x="712" y="921"/>
+ <point x="632" y="902"/>
+ <point x="595" y="886" type="curve"/>
+ <point x="674" y="1203" type="line"/>
+ <point x="1004" y="1203" type="line" smooth="yes"/>
+ <point x="1088" y="1203"/>
+ <point x="1193" y="1199"/>
+ <point x="1264" y="1183" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetpsnames.ufo/glyphs/D_igitF_our.glif b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/D_igitF_our.glif
new file mode 100644
index 0000000..617709f
--- /dev/null
+++ b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/D_igitF_our.glif
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitFour" format="2">
+ <advance width="1180"/>
+ <unicode hex="0034"/>
+ <anchor x="522" y="-100" name="L"/>
+ <anchor x="929" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1180" y="342" type="line"/>
+ <point x="1235" y="564" type="line"/>
+ <point x="1075" y="564" type="line"/>
+ <point x="1295" y="1445" type="line"/>
+ <point x="945" y="1445" type="line"/>
+ <point x="120" y="564" type="line"/>
+ <point x="65" y="342" type="line"/>
+ <point x="755" y="342" type="line"/>
+ <point x="670" y="0" type="line"/>
+ <point x="935" y="0" type="line"/>
+ <point x="1020" y="342" type="line"/>
+ </contour>
+ <contour>
+ <point x="954" y="1143" type="line"/>
+ <point x="810" y="564" type="line"/>
+ <point x="385" y="564" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetpsnames.ufo/glyphs/D_igitN_ine.glif b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/D_igitN_ine.glif
new file mode 100644
index 0000000..85e36a0
--- /dev/null
+++ b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/D_igitN_ine.glif
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitNine" format="2">
+ <advance width="1180"/>
+ <unicode hex="0039"/>
+ <anchor x="515" y="-100" name="L"/>
+ <anchor x="922" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="119" y="84" type="line"/>
+ <point x="199" y="25"/>
+ <point x="327" y="-25"/>
+ <point x="455" y="-25" type="curve" smooth="yes"/>
+ <point x="979" y="-25"/>
+ <point x="1289" y="533"/>
+ <point x="1289" y="979" type="curve" smooth="yes"/>
+ <point x="1289" y="1248"/>
+ <point x="1164" y="1470"/>
+ <point x="833" y="1470" type="curve" smooth="yes"/>
+ <point x="554" y="1470"/>
+ <point x="255" y="1239"/>
+ <point x="255" y="932" type="curve" smooth="yes"/>
+ <point x="255" y="736"/>
+ <point x="399" y="570"/>
+ <point x="644" y="570" type="curve" smooth="yes"/>
+ <point x="833" y="570"/>
+ <point x="1027" y="700"/>
+ <point x="1164" y="859" type="curve"/>
+ <point x="1123" y="981" type="line"/>
+ <point x="1021" y="868"/>
+ <point x="863" y="782"/>
+ <point x="728" y="782" type="curve" smooth="yes"/>
+ <point x="589" y="782"/>
+ <point x="519" y="845"/>
+ <point x="519" y="955" type="curve" smooth="yes"/>
+ <point x="519" y="1133"/>
+ <point x="653" y="1237"/>
+ <point x="801" y="1237" type="curve" smooth="yes"/>
+ <point x="951" y="1237"/>
+ <point x="1029" y="1136"/>
+ <point x="1029" y="965" type="curve" smooth="yes"/>
+ <point x="1029" y="476"/>
+ <point x="710" y="208"/>
+ <point x="513" y="208" type="curve" smooth="yes"/>
+ <point x="417" y="208"/>
+ <point x="301" y="252"/>
+ <point x="237" y="337" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetpsnames.ufo/glyphs/D_igitO_ne.glif b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/D_igitO_ne.glif
new file mode 100644
index 0000000..df3633d
--- /dev/null
+++ b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/D_igitO_ne.glif
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitOne" format="2">
+ <advance width="1180"/>
+ <unicode hex="0031"/>
+ <anchor x="515" y="-100" name="L"/>
+ <anchor x="922" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="490" y="233" type="line"/>
+ <point x="183" y="233" type="line"/>
+ <point x="125" y="0" type="line"/>
+ <point x="1015" y="0" type="line"/>
+ <point x="1073" y="233" type="line"/>
+ <point x="765" y="233" type="line"/>
+ <point x="1067" y="1445" type="line"/>
+ <point x="792" y="1445" type="line"/>
+ <point x="432" y="1265" type="line"/>
+ <point x="403" y="1008" type="line"/>
+ <point x="720" y="1158" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetpsnames.ufo/glyphs/D_igitS_even.glif b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/D_igitS_even.glif
new file mode 100644
index 0000000..23ac13b
--- /dev/null
+++ b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/D_igitS_even.glif
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitSeven" format="2">
+ <advance width="1180"/>
+ <unicode hex="0037"/>
+ <anchor x="515" y="-100" name="L"/>
+ <anchor x="922" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="480" y="0" type="line"/>
+ <point x="722" y="454"/>
+ <point x="1004" y="846"/>
+ <point x="1400" y="1247" type="curve"/>
+ <point x="1450" y="1445" type="line"/>
+ <point x="390" y="1445" type="line"/>
+ <point x="324" y="1178" type="line"/>
+ <point x="404" y="1194"/>
+ <point x="521" y="1198"/>
+ <point x="709" y="1198" type="curve" smooth="yes"/>
+ <point x="1039" y="1198" type="line"/>
+ <point x="689" y="829"/>
+ <point x="488" y="560"/>
+ <point x="175" y="0" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetpsnames.ufo/glyphs/D_igitS_ix.glif b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/D_igitS_ix.glif
new file mode 100644
index 0000000..5fad278
--- /dev/null
+++ b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/D_igitS_ix.glif
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitSix" format="2">
+ <advance width="1180"/>
+ <unicode hex="0036"/>
+ <anchor x="525" y="-100" name="L"/>
+ <anchor x="932" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1347" y="1371" type="line"/>
+ <point x="1260" y="1440"/>
+ <point x="1149" y="1470"/>
+ <point x="1011" y="1470" type="curve" smooth="yes"/>
+ <point x="493" y="1470"/>
+ <point x="181" y="971"/>
+ <point x="181" y="500" type="curve" smooth="yes"/>
+ <point x="181" y="188"/>
+ <point x="368" y="-25"/>
+ <point x="635" y="-25" type="curve" smooth="yes"/>
+ <point x="954" y="-25"/>
+ <point x="1207" y="192"/>
+ <point x="1207" y="498" type="curve" smooth="yes"/>
+ <point x="1207" y="714"/>
+ <point x="1058" y="916"/>
+ <point x="813" y="916" type="curve" smooth="yes"/>
+ <point x="622" y="916"/>
+ <point x="477" y="802"/>
+ <point x="326" y="648" type="curve"/>
+ <point x="363" y="525" type="line"/>
+ <point x="470" y="637"/>
+ <point x="595" y="703"/>
+ <point x="750" y="703" type="curve" smooth="yes"/>
+ <point x="882" y="703"/>
+ <point x="954" y="586"/>
+ <point x="954" y="466" type="curve" smooth="yes"/>
+ <point x="954" y="325"/>
+ <point x="828" y="208"/>
+ <point x="677" y="208" type="curve" smooth="yes"/>
+ <point x="526" y="208"/>
+ <point x="447" y="350"/>
+ <point x="447" y="533" type="curve" smooth="yes"/>
+ <point x="447" y="978"/>
+ <point x="738" y="1237"/>
+ <point x="953" y="1237" type="curve" smooth="yes"/>
+ <point x="1049" y="1237"/>
+ <point x="1155" y="1204"/>
+ <point x="1220" y="1119" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetpsnames.ufo/glyphs/D_igitT_hree.glif b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/D_igitT_hree.glif
new file mode 100644
index 0000000..5be951b
--- /dev/null
+++ b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/D_igitT_hree.glif
@@ -0,0 +1,52 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitThree" format="2">
+ <advance width="1180"/>
+ <unicode hex="0033"/>
+ <anchor x="515" y="-100" name="L"/>
+ <anchor x="922" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="548" y="876" type="line"/>
+ <point x="489" y="639" type="line"/>
+ <point x="579" y="639" type="line" smooth="yes"/>
+ <point x="778" y="639"/>
+ <point x="880" y="555"/>
+ <point x="880" y="452" type="curve" smooth="yes"/>
+ <point x="880" y="295"/>
+ <point x="726" y="208"/>
+ <point x="576" y="208" type="curve" smooth="yes"/>
+ <point x="386" y="208"/>
+ <point x="253" y="279"/>
+ <point x="174" y="401" type="curve"/>
+ <point x="72" y="129" type="line"/>
+ <point x="162" y="32"/>
+ <point x="321" y="-25"/>
+ <point x="518" y="-25" type="curve" smooth="yes"/>
+ <point x="867" y="-25"/>
+ <point x="1163" y="169"/>
+ <point x="1163" y="471" type="curve" smooth="yes"/>
+ <point x="1163" y="644"/>
+ <point x="999" y="751"/>
+ <point x="882" y="772" type="curve"/>
+ <point x="1076" y="817"/>
+ <point x="1296" y="963"/>
+ <point x="1296" y="1172" type="curve" smooth="yes"/>
+ <point x="1296" y="1348"/>
+ <point x="1112" y="1470"/>
+ <point x="856" y="1470" type="curve" smooth="yes"/>
+ <point x="689" y="1470"/>
+ <point x="529" y="1402"/>
+ <point x="427" y="1312" type="curve"/>
+ <point x="405" y="1084" type="line"/>
+ <point x="546" y="1199"/>
+ <point x="664" y="1237"/>
+ <point x="818" y="1237" type="curve" smooth="yes"/>
+ <point x="928" y="1237"/>
+ <point x="1001" y="1178"/>
+ <point x="1001" y="1100" type="curve" smooth="yes"/>
+ <point x="1001" y="975"/>
+ <point x="819" y="876"/>
+ <point x="638" y="876" type="curve" smooth="yes"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetpsnames.ufo/glyphs/D_igitT_wo.glif b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/D_igitT_wo.glif
new file mode 100644
index 0000000..001d438
--- /dev/null
+++ b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/D_igitT_wo.glif
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitTwo" format="2">
+ <advance width="1180"/>
+ <unicode hex="0032"/>
+ <anchor x="515" y="-100" name="L"/>
+ <anchor x="882" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1094" y="257" type="line"/>
+ <point x="1010" y="244"/>
+ <point x="942" y="243"/>
+ <point x="745" y="243" type="curve" smooth="yes"/>
+ <point x="480" y="243" type="line"/>
+ <point x="875" y="492"/>
+ <point x="1255" y="786"/>
+ <point x="1255" y="1125" type="curve" smooth="yes"/>
+ <point x="1255" y="1324"/>
+ <point x="1106" y="1470"/>
+ <point x="846" y="1470" type="curve" smooth="yes"/>
+ <point x="667" y="1470"/>
+ <point x="472" y="1388"/>
+ <point x="363" y="1277" type="curve"/>
+ <point x="374" y="1039" type="line"/>
+ <point x="489" y="1146"/>
+ <point x="646" y="1223"/>
+ <point x="762" y="1223" type="curve" smooth="yes"/>
+ <point x="890" y="1223"/>
+ <point x="949" y="1138"/>
+ <point x="949" y="1040" type="curve" smooth="yes"/>
+ <point x="949" y="805"/>
+ <point x="500" y="440"/>
+ <point x="104" y="218" type="curve"/>
+ <point x="50" y="0" type="line"/>
+ <point x="1030" y="0" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetpsnames.ufo/glyphs/D_igitZ_ero.glif b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/D_igitZ_ero.glif
new file mode 100644
index 0000000..895a8e4
--- /dev/null
+++ b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/D_igitZ_ero.glif
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitZero" format="2">
+ <advance width="1180"/>
+ <unicode hex="0030"/>
+ <anchor x="520" y="-100" name="L"/>
+ <anchor x="927" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="959" y="683" type="curve" smooth="yes"/>
+ <point x="873" y="339"/>
+ <point x="762" y="203"/>
+ <point x="600" y="203" type="curve" smooth="yes"/>
+ <point x="469" y="203"/>
+ <point x="432" y="294"/>
+ <point x="432" y="454" type="curve" smooth="yes"/>
+ <point x="432" y="537"/>
+ <point x="447" y="630"/>
+ <point x="478" y="755" type="curve" smooth="yes"/>
+ <point x="564" y="1099"/>
+ <point x="676" y="1242"/>
+ <point x="839" y="1242" type="curve" smooth="yes"/>
+ <point x="971" y="1242"/>
+ <point x="1010" y="1140"/>
+ <point x="1010" y="992" type="curve" smooth="yes"/>
+ <point x="1010" y="907"/>
+ <point x="991" y="811"/>
+ </contour>
+ <contour>
+ <point x="1246" y="689" type="curve" smooth="yes"/>
+ <point x="1281" y="828"/>
+ <point x="1298" y="927"/>
+ <point x="1298" y="1028" type="curve" smooth="yes"/>
+ <point x="1298" y="1317"/>
+ <point x="1158" y="1470"/>
+ <point x="906" y="1470" type="curve" smooth="yes"/>
+ <point x="587" y="1470"/>
+ <point x="329" y="1302"/>
+ <point x="190" y="745" type="curve" smooth="yes"/>
+ <point x="157" y="611"/>
+ <point x="141" y="516"/>
+ <point x="141" y="420" type="curve" smooth="yes"/>
+ <point x="141" y="131"/>
+ <point x="292" y="-25"/>
+ <point x="533" y="-25" type="curve" smooth="yes"/>
+ <point x="854" y="-25"/>
+ <point x="1103" y="115"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetpsnames.ufo/glyphs/D_ollarS_gn.glif b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/D_ollarS_gn.glif
new file mode 100644
index 0000000..0b8bdfc
--- /dev/null
+++ b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/D_ollarS_gn.glif
@@ -0,0 +1,57 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DollarSgn" format="2">
+ <advance width="1180"/>
+ <unicode hex="0024"/>
+ <outline>
+ <contour>
+ <point x="879" y="1584" type="line"/>
+ <point x="679" y="780" type="line"/>
+ <point x="634" y="719" type="line"/>
+ <point x="400" y="-218" type="line"/>
+ <point x="576" y="-218" type="line"/>
+ <point x="795" y="661" type="line"/>
+ <point x="842" y="727" type="line"/>
+ <point x="1055" y="1584" type="line"/>
+ </contour>
+ <contour>
+ <point x="1250" y="1303" type="line"/>
+ <point x="1145" y="1355"/>
+ <point x="1026" y="1375"/>
+ <point x="885" y="1375" type="curve" smooth="yes"/>
+ <point x="537" y="1375"/>
+ <point x="345" y="1216"/>
+ <point x="345" y="984" type="curve" smooth="yes"/>
+ <point x="345" y="841"/>
+ <point x="441" y="726"/>
+ <point x="638" y="622" type="curve" smooth="yes"/>
+ <point x="832" y="519"/>
+ <point x="881" y="451"/>
+ <point x="881" y="381" type="curve" smooth="yes"/>
+ <point x="881" y="274"/>
+ <point x="817" y="209"/>
+ <point x="613" y="209" type="curve" smooth="yes"/>
+ <point x="462" y="209"/>
+ <point x="336" y="298"/>
+ <point x="259" y="389" type="curve"/>
+ <point x="133" y="143" type="line"/>
+ <point x="243" y="56"/>
+ <point x="378" y="0"/>
+ <point x="566" y="0" type="curve" smooth="yes"/>
+ <point x="879" y="0"/>
+ <point x="1120" y="142"/>
+ <point x="1120" y="396" type="curve" smooth="yes"/>
+ <point x="1120" y="562"/>
+ <point x="1028" y="682"/>
+ <point x="817" y="803" type="curve" smooth="yes"/>
+ <point x="635" y="908"/>
+ <point x="592" y="958"/>
+ <point x="592" y="1016" type="curve" smooth="yes"/>
+ <point x="592" y="1113"/>
+ <point x="649" y="1176"/>
+ <point x="826" y="1176" type="curve" smooth="yes"/>
+ <point x="954" y="1176"/>
+ <point x="1048" y="1135"/>
+ <point x="1134" y="1066" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetpsnames.ufo/glyphs/D_ottedC_irc.glif b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/D_ottedC_irc.glif
new file mode 100644
index 0000000..f7581b6
--- /dev/null
+++ b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/D_ottedC_irc.glif
@@ -0,0 +1,235 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DottedCirc" format="2">
+ <advance width="1086"/>
+ <unicode hex="25CC"/>
+ <anchor x="493" y="0" name="H"/>
+ <anchor x="545" y="-100" name="L"/>
+ <anchor x="750" y="0" name="O"/>
+ <anchor x="645" y="1000" name="U"/>
+ <outline>
+ <contour>
+ <point x="443" y="837" type="curve" smooth="yes"/>
+ <point x="443" y="864"/>
+ <point x="423" y="885"/>
+ <point x="398" y="885" type="curve" smooth="yes"/>
+ <point x="371" y="885"/>
+ <point x="348" y="861"/>
+ <point x="348" y="837" type="curve" smooth="yes"/>
+ <point x="348" y="809"/>
+ <point x="372" y="789"/>
+ <point x="398" y="789" type="curve" smooth="yes"/>
+ <point x="425" y="789"/>
+ <point x="443" y="812"/>
+ </contour>
+ <contour>
+ <point x="758" y="79" type="curve" smooth="yes"/>
+ <point x="758" y="106"/>
+ <point x="736" y="127"/>
+ <point x="710" y="127" type="curve" smooth="yes"/>
+ <point x="685" y="127"/>
+ <point x="662" y="103"/>
+ <point x="662" y="80" type="curve" smooth="yes"/>
+ <point x="662" y="52"/>
+ <point x="686" y="31"/>
+ <point x="710" y="31" type="curve" smooth="yes"/>
+ <point x="737" y="31"/>
+ <point x="758" y="55"/>
+ </contour>
+ <contour>
+ <point x="310" y="749" type="curve" smooth="yes"/>
+ <point x="310" y="775"/>
+ <point x="288" y="796"/>
+ <point x="263" y="796" type="curve" smooth="yes"/>
+ <point x="238" y="796"/>
+ <point x="215" y="774"/>
+ <point x="215" y="747" type="curve" smooth="yes"/>
+ <point x="215" y="722"/>
+ <point x="236" y="701"/>
+ <point x="263" y="701" type="curve" smooth="yes"/>
+ <point x="291" y="701"/>
+ <point x="310" y="720"/>
+ </contour>
+ <contour>
+ <point x="891" y="168" type="curve" smooth="yes"/>
+ <point x="891" y="197"/>
+ <point x="870" y="215"/>
+ <point x="843" y="215" type="curve" smooth="yes"/>
+ <point x="817" y="215"/>
+ <point x="795" y="194"/>
+ <point x="795" y="168" type="curve" smooth="yes"/>
+ <point x="795" y="143"/>
+ <point x="816" y="121"/>
+ <point x="843" y="121" type="curve" smooth="yes"/>
+ <point x="871" y="121"/>
+ <point x="891" y="143"/>
+ </contour>
+ <contour>
+ <point x="222" y="613" type="curve" smooth="yes"/>
+ <point x="222" y="640"/>
+ <point x="199" y="663"/>
+ <point x="173" y="663" type="curve" smooth="yes"/>
+ <point x="149" y="663"/>
+ <point x="126" y="642"/>
+ <point x="126" y="615" type="curve" smooth="yes"/>
+ <point x="126" y="591"/>
+ <point x="145" y="567"/>
+ <point x="173" y="567" type="curve" smooth="yes"/>
+ <point x="197" y="567"/>
+ <point x="222" y="587"/>
+ </contour>
+ <contour>
+ <point x="980" y="301" type="curve" smooth="yes"/>
+ <point x="980" y="327"/>
+ <point x="957" y="348"/>
+ <point x="932" y="348" type="curve" smooth="yes"/>
+ <point x="908" y="348"/>
+ <point x="884" y="332"/>
+ <point x="884" y="301" type="curve" smooth="yes"/>
+ <point x="884" y="277"/>
+ <point x="902" y="254"/>
+ <point x="932" y="254" type="curve" smooth="yes"/>
+ <point x="957" y="254"/>
+ <point x="980" y="274"/>
+ </contour>
+ <contour>
+ <point x="191" y="459" type="curve" smooth="yes"/>
+ <point x="191" y="484"/>
+ <point x="168" y="505"/>
+ <point x="143" y="505" type="curve" smooth="yes"/>
+ <point x="116" y="505"/>
+ <point x="95" y="484"/>
+ <point x="95" y="458" type="curve" smooth="yes"/>
+ <point x="95" y="433"/>
+ <point x="115" y="410"/>
+ <point x="143" y="410" type="curve" smooth="yes"/>
+ <point x="167" y="410"/>
+ <point x="191" y="432"/>
+ </contour>
+ <contour>
+ <point x="1011" y="458" type="curve" smooth="yes"/>
+ <point x="1011" y="484"/>
+ <point x="990" y="506"/>
+ <point x="964" y="506" type="curve" smooth="yes"/>
+ <point x="940" y="506"/>
+ <point x="915" y="484"/>
+ <point x="915" y="457" type="curve" smooth="yes"/>
+ <point x="915" y="433"/>
+ <point x="936" y="411"/>
+ <point x="964" y="411" type="curve" smooth="yes"/>
+ <point x="990" y="411"/>
+ <point x="1011" y="433"/>
+ </contour>
+ <contour>
+ <point x="222" y="302" type="curve" smooth="yes"/>
+ <point x="222" y="328"/>
+ <point x="200" y="348"/>
+ <point x="174" y="348" type="curve" smooth="yes"/>
+ <point x="147" y="348"/>
+ <point x="126" y="326"/>
+ <point x="126" y="302" type="curve" smooth="yes"/>
+ <point x="126" y="275"/>
+ <point x="149" y="253"/>
+ <point x="174" y="253" type="curve" smooth="yes"/>
+ <point x="201" y="253"/>
+ <point x="222" y="277"/>
+ </contour>
+ <contour>
+ <point x="980" y="615" type="curve" smooth="yes"/>
+ <point x="980" y="642"/>
+ <point x="955" y="663"/>
+ <point x="931" y="663" type="curve" smooth="yes"/>
+ <point x="904" y="663"/>
+ <point x="885" y="638"/>
+ <point x="885" y="614" type="curve" smooth="yes"/>
+ <point x="885" y="588"/>
+ <point x="907" y="567"/>
+ <point x="931" y="567" type="curve" smooth="yes"/>
+ <point x="959" y="567"/>
+ <point x="980" y="591"/>
+ </contour>
+ <contour>
+ <point x="310" y="168" type="curve" smooth="yes"/>
+ <point x="310" y="195"/>
+ <point x="291" y="215"/>
+ <point x="263" y="215" type="curve" smooth="yes"/>
+ <point x="238" y="215"/>
+ <point x="215" y="190"/>
+ <point x="215" y="168" type="curve" smooth="yes"/>
+ <point x="215" y="143"/>
+ <point x="238" y="120"/>
+ <point x="263" y="120" type="curve" smooth="yes"/>
+ <point x="289" y="120"/>
+ <point x="310" y="143"/>
+ </contour>
+ <contour>
+ <point x="890" y="748" type="curve" smooth="yes"/>
+ <point x="890" y="774"/>
+ <point x="870" y="796"/>
+ <point x="843" y="796" type="curve" smooth="yes"/>
+ <point x="815" y="796"/>
+ <point x="796" y="773"/>
+ <point x="796" y="748" type="curve" smooth="yes"/>
+ <point x="796" y="724"/>
+ <point x="817" y="700"/>
+ <point x="843" y="700" type="curve" smooth="yes"/>
+ <point x="869" y="700"/>
+ <point x="890" y="722"/>
+ </contour>
+ <contour>
+ <point x="444" y="78" type="curve" smooth="yes"/>
+ <point x="444" y="102"/>
+ <point x="423" y="126"/>
+ <point x="396" y="126" type="curve" smooth="yes"/>
+ <point x="370" y="126"/>
+ <point x="348" y="102"/>
+ <point x="348" y="78" type="curve" smooth="yes"/>
+ <point x="348" y="55"/>
+ <point x="370" y="31"/>
+ <point x="396" y="31" type="curve" smooth="yes"/>
+ <point x="420" y="31"/>
+ <point x="444" y="51"/>
+ </contour>
+ <contour>
+ <point x="758" y="836" type="curve" smooth="yes"/>
+ <point x="758" y="861"/>
+ <point x="737" y="885"/>
+ <point x="710" y="885" type="curve" smooth="yes"/>
+ <point x="684" y="885"/>
+ <point x="663" y="862"/>
+ <point x="663" y="838" type="curve" smooth="yes"/>
+ <point x="663" y="814"/>
+ <point x="683" y="789"/>
+ <point x="710" y="789" type="curve" smooth="yes"/>
+ <point x="734" y="789"/>
+ <point x="758" y="809"/>
+ </contour>
+ <contour>
+ <point x="601" y="47" type="curve" smooth="yes"/>
+ <point x="601" y="73"/>
+ <point x="579" y="95"/>
+ <point x="553" y="95" type="curve" smooth="yes"/>
+ <point x="527" y="95"/>
+ <point x="506" y="73"/>
+ <point x="506" y="47" type="curve" smooth="yes"/>
+ <point x="506" y="21"/>
+ <point x="527" y="0"/>
+ <point x="553" y="0" type="curve" smooth="yes"/>
+ <point x="579" y="0"/>
+ <point x="601" y="21"/>
+ </contour>
+ <contour>
+ <point x="601" y="868" type="curve" smooth="yes"/>
+ <point x="601" y="894"/>
+ <point x="579" y="916"/>
+ <point x="553" y="916" type="curve" smooth="yes"/>
+ <point x="527" y="916"/>
+ <point x="506" y="894"/>
+ <point x="506" y="868" type="curve" smooth="yes"/>
+ <point x="506" y="842"/>
+ <point x="527" y="821"/>
+ <point x="553" y="821" type="curve" smooth="yes"/>
+ <point x="579" y="821"/>
+ <point x="601" y="842"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetpsnames.ufo/glyphs/E_qS_gn.glif b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/E_qS_gn.glif
new file mode 100644
index 0000000..0461eab
--- /dev/null
+++ b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/E_qS_gn.glif
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="EqSgn" format="2">
+ <advance width="1180"/>
+ <unicode hex="003D"/>
+ <outline>
+ <contour>
+ <point x="168" y="436" type="line"/>
+ <point x="1128" y="436" type="line"/>
+ <point x="1180" y="643" type="line"/>
+ <point x="220" y="643" type="line"/>
+ </contour>
+ <contour>
+ <point x="259" y="802" type="line"/>
+ <point x="1219" y="802" type="line"/>
+ <point x="1271" y="1010" type="line"/>
+ <point x="311" y="1010" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetpsnames.ufo/glyphs/E_xclamationM_rk.glif b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/E_xclamationM_rk.glif
new file mode 100644
index 0000000..167f45e
--- /dev/null
+++ b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/E_xclamationM_rk.glif
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="ExclamationMrk" format="2">
+ <advance width="760"/>
+ <unicode hex="0021"/>
+ <outline>
+ <contour>
+ <point x="593" y="495" type="line"/>
+ <point x="670" y="782"/>
+ <point x="736" y="1065"/>
+ <point x="882" y="1495" type="curve"/>
+ <point x="547" y="1495" type="line"/>
+ <point x="478" y="1065"/>
+ <point x="402" y="782"/>
+ <point x="338" y="495" type="curve"/>
+ </contour>
+ <contour>
+ <point x="201" y="116" type="curve" smooth="yes"/>
+ <point x="201" y="35"/>
+ <point x="262" y="-25"/>
+ <point x="348" y="-25" type="curve" smooth="yes"/>
+ <point x="466" y="-25"/>
+ <point x="561" y="71"/>
+ <point x="561" y="181" type="curve" smooth="yes"/>
+ <point x="561" y="261"/>
+ <point x="502" y="322"/>
+ <point x="415" y="322" type="curve" smooth="yes"/>
+ <point x="298" y="322"/>
+ <point x="201" y="226"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetpsnames.ufo/glyphs/F_ullS_top.glif b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/F_ullS_top.glif
new file mode 100644
index 0000000..cfedcd4
--- /dev/null
+++ b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/F_ullS_top.glif
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="FullStop" format="2">
+ <advance width="690"/>
+ <unicode hex="002E"/>
+ <outline>
+ <contour>
+ <point x="171" y="116" type="curve" smooth="yes"/>
+ <point x="171" y="35"/>
+ <point x="232" y="-25"/>
+ <point x="318" y="-25" type="curve" smooth="yes"/>
+ <point x="436" y="-25"/>
+ <point x="531" y="71"/>
+ <point x="531" y="181" type="curve" smooth="yes"/>
+ <point x="531" y="261"/>
+ <point x="472" y="322"/>
+ <point x="385" y="322" type="curve" smooth="yes"/>
+ <point x="268" y="322"/>
+ <point x="171" y="226"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetpsnames.ufo/glyphs/G_T_S_gn.glif b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/G_T_S_gn.glif
new file mode 100644
index 0000000..6dab866
--- /dev/null
+++ b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/G_T_S_gn.glif
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="GTSgn" format="2">
+ <advance width="1180"/>
+ <unicode hex="003E"/>
+ <outline>
+ <contour>
+ <point x="130" y="243" type="line"/>
+ <point x="1186" y="629" type="line"/>
+ <point x="1233" y="817" type="line"/>
+ <point x="369" y="1203" type="line"/>
+ <point x="313" y="975" type="line"/>
+ <point x="930" y="733" type="line"/>
+ <point x="187" y="470" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetpsnames.ufo/glyphs/G_raveA_ccent.glif b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/G_raveA_ccent.glif
new file mode 100644
index 0000000..f745b6a
--- /dev/null
+++ b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/G_raveA_ccent.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="GraveAccent" format="2">
+ <advance width="620"/>
+ <unicode hex="0060"/>
+ <anchor x="848" y="1635" name="U"/>
+ <outline>
+ <contour>
+ <point x="265" y="1584" type="line"/>
+ <point x="587" y="1188" type="line"/>
+ <point x="817" y="1188" type="line"/>
+ <point x="595" y="1584" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetpsnames.ufo/glyphs/H_yphen.glif b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/H_yphen.glif
new file mode 100644
index 0000000..810f855
--- /dev/null
+++ b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/H_yphen.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Hyphen" format="2">
+ <advance width="860"/>
+ <unicode hex="2010"/>
+ <anchor x="655" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="139" y="520" type="line"/>
+ <point x="879" y="520" type="line"/>
+ <point x="931" y="728" type="line"/>
+ <point x="191" y="728" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetpsnames.ufo/glyphs/H_yphenM_inus.glif b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/H_yphenM_inus.glif
new file mode 100644
index 0000000..d8ce949
--- /dev/null
+++ b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/H_yphenM_inus.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="HyphenMinus" format="2">
+ <advance width="875"/>
+ <unicode hex="002D"/>
+ <anchor x="665" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="149" y="520" type="line"/>
+ <point x="884" y="520" type="line"/>
+ <point x="936" y="728" type="line"/>
+ <point x="201" y="728" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetpsnames.ufo/glyphs/H_yphen_S_oft.glif b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/H_yphen_S_oft.glif
new file mode 100644
index 0000000..2f651fa
--- /dev/null
+++ b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/H_yphen_S_oft.glif
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Hyphen_Soft" format="2">
+ <advance width="875"/>
+ <unicode hex="00AD"/>
+ <anchor x="665" y="1100" name="U"/>
+ <outline>
+ <component base="HyphenMinus"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_T_S_gn.glif b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_T_S_gn.glif
new file mode 100644
index 0000000..b2883d3
--- /dev/null
+++ b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_T_S_gn.glif
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LTSgn" format="2">
+ <advance width="1180"/>
+ <unicode hex="003C"/>
+ <outline>
+ <contour>
+ <point x="1127" y="470" type="line"/>
+ <point x="510" y="713" type="line"/>
+ <point x="1253" y="975" type="line"/>
+ <point x="1309" y="1203" type="line"/>
+ <point x="253" y="817" type="line"/>
+ <point x="206" y="629" type="line"/>
+ <point x="1070" y="243" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_ftC_urlyB_rac.glif b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_ftC_urlyB_rac.glif
new file mode 100644
index 0000000..c92f889
--- /dev/null
+++ b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_ftC_urlyB_rac.glif
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LftCurlyBrac" format="2">
+ <advance width="1020"/>
+ <unicode hex="007B"/>
+ <outline>
+ <contour>
+ <point x="790" y="-177" type="line"/>
+ <point x="717" y="-149"/>
+ <point x="597" y="-129"/>
+ <point x="597" y="-79" type="curve" smooth="yes"/>
+ <point x="597" y="16"/>
+ <point x="695" y="378"/>
+ <point x="695" y="435" type="curve" smooth="yes"/>
+ <point x="695" y="476"/>
+ <point x="574" y="568"/>
+ <point x="574" y="605" type="curve" smooth="yes"/>
+ <point x="574" y="644"/>
+ <point x="742" y="733"/>
+ <point x="776" y="777" type="curve" smooth="yes"/>
+ <point x="803" y="812"/>
+ <point x="908" y="1276"/>
+ <point x="953" y="1317" type="curve" smooth="yes"/>
+ <point x="975" y="1337"/>
+ <point x="1090" y="1376"/>
+ <point x="1157" y="1395" type="curve"/>
+ <point x="1165" y="1624" type="line"/>
+ <point x="1031" y="1597"/>
+ <point x="827" y="1546"/>
+ <point x="768" y="1500" type="curve" smooth="yes"/>
+ <point x="677" y="1428"/>
+ <point x="542" y="843"/>
+ <point x="512" y="812" type="curve" smooth="yes"/>
+ <point x="472" y="770"/>
+ <point x="260" y="659"/>
+ <point x="260" y="601" type="curve" smooth="yes"/>
+ <point x="260" y="540"/>
+ <point x="412" y="434"/>
+ <point x="412" y="399" type="curve" smooth="yes"/>
+ <point x="412" y="337"/>
+ <point x="311" y="-52"/>
+ <point x="311" y="-216" type="curve" smooth="yes"/>
+ <point x="311" y="-248"/>
+ <point x="315" y="-271"/>
+ <point x="324" y="-282" type="curve" smooth="yes"/>
+ <point x="362" y="-330"/>
+ <point x="554" y="-379"/>
+ <point x="683" y="-406" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_ftP_aren.glif b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_ftP_aren.glif
new file mode 100644
index 0000000..42e4531
--- /dev/null
+++ b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_ftP_aren.glif
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LftParen" format="2">
+ <advance width="840"/>
+ <unicode hex="0028"/>
+ <outline>
+ <contour>
+ <point x="899" y="1624" type="line"/>
+ <point x="586" y="1430"/>
+ <point x="317" y="1081"/>
+ <point x="209" y="649" type="curve" smooth="yes"/>
+ <point x="177" y="521"/>
+ <point x="161" y="397"/>
+ <point x="161" y="277" type="curve" smooth="yes"/>
+ <point x="161" y="20"/>
+ <point x="234" y="-214"/>
+ <point x="373" y="-406" type="curve"/>
+ <point x="565" y="-198" type="line"/>
+ <point x="479" y="-42"/>
+ <point x="436" y="130"/>
+ <point x="436" y="315" type="curve" smooth="yes"/>
+ <point x="436" y="422"/>
+ <point x="450" y="534"/>
+ <point x="479" y="649" type="curve" smooth="yes"/>
+ <point x="559" y="972"/>
+ <point x="715" y="1216"/>
+ <point x="966" y="1411" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_ftS_qrB_rac.glif b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_ftS_qrB_rac.glif
new file mode 100644
index 0000000..db76a2d
--- /dev/null
+++ b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_ftS_qrB_rac.glif
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LftSqrBrac" format="2">
+ <advance width="830"/>
+ <unicode hex="005B"/>
+ <outline>
+ <contour>
+ <point x="553" y="-406" type="line"/>
+ <point x="605" y="-198" type="line"/>
+ <point x="365" y="-198" type="line"/>
+ <point x="753" y="1376" type="line"/>
+ <point x="993" y="1376" type="line"/>
+ <point x="1044" y="1584" type="line"/>
+ <point x="524" y="1584" type="line"/>
+ <point x="33" y="-406" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_owL_ine.glif b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_owL_ine.glif
new file mode 100644
index 0000000..de8a991
--- /dev/null
+++ b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_owL_ine.glif
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LowLine" format="2">
+ <advance width="1254"/>
+ <unicode hex="005F"/>
+ <outline>
+ <contour>
+ <point x="-146" y="-347" type="line"/>
+ <point x="1127" y="-347" type="line"/>
+ <point x="1179" y="-139" type="line"/>
+ <point x="-94" y="-139" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnC_apA_.glif b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnC_apA_.glif
new file mode 100644
index 0000000..592502c
--- /dev/null
+++ b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnC_apA_.glif
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapA" format="2">
+ <advance width="1465"/>
+ <unicode hex="0041"/>
+ <anchor x="1215" y="0" name="H"/>
+ <anchor x="647" y="-100" name="L"/>
+ <anchor x="1435" y="0" name="O"/>
+ <anchor x="1054" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1055" y="0" type="line"/>
+ <point x="1338" y="0" type="line"/>
+ <point x="1322" y="79"/>
+ <point x="1312" y="166"/>
+ <point x="1295" y="351" type="curve" smooth="yes"/>
+ <point x="1198" y="1445" type="line"/>
+ <point x="842" y="1445" type="line"/>
+ <point x="199" y="351" type="line" smooth="yes"/>
+ <point x="89" y="164"/>
+ <point x="37" y="80"/>
+ <point x="-18" y="0" type="curve"/>
+ <point x="290" y="0" type="line"/>
+ <point x="487" y="351" type="line"/>
+ <point x="1031" y="351" type="line"/>
+ </contour>
+ <contour>
+ <point x="973" y="1216" type="line"/>
+ <point x="1016" y="564" type="line"/>
+ <point x="606" y="564" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnC_apA_D_iaer.glif b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnC_apA_D_iaer.glif
new file mode 100644
index 0000000..17600b4
--- /dev/null
+++ b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnC_apA_D_iaer.glif
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapADiaer" format="2">
+ <advance width="1465"/>
+ <unicode hex="00C4"/>
+ <anchor x="1215" y="0" name="H"/>
+ <anchor x="647" y="-100" name="L"/>
+ <anchor x="1435" y="0" name="O"/>
+ <anchor x="1176" y="2015" name="U"/>
+ <outline>
+ <component base="LtnCapA"/>
+ <component base="CombDiaer" xOffset="1419" yOffset="430"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnC_apB_.glif b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnC_apB_.glif
new file mode 100644
index 0000000..2b14150
--- /dev/null
+++ b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnC_apB_.glif
@@ -0,0 +1,62 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapB" format="2">
+ <advance width="1367"/>
+ <unicode hex="0042"/>
+ <anchor x="585" y="-100" name="L"/>
+ <anchor x="992" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="698" y="1236" type="line"/>
+ <point x="735" y="1237"/>
+ <point x="791" y="1240"/>
+ <point x="860" y="1240" type="curve" smooth="yes"/>
+ <point x="1021" y="1240"/>
+ <point x="1101" y="1179"/>
+ <point x="1101" y="1087" type="curve" smooth="yes"/>
+ <point x="1101" y="932"/>
+ <point x="962" y="866"/>
+ <point x="770" y="866" type="curve" smooth="yes"/>
+ <point x="605" y="866" type="line"/>
+ </contour>
+ <contour>
+ <point x="217" y="450" type="line"/>
+ <point x="168" y="254"/>
+ <point x="124" y="79"/>
+ <point x="90" y="0" type="curve"/>
+ <point x="161" y="-3"/>
+ <point x="368" y="-10"/>
+ <point x="598" y="-10" type="curve" smooth="yes"/>
+ <point x="1055" y="-10"/>
+ <point x="1298" y="206"/>
+ <point x="1298" y="508" type="curve" smooth="yes"/>
+ <point x="1298" y="673"/>
+ <point x="1188" y="759"/>
+ <point x="1072" y="792" type="curve"/>
+ <point x="1254" y="848"/>
+ <point x="1388" y="956"/>
+ <point x="1388" y="1155" type="curve" smooth="yes"/>
+ <point x="1388" y="1359"/>
+ <point x="1181" y="1455"/>
+ <point x="897" y="1455" type="curve" smooth="yes"/>
+ <point x="704" y="1455"/>
+ <point x="549" y="1451"/>
+ <point x="450" y="1445" type="curve"/>
+ <point x="445" y="1366"/>
+ <point x="399" y="1182"/>
+ <point x="351" y="990" type="curve" smooth="yes"/>
+ </contour>
+ <contour>
+ <point x="552" y="651" type="line"/>
+ <point x="745" y="651" type="line" smooth="yes"/>
+ <point x="927" y="651"/>
+ <point x="1019" y="577"/>
+ <point x="1019" y="468" type="curve" smooth="yes"/>
+ <point x="1019" y="295"/>
+ <point x="879" y="213"/>
+ <point x="675" y="213" type="curve" smooth="yes"/>
+ <point x="575" y="213"/>
+ <point x="476" y="216"/>
+ <point x="444" y="218" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnC_apC_.glif b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnC_apC_.glif
new file mode 100644
index 0000000..569eba9
--- /dev/null
+++ b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnC_apC_.glif
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapC" format="2">
+ <advance width="1357"/>
+ <unicode hex="0043"/>
+ <anchor x="685" y="0" name="H"/>
+ <anchor x="660" y="-100" name="L"/>
+ <anchor x="1067" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1286" y="391" type="line"/>
+ <point x="1149" y="280"/>
+ <point x="966" y="218"/>
+ <point x="816" y="218" type="curve" smooth="yes"/>
+ <point x="594" y="218"/>
+ <point x="472" y="349"/>
+ <point x="472" y="588" type="curve" smooth="yes"/>
+ <point x="472" y="922"/>
+ <point x="690" y="1230"/>
+ <point x="1039" y="1230" type="curve" smooth="yes"/>
+ <point x="1170" y="1230"/>
+ <point x="1298" y="1188"/>
+ <point x="1385" y="1093" type="curve"/>
+ <point x="1515" y="1331" type="line"/>
+ <point x="1408" y="1418"/>
+ <point x="1247" y="1470"/>
+ <point x="1073" y="1470" type="curve" smooth="yes"/>
+ <point x="545" y="1470"/>
+ <point x="191" y="1032"/>
+ <point x="191" y="544" type="curve" smooth="yes"/>
+ <point x="191" y="210"/>
+ <point x="404" y="-25"/>
+ <point x="750" y="-25" type="curve" smooth="yes"/>
+ <point x="921" y="-25"/>
+ <point x="1124" y="27"/>
+ <point x="1271" y="124" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnC_apD_.glif b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnC_apD_.glif
new file mode 100644
index 0000000..093d346
--- /dev/null
+++ b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnC_apD_.glif
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapD" format="2">
+ <advance width="1465"/>
+ <unicode hex="0044"/>
+ <anchor x="690" y="-100" name="L"/>
+ <anchor x="1122" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="217" y="450" type="line" smooth="yes"/>
+ <point x="167" y="251"/>
+ <point x="124" y="79"/>
+ <point x="90" y="0" type="curve"/>
+ <point x="90" y="0"/>
+ <point x="431" y="-10"/>
+ <point x="566" y="-10" type="curve" smooth="yes"/>
+ <point x="1036" y="-10"/>
+ <point x="1361" y="195"/>
+ <point x="1471" y="648" type="curve" smooth="yes"/>
+ <point x="1494" y="742"/>
+ <point x="1505" y="827"/>
+ <point x="1505" y="902" type="curve" smooth="yes"/>
+ <point x="1505" y="1325"/>
+ <point x="1172" y="1455"/>
+ <point x="912" y="1455" type="curve" smooth="yes"/>
+ <point x="769" y="1455"/>
+ <point x="540" y="1451"/>
+ <point x="450" y="1445" type="curve"/>
+ <point x="445" y="1371"/>
+ <point x="404" y="1205"/>
+ <point x="359" y="1024" type="curve" smooth="yes"/>
+ </contour>
+ <contour>
+ <point x="696" y="1229" type="line"/>
+ <point x="738" y="1231"/>
+ <point x="809" y="1234"/>
+ <point x="864" y="1234" type="curve" smooth="yes"/>
+ <point x="1077" y="1234"/>
+ <point x="1212" y="1104"/>
+ <point x="1212" y="871" type="curve" smooth="yes"/>
+ <point x="1212" y="805"/>
+ <point x="1201" y="731"/>
+ <point x="1181" y="647" type="curve" smooth="yes"/>
+ <point x="1108" y="346"/>
+ <point x="930" y="219"/>
+ <point x="647" y="219" type="curve" smooth="yes"/>
+ <point x="568" y="219"/>
+ <point x="485" y="225"/>
+ <point x="447" y="229" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnC_apE_.glif b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnC_apE_.glif
new file mode 100644
index 0000000..8e7a0a1
--- /dev/null
+++ b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnC_apE_.glif
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapE" format="2">
+ <advance width="1192"/>
+ <unicode hex="0045"/>
+ <anchor x="550" y="0" name="H"/>
+ <anchor x="525" y="-100" name="L"/>
+ <anchor x="944" y="0" name="O"/>
+ <anchor x="1487" y="1200" name="R"/>
+ <anchor x="932" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="605" y="866" type="line"/>
+ <point x="693" y="1217" type="line"/>
+ <point x="1315" y="1217" type="line"/>
+ <point x="1372" y="1445" type="line"/>
+ <point x="450" y="1445" type="line"/>
+ <point x="444" y="1366"/>
+ <point x="406" y="1210"/>
+ <point x="358" y="1015" type="curve" smooth="yes"/>
+ <point x="212" y="431" type="line" smooth="yes"/>
+ <point x="163" y="236"/>
+ <point x="123" y="79"/>
+ <point x="90" y="0" type="curve"/>
+ <point x="1042" y="0" type="line"/>
+ <point x="1102" y="243" type="line"/>
+ <point x="1021" y="229"/>
+ <point x="895" y="228"/>
+ <point x="704" y="228" type="curve" smooth="yes"/>
+ <point x="446" y="228" type="line"/>
+ <point x="550" y="644" type="line"/>
+ <point x="1097" y="644" type="line"/>
+ <point x="1152" y="866" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnC_apF_.glif b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnC_apF_.glif
new file mode 100644
index 0000000..df3370c
--- /dev/null
+++ b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnC_apF_.glif
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapF" format="2">
+ <advance width="1180"/>
+ <unicode hex="0046"/>
+ <anchor x="545" y="-100" name="L"/>
+ <anchor x="952" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="602" y="851" type="line"/>
+ <point x="693" y="1217" type="line"/>
+ <point x="1333" y="1217" type="line"/>
+ <point x="1390" y="1445" type="line"/>
+ <point x="450" y="1445" type="line"/>
+ <point x="445" y="1366"/>
+ <point x="405" y="1205"/>
+ <point x="356" y="1010" type="curve" smooth="yes"/>
+ <point x="212" y="431" type="line" smooth="yes"/>
+ <point x="163" y="236"/>
+ <point x="123" y="79"/>
+ <point x="90" y="0" type="curve"/>
+ <point x="405" y="0" type="line"/>
+ <point x="407" y="72"/>
+ <point x="444" y="220"/>
+ <point x="490" y="404" type="curve" smooth="yes"/>
+ <point x="546" y="629" type="line"/>
+ <point x="1101" y="629" type="line"/>
+ <point x="1157" y="851" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnC_apG_.glif b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnC_apG_.glif
new file mode 100644
index 0000000..7d36953
--- /dev/null
+++ b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnC_apG_.glif
@@ -0,0 +1,48 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapG" format="2">
+ <advance width="1452"/>
+ <unicode hex="0047"/>
+ <anchor x="747" y="0" name="H"/>
+ <anchor x="722" y="-100" name="L"/>
+ <anchor x="1129" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1480" y="767" type="line"/>
+ <point x="910" y="767" type="line"/>
+ <point x="855" y="544" type="line"/>
+ <point x="1170" y="544" type="line"/>
+ <point x="1104" y="271" type="line"/>
+ <point x="1015" y="231"/>
+ <point x="916" y="218"/>
+ <point x="805" y="218" type="curve" smooth="yes"/>
+ <point x="593" y="218"/>
+ <point x="475" y="352"/>
+ <point x="475" y="567" type="curve" smooth="yes"/>
+ <point x="475" y="633"/>
+ <point x="484" y="708"/>
+ <point x="505" y="789" type="curve" smooth="yes"/>
+ <point x="581" y="1079"/>
+ <point x="802" y="1230"/>
+ <point x="1067" y="1230" type="curve" smooth="yes"/>
+ <point x="1220" y="1230"/>
+ <point x="1334" y="1193"/>
+ <point x="1449" y="1096" type="curve"/>
+ <point x="1594" y="1332" type="line"/>
+ <point x="1447" y="1437"/>
+ <point x="1275" y="1470"/>
+ <point x="1094" y="1470" type="curve" smooth="yes"/>
+ <point x="709" y="1470"/>
+ <point x="345" y="1257"/>
+ <point x="227" y="783" type="curve" smooth="yes"/>
+ <point x="205" y="694"/>
+ <point x="194" y="611"/>
+ <point x="194" y="534" type="curve" smooth="yes"/>
+ <point x="194" y="176"/>
+ <point x="419" y="-25"/>
+ <point x="768" y="-25" type="curve" smooth="yes"/>
+ <point x="940" y="-25"/>
+ <point x="1105" y="10"/>
+ <point x="1325" y="133" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnC_apH_.glif b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnC_apH_.glif
new file mode 100644
index 0000000..a49f5fb
--- /dev/null
+++ b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnC_apH_.glif
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapH" format="2">
+ <advance width="1495"/>
+ <unicode hex="0048"/>
+ <anchor x="245" y="0" name="H"/>
+ <anchor x="660" y="-100" name="L"/>
+ <anchor x="1067" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1340" y="1445" type="line"/>
+ <point x="1192" y="851" type="line"/>
+ <point x="602" y="851" type="line"/>
+ <point x="750" y="1445" type="line"/>
+ <point x="450" y="1445" type="line"/>
+ <point x="445" y="1366"/>
+ <point x="408" y="1215"/>
+ <point x="359" y="1020" type="curve" smooth="yes"/>
+ <point x="211" y="426" type="line" smooth="yes"/>
+ <point x="162" y="231"/>
+ <point x="124" y="79"/>
+ <point x="90" y="0" type="curve"/>
+ <point x="90" y="0"/>
+ <point x="390" y="0"/>
+ <point x="390" y="0" type="curve"/>
+ <point x="546" y="629" type="line"/>
+ <point x="1136" y="629" type="line"/>
+ <point x="980" y="0" type="line"/>
+ <point x="980" y="0"/>
+ <point x="1280" y="0"/>
+ <point x="1280" y="0" type="curve"/>
+ <point x="1284" y="79"/>
+ <point x="1322" y="231"/>
+ <point x="1371" y="426" type="curve" smooth="yes"/>
+ <point x="1519" y="1020" type="line" smooth="yes"/>
+ <point x="1567" y="1215"/>
+ <point x="1605" y="1366"/>
+ <point x="1640" y="1445" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnC_apI_.glif b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnC_apI_.glif
new file mode 100644
index 0000000..fc059de
--- /dev/null
+++ b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnC_apI_.glif
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapI" format="2">
+ <advance width="1025"/>
+ <unicode hex="0049"/>
+ <anchor x="460" y="0" name="H"/>
+ <anchor x="431" y="-100" name="L"/>
+ <anchor x="652" y="0" name="O"/>
+ <anchor x="1254" y="1200" name="R"/>
+ <anchor x="842" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="430" y="1445" type="line"/>
+ <point x="379" y="1242" type="line"/>
+ <point x="619" y="1242" type="line"/>
+ <point x="360" y="203" type="line"/>
+ <point x="120" y="203" type="line"/>
+ <point x="70" y="0" type="line"/>
+ <point x="835" y="0" type="line"/>
+ <point x="885" y="203" type="line"/>
+ <point x="645" y="203" type="line"/>
+ <point x="904" y="1242" type="line"/>
+ <point x="1144" y="1242" type="line"/>
+ <point x="1195" y="1445" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnC_apJ_.glif b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnC_apJ_.glif
new file mode 100644
index 0000000..6a3a604
--- /dev/null
+++ b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnC_apJ_.glif
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapJ" format="2">
+ <advance width="1010"/>
+ <unicode hex="004A"/>
+ <anchor x="330" y="-100" name="L"/>
+ <anchor x="1027" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="855" y="1445" type="line"/>
+ <point x="842" y="1340"/>
+ <point x="799" y="1163"/>
+ <point x="751" y="970" type="curve" smooth="yes"/>
+ <point x="647" y="552" type="line" smooth="yes"/>
+ <point x="602" y="370"/>
+ <point x="516" y="225"/>
+ <point x="341" y="225" type="curve" smooth="yes"/>
+ <point x="260" y="225"/>
+ <point x="159" y="267"/>
+ <point x="104" y="344" type="curve"/>
+ <point x="-8" y="89" type="line"/>
+ <point x="51" y="19"/>
+ <point x="191" y="-25"/>
+ <point x="326" y="-25" type="curve" smooth="yes"/>
+ <point x="611" y="-25"/>
+ <point x="826" y="128"/>
+ <point x="927" y="530" type="curve" smooth="yes"/>
+ <point x="947" y="612"/>
+ <point x="1155" y="1445"/>
+ <point x="1155" y="1445" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnC_apK_.glif b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnC_apK_.glif
new file mode 100644
index 0000000..44d4d68
--- /dev/null
+++ b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnC_apK_.glif
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapK" format="2">
+ <advance width="1410"/>
+ <unicode hex="004B"/>
+ <anchor x="260" y="0" name="H"/>
+ <anchor x="655" y="-100" name="L"/>
+ <anchor x="1047" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="750" y="1445" type="line"/>
+ <point x="450" y="1445" type="line"/>
+ <point x="444" y="1366"/>
+ <point x="406" y="1210"/>
+ <point x="358" y="1015" type="curve" smooth="yes"/>
+ <point x="212" y="431" type="line" smooth="yes"/>
+ <point x="163" y="236"/>
+ <point x="123" y="79"/>
+ <point x="90" y="0" type="curve"/>
+ <point x="390" y="0" type="line"/>
+ </contour>
+ <contour>
+ <point x="1244" y="1445" type="line"/>
+ <point x="461" y="697" type="line"/>
+ <point x="634" y="738" type="line"/>
+ <point x="758" y="724" type="line"/>
+ <point x="1580" y="1445" type="line"/>
+ </contour>
+ <contour>
+ <point x="509" y="724" type="line"/>
+ <point x="950" y="0" type="line"/>
+ <point x="1300" y="0" type="line"/>
+ <point x="738" y="801" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnC_apL_.glif b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnC_apL_.glif
new file mode 100644
index 0000000..f8d6959
--- /dev/null
+++ b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnC_apL_.glif
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapL" format="2">
+ <advance width="1110"/>
+ <unicode hex="004C"/>
+ <anchor x="560" y="0" name="H"/>
+ <anchor x="535" y="-100" name="L"/>
+ <anchor x="890" y="1200" name="R"/>
+ <anchor x="942" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="446" y="228" type="line"/>
+ <point x="750" y="1445" type="line"/>
+ <point x="450" y="1445" type="line"/>
+ <point x="444" y="1366"/>
+ <point x="406" y="1210"/>
+ <point x="358" y="1015" type="curve" smooth="yes"/>
+ <point x="212" y="431" type="line" smooth="yes"/>
+ <point x="163" y="236"/>
+ <point x="123" y="79"/>
+ <point x="90" y="0" type="curve"/>
+ <point x="1025" y="0" type="line"/>
+ <point x="1085" y="243" type="line"/>
+ <point x="1005" y="229"/>
+ <point x="851" y="228"/>
+ <point x="662" y="228" type="curve" smooth="yes"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnC_apM_.glif b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnC_apM_.glif
new file mode 100644
index 0000000..67d1463
--- /dev/null
+++ b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnC_apM_.glif
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapM" format="2">
+ <advance width="1835"/>
+ <unicode hex="004D"/>
+ <anchor x="830" y="-100" name="L"/>
+ <anchor x="1237" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="919" y="272" type="line"/>
+ <point x="865" y="1445" type="line"/>
+ <point x="615" y="1445" type="line"/>
+ <point x="664" y="1158" type="line"/>
+ <point x="710" y="0" type="line"/>
+ <point x="1005" y="0" type="line"/>
+ <point x="1625" y="1158" type="line"/>
+ <point x="1817" y="1445" type="line"/>
+ <point x="1550" y="1445" type="line"/>
+ </contour>
+ <contour>
+ <point x="520" y="1445" type="line"/>
+ <point x="520" y="1445"/>
+ <point x="164" y="196"/>
+ <point x="90" y="0" type="curve"/>
+ <point x="360" y="0" type="line"/>
+ <point x="686" y="1193" type="line"/>
+ <point x="785" y="1445" type="line"/>
+ </contour>
+ <contour>
+ <point x="1630" y="0" type="line"/>
+ <point x="1649" y="196"/>
+ <point x="1910" y="1445"/>
+ <point x="1910" y="1445" type="curve"/>
+ <point x="1640" y="1445" type="line"/>
+ <point x="1622" y="1193" type="line"/>
+ <point x="1360" y="0" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnC_apN_.glif b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnC_apN_.glif
new file mode 100644
index 0000000..838490a
--- /dev/null
+++ b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnC_apN_.glif
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapN" format="2">
+ <advance width="1525"/>
+ <unicode hex="004E"/>
+ <anchor x="1180" y="0" name="H"/>
+ <anchor x="680" y="-100" name="L"/>
+ <anchor x="1087" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="506" y="1297" type="line"/>
+ <point x="1035" y="0" type="line"/>
+ <point x="1253" y="148" type="line"/>
+ <point x="725" y="1445" type="line"/>
+ </contour>
+ <contour>
+ <point x="1035" y="0" type="line"/>
+ <point x="1305" y="0" type="line"/>
+ <point x="1558" y="1015" type="line" smooth="yes"/>
+ <point x="1606" y="1210"/>
+ <point x="1646" y="1366"/>
+ <point x="1680" y="1445" type="curve"/>
+ <point x="1395" y="1445" type="line"/>
+ </contour>
+ <contour>
+ <point x="725" y="1445" type="line"/>
+ <point x="440" y="1445" type="line"/>
+ <point x="434" y="1366"/>
+ <point x="396" y="1210"/>
+ <point x="348" y="1015" type="curve" smooth="yes"/>
+ <point x="202" y="431" type="line" smooth="yes"/>
+ <point x="153" y="236"/>
+ <point x="113" y="79"/>
+ <point x="80" y="0" type="curve"/>
+ <point x="365" y="0" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnC_apO_.glif b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnC_apO_.glif
new file mode 100644
index 0000000..4410e20
--- /dev/null
+++ b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnC_apO_.glif
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapO" format="2">
+ <advance width="1480"/>
+ <unicode hex="004F"/>
+ <anchor x="680" y="0" name="H"/>
+ <anchor x="655" y="-100" name="L"/>
+ <anchor x="916" y="0" name="O"/>
+ <anchor x="1720" y="1200" name="R"/>
+ <anchor x="1062" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="754" y="218" type="curve" smooth="yes"/>
+ <point x="580" y="218"/>
+ <point x="471" y="345"/>
+ <point x="471" y="568" type="curve" smooth="yes"/>
+ <point x="471" y="922"/>
+ <point x="664" y="1228"/>
+ <point x="966" y="1228" type="curve" smooth="yes"/>
+ <point x="1134" y="1228"/>
+ <point x="1237" y="1106"/>
+ <point x="1237" y="891" type="curve" smooth="yes"/>
+ <point x="1237" y="540"/>
+ <point x="1060" y="218"/>
+ </contour>
+ <contour>
+ <point x="1519" y="911" type="curve" smooth="yes"/>
+ <point x="1519" y="1249"/>
+ <point x="1350" y="1470"/>
+ <point x="1026" y="1470" type="curve" smooth="yes"/>
+ <point x="510" y="1470"/>
+ <point x="191" y="1010"/>
+ <point x="191" y="539" type="curve" smooth="yes"/>
+ <point x="191" y="199"/>
+ <point x="401" y="-25"/>
+ <point x="693" y="-25" type="curve" smooth="yes"/>
+ <point x="1121" y="-25"/>
+ <point x="1519" y="337"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnC_apP_.glif b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnC_apP_.glif
new file mode 100644
index 0000000..b0d40c0
--- /dev/null
+++ b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnC_apP_.glif
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapP" format="2">
+ <advance width="1255"/>
+ <unicode hex="0050"/>
+ <anchor x="600" y="-100" name="L"/>
+ <anchor x="970" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="519" y="518" type="line"/>
+ <point x="582" y="511"/>
+ <point x="661" y="508"/>
+ <point x="734" y="508" type="curve" smooth="yes"/>
+ <point x="1118" y="508"/>
+ <point x="1393" y="718"/>
+ <point x="1393" y="1076" type="curve" smooth="yes"/>
+ <point x="1393" y="1306"/>
+ <point x="1215" y="1455"/>
+ <point x="940" y="1455" type="curve" smooth="yes"/>
+ <point x="727" y="1455"/>
+ <point x="450" y="1445"/>
+ <point x="450" y="1445" type="curve"/>
+ <point x="445" y="1366"/>
+ <point x="400" y="1184"/>
+ <point x="351" y="990" type="curve" smooth="yes"/>
+ <point x="212" y="431" type="line" smooth="yes"/>
+ <point x="164" y="237"/>
+ <point x="124" y="79"/>
+ <point x="90" y="0" type="curve"/>
+ <point x="405" y="0" type="line"/>
+ <point x="410" y="77"/>
+ <point x="448" y="235"/>
+ <point x="497" y="431" type="curve" smooth="yes"/>
+ </contour>
+ <contour>
+ <point x="696" y="1228" type="line"/>
+ <point x="752" y="1231"/>
+ <point x="781" y="1233"/>
+ <point x="849" y="1233" type="curve" smooth="yes"/>
+ <point x="1020" y="1233"/>
+ <point x="1103" y="1135"/>
+ <point x="1103" y="1020" type="curve" smooth="yes"/>
+ <point x="1103" y="827"/>
+ <point x="965" y="723"/>
+ <point x="758" y="723" type="curve" smooth="yes"/>
+ <point x="696" y="723"/>
+ <point x="614" y="726"/>
+ <point x="572" y="733" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnC_apQ_.glif b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnC_apQ_.glif
new file mode 100644
index 0000000..7013e5f
--- /dev/null
+++ b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnC_apQ_.glif
@@ -0,0 +1,52 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapQ" format="2">
+ <advance width="1488"/>
+ <unicode hex="0051"/>
+ <anchor x="619" y="-270" name="L"/>
+ <anchor x="1069" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1527" y="922" type="curve" smooth="yes"/>
+ <point x="1527" y="1259"/>
+ <point x="1324" y="1470"/>
+ <point x="1029" y="1470" type="curve" smooth="yes"/>
+ <point x="663" y="1470"/>
+ <point x="339" y="1229"/>
+ <point x="221" y="755" type="curve" smooth="yes"/>
+ <point x="201" y="673"/>
+ <point x="191" y="597"/>
+ <point x="191" y="526" type="curve" smooth="yes"/>
+ <point x="191" y="185"/>
+ <point x="410" y="-25"/>
+ <point x="696" y="-25" type="curve" smooth="yes"/>
+ <point x="743" y="-25"/>
+ <point x="787" y="-23"/>
+ <point x="838" y="-15" type="curve"/>
+ <point x="907" y="-15"/>
+ <point x="1162" y="-221"/>
+ <point x="1246" y="-221" type="curve" smooth="yes"/>
+ <point x="1310" y="-221"/>
+ <point x="1422" y="-74"/>
+ <point x="1468" y="-22" type="curve"/>
+ <point x="1331" y="-6"/>
+ <point x="1227" y="60"/>
+ <point x="1115" y="134" type="curve"/>
+ <point x="1312" y="242"/>
+ <point x="1527" y="566"/>
+ </contour>
+ <contour>
+ <point x="757" y="218" type="curve" smooth="yes"/>
+ <point x="563" y="218"/>
+ <point x="471" y="355"/>
+ <point x="471" y="558" type="curve" smooth="yes"/>
+ <point x="471" y="912"/>
+ <point x="677" y="1228"/>
+ <point x="969" y="1228" type="curve" smooth="yes"/>
+ <point x="1147" y="1228"/>
+ <point x="1246" y="1106"/>
+ <point x="1246" y="891" type="curve" smooth="yes"/>
+ <point x="1246" y="560"/>
+ <point x="1053" y="218"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnC_apR_.glif b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnC_apR_.glif
new file mode 100644
index 0000000..9133fd2
--- /dev/null
+++ b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnC_apR_.glif
@@ -0,0 +1,55 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapR" format="2">
+ <advance width="1360"/>
+ <unicode hex="0052"/>
+ <anchor x="630" y="0" name="H"/>
+ <anchor x="605" y="-100" name="L"/>
+ <anchor x="982" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="534" y="579" type="line"/>
+ <point x="749" y="579" type="line" smooth="yes"/>
+ <point x="1071" y="579"/>
+ <point x="1378" y="761"/>
+ <point x="1378" y="1117" type="curve" smooth="yes"/>
+ <point x="1378" y="1332"/>
+ <point x="1199" y="1455"/>
+ <point x="932" y="1455" type="curve" smooth="yes"/>
+ <point x="698" y="1455"/>
+ <point x="450" y="1445"/>
+ <point x="450" y="1445" type="curve"/>
+ <point x="445" y="1366"/>
+ <point x="400" y="1184"/>
+ <point x="351" y="990" type="curve" smooth="yes"/>
+ <point x="212" y="431" type="line"/>
+ <point x="164" y="236"/>
+ <point x="124" y="79"/>
+ <point x="90" y="0" type="curve"/>
+ <point x="405" y="0" type="line"/>
+ <point x="410" y="77"/>
+ <point x="448" y="236"/>
+ <point x="497" y="431" type="curve"/>
+ </contour>
+ <contour>
+ <point x="696" y="1228" type="line"/>
+ <point x="749" y="1231"/>
+ <point x="764" y="1233"/>
+ <point x="842" y="1233" type="curve" smooth="yes"/>
+ <point x="995" y="1233"/>
+ <point x="1089" y="1167"/>
+ <point x="1089" y="1060" type="curve" smooth="yes"/>
+ <point x="1089" y="899"/>
+ <point x="956" y="792"/>
+ <point x="782" y="792" type="curve" smooth="yes"/>
+ <point x="587" y="792" type="line"/>
+ </contour>
+ <contour>
+ <point x="652" y="629" type="line"/>
+ <point x="915" y="0" type="line"/>
+ <point x="1270" y="0" type="line"/>
+ <point x="1220" y="72"/>
+ <point x="962" y="623"/>
+ <point x="936" y="680" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnC_apS_.glif b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnC_apS_.glif
new file mode 100644
index 0000000..79fe933
--- /dev/null
+++ b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnC_apS_.glif
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapS" format="2">
+ <advance width="1223"/>
+ <unicode hex="0053"/>
+ <anchor x="556" y="0" name="H"/>
+ <anchor x="531" y="-100" name="L"/>
+ <anchor x="938" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1339" y="1361" type="line"/>
+ <point x="1232" y="1430"/>
+ <point x="1086" y="1470"/>
+ <point x="916" y="1470" type="curve" smooth="yes"/>
+ <point x="600" y="1470"/>
+ <point x="332" y="1333"/>
+ <point x="332" y="1053" type="curve" smooth="yes"/>
+ <point x="332" y="889"/>
+ <point x="413" y="800"/>
+ <point x="621" y="658" type="curve" smooth="yes"/>
+ <point x="829" y="516"/>
+ <point x="885" y="448"/>
+ <point x="885" y="374" type="curve" smooth="yes"/>
+ <point x="885" y="276"/>
+ <point x="772" y="218"/>
+ <point x="624" y="218" type="curve" smooth="yes"/>
+ <point x="463" y="218"/>
+ <point x="270" y="340"/>
+ <point x="184" y="461" type="curve"/>
+ <point x="67" y="189" type="line"/>
+ <point x="147" y="91"/>
+ <point x="394" y="-25"/>
+ <point x="573" y="-25" type="curve" smooth="yes"/>
+ <point x="923" y="-25"/>
+ <point x="1182" y="124"/>
+ <point x="1182" y="419" type="curve" smooth="yes"/>
+ <point x="1182" y="584"/>
+ <point x="1077" y="682"/>
+ <point x="881" y="831" type="curve" smooth="yes"/>
+ <point x="728" y="947"/>
+ <point x="628" y="1010"/>
+ <point x="628" y="1082" type="curve" smooth="yes"/>
+ <point x="628" y="1198"/>
+ <point x="790" y="1230"/>
+ <point x="877" y="1230" type="curve" smooth="yes"/>
+ <point x="1018" y="1230"/>
+ <point x="1119" y="1189"/>
+ <point x="1228" y="1099" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnC_apT_.glif b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnC_apT_.glif
new file mode 100644
index 0000000..b7aa4cd
--- /dev/null
+++ b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnC_apT_.glif
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapT" format="2">
+ <advance width="1255"/>
+ <unicode hex="0054"/>
+ <anchor x="572" y="0" name="H"/>
+ <anchor x="547" y="-100" name="L"/>
+ <anchor x="954" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="345" y="1445" type="line"/>
+ <point x="283" y="1198" type="line"/>
+ <point x="359" y="1215"/>
+ <point x="439" y="1218"/>
+ <point x="519" y="1218" type="curve" smooth="yes"/>
+ <point x="731" y="1218" type="line"/>
+ <point x="529" y="409" type="line" smooth="yes"/>
+ <point x="483" y="224"/>
+ <point x="443" y="75"/>
+ <point x="408" y="0" type="curve"/>
+ <point x="733" y="0" type="line"/>
+ <point x="734" y="75"/>
+ <point x="768" y="224"/>
+ <point x="814" y="409" type="curve" smooth="yes"/>
+ <point x="1016" y="1218" type="line"/>
+ <point x="1232" y="1218" type="line" smooth="yes"/>
+ <point x="1313" y="1218"/>
+ <point x="1390" y="1215"/>
+ <point x="1458" y="1198" type="curve"/>
+ <point x="1520" y="1445" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnC_apU_.glif b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnC_apU_.glif
new file mode 100644
index 0000000..a01a283
--- /dev/null
+++ b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnC_apU_.glif
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapU" format="2">
+ <advance width="1470"/>
+ <unicode hex="0055"/>
+ <anchor x="672" y="0" name="H"/>
+ <anchor x="647" y="-100" name="L"/>
+ <anchor x="890" y="0" name="O"/>
+ <anchor x="1720" y="1200" name="R"/>
+ <anchor x="1054" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1315" y="1445" type="line"/>
+ <point x="1093" y="554" type="line" smooth="yes"/>
+ <point x="1040" y="341"/>
+ <point x="952" y="202"/>
+ <point x="735" y="202" type="curve" smooth="yes"/>
+ <point x="572" y="202"/>
+ <point x="515" y="305"/>
+ <point x="515" y="435" type="curve" smooth="yes"/>
+ <point x="515" y="482"/>
+ <point x="523" y="533"/>
+ <point x="535" y="583" type="curve" smooth="yes"/>
+ <point x="750" y="1445" type="line"/>
+ <point x="450" y="1445" type="line"/>
+ <point x="444" y="1366"/>
+ <point x="406" y="1210"/>
+ <point x="358" y="1015" type="curve" smooth="yes"/>
+ <point x="249" y="570" type="line" smooth="yes"/>
+ <point x="235" y="512"/>
+ <point x="228" y="457"/>
+ <point x="228" y="404" type="curve" smooth="yes"/>
+ <point x="228" y="155"/>
+ <point x="385" y="-25"/>
+ <point x="698" y="-25" type="curve" smooth="yes"/>
+ <point x="1063" y="-25"/>
+ <point x="1275" y="148"/>
+ <point x="1356" y="470" type="curve" smooth="yes"/>
+ <point x="1493" y="1015" type="line" smooth="yes"/>
+ <point x="1544" y="1220"/>
+ <point x="1582" y="1366"/>
+ <point x="1615" y="1445" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnC_apV_.glif b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnC_apV_.glif
new file mode 100644
index 0000000..07a71af
--- /dev/null
+++ b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnC_apV_.glif
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapV" format="2">
+ <advance width="1445"/>
+ <unicode hex="0056"/>
+ <anchor x="670" y="0" name="H"/>
+ <anchor x="637" y="-100" name="L"/>
+ <anchor x="870" y="0" name="O"/>
+ <anchor x="1044" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1405" y="1445" type="line"/>
+ <point x="721" y="257" type="line"/>
+ <point x="620" y="1445" type="line"/>
+ <point x="325" y="1445" type="line"/>
+ <point x="339" y="1364"/>
+ <point x="354" y="1275"/>
+ <point x="375" y="1084" type="curve" smooth="yes"/>
+ <point x="495" y="0" type="line"/>
+ <point x="830" y="0" type="line"/>
+ <point x="1490" y="1084" type="line" smooth="yes"/>
+ <point x="1606" y="1276"/>
+ <point x="1664" y="1364"/>
+ <point x="1720" y="1445" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnC_apW_.glif b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnC_apW_.glif
new file mode 100644
index 0000000..f0e3607
--- /dev/null
+++ b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnC_apW_.glif
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapW" format="2">
+ <advance width="2115"/>
+ <unicode hex="0057"/>
+ <anchor x="967" y="-100" name="L"/>
+ <anchor x="1374" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1430" y="0" type="line"/>
+ <point x="1595" y="0" type="line"/>
+ <point x="2165" y="1084" type="line" smooth="yes"/>
+ <point x="2266" y="1277"/>
+ <point x="2318" y="1364"/>
+ <point x="2370" y="1445" type="curve"/>
+ <point x="2050" y="1445" type="line"/>
+ <point x="1432" y="129" type="line"/>
+ </contour>
+ <contour>
+ <point x="1470" y="1445" type="line"/>
+ <point x="1220" y="1445" type="line"/>
+ <point x="1257" y="1292" type="line"/>
+ <point x="1280" y="0" type="line"/>
+ <point x="1450" y="0" type="line"/>
+ <point x="1492" y="129" type="line"/>
+ </contour>
+ <contour>
+ <point x="540" y="0" type="line"/>
+ <point x="705" y="0" type="line"/>
+ <point x="1367" y="1292" type="line"/>
+ <point x="1470" y="1445" type="line"/>
+ <point x="1210" y="1445" type="line"/>
+ <point x="542" y="129" type="line"/>
+ </contour>
+ <contour>
+ <point x="630" y="1445" type="line"/>
+ <point x="330" y="1445" type="line"/>
+ <point x="341" y="1367"/>
+ <point x="349" y="1273"/>
+ <point x="355" y="1084" type="curve" smooth="yes"/>
+ <point x="390" y="0" type="line"/>
+ <point x="560" y="0" type="line"/>
+ <point x="602" y="129" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnC_apX_.glif b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnC_apX_.glif
new file mode 100644
index 0000000..633303c
--- /dev/null
+++ b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnC_apX_.glif
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapX" format="2">
+ <advance width="1345"/>
+ <unicode hex="0058"/>
+ <anchor x="585" y="-100" name="L"/>
+ <anchor x="992" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="930" y="0" type="line"/>
+ <point x="1240" y="0" type="line"/>
+ <point x="1199" y="81"/>
+ <point x="1172" y="125"/>
+ <point x="1096" y="333" type="curve" smooth="yes"/>
+ <point x="690" y="1445" type="line"/>
+ <point x="375" y="1445" type="line"/>
+ <point x="418" y="1362"/>
+ <point x="454" y="1304"/>
+ <point x="529" y="1099" type="curve" smooth="yes"/>
+ </contour>
+ <contour>
+ <point x="768" y="938" type="line"/>
+ <point x="269" y="337" type="line" smooth="yes"/>
+ <point x="94" y="126"/>
+ <point x="44" y="85"/>
+ <point x="-40" y="0" type="curve"/>
+ <point x="290" y="0" type="line"/>
+ <point x="790" y="603" type="line"/>
+ </contour>
+ <contour>
+ <point x="830" y="603" type="line"/>
+ <point x="1251" y="1099" type="line" smooth="yes"/>
+ <point x="1423" y="1302"/>
+ <point x="1492" y="1369"/>
+ <point x="1575" y="1445" type="curve"/>
+ <point x="1240" y="1445" type="line"/>
+ <point x="808" y="938" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnC_apY_.glif b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnC_apY_.glif
new file mode 100644
index 0000000..49af854
--- /dev/null
+++ b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnC_apY_.glif
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapY" format="2">
+ <advance width="1344"/>
+ <unicode hex="0059"/>
+ <anchor x="587" y="-100" name="L"/>
+ <anchor x="994" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="325" y="1445" type="line"/>
+ <point x="400" y="1298"/>
+ <point x="438" y="1185"/>
+ <point x="482" y="1054" type="curve" smooth="yes"/>
+ <point x="653" y="554" type="line"/>
+ <point x="868" y="668" type="line"/>
+ <point x="637" y="1445" type="line"/>
+ </contour>
+ <contour>
+ <point x="1282" y="1445" type="line"/>
+ <point x="668" y="668" type="line"/>
+ <point x="848" y="554" type="line"/>
+ <point x="1271" y="1054" type="line" smooth="yes"/>
+ <point x="1379" y="1183"/>
+ <point x="1459" y="1278"/>
+ <point x="1619" y="1445" type="curve"/>
+ </contour>
+ <contour>
+ <point x="770" y="0" type="line"/>
+ <point x="774" y="79"/>
+ <point x="813" y="236"/>
+ <point x="862" y="431" type="curve" smooth="yes"/>
+ <point x="926" y="688" type="line"/>
+ <point x="641" y="688" type="line"/>
+ <point x="577" y="431" type="line" smooth="yes"/>
+ <point x="528" y="236"/>
+ <point x="488" y="79"/>
+ <point x="455" y="0" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mA_.glif b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mA_.glif
new file mode 100644
index 0000000..0208140
--- /dev/null
+++ b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mA_.glif
@@ -0,0 +1,79 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmA" format="2">
+ <advance width="1185"/>
+ <unicode hex="0061"/>
+ <anchor x="925" y="0" name="H"/>
+ <anchor x="525" y="-100" name="L"/>
+ <anchor x="1125" y="0" name="O"/>
+ <anchor x="1335" y="1000" name="R"/>
+ <anchor x="825" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="1060" y="0" type="line"/>
+ <point x="1054" y="44"/>
+ <point x="1051" y="87"/>
+ <point x="1051" y="133" type="curve" smooth="yes"/>
+ <point x="1051" y="204"/>
+ <point x="1059" y="280"/>
+ <point x="1081" y="366" type="curve"/>
+ <point x="1128" y="557"/>
+ <point x="1156" y="665"/>
+ <point x="1170" y="722" type="curve"/>
+ <point x="1174" y="738"/>
+ <point x="1176" y="754"/>
+ <point x="1176" y="770" type="curve" smooth="yes"/>
+ <point x="1176" y="909"/>
+ <point x="1026" y="1030"/>
+ <point x="791" y="1030" type="curve" smooth="yes"/>
+ <point x="632" y="1030"/>
+ <point x="514" y="994"/>
+ <point x="389" y="940" type="curve"/>
+ <point x="363" y="859"/>
+ <point x="327" y="728"/>
+ <point x="315" y="684" type="curve"/>
+ <point x="452" y="765"/>
+ <point x="565" y="808"/>
+ <point x="673" y="808" type="curve" smooth="yes"/>
+ <point x="809" y="808"/>
+ <point x="885" y="760"/>
+ <point x="885" y="709" type="curve" smooth="yes"/>
+ <point x="885" y="705"/>
+ <point x="884" y="700"/>
+ <point x="883" y="696" type="curve" smooth="yes"/>
+ <point x="872" y="653" type="line"/>
+ <point x="831" y="652"/>
+ <point x="669" y="643"/>
+ <point x="598" y="636" type="curve" smooth="yes"/>
+ <point x="367" y="614"/>
+ <point x="109" y="474"/>
+ <point x="109" y="236" type="curve" smooth="yes"/>
+ <point x="109" y="97"/>
+ <point x="215" y="-25"/>
+ <point x="388" y="-25" type="curve" smooth="yes"/>
+ <point x="505" y="-25"/>
+ <point x="633" y="23"/>
+ <point x="773" y="134" type="curve"/>
+ <point x="773" y="78"/>
+ <point x="784" y="28"/>
+ <point x="790" y="0" type="curve"/>
+ </contour>
+ <contour>
+ <point x="797" y="351" type="line"/>
+ <point x="669" y="223"/>
+ <point x="590" y="203"/>
+ <point x="508" y="203" type="curve" smooth="yes"/>
+ <point x="438" y="203"/>
+ <point x="398" y="246"/>
+ <point x="398" y="299" type="curve" smooth="yes"/>
+ <point x="398" y="308"/>
+ <point x="399" y="317"/>
+ <point x="401" y="326" type="curve" smooth="yes"/>
+ <point x="417" y="391"/>
+ <point x="471" y="438"/>
+ <point x="612" y="452" type="curve" smooth="yes"/>
+ <point x="665" y="458"/>
+ <point x="786" y="469"/>
+ <point x="827" y="470" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mA_A_cute.glif b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mA_A_cute.glif
new file mode 100644
index 0000000..a91e18b
--- /dev/null
+++ b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mA_A_cute.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmAAcute" format="2">
+ <advance width="1185"/>
+ <unicode hex="00E1"/>
+ <anchor x="925" y="0" name="H"/>
+ <anchor x="525" y="-100" name="L"/>
+ <anchor x="1125" y="0" name="O"/>
+ <anchor x="1335" y="1000" name="R"/>
+ <anchor x="899" y="1635" name="U"/>
+ <outline>
+ <component base="LtnSmA"/>
+ <component base="CombAcute" xOffset="1150"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mA_C_ircum.glif b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mA_C_ircum.glif
new file mode 100644
index 0000000..c17afb1
--- /dev/null
+++ b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mA_C_ircum.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmACircum" format="2">
+ <advance width="1185"/>
+ <unicode hex="00E2"/>
+ <anchor x="925" y="0" name="H"/>
+ <anchor x="525" y="-100" name="L"/>
+ <anchor x="1125" y="0" name="O"/>
+ <anchor x="1335" y="1000" name="R"/>
+ <anchor x="916" y="1635" name="U"/>
+ <outline>
+ <component base="LtnSmA"/>
+ <component base="CombCircum" xOffset="1155"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mA_D_iaer.glif b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mA_D_iaer.glif
new file mode 100644
index 0000000..af45db4
--- /dev/null
+++ b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mA_D_iaer.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmADiaer" format="2">
+ <advance width="1185"/>
+ <unicode hex="00E4"/>
+ <anchor x="925" y="0" name="H"/>
+ <anchor x="525" y="-100" name="L"/>
+ <anchor x="1125" y="0" name="O"/>
+ <anchor x="1335" y="1000" name="R"/>
+ <anchor x="947" y="1585" name="U"/>
+ <outline>
+ <component base="LtnSmA"/>
+ <component base="CombDiaer" xOffset="1190"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mA_G_rave.glif b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mA_G_rave.glif
new file mode 100644
index 0000000..2374c69
--- /dev/null
+++ b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mA_G_rave.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmAGrave" format="2">
+ <advance width="1185"/>
+ <unicode hex="00E0"/>
+ <anchor x="925" y="0" name="H"/>
+ <anchor x="525" y="-100" name="L"/>
+ <anchor x="1125" y="0" name="O"/>
+ <anchor x="1335" y="1000" name="R"/>
+ <anchor x="999" y="1635" name="U"/>
+ <outline>
+ <component base="LtnSmA"/>
+ <component base="CombGrave" xOffset="1240"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mA_R_ingA_bv.glif b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mA_R_ingA_bv.glif
new file mode 100644
index 0000000..f8a7dcc
--- /dev/null
+++ b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mA_R_ingA_bv.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmARingAbv" format="2">
+ <advance width="1185"/>
+ <unicode hex="00E5"/>
+ <anchor x="925" y="0" name="H"/>
+ <anchor x="525" y="-100" name="L"/>
+ <anchor x="1125" y="0" name="O"/>
+ <anchor x="1335" y="1000" name="R"/>
+ <anchor x="961" y="1635" name="U"/>
+ <outline>
+ <component base="LtnSmA"/>
+ <component base="CombRingAbv" xOffset="1182"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mA_T_ilde.glif b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mA_T_ilde.glif
new file mode 100644
index 0000000..4a46027
--- /dev/null
+++ b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mA_T_ilde.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmATilde" format="2">
+ <advance width="1185"/>
+ <unicode hex="00E3"/>
+ <anchor x="925" y="0" name="H"/>
+ <anchor x="525" y="-100" name="L"/>
+ <anchor x="1125" y="0" name="O"/>
+ <anchor x="1335" y="1000" name="R"/>
+ <anchor x="860" y="1490" name="U"/>
+ <outline>
+ <component base="LtnSmA"/>
+ <component base="CombTilde" xOffset="1215"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mB_.glif b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mB_.glif
new file mode 100644
index 0000000..92bd16b
--- /dev/null
+++ b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mB_.glif
@@ -0,0 +1,55 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmB" format="2">
+ <advance width="1229"/>
+ <unicode hex="0062"/>
+ <anchor x="550" y="0" name="H"/>
+ <anchor x="525" y="-100" name="L"/>
+ <anchor x="1405" y="1000" name="R"/>
+ <anchor x="958" y="1635" name="U"/>
+ <outline>
+ <contour>
+ <point x="482" y="432" type="line"/>
+ <point x="576" y="610"/>
+ <point x="726" y="787"/>
+ <point x="829" y="787" type="curve" smooth="yes"/>
+ <point x="911" y="787"/>
+ <point x="946" y="705"/>
+ <point x="946" y="590" type="curve" smooth="yes"/>
+ <point x="946" y="465"/>
+ <point x="897" y="350"/>
+ <point x="823" y="275" type="curve" smooth="yes"/>
+ <point x="769" y="221"/>
+ <point x="703" y="188"/>
+ <point x="631" y="188" type="curve" smooth="yes"/>
+ <point x="564" y="188"/>
+ <point x="502" y="202"/>
+ <point x="434" y="238" type="curve"/>
+ </contour>
+ <contour>
+ <point x="445" y="1585" type="line"/>
+ <point x="445" y="1439"/>
+ <point x="404" y="1242"/>
+ <point x="367" y="1095" type="curve" smooth="yes"/>
+ <point x="110" y="64" type="line"/>
+ <point x="252" y="16"/>
+ <point x="400" y="-25"/>
+ <point x="593" y="-25" type="curve" smooth="yes"/>
+ <point x="727" y="-25"/>
+ <point x="845" y="19"/>
+ <point x="942" y="91" type="curve" smooth="yes"/>
+ <point x="1122" y="224"/>
+ <point x="1229" y="453"/>
+ <point x="1229" y="672" type="curve" smooth="yes"/>
+ <point x="1229" y="906"/>
+ <point x="1138" y="1030"/>
+ <point x="985" y="1030" type="curve" smooth="yes"/>
+ <point x="822" y="1030"/>
+ <point x="684" y="906"/>
+ <point x="562" y="756" type="curve"/>
+ <point x="646" y="1095" type="line" smooth="yes"/>
+ <point x="686" y="1255"/>
+ <point x="725" y="1474"/>
+ <point x="725" y="1585" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mC_.glif b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mC_.glif
new file mode 100644
index 0000000..62c096c
--- /dev/null
+++ b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mC_.glif
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmC" format="2">
+ <advance width="1019"/>
+ <unicode hex="0063"/>
+ <anchor x="495" y="0" name="H"/>
+ <anchor x="490" y="-100" name="L"/>
+ <anchor x="1210" y="1000" name="R"/>
+ <anchor x="790" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="1099" y="959" type="line"/>
+ <point x="1035" y="997"/>
+ <point x="928" y="1030"/>
+ <point x="796" y="1030" type="curve" smooth="yes"/>
+ <point x="446" y="1030"/>
+ <point x="150" y="774"/>
+ <point x="150" y="386" type="curve" smooth="yes"/>
+ <point x="150" y="137"/>
+ <point x="341" y="-25"/>
+ <point x="569" y="-25" type="curve" smooth="yes"/>
+ <point x="718" y="-25"/>
+ <point x="835" y="11"/>
+ <point x="927" y="69" type="curve"/>
+ <point x="937" y="311" type="line"/>
+ <point x="840" y="238"/>
+ <point x="755" y="203"/>
+ <point x="625" y="203" type="curve" smooth="yes"/>
+ <point x="494" y="203"/>
+ <point x="417" y="302"/>
+ <point x="417" y="416" type="curve" smooth="yes"/>
+ <point x="417" y="661"/>
+ <point x="588" y="802"/>
+ <point x="754" y="802" type="curve" smooth="yes"/>
+ <point x="857" y="802"/>
+ <point x="918" y="781"/>
+ <point x="993" y="720" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mD_.glif b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mD_.glif
new file mode 100644
index 0000000..fa38d37
--- /dev/null
+++ b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mD_.glif
@@ -0,0 +1,65 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmD" format="2">
+ <advance width="1265"/>
+ <unicode hex="0064"/>
+ <anchor x="535" y="0" name="H"/>
+ <anchor x="540" y="-100" name="L"/>
+ <anchor x="1475" y="1000" name="R"/>
+ <anchor x="958" y="1635" name="U"/>
+ <outline>
+ <contour>
+ <point x="913" y="558" type="line"/>
+ <point x="861" y="438"/>
+ <point x="666" y="200"/>
+ <point x="560" y="200" type="curve" smooth="yes"/>
+ <point x="470" y="200"/>
+ <point x="427" y="263"/>
+ <point x="427" y="367" type="curve" smooth="yes"/>
+ <point x="427" y="480"/>
+ <point x="469" y="626"/>
+ <point x="554" y="714" type="curve" smooth="yes"/>
+ <point x="599" y="761"/>
+ <point x="657" y="792"/>
+ <point x="727" y="792" type="curve" smooth="yes"/>
+ <point x="820" y="792"/>
+ <point x="876" y="775"/>
+ <point x="957" y="731" type="curve"/>
+ </contour>
+ <contour>
+ <point x="1144" y="1585" type="line"/>
+ <point x="1144" y="1471"/>
+ <point x="1116" y="1327"/>
+ <point x="1079" y="1175" type="curve" smooth="yes"/>
+ <point x="1020" y="935" type="line"/>
+ <point x="949" y="989"/>
+ <point x="845" y="1030"/>
+ <point x="756" y="1030" type="curve" smooth="yes"/>
+ <point x="630" y="1030"/>
+ <point x="518" y="987"/>
+ <point x="426" y="917" type="curve" smooth="yes"/>
+ <point x="250" y="784"/>
+ <point x="145" y="553"/>
+ <point x="145" y="341" type="curve" smooth="yes"/>
+ <point x="145" y="130"/>
+ <point x="258" y="-25"/>
+ <point x="448" y="-25" type="curve" smooth="yes"/>
+ <point x="597" y="-25"/>
+ <point x="785" y="145"/>
+ <point x="867" y="267" type="curve"/>
+ <point x="855" y="181"/>
+ <point x="855" y="72"/>
+ <point x="855" y="0" type="curve"/>
+ <point x="1130" y="0" type="line"/>
+ <point x="1126" y="23"/>
+ <point x="1125" y="63"/>
+ <point x="1125" y="100" type="curve" smooth="yes"/>
+ <point x="1125" y="200"/>
+ <point x="1142" y="340"/>
+ <point x="1185" y="520" type="curve" smooth="yes"/>
+ <point x="1345" y="1190" type="line" smooth="yes"/>
+ <point x="1387" y="1366"/>
+ <point x="1415" y="1490"/>
+ <point x="1415" y="1585" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mE_.glif b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mE_.glif
new file mode 100644
index 0000000..49f5856
--- /dev/null
+++ b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mE_.glif
@@ -0,0 +1,52 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmE" format="2">
+ <advance width="1087"/>
+ <unicode hex="0065"/>
+ <anchor x="509" y="0" name="H"/>
+ <anchor x="555" y="-100" name="L"/>
+ <anchor x="840" y="0" name="O"/>
+ <anchor x="1320" y="1000" name="R"/>
+ <anchor x="752" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="1013" y="303" type="line"/>
+ <point x="871" y="230"/>
+ <point x="739" y="198"/>
+ <point x="608" y="198" type="curve" smooth="yes"/>
+ <point x="459" y="198"/>
+ <point x="401" y="297"/>
+ <point x="401" y="428" type="curve" smooth="yes"/>
+ <point x="401" y="683"/>
+ <point x="552" y="822"/>
+ <point x="713" y="822" type="curve" smooth="yes"/>
+ <point x="811" y="822"/>
+ <point x="869" y="782"/>
+ <point x="869" y="720" type="curve" smooth="yes"/>
+ <point x="869" y="635"/>
+ <point x="777" y="580"/>
+ <point x="533" y="580" type="curve" smooth="yes"/>
+ <point x="461" y="580"/>
+ <point x="385" y="589"/>
+ <point x="283" y="610" type="curve"/>
+ <point x="283" y="437" type="line"/>
+ <point x="353" y="422"/>
+ <point x="487" y="413"/>
+ <point x="569" y="413" type="curve" smooth="yes"/>
+ <point x="935" y="413"/>
+ <point x="1125" y="583"/>
+ <point x="1125" y="774" type="curve" smooth="yes"/>
+ <point x="1125" y="922"/>
+ <point x="993" y="1030"/>
+ <point x="769" y="1030" type="curve" smooth="yes"/>
+ <point x="435" y="1030"/>
+ <point x="148" y="775"/>
+ <point x="148" y="388" type="curve" smooth="yes"/>
+ <point x="148" y="135"/>
+ <point x="332" y="-25"/>
+ <point x="556" y="-25" type="curve" smooth="yes"/>
+ <point x="712" y="-25"/>
+ <point x="835" y="2"/>
+ <point x="997" y="74" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mF_.glif b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mF_.glif
new file mode 100644
index 0000000..fd86bf3
--- /dev/null
+++ b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mF_.glif
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmF" format="2">
+ <advance width="859"/>
+ <unicode hex="0066"/>
+ <anchor x="320" y="0" name="H"/>
+ <anchor x="400" y="-100" name="L"/>
+ <anchor x="948" y="1635" name="U"/>
+ <outline>
+ <contour>
+ <point x="180" y="797" type="line"/>
+ <point x="915" y="797" type="line"/>
+ <point x="965" y="995" type="line"/>
+ <point x="230" y="995" type="line"/>
+ </contour>
+ <contour>
+ <point x="1189" y="1534" type="line"/>
+ <point x="1139" y="1572"/>
+ <point x="1040" y="1604"/>
+ <point x="966" y="1604" type="curve" smooth="yes"/>
+ <point x="719" y="1604"/>
+ <point x="535" y="1455"/>
+ <point x="460" y="1158" type="curve" smooth="yes"/>
+ <point x="416" y="983"/>
+ <point x="253" y="334"/>
+ <point x="232" y="0" type="curve"/>
+ <point x="542" y="0" type="line"/>
+ <point x="536" y="28"/>
+ <point x="533" y="66"/>
+ <point x="533" y="110" type="curve" smooth="yes"/>
+ <point x="533" y="213"/>
+ <point x="550" y="356"/>
+ <point x="581" y="489" type="curve" smooth="yes"/>
+ <point x="649" y="784"/>
+ <point x="682" y="926"/>
+ <point x="735" y="1147" type="curve" smooth="yes"/>
+ <point x="774" y="1309"/>
+ <point x="836" y="1373"/>
+ <point x="932" y="1373" type="curve" smooth="yes"/>
+ <point x="981" y="1373"/>
+ <point x="1043" y="1348"/>
+ <point x="1076" y="1309" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mG_.glif b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mG_.glif
new file mode 100644
index 0000000..c651c04
--- /dev/null
+++ b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mG_.glif
@@ -0,0 +1,91 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmG" format="2">
+ <advance width="1120"/>
+ <unicode hex="0067"/>
+ <anchor x="420" y="-465" name="H"/>
+ <anchor x="403" y="-535" name="L"/>
+ <anchor x="1360" y="1000" name="R"/>
+ <anchor x="782" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="1027" y="-117" type="curve" smooth="yes"/>
+ <point x="1027" y="8"/>
+ <point x="938" y="114"/>
+ <point x="702" y="163" type="curve" smooth="yes"/>
+ <point x="473" y="210"/>
+ <point x="402" y="217"/>
+ <point x="402" y="249" type="curve" smooth="yes"/>
+ <point x="402" y="279"/>
+ <point x="493" y="321"/>
+ <point x="584" y="346" type="curve"/>
+ <point x="359" y="391" type="line"/>
+ <point x="263" y="354"/>
+ <point x="161" y="283"/>
+ <point x="161" y="188" type="curve" smooth="yes"/>
+ <point x="161" y="101"/>
+ <point x="230" y="4"/>
+ <point x="451" y="-23" type="curve" smooth="yes"/>
+ <point x="669" y="-50"/>
+ <point x="740" y="-97"/>
+ <point x="740" y="-157" type="curve" smooth="yes"/>
+ <point x="740" y="-245"/>
+ <point x="591" y="-299"/>
+ <point x="457" y="-299" type="curve" smooth="yes"/>
+ <point x="286" y="-299"/>
+ <point x="197" y="-233"/>
+ <point x="197" y="-180" type="curve" smooth="yes"/>
+ <point x="197" y="-74"/>
+ <point x="405" y="-4"/>
+ <point x="476" y="20" type="curve"/>
+ <point x="476" y="49"/>
+ <point x="250" y="74"/>
+ <point x="250" y="74" type="curve"/>
+ <point x="103" y="20"/>
+ <point x="-91" y="-65"/>
+ <point x="-91" y="-233" type="curve" smooth="yes"/>
+ <point x="-91" y="-409"/>
+ <point x="166" y="-500"/>
+ <point x="392" y="-500" type="curve" smooth="yes"/>
+ <point x="690" y="-500"/>
+ <point x="1027" y="-380"/>
+ </contour>
+ <contour>
+ <point x="1268" y="1030" type="line"/>
+ <point x="1168" y="1023"/>
+ <point x="1027" y="987"/>
+ <point x="924" y="931" type="curve"/>
+ <point x="946" y="762" type="line"/>
+ <point x="1048" y="800"/>
+ <point x="1132" y="815"/>
+ <point x="1205" y="817" type="curve"/>
+ </contour>
+ <contour>
+ <point x="198" y="627" type="curve" smooth="yes"/>
+ <point x="198" y="450"/>
+ <point x="353" y="302"/>
+ <point x="572" y="302" type="curve" smooth="yes"/>
+ <point x="824" y="302"/>
+ <point x="1087" y="444"/>
+ <point x="1087" y="702" type="curve" smooth="yes"/>
+ <point x="1087" y="874"/>
+ <point x="955" y="1030"/>
+ <point x="703" y="1030" type="curve" smooth="yes"/>
+ <point x="454" y="1030"/>
+ <point x="198" y="881"/>
+ </contour>
+ <contour>
+ <point x="663" y="829" type="curve" smooth="yes"/>
+ <point x="761" y="829"/>
+ <point x="842" y="762"/>
+ <point x="842" y="675" type="curve" smooth="yes"/>
+ <point x="842" y="559"/>
+ <point x="733" y="496"/>
+ <point x="620" y="496" type="curve" smooth="yes"/>
+ <point x="524" y="496"/>
+ <point x="450" y="569"/>
+ <point x="450" y="653" type="curve" smooth="yes"/>
+ <point x="450" y="769"/>
+ <point x="560" y="829"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mH_.glif b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mH_.glif
new file mode 100644
index 0000000..7160c61
--- /dev/null
+++ b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mH_.glif
@@ -0,0 +1,54 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmH" format="2">
+ <advance width="1273"/>
+ <unicode hex="0068"/>
+ <anchor x="220" y="0" name="H"/>
+ <anchor x="635" y="-100" name="L"/>
+ <anchor x="968" y="1635" name="U"/>
+ <outline>
+ <contour>
+ <point x="1140" y="0" type="line"/>
+ <point x="1135" y="29"/>
+ <point x="1129" y="60"/>
+ <point x="1129" y="90" type="curve" smooth="yes"/>
+ <point x="1129" y="135"/>
+ <point x="1134" y="170"/>
+ <point x="1141" y="215" type="curve" smooth="yes"/>
+ <point x="1171" y="400"/>
+ <point x="1253" y="590"/>
+ <point x="1253" y="725" type="curve" smooth="yes"/>
+ <point x="1253" y="900"/>
+ <point x="1183" y="1030"/>
+ <point x="990" y="1030" type="curve" smooth="yes"/>
+ <point x="849" y="1030"/>
+ <point x="694" y="902"/>
+ <point x="566" y="740" type="curve"/>
+ <point x="656" y="1095" type="line" smooth="yes"/>
+ <point x="696" y="1255"/>
+ <point x="735" y="1474"/>
+ <point x="735" y="1585" type="curve"/>
+ <point x="455" y="1585" type="line"/>
+ <point x="455" y="1439"/>
+ <point x="413" y="1242"/>
+ <point x="377" y="1095" type="curve" smooth="yes"/>
+ <point x="105" y="0" type="line"/>
+ <point x="385" y="0" type="line"/>
+ <point x="485" y="400" type="line"/>
+ <point x="580" y="596"/>
+ <point x="745" y="787"/>
+ <point x="850" y="787" type="curve" smooth="yes"/>
+ <point x="937" y="787"/>
+ <point x="953" y="722"/>
+ <point x="953" y="625" type="curve" smooth="yes"/>
+ <point x="953" y="529"/>
+ <point x="889" y="374"/>
+ <point x="863" y="213" type="curve" smooth="yes"/>
+ <point x="857" y="174"/>
+ <point x="853" y="134"/>
+ <point x="853" y="95" type="curve" smooth="yes"/>
+ <point x="853" y="63"/>
+ <point x="854" y="31"/>
+ <point x="860" y="0" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mI_.glif b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mI_.glif
new file mode 100644
index 0000000..c19769e
--- /dev/null
+++ b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mI_.glif
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmI" format="2">
+ <advance width="625"/>
+ <unicode hex="0069"/>
+ <anchor x="260" y="0" name="H"/>
+ <anchor x="335" y="-100" name="L"/>
+ <anchor x="520" y="0" name="O"/>
+ <anchor x="830" y="1000" name="R"/>
+ <anchor x="535" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="341" y="1010" type="line"/>
+ <point x="341" y="877"/>
+ <point x="290" y="698"/>
+ <point x="252" y="547" type="curve" smooth="yes"/>
+ <point x="213" y="390" type="line" smooth="yes"/>
+ <point x="193" y="309"/>
+ <point x="170" y="191"/>
+ <point x="170" y="88" type="curve" smooth="yes"/>
+ <point x="170" y="57"/>
+ <point x="172" y="27"/>
+ <point x="177" y="0" type="curve"/>
+ <point x="472" y="0" type="line"/>
+ <point x="463" y="39"/>
+ <point x="459" y="82"/>
+ <point x="459" y="126" type="curve" smooth="yes"/>
+ <point x="459" y="217"/>
+ <point x="475" y="310"/>
+ <point x="486" y="358" type="curve" smooth="yes"/>
+ <point x="531" y="546" type="line" smooth="yes"/>
+ <point x="572" y="719"/>
+ <point x="621" y="875"/>
+ <point x="625" y="1010" type="curve"/>
+ </contour>
+ <contour>
+ <point x="404" y="1341" type="curve" smooth="yes"/>
+ <point x="404" y="1259"/>
+ <point x="462" y="1197"/>
+ <point x="548" y="1197" type="curve" smooth="yes"/>
+ <point x="668" y="1197"/>
+ <point x="759" y="1292"/>
+ <point x="759" y="1403" type="curve" smooth="yes"/>
+ <point x="759" y="1483"/>
+ <point x="701" y="1544"/>
+ <point x="614" y="1544" type="curve" smooth="yes"/>
+ <point x="496" y="1544"/>
+ <point x="404" y="1451"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mJ_.glif b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mJ_.glif
new file mode 100644
index 0000000..a454f7a
--- /dev/null
+++ b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mJ_.glif
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmJ" format="2">
+ <advance width="695"/>
+ <unicode hex="006A"/>
+ <anchor x="-45" y="-500" name="L"/>
+ <anchor x="565" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="361" y="1010" type="line"/>
+ <point x="361" y="866"/>
+ <point x="284" y="395"/>
+ <point x="205" y="87" type="curve" smooth="yes"/>
+ <point x="148" y="-136"/>
+ <point x="54" y="-221"/>
+ <point x="-56" y="-221" type="curve" smooth="yes"/>
+ <point x="-137" y="-221"/>
+ <point x="-217" y="-187"/>
+ <point x="-252" y="-150" type="curve"/>
+ <point x="-355" y="-385" type="line"/>
+ <point x="-321" y="-417"/>
+ <point x="-172" y="-465"/>
+ <point x="-79" y="-465" type="curve" smooth="yes"/>
+ <point x="170" y="-465"/>
+ <point x="388" y="-295"/>
+ <point x="481" y="75" type="curve" smooth="yes"/>
+ <point x="501" y="157"/>
+ <point x="646" y="882"/>
+ <point x="646" y="1010" type="curve"/>
+ </contour>
+ <contour>
+ <point x="395" y="1341" type="curve" smooth="yes"/>
+ <point x="395" y="1259"/>
+ <point x="453" y="1197"/>
+ <point x="539" y="1197" type="curve" smooth="yes"/>
+ <point x="659" y="1197"/>
+ <point x="750" y="1292"/>
+ <point x="750" y="1403" type="curve" smooth="yes"/>
+ <point x="750" y="1483"/>
+ <point x="692" y="1544"/>
+ <point x="605" y="1544" type="curve" smooth="yes"/>
+ <point x="487" y="1544"/>
+ <point x="395" y="1451"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mK_.glif b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mK_.glif
new file mode 100644
index 0000000..ed9d720
--- /dev/null
+++ b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mK_.glif
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmK" format="2">
+ <advance width="1209"/>
+ <unicode hex="006B"/>
+ <anchor x="880" y="0" name="H"/>
+ <anchor x="600" y="-100" name="L"/>
+ <anchor x="1330" y="1000" name="R"/>
+ <anchor x="943" y="1635" name="U"/>
+ <outline>
+ <contour>
+ <point x="964" y="1010" type="line"/>
+ <point x="920" y="864"/>
+ <point x="682" y="702"/>
+ <point x="483" y="576" type="curve"/>
+ <point x="676" y="518" type="line"/>
+ <point x="915" y="662"/>
+ <point x="1289" y="867"/>
+ <point x="1289" y="1010" type="curve"/>
+ </contour>
+ <contour>
+ <point x="1168" y="0" type="line"/>
+ <point x="992" y="302"/>
+ <point x="856" y="620"/>
+ <point x="633" y="620" type="curve"/>
+ <point x="442" y="529" type="line"/>
+ <point x="606" y="529"/>
+ <point x="722" y="252"/>
+ <point x="831" y="0" type="curve"/>
+ </contour>
+ <contour>
+ <point x="394" y="0" type="line"/>
+ <point x="669" y="1105" type="line" smooth="yes"/>
+ <point x="713" y="1280"/>
+ <point x="744" y="1497"/>
+ <point x="744" y="1585" type="curve"/>
+ <point x="462" y="1585" type="line"/>
+ <point x="462" y="1471"/>
+ <point x="431" y="1274"/>
+ <point x="393" y="1122" type="curve" smooth="yes"/>
+ <point x="345" y="928"/>
+ <point x="115" y="0"/>
+ <point x="115" y="0" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mL_.glif b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mL_.glif
new file mode 100644
index 0000000..3ecb48c
--- /dev/null
+++ b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mL_.glif
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmL" format="2">
+ <advance width="641"/>
+ <unicode hex="006C"/>
+ <anchor x="275" y="0" name="H"/>
+ <anchor x="350" y="-100" name="L"/>
+ <anchor x="850" y="1000" name="R"/>
+ <anchor x="630" y="1635" name="U"/>
+ <outline>
+ <contour>
+ <point x="461" y="1585" type="line"/>
+ <point x="461" y="1439"/>
+ <point x="420" y="1242"/>
+ <point x="383" y="1095" type="curve" smooth="yes"/>
+ <point x="232" y="488" type="line" smooth="yes"/>
+ <point x="208" y="394"/>
+ <point x="175" y="269"/>
+ <point x="175" y="116" type="curve" smooth="yes"/>
+ <point x="175" y="89"/>
+ <point x="178" y="30"/>
+ <point x="180" y="0" type="curve"/>
+ <point x="470" y="0" type="line"/>
+ <point x="464" y="39"/>
+ <point x="461" y="80"/>
+ <point x="461" y="121" type="curve" smooth="yes"/>
+ <point x="461" y="277"/>
+ <point x="498" y="434"/>
+ <point x="518" y="515" type="curve" smooth="yes"/>
+ <point x="662" y="1095" type="line" smooth="yes"/>
+ <point x="702" y="1255"/>
+ <point x="741" y="1474"/>
+ <point x="741" y="1585" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mM_.glif b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mM_.glif
new file mode 100644
index 0000000..6f5967a
--- /dev/null
+++ b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mM_.glif
@@ -0,0 +1,80 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmM" format="2">
+ <advance width="1770"/>
+ <unicode hex="006D"/>
+ <anchor x="830" y="0" name="H"/>
+ <anchor x="805" y="-100" name="L"/>
+ <anchor x="1105" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="1609" y="0" type="line"/>
+ <point x="1604" y="29"/>
+ <point x="1602" y="60"/>
+ <point x="1602" y="90" type="curve" smooth="yes"/>
+ <point x="1602" y="136"/>
+ <point x="1606" y="181"/>
+ <point x="1613" y="228" type="curve" smooth="yes"/>
+ <point x="1628" y="333"/>
+ <point x="1747" y="670"/>
+ <point x="1747" y="822" type="curve" smooth="yes"/>
+ <point x="1747" y="958"/>
+ <point x="1681" y="1030"/>
+ <point x="1547" y="1030" type="curve" smooth="yes"/>
+ <point x="1391" y="1030"/>
+ <point x="1227" y="876"/>
+ <point x="1120" y="705" type="curve"/>
+ <point x="1125" y="738"/>
+ <point x="1127" y="769"/>
+ <point x="1127" y="798" type="curve" smooth="yes"/>
+ <point x="1127" y="944"/>
+ <point x="1067" y="1030"/>
+ <point x="941" y="1030" type="curve" smooth="yes"/>
+ <point x="815" y="1030"/>
+ <point x="664" y="911"/>
+ <point x="537" y="715" type="curve"/>
+ <point x="553" y="840"/>
+ <point x="556" y="911"/>
+ <point x="556" y="955" type="curve" smooth="yes"/>
+ <point x="556" y="981"/>
+ <point x="554" y="998"/>
+ <point x="551" y="1010" type="curve"/>
+ <point x="291" y="1010" type="line"/>
+ <point x="293" y="999"/>
+ <point x="294" y="975"/>
+ <point x="294" y="942" type="curve" smooth="yes"/>
+ <point x="294" y="855"/>
+ <point x="286" y="710"/>
+ <point x="261" y="609" type="curve" smooth="yes"/>
+ <point x="110" y="0" type="line"/>
+ <point x="390" y="0" type="line"/>
+ <point x="479" y="370" type="line"/>
+ <point x="541" y="552"/>
+ <point x="711" y="787"/>
+ <point x="791" y="787" type="curve" smooth="yes"/>
+ <point x="843" y="787"/>
+ <point x="857" y="741"/>
+ <point x="857" y="688" type="curve" smooth="yes"/>
+ <point x="857" y="625"/>
+ <point x="832" y="535"/>
+ <point x="819" y="483" type="curve" smooth="yes"/>
+ <point x="695" y="0" type="line"/>
+ <point x="975" y="0" type="line"/>
+ <point x="1067" y="370" type="line"/>
+ <point x="1139" y="556"/>
+ <point x="1300" y="787"/>
+ <point x="1381" y="787" type="curve" smooth="yes"/>
+ <point x="1434" y="787"/>
+ <point x="1450" y="762"/>
+ <point x="1450" y="706" type="curve" smooth="yes"/>
+ <point x="1450" y="592"/>
+ <point x="1350" y="331"/>
+ <point x="1330" y="205" type="curve" smooth="yes"/>
+ <point x="1324" y="168"/>
+ <point x="1321" y="132"/>
+ <point x="1321" y="95" type="curve" smooth="yes"/>
+ <point x="1321" y="63"/>
+ <point x="1323" y="31"/>
+ <point x="1329" y="0" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mN_.glif b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mN_.glif
new file mode 100644
index 0000000..009224e
--- /dev/null
+++ b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mN_.glif
@@ -0,0 +1,57 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmN" format="2">
+ <advance width="1281"/>
+ <unicode hex="006E"/>
+ <anchor x="560" y="0" name="H"/>
+ <anchor x="635" y="-100" name="L"/>
+ <anchor x="835" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="1145" y="0" type="line"/>
+ <point x="1140" y="29"/>
+ <point x="1138" y="60"/>
+ <point x="1138" y="90" type="curve" smooth="yes"/>
+ <point x="1138" y="136"/>
+ <point x="1141" y="182"/>
+ <point x="1149" y="228" type="curve" smooth="yes"/>
+ <point x="1173" y="366"/>
+ <point x="1258" y="591"/>
+ <point x="1258" y="725" type="curve" smooth="yes"/>
+ <point x="1258" y="890"/>
+ <point x="1188" y="1030"/>
+ <point x="995" y="1030" type="curve" smooth="yes"/>
+ <point x="844" y="1030"/>
+ <point x="685" y="903"/>
+ <point x="546" y="715" type="curve"/>
+ <point x="555" y="771"/>
+ <point x="569" y="875"/>
+ <point x="569" y="933" type="curve" smooth="yes"/>
+ <point x="569" y="962"/>
+ <point x="568" y="988"/>
+ <point x="565" y="1010" type="curve"/>
+ <point x="290" y="1010" type="line"/>
+ <point x="290" y="962" type="line" smooth="yes"/>
+ <point x="290" y="859"/>
+ <point x="280" y="685"/>
+ <point x="261" y="609" type="curve" smooth="yes"/>
+ <point x="110" y="0" type="line"/>
+ <point x="388" y="0" type="line"/>
+ <point x="490" y="405" type="line"/>
+ <point x="569" y="569"/>
+ <point x="740" y="787"/>
+ <point x="835" y="787" type="curve" smooth="yes"/>
+ <point x="922" y="787"/>
+ <point x="958" y="732"/>
+ <point x="958" y="625" type="curve" smooth="yes"/>
+ <point x="958" y="527"/>
+ <point x="891" y="369"/>
+ <point x="866" y="205" type="curve" smooth="yes"/>
+ <point x="860" y="168"/>
+ <point x="857" y="132"/>
+ <point x="857" y="95" type="curve" smooth="yes"/>
+ <point x="857" y="63"/>
+ <point x="859" y="31"/>
+ <point x="865" y="0" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mO_.glif b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mO_.glif
new file mode 100644
index 0000000..d21fb58
--- /dev/null
+++ b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mO_.glif
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmO" format="2">
+ <advance width="1139"/>
+ <unicode hex="006F"/>
+ <anchor x="518" y="0" name="H"/>
+ <anchor x="530" y="-100" name="L"/>
+ <anchor x="730" y="0" name="O"/>
+ <anchor x="1350" y="1000" name="R"/>
+ <anchor x="795" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="140" y="370" type="curve" smooth="yes"/>
+ <point x="140" y="128"/>
+ <point x="289" y="-25"/>
+ <point x="520" y="-25" type="curve" smooth="yes"/>
+ <point x="906" y="-25"/>
+ <point x="1144" y="295"/>
+ <point x="1144" y="641" type="curve" smooth="yes"/>
+ <point x="1144" y="880"/>
+ <point x="1003" y="1030"/>
+ <point x="773" y="1030" type="curve" smooth="yes"/>
+ <point x="390" y="1030"/>
+ <point x="140" y="718"/>
+ </contour>
+ <contour>
+ <point x="718" y="807" type="curve" smooth="yes"/>
+ <point x="826" y="807"/>
+ <point x="879" y="737"/>
+ <point x="879" y="612" type="curve" smooth="yes"/>
+ <point x="879" y="413"/>
+ <point x="764" y="198"/>
+ <point x="566" y="198" type="curve" smooth="yes"/>
+ <point x="464" y="198"/>
+ <point x="404" y="264"/>
+ <point x="404" y="385" type="curve" smooth="yes"/>
+ <point x="404" y="570"/>
+ <point x="512" y="807"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mP_.glif b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mP_.glif
new file mode 100644
index 0000000..55c6e8b
--- /dev/null
+++ b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mP_.glif
@@ -0,0 +1,66 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmP" format="2">
+ <advance width="1272"/>
+ <unicode hex="0070"/>
+ <anchor x="121" y="-435" name="H"/>
+ <anchor x="555" y="-500" name="L"/>
+ <anchor x="1425" y="1000" name="R"/>
+ <anchor x="855" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="523" y="500" type="line"/>
+ <point x="605" y="650"/>
+ <point x="765" y="794"/>
+ <point x="854" y="794" type="curve" smooth="yes"/>
+ <point x="932" y="794"/>
+ <point x="975" y="719"/>
+ <point x="975" y="609" type="curve" smooth="yes"/>
+ <point x="975" y="478"/>
+ <point x="924" y="334"/>
+ <point x="823" y="258" type="curve" smooth="yes"/>
+ <point x="778" y="224"/>
+ <point x="723" y="204"/>
+ <point x="658" y="204" type="curve" smooth="yes"/>
+ <point x="589" y="204"/>
+ <point x="517" y="243"/>
+ <point x="473" y="297" type="curve"/>
+ </contour>
+ <contour>
+ <point x="300" y="1010" type="line"/>
+ <point x="300" y="962" type="line" smooth="yes"/>
+ <point x="300" y="859"/>
+ <point x="290" y="685"/>
+ <point x="271" y="609" type="curve" smooth="yes"/>
+ <point x="75" y="-180" type="line" smooth="yes"/>
+ <point x="49" y="-286"/>
+ <point x="25" y="-403"/>
+ <point x="25" y="-485" type="curve"/>
+ <point x="314" y="-485" type="line"/>
+ <point x="314" y="-393"/>
+ <point x="328" y="-287"/>
+ <point x="362" y="-149" type="curve" smooth="yes"/>
+ <point x="415" y="64" type="line"/>
+ <point x="495" y="10"/>
+ <point x="562" y="-25"/>
+ <point x="667" y="-25" type="curve" smooth="yes"/>
+ <point x="750" y="-25"/>
+ <point x="833" y="-2"/>
+ <point x="909" y="40" type="curve" smooth="yes"/>
+ <point x="1112" y="152"/>
+ <point x="1267" y="398"/>
+ <point x="1267" y="685" type="curve" smooth="yes"/>
+ <point x="1267" y="884"/>
+ <point x="1176" y="1030"/>
+ <point x="1004" y="1030" type="curve" smooth="yes"/>
+ <point x="849" y="1030"/>
+ <point x="677" y="901"/>
+ <point x="565" y="752" type="curve"/>
+ <point x="574" y="808"/>
+ <point x="579" y="875"/>
+ <point x="579" y="933" type="curve" smooth="yes"/>
+ <point x="579" y="962"/>
+ <point x="578" y="988"/>
+ <point x="575" y="1010" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mQ_.glif b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mQ_.glif
new file mode 100644
index 0000000..d3068d2
--- /dev/null
+++ b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mQ_.glif
@@ -0,0 +1,54 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmQ" format="2">
+ <advance width="1206"/>
+ <unicode hex="0071"/>
+ <anchor x="415" y="-500" name="L"/>
+ <anchor x="1400" y="1000" name="R"/>
+ <anchor x="815" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="889" y="583" type="line"/>
+ <point x="832" y="467"/>
+ <point x="615" y="211"/>
+ <point x="520" y="211" type="curve" smooth="yes"/>
+ <point x="457" y="211"/>
+ <point x="429" y="263"/>
+ <point x="429" y="362" type="curve" smooth="yes"/>
+ <point x="429" y="484"/>
+ <point x="469" y="616"/>
+ <point x="551" y="702" type="curve" smooth="yes"/>
+ <point x="605" y="758"/>
+ <point x="676" y="794"/>
+ <point x="765" y="794" type="curve" smooth="yes"/>
+ <point x="806" y="794"/>
+ <point x="897" y="781"/>
+ <point x="933" y="762" type="curve"/>
+ </contour>
+ <contour>
+ <point x="936" y="-485" type="line"/>
+ <point x="936" y="-396"/>
+ <point x="951" y="-299"/>
+ <point x="978" y="-190" type="curve" smooth="yes"/>
+ <point x="1261" y="955" type="line"/>
+ <point x="1134" y="991"/>
+ <point x="972" y="1030"/>
+ <point x="819" y="1030" type="curve" smooth="yes"/>
+ <point x="678" y="1030"/>
+ <point x="516" y="969"/>
+ <point x="403" y="874" type="curve" smooth="yes"/>
+ <point x="244" y="739"/>
+ <point x="145" y="535"/>
+ <point x="145" y="331" type="curve" smooth="yes"/>
+ <point x="145" y="105"/>
+ <point x="275" y="-25"/>
+ <point x="391" y="-25" type="curve" smooth="yes"/>
+ <point x="529" y="-25"/>
+ <point x="729" y="134"/>
+ <point x="838" y="300" type="curve"/>
+ <point x="706" y="-185" type="line" smooth="yes"/>
+ <point x="675" y="-299"/>
+ <point x="661" y="-419"/>
+ <point x="661" y="-485" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mR_.glif b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mR_.glif
new file mode 100644
index 0000000..48a3cc8
--- /dev/null
+++ b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mR_.glif
@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmR" format="2">
+ <advance width="1021"/>
+ <unicode hex="0072"/>
+ <anchor x="225" y="0" name="H"/>
+ <anchor x="255" y="-100" name="L"/>
+ <anchor x="765" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="390" y="0" type="line"/>
+ <point x="494" y="420" type="line"/>
+ <point x="555" y="557"/>
+ <point x="727" y="773"/>
+ <point x="810" y="773" type="curve" smooth="yes"/>
+ <point x="864" y="773"/>
+ <point x="887" y="737"/>
+ <point x="887" y="678" type="curve" smooth="yes"/>
+ <point x="887" y="662"/>
+ <point x="885" y="644"/>
+ <point x="882" y="624" type="curve"/>
+ <point x="1114" y="658" type="line"/>
+ <point x="1123" y="706"/>
+ <point x="1136" y="752"/>
+ <point x="1136" y="794" type="curve" smooth="yes"/>
+ <point x="1136" y="931"/>
+ <point x="1084" y="1030"/>
+ <point x="963" y="1030" type="curve" smooth="yes"/>
+ <point x="828" y="1030"/>
+ <point x="670" y="883"/>
+ <point x="544" y="716" type="curve"/>
+ <point x="555" y="787"/>
+ <point x="570" y="960"/>
+ <point x="570" y="1010" type="curve"/>
+ <point x="295" y="1010" type="line"/>
+ <point x="295" y="962" type="line" smooth="yes"/>
+ <point x="295" y="894"/>
+ <point x="281" y="689"/>
+ <point x="261" y="609" type="curve" smooth="yes"/>
+ <point x="110" y="0" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mS_.glif b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mS_.glif
new file mode 100644
index 0000000..568c40a
--- /dev/null
+++ b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mS_.glif
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmS" format="2">
+ <advance width="1015"/>
+ <unicode hex="0073"/>
+ <anchor x="455" y="0" name="H"/>
+ <anchor x="530" y="-100" name="L"/>
+ <anchor x="745" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="1058" y="952" type="line"/>
+ <point x="990" y="990"/>
+ <point x="854" y="1030"/>
+ <point x="691" y="1030" type="curve" smooth="yes"/>
+ <point x="457" y="1030"/>
+ <point x="217" y="936"/>
+ <point x="217" y="722" type="curve" smooth="yes"/>
+ <point x="217" y="593"/>
+ <point x="306" y="517"/>
+ <point x="501" y="430" type="curve" smooth="yes"/>
+ <point x="648" y="364"/>
+ <point x="710" y="345"/>
+ <point x="710" y="288" type="curve" smooth="yes"/>
+ <point x="710" y="224"/>
+ <point x="649" y="197"/>
+ <point x="549" y="197" type="curve" smooth="yes"/>
+ <point x="392" y="197"/>
+ <point x="276" y="280"/>
+ <point x="197" y="371" type="curve"/>
+ <point x="72" y="129" type="line"/>
+ <point x="143" y="68"/>
+ <point x="319" y="-25"/>
+ <point x="498" y="-25" type="curve" smooth="yes"/>
+ <point x="767" y="-25"/>
+ <point x="979" y="104"/>
+ <point x="979" y="315" type="curve" smooth="yes"/>
+ <point x="979" y="440"/>
+ <point x="884" y="513"/>
+ <point x="695" y="600" type="curve" smooth="yes"/>
+ <point x="581" y="652"/>
+ <point x="477" y="688"/>
+ <point x="477" y="743" type="curve" smooth="yes"/>
+ <point x="477" y="785"/>
+ <point x="548" y="808"/>
+ <point x="646" y="808" type="curve" smooth="yes"/>
+ <point x="785" y="808"/>
+ <point x="895" y="764"/>
+ <point x="961" y="716" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mT_.glif b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mT_.glif
new file mode 100644
index 0000000..c6a02c1
--- /dev/null
+++ b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mT_.glif
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmT" format="2">
+ <advance width="900"/>
+ <unicode hex="0074"/>
+ <anchor x="470" y="0" name="H"/>
+ <anchor x="520" y="-100" name="L"/>
+ <anchor x="1075" y="1000" name="R"/>
+ <anchor x="640" y="1360" name="U"/>
+ <outline>
+ <contour>
+ <point x="831" y="278" type="line"/>
+ <point x="740" y="230"/>
+ <point x="670" y="204"/>
+ <point x="619" y="204" type="curve" smooth="yes"/>
+ <point x="556" y="204"/>
+ <point x="536" y="250"/>
+ <point x="536" y="318" type="curve" smooth="yes"/>
+ <point x="536" y="347"/>
+ <point x="539" y="380"/>
+ <point x="545" y="415" type="curve" smooth="yes"/>
+ <point x="567" y="549"/>
+ <point x="700" y="1039"/>
+ <point x="767" y="1307" type="curve"/>
+ <point x="487" y="1307" type="line"/>
+ <point x="419" y="1038"/>
+ <point x="265" y="471"/>
+ <point x="243" y="328" type="curve" smooth="yes"/>
+ <point x="239" y="302"/>
+ <point x="237" y="277"/>
+ <point x="237" y="253" type="curve" smooth="yes"/>
+ <point x="237" y="73"/>
+ <point x="351" y="-25"/>
+ <point x="518" y="-25" type="curve" smooth="yes"/>
+ <point x="590" y="-25"/>
+ <point x="703" y="-4"/>
+ <point x="812" y="55" type="curve"/>
+ </contour>
+ <contour>
+ <point x="945" y="797" type="line"/>
+ <point x="995" y="995" type="line"/>
+ <point x="220" y="995" type="line"/>
+ <point x="170" y="797" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mU_.glif b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mU_.glif
new file mode 100644
index 0000000..5067d38
--- /dev/null
+++ b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mU_.glif
@@ -0,0 +1,57 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmU" format="2">
+ <advance width="1257"/>
+ <unicode hex="0075"/>
+ <anchor x="455" y="0" name="H"/>
+ <anchor x="530" y="-100" name="L"/>
+ <anchor x="630" y="0" name="O"/>
+ <anchor x="1448" y="1000" name="R"/>
+ <anchor x="830" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="1117" y="0" type="line"/>
+ <point x="1113" y="29"/>
+ <point x="1112" y="62"/>
+ <point x="1112" y="100" type="curve" smooth="yes"/>
+ <point x="1112" y="206"/>
+ <point x="1131" y="341"/>
+ <point x="1157" y="455" type="curve" smooth="yes"/>
+ <point x="1212" y="689"/>
+ <point x="1274" y="905"/>
+ <point x="1282" y="1010" type="curve"/>
+ <point x="993" y="1010" type="line"/>
+ <point x="981" y="889"/>
+ <point x="992" y="918"/>
+ <point x="910" y="595" type="curve"/>
+ <point x="835" y="427"/>
+ <point x="618" y="205"/>
+ <point x="537" y="205" type="curve" smooth="yes"/>
+ <point x="491" y="205"/>
+ <point x="462" y="236"/>
+ <point x="462" y="308" type="curve" smooth="yes"/>
+ <point x="462" y="405"/>
+ <point x="536" y="663"/>
+ <point x="549" y="712" type="curve" smooth="yes"/>
+ <point x="583" y="847"/>
+ <point x="605" y="935"/>
+ <point x="610" y="1010" type="curve"/>
+ <point x="323" y="1010" type="line"/>
+ <point x="312" y="891"/>
+ <point x="296" y="819"/>
+ <point x="264" y="693" type="curve" smooth="yes"/>
+ <point x="191" y="401" type="line" smooth="yes"/>
+ <point x="173" y="330"/>
+ <point x="165" y="267"/>
+ <point x="165" y="214" type="curve" smooth="yes"/>
+ <point x="165" y="55"/>
+ <point x="252" y="-25"/>
+ <point x="381" y="-25" type="curve" smooth="yes"/>
+ <point x="545" y="-25"/>
+ <point x="769" y="160"/>
+ <point x="860" y="295" type="curve"/>
+ <point x="850" y="227"/>
+ <point x="842" y="53"/>
+ <point x="842" y="0" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mV_.glif b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mV_.glif
new file mode 100644
index 0000000..d7ceb46
--- /dev/null
+++ b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mV_.glif
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmV" format="2">
+ <advance width="1049"/>
+ <unicode hex="0076"/>
+ <anchor x="505" y="0" name="H"/>
+ <anchor x="410" y="-100" name="L"/>
+ <anchor x="690" y="0" name="O"/>
+ <anchor x="695" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="881" y="1010" type="line"/>
+ <point x="881" y="788"/>
+ <point x="719" y="534"/>
+ <point x="507" y="270" type="curve"/>
+ <point x="516" y="353"/>
+ <point x="521" y="457"/>
+ <point x="521" y="564" type="curve" smooth="yes"/>
+ <point x="521" y="730"/>
+ <point x="507" y="903"/>
+ <point x="472" y="1010" type="curve"/>
+ <point x="195" y="1010" type="line"/>
+ <point x="259" y="758"/>
+ <point x="282" y="509"/>
+ <point x="282" y="262" type="curve" smooth="yes"/>
+ <point x="282" y="174"/>
+ <point x="279" y="87"/>
+ <point x="274" y="0" type="curve"/>
+ <point x="535" y="0" type="line"/>
+ <point x="823" y="314"/>
+ <point x="1159" y="766"/>
+ <point x="1159" y="1010" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mW_.glif b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mW_.glif
new file mode 100644
index 0000000..02f3211
--- /dev/null
+++ b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mW_.glif
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmW" format="2">
+ <advance width="1620"/>
+ <unicode hex="0077"/>
+ <anchor x="700" y="-100" name="L"/>
+ <anchor x="1000" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="850" y="1010" type="line"/>
+ <point x="758" y="793"/>
+ <point x="592" y="496"/>
+ <point x="438" y="242" type="curve"/>
+ <point x="459" y="351"/>
+ <point x="476" y="509"/>
+ <point x="476" y="669" type="curve" smooth="yes"/>
+ <point x="476" y="788"/>
+ <point x="468" y="908"/>
+ <point x="448" y="1010" type="curve"/>
+ <point x="190" y="1010" type="line"/>
+ <point x="230" y="831"/>
+ <point x="236" y="678"/>
+ <point x="236" y="494" type="curve" smooth="yes"/>
+ <point x="236" y="364"/>
+ <point x="228" y="211"/>
+ <point x="209" y="0" type="curve"/>
+ <point x="499" y="0" type="line"/>
+ <point x="624" y="181"/>
+ <point x="838" y="560"/>
+ <point x="901" y="690" type="curve"/>
+ <point x="919" y="477"/>
+ <point x="919" y="212"/>
+ <point x="919" y="0" type="curve"/>
+ <point x="1179" y="0" type="line"/>
+ <point x="1430" y="328"/>
+ <point x="1710" y="775"/>
+ <point x="1710" y="1010" type="curve"/>
+ <point x="1432" y="1010" type="line"/>
+ <point x="1432" y="995" type="line" smooth="yes"/>
+ <point x="1432" y="797"/>
+ <point x="1245" y="435"/>
+ <point x="1106" y="242" type="curve"/>
+ <point x="1108" y="298"/>
+ <point x="1108" y="355"/>
+ <point x="1108" y="411" type="curve" smooth="yes"/>
+ <point x="1108" y="637"/>
+ <point x="1096" y="860"/>
+ <point x="1070" y="1010" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mX_.glif b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mX_.glif
new file mode 100644
index 0000000..2e620de
--- /dev/null
+++ b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mX_.glif
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmX" format="2">
+ <advance width="1104"/>
+ <unicode hex="0078"/>
+ <anchor x="900" y="0" name="H"/>
+ <anchor x="505" y="-100" name="L"/>
+ <anchor x="730" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="1040" y="0" type="line"/>
+ <point x="860" y="133"/>
+ <point x="655" y="882"/>
+ <point x="524" y="1010" type="curve"/>
+ <point x="186" y="1010" type="line"/>
+ <point x="425" y="832"/>
+ <point x="593" y="141"/>
+ <point x="713" y="0" type="curve"/>
+ </contour>
+ <contour>
+ <point x="509" y="572" type="line"/>
+ <point x="291" y="463"/>
+ <point x="62" y="230"/>
+ <point x="35" y="0" type="curve"/>
+ <point x="335" y="0" type="line"/>
+ <point x="336" y="156"/>
+ <point x="470" y="390"/>
+ <point x="658" y="477" type="curve"/>
+ </contour>
+ <contour>
+ <point x="764" y="471" type="line"/>
+ <point x="943" y="591"/>
+ <point x="1197" y="808"/>
+ <point x="1204" y="1010" type="curve"/>
+ <point x="894" y="1010" type="line"/>
+ <point x="894" y="852"/>
+ <point x="773" y="665"/>
+ <point x="616" y="571" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mY_.glif b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mY_.glif
new file mode 100644
index 0000000..f2ae46b
--- /dev/null
+++ b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/L_tnS_mY_.glif
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmY" format="2">
+ <advance width="1041"/>
+ <unicode hex="0079"/>
+ <anchor x="810" y="-100" name="L"/>
+ <anchor x="1325" y="1000" name="R"/>
+ <anchor x="640" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="847" y="1010" type="line"/>
+ <point x="851" y="994"/>
+ <point x="852" y="977"/>
+ <point x="852" y="958" type="curve" smooth="yes"/>
+ <point x="852" y="786"/>
+ <point x="713" y="473"/>
+ <point x="596" y="260" type="curve"/>
+ <point x="596" y="478"/>
+ <point x="503" y="877"/>
+ <point x="403" y="1010" type="curve"/>
+ <point x="120" y="1010" type="line"/>
+ <point x="259" y="811"/>
+ <point x="401" y="401"/>
+ <point x="409" y="-18" type="curve"/>
+ <point x="283" y="-207"/>
+ <point x="183" y="-250"/>
+ <point x="114" y="-250" type="curve" smooth="yes"/>
+ <point x="48" y="-250"/>
+ <point x="-33" y="-201"/>
+ <point x="-63" y="-165" type="curve"/>
+ <point x="-195" y="-381" type="line"/>
+ <point x="-136" y="-435"/>
+ <point x="-13" y="-465"/>
+ <point x="78" y="-465" type="curve" smooth="yes"/>
+ <point x="260" y="-465"/>
+ <point x="447" y="-385"/>
+ <point x="684" y="0" type="curve" smooth="yes"/>
+ <point x="919" y="381"/>
+ <point x="1116" y="766"/>
+ <point x="1116" y="960" type="curve" smooth="yes"/>
+ <point x="1116" y="978"/>
+ <point x="1114" y="995"/>
+ <point x="1110" y="1010" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetpsnames.ufo/glyphs/N_onB_reakingH_yphen.glif b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/N_onB_reakingH_yphen.glif
new file mode 100644
index 0000000..cd90adf
--- /dev/null
+++ b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/N_onB_reakingH_yphen.glif
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="NonBreakingHyphen" format="2">
+ <advance width="875"/>
+ <unicode hex="2011"/>
+ <anchor x="665" y="1100" name="U"/>
+ <outline>
+ <component base="HyphenMinus"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetpsnames.ufo/glyphs/N_umS_gn.glif b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/N_umS_gn.glif
new file mode 100644
index 0000000..1d3e5e9
--- /dev/null
+++ b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/N_umS_gn.glif
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="NumSgn" format="2">
+ <advance width="1180"/>
+ <unicode hex="0023"/>
+ <outline>
+ <contour>
+ <point x="667" y="1346" type="line"/>
+ <point x="16" y="99" type="line"/>
+ <point x="256" y="99" type="line"/>
+ <point x="907" y="1346" type="line"/>
+ </contour>
+ <contour>
+ <point x="54" y="421" type="line"/>
+ <point x="1145" y="421" type="line"/>
+ <point x="1197" y="629" type="line"/>
+ <point x="106" y="629" type="line"/>
+ </contour>
+ <contour>
+ <point x="218" y="841" type="line"/>
+ <point x="1309" y="841" type="line"/>
+ <point x="1361" y="1049" type="line"/>
+ <point x="270" y="1049" type="line"/>
+ </contour>
+ <contour>
+ <point x="1142" y="1346" type="line"/>
+ <point x="491" y="99" type="line"/>
+ <point x="731" y="99" type="line"/>
+ <point x="1382" y="1346" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetpsnames.ufo/glyphs/P_ercentS_gn.glif b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/P_ercentS_gn.glif
new file mode 100644
index 0000000..f87ea9f
--- /dev/null
+++ b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/P_ercentS_gn.glif
@@ -0,0 +1,93 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="PercentSgn" format="2">
+ <advance width="1545"/>
+ <unicode hex="0025"/>
+ <outline>
+ <contour>
+ <point x="1375" y="1465" type="line"/>
+ <point x="221" y="-25" type="line"/>
+ <point x="435" y="-25" type="line"/>
+ <point x="1587" y="1465" type="line"/>
+ </contour>
+ <contour>
+ <point x="714" y="1043" type="curve" smooth="yes"/>
+ <point x="669" y="861"/>
+ <point x="611" y="807"/>
+ <point x="535" y="807" type="curve" smooth="yes"/>
+ <point x="486" y="807"/>
+ <point x="461" y="843"/>
+ <point x="461" y="917" type="curve" smooth="yes"/>
+ <point x="461" y="963"/>
+ <point x="471" y="1023"/>
+ <point x="490" y="1099" type="curve" smooth="yes"/>
+ <point x="535" y="1281"/>
+ <point x="580" y="1336"/>
+ <point x="657" y="1336" type="curve" smooth="yes"/>
+ <point x="710" y="1336"/>
+ <point x="739" y="1296"/>
+ <point x="739" y="1212" type="curve" smooth="yes"/>
+ <point x="739" y="1168"/>
+ <point x="731" y="1111"/>
+ </contour>
+ <contour>
+ <point x="926" y="1054" type="curve" smooth="yes"/>
+ <point x="939" y="1107"/>
+ <point x="946" y="1156"/>
+ <point x="946" y="1199" type="curve" smooth="yes"/>
+ <point x="946" y="1374"/>
+ <point x="842" y="1465"/>
+ <point x="694" y="1465" type="curve" smooth="yes"/>
+ <point x="510" y="1465"/>
+ <point x="346" y="1369"/>
+ <point x="277" y="1090" type="curve" smooth="yes"/>
+ <point x="262" y="1031"/>
+ <point x="255" y="979"/>
+ <point x="255" y="933" type="curve" smooth="yes"/>
+ <point x="255" y="761"/>
+ <point x="353" y="678"/>
+ <point x="499" y="678" type="curve" smooth="yes"/>
+ <point x="684" y="678"/>
+ <point x="853" y="762"/>
+ </contour>
+ <contour>
+ <point x="1314" y="337" type="curve" smooth="yes"/>
+ <point x="1268" y="155"/>
+ <point x="1220" y="104"/>
+ <point x="1144" y="104" type="curve" smooth="yes"/>
+ <point x="1093" y="104"/>
+ <point x="1065" y="144"/>
+ <point x="1065" y="227" type="curve" smooth="yes"/>
+ <point x="1065" y="272"/>
+ <point x="1073" y="329"/>
+ <point x="1090" y="398" type="curve" smooth="yes"/>
+ <point x="1136" y="580"/>
+ <point x="1190" y="634"/>
+ <point x="1267" y="634" type="curve" smooth="yes"/>
+ <point x="1317" y="634"/>
+ <point x="1342" y="596"/>
+ <point x="1342" y="520" type="curve" smooth="yes"/>
+ <point x="1342" y="473"/>
+ <point x="1333" y="412"/>
+ </contour>
+ <contour>
+ <point x="1526" y="350" type="curve" smooth="yes"/>
+ <point x="1540" y="406"/>
+ <point x="1546" y="456"/>
+ <point x="1546" y="501" type="curve" smooth="yes"/>
+ <point x="1546" y="673"/>
+ <point x="1450" y="762"/>
+ <point x="1303" y="762" type="curve" smooth="yes"/>
+ <point x="1119" y="762"/>
+ <point x="946" y="665"/>
+ <point x="876" y="386" type="curve" smooth="yes"/>
+ <point x="862" y="331"/>
+ <point x="856" y="281"/>
+ <point x="856" y="237" type="curve" smooth="yes"/>
+ <point x="856" y="60"/>
+ <point x="960" y="-25"/>
+ <point x="1108" y="-25" type="curve" smooth="yes"/>
+ <point x="1293" y="-25"/>
+ <point x="1453" y="58"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetpsnames.ufo/glyphs/P_lusS_gn.glif b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/P_lusS_gn.glif
new file mode 100644
index 0000000..bb54e70
--- /dev/null
+++ b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/P_lusS_gn.glif
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="PlusSgn" format="2">
+ <advance width="1180"/>
+ <unicode hex="002B"/>
+ <outline>
+ <contour>
+ <point x="722" y="1168" type="line"/>
+ <point x="500" y="282" type="line"/>
+ <point x="715" y="282" type="line"/>
+ <point x="936" y="1168" type="line"/>
+ </contour>
+ <contour>
+ <point x="250" y="624" type="line"/>
+ <point x="1140" y="624" type="line"/>
+ <point x="1192" y="832" type="line"/>
+ <point x="302" y="832" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetpsnames.ufo/glyphs/Q_stnM_rk.glif b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/Q_stnM_rk.glif
new file mode 100644
index 0000000..5acaded
--- /dev/null
+++ b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/Q_stnM_rk.glif
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="QstnMrk" format="2">
+ <advance width="1070"/>
+ <unicode hex="003F"/>
+ <outline>
+ <contour>
+ <point x="703" y="495" type="line"/>
+ <point x="745" y="664"/>
+ <point x="787" y="792"/>
+ <point x="931" y="933" type="curve" smooth="yes"/>
+ <point x="1034" y="1033"/>
+ <point x="1143" y="1118"/>
+ <point x="1143" y="1256" type="curve" smooth="yes"/>
+ <point x="1143" y="1404"/>
+ <point x="1022" y="1525"/>
+ <point x="800" y="1525" type="curve" smooth="yes"/>
+ <point x="675" y="1525"/>
+ <point x="508" y="1455"/>
+ <point x="427" y="1393" type="curve"/>
+ <point x="413" y="1156" type="line"/>
+ <point x="508" y="1235"/>
+ <point x="621" y="1282"/>
+ <point x="721" y="1282" type="curve" smooth="yes"/>
+ <point x="811" y="1282"/>
+ <point x="846" y="1238"/>
+ <point x="846" y="1189" type="curve" smooth="yes"/>
+ <point x="846" y="1109"/>
+ <point x="760" y="1086"/>
+ <point x="650" y="956" type="curve" smooth="yes"/>
+ <point x="564" y="855"/>
+ <point x="490" y="703"/>
+ <point x="438" y="495" type="curve"/>
+ </contour>
+ <contour>
+ <point x="306" y="116" type="curve" smooth="yes"/>
+ <point x="306" y="35"/>
+ <point x="367" y="-25"/>
+ <point x="453" y="-25" type="curve" smooth="yes"/>
+ <point x="571" y="-25"/>
+ <point x="666" y="71"/>
+ <point x="666" y="181" type="curve" smooth="yes"/>
+ <point x="666" y="261"/>
+ <point x="607" y="322"/>
+ <point x="520" y="322" type="curve" smooth="yes"/>
+ <point x="403" y="322"/>
+ <point x="306" y="226"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetpsnames.ufo/glyphs/Q_uotM_rk.glif b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/Q_uotM_rk.glif
new file mode 100644
index 0000000..f33fd18
--- /dev/null
+++ b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/Q_uotM_rk.glif
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="QuotMrk" format="2">
+ <advance width="1065"/>
+ <unicode hex="0022"/>
+ <outline>
+ <contour>
+ <point x="648" y="1035" type="line"/>
+ <point x="687" y="1174"/>
+ <point x="726" y="1326"/>
+ <point x="816" y="1569" type="curve"/>
+ <point x="571" y="1569" type="line"/>
+ <point x="541" y="1326"/>
+ <point x="503" y="1174"/>
+ <point x="473" y="1035" type="curve"/>
+ </contour>
+ <contour>
+ <point x="1008" y="1035" type="line"/>
+ <point x="1047" y="1174"/>
+ <point x="1086" y="1326"/>
+ <point x="1176" y="1569" type="curve"/>
+ <point x="931" y="1569" type="line"/>
+ <point x="901" y="1326"/>
+ <point x="863" y="1174"/>
+ <point x="833" y="1035" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetpsnames.ufo/glyphs/R_everseS_olidus.glif b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/R_everseS_olidus.glif
new file mode 100644
index 0000000..0068c20
--- /dev/null
+++ b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/R_everseS_olidus.glif
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="ReverseSolidus" format="2">
+ <advance width="1060"/>
+ <unicode hex="005C"/>
+ <outline>
+ <contour>
+ <point x="344" y="1584" type="line"/>
+ <point x="719" y="-243" type="line"/>
+ <point x="949" y="-243" type="line"/>
+ <point x="574" y="1584" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetpsnames.ufo/glyphs/R_tC_urlyB_rac.glif b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/R_tC_urlyB_rac.glif
new file mode 100644
index 0000000..726adad
--- /dev/null
+++ b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/R_tC_urlyB_rac.glif
@@ -0,0 +1,47 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="RtCurlyBrac" format="2">
+ <advance width="1020"/>
+ <unicode hex="007D"/>
+ <outline>
+ <contour>
+ <point x="442" y="1395" type="line"/>
+ <point x="513" y="1366"/>
+ <point x="611" y="1344"/>
+ <point x="611" y="1296" type="curve" smooth="yes"/>
+ <point x="611" y="1200"/>
+ <point x="515" y="837"/>
+ <point x="515" y="782" type="curve" smooth="yes"/>
+ <point x="515" y="743"/>
+ <point x="633" y="649"/>
+ <point x="633" y="613" type="curve" smooth="yes"/>
+ <point x="633" y="573"/>
+ <point x="465" y="486"/>
+ <point x="429" y="441" type="curve" smooth="yes"/>
+ <point x="403" y="407"/>
+ <point x="300" y="-59"/>
+ <point x="255" y="-99" type="curve" smooth="yes"/>
+ <point x="230" y="-121"/>
+ <point x="97" y="-158"/>
+ <point x="25" y="-177" type="curve"/>
+ <point x="17" y="-406" type="line"/>
+ <point x="160" y="-379"/>
+ <point x="377" y="-330"/>
+ <point x="439" y="-282" type="curve" smooth="yes"/>
+ <point x="532" y="-211"/>
+ <point x="666" y="374"/>
+ <point x="696" y="406" type="curve" smooth="yes"/>
+ <point x="734" y="446"/>
+ <point x="947" y="559"/>
+ <point x="947" y="616" type="curve" smooth="yes"/>
+ <point x="947" y="676"/>
+ <point x="796" y="783"/>
+ <point x="796" y="819" type="curve" smooth="yes"/>
+ <point x="796" y="880"/>
+ <point x="896" y="1288"/>
+ <point x="896" y="1453" type="curve" smooth="yes"/>
+ <point x="896" y="1529"/>
+ <point x="709" y="1591"/>
+ <point x="549" y="1624" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetpsnames.ufo/glyphs/R_tP_aren.glif b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/R_tP_aren.glif
new file mode 100644
index 0000000..544faff
--- /dev/null
+++ b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/R_tP_aren.glif
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="RtParen" format="2">
+ <advance width="840"/>
+ <unicode hex="0029"/>
+ <outline>
+ <contour>
+ <point x="476" y="1411" type="line"/>
+ <point x="572" y="1290"/>
+ <point x="616" y="1127"/>
+ <point x="616" y="944" type="curve" smooth="yes"/>
+ <point x="616" y="832"/>
+ <point x="599" y="712"/>
+ <point x="569" y="589" type="curve" smooth="yes"/>
+ <point x="491" y="275"/>
+ <point x="333" y="48"/>
+ <point x="75" y="-198" type="curve"/>
+ <point x="163" y="-406" type="line"/>
+ <point x="509" y="-124"/>
+ <point x="743" y="206"/>
+ <point x="844" y="609" type="curve" smooth="yes"/>
+ <point x="876" y="735"/>
+ <point x="891" y="858"/>
+ <point x="891" y="973" type="curve" smooth="yes"/>
+ <point x="891" y="1252"/>
+ <point x="803" y="1487"/>
+ <point x="649" y="1624" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetpsnames.ufo/glyphs/R_tS_qrB_rac.glif b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/R_tS_qrB_rac.glif
new file mode 100644
index 0000000..804527d
--- /dev/null
+++ b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/R_tS_qrB_rac.glif
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="RtSqrBrac" format="2">
+ <advance width="830"/>
+ <unicode hex="005D"/>
+ <outline>
+ <contour>
+ <point x="503" y="-406" type="line"/>
+ <point x="994" y="1584" type="line"/>
+ <point x="474" y="1584" type="line"/>
+ <point x="423" y="1376" type="line"/>
+ <point x="663" y="1376" type="line"/>
+ <point x="275" y="-198" type="line"/>
+ <point x="35" y="-198" type="line"/>
+ <point x="-17" y="-406" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetpsnames.ufo/glyphs/S_emicolon.glif b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/S_emicolon.glif
new file mode 100644
index 0000000..1c9af02
--- /dev/null
+++ b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/S_emicolon.glif
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Semicolon" format="2">
+ <advance width="690"/>
+ <unicode hex="003B"/>
+ <outline>
+ <contour>
+ <point x="137" y="49" type="line"/>
+ <point x="297" y="49" type="line"/>
+ <point x="276" y="-34"/>
+ <point x="192" y="-151"/>
+ <point x="59" y="-262" type="curve"/>
+ <point x="187" y="-332" type="line"/>
+ <point x="337" y="-222"/>
+ <point x="539" y="-11"/>
+ <point x="539" y="165" type="curve" smooth="yes"/>
+ <point x="539" y="262"/>
+ <point x="495" y="337"/>
+ <point x="379" y="337" type="curve" smooth="yes"/>
+ <point x="266" y="337"/>
+ <point x="187" y="252"/>
+ <point x="169" y="178" type="curve" smooth="yes"/>
+ </contour>
+ <contour>
+ <point x="319" y="710" type="curve" smooth="yes"/>
+ <point x="319" y="629"/>
+ <point x="380" y="569"/>
+ <point x="466" y="569" type="curve" smooth="yes"/>
+ <point x="584" y="569"/>
+ <point x="679" y="665"/>
+ <point x="679" y="775" type="curve" smooth="yes"/>
+ <point x="679" y="855"/>
+ <point x="620" y="916"/>
+ <point x="533" y="916" type="curve" smooth="yes"/>
+ <point x="416" y="916"/>
+ <point x="319" y="820"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetpsnames.ufo/glyphs/S_olidus.glif b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/S_olidus.glif
new file mode 100644
index 0000000..0bac67c
--- /dev/null
+++ b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/S_olidus.glif
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Solidus" format="2">
+ <advance width="1060"/>
+ <unicode hex="002F"/>
+ <outline>
+ <contour>
+ <point x="1164" y="1584" type="line"/>
+ <point x="-120" y="-243" type="line"/>
+ <point x="129" y="-243" type="line"/>
+ <point x="1414" y="1584" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetpsnames.ufo/glyphs/S_pace.glif b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/S_pace.glif
new file mode 100644
index 0000000..c49f0f2
--- /dev/null
+++ b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/S_pace.glif
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Space" format="2">
+ <advance width="530"/>
+ <unicode hex="0020"/>
+ <outline/>
+</glyph>
diff --git a/tests/reference/ufo/psfsetpsnames.ufo/glyphs/T_ilde.glif b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/T_ilde.glif
new file mode 100644
index 0000000..26c105f
--- /dev/null
+++ b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/T_ilde.glif
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Tilde" format="2">
+ <advance width="1155"/>
+ <unicode hex="007E"/>
+ <outline>
+ <contour>
+ <point x="190" y="342" type="line"/>
+ <point x="207" y="390"/>
+ <point x="249" y="431"/>
+ <point x="327" y="431" type="curve" smooth="yes"/>
+ <point x="502" y="431"/>
+ <point x="676" y="327"/>
+ <point x="906" y="327" type="curve" smooth="yes"/>
+ <point x="1065" y="327"/>
+ <point x="1206" y="507"/>
+ <point x="1238" y="634" type="curve"/>
+ <point x="1093" y="634" type="line"/>
+ <point x="1074" y="588"/>
+ <point x="1031" y="535"/>
+ <point x="948" y="535" type="curve" smooth="yes"/>
+ <point x="712" y="535"/>
+ <point x="580" y="639"/>
+ <point x="359" y="639" type="curve" smooth="yes"/>
+ <point x="203" y="639"/>
+ <point x="75" y="462"/>
+ <point x="45" y="342" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetpsnames.ufo/glyphs/V_ertL_ine.glif b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/V_ertL_ine.glif
new file mode 100644
index 0000000..204ac86
--- /dev/null
+++ b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/V_ertL_ine.glif
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="VertLine" format="2">
+ <advance width="670"/>
+ <unicode hex="007C"/>
+ <outline>
+ <contour>
+ <point x="574" y="1594" type="line"/>
+ <point x="83" y="-396" type="line"/>
+ <point x="293" y="-396" type="line"/>
+ <point x="784" y="1594" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetpsnames.ufo/glyphs/_notdef.glif b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/_notdef.glif
new file mode 100644
index 0000000..a3e9354
--- /dev/null
+++ b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/_notdef.glif
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name=".notdef" format="2">
+ <advance width="1400"/>
+ <outline>
+ <contour>
+ <point x="100" y="0" type="line"/>
+ <point x="1300" y="0" type="line"/>
+ <point x="1300" y="1800" type="line"/>
+ <point x="100" y="1800" type="line"/>
+ </contour>
+ <contour>
+ <point x="150" y="1750" type="line"/>
+ <point x="1250" y="1750" type="line"/>
+ <point x="1250" y="50" type="line"/>
+ <point x="150" y="50" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetpsnames.ufo/glyphs/_null.glif b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/_null.glif
new file mode 100644
index 0000000..0b9caa6
--- /dev/null
+++ b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/_null.glif
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name=".null" format="2">
+ <outline/>
+</glyph>
diff --git a/tests/reference/ufo/psfsetpsnames.ufo/glyphs/contents.plist b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/contents.plist
new file mode 100644
index 0000000..ad2aa41
--- /dev/null
+++ b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/contents.plist
@@ -0,0 +1,232 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>.notdef</key>
+ <string>_notdef.glif</string>
+ <key>.null</key>
+ <string>_null.glif</string>
+ <key>Ampersand</key>
+ <string>A_mpersand.glif</string>
+ <key>Apos</key>
+ <string>A_pos.glif</string>
+ <key>Asterisk</key>
+ <string>A_sterisk.glif</string>
+ <key>AtSgn</key>
+ <string>A_tS_gn.glif</string>
+ <key>CircumAccent</key>
+ <string>C_ircumA_ccent.glif</string>
+ <key>Colon</key>
+ <string>C_olon.glif</string>
+ <key>CombAcute</key>
+ <string>C_ombA_cute.glif</string>
+ <key>CombCircum</key>
+ <string>C_ombC_ircum.glif</string>
+ <key>CombDiaer</key>
+ <string>C_ombD_iaer.glif</string>
+ <key>CombGrave</key>
+ <string>C_ombG_rave.glif</string>
+ <key>CombRingAbv</key>
+ <string>C_ombR_ingA_bv.glif</string>
+ <key>CombTilde</key>
+ <string>C_ombT_ilde.glif</string>
+ <key>Comma</key>
+ <string>C_omma.glif</string>
+ <key>DigitEight</key>
+ <string>D_igitE_ight.glif</string>
+ <key>DigitFive</key>
+ <string>D_igitF_ive.glif</string>
+ <key>DigitFour</key>
+ <string>D_igitF_our.glif</string>
+ <key>DigitNine</key>
+ <string>D_igitN_ine.glif</string>
+ <key>DigitOne</key>
+ <string>D_igitO_ne.glif</string>
+ <key>DigitSeven</key>
+ <string>D_igitS_even.glif</string>
+ <key>DigitSix</key>
+ <string>D_igitS_ix.glif</string>
+ <key>DigitThree</key>
+ <string>D_igitT_hree.glif</string>
+ <key>DigitTwo</key>
+ <string>D_igitT_wo.glif</string>
+ <key>DigitZero</key>
+ <string>D_igitZ_ero.glif</string>
+ <key>DollarSgn</key>
+ <string>D_ollarS_gn.glif</string>
+ <key>DottedCirc</key>
+ <string>D_ottedC_irc.glif</string>
+ <key>EqSgn</key>
+ <string>E_qS_gn.glif</string>
+ <key>ExclamationMrk</key>
+ <string>E_xclamationM_rk.glif</string>
+ <key>FullStop</key>
+ <string>F_ullS_top.glif</string>
+ <key>GTSgn</key>
+ <string>G_T_S_gn.glif</string>
+ <key>GraveAccent</key>
+ <string>G_raveA_ccent.glif</string>
+ <key>Hyphen</key>
+ <string>H_yphen.glif</string>
+ <key>HyphenMinus</key>
+ <string>H_yphenM_inus.glif</string>
+ <key>Hyphen_Soft</key>
+ <string>H_yphen_S_oft.glif</string>
+ <key>LTSgn</key>
+ <string>L_T_S_gn.glif</string>
+ <key>LftCurlyBrac</key>
+ <string>L_ftC_urlyB_rac.glif</string>
+ <key>LftParen</key>
+ <string>L_ftP_aren.glif</string>
+ <key>LftSqrBrac</key>
+ <string>L_ftS_qrB_rac.glif</string>
+ <key>LowLine</key>
+ <string>L_owL_ine.glif</string>
+ <key>LtnCapA</key>
+ <string>L_tnC_apA_.glif</string>
+ <key>LtnCapADiaer</key>
+ <string>L_tnC_apA_D_iaer.glif</string>
+ <key>LtnCapB</key>
+ <string>L_tnC_apB_.glif</string>
+ <key>LtnCapC</key>
+ <string>L_tnC_apC_.glif</string>
+ <key>LtnCapD</key>
+ <string>L_tnC_apD_.glif</string>
+ <key>LtnCapE</key>
+ <string>L_tnC_apE_.glif</string>
+ <key>LtnCapF</key>
+ <string>L_tnC_apF_.glif</string>
+ <key>LtnCapG</key>
+ <string>L_tnC_apG_.glif</string>
+ <key>LtnCapH</key>
+ <string>L_tnC_apH_.glif</string>
+ <key>LtnCapI</key>
+ <string>L_tnC_apI_.glif</string>
+ <key>LtnCapJ</key>
+ <string>L_tnC_apJ_.glif</string>
+ <key>LtnCapK</key>
+ <string>L_tnC_apK_.glif</string>
+ <key>LtnCapL</key>
+ <string>L_tnC_apL_.glif</string>
+ <key>LtnCapM</key>
+ <string>L_tnC_apM_.glif</string>
+ <key>LtnCapN</key>
+ <string>L_tnC_apN_.glif</string>
+ <key>LtnCapO</key>
+ <string>L_tnC_apO_.glif</string>
+ <key>LtnCapP</key>
+ <string>L_tnC_apP_.glif</string>
+ <key>LtnCapQ</key>
+ <string>L_tnC_apQ_.glif</string>
+ <key>LtnCapR</key>
+ <string>L_tnC_apR_.glif</string>
+ <key>LtnCapS</key>
+ <string>L_tnC_apS_.glif</string>
+ <key>LtnCapT</key>
+ <string>L_tnC_apT_.glif</string>
+ <key>LtnCapU</key>
+ <string>L_tnC_apU_.glif</string>
+ <key>LtnCapV</key>
+ <string>L_tnC_apV_.glif</string>
+ <key>LtnCapW</key>
+ <string>L_tnC_apW_.glif</string>
+ <key>LtnCapX</key>
+ <string>L_tnC_apX_.glif</string>
+ <key>LtnCapY</key>
+ <string>L_tnC_apY_.glif</string>
+ <key>LtnSmA</key>
+ <string>L_tnS_mA_.glif</string>
+ <key>LtnSmAAcute</key>
+ <string>L_tnS_mA_A_cute.glif</string>
+ <key>LtnSmACircum</key>
+ <string>L_tnS_mA_C_ircum.glif</string>
+ <key>LtnSmADiaer</key>
+ <string>L_tnS_mA_D_iaer.glif</string>
+ <key>LtnSmAGrave</key>
+ <string>L_tnS_mA_G_rave.glif</string>
+ <key>LtnSmARingAbv</key>
+ <string>L_tnS_mA_R_ingA_bv.glif</string>
+ <key>LtnSmATilde</key>
+ <string>L_tnS_mA_T_ilde.glif</string>
+ <key>LtnSmB</key>
+ <string>L_tnS_mB_.glif</string>
+ <key>LtnSmC</key>
+ <string>L_tnS_mC_.glif</string>
+ <key>LtnSmD</key>
+ <string>L_tnS_mD_.glif</string>
+ <key>LtnSmE</key>
+ <string>L_tnS_mE_.glif</string>
+ <key>LtnSmF</key>
+ <string>L_tnS_mF_.glif</string>
+ <key>LtnSmG</key>
+ <string>L_tnS_mG_.glif</string>
+ <key>LtnSmH</key>
+ <string>L_tnS_mH_.glif</string>
+ <key>LtnSmI</key>
+ <string>L_tnS_mI_.glif</string>
+ <key>LtnSmJ</key>
+ <string>L_tnS_mJ_.glif</string>
+ <key>LtnSmK</key>
+ <string>L_tnS_mK_.glif</string>
+ <key>LtnSmL</key>
+ <string>L_tnS_mL_.glif</string>
+ <key>LtnSmM</key>
+ <string>L_tnS_mM_.glif</string>
+ <key>LtnSmN</key>
+ <string>L_tnS_mN_.glif</string>
+ <key>LtnSmO</key>
+ <string>L_tnS_mO_.glif</string>
+ <key>LtnSmP</key>
+ <string>L_tnS_mP_.glif</string>
+ <key>LtnSmQ</key>
+ <string>L_tnS_mQ_.glif</string>
+ <key>LtnSmR</key>
+ <string>L_tnS_mR_.glif</string>
+ <key>LtnSmS</key>
+ <string>L_tnS_mS_.glif</string>
+ <key>LtnSmT</key>
+ <string>L_tnS_mT_.glif</string>
+ <key>LtnSmU</key>
+ <string>L_tnS_mU_.glif</string>
+ <key>LtnSmV</key>
+ <string>L_tnS_mV_.glif</string>
+ <key>LtnSmW</key>
+ <string>L_tnS_mW_.glif</string>
+ <key>LtnSmX</key>
+ <string>L_tnS_mX_.glif</string>
+ <key>LtnSmY</key>
+ <string>L_tnS_mY_.glif</string>
+ <key>NonBreakingHyphen</key>
+ <string>N_onB_reakingH_yphen.glif</string>
+ <key>NumSgn</key>
+ <string>N_umS_gn.glif</string>
+ <key>PercentSgn</key>
+ <string>P_ercentS_gn.glif</string>
+ <key>PlusSgn</key>
+ <string>P_lusS_gn.glif</string>
+ <key>QstnMrk</key>
+ <string>Q_stnM_rk.glif</string>
+ <key>QuotMrk</key>
+ <string>Q_uotM_rk.glif</string>
+ <key>ReverseSolidus</key>
+ <string>R_everseS_olidus.glif</string>
+ <key>RtCurlyBrac</key>
+ <string>R_tC_urlyB_rac.glif</string>
+ <key>RtParen</key>
+ <string>R_tP_aren.glif</string>
+ <key>RtSqrBrac</key>
+ <string>R_tS_qrB_rac.glif</string>
+ <key>Semicolon</key>
+ <string>S_emicolon.glif</string>
+ <key>Solidus</key>
+ <string>S_olidus.glif</string>
+ <key>Space</key>
+ <string>S_pace.glif</string>
+ <key>Tilde</key>
+ <string>T_ilde.glif</string>
+ <key>VertLine</key>
+ <string>V_ertL_ine.glif</string>
+ <key>nonmarkingreturn</key>
+ <string>nonmarkingreturn.glif</string>
+</dict>
+</plist>
diff --git a/tests/reference/ufo/psfsetpsnames.ufo/glyphs/nonmarkingreturn.glif b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/nonmarkingreturn.glif
new file mode 100644
index 0000000..9a63f06
--- /dev/null
+++ b/tests/reference/ufo/psfsetpsnames.ufo/glyphs/nonmarkingreturn.glif
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="nonmarkingreturn" format="2">
+ <advance width="1004"/>
+ <outline/>
+</glyph>
diff --git a/tests/reference/ufo/psfsetpsnames.ufo/layercontents.plist b/tests/reference/ufo/psfsetpsnames.ufo/layercontents.plist
new file mode 100644
index 0000000..42b7482
--- /dev/null
+++ b/tests/reference/ufo/psfsetpsnames.ufo/layercontents.plist
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<array>
+ <array>
+ <string>public.default</string>
+ <string>glyphs</string>
+ </array>
+</array>
+</plist>
diff --git a/tests/reference/ufo/psfsetpsnames.ufo/lib.plist b/tests/reference/ufo/psfsetpsnames.ufo/lib.plist
new file mode 100644
index 0000000..28d3bd9
--- /dev/null
+++ b/tests/reference/ufo/psfsetpsnames.ufo/lib.plist
@@ -0,0 +1,368 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>com.schriftgestaltung.Glyphs.fontUserData</key>
+ <dict/>
+ <key>com.schriftgestaltung.appVersion</key>
+ <string>1161</string>
+ <key>com.schriftgestaltung.customName</key>
+ <string>Italic</string>
+ <key>com.schriftgestaltung.customParameter.GSFont.DisplayStrings</key>
+ <string/>
+ <key>com.schriftgestaltung.customParameter.GSFont.disablesAutomaticAlignment</key>
+ <true/>
+ <key>com.schriftgestaltung.customParameter.GSFont.disablesLastChange</key>
+ <true/>
+ <key>com.schriftgestaltung.customParameter.GSFont.useNiceNames</key>
+ <integer>0</integer>
+ <key>com.schriftgestaltung.customParameter.GSFontMaster.customValue</key>
+ <integer>0</integer>
+ <key>com.schriftgestaltung.customParameter.GSFontMaster.customValue1</key>
+ <integer>0</integer>
+ <key>com.schriftgestaltung.customParameter.GSFontMaster.customValue2</key>
+ <integer>0</integer>
+ <key>com.schriftgestaltung.customParameter.GSFontMaster.customValue3</key>
+ <integer>0</integer>
+ <key>com.schriftgestaltung.customParameter.GSFontMaster.iconName</key>
+ <string/>
+ <key>com.schriftgestaltung.customParameter.GSFontMaster.weightValue</key>
+ <integer>700</integer>
+ <key>com.schriftgestaltung.customParameter.GSFontMaster.widthValue</key>
+ <integer>100</integer>
+ <key>com.schriftgestaltung.disablesAutomaticAlignment</key>
+ <true/>
+ <key>com.schriftgestaltung.disablesLastChange</key>
+ <true/>
+ <key>com.schriftgestaltung.fontMasterOrder</key>
+ <integer>1</integer>
+ <key>com.schriftgestaltung.glyphOrder</key>
+ <array>
+ <string>.notdef</string>
+ <string>.null</string>
+ <string>nonmarkingreturn</string>
+ <string>Space</string>
+ <string>ExclamationMrk</string>
+ <string>QuotMrk</string>
+ <string>NumSgn</string>
+ <string>DollarSgn</string>
+ <string>PercentSgn</string>
+ <string>Ampersand</string>
+ <string>Apos</string>
+ <string>LftParen</string>
+ <string>RtParen</string>
+ <string>Asterisk</string>
+ <string>PlusSgn</string>
+ <string>Comma</string>
+ <string>HyphenMinus</string>
+ <string>FullStop</string>
+ <string>Solidus</string>
+ <string>DigitZero</string>
+ <string>DigitOne</string>
+ <string>DigitTwo</string>
+ <string>DigitThree</string>
+ <string>DigitFour</string>
+ <string>DigitFive</string>
+ <string>DigitSix</string>
+ <string>DigitSeven</string>
+ <string>DigitEight</string>
+ <string>DigitNine</string>
+ <string>Colon</string>
+ <string>Semicolon</string>
+ <string>LTSgn</string>
+ <string>EqSgn</string>
+ <string>GTSgn</string>
+ <string>QstnMrk</string>
+ <string>AtSgn</string>
+ <string>LtnCapA</string>
+ <string>LtnCapA.alt</string>
+ <string>LtnCapB</string>
+ <string>LtnCapC</string>
+ <string>LtnCapD</string>
+ <string>LtnCapE</string>
+ <string>LtnCapF</string>
+ <string>LtnCapG</string>
+ <string>LtnCapH</string>
+ <string>LtnCapI</string>
+ <string>LtnCapJ</string>
+ <string>LtnCapK</string>
+ <string>LtnCapL</string>
+ <string>LtnCapM</string>
+ <string>LtnCapN</string>
+ <string>LtnCapO</string>
+ <string>LtnCapP</string>
+ <string>LtnCapQ</string>
+ <string>LtnCapR</string>
+ <string>LtnCapS</string>
+ <string>LtnCapT</string>
+ <string>LtnCapU</string>
+ <string>LtnCapV</string>
+ <string>LtnCapW</string>
+ <string>LtnCapX</string>
+ <string>LtnCapY</string>
+ <string>LftSqrBrac</string>
+ <string>ReverseSolidus</string>
+ <string>RtSqrBrac</string>
+ <string>CircumAccent</string>
+ <string>LowLine</string>
+ <string>GraveAccent</string>
+ <string>LtnSmA</string>
+ <string>LtnSmB</string>
+ <string>LtnSmC</string>
+ <string>LtnSmD</string>
+ <string>LtnSmE</string>
+ <string>LtnSmF</string>
+ <string>LtnSmG</string>
+ <string>LtnSmH</string>
+ <string>LtnSmI</string>
+ <string>LtnSmJ</string>
+ <string>LtnSmK</string>
+ <string>LtnSmL</string>
+ <string>LtnSmM</string>
+ <string>LtnSmN</string>
+ <string>LtnSmO</string>
+ <string>LtnSmP</string>
+ <string>LtnSmQ</string>
+ <string>LtnSmR</string>
+ <string>LtnSmS</string>
+ <string>LtnSmT</string>
+ <string>LtnSmU</string>
+ <string>LtnSmV</string>
+ <string>LtnSmW</string>
+ <string>LtnSmX</string>
+ <string>LtnSmY</string>
+ <string>LftCurlyBrac</string>
+ <string>VertLine</string>
+ <string>RtCurlyBrac</string>
+ <string>Tilde</string>
+ <string>LtnCapADiaer</string>
+ <string>LtnSmAAcute</string>
+ <string>LtnSmAGrave</string>
+ <string>LtnSmACircum</string>
+ <string>LtnSmADiaer</string>
+ <string>LtnSmATilde</string>
+ <string>LtnSmARingAbv</string>
+ <string>DottedCirc</string>
+ <string>Hyphen</string>
+ <string>NonBreakingHyphen</string>
+ <string>Hyphen_Soft</string>
+ <string>CombAcute</string>
+ <string>CombGrave</string>
+ <string>CombCircum</string>
+ <string>CombTilde</string>
+ <string>CombDiaer</string>
+ <string>CombRingAbv</string>
+ </array>
+ <key>com.schriftgestaltung.keyboardIncrement</key>
+ <integer>1</integer>
+ <key>com.schriftgestaltung.weight</key>
+ <string>Bold</string>
+ <key>com.schriftgestaltung.weightValue</key>
+ <integer>700</integer>
+ <key>com.schriftgestaltung.width</key>
+ <string>Regular</string>
+ <key>com.schriftgestaltung.widthValue</key>
+ <integer>100</integer>
+ <key>org.sil.lcg.toneLetters</key>
+ <dict>
+ <key>contourWidth</key>
+ <integer>540</integer>
+ <key>dotSize</key>
+ <integer>280</integer>
+ <key>dotSpacing</key>
+ <integer>200</integer>
+ <key>glyphDepth</key>
+ <integer>-25</integer>
+ <key>glyphHeight</key>
+ <integer>1600</integer>
+ <key>italicAngle</key>
+ <integer>14</integer>
+ <key>marginDotLeft</key>
+ <integer>100</integer>
+ <key>marginDotRight</key>
+ <integer>140</integer>
+ <key>marginFlatLeft</key>
+ <integer>100</integer>
+ <key>marginFlatRight</key>
+ <integer>140</integer>
+ <key>marginPointLeft</key>
+ <integer>80</integer>
+ <key>marginPointRight</key>
+ <integer>120</integer>
+ <key>strokeThickness</key>
+ <integer>200</integer>
+ </dict>
+ <key>public.glyphOrder</key>
+ <array>
+ <string>.notdef</string>
+ <string>.null</string>
+ <string>nonmarkingreturn</string>
+ <string>Space</string>
+ <string>ExclamationMrk</string>
+ <string>QuotMrk</string>
+ <string>NumSgn</string>
+ <string>DollarSgn</string>
+ <string>PercentSgn</string>
+ <string>Ampersand</string>
+ <string>Apos</string>
+ <string>LftParen</string>
+ <string>RtParen</string>
+ <string>Asterisk</string>
+ <string>PlusSgn</string>
+ <string>Comma</string>
+ <string>HyphenMinus</string>
+ <string>FullStop</string>
+ <string>Solidus</string>
+ <string>DigitZero</string>
+ <string>DigitOne</string>
+ <string>DigitTwo</string>
+ <string>DigitThree</string>
+ <string>DigitFour</string>
+ <string>DigitFive</string>
+ <string>DigitSix</string>
+ <string>DigitSeven</string>
+ <string>DigitEight</string>
+ <string>DigitNine</string>
+ <string>Colon</string>
+ <string>Semicolon</string>
+ <string>LTSgn</string>
+ <string>EqSgn</string>
+ <string>GTSgn</string>
+ <string>QstnMrk</string>
+ <string>AtSgn</string>
+ <string>LtnCapA</string>
+ <string>LtnCapA.alt</string>
+ <string>LtnCapB</string>
+ <string>LtnCapC</string>
+ <string>LtnCapD</string>
+ <string>LtnCapE</string>
+ <string>LtnCapF</string>
+ <string>LtnCapG</string>
+ <string>LtnCapH</string>
+ <string>LtnCapI</string>
+ <string>LtnCapJ</string>
+ <string>LtnCapK</string>
+ <string>LtnCapL</string>
+ <string>LtnCapM</string>
+ <string>LtnCapN</string>
+ <string>LtnCapO</string>
+ <string>LtnCapP</string>
+ <string>LtnCapQ</string>
+ <string>LtnCapR</string>
+ <string>LtnCapS</string>
+ <string>LtnCapT</string>
+ <string>LtnCapU</string>
+ <string>LtnCapV</string>
+ <string>LtnCapW</string>
+ <string>LtnCapX</string>
+ <string>LtnCapY</string>
+ <string>LftSqrBrac</string>
+ <string>ReverseSolidus</string>
+ <string>RtSqrBrac</string>
+ <string>CircumAccent</string>
+ <string>LowLine</string>
+ <string>GraveAccent</string>
+ <string>LtnSmA</string>
+ <string>LtnSmB</string>
+ <string>LtnSmC</string>
+ <string>LtnSmD</string>
+ <string>LtnSmE</string>
+ <string>LtnSmF</string>
+ <string>LtnSmG</string>
+ <string>LtnSmH</string>
+ <string>LtnSmI</string>
+ <string>LtnSmJ</string>
+ <string>LtnSmK</string>
+ <string>LtnSmL</string>
+ <string>LtnSmM</string>
+ <string>LtnSmN</string>
+ <string>LtnSmO</string>
+ <string>LtnSmP</string>
+ <string>LtnSmQ</string>
+ <string>LtnSmR</string>
+ <string>LtnSmS</string>
+ <string>LtnSmT</string>
+ <string>LtnSmU</string>
+ <string>LtnSmV</string>
+ <string>LtnSmW</string>
+ <string>LtnSmX</string>
+ <string>LtnSmY</string>
+ <string>LftCurlyBrac</string>
+ <string>VertLine</string>
+ <string>RtCurlyBrac</string>
+ <string>Tilde</string>
+ <string>LtnCapADiaer</string>
+ <string>LtnSmAAcute</string>
+ <string>LtnSmAGrave</string>
+ <string>LtnSmACircum</string>
+ <string>LtnSmADiaer</string>
+ <string>LtnSmATilde</string>
+ <string>LtnSmARingAbv</string>
+ <string>DottedCirc</string>
+ <string>Hyphen</string>
+ <string>NonBreakingHyphen</string>
+ <string>Hyphen_Soft</string>
+ <string>CombAcute</string>
+ <string>CombGrave</string>
+ <string>CombCircum</string>
+ <string>CombTilde</string>
+ <string>CombDiaer</string>
+ <string>CombRingAbv</string>
+ </array>
+ <key>public.postscriptNames</key>
+ <dict>
+ <key>AcuteAccent</key>
+ <string>acute</string>
+ <key>Bullet</key>
+ <string>bullet</string>
+ <key>BulletOperator</key>
+ <string>uni2219</string>
+ <key>CircumAccent</key>
+ <string>asciicircum</string>
+ <key>CombAcute</key>
+ <string>acutecomb</string>
+ <key>DblAcuteAccent</key>
+ <string>hungarumlaut</string>
+ <key>HyphenMinus</key>
+ <string>hyphen</string>
+ <key>LtnCapAAcute</key>
+ <string>Aacute</string>
+ <key>LtnCapEAcute</key>
+ <string>Eacute</string>
+ <key>LtnCapIAcute</key>
+ <string>Iacute</string>
+ <key>LtnCapOAcute</key>
+ <string>Oacute</string>
+ <key>LtnCapUAcute</key>
+ <string>Uacute</string>
+ <key>LtnCapYAcute</key>
+ <string>Yacute</string>
+ <key>LtnSmAAcute</key>
+ <string>aacute</string>
+ <key>LtnSmEAcute</key>
+ <string>eacute</string>
+ <key>LtnSmIAcute</key>
+ <string>iacute</string>
+ <key>LtnSmOAcute</key>
+ <string>oacute</string>
+ <key>LtnSmUAcute</key>
+ <string>uacute</string>
+ <key>LtnSmYAcute</key>
+ <string>yacute</string>
+ <key>ModCircumAccent</key>
+ <string>circumflex</string>
+ <key>ReverseSolidus</key>
+ <string>backslash</string>
+ <key>SupOne</key>
+ <string>onesuperior</string>
+ <key>SupThree</key>
+ <string>threesuperior</string>
+ <key>VulgFracOneHalf</key>
+ <string>onehalf</string>
+ <key>VulgFracOneQuarter</key>
+ <string>onequarter</string>
+ <key>VulgFracThreeQuarters</key>
+ <string>threequarters</string>
+ </dict>
+</dict>
+</plist>
diff --git a/tests/reference/ufo/psfsetpsnames.ufo/metainfo.plist b/tests/reference/ufo/psfsetpsnames.ufo/metainfo.plist
new file mode 100644
index 0000000..aa10c5c
--- /dev/null
+++ b/tests/reference/ufo/psfsetpsnames.ufo/metainfo.plist
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>creator</key>
+ <string>org.sil.scripts.pysilfont</string>
+ <key>formatVersion</key>
+ <integer>3</integer>
+</dict>
+</plist>
diff --git a/tests/reference/ufo/psfsetunicodes.lg b/tests/reference/ufo/psfsetunicodes.lg
new file mode 100644
index 0000000..c1dac72
--- /dev/null
+++ b/tests/reference/ufo/psfsetunicodes.lg
@@ -0,0 +1,149 @@
+2021-06-29 14:42:23 Progress: Running: psfsetunicodes tests/input/font-psf-test/source/PsfTest-Italic.ufo -i tests/input/psfsetunicodes.csv -l local/testresults/ufo/psfsetunicodes.log -p loglevel=v -p checkfix=fix
+2021-06-29 14:42:23 Progress: Opening file for input: tests/input/psfsetunicodes.csv
+2021-06-29 14:42:23 Progress: Reading UFO: tests/input/font-psf-test/source/PsfTest-Italic.ufo
+2021-06-29 14:42:23 Info: Processing Glyph Layer 0: public.defaultglyphs
+2021-06-29 14:42:23 Progress: Checking fontinfo.plist metadata
+2021-06-29 14:42:23 Warning: openTypeOS2FamilyClass removed from fontinfo. Old value: [0, 0]
+2021-06-29 14:42:23 Info: Types: Old - list, New - NoneType
+2021-06-29 14:42:23 Warning: year removed from fontinfo. Old value: 2021
+2021-06-29 14:42:23 Info: Types: Old - int, New - NoneType
+2021-06-29 14:42:23 Warning: capHeight updated Old value: 1485.3, new value: 1485
+2021-06-29 14:42:23 Info: Types: Old - float, New - int
+2021-06-29 14:42:23 Warning: styleMapFamilyName uppdated Old value: Psf test, new value: Psf Test
+2021-06-29 14:42:23 Info: Types: Old - string, New - string
+2021-06-29 14:42:23 Warning: openTypeOS2TypoLineGap updated Old value: 1, new value: 0
+2021-06-29 14:42:23 Info: Types: Old - int, New - int
+2021-06-29 14:42:23 Warning: openTypeOS2Selection added New value: [7]
+2021-06-29 14:42:23 Info: Types: Old - NoneType, New - list
+2021-06-29 14:42:23 Warning: openTypeNamePreferredFamilyName updated Old value: Psf Testing, new value: Psf Test
+2021-06-29 14:42:23 Info: Types: Old - string, New - string
+2021-06-29 14:42:23 Progress: Checking lib.plist metadata
+2021-06-29 14:42:23 Warning: com.schriftgestaltung.disablesAutomaticAlignment deleted - obsolete key Old value: True
+2021-06-29 14:42:23 Info: Types: Old - bool, New - NoneType
+2021-06-29 14:42:23 Warning: com.schriftgestaltung.disablesLastChange deleted - obsolete key Old value: True
+2021-06-29 14:42:23 Info: Types: Old - bool, New - NoneType
+2021-06-29 14:42:23 Progress: Check & fix results:- Errors: 0, Changes made: 9, Other warnings: 0
+2021-06-29 14:42:23 Progress: See log file for details
+2021-06-29 14:42:23 Info: Glyph 'Notthere' not in font; line 3 ignored.
+2021-06-29 14:42:23 Progress: Processing font for output
+2021-06-29 14:42:23 Progress: Output UFO already exists - reading for comparison
+2021-06-29 14:42:23 Progress: Writing font to local/testresults/ufo/psfsetunicodes.ufo
+2021-06-29 14:42:23 Info: Processing glyphs directory
+2021-06-29 14:42:23 Verbose: A_mpersand.glif
+2021-06-29 14:42:23 Verbose: A_pos.glif
+2021-06-29 14:42:23 Verbose: A_sterisk.glif
+2021-06-29 14:42:23 Verbose: A_tS_gn.glif
+2021-06-29 14:42:23 Verbose: C_ircumA_ccent.glif
+2021-06-29 14:42:23 Verbose: C_olon.glif
+2021-06-29 14:42:23 Verbose: C_ombA_cute.glif
+2021-06-29 14:42:23 Verbose: C_ombC_ircum.glif
+2021-06-29 14:42:23 Verbose: C_ombD_iaer.glif
+2021-06-29 14:42:23 Verbose: C_ombG_rave.glif
+2021-06-29 14:42:23 Verbose: C_ombR_ingA_bv.glif
+2021-06-29 14:42:23 Verbose: C_ombT_ilde.glif
+2021-06-29 14:42:23 Verbose: C_omma.glif
+2021-06-29 14:42:23 Verbose: D_igitE_ight.glif
+2021-06-29 14:42:23 Verbose: D_igitF_ive.glif
+2021-06-29 14:42:23 Verbose: D_igitF_our.glif
+2021-06-29 14:42:23 Verbose: D_igitN_ine.glif
+2021-06-29 14:42:23 Verbose: D_igitO_ne.glif
+2021-06-29 14:42:23 Verbose: D_igitS_even.glif
+2021-06-29 14:42:23 Verbose: D_igitS_ix.glif
+2021-06-29 14:42:23 Verbose: D_igitT_hree.glif
+2021-06-29 14:42:23 Verbose: D_igitT_wo.glif
+2021-06-29 14:42:23 Verbose: D_igitZ_ero.glif
+2021-06-29 14:42:23 Verbose: D_ollarS_gn.glif
+2021-06-29 14:42:23 Verbose: D_ottedC_irc.glif
+2021-06-29 14:42:23 Verbose: E_qS_gn.glif
+2021-06-29 14:42:23 Verbose: E_xclamationM_rk.glif
+2021-06-29 14:42:23 Verbose: F_ullS_top.glif
+2021-06-29 14:42:23 Verbose: G_T_S_gn.glif
+2021-06-29 14:42:23 Verbose: G_raveA_ccent.glif
+2021-06-29 14:42:23 Verbose: H_yphen.glif
+2021-06-29 14:42:23 Verbose: H_yphenM_inus.glif
+2021-06-29 14:42:23 Verbose: H_yphen_S_oft.glif
+2021-06-29 14:42:23 Verbose: L_T_S_gn.glif
+2021-06-29 14:42:23 Verbose: L_ftC_urlyB_rac.glif
+2021-06-29 14:42:23 Verbose: L_ftP_aren.glif
+2021-06-29 14:42:23 Verbose: L_ftS_qrB_rac.glif
+2021-06-29 14:42:23 Verbose: L_owL_ine.glif
+2021-06-29 14:42:23 Verbose: L_tnC_apA_.glif
+2021-06-29 14:42:23 Verbose: L_tnC_apA_D_iaer.glif
+2021-06-29 14:42:23 Verbose: L_tnC_apB_.glif
+2021-06-29 14:42:23 Verbose: L_tnC_apC_.glif
+2021-06-29 14:42:23 Verbose: L_tnC_apD_.glif
+2021-06-29 14:42:23 Verbose: L_tnC_apE_.glif
+2021-06-29 14:42:23 Verbose: L_tnC_apF_.glif
+2021-06-29 14:42:23 Verbose: L_tnC_apG_.glif
+2021-06-29 14:42:23 Verbose: L_tnC_apH_.glif
+2021-06-29 14:42:23 Verbose: L_tnC_apI_.glif
+2021-06-29 14:42:23 Verbose: L_tnC_apJ_.glif
+2021-06-29 14:42:23 Verbose: L_tnC_apK_.glif
+2021-06-29 14:42:23 Verbose: L_tnC_apL_.glif
+2021-06-29 14:42:23 Verbose: L_tnC_apM_.glif
+2021-06-29 14:42:23 Verbose: L_tnC_apN_.glif
+2021-06-29 14:42:23 Verbose: L_tnC_apO_.glif
+2021-06-29 14:42:23 Verbose: L_tnC_apP_.glif
+2021-06-29 14:42:23 Verbose: L_tnC_apQ_.glif
+2021-06-29 14:42:23 Verbose: L_tnC_apR_.glif
+2021-06-29 14:42:23 Verbose: L_tnC_apS_.glif
+2021-06-29 14:42:23 Verbose: L_tnC_apT_.glif
+2021-06-29 14:42:23 Verbose: L_tnC_apU_.glif
+2021-06-29 14:42:23 Verbose: L_tnC_apV_.glif
+2021-06-29 14:42:23 Verbose: L_tnC_apW_.glif
+2021-06-29 14:42:23 Verbose: L_tnC_apX_.glif
+2021-06-29 14:42:23 Verbose: L_tnC_apY_.glif
+2021-06-29 14:42:23 Verbose: L_tnS_mA_.glif
+2021-06-29 14:42:23 Verbose: L_tnS_mA_A_cute.glif
+2021-06-29 14:42:23 Verbose: L_tnS_mA_C_ircum.glif
+2021-06-29 14:42:23 Verbose: L_tnS_mA_D_iaer.glif
+2021-06-29 14:42:23 Verbose: L_tnS_mA_G_rave.glif
+2021-06-29 14:42:23 Verbose: L_tnS_mA_R_ingA_bv.glif
+2021-06-29 14:42:23 Verbose: L_tnS_mA_T_ilde.glif
+2021-06-29 14:42:23 Verbose: L_tnS_mB_.glif
+2021-06-29 14:42:23 Verbose: L_tnS_mC_.glif
+2021-06-29 14:42:23 Verbose: L_tnS_mD_.glif
+2021-06-29 14:42:23 Verbose: L_tnS_mE_.glif
+2021-06-29 14:42:23 Verbose: L_tnS_mF_.glif
+2021-06-29 14:42:23 Verbose: L_tnS_mG_.glif
+2021-06-29 14:42:23 Verbose: L_tnS_mH_.glif
+2021-06-29 14:42:23 Verbose: L_tnS_mI_.glif
+2021-06-29 14:42:23 Verbose: L_tnS_mJ_.glif
+2021-06-29 14:42:23 Verbose: L_tnS_mK_.glif
+2021-06-29 14:42:23 Verbose: L_tnS_mL_.glif
+2021-06-29 14:42:23 Verbose: L_tnS_mM_.glif
+2021-06-29 14:42:23 Verbose: L_tnS_mN_.glif
+2021-06-29 14:42:23 Verbose: L_tnS_mO_.glif
+2021-06-29 14:42:23 Verbose: L_tnS_mP_.glif
+2021-06-29 14:42:23 Verbose: L_tnS_mQ_.glif
+2021-06-29 14:42:23 Verbose: L_tnS_mR_.glif
+2021-06-29 14:42:23 Verbose: L_tnS_mS_.glif
+2021-06-29 14:42:23 Verbose: L_tnS_mT_.glif
+2021-06-29 14:42:23 Verbose: L_tnS_mU_.glif
+2021-06-29 14:42:23 Verbose: L_tnS_mV_.glif
+2021-06-29 14:42:23 Verbose: L_tnS_mW_.glif
+2021-06-29 14:42:23 Verbose: L_tnS_mX_.glif
+2021-06-29 14:42:23 Verbose: L_tnS_mY_.glif
+2021-06-29 14:42:23 Verbose: N_onB_reakingH_yphen.glif
+2021-06-29 14:42:23 Verbose: N_umS_gn.glif
+2021-06-29 14:42:23 Verbose: P_ercentS_gn.glif
+2021-06-29 14:42:23 Verbose: P_lusS_gn.glif
+2021-06-29 14:42:23 Verbose: Q_stnM_rk.glif
+2021-06-29 14:42:23 Verbose: Q_uotM_rk.glif
+2021-06-29 14:42:23 Verbose: R_everseS_olidus.glif
+2021-06-29 14:42:23 Verbose: R_tC_urlyB_rac.glif
+2021-06-29 14:42:23 Verbose: R_tP_aren.glif
+2021-06-29 14:42:23 Verbose: R_tS_qrB_rac.glif
+2021-06-29 14:42:23 Verbose: S_emicolon.glif
+2021-06-29 14:42:23 Verbose: S_olidus.glif
+2021-06-29 14:42:23 Verbose: S_pace.glif
+2021-06-29 14:42:23 Verbose: T_ilde.glif
+2021-06-29 14:42:23 Verbose: V_ertL_ine.glif
+2021-06-29 14:42:23 Verbose: _notdef.glif
+2021-06-29 14:42:23 Verbose: _null.glif
+2021-06-29 14:42:23 Verbose: contents.plist
+2021-06-29 14:42:23 Verbose: nonmarkingreturn.glif
+2021-06-29 14:42:23 Verbose: fontinfo.plist
+2021-06-29 14:42:23 Verbose: layercontents.plist
+2021-06-29 14:42:23 Verbose: lib.plist
+2021-06-29 14:42:23 Verbose: metainfo.plist
diff --git a/tests/reference/ufo/psfsetunicodes.ufo/fontinfo.plist b/tests/reference/ufo/psfsetunicodes.ufo/fontinfo.plist
new file mode 100644
index 0000000..92c6d24
--- /dev/null
+++ b/tests/reference/ufo/psfsetunicodes.ufo/fontinfo.plist
@@ -0,0 +1,240 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>ascender</key>
+ <integer>2100</integer>
+ <key>capHeight</key>
+ <integer>1485</integer>
+ <key>copyright</key>
+ <string>Copyright (c) 2004-2021 SIL International</string>
+ <key>descender</key>
+ <integer>-550</integer>
+ <key>familyName</key>
+ <string>Psf Test</string>
+ <key>italicAngle</key>
+ <integer>-14</integer>
+ <key>openTypeHeadCreated</key>
+ <string>2021/06/29 14:43:52</string>
+ <key>openTypeHheaAscender</key>
+ <integer>2100</integer>
+ <key>openTypeHheaDescender</key>
+ <integer>-550</integer>
+ <key>openTypeHheaLineGap</key>
+ <integer>0</integer>
+ <key>openTypeNameDescription</key>
+ <string>Copyright (c) 2004-2021 SIL International</string>
+ <key>openTypeNameDesigner</key>
+ <string>Victor Gaultney, Annie Olsen, Julie Remington, Don Collingsworth, Eric Hays, Becca Hirsbrunner</string>
+ <key>openTypeNameDesignerURL</key>
+ <string>http://scripts.sil.org/</string>
+ <key>openTypeNameLicense</key>
+ <string>Copyright (c) 2004-2021 SIL International (http://www.sil.org/) with Reserved Font Names "Andika" and "SIL".
+
+This Font Software is licensed under the SIL Open Font License, Version 1.1. This license is copied below, and is also available with a FAQ at: http://scripts.sil.org/OFL
+
+
+-----------------------------------------------------------
+SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
+-----------------------------------------------------------
+
+PREAMBLE
+The goals of the Open Font License (OFL) are to stimulate worldwide development of collaborative font projects, to support the font creation efforts of academic and linguistic communities, and to provide a free and open framework in which fonts may be shared and improved in partnership with others.
+
+The OFL allows the licensed fonts to be used, studied, modified and redistributed freely as long as they are not sold by themselves. The fonts, including any derivative works, can be bundled, embedded, redistributed and/or sold with any software provided that any reserved names are not used by derivative works. The fonts and derivatives, however, cannot be released under any other type of license. The requirement for fonts to remain under this license does not apply to any document created using the fonts or their derivatives.
+
+DEFINITIONS
+"Font Software" refers to the set of files released by the Copyright Holder(s) under this license and clearly marked as such. This may include source files, build scripts and documentation.
+
+"Reserved Font Name" refers to any names specified as such after the copyright statement(s).
+
+"Original Version" refers to the collection of Font Software components as distributed by the Copyright Holder(s).
+
+"Modified Version" refers to any derivative made by adding to, deleting, or substituting -- in part or in whole -- any of the components of the Original Version, by changing formats or by porting the Font Software to a new environment.
+
+"Author" refers to any designer, engineer, programmer, technical writer or other person who contributed to the Font Software.
+
+PERMISSION &amp; CONDITIONS
+Permission is hereby granted, free of charge, to any person obtaining a copy of the Font Software, to use, study, copy, merge, embed, modify, redistribute, and sell modified and unmodified copies of the Font Software, subject to the following conditions:
+
+1) Neither the Font Software nor any of its individual components, in Original or Modified Versions, may be sold by itself.
+
+2) Original or Modified Versions of the Font Software may be bundled, redistributed and/or sold with any software, provided that each copy contains the above copyright notice and this license. These can be included either as stand-alone text files, human-readable headers or in the appropriate machine-readable metadata fields within text or binary files as long as those fields can be easily viewed by the user.
+
+3) No Modified Version of the Font Software may use the Reserved Font Name(s) unless explicit written permission is granted by the corresponding Copyright Holder. This restriction only applies to the primary font name as presented to the users.
+
+4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font Software shall not be used to promote, endorse or advertise any Modified Version, except to acknowledge the contribution(s) of the Copyright Holder(s) and the Author(s) or with their explicit written permission.
+
+5) The Font Software, modified or unmodified, in part or in whole, must be distributed entirely under this license, and must not be distributed under any other license. The requirement for fonts to remain under this license does not apply to any document created using the Font Software.
+
+TERMINATION
+This license becomes null and void if any of the above conditions are not met.
+
+DISCLAIMER
+THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM OTHER DEALINGS IN THE FONT SOFTWARE.</string>
+ <key>openTypeNameLicenseURL</key>
+ <string>http://scripts.sil.org/OFL</string>
+ <key>openTypeNameManufacturer</key>
+ <string>SIL International</string>
+ <key>openTypeNameManufacturerURL</key>
+ <string>http://scripts.sil.org</string>
+ <key>openTypeNamePreferredFamilyName</key>
+ <string>Psf Test</string>
+ <key>openTypeNamePreferredSubfamilyName</key>
+ <string>Italic</string>
+ <key>openTypeNameUniqueID</key>
+ <string>SIL International: Psf Test Italic: 2022</string>
+ <key>openTypeNameVersion</key>
+ <string>Version 5.550</string>
+ <key>openTypeOS2CodePageRanges</key>
+ <array>
+ <integer>0</integer>
+ <integer>1</integer>
+ <integer>2</integer>
+ <integer>4</integer>
+ <integer>7</integer>
+ <integer>8</integer>
+ </array>
+ <key>openTypeOS2Panose</key>
+ <array>
+ <integer>2</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ </array>
+ <key>openTypeOS2Selection</key>
+ <array>
+ <integer>7</integer>
+ </array>
+ <key>openTypeOS2StrikeoutPosition</key>
+ <integer>700</integer>
+ <key>openTypeOS2StrikeoutSize</key>
+ <integer>100</integer>
+ <key>openTypeOS2SubscriptXOffset</key>
+ <integer>0</integer>
+ <key>openTypeOS2SubscriptXSize</key>
+ <integer>1433</integer>
+ <key>openTypeOS2SubscriptYOffset</key>
+ <integer>286</integer>
+ <key>openTypeOS2SubscriptYSize</key>
+ <integer>1331</integer>
+ <key>openTypeOS2SuperscriptXOffset</key>
+ <integer>0</integer>
+ <key>openTypeOS2SuperscriptXSize</key>
+ <integer>1433</integer>
+ <key>openTypeOS2SuperscriptYOffset</key>
+ <integer>976</integer>
+ <key>openTypeOS2SuperscriptYSize</key>
+ <integer>1331</integer>
+ <key>openTypeOS2Type</key>
+ <array/>
+ <key>openTypeOS2TypoAscender</key>
+ <integer>2100</integer>
+ <key>openTypeOS2TypoDescender</key>
+ <integer>-550</integer>
+ <key>openTypeOS2TypoLineGap</key>
+ <integer>0</integer>
+ <key>openTypeOS2UnicodeRanges</key>
+ <array>
+ <integer>0</integer>
+ <integer>1</integer>
+ <integer>6</integer>
+ <integer>7</integer>
+ <integer>31</integer>
+ <integer>33</integer>
+ <integer>35</integer>
+ <integer>36</integer>
+ <integer>37</integer>
+ <integer>38</integer>
+ <integer>39</integer>
+ <integer>40</integer>
+ <integer>45</integer>
+ <integer>46</integer>
+ <integer>47</integer>
+ <integer>57</integer>
+ <integer>60</integer>
+ <integer>62</integer>
+ <integer>64</integer>
+ <integer>67</integer>
+ <integer>69</integer>
+ <integer>89</integer>
+ </array>
+ <key>openTypeOS2VendorID</key>
+ <string>SIL</string>
+ <key>openTypeOS2WeightClass</key>
+ <integer>400</integer>
+ <key>openTypeOS2WidthClass</key>
+ <integer>5</integer>
+ <key>openTypeOS2WinAscent</key>
+ <integer>2100</integer>
+ <key>openTypeOS2WinDescent</key>
+ <integer>550</integer>
+ <key>postscriptBlueValues</key>
+ <array>
+ <integer>-490</integer>
+ <integer>-490</integer>
+ <integer>-25</integer>
+ <integer>0</integer>
+ <integer>1020</integer>
+ <integer>1040</integer>
+ <integer>1455</integer>
+ <integer>1485</integer>
+ <integer>1600</integer>
+ <integer>1620</integer>
+ </array>
+ <key>postscriptFontName</key>
+ <string>PsfTest-Italic</string>
+ <key>postscriptFullName</key>
+ <string>Psf Test Italic</string>
+ <key>postscriptStemSnapH</key>
+ <array>
+ <integer>140</integer>
+ <integer>145</integer>
+ <integer>150</integer>
+ <integer>155</integer>
+ <integer>160</integer>
+ <integer>165</integer>
+ <integer>170</integer>
+ <integer>175</integer>
+ <integer>185</integer>
+ <integer>270</integer>
+ </array>
+ <key>postscriptStemSnapV</key>
+ <array>
+ <integer>165</integer>
+ <integer>180</integer>
+ <integer>185</integer>
+ <integer>190</integer>
+ <integer>195</integer>
+ <integer>200</integer>
+ <integer>205</integer>
+ <integer>270</integer>
+ </array>
+ <key>postscriptUnderlinePosition</key>
+ <integer>-110</integer>
+ <key>postscriptUnderlineThickness</key>
+ <integer>80</integer>
+ <key>styleMapFamilyName</key>
+ <string>Psf Test</string>
+ <key>styleMapStyleName</key>
+ <string>italic</string>
+ <key>styleName</key>
+ <string>Italic</string>
+ <key>trademark</key>
+ <string>Andika is a trademark of SIL International.</string>
+ <key>unitsPerEm</key>
+ <integer>2048</integer>
+ <key>versionMajor</key>
+ <integer>5</integer>
+ <key>versionMinor</key>
+ <integer>550</integer>
+ <key>xHeight</key>
+ <integer>1040</integer>
+</dict>
+</plist>
diff --git a/tests/reference/ufo/psfsetunicodes.ufo/glyphs/A_mpersand.glif b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/A_mpersand.glif
new file mode 100644
index 0000000..4108ea7
--- /dev/null
+++ b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/A_mpersand.glif
@@ -0,0 +1,61 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Ampersand" format="2">
+ <advance width="1202"/>
+ <unicode hex="002A"/>
+ <outline>
+ <contour>
+ <point x="1054" y="559" type="line"/>
+ <point x="949" y="395"/>
+ <point x="616" y="147"/>
+ <point x="441" y="147" type="curve" smooth="yes"/>
+ <point x="318" y="147"/>
+ <point x="256" y="224"/>
+ <point x="256" y="314" type="curve" smooth="yes"/>
+ <point x="256" y="453"/>
+ <point x="369" y="575"/>
+ <point x="590" y="725" type="curve" smooth="yes"/>
+ <point x="836" y="892"/>
+ <point x="1022" y="1067"/>
+ <point x="1022" y="1223" type="curve" smooth="yes"/>
+ <point x="1022" y="1363"/>
+ <point x="894" y="1455"/>
+ <point x="762" y="1455" type="curve" smooth="yes"/>
+ <point x="504" y="1455"/>
+ <point x="378" y="1328"/>
+ <point x="378" y="1114" type="curve" smooth="yes"/>
+ <point x="378" y="953"/>
+ <point x="514" y="771"/>
+ <point x="614" y="559" type="curve" smooth="yes"/>
+ <point x="783" y="198"/>
+ <point x="906" y="-25"/>
+ <point x="958" y="-25" type="curve" smooth="yes"/>
+ <point x="993" y="-25"/>
+ <point x="1087" y="37"/>
+ <point x="1132" y="69" type="curve"/>
+ <point x="1046" y="108"/>
+ <point x="926" y="291"/>
+ <point x="756" y="666" type="curve" smooth="yes"/>
+ <point x="665" y="866"/>
+ <point x="544" y="1029"/>
+ <point x="544" y="1149" type="curve" smooth="yes"/>
+ <point x="544" y="1252"/>
+ <point x="632" y="1323"/>
+ <point x="724" y="1323" type="curve" smooth="yes"/>
+ <point x="794" y="1323"/>
+ <point x="858" y="1266"/>
+ <point x="858" y="1193" type="curve" smooth="yes"/>
+ <point x="858" y="1107"/>
+ <point x="743" y="1004"/>
+ <point x="492" y="826" type="curve" smooth="yes"/>
+ <point x="182" y="606"/>
+ <point x="73" y="439"/>
+ <point x="73" y="288" type="curve" smooth="yes"/>
+ <point x="73" y="113"/>
+ <point x="195" y="-25"/>
+ <point x="383" y="-25" type="curve" smooth="yes"/>
+ <point x="656" y="-25"/>
+ <point x="1009" y="269"/>
+ <point x="1126" y="426" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetunicodes.ufo/glyphs/A_pos.glif b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/A_pos.glif
new file mode 100644
index 0000000..deb1650
--- /dev/null
+++ b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/A_pos.glif
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Apos" format="2">
+ <advance width="585"/>
+ <unicode hex="0027"/>
+ <outline>
+ <contour>
+ <point x="560" y="1024" type="line"/>
+ <point x="599" y="1162"/>
+ <point x="643" y="1312"/>
+ <point x="732" y="1553" type="curve"/>
+ <point x="527" y="1553" type="line"/>
+ <point x="498" y="1312"/>
+ <point x="465" y="1162"/>
+ <point x="435" y="1024" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetunicodes.ufo/glyphs/A_sterisk.glif b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/A_sterisk.glif
new file mode 100644
index 0000000..b2f15bd
--- /dev/null
+++ b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/A_sterisk.glif
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Asterisk" format="2">
+ <advance width="1008"/>
+ <unicode hex="0026"/>
+ <outline>
+ <contour>
+ <point x="745" y="1568" type="line"/>
+ <point x="733" y="1438"/>
+ <point x="725" y="1359"/>
+ <point x="707" y="1274" type="curve"/>
+ <point x="644" y="1317"/>
+ <point x="587" y="1359"/>
+ <point x="498" y="1436" type="curve"/>
+ <point x="392" y="1313" type="line"/>
+ <point x="505" y="1264"/>
+ <point x="575" y="1236"/>
+ <point x="643" y="1196" type="curve"/>
+ <point x="556" y="1153"/>
+ <point x="474" y="1117"/>
+ <point x="340" y="1063" type="curve"/>
+ <point x="379" y="941" type="line"/>
+ <point x="504" y="1021"/>
+ <point x="584" y="1072"/>
+ <point x="668" y="1117" type="curve"/>
+ <point x="645" y="1034"/>
+ <point x="619" y="954"/>
+ <point x="575" y="823" type="curve"/>
+ <point x="715" y="823" type="line"/>
+ <point x="727" y="954"/>
+ <point x="741" y="1031"/>
+ <point x="758" y="1117" type="curve"/>
+ <point x="821" y="1073"/>
+ <point x="878" y="1032"/>
+ <point x="968" y="956" type="curve"/>
+ <point x="1073" y="1078" type="line"/>
+ <point x="959" y="1126"/>
+ <point x="890" y="1155"/>
+ <point x="823" y="1196" type="curve"/>
+ <point x="909" y="1236"/>
+ <point x="990" y="1273"/>
+ <point x="1126" y="1328" type="curve"/>
+ <point x="1086" y="1450" type="line"/>
+ <point x="961" y="1368"/>
+ <point x="883" y="1321"/>
+ <point x="797" y="1274" type="curve"/>
+ <point x="819" y="1359"/>
+ <point x="845" y="1438"/>
+ <point x="890" y="1568" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetunicodes.ufo/glyphs/A_tS_gn.glif b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/A_tS_gn.glif
new file mode 100644
index 0000000..2cd2542
--- /dev/null
+++ b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/A_tS_gn.glif
@@ -0,0 +1,104 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="AtSgn" format="2">
+ <advance width="1682"/>
+ <unicode hex="0040"/>
+ <outline>
+ <contour>
+ <point x="1082" y="-10" type="line"/>
+ <point x="980" y="-69"/>
+ <point x="889" y="-93"/>
+ <point x="796" y="-93" type="curve" smooth="yes"/>
+ <point x="507" y="-93"/>
+ <point x="301" y="104"/>
+ <point x="301" y="414" type="curve" smooth="yes"/>
+ <point x="301" y="476"/>
+ <point x="309" y="543"/>
+ <point x="327" y="613" type="curve" smooth="yes"/>
+ <point x="425" y="1003"/>
+ <point x="782" y="1245"/>
+ <point x="1110" y="1245" type="curve" smooth="yes"/>
+ <point x="1433" y="1245"/>
+ <point x="1590" y="1060"/>
+ <point x="1590" y="813" type="curve" smooth="yes"/>
+ <point x="1590" y="760"/>
+ <point x="1582" y="705"/>
+ <point x="1568" y="647" type="curve" smooth="yes"/>
+ <point x="1510" y="413"/>
+ <point x="1365" y="309"/>
+ <point x="1297" y="309" type="curve" smooth="yes"/>
+ <point x="1261" y="309"/>
+ <point x="1238" y="344"/>
+ <point x="1238" y="420" type="curve" smooth="yes"/>
+ <point x="1238" y="468"/>
+ <point x="1247" y="533"/>
+ <point x="1268" y="617" type="curve" smooth="yes"/>
+ <point x="1354" y="960" type="line"/>
+ <point x="1276" y="995"/>
+ <point x="1155" y="1019"/>
+ <point x="1074" y="1019" type="curve" smooth="yes"/>
+ <point x="910" y="1019"/>
+ <point x="790" y="962"/>
+ <point x="673" y="828" type="curve" smooth="yes"/>
+ <point x="607" y="751"/>
+ <point x="554" y="650"/>
+ <point x="524" y="529" type="curve" smooth="yes"/>
+ <point x="514" y="488"/>
+ <point x="509" y="450"/>
+ <point x="509" y="416" type="curve" smooth="yes"/>
+ <point x="509" y="259"/>
+ <point x="609" y="179"/>
+ <point x="719" y="179" type="curve" smooth="yes"/>
+ <point x="836" y="179"/>
+ <point x="1017" y="359"/>
+ <point x="1099" y="480" type="curve"/>
+ <point x="1093" y="446"/>
+ <point x="1089" y="413"/>
+ <point x="1089" y="382" type="curve" smooth="yes"/>
+ <point x="1089" y="264"/>
+ <point x="1136" y="176"/>
+ <point x="1233" y="176" type="curve" smooth="yes"/>
+ <point x="1408" y="176"/>
+ <point x="1635" y="331"/>
+ <point x="1716" y="656" type="curve" smooth="yes"/>
+ <point x="1732" y="722"/>
+ <point x="1740" y="784"/>
+ <point x="1740" y="843" type="curve" smooth="yes"/>
+ <point x="1740" y="1161"/>
+ <point x="1513" y="1377"/>
+ <point x="1153" y="1377" type="curve" smooth="yes"/>
+ <point x="738" y="1377"/>
+ <point x="310" y="1143"/>
+ <point x="175" y="603" type="curve" smooth="yes"/>
+ <point x="155" y="522"/>
+ <point x="145" y="446"/>
+ <point x="145" y="375" type="curve" smooth="yes"/>
+ <point x="145" y="-5"/>
+ <point x="417" y="-230"/>
+ <point x="747" y="-230" type="curve" smooth="yes"/>
+ <point x="882" y="-230"/>
+ <point x="1044" y="-184"/>
+ <point x="1161" y="-116" type="curve"/>
+ </contour>
+ <contour>
+ <point x="1141" y="706" type="line"/>
+ <point x="1075" y="570"/>
+ <point x="856" y="314"/>
+ <point x="766" y="314" type="curve" smooth="yes"/>
+ <point x="712" y="314"/>
+ <point x="669" y="362"/>
+ <point x="669" y="459" type="curve" smooth="yes"/>
+ <point x="669" y="491"/>
+ <point x="674" y="530"/>
+ <point x="685" y="573" type="curve" smooth="yes"/>
+ <point x="704" y="649"/>
+ <point x="739" y="726"/>
+ <point x="780" y="774" type="curve" smooth="yes"/>
+ <point x="859" y="868"/>
+ <point x="943" y="887"/>
+ <point x="1011" y="887" type="curve" smooth="yes"/>
+ <point x="1085" y="887"/>
+ <point x="1148" y="868"/>
+ <point x="1177" y="853" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetunicodes.ufo/glyphs/C_ircumA_ccent.glif b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/C_ircumA_ccent.glif
new file mode 100644
index 0000000..91ab811
--- /dev/null
+++ b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/C_ircumA_ccent.glif
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="CircumAccent" format="2">
+ <advance width="830"/>
+ <unicode hex="005E"/>
+ <anchor x="705" y="1635" name="U"/>
+ <outline>
+ <contour>
+ <point x="316" y="1147" type="line"/>
+ <point x="660" y="1421" type="line"/>
+ <point x="866" y="1147" type="line"/>
+ <point x="1015" y="1147" type="line"/>
+ <point x="761" y="1568" type="line"/>
+ <point x="591" y="1568" type="line"/>
+ <point x="166" y="1147" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetunicodes.ufo/glyphs/C_olon.glif b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/C_olon.glif
new file mode 100644
index 0000000..bcccfc2
--- /dev/null
+++ b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/C_olon.glif
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Colon" format="2">
+ <advance width="620"/>
+ <unicode hex="003A"/>
+ <outline>
+ <contour>
+ <point x="314" y="758" type="curve" smooth="yes"/>
+ <point x="314" y="696"/>
+ <point x="365" y="642"/>
+ <point x="430" y="642" type="curve" smooth="yes"/>
+ <point x="514" y="642"/>
+ <point x="590" y="712"/>
+ <point x="590" y="792" type="curve" smooth="yes"/>
+ <point x="590" y="854"/>
+ <point x="540" y="907"/>
+ <point x="476" y="907" type="curve" smooth="yes"/>
+ <point x="393" y="907"/>
+ <point x="314" y="837"/>
+ </contour>
+ <contour>
+ <point x="148" y="90" type="curve" smooth="yes"/>
+ <point x="148" y="28"/>
+ <point x="198" y="-25"/>
+ <point x="263" y="-25" type="curve" smooth="yes"/>
+ <point x="347" y="-25"/>
+ <point x="424" y="45"/>
+ <point x="424" y="125" type="curve" smooth="yes"/>
+ <point x="424" y="186"/>
+ <point x="374" y="240"/>
+ <point x="309" y="240" type="curve" smooth="yes"/>
+ <point x="225" y="240"/>
+ <point x="148" y="170"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetunicodes.ufo/glyphs/C_ombA_cute.glif b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/C_ombA_cute.glif
new file mode 100644
index 0000000..a7607fe
--- /dev/null
+++ b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/C_ombA_cute.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="CombAcute" format="2">
+ <unicode hex="0301"/>
+ <anchor x="-221" y="1635" name="U"/>
+ <anchor x="-355" y="1100" name="_U"/>
+ <outline>
+ <contour>
+ <point x="-99" y="1568" type="line"/>
+ <point x="-524" y="1147" type="line"/>
+ <point x="-354" y="1147" type="line"/>
+ <point x="150" y="1568" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetunicodes.ufo/glyphs/C_ombC_ircum.glif b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/C_ombC_ircum.glif
new file mode 100644
index 0000000..6614f85
--- /dev/null
+++ b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/C_ombC_ircum.glif
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="CombCircum" format="2">
+ <unicode hex="0302"/>
+ <anchor x="-221" y="1635" name="U"/>
+ <anchor x="-320" y="1100" name="_U"/>
+ <outline>
+ <contour>
+ <point x="-619" y="1147" type="line"/>
+ <point x="-275" y="1421" type="line"/>
+ <point x="-69" y="1147" type="line"/>
+ <point x="80" y="1147" type="line"/>
+ <point x="-174" y="1568" type="line"/>
+ <point x="-344" y="1568" type="line"/>
+ <point x="-769" y="1147" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetunicodes.ufo/glyphs/C_ombD_iaer.glif b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/C_ombD_iaer.glif
new file mode 100644
index 0000000..d6b35b7
--- /dev/null
+++ b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/C_ombD_iaer.glif
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="CombDiaer" format="2">
+ <unicode hex="0308"/>
+ <anchor x="-253" y="1505" name="U"/>
+ <anchor x="-350" y="1100" name="_U"/>
+ <outline>
+ <contour>
+ <point x="39" y="1338" type="curve" smooth="yes"/>
+ <point x="39" y="1399"/>
+ <point x="-7" y="1450"/>
+ <point x="-72" y="1450" type="curve" smooth="yes"/>
+ <point x="-167" y="1450"/>
+ <point x="-229" y="1372"/>
+ <point x="-229" y="1299" type="curve" smooth="yes"/>
+ <point x="-229" y="1238"/>
+ <point x="-182" y="1186"/>
+ <point x="-118" y="1186" type="curve" smooth="yes"/>
+ <point x="-33" y="1186"/>
+ <point x="39" y="1259"/>
+ </contour>
+ <contour>
+ <point x="-381" y="1338" type="curve" smooth="yes"/>
+ <point x="-381" y="1399"/>
+ <point x="-427" y="1450"/>
+ <point x="-492" y="1450" type="curve" smooth="yes"/>
+ <point x="-587" y="1450"/>
+ <point x="-649" y="1372"/>
+ <point x="-649" y="1299" type="curve" smooth="yes"/>
+ <point x="-649" y="1238"/>
+ <point x="-602" y="1186"/>
+ <point x="-538" y="1186" type="curve" smooth="yes"/>
+ <point x="-453" y="1186"/>
+ <point x="-381" y="1259"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetunicodes.ufo/glyphs/C_ombG_rave.glif b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/C_ombG_rave.glif
new file mode 100644
index 0000000..8869bb9
--- /dev/null
+++ b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/C_ombG_rave.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="CombGrave" format="2">
+ <unicode hex="0300"/>
+ <anchor x="-201" y="1635" name="U"/>
+ <anchor x="-335" y="1100" name="_U"/>
+ <outline>
+ <contour>
+ <point x="-619" y="1568" type="line"/>
+ <point x="-284" y="1147" type="line"/>
+ <point x="-134" y="1147" type="line"/>
+ <point x="-409" y="1568" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetunicodes.ufo/glyphs/C_ombR_ingA_bv.glif b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/C_ombR_ingA_bv.glif
new file mode 100644
index 0000000..38232a0
--- /dev/null
+++ b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/C_ombR_ingA_bv.glif
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="CombRingAbv" format="2">
+ <unicode hex="030A"/>
+ <anchor x="-221" y="1635" name="U"/>
+ <anchor x="-385" y="1100" name="_U"/>
+ <outline>
+ <contour>
+ <point x="-377" y="1259" type="curve" smooth="yes"/>
+ <point x="-427" y="1259"/>
+ <point x="-456" y="1287"/>
+ <point x="-456" y="1329" type="curve" smooth="yes"/>
+ <point x="-456" y="1400"/>
+ <point x="-393" y="1455"/>
+ <point x="-328" y="1455" type="curve" smooth="yes"/>
+ <point x="-278" y="1455"/>
+ <point x="-248" y="1428"/>
+ <point x="-248" y="1385" type="curve" smooth="yes"/>
+ <point x="-248" y="1314"/>
+ <point x="-312" y="1259"/>
+ </contour>
+ <contour>
+ <point x="-573" y="1320" type="curve" smooth="yes"/>
+ <point x="-573" y="1224"/>
+ <point x="-498" y="1147"/>
+ <point x="-395" y="1147" type="curve" smooth="yes"/>
+ <point x="-257" y="1147"/>
+ <point x="-131" y="1263"/>
+ <point x="-131" y="1394" type="curve" smooth="yes"/>
+ <point x="-131" y="1491"/>
+ <point x="-206" y="1568"/>
+ <point x="-310" y="1568" type="curve" smooth="yes"/>
+ <point x="-448" y="1568"/>
+ <point x="-573" y="1451"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetunicodes.ufo/glyphs/C_ombT_ilde.glif b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/C_ombT_ilde.glif
new file mode 100644
index 0000000..f79322e
--- /dev/null
+++ b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/C_ombT_ilde.glif
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="CombTilde" format="2">
+ <unicode hex="0303"/>
+ <anchor x="-290" y="1475" name="U"/>
+ <anchor x="-385" y="1100" name="_U"/>
+ <outline>
+ <contour>
+ <point x="-646" y="1181" type="line"/>
+ <point x="-629" y="1229"/>
+ <point x="-589" y="1269"/>
+ <point x="-540" y="1269" type="curve" smooth="yes"/>
+ <point x="-503" y="1269"/>
+ <point x="-466" y="1253"/>
+ <point x="-398" y="1218" type="curve" smooth="yes"/>
+ <point x="-344" y="1190"/>
+ <point x="-296" y="1171"/>
+ <point x="-243" y="1171" type="curve" smooth="yes"/>
+ <point x="-120" y="1171"/>
+ <point x="-15" y="1286"/>
+ <point x="16" y="1411" type="curve"/>
+ <point x="-89" y="1411" type="line"/>
+ <point x="-107" y="1366"/>
+ <point x="-147" y="1323"/>
+ <point x="-194" y="1323" type="curve" smooth="yes"/>
+ <point x="-236" y="1323"/>
+ <point x="-273" y="1342"/>
+ <point x="-338" y="1370" type="curve" smooth="yes"/>
+ <point x="-401" y="1397"/>
+ <point x="-442" y="1421"/>
+ <point x="-498" y="1421" type="curve" smooth="yes"/>
+ <point x="-617" y="1421"/>
+ <point x="-721" y="1300"/>
+ <point x="-751" y="1181" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetunicodes.ufo/glyphs/C_omma.glif b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/C_omma.glif
new file mode 100644
index 0000000..80f2d6e
--- /dev/null
+++ b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/C_omma.glif
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Comma" format="2">
+ <advance width="630"/>
+ <outline>
+ <contour>
+ <point x="137" y="49" type="line"/>
+ <point x="277" y="49" type="line"/>
+ <point x="252" y="-50"/>
+ <point x="145" y="-169"/>
+ <point x="73" y="-225" type="curve"/>
+ <point x="163" y="-265" type="line"/>
+ <point x="280" y="-175"/>
+ <point x="431" y="-28"/>
+ <point x="431" y="118" type="curve" smooth="yes"/>
+ <point x="431" y="193"/>
+ <point x="378" y="245"/>
+ <point x="311" y="245" type="curve" smooth="yes"/>
+ <point x="254" y="245"/>
+ <point x="190" y="209"/>
+ <point x="161" y="147" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetunicodes.ufo/glyphs/D_igitE_ight.glif b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/D_igitE_ight.glif
new file mode 100644
index 0000000..262f860
--- /dev/null
+++ b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/D_igitE_ight.glif
@@ -0,0 +1,63 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitEight" format="2">
+ <advance width="1180"/>
+ <unicode hex="0038"/>
+ <anchor x="515" y="-100" name="L"/>
+ <anchor x="922" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="542" y="-25" type="curve" smooth="yes"/>
+ <point x="839" y="-25"/>
+ <point x="1160" y="170"/>
+ <point x="1160" y="475" type="curve" smooth="yes"/>
+ <point x="1160" y="626"/>
+ <point x="1068" y="733"/>
+ <point x="988" y="779" type="curve"/>
+ <point x="1155" y="860"/>
+ <point x="1270" y="970"/>
+ <point x="1270" y="1151" type="curve" smooth="yes"/>
+ <point x="1270" y="1340"/>
+ <point x="1102" y="1455"/>
+ <point x="901" y="1455" type="curve" smooth="yes"/>
+ <point x="620" y="1455"/>
+ <point x="348" y="1292"/>
+ <point x="348" y="1018" type="curve" smooth="yes"/>
+ <point x="348" y="891"/>
+ <point x="427" y="814"/>
+ <point x="483" y="779" type="curve"/>
+ <point x="297" y="706"/>
+ <point x="115" y="549"/>
+ <point x="115" y="325" type="curve" smooth="yes"/>
+ <point x="115" y="111"/>
+ <point x="317" y="-25"/>
+ </contour>
+ <contour>
+ <point x="750" y="848" type="curve" smooth="yes"/>
+ <point x="628" y="848"/>
+ <point x="541" y="917"/>
+ <point x="541" y="1029" type="curve" smooth="yes"/>
+ <point x="541" y="1205"/>
+ <point x="704" y="1299"/>
+ <point x="862" y="1299" type="curve" smooth="yes"/>
+ <point x="985" y="1299"/>
+ <point x="1076" y="1235"/>
+ <point x="1076" y="1128" type="curve" smooth="yes"/>
+ <point x="1076" y="955"/>
+ <point x="907" y="848"/>
+ </contour>
+ <contour>
+ <point x="564" y="142" type="curve" smooth="yes"/>
+ <point x="413" y="142"/>
+ <point x="322" y="225"/>
+ <point x="322" y="350" type="curve" smooth="yes"/>
+ <point x="322" y="557"/>
+ <point x="520" y="696"/>
+ <point x="712" y="696" type="curve" smooth="yes"/>
+ <point x="864" y="696"/>
+ <point x="961" y="602"/>
+ <point x="961" y="476" type="curve" smooth="yes"/>
+ <point x="961" y="266"/>
+ <point x="753" y="142"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetunicodes.ufo/glyphs/D_igitF_ive.glif b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/D_igitF_ive.glif
new file mode 100644
index 0000000..a224838
--- /dev/null
+++ b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/D_igitF_ive.glif
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitFive" format="2">
+ <advance width="1180"/>
+ <unicode hex="0035"/>
+ <anchor x="515" y="-100" name="L"/>
+ <anchor x="922" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1296" y="1431" type="line"/>
+ <point x="491" y="1431" type="line"/>
+ <point x="302" y="671" type="line"/>
+ <point x="438" y="718"/>
+ <point x="537" y="735"/>
+ <point x="643" y="735" type="curve" smooth="yes"/>
+ <point x="784" y="735"/>
+ <point x="933" y="660"/>
+ <point x="933" y="508" type="curve" smooth="yes"/>
+ <point x="933" y="273"/>
+ <point x="710" y="152"/>
+ <point x="497" y="152" type="curve" smooth="yes"/>
+ <point x="357" y="152"/>
+ <point x="263" y="195"/>
+ <point x="170" y="284" type="curve"/>
+ <point x="89" y="78" type="line"/>
+ <point x="195" y="2"/>
+ <point x="326" y="-25"/>
+ <point x="481" y="-25" type="curve" smooth="yes"/>
+ <point x="807" y="-25"/>
+ <point x="1129" y="190"/>
+ <point x="1129" y="546" type="curve" smooth="yes"/>
+ <point x="1129" y="757"/>
+ <point x="951" y="911"/>
+ <point x="702" y="911" type="curve" smooth="yes"/>
+ <point x="629" y="911"/>
+ <point x="576" y="906"/>
+ <point x="544" y="902" type="curve"/>
+ <point x="635" y="1264" type="line"/>
+ <point x="1020" y="1264" type="line" smooth="yes"/>
+ <point x="1104" y="1264"/>
+ <point x="1179" y="1260"/>
+ <point x="1250" y="1245" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetunicodes.ufo/glyphs/D_igitF_our.glif b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/D_igitF_our.glif
new file mode 100644
index 0000000..eeccb48
--- /dev/null
+++ b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/D_igitF_our.glif
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitFour" format="2">
+ <advance width="1180"/>
+ <unicode hex="0034"/>
+ <anchor x="522" y="-100" name="L"/>
+ <anchor x="929" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1161" y="387" type="line"/>
+ <point x="1199" y="539" type="line"/>
+ <point x="1009" y="539" type="line"/>
+ <point x="1236" y="1450" type="line"/>
+ <point x="1026" y="1450" type="line"/>
+ <point x="144" y="539" type="line"/>
+ <point x="106" y="387" type="line"/>
+ <point x="781" y="387" type="line"/>
+ <point x="685" y="0" type="line"/>
+ <point x="875" y="0" type="line"/>
+ <point x="971" y="387" type="line"/>
+ </contour>
+ <contour>
+ <point x="985" y="1205" type="line"/>
+ <point x="819" y="539" type="line"/>
+ <point x="337" y="539" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetunicodes.ufo/glyphs/D_igitN_ine.glif b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/D_igitN_ine.glif
new file mode 100644
index 0000000..191cd79
--- /dev/null
+++ b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/D_igitN_ine.glif
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitNine" format="2">
+ <advance width="1180"/>
+ <unicode hex="0039"/>
+ <anchor x="515" y="-100" name="L"/>
+ <anchor x="922" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="157" y="94" type="line"/>
+ <point x="208" y="29"/>
+ <point x="355" y="-25"/>
+ <point x="473" y="-25" type="curve" smooth="yes"/>
+ <point x="999" y="-25"/>
+ <point x="1267" y="520"/>
+ <point x="1267" y="982" type="curve" smooth="yes"/>
+ <point x="1267" y="1248"/>
+ <point x="1127" y="1455"/>
+ <point x="866" y="1455" type="curve" smooth="yes"/>
+ <point x="596" y="1455"/>
+ <point x="303" y="1269"/>
+ <point x="303" y="932" type="curve" smooth="yes"/>
+ <point x="303" y="761"/>
+ <point x="425" y="574"/>
+ <point x="661" y="574" type="curve" smooth="yes"/>
+ <point x="852" y="574"/>
+ <point x="1036" y="683"/>
+ <point x="1172" y="840" type="curve"/>
+ <point x="1121" y="922" type="line"/>
+ <point x="1019" y="810"/>
+ <point x="872" y="745"/>
+ <point x="717" y="745" type="curve" smooth="yes"/>
+ <point x="584" y="745"/>
+ <point x="498" y="833"/>
+ <point x="498" y="956" type="curve" smooth="yes"/>
+ <point x="498" y="1146"/>
+ <point x="638" y="1284"/>
+ <point x="821" y="1284" type="curve" smooth="yes"/>
+ <point x="998" y="1284"/>
+ <point x="1073" y="1119"/>
+ <point x="1073" y="956" type="curve" smooth="yes"/>
+ <point x="1073" y="455"/>
+ <point x="760" y="147"/>
+ <point x="496" y="147" type="curve" smooth="yes"/>
+ <point x="410" y="147"/>
+ <point x="298" y="209"/>
+ <point x="249" y="285" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetunicodes.ufo/glyphs/D_igitO_ne.glif b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/D_igitO_ne.glif
new file mode 100644
index 0000000..a639774
--- /dev/null
+++ b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/D_igitO_ne.glif
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitOne" format="2">
+ <advance width="1180"/>
+ <unicode hex="0031"/>
+ <anchor x="515" y="-100" name="L"/>
+ <anchor x="922" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1021" y="167" type="line"/>
+ <point x="706" y="167" type="line"/>
+ <point x="1026" y="1450" type="line"/>
+ <point x="856" y="1450" type="line"/>
+ <point x="459" y="1243" type="line"/>
+ <point x="440" y="1066" type="line"/>
+ <point x="782" y="1235" type="line"/>
+ <point x="516" y="167" type="line"/>
+ <point x="201" y="167" type="line"/>
+ <point x="160" y="0" type="line"/>
+ <point x="980" y="0" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetunicodes.ufo/glyphs/D_igitS_even.glif b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/D_igitS_even.glif
new file mode 100644
index 0000000..68c6ef6
--- /dev/null
+++ b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/D_igitS_even.glif
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitSeven" format="2">
+ <advance width="1180"/>
+ <unicode hex="0037"/>
+ <anchor x="515" y="-100" name="L"/>
+ <anchor x="922" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="420" y="0" type="line"/>
+ <point x="661" y="450"/>
+ <point x="972" y="877"/>
+ <point x="1367" y="1274" type="curve"/>
+ <point x="1406" y="1431" type="line"/>
+ <point x="386" y="1431" type="line"/>
+ <point x="341" y="1245" type="line"/>
+ <point x="421" y="1260"/>
+ <point x="538" y="1264"/>
+ <point x="726" y="1264" type="curve" smooth="yes"/>
+ <point x="1126" y="1264" type="line"/>
+ <point x="774" y="889"/>
+ <point x="517" y="555"/>
+ <point x="215" y="0" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetunicodes.ufo/glyphs/D_igitS_ix.glif b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/D_igitS_ix.glif
new file mode 100644
index 0000000..b6be793
--- /dev/null
+++ b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/D_igitS_ix.glif
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitSix" format="2">
+ <advance width="1180"/>
+ <unicode hex="0036"/>
+ <anchor x="515" y="-100" name="L"/>
+ <anchor x="922" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1313" y="1347" type="line"/>
+ <point x="1248" y="1418"/>
+ <point x="1135" y="1455"/>
+ <point x="1017" y="1455" type="curve" smooth="yes"/>
+ <point x="481" y="1454"/>
+ <point x="208" y="915"/>
+ <point x="208" y="475" type="curve" smooth="yes"/>
+ <point x="208" y="167"/>
+ <point x="392" y="-25"/>
+ <point x="623" y="-25" type="curve" smooth="yes"/>
+ <point x="947" y="-25"/>
+ <point x="1183" y="169"/>
+ <point x="1183" y="517" type="curve" smooth="yes"/>
+ <point x="1183" y="709"/>
+ <point x="1029" y="887"/>
+ <point x="793" y="887" type="curve" smooth="yes"/>
+ <point x="636" y="887"/>
+ <point x="432" y="784"/>
+ <point x="317" y="633" type="curve"/>
+ <point x="364" y="559" type="line"/>
+ <point x="471" y="660"/>
+ <point x="596" y="716"/>
+ <point x="751" y="716" type="curve" smooth="yes"/>
+ <point x="898" y="716"/>
+ <point x="987" y="614"/>
+ <point x="987" y="454" type="curve" smooth="yes"/>
+ <point x="987" y="263"/>
+ <point x="816" y="147"/>
+ <point x="656" y="147" type="curve" smooth="yes"/>
+ <point x="491" y="147"/>
+ <point x="403" y="284"/>
+ <point x="403" y="472" type="curve" smooth="yes"/>
+ <point x="403" y="962"/>
+ <point x="664" y="1284"/>
+ <point x="985" y="1284" type="curve" smooth="yes"/>
+ <point x="1081" y="1284"/>
+ <point x="1174" y="1235"/>
+ <point x="1222" y="1156" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetunicodes.ufo/glyphs/D_igitT_hree.glif b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/D_igitT_hree.glif
new file mode 100644
index 0000000..e01df2c
--- /dev/null
+++ b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/D_igitT_hree.glif
@@ -0,0 +1,52 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitThree" format="2">
+ <advance width="1180"/>
+ <unicode hex="0033"/>
+ <anchor x="515" y="-100" name="L"/>
+ <anchor x="922" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="562" y="853" type="line"/>
+ <point x="521" y="686" type="line"/>
+ <point x="591" y="686" type="line" smooth="yes"/>
+ <point x="802" y="686"/>
+ <point x="944" y="606"/>
+ <point x="944" y="476" type="curve" smooth="yes"/>
+ <point x="944" y="268"/>
+ <point x="738" y="147"/>
+ <point x="551" y="147" type="curve" smooth="yes"/>
+ <point x="371" y="147"/>
+ <point x="260" y="227"/>
+ <point x="181" y="348" type="curve"/>
+ <point x="104" y="137" type="line"/>
+ <point x="185" y="41"/>
+ <point x="341" y="-25"/>
+ <point x="518" y="-25" type="curve" smooth="yes"/>
+ <point x="815" y="-25"/>
+ <point x="1141" y="168"/>
+ <point x="1141" y="475" type="curve" smooth="yes"/>
+ <point x="1141" y="670"/>
+ <point x="973" y="763"/>
+ <point x="855" y="784" type="curve"/>
+ <point x="1046" y="827"/>
+ <point x="1266" y="955"/>
+ <point x="1266" y="1163" type="curve" smooth="yes"/>
+ <point x="1266" y="1338"/>
+ <point x="1073" y="1455"/>
+ <point x="852" y="1455" type="curve" smooth="yes"/>
+ <point x="685" y="1455"/>
+ <point x="536" y="1388"/>
+ <point x="433" y="1299" type="curve"/>
+ <point x="427" y="1132" type="line"/>
+ <point x="568" y="1246"/>
+ <point x="696" y="1284"/>
+ <point x="850" y="1284" type="curve" smooth="yes"/>
+ <point x="957" y="1284"/>
+ <point x="1068" y="1236"/>
+ <point x="1068" y="1137" type="curve" smooth="yes"/>
+ <point x="1068" y="949"/>
+ <point x="781" y="853"/>
+ <point x="632" y="853" type="curve" smooth="yes"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetunicodes.ufo/glyphs/D_igitT_wo.glif b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/D_igitT_wo.glif
new file mode 100644
index 0000000..d1bbb54
--- /dev/null
+++ b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/D_igitT_wo.glif
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitTwo" format="2">
+ <advance width="1180"/>
+ <unicode hex="0032"/>
+ <anchor x="515" y="-100" name="L"/>
+ <anchor x="882" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1063" y="176" type="line"/>
+ <point x="980" y="163"/>
+ <point x="822" y="162"/>
+ <point x="625" y="162" type="curve" smooth="yes"/>
+ <point x="370" y="162" type="line"/>
+ <point x="783" y="393"/>
+ <point x="1210" y="830"/>
+ <point x="1210" y="1098" type="curve" smooth="yes"/>
+ <point x="1210" y="1296"/>
+ <point x="1075" y="1455"/>
+ <point x="842" y="1455" type="curve" smooth="yes"/>
+ <point x="673" y="1455"/>
+ <point x="488" y="1374"/>
+ <point x="380" y="1264" type="curve"/>
+ <point x="388" y="1098" type="line"/>
+ <point x="503" y="1203"/>
+ <point x="660" y="1279"/>
+ <point x="783" y="1279" type="curve" smooth="yes"/>
+ <point x="915" y="1279"/>
+ <point x="1003" y="1199"/>
+ <point x="1003" y="1063" type="curve" smooth="yes"/>
+ <point x="1003" y="848"/>
+ <point x="506" y="386"/>
+ <point x="101" y="167" type="curve"/>
+ <point x="60" y="0" type="line"/>
+ <point x="1020" y="0" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetunicodes.ufo/glyphs/D_igitZ_ero.glif b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/D_igitZ_ero.glif
new file mode 100644
index 0000000..5d1bf0e
--- /dev/null
+++ b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/D_igitZ_ero.glif
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DigitZero" format="2">
+ <advance width="1180"/>
+ <unicode hex="0030"/>
+ <anchor x="520" y="-100" name="L"/>
+ <anchor x="927" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1024" y="711" type="curve" smooth="yes"/>
+ <point x="925" y="312"/>
+ <point x="747" y="142"/>
+ <point x="565" y="142" type="curve" smooth="yes"/>
+ <point x="432" y="142"/>
+ <point x="360" y="218"/>
+ <point x="360" y="383" type="curve" smooth="yes"/>
+ <point x="360" y="468"/>
+ <point x="377" y="579"/>
+ <point x="412" y="720" type="curve" smooth="yes"/>
+ <point x="512" y="1120"/>
+ <point x="678" y="1289"/>
+ <point x="871" y="1289" type="curve" smooth="yes"/>
+ <point x="1006" y="1289"/>
+ <point x="1077" y="1223"/>
+ <point x="1077" y="1051" type="curve" smooth="yes"/>
+ <point x="1077" y="966"/>
+ <point x="1060" y="854"/>
+ </contour>
+ <contour>
+ <point x="1230" y="715" type="curve" smooth="yes"/>
+ <point x="1262" y="841"/>
+ <point x="1276" y="949"/>
+ <point x="1276" y="1040" type="curve" smooth="yes"/>
+ <point x="1276" y="1335"/>
+ <point x="1124" y="1455"/>
+ <point x="902" y="1455" type="curve" smooth="yes"/>
+ <point x="613" y="1455"/>
+ <point x="344" y="1267"/>
+ <point x="206" y="716" type="curve" smooth="yes"/>
+ <point x="173" y="584"/>
+ <point x="158" y="474"/>
+ <point x="158" y="381" type="curve" smooth="yes"/>
+ <point x="158" y="104"/>
+ <point x="313" y="-25"/>
+ <point x="533" y="-25" type="curve" smooth="yes"/>
+ <point x="804" y="-25"/>
+ <point x="1086" y="138"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetunicodes.ufo/glyphs/D_ollarS_gn.glif b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/D_ollarS_gn.glif
new file mode 100644
index 0000000..5c2db20
--- /dev/null
+++ b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/D_ollarS_gn.glif
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DollarSgn" format="2">
+ <advance width="1180"/>
+ <unicode hex="0024"/>
+ <outline>
+ <contour>
+ <point x="1225" y="1280" type="line"/>
+ <point x="1119" y="1337"/>
+ <point x="1023" y="1361"/>
+ <point x="882" y="1361" type="curve" smooth="yes"/>
+ <point x="513" y="1361"/>
+ <point x="354" y="1182"/>
+ <point x="354" y="992" type="curve" smooth="yes"/>
+ <point x="354" y="837"/>
+ <point x="446" y="771"/>
+ <point x="639" y="650" type="curve" smooth="yes"/>
+ <point x="844" y="521"/>
+ <point x="919" y="439"/>
+ <point x="919" y="357" type="curve" smooth="yes"/>
+ <point x="919" y="244"/>
+ <point x="826" y="158"/>
+ <point x="635" y="158" type="curve" smooth="yes"/>
+ <point x="469" y="158"/>
+ <point x="314" y="266"/>
+ <point x="251" y="347" type="curve"/>
+ <point x="163" y="162" type="line"/>
+ <point x="304" y="58"/>
+ <point x="453" y="0"/>
+ <point x="606" y="0" type="curve" smooth="yes"/>
+ <point x="872" y="0"/>
+ <point x="1102" y="119"/>
+ <point x="1102" y="381" type="curve" smooth="yes"/>
+ <point x="1102" y="528"/>
+ <point x="981" y="657"/>
+ <point x="801" y="771" type="curve" smooth="yes"/>
+ <point x="610" y="892"/>
+ <point x="535" y="943"/>
+ <point x="535" y="1024" type="curve" smooth="yes"/>
+ <point x="535" y="1116"/>
+ <point x="657" y="1203"/>
+ <point x="832" y="1203" type="curve" smooth="yes"/>
+ <point x="950" y="1203"/>
+ <point x="1031" y="1176"/>
+ <point x="1144" y="1104" type="curve"/>
+ </contour>
+ <contour>
+ <point x="878" y="1568" type="line"/>
+ <point x="434" y="-216" type="line"/>
+ <point x="574" y="-216" type="line"/>
+ <point x="1018" y="1568" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetunicodes.ufo/glyphs/D_ottedC_irc.glif b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/D_ottedC_irc.glif
new file mode 100644
index 0000000..2cdf8fd
--- /dev/null
+++ b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/D_ottedC_irc.glif
@@ -0,0 +1,235 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="DottedCirc" format="2">
+ <advance width="1086"/>
+ <unicode hex="25CC"/>
+ <anchor x="493" y="0" name="H"/>
+ <anchor x="468" y="-100" name="L"/>
+ <anchor x="750" y="0" name="O"/>
+ <anchor x="743" y="1000" name="U"/>
+ <outline>
+ <contour>
+ <point x="588" y="834" type="curve" smooth="yes"/>
+ <point x="588" y="858"/>
+ <point x="571" y="867"/>
+ <point x="553" y="867" type="curve" smooth="yes"/>
+ <point x="521" y="867"/>
+ <point x="491" y="837"/>
+ <point x="491" y="809" type="curve" smooth="yes"/>
+ <point x="491" y="788"/>
+ <point x="508" y="773"/>
+ <point x="530" y="773" type="curve" smooth="yes"/>
+ <point x="564" y="773"/>
+ <point x="588" y="805"/>
+ </contour>
+ <contour>
+ <point x="677" y="124" type="curve" smooth="yes"/>
+ <point x="647" y="124"/>
+ <point x="620" y="93"/>
+ <point x="620" y="67" type="curve" smooth="yes"/>
+ <point x="620" y="46"/>
+ <point x="636" y="30"/>
+ <point x="657" y="30" type="curve" smooth="yes"/>
+ <point x="687" y="30"/>
+ <point x="718" y="60"/>
+ <point x="718" y="86" type="curve" smooth="yes"/>
+ <point x="718" y="109"/>
+ <point x="700" y="124"/>
+ </contour>
+ <contour>
+ <point x="396" y="780" type="curve" smooth="yes"/>
+ <point x="369" y="780"/>
+ <point x="336" y="753"/>
+ <point x="336" y="722" type="curve" smooth="yes"/>
+ <point x="336" y="702"/>
+ <point x="351" y="687"/>
+ <point x="374" y="687" type="curve" smooth="yes"/>
+ <point x="403" y="687"/>
+ <point x="434" y="711"/>
+ <point x="434" y="744" type="curve" smooth="yes"/>
+ <point x="434" y="764"/>
+ <point x="414" y="780"/>
+ </contour>
+ <contour>
+ <point x="873" y="175" type="curve" smooth="yes"/>
+ <point x="872" y="199"/>
+ <point x="854" y="211"/>
+ <point x="833" y="211" type="curve" smooth="yes"/>
+ <point x="803" y="211"/>
+ <point x="774" y="183"/>
+ <point x="774" y="153" type="curve" smooth="yes"/>
+ <point x="774" y="133"/>
+ <point x="789" y="119"/>
+ <point x="812" y="119" type="curve" smooth="yes"/>
+ <point x="843" y="119"/>
+ <point x="873" y="146"/>
+ </contour>
+ <contour>
+ <point x="313" y="612" type="curve" smooth="yes"/>
+ <point x="312" y="633"/>
+ <point x="296" y="650"/>
+ <point x="275" y="650" type="curve" smooth="yes"/>
+ <point x="247" y="650"/>
+ <point x="215" y="623"/>
+ <point x="215" y="592" type="curve" smooth="yes"/>
+ <point x="215" y="573"/>
+ <point x="227" y="556"/>
+ <point x="251" y="556" type="curve" smooth="yes"/>
+ <point x="278" y="556"/>
+ <point x="313" y="581"/>
+ </contour>
+ <contour>
+ <point x="994" y="306" type="curve" smooth="yes"/>
+ <point x="993" y="327"/>
+ <point x="978" y="341"/>
+ <point x="958" y="341" type="curve" smooth="yes"/>
+ <point x="933" y="341"/>
+ <point x="896" y="321"/>
+ <point x="896" y="284" type="curve" smooth="yes"/>
+ <point x="896" y="265"/>
+ <point x="909" y="249"/>
+ <point x="934" y="249" type="curve" smooth="yes"/>
+ <point x="963" y="249"/>
+ <point x="994" y="275"/>
+ </contour>
+ <contour>
+ <point x="205" y="495" type="curve" smooth="yes"/>
+ <point x="175" y="495"/>
+ <point x="145" y="468"/>
+ <point x="145" y="438" type="curve" smooth="yes"/>
+ <point x="145" y="418"/>
+ <point x="159" y="402"/>
+ <point x="183" y="402" type="curve" smooth="yes"/>
+ <point x="208" y="402"/>
+ <point x="244" y="428"/>
+ <point x="244" y="459" type="curve" smooth="yes"/>
+ <point x="244" y="479"/>
+ <point x="227" y="495"/>
+ </contour>
+ <contour>
+ <point x="1026" y="496" type="curve" smooth="yes"/>
+ <point x="999" y="496"/>
+ <point x="965" y="469"/>
+ <point x="965" y="438" type="curve" smooth="yes"/>
+ <point x="965" y="418"/>
+ <point x="979" y="403"/>
+ <point x="1004" y="403" type="curve" smooth="yes"/>
+ <point x="1033" y="403"/>
+ <point x="1064" y="431"/>
+ <point x="1064" y="460" type="curve" smooth="yes"/>
+ <point x="1064" y="480"/>
+ <point x="1048" y="496"/>
+ </contour>
+ <contour>
+ <point x="237" y="307" type="curve" smooth="yes"/>
+ <point x="237" y="327"/>
+ <point x="221" y="341"/>
+ <point x="199" y="341" type="curve" smooth="yes"/>
+ <point x="169" y="341"/>
+ <point x="138" y="314"/>
+ <point x="138" y="285" type="curve" smooth="yes"/>
+ <point x="138" y="263"/>
+ <point x="153" y="248"/>
+ <point x="175" y="248" type="curve" smooth="yes"/>
+ <point x="206" y="248"/>
+ <point x="237" y="278"/>
+ </contour>
+ <contour>
+ <point x="1071" y="613" type="curve" smooth="yes"/>
+ <point x="1071" y="634"/>
+ <point x="1055" y="650"/>
+ <point x="1034" y="650" type="curve" smooth="yes"/>
+ <point x="1003" y="650"/>
+ <point x="973" y="619"/>
+ <point x="973" y="590" type="curve" smooth="yes"/>
+ <point x="973" y="570"/>
+ <point x="989" y="556"/>
+ <point x="1009" y="556" type="curve" smooth="yes"/>
+ <point x="1041" y="556"/>
+ <point x="1071" y="585"/>
+ </contour>
+ <contour>
+ <point x="292" y="177" type="curve" smooth="yes"/>
+ <point x="292" y="197"/>
+ <point x="277" y="211"/>
+ <point x="253" y="211" type="curve" smooth="yes"/>
+ <point x="224" y="211"/>
+ <point x="194" y="181"/>
+ <point x="194" y="154" type="curve" smooth="yes"/>
+ <point x="194" y="134"/>
+ <point x="211" y="118"/>
+ <point x="232" y="118" type="curve" smooth="yes"/>
+ <point x="262" y="118"/>
+ <point x="292" y="148"/>
+ </contour>
+ <contour>
+ <point x="917" y="724" type="curve" smooth="yes"/>
+ <point x="917" y="704"/>
+ <point x="931" y="686"/>
+ <point x="954" y="686" type="curve" smooth="yes"/>
+ <point x="984" y="686"/>
+ <point x="1014" y="716"/>
+ <point x="1014" y="745" type="curve" smooth="yes"/>
+ <point x="1014" y="765"/>
+ <point x="1000" y="780"/>
+ <point x="977" y="780" type="curve" smooth="yes"/>
+ <point x="947" y="780"/>
+ <point x="917" y="753"/>
+ </contour>
+ <contour>
+ <point x="403" y="87" type="curve" smooth="yes"/>
+ <point x="403" y="107"/>
+ <point x="390" y="123"/>
+ <point x="367" y="123" type="curve" smooth="yes"/>
+ <point x="339" y="123"/>
+ <point x="305" y="96"/>
+ <point x="305" y="68" type="curve" smooth="yes"/>
+ <point x="305" y="49"/>
+ <point x="320" y="30"/>
+ <point x="343" y="30" type="curve" smooth="yes"/>
+ <point x="371" y="30"/>
+ <point x="403" y="56"/>
+ </contour>
+ <contour>
+ <point x="806" y="810" type="curve" smooth="yes"/>
+ <point x="806" y="791"/>
+ <point x="819" y="773"/>
+ <point x="842" y="773" type="curve" smooth="yes"/>
+ <point x="869" y="773"/>
+ <point x="903" y="799"/>
+ <point x="903" y="830" type="curve" smooth="yes"/>
+ <point x="903" y="850"/>
+ <point x="889" y="867"/>
+ <point x="866" y="867" type="curve" smooth="yes"/>
+ <point x="836" y="867"/>
+ <point x="806" y="839"/>
+ </contour>
+ <contour>
+ <point x="553" y="57" type="curve" smooth="yes"/>
+ <point x="553" y="78"/>
+ <point x="538" y="93"/>
+ <point x="516" y="93" type="curve" smooth="yes"/>
+ <point x="485" y="93"/>
+ <point x="456" y="65"/>
+ <point x="456" y="36" type="curve" smooth="yes"/>
+ <point x="456" y="16"/>
+ <point x="471" y="0"/>
+ <point x="493" y="0" type="curve" smooth="yes"/>
+ <point x="523" y="0"/>
+ <point x="553" y="27"/>
+ </contour>
+ <contour>
+ <point x="656" y="839" type="curve" smooth="yes"/>
+ <point x="656" y="819"/>
+ <point x="671" y="805"/>
+ <point x="693" y="805" type="curve" smooth="yes"/>
+ <point x="721" y="805"/>
+ <point x="754" y="830"/>
+ <point x="754" y="861" type="curve" smooth="yes"/>
+ <point x="754" y="882"/>
+ <point x="738" y="898"/>
+ <point x="716" y="898" type="curve" smooth="yes"/>
+ <point x="685" y="898"/>
+ <point x="656" y="868"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetunicodes.ufo/glyphs/E_qS_gn.glif b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/E_qS_gn.glif
new file mode 100644
index 0000000..3d756e8
--- /dev/null
+++ b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/E_qS_gn.glif
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="EqSgn" format="2">
+ <advance width="1180"/>
+ <unicode hex="003D"/>
+ <outline>
+ <contour>
+ <point x="177" y="470" type="line"/>
+ <point x="1137" y="470" type="line"/>
+ <point x="1173" y="617" type="line"/>
+ <point x="213" y="617" type="line"/>
+ </contour>
+ <contour>
+ <point x="262" y="813" type="line"/>
+ <point x="1222" y="813" type="line"/>
+ <point x="1259" y="960" type="line"/>
+ <point x="299" y="960" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetunicodes.ufo/glyphs/E_xclamationM_rk.glif b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/E_xclamationM_rk.glif
new file mode 100644
index 0000000..a1c14d9
--- /dev/null
+++ b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/E_xclamationM_rk.glif
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="ExclamationMrk" format="2">
+ <advance width="744"/>
+ <unicode hex="0021"/>
+ <outline>
+ <contour>
+ <point x="497" y="431" type="line"/>
+ <point x="574" y="715"/>
+ <point x="653" y="1054"/>
+ <point x="799" y="1480" type="curve"/>
+ <point x="544" y="1480" type="line"/>
+ <point x="475" y="1054"/>
+ <point x="386" y="715"/>
+ <point x="322" y="431" type="curve"/>
+ </contour>
+ <contour>
+ <point x="188" y="90" type="curve" smooth="yes"/>
+ <point x="188" y="28"/>
+ <point x="238" y="-25"/>
+ <point x="303" y="-25" type="curve" smooth="yes"/>
+ <point x="387" y="-25"/>
+ <point x="464" y="45"/>
+ <point x="464" y="125" type="curve" smooth="yes"/>
+ <point x="464" y="186"/>
+ <point x="414" y="240"/>
+ <point x="349" y="240" type="curve" smooth="yes"/>
+ <point x="265" y="240"/>
+ <point x="188" y="170"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetunicodes.ufo/glyphs/F_ullS_top.glif b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/F_ullS_top.glif
new file mode 100644
index 0000000..a6c4d08
--- /dev/null
+++ b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/F_ullS_top.glif
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="FullStop" format="2">
+ <advance width="620"/>
+ <unicode hex="002E"/>
+ <outline>
+ <contour>
+ <point x="148" y="90" type="curve" smooth="yes"/>
+ <point x="148" y="28"/>
+ <point x="198" y="-25"/>
+ <point x="263" y="-25" type="curve" smooth="yes"/>
+ <point x="347" y="-25"/>
+ <point x="424" y="45"/>
+ <point x="424" y="125" type="curve" smooth="yes"/>
+ <point x="424" y="186"/>
+ <point x="374" y="240"/>
+ <point x="309" y="240" type="curve" smooth="yes"/>
+ <point x="225" y="240"/>
+ <point x="148" y="170"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetunicodes.ufo/glyphs/G_T_S_gn.glif b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/G_T_S_gn.glif
new file mode 100644
index 0000000..12da8b3
--- /dev/null
+++ b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/G_T_S_gn.glif
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="GTSgn" format="2">
+ <advance width="1180"/>
+ <unicode hex="003E"/>
+ <outline>
+ <contour>
+ <point x="312" y="1014" type="line"/>
+ <point x="1028" y="725" type="line"/>
+ <point x="163" y="417" type="line"/>
+ <point x="119" y="240" type="line"/>
+ <point x="1197" y="632" type="line"/>
+ <point x="1239" y="799" type="line"/>
+ <point x="356" y="1191" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetunicodes.ufo/glyphs/G_raveA_ccent.glif b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/G_raveA_ccent.glif
new file mode 100644
index 0000000..48adfc4
--- /dev/null
+++ b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/G_raveA_ccent.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="GraveAccent" format="2">
+ <advance width="560"/>
+ <unicode hex="0060"/>
+ <anchor x="738" y="1635" name="U"/>
+ <outline>
+ <contour>
+ <point x="261" y="1568" type="line"/>
+ <point x="596" y="1147" type="line"/>
+ <point x="746" y="1147" type="line"/>
+ <point x="471" y="1568" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetunicodes.ufo/glyphs/H_yphen.glif b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/H_yphen.glif
new file mode 100644
index 0000000..987a167
--- /dev/null
+++ b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/H_yphen.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Hyphen" format="2">
+ <advance width="840"/>
+ <unicode hex="002C"/>
+ <anchor x="645" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="155" y="544" type="line"/>
+ <point x="855" y="544" type="line"/>
+ <point x="892" y="691" type="line"/>
+ <point x="192" y="691" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetunicodes.ufo/glyphs/H_yphenM_inus.glif b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/H_yphenM_inus.glif
new file mode 100644
index 0000000..155b460
--- /dev/null
+++ b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/H_yphenM_inus.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="HyphenMinus" format="2">
+ <advance width="840"/>
+ <unicode hex="002D"/>
+ <anchor x="645" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="155" y="544" type="line"/>
+ <point x="855" y="544" type="line"/>
+ <point x="892" y="691" type="line"/>
+ <point x="192" y="691" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetunicodes.ufo/glyphs/H_yphen_S_oft.glif b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/H_yphen_S_oft.glif
new file mode 100644
index 0000000..0c7b834
--- /dev/null
+++ b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/H_yphen_S_oft.glif
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Hyphen_Soft" format="2">
+ <advance width="840"/>
+ <unicode hex="00AD"/>
+ <anchor x="645" y="1100" name="U"/>
+ <outline>
+ <component base="HyphenMinus"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_T_S_gn.glif b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_T_S_gn.glif
new file mode 100644
index 0000000..3c857a5
--- /dev/null
+++ b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_T_S_gn.glif
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LTSgn" format="2">
+ <advance width="1180"/>
+ <unicode hex="003C"/>
+ <outline>
+ <contour>
+ <point x="1123" y="417" type="line"/>
+ <point x="408" y="705" type="line"/>
+ <point x="1272" y="1014" type="line"/>
+ <point x="1316" y="1191" type="line"/>
+ <point x="239" y="799" type="line"/>
+ <point x="197" y="632" type="line"/>
+ <point x="1079" y="240" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_ftC_urlyB_rac.glif b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_ftC_urlyB_rac.glif
new file mode 100644
index 0000000..4f8c90c
--- /dev/null
+++ b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_ftC_urlyB_rac.glif
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LftCurlyBrac" format="2">
+ <advance width="980"/>
+ <unicode hex="007B"/>
+ <outline>
+ <contour>
+ <point x="713" y="-265" type="line"/>
+ <point x="660" y="-250"/>
+ <point x="526" y="-188"/>
+ <point x="526" y="-158" type="curve" smooth="yes"/>
+ <point x="526" y="-59"/>
+ <point x="649" y="404"/>
+ <point x="649" y="469" type="curve" smooth="yes"/>
+ <point x="649" y="509"/>
+ <point x="520" y="577"/>
+ <point x="520" y="602" type="curve" smooth="yes"/>
+ <point x="520" y="620"/>
+ <point x="688" y="700"/>
+ <point x="712" y="730" type="curve" smooth="yes"/>
+ <point x="741" y="767"/>
+ <point x="867" y="1326"/>
+ <point x="912" y="1372" type="curve" smooth="yes"/>
+ <point x="938" y="1399"/>
+ <point x="1073" y="1447"/>
+ <point x="1146" y="1470" type="curve"/>
+ <point x="1140" y="1607" type="line"/>
+ <point x="1030" y="1581"/>
+ <point x="856" y="1529"/>
+ <point x="805" y="1485" type="curve" smooth="yes"/>
+ <point x="714" y="1406"/>
+ <point x="572" y="796"/>
+ <point x="540" y="764" type="curve" smooth="yes"/>
+ <point x="504" y="729"/>
+ <point x="300" y="633"/>
+ <point x="300" y="601" type="curve" smooth="yes"/>
+ <point x="300" y="560"/>
+ <point x="460" y="468"/>
+ <point x="460" y="432" type="curve" smooth="yes"/>
+ <point x="460" y="362"/>
+ <point x="355" y="-53"/>
+ <point x="355" y="-219" type="curve" smooth="yes"/>
+ <point x="355" y="-247"/>
+ <point x="358" y="-268"/>
+ <point x="365" y="-279" type="curve" smooth="yes"/>
+ <point x="394" y="-323"/>
+ <point x="542" y="-375"/>
+ <point x="639" y="-402" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_ftP_aren.glif b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_ftP_aren.glif
new file mode 100644
index 0000000..bc65fc1
--- /dev/null
+++ b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_ftP_aren.glif
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LftParen" format="2">
+ <advance width="775"/>
+ <unicode hex="0028"/>
+ <outline>
+ <contour>
+ <point x="895" y="1607" type="line"/>
+ <point x="582" y="1415"/>
+ <point x="314" y="1061"/>
+ <point x="207" y="633" type="curve" smooth="yes"/>
+ <point x="176" y="508"/>
+ <point x="161" y="386"/>
+ <point x="161" y="270" type="curve" smooth="yes"/>
+ <point x="161" y="17"/>
+ <point x="233" y="-211"/>
+ <point x="374" y="-402" type="curve"/>
+ <point x="505" y="-260" type="line"/>
+ <point x="397" y="-102"/>
+ <point x="348" y="75"/>
+ <point x="348" y="270" type="curve" smooth="yes"/>
+ <point x="348" y="385"/>
+ <point x="365" y="506"/>
+ <point x="397" y="633" type="curve" smooth="yes"/>
+ <point x="484" y="982"/>
+ <point x="647" y="1254"/>
+ <point x="932" y="1455" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_ftS_qrB_rac.glif b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_ftS_qrB_rac.glif
new file mode 100644
index 0000000..6d064d1
--- /dev/null
+++ b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_ftS_qrB_rac.glif
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LftSqrBrac" format="2">
+ <advance width="770"/>
+ <unicode hex="005B"/>
+ <outline>
+ <contour>
+ <point x="484" y="-402" type="line"/>
+ <point x="521" y="-255" type="line"/>
+ <point x="266" y="-255" type="line"/>
+ <point x="679" y="1421" type="line"/>
+ <point x="934" y="1421" type="line"/>
+ <point x="970" y="1568" type="line"/>
+ <point x="530" y="1568" type="line"/>
+ <point x="44" y="-402" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_owL_ine.glif b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_owL_ine.glif
new file mode 100644
index 0000000..879d36b
--- /dev/null
+++ b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_owL_ine.glif
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LowLine" format="2">
+ <advance width="1254"/>
+ <unicode hex="005F"/>
+ <outline>
+ <contour>
+ <point x="-138" y="-314" type="line"/>
+ <point x="1135" y="-314" type="line"/>
+ <point x="1172" y="-167" type="line"/>
+ <point x="-101" y="-167" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnC_apA_.glif b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnC_apA_.glif
new file mode 100644
index 0000000..3a14b0e
--- /dev/null
+++ b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnC_apA_.glif
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapA" format="2">
+ <advance width="1395"/>
+ <unicode hex="0041"/>
+ <anchor x="1170" y="0" name="H"/>
+ <anchor x="602" y="-100" name="L"/>
+ <anchor x="1390" y="0" name="O"/>
+ <anchor x="1009" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1080" y="0" type="line"/>
+ <point x="1275" y="0" type="line"/>
+ <point x="1259" y="78"/>
+ <point x="1243" y="166"/>
+ <point x="1221" y="348" type="curve" smooth="yes"/>
+ <point x="1091" y="1431" type="line"/>
+ <point x="876" y="1431" type="line"/>
+ <point x="206" y="348" type="line" smooth="yes"/>
+ <point x="93" y="165"/>
+ <point x="35" y="79"/>
+ <point x="-20" y="0" type="curve"/>
+ <point x="195" y="0" type="line"/>
+ <point x="422" y="377" type="line"/>
+ <point x="1038" y="377" type="line"/>
+ </contour>
+ <contour>
+ <point x="944" y="1240" type="line"/>
+ <point x="1022" y="529" type="line"/>
+ <point x="514" y="529" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnC_apA_D_iaer.glif b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnC_apA_D_iaer.glif
new file mode 100644
index 0000000..6c3502c
--- /dev/null
+++ b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnC_apA_D_iaer.glif
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapADiaer" format="2">
+ <advance width="1395"/>
+ <unicode hex="00C4"/>
+ <anchor x="1170" y="0" name="H"/>
+ <anchor x="602" y="-100" name="L"/>
+ <anchor x="1390" y="0" name="O"/>
+ <anchor x="1106" y="1935" name="U"/>
+ <outline>
+ <component base="LtnCapA"/>
+ <component base="CombDiaer" xOffset="1359" yOffset="430"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnC_apB_.glif b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnC_apB_.glif
new file mode 100644
index 0000000..5445f93
--- /dev/null
+++ b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnC_apB_.glif
@@ -0,0 +1,62 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapB" format="2">
+ <advance width="1271"/>
+ <unicode hex="0042"/>
+ <anchor x="530" y="-100" name="L"/>
+ <anchor x="937" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="625" y="1284" type="line"/>
+ <point x="667" y="1286"/>
+ <point x="733" y="1289"/>
+ <point x="811" y="1289" type="curve" smooth="yes"/>
+ <point x="993" y="1289"/>
+ <point x="1080" y="1230"/>
+ <point x="1080" y="1105" type="curve" smooth="yes"/>
+ <point x="1080" y="932"/>
+ <point x="931" y="838"/>
+ <point x="698" y="838" type="curve" smooth="yes"/>
+ <point x="513" y="838" type="line"/>
+ </contour>
+ <contour>
+ <point x="226" y="446" type="line"/>
+ <point x="178" y="252"/>
+ <point x="134" y="78"/>
+ <point x="100" y="0" type="curve"/>
+ <point x="151" y="-5"/>
+ <point x="359" y="-10"/>
+ <point x="562" y="-10" type="curve" smooth="yes"/>
+ <point x="960" y="-10"/>
+ <point x="1201" y="149"/>
+ <point x="1201" y="453" type="curve" smooth="yes"/>
+ <point x="1201" y="644"/>
+ <point x="1067" y="736"/>
+ <point x="955" y="764" type="curve"/>
+ <point x="1155" y="819"/>
+ <point x="1283" y="941"/>
+ <point x="1283" y="1140" type="curve" smooth="yes"/>
+ <point x="1283" y="1310"/>
+ <point x="1136" y="1441"/>
+ <point x="869" y="1441" type="curve" smooth="yes"/>
+ <point x="700" y="1441"/>
+ <point x="546" y="1437"/>
+ <point x="456" y="1431" type="curve"/>
+ <point x="452" y="1352"/>
+ <point x="407" y="1172"/>
+ <point x="359" y="980" type="curve" smooth="yes"/>
+ </contour>
+ <contour>
+ <point x="476" y="686" type="line"/>
+ <point x="721" y="686" type="line" smooth="yes"/>
+ <point x="892" y="686"/>
+ <point x="1011" y="598"/>
+ <point x="1011" y="450" type="curve" smooth="yes"/>
+ <point x="1011" y="218"/>
+ <point x="806" y="147"/>
+ <point x="586" y="147" type="curve" smooth="yes"/>
+ <point x="474" y="147"/>
+ <point x="379" y="150"/>
+ <point x="342" y="152" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnC_apC_.glif b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnC_apC_.glif
new file mode 100644
index 0000000..c2e4948
--- /dev/null
+++ b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnC_apC_.glif
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapC" format="2">
+ <advance width="1341"/>
+ <unicode hex="0043"/>
+ <anchor x="690" y="0" name="H"/>
+ <anchor x="665" y="-100" name="L"/>
+ <anchor x="1072" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1237" y="318" type="line"/>
+ <point x="1115" y="222"/>
+ <point x="934" y="147"/>
+ <point x="752" y="147" type="curve" smooth="yes"/>
+ <point x="537" y="147"/>
+ <point x="385" y="304"/>
+ <point x="385" y="532" type="curve" smooth="yes"/>
+ <point x="385" y="964"/>
+ <point x="704" y="1289"/>
+ <point x="1037" y="1289" type="curve" smooth="yes"/>
+ <point x="1168" y="1289"/>
+ <point x="1310" y="1235"/>
+ <point x="1385" y="1132" type="curve"/>
+ <point x="1489" y="1308" type="line"/>
+ <point x="1388" y="1408"/>
+ <point x="1201" y="1455"/>
+ <point x="1058" y="1455" type="curve" smooth="yes"/>
+ <point x="645" y="1455"/>
+ <point x="185" y="1093"/>
+ <point x="185" y="513" type="curve" smooth="yes"/>
+ <point x="185" y="202"/>
+ <point x="381" y="-25"/>
+ <point x="709" y="-25" type="curve" smooth="yes"/>
+ <point x="896" y="-25"/>
+ <point x="1087" y="21"/>
+ <point x="1230" y="127" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnC_apD_.glif b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnC_apD_.glif
new file mode 100644
index 0000000..3b93811
--- /dev/null
+++ b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnC_apD_.glif
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapD" format="2">
+ <advance width="1421"/>
+ <unicode hex="0044"/>
+ <anchor x="630" y="-100" name="L"/>
+ <anchor x="1037" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="226" y="446" type="line"/>
+ <point x="176" y="252"/>
+ <point x="134" y="78"/>
+ <point x="100" y="0" type="curve"/>
+ <point x="100" y="0"/>
+ <point x="414" y="-10"/>
+ <point x="542" y="-10" type="curve" smooth="yes"/>
+ <point x="985" y="-10"/>
+ <point x="1299" y="181"/>
+ <point x="1415" y="648" type="curve" smooth="yes"/>
+ <point x="1437" y="738"/>
+ <point x="1447" y="819"/>
+ <point x="1447" y="891" type="curve" smooth="yes"/>
+ <point x="1447" y="1279"/>
+ <point x="1188" y="1441"/>
+ <point x="894" y="1441" type="curve" smooth="yes"/>
+ <point x="759" y="1441"/>
+ <point x="543" y="1437"/>
+ <point x="456" y="1431" type="curve"/>
+ <point x="452" y="1352"/>
+ <point x="407" y="1172"/>
+ <point x="359" y="980" type="curve" smooth="yes"/>
+ </contour>
+ <contour>
+ <point x="623" y="1279" type="line"/>
+ <point x="674" y="1281"/>
+ <point x="764" y="1284"/>
+ <point x="830" y="1284" type="curve" smooth="yes"/>
+ <point x="1105" y="1284"/>
+ <point x="1246" y="1140"/>
+ <point x="1246" y="850" type="curve" smooth="yes"/>
+ <point x="1246" y="784"/>
+ <point x="1236" y="710"/>
+ <point x="1216" y="629" type="curve" smooth="yes"/>
+ <point x="1134" y="300"/>
+ <point x="925" y="152"/>
+ <point x="572" y="152" type="curve" smooth="yes"/>
+ <point x="477" y="152"/>
+ <point x="391" y="158"/>
+ <point x="345" y="162" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnC_apE_.glif b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnC_apE_.glif
new file mode 100644
index 0000000..8b5f8b9
--- /dev/null
+++ b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnC_apE_.glif
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapE" format="2">
+ <advance width="1140"/>
+ <unicode hex="0045"/>
+ <anchor x="540" y="0" name="H"/>
+ <anchor x="515" y="-100" name="L"/>
+ <anchor x="857" y="0" name="O"/>
+ <anchor x="1400" y="1200" name="R"/>
+ <anchor x="922" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="511" y="828" type="line"/>
+ <point x="621" y="1269" type="line"/>
+ <point x="1266" y="1269" type="line"/>
+ <point x="1306" y="1431" type="line"/>
+ <point x="456" y="1431" type="line"/>
+ <point x="452" y="1352"/>
+ <point x="413" y="1197"/>
+ <point x="365" y="1005" type="curve" smooth="yes"/>
+ <point x="221" y="426" type="line" smooth="yes"/>
+ <point x="173" y="233"/>
+ <point x="134" y="78"/>
+ <point x="100" y="0" type="curve"/>
+ <point x="980" y="0" type="line"/>
+ <point x="1023" y="176" type="line"/>
+ <point x="940" y="163"/>
+ <point x="806" y="162"/>
+ <point x="609" y="162" type="curve" smooth="yes"/>
+ <point x="345" y="162" type="line"/>
+ <point x="472" y="671" type="line"/>
+ <point x="1042" y="671" type="line"/>
+ <point x="1081" y="828" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnC_apF_.glif b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnC_apF_.glif
new file mode 100644
index 0000000..cbc1726
--- /dev/null
+++ b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnC_apF_.glif
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapF" format="2">
+ <advance width="1130"/>
+ <unicode hex="0046"/>
+ <anchor x="510" y="-100" name="L"/>
+ <anchor x="917" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="508" y="818" type="line"/>
+ <point x="621" y="1269" type="line"/>
+ <point x="1286" y="1269" type="line"/>
+ <point x="1326" y="1431" type="line"/>
+ <point x="456" y="1431" type="line"/>
+ <point x="452" y="1352"/>
+ <point x="412" y="1193"/>
+ <point x="364" y="1000" type="curve" smooth="yes"/>
+ <point x="221" y="426" type="line" smooth="yes"/>
+ <point x="173" y="233"/>
+ <point x="134" y="78"/>
+ <point x="100" y="0" type="curve"/>
+ <point x="320" y="0" type="line"/>
+ <point x="323" y="76"/>
+ <point x="362" y="232"/>
+ <point x="411" y="426" type="curve" smooth="yes"/>
+ <point x="470" y="662" type="line"/>
+ <point x="1050" y="662" type="line"/>
+ <point x="1088" y="818" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnC_apG_.glif b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnC_apG_.glif
new file mode 100644
index 0000000..c39b75a
--- /dev/null
+++ b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnC_apG_.glif
@@ -0,0 +1,48 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapG" format="2">
+ <advance width="1406"/>
+ <unicode hex="0047"/>
+ <anchor x="685" y="0" name="H"/>
+ <anchor x="660" y="-100" name="L"/>
+ <anchor x="1067" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1403" y="710" type="line"/>
+ <point x="863" y="710" type="line"/>
+ <point x="822" y="548" type="line"/>
+ <point x="1172" y="548" type="line"/>
+ <point x="1090" y="220" type="line"/>
+ <point x="1012" y="176"/>
+ <point x="858" y="147"/>
+ <point x="739" y="147" type="curve" smooth="yes"/>
+ <point x="520" y="147"/>
+ <point x="384" y="272"/>
+ <point x="384" y="493" type="curve" smooth="yes"/>
+ <point x="384" y="560"/>
+ <point x="394" y="636"/>
+ <point x="415" y="720" type="curve" smooth="yes"/>
+ <point x="500" y="1062"/>
+ <point x="747" y="1289"/>
+ <point x="1052" y="1289" type="curve" smooth="yes"/>
+ <point x="1195" y="1289"/>
+ <point x="1335" y="1233"/>
+ <point x="1425" y="1122" type="curve"/>
+ <point x="1534" y="1298" type="line"/>
+ <point x="1409" y="1405"/>
+ <point x="1235" y="1455"/>
+ <point x="1063" y="1455" type="curve" smooth="yes"/>
+ <point x="680" y="1455"/>
+ <point x="334" y="1195"/>
+ <point x="217" y="726" type="curve" smooth="yes"/>
+ <point x="195" y="639"/>
+ <point x="185" y="559"/>
+ <point x="185" y="486" type="curve" smooth="yes"/>
+ <point x="185" y="162"/>
+ <point x="406" y="-25"/>
+ <point x="714" y="-25" type="curve" smooth="yes"/>
+ <point x="907" y="-25"/>
+ <point x="1149" y="50"/>
+ <point x="1258" y="132" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnC_apH_.glif b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnC_apH_.glif
new file mode 100644
index 0000000..f454288
--- /dev/null
+++ b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnC_apH_.glif
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapH" format="2">
+ <advance width="1455"/>
+ <unicode hex="0048"/>
+ <anchor x="225" y="0" name="H"/>
+ <anchor x="640" y="-100" name="L"/>
+ <anchor x="1047" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1230" y="0" type="line"/>
+ <point x="1234" y="78"/>
+ <point x="1273" y="233"/>
+ <point x="1321" y="426" type="curve" smooth="yes"/>
+ <point x="1465" y="1005" type="line" smooth="yes"/>
+ <point x="1513" y="1198"/>
+ <point x="1552" y="1352"/>
+ <point x="1586" y="1431" type="curve"/>
+ <point x="1381" y="1431" type="line"/>
+ <point x="1228" y="818" type="line"/>
+ <point x="508" y="818" type="line"/>
+ <point x="661" y="1431" type="line"/>
+ <point x="456" y="1431" type="line"/>
+ <point x="452" y="1352"/>
+ <point x="413" y="1197"/>
+ <point x="365" y="1005" type="curve" smooth="yes"/>
+ <point x="221" y="426" type="line" smooth="yes"/>
+ <point x="173" y="233"/>
+ <point x="134" y="78"/>
+ <point x="100" y="0" type="curve"/>
+ <point x="305" y="0" type="line"/>
+ <point x="470" y="662" type="line"/>
+ <point x="1190" y="662" type="line"/>
+ <point x="1025" y="0" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnC_apI_.glif b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnC_apI_.glif
new file mode 100644
index 0000000..78b151c
--- /dev/null
+++ b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnC_apI_.glif
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapI" format="2">
+ <advance width="955"/>
+ <unicode hex="0049"/>
+ <anchor x="417" y="0" name="H"/>
+ <anchor x="392" y="-100" name="L"/>
+ <anchor x="613" y="0" name="O"/>
+ <anchor x="1215" y="1200" name="R"/>
+ <anchor x="799" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="436" y="1431" type="line"/>
+ <point x="401" y="1289" type="line"/>
+ <point x="641" y="1289" type="line"/>
+ <point x="355" y="142" type="line"/>
+ <point x="115" y="142" type="line"/>
+ <point x="80" y="0" type="line"/>
+ <point x="755" y="0" type="line"/>
+ <point x="790" y="142" type="line"/>
+ <point x="545" y="142" type="line"/>
+ <point x="831" y="1289" type="line"/>
+ <point x="1076" y="1289" type="line"/>
+ <point x="1111" y="1431" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnC_apJ_.glif b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnC_apJ_.glif
new file mode 100644
index 0000000..417d1f8
--- /dev/null
+++ b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnC_apJ_.glif
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapJ" format="2">
+ <advance width="996"/>
+ <unicode hex="004A"/>
+ <anchor x="325" y="-100" name="L"/>
+ <anchor x="997" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="871" y="1431" type="line"/>
+ <point x="858" y="1327"/>
+ <point x="817" y="1151"/>
+ <point x="769" y="960" type="curve" smooth="yes"/>
+ <point x="648" y="475" type="line" smooth="yes"/>
+ <point x="592" y="251"/>
+ <point x="484" y="152"/>
+ <point x="337" y="152" type="curve" smooth="yes"/>
+ <point x="245" y="152"/>
+ <point x="145" y="224"/>
+ <point x="97" y="299" type="curve"/>
+ <point x="6" y="118" type="line"/>
+ <point x="58" y="39"/>
+ <point x="193" y="-25"/>
+ <point x="298" y="-25" type="curve" smooth="yes"/>
+ <point x="555" y="-25"/>
+ <point x="749" y="117"/>
+ <point x="850" y="524" type="curve" smooth="yes"/>
+ <point x="1076" y="1431" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnC_apK_.glif b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnC_apK_.glif
new file mode 100644
index 0000000..8e54a6d
--- /dev/null
+++ b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnC_apK_.glif
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapK" format="2">
+ <advance width="1261"/>
+ <unicode hex="004B"/>
+ <anchor x="210" y="0" name="H"/>
+ <anchor x="610" y="-100" name="L"/>
+ <anchor x="972" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1221" y="1431" type="line"/>
+ <point x="406" y="689" type="line"/>
+ <point x="547" y="730" type="line"/>
+ <point x="660" y="725" type="line"/>
+ <point x="1461" y="1431" type="line"/>
+ </contour>
+ <contour>
+ <point x="1170" y="0" type="line"/>
+ <point x="615" y="823" type="line"/>
+ <point x="469" y="720" type="line"/>
+ <point x="925" y="0" type="line"/>
+ </contour>
+ <contour>
+ <point x="661" y="1431" type="line"/>
+ <point x="456" y="1431" type="line"/>
+ <point x="452" y="1352"/>
+ <point x="413" y="1197"/>
+ <point x="365" y="1005" type="curve" smooth="yes"/>
+ <point x="221" y="426" type="line" smooth="yes"/>
+ <point x="173" y="233"/>
+ <point x="134" y="78"/>
+ <point x="100" y="0" type="curve"/>
+ <point x="305" y="0" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnC_apL_.glif b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnC_apL_.glif
new file mode 100644
index 0000000..d2eb932
--- /dev/null
+++ b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnC_apL_.glif
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapL" format="2">
+ <advance width="1060"/>
+ <unicode hex="004C"/>
+ <anchor x="532" y="0" name="H"/>
+ <anchor x="507" y="-100" name="L"/>
+ <anchor x="780" y="1200" name="R"/>
+ <anchor x="914" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="345" y="162" type="line"/>
+ <point x="661" y="1431" type="line"/>
+ <point x="456" y="1431" type="line"/>
+ <point x="452" y="1352"/>
+ <point x="413" y="1197"/>
+ <point x="365" y="1005" type="curve" smooth="yes"/>
+ <point x="221" y="426" type="line" smooth="yes"/>
+ <point x="173" y="233"/>
+ <point x="134" y="78"/>
+ <point x="100" y="0" type="curve"/>
+ <point x="965" y="0" type="line"/>
+ <point x="1008" y="176" type="line"/>
+ <point x="925" y="163"/>
+ <point x="766" y="162"/>
+ <point x="569" y="162" type="curve" smooth="yes"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnC_apM_.glif b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnC_apM_.glif
new file mode 100644
index 0000000..7c3c824
--- /dev/null
+++ b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnC_apM_.glif
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapM" format="2">
+ <advance width="1785"/>
+ <unicode hex="004D"/>
+ <anchor x="800" y="-100" name="L"/>
+ <anchor x="1207" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="880" y="201" type="line"/>
+ <point x="751" y="1431" type="line"/>
+ <point x="591" y="1431" type="line"/>
+ <point x="740" y="0" type="line"/>
+ <point x="935" y="0" type="line"/>
+ <point x="1793" y="1431" type="line"/>
+ <point x="1616" y="1431" type="line"/>
+ </contour>
+ <contour>
+ <point x="536" y="1431" type="line"/>
+ <point x="536" y="1431"/>
+ <point x="184" y="194"/>
+ <point x="110" y="0" type="curve"/>
+ <point x="295" y="0" type="line"/>
+ <point x="621" y="1181" type="line"/>
+ <point x="711" y="1431" type="line"/>
+ </contour>
+ <contour>
+ <point x="1560" y="0" type="line"/>
+ <point x="1579" y="194"/>
+ <point x="1846" y="1431"/>
+ <point x="1846" y="1431" type="curve"/>
+ <point x="1671" y="1431" type="line"/>
+ <point x="1641" y="1181" type="line"/>
+ <point x="1375" y="0" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnC_apN_.glif b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnC_apN_.glif
new file mode 100644
index 0000000..7306669
--- /dev/null
+++ b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnC_apN_.glif
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapN" format="2">
+ <advance width="1480"/>
+ <unicode hex="004E"/>
+ <anchor x="1170" y="0" name="H"/>
+ <anchor x="652" y="-100" name="L"/>
+ <anchor x="1059" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="491" y="1328" type="line"/>
+ <point x="1075" y="0" type="line"/>
+ <point x="1219" y="98" type="line"/>
+ <point x="636" y="1431" type="line"/>
+ </contour>
+ <contour>
+ <point x="1075" y="0" type="line"/>
+ <point x="1250" y="0" type="line"/>
+ <point x="1500" y="1005" type="line" smooth="yes"/>
+ <point x="1548" y="1198"/>
+ <point x="1588" y="1352"/>
+ <point x="1621" y="1431" type="curve"/>
+ <point x="1431" y="1431" type="line"/>
+ </contour>
+ <contour>
+ <point x="636" y="1431" type="line"/>
+ <point x="446" y="1431" type="line"/>
+ <point x="442" y="1352"/>
+ <point x="403" y="1197"/>
+ <point x="355" y="1005" type="curve" smooth="yes"/>
+ <point x="211" y="426" type="line" smooth="yes"/>
+ <point x="163" y="233"/>
+ <point x="124" y="78"/>
+ <point x="90" y="0" type="curve"/>
+ <point x="280" y="0" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnC_apO_.glif b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnC_apO_.glif
new file mode 100644
index 0000000..19c4886
--- /dev/null
+++ b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnC_apO_.glif
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapO" format="2">
+ <advance width="1447"/>
+ <unicode hex="004F"/>
+ <anchor x="657" y="0" name="H"/>
+ <anchor x="632" y="-100" name="L"/>
+ <anchor x="896" y="0" name="O"/>
+ <anchor x="1700" y="1200" name="R"/>
+ <anchor x="1039" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="719" y="147" type="curve" smooth="yes"/>
+ <point x="514" y="147"/>
+ <point x="386" y="300"/>
+ <point x="386" y="541" type="curve" smooth="yes"/>
+ <point x="386" y="871"/>
+ <point x="606" y="1284"/>
+ <point x="963" y="1284" type="curve" smooth="yes"/>
+ <point x="1164" y="1284"/>
+ <point x="1291" y="1133"/>
+ <point x="1291" y="892" type="curve" smooth="yes"/>
+ <point x="1291" y="563"/>
+ <point x="1077" y="147"/>
+ </contour>
+ <contour>
+ <point x="1492" y="931" type="curve" smooth="yes"/>
+ <point x="1492" y="1263"/>
+ <point x="1278" y="1455"/>
+ <point x="1015" y="1455" type="curve" smooth="yes"/>
+ <point x="599" y="1455"/>
+ <point x="185" y="1036"/>
+ <point x="185" y="500" type="curve" smooth="yes"/>
+ <point x="185" y="167"/>
+ <point x="400" y="-25"/>
+ <point x="666" y="-25" type="curve" smooth="yes"/>
+ <point x="1078" y="-25"/>
+ <point x="1492" y="395"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnC_apP_.glif b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnC_apP_.glif
new file mode 100644
index 0000000..5b51a57
--- /dev/null
+++ b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnC_apP_.glif
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapP" format="2">
+ <advance width="1190"/>
+ <unicode hex="0050"/>
+ <anchor x="552" y="-100" name="L"/>
+ <anchor x="959" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="443" y="554" type="line"/>
+ <point x="506" y="547"/>
+ <point x="597" y="544"/>
+ <point x="670" y="544" type="curve" smooth="yes"/>
+ <point x="1058" y="544"/>
+ <point x="1321" y="733"/>
+ <point x="1321" y="1084" type="curve" smooth="yes"/>
+ <point x="1321" y="1302"/>
+ <point x="1141" y="1441"/>
+ <point x="864" y="1441" type="curve" smooth="yes"/>
+ <point x="651" y="1441"/>
+ <point x="456" y="1431"/>
+ <point x="456" y="1431" type="curve"/>
+ <point x="452" y="1352"/>
+ <point x="407" y="1172"/>
+ <point x="359" y="980" type="curve"/>
+ <point x="221" y="426" type="line" smooth="yes"/>
+ <point x="173" y="233"/>
+ <point x="134" y="78"/>
+ <point x="100" y="0" type="curve"/>
+ <point x="320" y="0" type="line"/>
+ <point x="324" y="76"/>
+ <point x="362" y="232"/>
+ <point x="411" y="426" type="curve" smooth="yes"/>
+ </contour>
+ <contour>
+ <point x="623" y="1279" type="line"/>
+ <point x="692" y="1282"/>
+ <point x="721" y="1284"/>
+ <point x="815" y="1284" type="curve" smooth="yes"/>
+ <point x="1036" y="1284"/>
+ <point x="1121" y="1172"/>
+ <point x="1121" y="1048" type="curve" smooth="yes"/>
+ <point x="1121" y="845"/>
+ <point x="968" y="696"/>
+ <point x="693" y="696" type="curve" smooth="yes"/>
+ <point x="618" y="696"/>
+ <point x="542" y="698"/>
+ <point x="481" y="706" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnC_apQ_.glif b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnC_apQ_.glif
new file mode 100644
index 0000000..3dcbc8d
--- /dev/null
+++ b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnC_apQ_.glif
@@ -0,0 +1,52 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapQ" format="2">
+ <advance width="1459"/>
+ <unicode hex="0051"/>
+ <anchor x="589" y="-270" name="L"/>
+ <anchor x="1039" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1495" y="939" type="curve" smooth="yes"/>
+ <point x="1495" y="1266"/>
+ <point x="1306" y="1455"/>
+ <point x="1026" y="1455" type="curve" smooth="yes"/>
+ <point x="703" y="1455"/>
+ <point x="332" y="1195"/>
+ <point x="215" y="726" type="curve" smooth="yes"/>
+ <point x="194" y="642"/>
+ <point x="185" y="564"/>
+ <point x="185" y="492" type="curve" smooth="yes"/>
+ <point x="185" y="165"/>
+ <point x="388" y="-25"/>
+ <point x="652" y="-25" type="curve" smooth="yes"/>
+ <point x="714" y="-25"/>
+ <point x="781" y="-17"/>
+ <point x="829" y="0" type="curve"/>
+ <point x="898" y="0"/>
+ <point x="1133" y="-186"/>
+ <point x="1217" y="-186" type="curve" smooth="yes"/>
+ <point x="1271" y="-186"/>
+ <point x="1355" y="-79"/>
+ <point x="1388" y="-44" type="curve"/>
+ <point x="1258" y="-27"/>
+ <point x="1155" y="27"/>
+ <point x="1049" y="103" type="curve"/>
+ <point x="1253" y="217"/>
+ <point x="1495" y="528"/>
+ </contour>
+ <contour>
+ <point x="690" y="147" type="curve" smooth="yes"/>
+ <point x="492" y="147"/>
+ <point x="384" y="284"/>
+ <point x="384" y="508" type="curve" smooth="yes"/>
+ <point x="384" y="856"/>
+ <point x="609" y="1284"/>
+ <point x="994" y="1284" type="curve" smooth="yes"/>
+ <point x="1188" y="1284"/>
+ <point x="1295" y="1149"/>
+ <point x="1295" y="925" type="curve" smooth="yes"/>
+ <point x="1295" y="490"/>
+ <point x="985" y="147"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnC_apR_.glif b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnC_apR_.glif
new file mode 100644
index 0000000..c8f8186
--- /dev/null
+++ b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnC_apR_.glif
@@ -0,0 +1,55 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapR" format="2">
+ <advance width="1295"/>
+ <unicode hex="0052"/>
+ <anchor x="590" y="0" name="H"/>
+ <anchor x="525" y="-100" name="L"/>
+ <anchor x="932" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="457" y="613" type="line"/>
+ <point x="712" y="613" type="line" smooth="yes"/>
+ <point x="1010" y="613"/>
+ <point x="1303" y="784"/>
+ <point x="1303" y="1114" type="curve" smooth="yes"/>
+ <point x="1303" y="1326"/>
+ <point x="1114" y="1441"/>
+ <point x="844" y="1441" type="curve" smooth="yes"/>
+ <point x="610" y="1441"/>
+ <point x="456" y="1431"/>
+ <point x="456" y="1431" type="curve"/>
+ <point x="452" y="1352"/>
+ <point x="407" y="1172"/>
+ <point x="359" y="980" type="curve" smooth="yes"/>
+ <point x="221" y="426" type="line"/>
+ <point x="173" y="233"/>
+ <point x="134" y="78"/>
+ <point x="100" y="0" type="curve"/>
+ <point x="320" y="0" type="line"/>
+ <point x="324" y="76"/>
+ <point x="363" y="233"/>
+ <point x="411" y="426" type="curve"/>
+ </contour>
+ <contour>
+ <point x="623" y="1279" type="line"/>
+ <point x="677" y="1281"/>
+ <point x="725" y="1284"/>
+ <point x="795" y="1284" type="curve" smooth="yes"/>
+ <point x="1003" y="1284"/>
+ <point x="1104" y="1203"/>
+ <point x="1104" y="1076" type="curve" smooth="yes"/>
+ <point x="1104" y="856"/>
+ <point x="921" y="764"/>
+ <point x="685" y="764" type="curve" smooth="yes"/>
+ <point x="495" y="764" type="line"/>
+ </contour>
+ <contour>
+ <point x="656" y="622" type="line"/>
+ <point x="930" y="0" type="line"/>
+ <point x="1185" y="0" type="line"/>
+ <point x="1122" y="89"/>
+ <point x="864" y="602"/>
+ <point x="828" y="676" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnC_apS_.glif b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnC_apS_.glif
new file mode 100644
index 0000000..01e9f47
--- /dev/null
+++ b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnC_apS_.glif
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapS" format="2">
+ <advance width="1155"/>
+ <unicode hex="0053"/>
+ <anchor x="520" y="0" name="H"/>
+ <anchor x="495" y="-100" name="L"/>
+ <anchor x="902" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1260" y="1347" type="line"/>
+ <point x="1146" y="1419"/>
+ <point x="1021" y="1455"/>
+ <point x="867" y="1455" type="curve" smooth="yes"/>
+ <point x="549" y="1455"/>
+ <point x="320" y="1303"/>
+ <point x="320" y="1040" type="curve" smooth="yes"/>
+ <point x="320" y="901"/>
+ <point x="438" y="794"/>
+ <point x="622" y="691" type="curve" smooth="yes"/>
+ <point x="877" y="549"/>
+ <point x="914" y="461"/>
+ <point x="914" y="378" type="curve" smooth="yes"/>
+ <point x="914" y="256"/>
+ <point x="792" y="147"/>
+ <point x="621" y="147" type="curve" smooth="yes"/>
+ <point x="473" y="147"/>
+ <point x="278" y="235"/>
+ <point x="161" y="378" type="curve"/>
+ <point x="65" y="187" type="line"/>
+ <point x="178" y="73"/>
+ <point x="365" y="-25"/>
+ <point x="558" y="-25" type="curve" smooth="yes"/>
+ <point x="852" y="-25"/>
+ <point x="1114" y="115"/>
+ <point x="1114" y="414" type="curve" smooth="yes"/>
+ <point x="1114" y="526"/>
+ <point x="1057" y="679"/>
+ <point x="800" y="828" type="curve" smooth="yes"/>
+ <point x="597" y="946"/>
+ <point x="510" y="1005"/>
+ <point x="510" y="1079" type="curve" smooth="yes"/>
+ <point x="510" y="1210"/>
+ <point x="659" y="1284"/>
+ <point x="845" y="1284" type="curve" smooth="yes"/>
+ <point x="959" y="1284"/>
+ <point x="1075" y="1240"/>
+ <point x="1173" y="1156" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnC_apT_.glif b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnC_apT_.glif
new file mode 100644
index 0000000..0eeece4
--- /dev/null
+++ b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnC_apT_.glif
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapT" format="2">
+ <advance width="1245"/>
+ <unicode hex="0054"/>
+ <anchor x="562" y="0" name="H"/>
+ <anchor x="562" y="-100" name="L"/>
+ <anchor x="944" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="341" y="1431" type="line"/>
+ <point x="296" y="1250" type="line"/>
+ <point x="380" y="1266"/>
+ <point x="457" y="1269"/>
+ <point x="546" y="1269" type="curve" smooth="yes"/>
+ <point x="781" y="1269" type="line"/>
+ <point x="571" y="426" type="line" smooth="yes"/>
+ <point x="523" y="233"/>
+ <point x="481" y="78"/>
+ <point x="445" y="0" type="curve"/>
+ <point x="675" y="0" type="line"/>
+ <point x="677" y="78"/>
+ <point x="713" y="233"/>
+ <point x="761" y="426" type="curve" smooth="yes"/>
+ <point x="971" y="1269" type="line"/>
+ <point x="1211" y="1269" type="line" smooth="yes"/>
+ <point x="1301" y="1269"/>
+ <point x="1375" y="1266"/>
+ <point x="1451" y="1250" type="curve"/>
+ <point x="1496" y="1431" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnC_apU_.glif b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnC_apU_.glif
new file mode 100644
index 0000000..9576e20
--- /dev/null
+++ b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnC_apU_.glif
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapU" format="2">
+ <advance width="1420"/>
+ <unicode hex="0055"/>
+ <anchor x="647" y="0" name="H"/>
+ <anchor x="622" y="-100" name="L"/>
+ <anchor x="865" y="0" name="O"/>
+ <anchor x="1640" y="1200" name="R"/>
+ <anchor x="1029" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1346" y="1431" type="line"/>
+ <point x="1126" y="549" type="line" smooth="yes"/>
+ <point x="1055" y="264"/>
+ <point x="916" y="132"/>
+ <point x="682" y="132" type="curve" smooth="yes"/>
+ <point x="485" y="132"/>
+ <point x="421" y="244"/>
+ <point x="421" y="391" type="curve" smooth="yes"/>
+ <point x="421" y="451"/>
+ <point x="431" y="516"/>
+ <point x="448" y="582" type="curve" smooth="yes"/>
+ <point x="661" y="1431" type="line"/>
+ <point x="456" y="1431" type="line"/>
+ <point x="451" y="1352"/>
+ <point x="414" y="1198"/>
+ <point x="365" y="1005" type="curve" smooth="yes"/>
+ <point x="251" y="552" type="line" smooth="yes"/>
+ <point x="236" y="493"/>
+ <point x="228" y="435"/>
+ <point x="228" y="379" type="curve" smooth="yes"/>
+ <point x="228" y="157"/>
+ <point x="351" y="-25"/>
+ <point x="643" y="-25" type="curve" smooth="yes"/>
+ <point x="1020" y="-25"/>
+ <point x="1223" y="177"/>
+ <point x="1299" y="480" type="curve" smooth="yes"/>
+ <point x="1430" y="1005" type="line" smooth="yes"/>
+ <point x="1480" y="1207"/>
+ <point x="1519" y="1352"/>
+ <point x="1551" y="1431" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnC_apV_.glif b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnC_apV_.glif
new file mode 100644
index 0000000..2bf8b96
--- /dev/null
+++ b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnC_apV_.glif
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapV" format="2">
+ <advance width="1345"/>
+ <unicode hex="0056"/>
+ <anchor x="620" y="0" name="H"/>
+ <anchor x="587" y="-100" name="L"/>
+ <anchor x="820" y="0" name="O"/>
+ <anchor x="994" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1381" y="1431" type="line"/>
+ <point x="654" y="191" type="line"/>
+ <point x="536" y="1431" type="line"/>
+ <point x="331" y="1431" type="line"/>
+ <point x="344" y="1350"/>
+ <point x="355" y="1262"/>
+ <point x="377" y="1073" type="curve" smooth="yes"/>
+ <point x="500" y="0" type="line"/>
+ <point x="725" y="0" type="line"/>
+ <point x="1377" y="1073" type="line" smooth="yes"/>
+ <point x="1492" y="1263"/>
+ <point x="1550" y="1350"/>
+ <point x="1606" y="1431" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnC_apW_.glif b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnC_apW_.glif
new file mode 100644
index 0000000..553ea17
--- /dev/null
+++ b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnC_apW_.glif
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapW" format="2">
+ <advance width="2060"/>
+ <unicode hex="0057"/>
+ <anchor x="942" y="-100" name="L"/>
+ <anchor x="1349" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="1535" y="0" type="line"/>
+ <point x="2107" y="1073" type="line" smooth="yes"/>
+ <point x="2208" y="1263"/>
+ <point x="2259" y="1350"/>
+ <point x="2311" y="1431" type="curve"/>
+ <point x="2081" y="1431" type="line"/>
+ <point x="1431" y="127" type="line"/>
+ <point x="1420" y="0" type="line"/>
+ </contour>
+ <contour>
+ <point x="1310" y="0" type="line"/>
+ <point x="1420" y="0" type="line"/>
+ <point x="1461" y="127" type="line"/>
+ <point x="1406" y="1431" type="line"/>
+ <point x="1231" y="1431" type="line"/>
+ <point x="1248" y="1279" type="line"/>
+ </contour>
+ <contour>
+ <point x="625" y="0" type="line"/>
+ <point x="1406" y="1431" type="line"/>
+ <point x="1221" y="1431" type="line"/>
+ <point x="521" y="127" type="line"/>
+ <point x="521" y="0" type="line"/>
+ </contour>
+ <contour>
+ <point x="546" y="1431" type="line"/>
+ <point x="336" y="1431" type="line"/>
+ <point x="348" y="1353"/>
+ <point x="355" y="1260"/>
+ <point x="362" y="1073" type="curve" smooth="yes"/>
+ <point x="400" y="0" type="line"/>
+ <point x="521" y="0" type="line"/>
+ <point x="551" y="127" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnC_apX_.glif b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnC_apX_.glif
new file mode 100644
index 0000000..2da5787
--- /dev/null
+++ b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnC_apX_.glif
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapX" format="2">
+ <advance width="1305"/>
+ <unicode hex="0058"/>
+ <anchor x="565" y="-100" name="L"/>
+ <anchor x="972" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="970" y="0" type="line"/>
+ <point x="1190" y="0" type="line"/>
+ <point x="1148" y="80"/>
+ <point x="1125" y="124"/>
+ <point x="1045" y="329" type="curve" smooth="yes"/>
+ <point x="611" y="1431" type="line"/>
+ <point x="386" y="1431" type="line"/>
+ <point x="430" y="1348"/>
+ <point x="462" y="1289"/>
+ <point x="541" y="1088" type="curve" smooth="yes"/>
+ </contour>
+ <contour>
+ <point x="752" y="872" type="line"/>
+ <point x="278" y="333" type="line" smooth="yes"/>
+ <point x="98" y="129"/>
+ <point x="53" y="84"/>
+ <point x="-30" y="0" type="curve"/>
+ <point x="210" y="0" type="line"/>
+ <point x="750" y="622" type="line"/>
+ </contour>
+ <contour>
+ <point x="765" y="622" type="line"/>
+ <point x="1183" y="1088" type="line" smooth="yes"/>
+ <point x="1360" y="1285"/>
+ <point x="1425" y="1355"/>
+ <point x="1506" y="1431" type="curve"/>
+ <point x="1261" y="1431" type="line"/>
+ <point x="767" y="872" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnC_apY_.glif b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnC_apY_.glif
new file mode 100644
index 0000000..9ec65ef
--- /dev/null
+++ b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnC_apY_.glif
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnCapY" format="2">
+ <advance width="1300"/>
+ <unicode hex="0059"/>
+ <anchor x="565" y="-100" name="L"/>
+ <anchor x="972" y="1530" name="U"/>
+ <outline>
+ <contour>
+ <point x="331" y="1431" type="line"/>
+ <point x="407" y="1285"/>
+ <point x="446" y="1173"/>
+ <point x="490" y="1044" type="curve"/>
+ <point x="661" y="549" type="line"/>
+ <point x="829" y="661" type="line"/>
+ <point x="551" y="1431" type="line"/>
+ </contour>
+ <contour>
+ <point x="1321" y="1431" type="line"/>
+ <point x="684" y="661" type="line"/>
+ <point x="796" y="549" type="line"/>
+ <point x="1215" y="1044" type="line" smooth="yes"/>
+ <point x="1322" y="1171"/>
+ <point x="1402" y="1265"/>
+ <point x="1561" y="1431" type="curve"/>
+ </contour>
+ <contour>
+ <point x="700" y="0" type="line"/>
+ <point x="704" y="78"/>
+ <point x="743" y="233"/>
+ <point x="791" y="426" type="curve" smooth="yes"/>
+ <point x="854" y="681" type="line"/>
+ <point x="664" y="681" type="line"/>
+ <point x="601" y="426" type="line" smooth="yes"/>
+ <point x="553" y="233"/>
+ <point x="514" y="78"/>
+ <point x="480" y="0" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mA_.glif b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mA_.glif
new file mode 100644
index 0000000..586e494
--- /dev/null
+++ b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mA_.glif
@@ -0,0 +1,77 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmA" format="2">
+ <advance width="1107"/>
+ <unicode hex="0061"/>
+ <anchor x="860" y="0" name="H"/>
+ <anchor x="455" y="-100" name="L"/>
+ <anchor x="1065" y="0" name="O"/>
+ <anchor x="1310" y="1000" name="R"/>
+ <anchor x="755" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="972" y="0" type="line"/>
+ <point x="965" y="48"/>
+ <point x="960" y="98"/>
+ <point x="960" y="149" type="curve" smooth="yes"/>
+ <point x="960" y="214"/>
+ <point x="967" y="284"/>
+ <point x="987" y="363" type="curve"/>
+ <point x="1077" y="726" type="line"/>
+ <point x="1081" y="744"/>
+ <point x="1084" y="762"/>
+ <point x="1084" y="779" type="curve" smooth="yes"/>
+ <point x="1084" y="912"/>
+ <point x="955" y="1019"/>
+ <point x="751" y="1019" type="curve" smooth="yes"/>
+ <point x="599" y="1019"/>
+ <point x="502" y="974"/>
+ <point x="389" y="931" type="curve"/>
+ <point x="373" y="889"/>
+ <point x="343" y="783"/>
+ <point x="331" y="740" type="curve"/>
+ <point x="468" y="820"/>
+ <point x="560" y="862"/>
+ <point x="666" y="862" type="curve" smooth="yes"/>
+ <point x="798" y="862"/>
+ <point x="885" y="810"/>
+ <point x="885" y="718" type="curve" smooth="yes"/>
+ <point x="885" y="705"/>
+ <point x="884" y="691"/>
+ <point x="880" y="677" type="curve" smooth="yes"/>
+ <point x="867" y="622" type="line"/>
+ <point x="825" y="619"/>
+ <point x="661" y="605"/>
+ <point x="591" y="598" type="curve" smooth="yes"/>
+ <point x="282" y="568"/>
+ <point x="102" y="415"/>
+ <point x="102" y="233" type="curve" smooth="yes"/>
+ <point x="102" y="103"/>
+ <point x="223" y="-25"/>
+ <point x="390" y="-25" type="curve" smooth="yes"/>
+ <point x="514" y="-25"/>
+ <point x="674" y="47"/>
+ <point x="779" y="152" type="curve"/>
+ <point x="779" y="89"/>
+ <point x="787" y="31"/>
+ <point x="792" y="0" type="curve"/>
+ </contour>
+ <contour>
+ <point x="791" y="319" type="line"/>
+ <point x="674" y="191"/>
+ <point x="553" y="137"/>
+ <point x="451" y="137" type="curve" smooth="yes"/>
+ <point x="355" y="137"/>
+ <point x="290" y="192"/>
+ <point x="290" y="264" type="curve" smooth="yes"/>
+ <point x="290" y="274"/>
+ <point x="291" y="285"/>
+ <point x="294" y="296" type="curve" smooth="yes"/>
+ <point x="315" y="380"/>
+ <point x="432" y="450"/>
+ <point x="566" y="461" type="curve" smooth="yes"/>
+ <point x="631" y="466"/>
+ <point x="782" y="483"/>
+ <point x="832" y="485" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mA_A_cute.glif b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mA_A_cute.glif
new file mode 100644
index 0000000..198d6db
--- /dev/null
+++ b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mA_A_cute.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmAAcute" format="2">
+ <advance width="1107"/>
+ <unicode hex="00E1"/>
+ <anchor x="860" y="0" name="H"/>
+ <anchor x="455" y="-100" name="L"/>
+ <anchor x="1065" y="0" name="O"/>
+ <anchor x="1310" y="1000" name="R"/>
+ <anchor x="889" y="1635" name="U"/>
+ <outline>
+ <component base="LtnSmA"/>
+ <component base="CombAcute" xOffset="1110"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mA_C_ircum.glif b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mA_C_ircum.glif
new file mode 100644
index 0000000..f5cfb16
--- /dev/null
+++ b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mA_C_ircum.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmACircum" format="2">
+ <advance width="1107"/>
+ <unicode hex="00E2"/>
+ <anchor x="860" y="0" name="H"/>
+ <anchor x="455" y="-100" name="L"/>
+ <anchor x="1065" y="0" name="O"/>
+ <anchor x="1310" y="1000" name="R"/>
+ <anchor x="854" y="1635" name="U"/>
+ <outline>
+ <component base="LtnSmA"/>
+ <component base="CombCircum" xOffset="1075"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mA_D_iaer.glif b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mA_D_iaer.glif
new file mode 100644
index 0000000..6f05301
--- /dev/null
+++ b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mA_D_iaer.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmADiaer" format="2">
+ <advance width="1107"/>
+ <unicode hex="00E4"/>
+ <anchor x="860" y="0" name="H"/>
+ <anchor x="455" y="-100" name="L"/>
+ <anchor x="1065" y="0" name="O"/>
+ <anchor x="1310" y="1000" name="R"/>
+ <anchor x="852" y="1505" name="U"/>
+ <outline>
+ <component base="LtnSmA"/>
+ <component base="CombDiaer" xOffset="1105"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mA_G_rave.glif b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mA_G_rave.glif
new file mode 100644
index 0000000..9048920
--- /dev/null
+++ b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mA_G_rave.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmAGrave" format="2">
+ <advance width="1107"/>
+ <unicode hex="00E0"/>
+ <anchor x="860" y="0" name="H"/>
+ <anchor x="455" y="-100" name="L"/>
+ <anchor x="1065" y="0" name="O"/>
+ <anchor x="1310" y="1000" name="R"/>
+ <anchor x="889" y="1635" name="U"/>
+ <outline>
+ <component base="LtnSmA"/>
+ <component base="CombGrave" xOffset="1090"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mA_R_ingA_bv.glif b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mA_R_ingA_bv.glif
new file mode 100644
index 0000000..8ada58f
--- /dev/null
+++ b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mA_R_ingA_bv.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmARingAbv" format="2">
+ <advance width="1107"/>
+ <unicode hex="00E5"/>
+ <anchor x="860" y="0" name="H"/>
+ <anchor x="455" y="-100" name="L"/>
+ <anchor x="1065" y="0" name="O"/>
+ <anchor x="1310" y="1000" name="R"/>
+ <anchor x="919" y="1635" name="U"/>
+ <outline>
+ <component base="LtnSmA"/>
+ <component base="CombRingAbv" xOffset="1140"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mA_T_ilde.glif b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mA_T_ilde.glif
new file mode 100644
index 0000000..c29348b
--- /dev/null
+++ b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mA_T_ilde.glif
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmATilde" format="2">
+ <advance width="1107"/>
+ <unicode hex="00E3"/>
+ <anchor x="860" y="0" name="H"/>
+ <anchor x="455" y="-100" name="L"/>
+ <anchor x="1065" y="0" name="O"/>
+ <anchor x="1310" y="1000" name="R"/>
+ <anchor x="850" y="1475" name="U"/>
+ <outline>
+ <component base="LtnSmA"/>
+ <component base="CombTilde" xOffset="1140"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mB_.glif b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mB_.glif
new file mode 100644
index 0000000..b3a3696
--- /dev/null
+++ b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mB_.glif
@@ -0,0 +1,55 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmB" format="2">
+ <advance width="1144"/>
+ <unicode hex="0062"/>
+ <anchor x="530" y="0" name="H"/>
+ <anchor x="505" y="-100" name="L"/>
+ <anchor x="1345" y="1000" name="R"/>
+ <anchor x="938" y="1635" name="U"/>
+ <outline>
+ <contour>
+ <point x="437" y="1570" type="line"/>
+ <point x="437" y="1456"/>
+ <point x="402" y="1246"/>
+ <point x="367" y="1105" type="curve" smooth="yes"/>
+ <point x="110" y="85" type="line"/>
+ <point x="198" y="44"/>
+ <point x="355" y="-25"/>
+ <point x="517" y="-25" type="curve" smooth="yes"/>
+ <point x="675" y="-25"/>
+ <point x="795" y="24"/>
+ <point x="907" y="125" type="curve" smooth="yes"/>
+ <point x="1050" y="255"/>
+ <point x="1162" y="466"/>
+ <point x="1162" y="695" type="curve" smooth="yes"/>
+ <point x="1162" y="930"/>
+ <point x="1046" y="1020"/>
+ <point x="907" y="1020" type="curve" smooth="yes"/>
+ <point x="754" y="1020"/>
+ <point x="584" y="878"/>
+ <point x="456" y="719" type="curve"/>
+ <point x="552" y="1105" type="line" smooth="yes"/>
+ <point x="600" y="1296"/>
+ <point x="627" y="1508"/>
+ <point x="627" y="1570" type="curve"/>
+ </contour>
+ <contour>
+ <point x="382" y="429" type="line"/>
+ <point x="485" y="617"/>
+ <point x="708" y="850"/>
+ <point x="822" y="850" type="curve" smooth="yes"/>
+ <point x="913" y="850"/>
+ <point x="972" y="784"/>
+ <point x="972" y="635" type="curve" smooth="yes"/>
+ <point x="972" y="469"/>
+ <point x="909" y="336"/>
+ <point x="822" y="250" type="curve" smooth="yes"/>
+ <point x="741" y="169"/>
+ <point x="638" y="125"/>
+ <point x="552" y="125" type="curve" smooth="yes"/>
+ <point x="466" y="125"/>
+ <point x="376" y="167"/>
+ <point x="325" y="200" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mC_.glif b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mC_.glif
new file mode 100644
index 0000000..f54fbe9
--- /dev/null
+++ b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mC_.glif
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmC" format="2">
+ <advance width="989"/>
+ <unicode hex="0063"/>
+ <anchor x="520" y="0" name="H"/>
+ <anchor x="495" y="-100" name="L"/>
+ <anchor x="1210" y="1000" name="R"/>
+ <anchor x="785" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="917" y="255" type="line"/>
+ <point x="811" y="179"/>
+ <point x="703" y="137"/>
+ <point x="583" y="137" type="curve" smooth="yes"/>
+ <point x="427" y="137"/>
+ <point x="331" y="239"/>
+ <point x="331" y="406" type="curve" smooth="yes"/>
+ <point x="331" y="619"/>
+ <point x="499" y="858"/>
+ <point x="742" y="858" type="curve" smooth="yes"/>
+ <point x="845" y="858"/>
+ <point x="924" y="824"/>
+ <point x="998" y="760" type="curve"/>
+ <point x="1077" y="936" type="line"/>
+ <point x="1016" y="985"/>
+ <point x="902" y="1020"/>
+ <point x="789" y="1020" type="curve" smooth="yes"/>
+ <point x="420" y="1020"/>
+ <point x="139" y="737"/>
+ <point x="139" y="381" type="curve" smooth="yes"/>
+ <point x="139" y="130"/>
+ <point x="309" y="-25"/>
+ <point x="532" y="-25" type="curve" smooth="yes"/>
+ <point x="682" y="-25"/>
+ <point x="785" y="9"/>
+ <point x="904" y="83" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mD_.glif b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mD_.glif
new file mode 100644
index 0000000..4ea9ea1
--- /dev/null
+++ b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mD_.glif
@@ -0,0 +1,65 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmD" format="2">
+ <advance width="1197"/>
+ <unicode hex="0064"/>
+ <anchor x="545" y="0" name="H"/>
+ <anchor x="520" y="-100" name="L"/>
+ <anchor x="1380" y="1000" name="R"/>
+ <anchor x="953" y="1635" name="U"/>
+ <outline>
+ <contour>
+ <point x="1144" y="1570" type="line"/>
+ <point x="1144" y="1456"/>
+ <point x="1114" y="1327"/>
+ <point x="1079" y="1175" type="curve" smooth="yes"/>
+ <point x="1024" y="935" type="line"/>
+ <point x="957" y="978"/>
+ <point x="854" y="1020"/>
+ <point x="759" y="1020" type="curve" smooth="yes"/>
+ <point x="650" y="1020"/>
+ <point x="534" y="979"/>
+ <point x="429" y="895" type="curve" smooth="yes"/>
+ <point x="262" y="761"/>
+ <point x="139" y="532"/>
+ <point x="139" y="288" type="curve" smooth="yes"/>
+ <point x="139" y="94"/>
+ <point x="250" y="-25"/>
+ <point x="424" y="-25" type="curve" smooth="yes"/>
+ <point x="563" y="-25"/>
+ <point x="791" y="141"/>
+ <point x="899" y="305" type="curve"/>
+ <point x="875" y="196"/>
+ <point x="869" y="93"/>
+ <point x="869" y="0" type="curve"/>
+ <point x="1052" y="0" type="line"/>
+ <point x="1048" y="23"/>
+ <point x="1047" y="53"/>
+ <point x="1047" y="90" type="curve" smooth="yes"/>
+ <point x="1047" y="190"/>
+ <point x="1063" y="340"/>
+ <point x="1107" y="520" type="curve" smooth="yes"/>
+ <point x="1267" y="1175" type="line" smooth="yes"/>
+ <point x="1310" y="1351"/>
+ <point x="1337" y="1475"/>
+ <point x="1337" y="1570" type="curve"/>
+ </contour>
+ <contour>
+ <point x="930" y="545" type="line"/>
+ <point x="846" y="370"/>
+ <point x="592" y="130"/>
+ <point x="479" y="130" type="curve" smooth="yes"/>
+ <point x="374" y="130"/>
+ <point x="330" y="195"/>
+ <point x="330" y="316" type="curve" smooth="yes"/>
+ <point x="330" y="460"/>
+ <point x="397" y="649"/>
+ <point x="509" y="760" type="curve" smooth="yes"/>
+ <point x="572" y="822"/>
+ <point x="643" y="855"/>
+ <point x="734" y="855" type="curve" smooth="yes"/>
+ <point x="835" y="855"/>
+ <point x="898" y="832"/>
+ <point x="984" y="780" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mE_.glif b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mE_.glif
new file mode 100644
index 0000000..a3a6490
--- /dev/null
+++ b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mE_.glif
@@ -0,0 +1,52 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmE" format="2">
+ <advance width="1042"/>
+ <unicode hex="0065"/>
+ <anchor x="485" y="0" name="H"/>
+ <anchor x="484" y="-100" name="L"/>
+ <anchor x="840" y="0" name="O"/>
+ <anchor x="1285" y="1000" name="R"/>
+ <anchor x="784" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="967" y="270" type="line"/>
+ <point x="854" y="189"/>
+ <point x="700" y="135"/>
+ <point x="567" y="135" type="curve" smooth="yes"/>
+ <point x="386" y="135"/>
+ <point x="317" y="263"/>
+ <point x="317" y="420" type="curve" smooth="yes"/>
+ <point x="317" y="686"/>
+ <point x="522" y="872"/>
+ <point x="720" y="872" type="curve" smooth="yes"/>
+ <point x="813" y="872"/>
+ <point x="883" y="823"/>
+ <point x="883" y="753" type="curve" smooth="yes"/>
+ <point x="883" y="660"/>
+ <point x="766" y="590"/>
+ <point x="539" y="590" type="curve" smooth="yes"/>
+ <point x="468" y="590"/>
+ <point x="382" y="596"/>
+ <point x="279" y="610" type="curve"/>
+ <point x="279" y="477" type="line"/>
+ <point x="391" y="461"/>
+ <point x="487" y="453"/>
+ <point x="569" y="453" type="curve" smooth="yes"/>
+ <point x="931" y="453"/>
+ <point x="1077" y="609"/>
+ <point x="1077" y="791" type="curve" smooth="yes"/>
+ <point x="1077" y="899"/>
+ <point x="986" y="1020"/>
+ <point x="772" y="1020" type="curve" smooth="yes"/>
+ <point x="399" y="1020"/>
+ <point x="137" y="710"/>
+ <point x="137" y="380" type="curve" smooth="yes"/>
+ <point x="137" y="147"/>
+ <point x="258" y="-25"/>
+ <point x="523" y="-25" type="curve" smooth="yes"/>
+ <point x="689" y="-25"/>
+ <point x="849" y="26"/>
+ <point x="955" y="83" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mF_.glif b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mF_.glif
new file mode 100644
index 0000000..ede52a9
--- /dev/null
+++ b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mF_.glif
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmF" format="2">
+ <advance width="756"/>
+ <unicode hex="0066"/>
+ <anchor x="290" y="0" name="H"/>
+ <anchor x="315" y="-100" name="L"/>
+ <anchor x="908" y="1635" name="U"/>
+ <outline>
+ <contour>
+ <point x="180" y="833" type="line"/>
+ <point x="835" y="833" type="line"/>
+ <point x="871" y="975" type="line"/>
+ <point x="216" y="975" type="line"/>
+ </contour>
+ <contour>
+ <point x="1106" y="1519" type="line"/>
+ <point x="1062" y="1555"/>
+ <point x="981" y="1588"/>
+ <point x="903" y="1588" type="curve" smooth="yes"/>
+ <point x="687" y="1588"/>
+ <point x="533" y="1478"/>
+ <point x="448" y="1147" type="curve" smooth="yes"/>
+ <point x="403" y="972"/>
+ <point x="244" y="334"/>
+ <point x="223" y="0" type="curve"/>
+ <point x="436" y="0" type="line"/>
+ <point x="430" y="28"/>
+ <point x="427" y="66"/>
+ <point x="427" y="110" type="curve" smooth="yes"/>
+ <point x="427" y="213"/>
+ <point x="447" y="351"/>
+ <point x="476" y="484" type="curve" smooth="yes"/>
+ <point x="510" y="641"/>
+ <point x="558" y="846"/>
+ <point x="641" y="1186" type="curve" smooth="yes"/>
+ <point x="682" y="1353"/>
+ <point x="758" y="1421"/>
+ <point x="862" y="1421" type="curve" smooth="yes"/>
+ <point x="920" y="1421"/>
+ <point x="988" y="1392"/>
+ <point x="1022" y="1362" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mG_.glif b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mG_.glif
new file mode 100644
index 0000000..8931f8d
--- /dev/null
+++ b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mG_.glif
@@ -0,0 +1,100 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmG" format="2">
+ <advance width="1075"/>
+ <unicode hex="0067"/>
+ <anchor x="368" y="-465" name="H"/>
+ <anchor x="351" y="-535" name="L"/>
+ <anchor x="1285" y="1000" name="R"/>
+ <anchor x="730" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="360" y="389" type="line"/>
+ <point x="277" y="352"/>
+ <point x="168" y="266"/>
+ <point x="168" y="176" type="curve" smooth="yes"/>
+ <point x="168" y="96"/>
+ <point x="246" y="33"/>
+ <point x="483" y="-5" type="curve" smooth="yes"/>
+ <point x="707" y="-41"/>
+ <point x="781" y="-94"/>
+ <point x="781" y="-151" type="curve" smooth="yes"/>
+ <point x="781" y="-256"/>
+ <point x="580" y="-353"/>
+ <point x="411" y="-353" type="curve" smooth="yes"/>
+ <point x="202" y="-353"/>
+ <point x="104" y="-271"/>
+ <point x="104" y="-196" type="curve" smooth="yes"/>
+ <point x="104" y="-189"/>
+ <point x="104" y="-183"/>
+ <point x="106" y="-176" type="curve" smooth="yes"/>
+ <point x="120" y="-119"/>
+ <point x="170" y="-55"/>
+ <point x="409" y="20" type="curve"/>
+ <point x="410" y="48"/>
+ <point x="248" y="73"/>
+ <point x="248" y="73" type="curve"/>
+ <point x="53" y="12"/>
+ <point x="-51" y="-77"/>
+ <point x="-78" y="-186" type="curve" smooth="yes"/>
+ <point x="-82" y="-201"/>
+ <point x="-84" y="-217"/>
+ <point x="-84" y="-231" type="curve" smooth="yes"/>
+ <point x="-84" y="-396"/>
+ <point x="158" y="-495"/>
+ <point x="371" y="-495" type="curve" smooth="yes"/>
+ <point x="632" y="-495"/>
+ <point x="972" y="-360"/>
+ <point x="972" y="-125" type="curve" smooth="yes"/>
+ <point x="972" y="0"/>
+ <point x="849" y="90"/>
+ <point x="619" y="127" type="curve" smooth="yes"/>
+ <point x="403" y="162"/>
+ <point x="341" y="184"/>
+ <point x="341" y="218" type="curve" smooth="yes"/>
+ <point x="341" y="263"/>
+ <point x="447" y="325"/>
+ <point x="522" y="342" type="curve"/>
+ </contour>
+ <contour>
+ <point x="1244" y="1019" type="line"/>
+ <point x="1143" y="1012"/>
+ <point x="1002" y="977"/>
+ <point x="899" y="921" type="curve"/>
+ <point x="936" y="809" type="line"/>
+ <point x="1037" y="846"/>
+ <point x="1121" y="860"/>
+ <point x="1194" y="862" type="curve"/>
+ </contour>
+ <contour>
+ <point x="212" y="613" type="curve" smooth="yes"/>
+ <point x="212" y="449"/>
+ <point x="356" y="319"/>
+ <point x="554" y="319" type="curve" smooth="yes"/>
+ <point x="791" y="319"/>
+ <point x="1030" y="495"/>
+ <point x="1030" y="729" type="curve" smooth="yes"/>
+ <point x="1030" y="894"/>
+ <point x="887" y="1019"/>
+ <point x="689" y="1019" type="curve" smooth="yes"/>
+ <point x="441" y="1019"/>
+ <point x="212" y="847"/>
+ </contour>
+ <contour>
+ <point x="857" y="704" type="curve" smooth="yes"/>
+ <point x="857" y="555"/>
+ <point x="712" y="456"/>
+ <point x="578" y="456" type="curve" smooth="yes"/>
+ <point x="463" y="456"/>
+ <point x="385" y="530"/>
+ <point x="385" y="628" type="curve" smooth="yes"/>
+ <point x="385" y="643"/>
+ <point x="387" y="660"/>
+ <point x="391" y="676" type="curve" smooth="yes"/>
+ <point x="421" y="797"/>
+ <point x="530" y="877"/>
+ <point x="663" y="877" type="curve" smooth="yes"/>
+ <point x="779" y="877"/>
+ <point x="857" y="802"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mH_.glif b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mH_.glif
new file mode 100644
index 0000000..08afbac
--- /dev/null
+++ b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mH_.glif
@@ -0,0 +1,54 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmH" format="2">
+ <advance width="1185"/>
+ <unicode hex="0068"/>
+ <anchor x="190" y="0" name="H"/>
+ <anchor x="550" y="-100" name="L"/>
+ <anchor x="933" y="1635" name="U"/>
+ <outline>
+ <contour>
+ <point x="1055" y="0" type="line"/>
+ <point x="1047" y="30"/>
+ <point x="1043" y="65"/>
+ <point x="1043" y="102" type="curve" smooth="yes"/>
+ <point x="1043" y="143"/>
+ <point x="1048" y="188"/>
+ <point x="1055" y="238" type="curve" smooth="yes"/>
+ <point x="1069" y="327"/>
+ <point x="1170" y="636"/>
+ <point x="1170" y="745" type="curve" smooth="yes"/>
+ <point x="1170" y="917"/>
+ <point x="1095" y="1020"/>
+ <point x="930" y="1020" type="curve" smooth="yes"/>
+ <point x="760" y="1020"/>
+ <point x="591" y="877"/>
+ <point x="475" y="723" type="curve"/>
+ <point x="571" y="1105" type="line" smooth="yes"/>
+ <point x="609" y="1259"/>
+ <point x="645" y="1482"/>
+ <point x="645" y="1570" type="curve"/>
+ <point x="455" y="1570" type="line"/>
+ <point x="455" y="1456"/>
+ <point x="423" y="1257"/>
+ <point x="385" y="1105" type="curve" smooth="yes"/>
+ <point x="110" y="0" type="line"/>
+ <point x="295" y="0" type="line"/>
+ <point x="397" y="408" type="line"/>
+ <point x="492" y="612"/>
+ <point x="717" y="850"/>
+ <point x="840" y="850" type="curve" smooth="yes"/>
+ <point x="937" y="850"/>
+ <point x="970" y="798"/>
+ <point x="970" y="680" type="curve" smooth="yes"/>
+ <point x="970" y="592"/>
+ <point x="886" y="319"/>
+ <point x="872" y="203" type="curve" smooth="yes"/>
+ <point x="867" y="158"/>
+ <point x="864" y="115"/>
+ <point x="864" y="77" type="curve" smooth="yes"/>
+ <point x="864" y="48"/>
+ <point x="866" y="21"/>
+ <point x="870" y="0" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mI_.glif b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mI_.glif
new file mode 100644
index 0000000..65ed550
--- /dev/null
+++ b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mI_.glif
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmI" format="2">
+ <advance width="554"/>
+ <unicode hex="0069"/>
+ <anchor x="235" y="0" name="H"/>
+ <anchor x="250" y="-100" name="L"/>
+ <anchor x="455" y="0" name="O"/>
+ <anchor x="745" y="1000" name="R"/>
+ <anchor x="472" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="361" y="1297" type="curve" smooth="yes"/>
+ <point x="361" y="1237"/>
+ <point x="404" y="1186"/>
+ <point x="467" y="1186" type="curve" smooth="yes"/>
+ <point x="552" y="1186"/>
+ <point x="624" y="1259"/>
+ <point x="624" y="1338" type="curve" smooth="yes"/>
+ <point x="624" y="1399"/>
+ <point x="578" y="1450"/>
+ <point x="513" y="1450" type="curve" smooth="yes"/>
+ <point x="428" y="1450"/>
+ <point x="361" y="1375"/>
+ </contour>
+ <contour>
+ <point x="335" y="1000" type="line"/>
+ <point x="335" y="886"/>
+ <point x="286" y="688"/>
+ <point x="246" y="537" type="curve" smooth="yes"/>
+ <point x="207" y="388" type="line" smooth="yes"/>
+ <point x="180" y="284"/>
+ <point x="165" y="172"/>
+ <point x="165" y="87" type="curve" smooth="yes"/>
+ <point x="165" y="53"/>
+ <point x="167" y="24"/>
+ <point x="172" y="0" type="curve"/>
+ <point x="372" y="0" type="line"/>
+ <point x="365" y="37"/>
+ <point x="360" y="85"/>
+ <point x="360" y="136" type="curve" smooth="yes"/>
+ <point x="360" y="208"/>
+ <point x="368" y="287"/>
+ <point x="386" y="357" type="curve" smooth="yes"/>
+ <point x="431" y="536" type="line" smooth="yes"/>
+ <point x="476" y="712"/>
+ <point x="525" y="912"/>
+ <point x="525" y="1000" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mJ_.glif b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mJ_.glif
new file mode 100644
index 0000000..e9e18b8
--- /dev/null
+++ b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mJ_.glif
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmJ" format="2">
+ <advance width="602"/>
+ <unicode hex="006A"/>
+ <anchor x="-60" y="-500" name="L"/>
+ <anchor x="510" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="370" y="1000" type="line"/>
+ <point x="370" y="856"/>
+ <point x="288" y="374"/>
+ <point x="214" y="77" type="curve" smooth="yes"/>
+ <point x="152" y="-173"/>
+ <point x="29" y="-295"/>
+ <point x="-77" y="-295" type="curve" smooth="yes"/>
+ <point x="-133" y="-295"/>
+ <point x="-217" y="-264"/>
+ <point x="-253" y="-229" type="curve"/>
+ <point x="-328" y="-397" type="line"/>
+ <point x="-278" y="-437"/>
+ <point x="-170" y="-465"/>
+ <point x="-114" y="-465" type="curve" smooth="yes"/>
+ <point x="103" y="-465"/>
+ <point x="303" y="-314"/>
+ <point x="396" y="66" type="curve" smooth="yes"/>
+ <point x="455" y="307"/>
+ <point x="560" y="872"/>
+ <point x="560" y="1000" type="curve"/>
+ </contour>
+ <contour>
+ <point x="397" y="1297" type="curve" smooth="yes"/>
+ <point x="397" y="1237"/>
+ <point x="440" y="1186"/>
+ <point x="503" y="1186" type="curve" smooth="yes"/>
+ <point x="588" y="1186"/>
+ <point x="660" y="1259"/>
+ <point x="660" y="1338" type="curve" smooth="yes"/>
+ <point x="660" y="1399"/>
+ <point x="614" y="1450"/>
+ <point x="549" y="1450" type="curve" smooth="yes"/>
+ <point x="464" y="1450"/>
+ <point x="397" y="1375"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mK_.glif b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mK_.glif
new file mode 100644
index 0000000..28fbc71
--- /dev/null
+++ b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mK_.glif
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmK" format="2">
+ <advance width="1059"/>
+ <unicode hex="006B"/>
+ <anchor x="840" y="0" name="H"/>
+ <anchor x="537" y="-100" name="L"/>
+ <anchor x="1225" y="1000" name="R"/>
+ <anchor x="920" y="1635" name="U"/>
+ <outline>
+ <contour>
+ <point x="295" y="0" type="line"/>
+ <point x="570" y="1105" type="line" smooth="yes"/>
+ <point x="614" y="1280"/>
+ <point x="645" y="1482"/>
+ <point x="645" y="1570" type="curve"/>
+ <point x="455" y="1570" type="line"/>
+ <point x="455" y="1456"/>
+ <point x="424" y="1259"/>
+ <point x="386" y="1107" type="curve" smooth="yes"/>
+ <point x="338" y="915"/>
+ <point x="110" y="0"/>
+ <point x="110" y="0" type="curve"/>
+ </contour>
+ <contour>
+ <point x="909" y="1000" type="line"/>
+ <point x="885" y="863"/>
+ <point x="654" y="700"/>
+ <point x="379" y="539" type="curve"/>
+ <point x="386" y="540"/>
+ <point x="393" y="540"/>
+ <point x="400" y="540" type="curve" smooth="yes"/>
+ <point x="467" y="540"/>
+ <point x="559" y="514"/>
+ <point x="559" y="514" type="curve"/>
+ <point x="902" y="702"/>
+ <point x="1134" y="884"/>
+ <point x="1134" y="1000" type="curve"/>
+ </contour>
+ <contour>
+ <point x="1010" y="0" type="line"/>
+ <point x="863" y="238"/>
+ <point x="718" y="600"/>
+ <point x="527" y="600" type="curve"/>
+ <point x="385" y="529" type="line"/>
+ <point x="540" y="529"/>
+ <point x="667" y="246"/>
+ <point x="775" y="0" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mL_.glif b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mL_.glif
new file mode 100644
index 0000000..06d68fd
--- /dev/null
+++ b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mL_.glif
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmL" format="2">
+ <advance width="575"/>
+ <unicode hex="006C"/>
+ <anchor x="230" y="0" name="H"/>
+ <anchor x="255" y="-100" name="L"/>
+ <anchor x="740" y="1000" name="R"/>
+ <anchor x="630" y="1635" name="U"/>
+ <outline>
+ <contour>
+ <point x="465" y="1570" type="line"/>
+ <point x="465" y="1456"/>
+ <point x="434" y="1259"/>
+ <point x="396" y="1107" type="curve" smooth="yes"/>
+ <point x="241" y="489" type="line" smooth="yes"/>
+ <point x="204" y="343"/>
+ <point x="186" y="220"/>
+ <point x="186" y="104" type="curve" smooth="yes"/>
+ <point x="186" y="69"/>
+ <point x="188" y="34"/>
+ <point x="191" y="0" type="curve"/>
+ <point x="391" y="0" type="line"/>
+ <point x="386" y="32"/>
+ <point x="384" y="70"/>
+ <point x="384" y="112" type="curve" smooth="yes"/>
+ <point x="384" y="230"/>
+ <point x="402" y="380"/>
+ <point x="436" y="517" type="curve" smooth="yes"/>
+ <point x="580" y="1105" type="line" smooth="yes"/>
+ <point x="623" y="1280"/>
+ <point x="655" y="1482"/>
+ <point x="655" y="1570" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mM_.glif b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mM_.glif
new file mode 100644
index 0000000..a6b80db
--- /dev/null
+++ b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mM_.glif
@@ -0,0 +1,80 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmM" format="2">
+ <advance width="1680"/>
+ <unicode hex="006D"/>
+ <anchor x="805" y="0" name="H"/>
+ <anchor x="780" y="-100" name="L"/>
+ <anchor x="1080" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="1520" y="0" type="line"/>
+ <point x="1512" y="30"/>
+ <point x="1510" y="65"/>
+ <point x="1510" y="102" type="curve" smooth="yes"/>
+ <point x="1510" y="143"/>
+ <point x="1515" y="188"/>
+ <point x="1522" y="238" type="curve" smooth="yes"/>
+ <point x="1536" y="327"/>
+ <point x="1655" y="691"/>
+ <point x="1655" y="800" type="curve" smooth="yes"/>
+ <point x="1655" y="930"/>
+ <point x="1594" y="1020"/>
+ <point x="1445" y="1020" type="curve" smooth="yes"/>
+ <point x="1292" y="1020"/>
+ <point x="1124" y="867"/>
+ <point x="1026" y="680" type="curve"/>
+ <point x="1030" y="704"/>
+ <point x="1045" y="778"/>
+ <point x="1045" y="800" type="curve" smooth="yes"/>
+ <point x="1045" y="932"/>
+ <point x="982" y="1020"/>
+ <point x="860" y="1020" type="curve" smooth="yes"/>
+ <point x="717" y="1020"/>
+ <point x="563" y="879"/>
+ <point x="446" y="680" type="curve"/>
+ <point x="466" y="753"/>
+ <point x="476" y="880"/>
+ <point x="476" y="961" type="curve" smooth="yes"/>
+ <point x="476" y="976"/>
+ <point x="476" y="989"/>
+ <point x="475" y="1000" type="curve"/>
+ <point x="295" y="1000" type="line"/>
+ <point x="296" y="983"/>
+ <point x="296" y="964"/>
+ <point x="296" y="945" type="curve" smooth="yes"/>
+ <point x="296" y="825"/>
+ <point x="283" y="680"/>
+ <point x="262" y="595" type="curve" smooth="yes"/>
+ <point x="115" y="0" type="line"/>
+ <point x="300" y="0" type="line"/>
+ <point x="389" y="359" type="line"/>
+ <point x="475" y="573"/>
+ <point x="685" y="850"/>
+ <point x="775" y="850" type="curve" smooth="yes"/>
+ <point x="833" y="850"/>
+ <point x="865" y="813"/>
+ <point x="865" y="720" type="curve" smooth="yes"/>
+ <point x="865" y="679"/>
+ <point x="846" y="583"/>
+ <point x="822" y="486" type="curve" smooth="yes"/>
+ <point x="700" y="0" type="line"/>
+ <point x="885" y="0" type="line"/>
+ <point x="974" y="359" type="line"/>
+ <point x="1032" y="531"/>
+ <point x="1242" y="850"/>
+ <point x="1357" y="850" type="curve" smooth="yes"/>
+ <point x="1425" y="850"/>
+ <point x="1457" y="813"/>
+ <point x="1457" y="720" type="curve" smooth="yes"/>
+ <point x="1457" y="632"/>
+ <point x="1349" y="319"/>
+ <point x="1335" y="203" type="curve" smooth="yes"/>
+ <point x="1330" y="158"/>
+ <point x="1327" y="115"/>
+ <point x="1327" y="77" type="curve" smooth="yes"/>
+ <point x="1327" y="48"/>
+ <point x="1331" y="21"/>
+ <point x="1335" y="0" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mN_.glif b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mN_.glif
new file mode 100644
index 0000000..1f38f20
--- /dev/null
+++ b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mN_.glif
@@ -0,0 +1,57 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmN" format="2">
+ <advance width="1195"/>
+ <unicode hex="006E"/>
+ <anchor x="540" y="0" name="H"/>
+ <anchor x="565" y="-100" name="L"/>
+ <anchor x="815" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="1060" y="0" type="line"/>
+ <point x="1052" y="30"/>
+ <point x="1050" y="65"/>
+ <point x="1050" y="102" type="curve" smooth="yes"/>
+ <point x="1050" y="143"/>
+ <point x="1055" y="188"/>
+ <point x="1062" y="238" type="curve" smooth="yes"/>
+ <point x="1075" y="327"/>
+ <point x="1175" y="636"/>
+ <point x="1175" y="745" type="curve" smooth="yes"/>
+ <point x="1175" y="917"/>
+ <point x="1100" y="1020"/>
+ <point x="935" y="1020" type="curve" smooth="yes"/>
+ <point x="755" y="1020"/>
+ <point x="581" y="870"/>
+ <point x="445" y="672" type="curve"/>
+ <point x="463" y="740"/>
+ <point x="477" y="873"/>
+ <point x="477" y="957" type="curve" smooth="yes"/>
+ <point x="477" y="973"/>
+ <point x="476" y="988"/>
+ <point x="475" y="1000" type="curve"/>
+ <point x="295" y="1000" type="line"/>
+ <point x="295" y="961" type="line" smooth="yes"/>
+ <point x="295" y="833"/>
+ <point x="283" y="679"/>
+ <point x="262" y="595" type="curve" smooth="yes"/>
+ <point x="115" y="0" type="line"/>
+ <point x="300" y="0" type="line"/>
+ <point x="392" y="370" type="line"/>
+ <point x="478" y="573"/>
+ <point x="708" y="850"/>
+ <point x="835" y="850" type="curve" smooth="yes"/>
+ <point x="927" y="850"/>
+ <point x="975" y="798"/>
+ <point x="975" y="680" type="curve" smooth="yes"/>
+ <point x="975" y="592"/>
+ <point x="888" y="319"/>
+ <point x="875" y="203" type="curve" smooth="yes"/>
+ <point x="870" y="158"/>
+ <point x="867" y="115"/>
+ <point x="867" y="77" type="curve" smooth="yes"/>
+ <point x="867" y="48"/>
+ <point x="871" y="21"/>
+ <point x="875" y="0" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mO_.glif b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mO_.glif
new file mode 100644
index 0000000..bec7b9e
--- /dev/null
+++ b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mO_.glif
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmO" format="2">
+ <advance width="1133"/>
+ <unicode hex="006F"/>
+ <anchor x="510" y="0" name="H"/>
+ <anchor x="505" y="-100" name="L"/>
+ <anchor x="800" y="0" name="O"/>
+ <anchor x="1330" y="1000" name="R"/>
+ <anchor x="785" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="142" y="344" type="curve" smooth="yes"/>
+ <point x="142" y="114"/>
+ <point x="306" y="-25"/>
+ <point x="530" y="-25" type="curve" smooth="yes"/>
+ <point x="896" y="-25"/>
+ <point x="1138" y="314"/>
+ <point x="1138" y="648" type="curve" smooth="yes"/>
+ <point x="1138" y="879"/>
+ <point x="985" y="1020"/>
+ <point x="761" y="1020" type="curve" smooth="yes"/>
+ <point x="387" y="1020"/>
+ <point x="142" y="677"/>
+ </contour>
+ <contour>
+ <point x="721" y="862" type="curve" smooth="yes"/>
+ <point x="859" y="862"/>
+ <point x="947" y="767"/>
+ <point x="947" y="611" type="curve" smooth="yes"/>
+ <point x="947" y="391"/>
+ <point x="795" y="132"/>
+ <point x="559" y="132" type="curve" smooth="yes"/>
+ <point x="421" y="132"/>
+ <point x="333" y="226"/>
+ <point x="333" y="380" type="curve" smooth="yes"/>
+ <point x="333" y="599"/>
+ <point x="486" y="862"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mP_.glif b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mP_.glif
new file mode 100644
index 0000000..f9e06b1
--- /dev/null
+++ b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mP_.glif
@@ -0,0 +1,66 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmP" format="2">
+ <advance width="1185"/>
+ <unicode hex="0070"/>
+ <anchor x="105" y="-435" name="H"/>
+ <anchor x="405" y="-500" name="L"/>
+ <anchor x="1360" y="1000" name="R"/>
+ <anchor x="805" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="215" y="-480" type="line"/>
+ <point x="215" y="-388"/>
+ <point x="229" y="-282"/>
+ <point x="255" y="-175" type="curve" smooth="yes"/>
+ <point x="320" y="85" type="line"/>
+ <point x="399" y="20"/>
+ <point x="468" y="-25"/>
+ <point x="575" y="-25" type="curve" smooth="yes"/>
+ <point x="685" y="-25"/>
+ <point x="797" y="9"/>
+ <point x="895" y="85" type="curve" smooth="yes"/>
+ <point x="1063" y="215"/>
+ <point x="1185" y="438"/>
+ <point x="1185" y="680" type="curve" smooth="yes"/>
+ <point x="1185" y="878"/>
+ <point x="1101" y="1020"/>
+ <point x="920" y="1020" type="curve" smooth="yes"/>
+ <point x="757" y="1020"/>
+ <point x="559" y="842"/>
+ <point x="452" y="680" type="curve"/>
+ <point x="468" y="760"/>
+ <point x="477" y="860"/>
+ <point x="477" y="940" type="curve" smooth="yes"/>
+ <point x="477" y="962"/>
+ <point x="477" y="982"/>
+ <point x="475" y="1000" type="curve"/>
+ <point x="295" y="1000" type="line"/>
+ <point x="295" y="971" type="line" smooth="yes"/>
+ <point x="295" y="819"/>
+ <point x="273" y="625"/>
+ <point x="235" y="475" type="curve" smooth="yes"/>
+ <point x="70" y="-175" type="line" smooth="yes"/>
+ <point x="43" y="-281"/>
+ <point x="20" y="-398"/>
+ <point x="20" y="-480" type="curve"/>
+ </contour>
+ <contour>
+ <point x="407" y="432" type="line"/>
+ <point x="544" y="656"/>
+ <point x="732" y="850"/>
+ <point x="840" y="850" type="curve" smooth="yes"/>
+ <point x="939" y="850"/>
+ <point x="990" y="763"/>
+ <point x="990" y="630" type="curve" smooth="yes"/>
+ <point x="990" y="491"/>
+ <point x="926" y="322"/>
+ <point x="815" y="220" type="curve" smooth="yes"/>
+ <point x="759" y="168"/>
+ <point x="693" y="135"/>
+ <point x="615" y="135" type="curve" smooth="yes"/>
+ <point x="523" y="135"/>
+ <point x="479" y="161"/>
+ <point x="365" y="255" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mQ_.glif b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mQ_.glif
new file mode 100644
index 0000000..58d9f87
--- /dev/null
+++ b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mQ_.glif
@@ -0,0 +1,54 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmQ" format="2">
+ <advance width="1115"/>
+ <unicode hex="0071"/>
+ <anchor x="370" y="-500" name="L"/>
+ <anchor x="1320" y="1000" name="R"/>
+ <anchor x="770" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="843" y="-480" type="line"/>
+ <point x="843" y="-391"/>
+ <point x="858" y="-294"/>
+ <point x="885" y="-185" type="curve" smooth="yes"/>
+ <point x="1165" y="945" type="line"/>
+ <point x="1066" y="980"/>
+ <point x="946" y="1020"/>
+ <point x="825" y="1020" type="curve" smooth="yes"/>
+ <point x="675" y="1020"/>
+ <point x="550" y="977"/>
+ <point x="440" y="890" type="curve" smooth="yes"/>
+ <point x="260" y="747"/>
+ <point x="135" y="505"/>
+ <point x="135" y="285" type="curve" smooth="yes"/>
+ <point x="135" y="73"/>
+ <point x="261" y="-25"/>
+ <point x="380" y="-25" type="curve" smooth="yes"/>
+ <point x="524" y="-25"/>
+ <point x="751" y="172"/>
+ <point x="825" y="300" type="curve"/>
+ <point x="693" y="-180" type="line" smooth="yes"/>
+ <point x="662" y="-294"/>
+ <point x="648" y="-414"/>
+ <point x="648" y="-480" type="curve"/>
+ </contour>
+ <contour>
+ <point x="885" y="565" type="line"/>
+ <point x="807" y="413"/>
+ <point x="550" y="140"/>
+ <point x="455" y="140" type="curve" smooth="yes"/>
+ <point x="376" y="140"/>
+ <point x="330" y="199"/>
+ <point x="330" y="330" type="curve" smooth="yes"/>
+ <point x="330" y="481"/>
+ <point x="400" y="658"/>
+ <point x="515" y="760" type="curve" smooth="yes"/>
+ <point x="580" y="817"/>
+ <point x="658" y="855"/>
+ <point x="750" y="855" type="curve" smooth="yes"/>
+ <point x="811" y="855"/>
+ <point x="893" y="840"/>
+ <point x="947" y="817" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mR_.glif b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mR_.glif
new file mode 100644
index 0000000..8037612
--- /dev/null
+++ b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mR_.glif
@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmR" format="2">
+ <advance width="910"/>
+ <unicode hex="0072"/>
+ <anchor x="210" y="0" name="H"/>
+ <anchor x="220" y="-100" name="L"/>
+ <anchor x="670" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="300" y="0" type="line"/>
+ <point x="402" y="415" type="line"/>
+ <point x="502" y="602"/>
+ <point x="703" y="850"/>
+ <point x="785" y="850" type="curve" smooth="yes"/>
+ <point x="831" y="850"/>
+ <point x="855" y="801"/>
+ <point x="855" y="740" type="curve" smooth="yes"/>
+ <point x="855" y="715"/>
+ <point x="852" y="689"/>
+ <point x="845" y="660" type="curve"/>
+ <point x="1010" y="690" type="line"/>
+ <point x="1022" y="737"/>
+ <point x="1030" y="783"/>
+ <point x="1030" y="825" type="curve" smooth="yes"/>
+ <point x="1030" y="935"/>
+ <point x="986" y="1020"/>
+ <point x="865" y="1020" type="curve" smooth="yes"/>
+ <point x="735" y="1020"/>
+ <point x="575" y="867"/>
+ <point x="445" y="675" type="curve"/>
+ <point x="467" y="773"/>
+ <point x="475" y="929"/>
+ <point x="475" y="1000" type="curve"/>
+ <point x="295" y="1000" type="line"/>
+ <point x="295" y="961" type="line" smooth="yes"/>
+ <point x="295" y="833"/>
+ <point x="283" y="679"/>
+ <point x="262" y="595" type="curve" smooth="yes"/>
+ <point x="115" y="0" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mS_.glif b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mS_.glif
new file mode 100644
index 0000000..848ddda
--- /dev/null
+++ b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mS_.glif
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmS" format="2">
+ <advance width="945"/>
+ <unicode hex="0073"/>
+ <anchor x="435" y="0" name="H"/>
+ <anchor x="440" y="-100" name="L"/>
+ <anchor x="710" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="990" y="941" type="line"/>
+ <point x="930" y="978"/>
+ <point x="815" y="1020"/>
+ <point x="640" y="1020" type="curve" smooth="yes"/>
+ <point x="384" y="1020"/>
+ <point x="230" y="881"/>
+ <point x="230" y="716" type="curve" smooth="yes"/>
+ <point x="230" y="614"/>
+ <point x="320" y="533"/>
+ <point x="466" y="461" type="curve" smooth="yes"/>
+ <point x="638" y="376"/>
+ <point x="700" y="333"/>
+ <point x="700" y="265" type="curve" smooth="yes"/>
+ <point x="700" y="188"/>
+ <point x="621" y="132"/>
+ <point x="532" y="132" type="curve" smooth="yes"/>
+ <point x="376" y="132"/>
+ <point x="244" y="216"/>
+ <point x="159" y="325" type="curve"/>
+ <point x="71" y="158" type="line"/>
+ <point x="160" y="60"/>
+ <point x="296" y="-25"/>
+ <point x="488" y="-25" type="curve" smooth="yes"/>
+ <point x="713" y="-25"/>
+ <point x="891" y="106"/>
+ <point x="891" y="306" type="curve" smooth="yes"/>
+ <point x="891" y="432"/>
+ <point x="774" y="515"/>
+ <point x="626" y="593" type="curve" smooth="yes"/>
+ <point x="476" y="672"/>
+ <point x="418" y="695"/>
+ <point x="418" y="753" type="curve" smooth="yes"/>
+ <point x="418" y="822"/>
+ <point x="494" y="862"/>
+ <point x="619" y="862" type="curve" smooth="yes"/>
+ <point x="743" y="862"/>
+ <point x="854" y="808"/>
+ <point x="911" y="769" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mT_.glif b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mT_.glif
new file mode 100644
index 0000000..0eddfe9
--- /dev/null
+++ b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mT_.glif
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmT" format="2">
+ <advance width="815"/>
+ <unicode hex="0074"/>
+ <anchor x="455" y="0" name="H"/>
+ <anchor x="390" y="-100" name="L"/>
+ <anchor x="1025" y="1000" name="R"/>
+ <anchor x="605" y="1360" name="U"/>
+ <outline>
+ <contour>
+ <point x="752" y="211" type="line"/>
+ <point x="665" y="169"/>
+ <point x="593" y="134"/>
+ <point x="527" y="134" type="curve" smooth="yes"/>
+ <point x="448" y="134"/>
+ <point x="425" y="188"/>
+ <point x="425" y="247" type="curve" smooth="yes"/>
+ <point x="425" y="274"/>
+ <point x="429" y="301"/>
+ <point x="434" y="326" type="curve" smooth="yes"/>
+ <point x="470" y="519"/>
+ <point x="564" y="843"/>
+ <point x="677" y="1294" type="curve"/>
+ <point x="492" y="1294" type="line"/>
+ <point x="377" y="841"/>
+ <point x="263" y="429"/>
+ <point x="243" y="301" type="curve" smooth="yes"/>
+ <point x="238" y="269"/>
+ <point x="236" y="240"/>
+ <point x="236" y="213" type="curve" smooth="yes"/>
+ <point x="236" y="41"/>
+ <point x="330" y="-25"/>
+ <point x="465" y="-25" type="curve" smooth="yes"/>
+ <point x="535" y="-25"/>
+ <point x="634" y="-6"/>
+ <point x="740" y="52" type="curve"/>
+ </contour>
+ <contour>
+ <point x="177" y="833" type="line"/>
+ <point x="887" y="833" type="line"/>
+ <point x="923" y="975" type="line"/>
+ <point x="213" y="975" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mU_.glif b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mU_.glif
new file mode 100644
index 0000000..0eda3d2
--- /dev/null
+++ b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mU_.glif
@@ -0,0 +1,57 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmU" format="2">
+ <advance width="1175"/>
+ <unicode hex="0075"/>
+ <anchor x="465" y="0" name="H"/>
+ <anchor x="504" y="-100" name="L"/>
+ <anchor x="640" y="0" name="O"/>
+ <anchor x="1375" y="1000" name="R"/>
+ <anchor x="804" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="1040" y="0" type="line"/>
+ <point x="1036" y="29"/>
+ <point x="1035" y="62"/>
+ <point x="1035" y="100" type="curve" smooth="yes"/>
+ <point x="1035" y="206"/>
+ <point x="1054" y="341"/>
+ <point x="1080" y="455" type="curve" smooth="yes"/>
+ <point x="1135" y="689"/>
+ <point x="1197" y="895"/>
+ <point x="1205" y="1000" type="curve"/>
+ <point x="1010" y="1000" type="line"/>
+ <point x="1003" y="882"/>
+ <point x="971" y="769"/>
+ <point x="920" y="565" type="curve"/>
+ <point x="827" y="376"/>
+ <point x="573" y="135"/>
+ <point x="475" y="135" type="curve" smooth="yes"/>
+ <point x="409" y="135"/>
+ <point x="365" y="181"/>
+ <point x="365" y="280" type="curve" smooth="yes"/>
+ <point x="365" y="347"/>
+ <point x="407" y="500"/>
+ <point x="459" y="702" type="curve" smooth="yes"/>
+ <point x="494" y="837"/>
+ <point x="515" y="925"/>
+ <point x="520" y="1000" type="curve"/>
+ <point x="325" y="1000" type="line"/>
+ <point x="313" y="882"/>
+ <point x="295" y="809"/>
+ <point x="265" y="685" type="curve" smooth="yes"/>
+ <point x="195" y="395" type="line" smooth="yes"/>
+ <point x="179" y="330"/>
+ <point x="170" y="275"/>
+ <point x="170" y="225" type="curve" smooth="yes"/>
+ <point x="170" y="60"/>
+ <point x="257" y="-25"/>
+ <point x="410" y="-25" type="curve" smooth="yes"/>
+ <point x="551" y="-25"/>
+ <point x="745" y="118"/>
+ <point x="880" y="305" type="curve"/>
+ <point x="861" y="196"/>
+ <point x="860" y="98"/>
+ <point x="860" y="0" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mV_.glif b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mV_.glif
new file mode 100644
index 0000000..33e91d6
--- /dev/null
+++ b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mV_.glif
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmV" format="2">
+ <advance width="941"/>
+ <unicode hex="0076"/>
+ <anchor x="359" y="0" name="H"/>
+ <anchor x="350" y="-100" name="L"/>
+ <anchor x="565" y="0" name="O"/>
+ <anchor x="650" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="180" y="1000" type="line"/>
+ <point x="232" y="825"/>
+ <point x="256" y="602"/>
+ <point x="256" y="354" type="curve" smooth="yes"/>
+ <point x="256" y="241"/>
+ <point x="251" y="122"/>
+ <point x="241" y="0" type="curve"/>
+ <point x="441" y="0" type="line"/>
+ <point x="744" y="336"/>
+ <point x="1056" y="765"/>
+ <point x="1056" y="1000" type="curve"/>
+ <point x="856" y="1000" type="line"/>
+ <point x="856" y="769"/>
+ <point x="606" y="394"/>
+ <point x="404" y="176" type="curve"/>
+ <point x="421" y="277"/>
+ <point x="429" y="402"/>
+ <point x="429" y="526" type="curve" smooth="yes"/>
+ <point x="429" y="707"/>
+ <point x="412" y="887"/>
+ <point x="380" y="1000" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mW_.glif b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mW_.glif
new file mode 100644
index 0000000..1daea7c
--- /dev/null
+++ b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mW_.glif
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmW" format="2">
+ <advance width="1555"/>
+ <unicode hex="0077"/>
+ <anchor x="690" y="-100" name="L"/>
+ <anchor x="990" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="858" y="1000" type="line"/>
+ <point x="743" y="739"/>
+ <point x="588" y="466"/>
+ <point x="388" y="181" type="curve"/>
+ <point x="417" y="339"/>
+ <point x="430" y="500"/>
+ <point x="430" y="644" type="curve" smooth="yes"/>
+ <point x="430" y="784"/>
+ <point x="418" y="908"/>
+ <point x="395" y="1000" type="curve"/>
+ <point x="195" y="1000" type="line"/>
+ <point x="234" y="873"/>
+ <point x="256" y="688"/>
+ <point x="256" y="472" type="curve" smooth="yes"/>
+ <point x="256" y="326"/>
+ <point x="246" y="166"/>
+ <point x="225" y="0" type="curve"/>
+ <point x="425" y="0" type="line"/>
+ <point x="632" y="298"/>
+ <point x="825" y="583"/>
+ <point x="896" y="765" type="curve"/>
+ <point x="920" y="478"/>
+ <point x="912" y="233"/>
+ <point x="915" y="0" type="curve"/>
+ <point x="1115" y="0" type="line"/>
+ <point x="1362" y="330"/>
+ <point x="1642" y="777"/>
+ <point x="1645" y="1000" type="curve"/>
+ <point x="1445" y="1000" type="line"/>
+ <point x="1445" y="990" type="line"/>
+ <point x="1445" y="797"/>
+ <point x="1242" y="417"/>
+ <point x="1063" y="181" type="curve"/>
+ <point x="1064" y="221"/>
+ <point x="1064" y="260"/>
+ <point x="1064" y="298" type="curve" smooth="yes"/>
+ <point x="1064" y="577"/>
+ <point x="1046" y="811"/>
+ <point x="1020" y="1000" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mX_.glif b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mX_.glif
new file mode 100644
index 0000000..5508ff9
--- /dev/null
+++ b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mX_.glif
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmX" format="2">
+ <advance width="1009"/>
+ <unicode hex="0078"/>
+ <anchor x="840" y="0" name="H"/>
+ <anchor x="457" y="-100" name="L"/>
+ <anchor x="657" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="945" y="0" type="line"/>
+ <point x="765" y="133"/>
+ <point x="558" y="867"/>
+ <point x="439" y="1000" type="curve"/>
+ <point x="181" y="1000" type="line"/>
+ <point x="410" y="832"/>
+ <point x="578" y="141"/>
+ <point x="698" y="0" type="curve"/>
+ </contour>
+ <contour>
+ <point x="504" y="572" type="line"/>
+ <point x="286" y="463"/>
+ <point x="57" y="230"/>
+ <point x="30" y="0" type="curve"/>
+ <point x="230" y="0" type="line"/>
+ <point x="231" y="156"/>
+ <point x="375" y="380"/>
+ <point x="563" y="467" type="curve"/>
+ </contour>
+ <contour>
+ <point x="659" y="471" type="line"/>
+ <point x="838" y="591"/>
+ <point x="1092" y="798"/>
+ <point x="1099" y="1000" type="curve"/>
+ <point x="889" y="1000" type="line"/>
+ <point x="883" y="842"/>
+ <point x="758" y="675"/>
+ <point x="601" y="581" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mY_.glif b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mY_.glif
new file mode 100644
index 0000000..b9000c5
--- /dev/null
+++ b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/L_tnS_mY_.glif
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="LtnSmY" format="2">
+ <advance width="976"/>
+ <unicode hex="0079"/>
+ <anchor x="710" y="-100" name="L"/>
+ <anchor x="1270" y="1000" name="R"/>
+ <anchor x="630" y="1100" name="U"/>
+ <outline>
+ <contour>
+ <point x="132" y="1000" type="line"/>
+ <point x="270" y="825"/>
+ <point x="398" y="406"/>
+ <point x="403" y="-16" type="curve"/>
+ <point x="263" y="-232"/>
+ <point x="145" y="-295"/>
+ <point x="64" y="-295" type="curve" smooth="yes"/>
+ <point x="-2" y="-295"/>
+ <point x="-69" y="-254"/>
+ <point x="-102" y="-220" type="curve"/>
+ <point x="-200" y="-377" type="line"/>
+ <point x="-141" y="-430"/>
+ <point x="-68" y="-465"/>
+ <point x="23" y="-465" type="curve" smooth="yes"/>
+ <point x="193" y="-465"/>
+ <point x="369" y="-371"/>
+ <point x="609" y="0" type="curve" smooth="yes"/>
+ <point x="877" y="414"/>
+ <point x="1056" y="808"/>
+ <point x="1056" y="964" type="curve" smooth="yes"/>
+ <point x="1056" y="978"/>
+ <point x="1055" y="990"/>
+ <point x="1052" y="1000" type="curve"/>
+ <point x="852" y="1000" type="line"/>
+ <point x="856" y="984"/>
+ <point x="858" y="967"/>
+ <point x="858" y="946" type="curve" smooth="yes"/>
+ <point x="858" y="783"/>
+ <point x="722" y="472"/>
+ <point x="548" y="189" type="curve"/>
+ <point x="548" y="484"/>
+ <point x="447" y="866"/>
+ <point x="347" y="1000" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetunicodes.ufo/glyphs/N_onB_reakingH_yphen.glif b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/N_onB_reakingH_yphen.glif
new file mode 100644
index 0000000..e7d9c06
--- /dev/null
+++ b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/N_onB_reakingH_yphen.glif
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="NonBreakingHyphen" format="2">
+ <advance width="840"/>
+ <unicode hex="2011"/>
+ <anchor x="645" y="1100" name="U"/>
+ <outline>
+ <component base="HyphenMinus"/>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetunicodes.ufo/glyphs/N_umS_gn.glif b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/N_umS_gn.glif
new file mode 100644
index 0000000..b7506f7
--- /dev/null
+++ b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/N_umS_gn.glif
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="NumSgn" format="2">
+ <advance width="1180"/>
+ <unicode hex="0023"/>
+ <outline>
+ <contour>
+ <point x="739" y="1333" type="line"/>
+ <point x="91" y="98" type="line"/>
+ <point x="261" y="98" type="line"/>
+ <point x="909" y="1333" type="line"/>
+ </contour>
+ <contour>
+ <point x="80" y="465" type="line"/>
+ <point x="1171" y="465" type="line"/>
+ <point x="1208" y="612" type="line"/>
+ <point x="117" y="612" type="line"/>
+ </contour>
+ <contour>
+ <point x="234" y="843" type="line"/>
+ <point x="1325" y="843" type="line"/>
+ <point x="1361" y="990" type="line"/>
+ <point x="270" y="990" type="line"/>
+ </contour>
+ <contour>
+ <point x="1164" y="1333" type="line"/>
+ <point x="516" y="98" type="line"/>
+ <point x="686" y="98" type="line"/>
+ <point x="1334" y="1333" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetunicodes.ufo/glyphs/P_ercentS_gn.glif b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/P_ercentS_gn.glif
new file mode 100644
index 0000000..84241ea
--- /dev/null
+++ b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/P_ercentS_gn.glif
@@ -0,0 +1,93 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="PercentSgn" format="2">
+ <advance width="1506"/>
+ <unicode hex="0025"/>
+ <outline>
+ <contour>
+ <point x="1300" y="349" type="curve" smooth="yes"/>
+ <point x="1255" y="168"/>
+ <point x="1204" y="113"/>
+ <point x="1118" y="113" type="curve" smooth="yes"/>
+ <point x="1056" y="113"/>
+ <point x="1021" y="148"/>
+ <point x="1021" y="235" type="curve" smooth="yes"/>
+ <point x="1021" y="274"/>
+ <point x="1028" y="322"/>
+ <point x="1043" y="383" type="curve" smooth="yes"/>
+ <point x="1088" y="564"/>
+ <point x="1136" y="617"/>
+ <point x="1223" y="617" type="curve" smooth="yes"/>
+ <point x="1286" y="617"/>
+ <point x="1322" y="582"/>
+ <point x="1322" y="496" type="curve" smooth="yes"/>
+ <point x="1322" y="458"/>
+ <point x="1315" y="409"/>
+ </contour>
+ <contour>
+ <point x="1468" y="361" type="curve" smooth="yes"/>
+ <point x="1483" y="419"/>
+ <point x="1489" y="470"/>
+ <point x="1489" y="515" type="curve" smooth="yes"/>
+ <point x="1489" y="677"/>
+ <point x="1400" y="755"/>
+ <point x="1263" y="755" type="curve" smooth="yes"/>
+ <point x="1089" y="755"/>
+ <point x="945" y="647"/>
+ <point x="876" y="371" type="curve" smooth="yes"/>
+ <point x="861" y="310"/>
+ <point x="854" y="256"/>
+ <point x="854" y="210" type="curve" smooth="yes"/>
+ <point x="854" y="47"/>
+ <point x="943" y="-25"/>
+ <point x="1079" y="-25" type="curve" smooth="yes"/>
+ <point x="1254" y="-25"/>
+ <point x="1396" y="72"/>
+ </contour>
+ <contour>
+ <point x="1369" y="1450" type="line"/>
+ <point x="219" y="-25" type="line"/>
+ <point x="397" y="-25" type="line"/>
+ <point x="1545" y="1450" type="line"/>
+ </contour>
+ <contour>
+ <point x="717" y="1044" type="curve" smooth="yes"/>
+ <point x="672" y="864"/>
+ <point x="621" y="809"/>
+ <point x="535" y="809" type="curve" smooth="yes"/>
+ <point x="474" y="809"/>
+ <point x="439" y="844"/>
+ <point x="439" y="930" type="curve" smooth="yes"/>
+ <point x="439" y="969"/>
+ <point x="446" y="1018"/>
+ <point x="461" y="1079" type="curve" smooth="yes"/>
+ <point x="506" y="1260"/>
+ <point x="554" y="1313"/>
+ <point x="641" y="1313" type="curve" smooth="yes"/>
+ <point x="704" y="1313"/>
+ <point x="739" y="1278"/>
+ <point x="739" y="1192" type="curve" smooth="yes"/>
+ <point x="739" y="1153"/>
+ <point x="732" y="1105"/>
+ </contour>
+ <contour>
+ <point x="886" y="1057" type="curve" smooth="yes"/>
+ <point x="900" y="1114"/>
+ <point x="907" y="1166"/>
+ <point x="907" y="1210" type="curve" smooth="yes"/>
+ <point x="907" y="1373"/>
+ <point x="817" y="1450"/>
+ <point x="680" y="1450" type="curve" smooth="yes"/>
+ <point x="506" y="1450"/>
+ <point x="362" y="1343"/>
+ <point x="293" y="1066" type="curve" smooth="yes"/>
+ <point x="278" y="1005"/>
+ <point x="271" y="952"/>
+ <point x="271" y="906" type="curve" smooth="yes"/>
+ <point x="271" y="743"/>
+ <point x="360" y="671"/>
+ <point x="497" y="671" type="curve" smooth="yes"/>
+ <point x="672" y="671"/>
+ <point x="813" y="768"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetunicodes.ufo/glyphs/P_lusS_gn.glif b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/P_lusS_gn.glif
new file mode 100644
index 0000000..8c4577e
--- /dev/null
+++ b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/P_lusS_gn.glif
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="PlusSgn" format="2">
+ <advance width="1180"/>
+ <unicode hex="002B"/>
+ <outline>
+ <contour>
+ <point x="748" y="1156" type="line"/>
+ <point x="529" y="279" type="line"/>
+ <point x="684" y="279" type="line"/>
+ <point x="903" y="1156" type="line"/>
+ </contour>
+ <contour>
+ <point x="256" y="647" type="line"/>
+ <point x="1146" y="647" type="line"/>
+ <point x="1182" y="794" type="line"/>
+ <point x="292" y="794" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetunicodes.ufo/glyphs/Q_stnM_rk.glif b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/Q_stnM_rk.glif
new file mode 100644
index 0000000..8b14a6c
--- /dev/null
+++ b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/Q_stnM_rk.glif
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="QstnMrk" format="2">
+ <advance width="1030"/>
+ <unicode hex="003F"/>
+ <outline>
+ <contour>
+ <point x="419" y="1226" type="line"/>
+ <point x="514" y="1303"/>
+ <point x="615" y="1338"/>
+ <point x="685" y="1338" type="curve" smooth="yes"/>
+ <point x="800" y="1338"/>
+ <point x="858" y="1294"/>
+ <point x="858" y="1222" type="curve" smooth="yes"/>
+ <point x="858" y="1122"/>
+ <point x="713" y="1017"/>
+ <point x="654" y="960" type="curve" smooth="yes"/>
+ <point x="538" y="850"/>
+ <point x="473" y="715"/>
+ <point x="402" y="431" type="curve"/>
+ <point x="587" y="431" type="line"/>
+ <point x="656" y="707"/>
+ <point x="697" y="778"/>
+ <point x="831" y="901" type="curve" smooth="yes"/>
+ <point x="949" y="1010"/>
+ <point x="1072" y="1146"/>
+ <point x="1072" y="1272" type="curve" smooth="yes"/>
+ <point x="1072" y="1409"/>
+ <point x="947" y="1509"/>
+ <point x="746" y="1509" type="curve" smooth="yes"/>
+ <point x="631" y="1509"/>
+ <point x="500" y="1463"/>
+ <point x="419" y="1401" type="curve"/>
+ </contour>
+ <contour>
+ <point x="278" y="90" type="curve" smooth="yes"/>
+ <point x="278" y="28"/>
+ <point x="328" y="-25"/>
+ <point x="393" y="-25" type="curve" smooth="yes"/>
+ <point x="477" y="-25"/>
+ <point x="554" y="45"/>
+ <point x="554" y="125" type="curve" smooth="yes"/>
+ <point x="554" y="186"/>
+ <point x="504" y="240"/>
+ <point x="439" y="240" type="curve" smooth="yes"/>
+ <point x="355" y="240"/>
+ <point x="278" y="170"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetunicodes.ufo/glyphs/Q_uotM_rk.glif b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/Q_uotM_rk.glif
new file mode 100644
index 0000000..4a8357b
--- /dev/null
+++ b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/Q_uotM_rk.glif
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="QuotMrk" format="2">
+ <advance width="1005"/>
+ <unicode hex="0022"/>
+ <outline>
+ <contour>
+ <point x="600" y="1024" type="line"/>
+ <point x="639" y="1162"/>
+ <point x="683" y="1312"/>
+ <point x="772" y="1553" type="curve"/>
+ <point x="567" y="1553" type="line"/>
+ <point x="538" y="1312"/>
+ <point x="505" y="1162"/>
+ <point x="475" y="1024" type="curve"/>
+ </contour>
+ <contour>
+ <point x="940" y="1024" type="line"/>
+ <point x="979" y="1162"/>
+ <point x="1023" y="1312"/>
+ <point x="1112" y="1553" type="curve"/>
+ <point x="907" y="1553" type="line"/>
+ <point x="878" y="1312"/>
+ <point x="845" y="1162"/>
+ <point x="815" y="1024" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetunicodes.ufo/glyphs/R_everseS_olidus.glif b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/R_everseS_olidus.glif
new file mode 100644
index 0000000..f146267
--- /dev/null
+++ b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/R_everseS_olidus.glif
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="ReverseSolidus" format="2">
+ <advance width="1005"/>
+ <unicode hex="005C"/>
+ <outline>
+ <contour>
+ <point x="473" y="1538" type="line"/>
+ <point x="656" y="-123" type="line"/>
+ <point x="799" y="-93" type="line"/>
+ <point x="620" y="1568" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetunicodes.ufo/glyphs/R_tC_urlyB_rac.glif b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/R_tC_urlyB_rac.glif
new file mode 100644
index 0000000..82df531
--- /dev/null
+++ b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/R_tC_urlyB_rac.glif
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="RtCurlyBrac" format="2">
+ <advance width="980"/>
+ <unicode hex="007D"/>
+ <outline>
+ <contour>
+ <point x="466" y="1470" type="line"/>
+ <point x="513" y="1452"/>
+ <point x="653" y="1397"/>
+ <point x="653" y="1366" type="curve" smooth="yes"/>
+ <point x="653" y="1238"/>
+ <point x="531" y="801"/>
+ <point x="531" y="737" type="curve" smooth="yes"/>
+ <point x="531" y="701"/>
+ <point x="660" y="627"/>
+ <point x="660" y="603" type="curve" smooth="yes"/>
+ <point x="660" y="585"/>
+ <point x="496" y="511"/>
+ <point x="468" y="475" type="curve" smooth="yes"/>
+ <point x="439" y="438"/>
+ <point x="312" y="-121"/>
+ <point x="268" y="-167" type="curve" smooth="yes"/>
+ <point x="241" y="-194"/>
+ <point x="106" y="-242"/>
+ <point x="33" y="-265" type="curve"/>
+ <point x="39" y="-402" type="line"/>
+ <point x="150" y="-375"/>
+ <point x="324" y="-323"/>
+ <point x="375" y="-279" type="curve" smooth="yes"/>
+ <point x="465" y="-201"/>
+ <point x="608" y="410"/>
+ <point x="639" y="441" type="curve" smooth="yes"/>
+ <point x="675" y="476"/>
+ <point x="880" y="571"/>
+ <point x="880" y="607" type="curve" smooth="yes"/>
+ <point x="880" y="639"/>
+ <point x="719" y="740"/>
+ <point x="719" y="771" type="curve" smooth="yes"/>
+ <point x="719" y="839"/>
+ <point x="825" y="1259"/>
+ <point x="825" y="1425" type="curve" smooth="yes"/>
+ <point x="825" y="1453"/>
+ <point x="822" y="1474"/>
+ <point x="815" y="1485" type="curve" smooth="yes"/>
+ <point x="786" y="1529"/>
+ <point x="638" y="1581"/>
+ <point x="540" y="1607" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetunicodes.ufo/glyphs/R_tP_aren.glif b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/R_tP_aren.glif
new file mode 100644
index 0000000..3950e09
--- /dev/null
+++ b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/R_tP_aren.glif
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="RtParen" format="2">
+ <advance width="775"/>
+ <unicode hex="0029"/>
+ <outline>
+ <contour>
+ <point x="467" y="1455" type="line"/>
+ <point x="578" y="1327"/>
+ <point x="628" y="1146"/>
+ <point x="628" y="946" type="curve" smooth="yes"/>
+ <point x="628" y="832"/>
+ <point x="612" y="713"/>
+ <point x="582" y="593" type="curve" smooth="yes"/>
+ <point x="497" y="252"/>
+ <point x="328" y="-8"/>
+ <point x="40" y="-260" type="curve"/>
+ <point x="99" y="-402" type="line"/>
+ <point x="444" y="-123"/>
+ <point x="673" y="194"/>
+ <point x="772" y="593" type="curve" smooth="yes"/>
+ <point x="804" y="719"/>
+ <point x="819" y="843"/>
+ <point x="819" y="959" type="curve" smooth="yes"/>
+ <point x="819" y="1236"/>
+ <point x="733" y="1472"/>
+ <point x="580" y="1607" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetunicodes.ufo/glyphs/R_tS_qrB_rac.glif b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/R_tS_qrB_rac.glif
new file mode 100644
index 0000000..4c13a82
--- /dev/null
+++ b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/R_tS_qrB_rac.glif
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="RtSqrBrac" format="2">
+ <advance width="770"/>
+ <unicode hex="005D"/>
+ <outline>
+ <contour>
+ <point x="434" y="-402" type="line"/>
+ <point x="920" y="1568" type="line"/>
+ <point x="480" y="1568" type="line"/>
+ <point x="444" y="1421" type="line"/>
+ <point x="699" y="1421" type="line"/>
+ <point x="286" y="-255" type="line"/>
+ <point x="31" y="-255" type="line"/>
+ <point x="-6" y="-402" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetunicodes.ufo/glyphs/S_emicolon.glif b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/S_emicolon.glif
new file mode 100644
index 0000000..be971ac
--- /dev/null
+++ b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/S_emicolon.glif
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Semicolon" format="2">
+ <advance width="630"/>
+ <unicode hex="003B"/>
+ <outline>
+ <contour>
+ <point x="314" y="758" type="curve" smooth="yes"/>
+ <point x="314" y="696"/>
+ <point x="365" y="642"/>
+ <point x="430" y="642" type="curve" smooth="yes"/>
+ <point x="514" y="642"/>
+ <point x="590" y="712"/>
+ <point x="590" y="792" type="curve" smooth="yes"/>
+ <point x="590" y="854"/>
+ <point x="540" y="907"/>
+ <point x="476" y="907" type="curve" smooth="yes"/>
+ <point x="393" y="907"/>
+ <point x="314" y="837"/>
+ </contour>
+ <contour>
+ <point x="137" y="49" type="line"/>
+ <point x="277" y="49" type="line"/>
+ <point x="252" y="-50"/>
+ <point x="145" y="-169"/>
+ <point x="73" y="-225" type="curve"/>
+ <point x="163" y="-265" type="line"/>
+ <point x="280" y="-175"/>
+ <point x="431" y="-28"/>
+ <point x="431" y="118" type="curve" smooth="yes"/>
+ <point x="431" y="193"/>
+ <point x="378" y="245"/>
+ <point x="311" y="245" type="curve" smooth="yes"/>
+ <point x="254" y="245"/>
+ <point x="190" y="209"/>
+ <point x="161" y="147" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetunicodes.ufo/glyphs/S_olidus.glif b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/S_olidus.glif
new file mode 100644
index 0000000..589697b
--- /dev/null
+++ b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/S_olidus.glif
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Solidus" format="2">
+ <advance width="980"/>
+ <unicode hex="002F"/>
+ <outline>
+ <contour>
+ <point x="1160" y="1568" type="line"/>
+ <point x="-119" y="-240" type="line"/>
+ <point x="50" y="-240" type="line"/>
+ <point x="1330" y="1568" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetunicodes.ufo/glyphs/S_pace.glif b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/S_pace.glif
new file mode 100644
index 0000000..c49f0f2
--- /dev/null
+++ b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/S_pace.glif
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Space" format="2">
+ <advance width="530"/>
+ <unicode hex="0020"/>
+ <outline/>
+</glyph>
diff --git a/tests/reference/ufo/psfsetunicodes.ufo/glyphs/T_ilde.glif b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/T_ilde.glif
new file mode 100644
index 0000000..bf260b8
--- /dev/null
+++ b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/T_ilde.glif
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="Tilde" format="2">
+ <advance width="1095"/>
+ <unicode hex="007E"/>
+ <outline>
+ <contour>
+ <point x="156" y="368" type="line"/>
+ <point x="173" y="416"/>
+ <point x="215" y="456"/>
+ <point x="293" y="456" type="curve" smooth="yes"/>
+ <point x="468" y="456"/>
+ <point x="643" y="353"/>
+ <point x="873" y="353" type="curve" smooth="yes"/>
+ <point x="1032" y="353"/>
+ <point x="1137" y="472"/>
+ <point x="1169" y="598" type="curve"/>
+ <point x="1064" y="598" type="line"/>
+ <point x="1045" y="553"/>
+ <point x="1002" y="500"/>
+ <point x="919" y="500" type="curve" smooth="yes"/>
+ <point x="683" y="500"/>
+ <point x="551" y="603"/>
+ <point x="330" y="603" type="curve" smooth="yes"/>
+ <point x="184" y="603"/>
+ <point x="81" y="487"/>
+ <point x="51" y="368" type="curve"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetunicodes.ufo/glyphs/V_ertL_ine.glif b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/V_ertL_ine.glif
new file mode 100644
index 0000000..445d622
--- /dev/null
+++ b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/V_ertL_ine.glif
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="VertLine" format="2">
+ <advance width="670"/>
+ <unicode hex="007C"/>
+ <outline>
+ <contour>
+ <point x="602" y="1578" type="line"/>
+ <point x="112" y="-392" type="line"/>
+ <point x="262" y="-392" type="line"/>
+ <point x="752" y="1578" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetunicodes.ufo/glyphs/_notdef.glif b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/_notdef.glif
new file mode 100644
index 0000000..a3e9354
--- /dev/null
+++ b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/_notdef.glif
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name=".notdef" format="2">
+ <advance width="1400"/>
+ <outline>
+ <contour>
+ <point x="100" y="0" type="line"/>
+ <point x="1300" y="0" type="line"/>
+ <point x="1300" y="1800" type="line"/>
+ <point x="100" y="1800" type="line"/>
+ </contour>
+ <contour>
+ <point x="150" y="1750" type="line"/>
+ <point x="1250" y="1750" type="line"/>
+ <point x="1250" y="50" type="line"/>
+ <point x="150" y="50" type="line"/>
+ </contour>
+ </outline>
+</glyph>
diff --git a/tests/reference/ufo/psfsetunicodes.ufo/glyphs/_null.glif b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/_null.glif
new file mode 100644
index 0000000..0b9caa6
--- /dev/null
+++ b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/_null.glif
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name=".null" format="2">
+ <outline/>
+</glyph>
diff --git a/tests/reference/ufo/psfsetunicodes.ufo/glyphs/contents.plist b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/contents.plist
new file mode 100644
index 0000000..ad2aa41
--- /dev/null
+++ b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/contents.plist
@@ -0,0 +1,232 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>.notdef</key>
+ <string>_notdef.glif</string>
+ <key>.null</key>
+ <string>_null.glif</string>
+ <key>Ampersand</key>
+ <string>A_mpersand.glif</string>
+ <key>Apos</key>
+ <string>A_pos.glif</string>
+ <key>Asterisk</key>
+ <string>A_sterisk.glif</string>
+ <key>AtSgn</key>
+ <string>A_tS_gn.glif</string>
+ <key>CircumAccent</key>
+ <string>C_ircumA_ccent.glif</string>
+ <key>Colon</key>
+ <string>C_olon.glif</string>
+ <key>CombAcute</key>
+ <string>C_ombA_cute.glif</string>
+ <key>CombCircum</key>
+ <string>C_ombC_ircum.glif</string>
+ <key>CombDiaer</key>
+ <string>C_ombD_iaer.glif</string>
+ <key>CombGrave</key>
+ <string>C_ombG_rave.glif</string>
+ <key>CombRingAbv</key>
+ <string>C_ombR_ingA_bv.glif</string>
+ <key>CombTilde</key>
+ <string>C_ombT_ilde.glif</string>
+ <key>Comma</key>
+ <string>C_omma.glif</string>
+ <key>DigitEight</key>
+ <string>D_igitE_ight.glif</string>
+ <key>DigitFive</key>
+ <string>D_igitF_ive.glif</string>
+ <key>DigitFour</key>
+ <string>D_igitF_our.glif</string>
+ <key>DigitNine</key>
+ <string>D_igitN_ine.glif</string>
+ <key>DigitOne</key>
+ <string>D_igitO_ne.glif</string>
+ <key>DigitSeven</key>
+ <string>D_igitS_even.glif</string>
+ <key>DigitSix</key>
+ <string>D_igitS_ix.glif</string>
+ <key>DigitThree</key>
+ <string>D_igitT_hree.glif</string>
+ <key>DigitTwo</key>
+ <string>D_igitT_wo.glif</string>
+ <key>DigitZero</key>
+ <string>D_igitZ_ero.glif</string>
+ <key>DollarSgn</key>
+ <string>D_ollarS_gn.glif</string>
+ <key>DottedCirc</key>
+ <string>D_ottedC_irc.glif</string>
+ <key>EqSgn</key>
+ <string>E_qS_gn.glif</string>
+ <key>ExclamationMrk</key>
+ <string>E_xclamationM_rk.glif</string>
+ <key>FullStop</key>
+ <string>F_ullS_top.glif</string>
+ <key>GTSgn</key>
+ <string>G_T_S_gn.glif</string>
+ <key>GraveAccent</key>
+ <string>G_raveA_ccent.glif</string>
+ <key>Hyphen</key>
+ <string>H_yphen.glif</string>
+ <key>HyphenMinus</key>
+ <string>H_yphenM_inus.glif</string>
+ <key>Hyphen_Soft</key>
+ <string>H_yphen_S_oft.glif</string>
+ <key>LTSgn</key>
+ <string>L_T_S_gn.glif</string>
+ <key>LftCurlyBrac</key>
+ <string>L_ftC_urlyB_rac.glif</string>
+ <key>LftParen</key>
+ <string>L_ftP_aren.glif</string>
+ <key>LftSqrBrac</key>
+ <string>L_ftS_qrB_rac.glif</string>
+ <key>LowLine</key>
+ <string>L_owL_ine.glif</string>
+ <key>LtnCapA</key>
+ <string>L_tnC_apA_.glif</string>
+ <key>LtnCapADiaer</key>
+ <string>L_tnC_apA_D_iaer.glif</string>
+ <key>LtnCapB</key>
+ <string>L_tnC_apB_.glif</string>
+ <key>LtnCapC</key>
+ <string>L_tnC_apC_.glif</string>
+ <key>LtnCapD</key>
+ <string>L_tnC_apD_.glif</string>
+ <key>LtnCapE</key>
+ <string>L_tnC_apE_.glif</string>
+ <key>LtnCapF</key>
+ <string>L_tnC_apF_.glif</string>
+ <key>LtnCapG</key>
+ <string>L_tnC_apG_.glif</string>
+ <key>LtnCapH</key>
+ <string>L_tnC_apH_.glif</string>
+ <key>LtnCapI</key>
+ <string>L_tnC_apI_.glif</string>
+ <key>LtnCapJ</key>
+ <string>L_tnC_apJ_.glif</string>
+ <key>LtnCapK</key>
+ <string>L_tnC_apK_.glif</string>
+ <key>LtnCapL</key>
+ <string>L_tnC_apL_.glif</string>
+ <key>LtnCapM</key>
+ <string>L_tnC_apM_.glif</string>
+ <key>LtnCapN</key>
+ <string>L_tnC_apN_.glif</string>
+ <key>LtnCapO</key>
+ <string>L_tnC_apO_.glif</string>
+ <key>LtnCapP</key>
+ <string>L_tnC_apP_.glif</string>
+ <key>LtnCapQ</key>
+ <string>L_tnC_apQ_.glif</string>
+ <key>LtnCapR</key>
+ <string>L_tnC_apR_.glif</string>
+ <key>LtnCapS</key>
+ <string>L_tnC_apS_.glif</string>
+ <key>LtnCapT</key>
+ <string>L_tnC_apT_.glif</string>
+ <key>LtnCapU</key>
+ <string>L_tnC_apU_.glif</string>
+ <key>LtnCapV</key>
+ <string>L_tnC_apV_.glif</string>
+ <key>LtnCapW</key>
+ <string>L_tnC_apW_.glif</string>
+ <key>LtnCapX</key>
+ <string>L_tnC_apX_.glif</string>
+ <key>LtnCapY</key>
+ <string>L_tnC_apY_.glif</string>
+ <key>LtnSmA</key>
+ <string>L_tnS_mA_.glif</string>
+ <key>LtnSmAAcute</key>
+ <string>L_tnS_mA_A_cute.glif</string>
+ <key>LtnSmACircum</key>
+ <string>L_tnS_mA_C_ircum.glif</string>
+ <key>LtnSmADiaer</key>
+ <string>L_tnS_mA_D_iaer.glif</string>
+ <key>LtnSmAGrave</key>
+ <string>L_tnS_mA_G_rave.glif</string>
+ <key>LtnSmARingAbv</key>
+ <string>L_tnS_mA_R_ingA_bv.glif</string>
+ <key>LtnSmATilde</key>
+ <string>L_tnS_mA_T_ilde.glif</string>
+ <key>LtnSmB</key>
+ <string>L_tnS_mB_.glif</string>
+ <key>LtnSmC</key>
+ <string>L_tnS_mC_.glif</string>
+ <key>LtnSmD</key>
+ <string>L_tnS_mD_.glif</string>
+ <key>LtnSmE</key>
+ <string>L_tnS_mE_.glif</string>
+ <key>LtnSmF</key>
+ <string>L_tnS_mF_.glif</string>
+ <key>LtnSmG</key>
+ <string>L_tnS_mG_.glif</string>
+ <key>LtnSmH</key>
+ <string>L_tnS_mH_.glif</string>
+ <key>LtnSmI</key>
+ <string>L_tnS_mI_.glif</string>
+ <key>LtnSmJ</key>
+ <string>L_tnS_mJ_.glif</string>
+ <key>LtnSmK</key>
+ <string>L_tnS_mK_.glif</string>
+ <key>LtnSmL</key>
+ <string>L_tnS_mL_.glif</string>
+ <key>LtnSmM</key>
+ <string>L_tnS_mM_.glif</string>
+ <key>LtnSmN</key>
+ <string>L_tnS_mN_.glif</string>
+ <key>LtnSmO</key>
+ <string>L_tnS_mO_.glif</string>
+ <key>LtnSmP</key>
+ <string>L_tnS_mP_.glif</string>
+ <key>LtnSmQ</key>
+ <string>L_tnS_mQ_.glif</string>
+ <key>LtnSmR</key>
+ <string>L_tnS_mR_.glif</string>
+ <key>LtnSmS</key>
+ <string>L_tnS_mS_.glif</string>
+ <key>LtnSmT</key>
+ <string>L_tnS_mT_.glif</string>
+ <key>LtnSmU</key>
+ <string>L_tnS_mU_.glif</string>
+ <key>LtnSmV</key>
+ <string>L_tnS_mV_.glif</string>
+ <key>LtnSmW</key>
+ <string>L_tnS_mW_.glif</string>
+ <key>LtnSmX</key>
+ <string>L_tnS_mX_.glif</string>
+ <key>LtnSmY</key>
+ <string>L_tnS_mY_.glif</string>
+ <key>NonBreakingHyphen</key>
+ <string>N_onB_reakingH_yphen.glif</string>
+ <key>NumSgn</key>
+ <string>N_umS_gn.glif</string>
+ <key>PercentSgn</key>
+ <string>P_ercentS_gn.glif</string>
+ <key>PlusSgn</key>
+ <string>P_lusS_gn.glif</string>
+ <key>QstnMrk</key>
+ <string>Q_stnM_rk.glif</string>
+ <key>QuotMrk</key>
+ <string>Q_uotM_rk.glif</string>
+ <key>ReverseSolidus</key>
+ <string>R_everseS_olidus.glif</string>
+ <key>RtCurlyBrac</key>
+ <string>R_tC_urlyB_rac.glif</string>
+ <key>RtParen</key>
+ <string>R_tP_aren.glif</string>
+ <key>RtSqrBrac</key>
+ <string>R_tS_qrB_rac.glif</string>
+ <key>Semicolon</key>
+ <string>S_emicolon.glif</string>
+ <key>Solidus</key>
+ <string>S_olidus.glif</string>
+ <key>Space</key>
+ <string>S_pace.glif</string>
+ <key>Tilde</key>
+ <string>T_ilde.glif</string>
+ <key>VertLine</key>
+ <string>V_ertL_ine.glif</string>
+ <key>nonmarkingreturn</key>
+ <string>nonmarkingreturn.glif</string>
+</dict>
+</plist>
diff --git a/tests/reference/ufo/psfsetunicodes.ufo/glyphs/nonmarkingreturn.glif b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/nonmarkingreturn.glif
new file mode 100644
index 0000000..9a63f06
--- /dev/null
+++ b/tests/reference/ufo/psfsetunicodes.ufo/glyphs/nonmarkingreturn.glif
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glyph name="nonmarkingreturn" format="2">
+ <advance width="1004"/>
+ <outline/>
+</glyph>
diff --git a/tests/reference/ufo/psfsetunicodes.ufo/layercontents.plist b/tests/reference/ufo/psfsetunicodes.ufo/layercontents.plist
new file mode 100644
index 0000000..42b7482
--- /dev/null
+++ b/tests/reference/ufo/psfsetunicodes.ufo/layercontents.plist
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<array>
+ <array>
+ <string>public.default</string>
+ <string>glyphs</string>
+ </array>
+</array>
+</plist>
diff --git a/tests/reference/ufo/psfsetunicodes.ufo/lib.plist b/tests/reference/ufo/psfsetunicodes.ufo/lib.plist
new file mode 100644
index 0000000..fa77038
--- /dev/null
+++ b/tests/reference/ufo/psfsetunicodes.ufo/lib.plist
@@ -0,0 +1,534 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>com.schriftgestaltung.Glyphs.fontUserData</key>
+ <dict/>
+ <key>com.schriftgestaltung.appVersion</key>
+ <string>1161</string>
+ <key>com.schriftgestaltung.customName</key>
+ <string>Italic</string>
+ <key>com.schriftgestaltung.customParameter.GSFont.DisplayStrings</key>
+ <string/>
+ <key>com.schriftgestaltung.customParameter.GSFont.disablesAutomaticAlignment</key>
+ <true/>
+ <key>com.schriftgestaltung.customParameter.GSFont.disablesLastChange</key>
+ <true/>
+ <key>com.schriftgestaltung.customParameter.GSFont.useNiceNames</key>
+ <integer>0</integer>
+ <key>com.schriftgestaltung.customParameter.GSFontMaster.customValue</key>
+ <integer>0</integer>
+ <key>com.schriftgestaltung.customParameter.GSFontMaster.customValue1</key>
+ <integer>0</integer>
+ <key>com.schriftgestaltung.customParameter.GSFontMaster.customValue2</key>
+ <integer>0</integer>
+ <key>com.schriftgestaltung.customParameter.GSFontMaster.customValue3</key>
+ <integer>0</integer>
+ <key>com.schriftgestaltung.customParameter.GSFontMaster.iconName</key>
+ <string/>
+ <key>com.schriftgestaltung.customParameter.GSFontMaster.weightValue</key>
+ <integer>400</integer>
+ <key>com.schriftgestaltung.customParameter.GSFontMaster.widthValue</key>
+ <integer>100</integer>
+ <key>com.schriftgestaltung.fontMasterOrder</key>
+ <integer>0</integer>
+ <key>com.schriftgestaltung.glyphOrder</key>
+ <array>
+ <string>.notdef</string>
+ <string>.null</string>
+ <string>nonmarkingreturn</string>
+ <string>Space</string>
+ <string>ExclamationMrk</string>
+ <string>QuotMrk</string>
+ <string>NumSgn</string>
+ <string>DollarSgn</string>
+ <string>PercentSgn</string>
+ <string>Ampersand</string>
+ <string>Apos</string>
+ <string>LftParen</string>
+ <string>RtParen</string>
+ <string>Asterisk</string>
+ <string>PlusSgn</string>
+ <string>Comma</string>
+ <string>HyphenMinus</string>
+ <string>FullStop</string>
+ <string>Solidus</string>
+ <string>DigitZero</string>
+ <string>DigitOne</string>
+ <string>DigitTwo</string>
+ <string>DigitThree</string>
+ <string>DigitFour</string>
+ <string>DigitFive</string>
+ <string>DigitSix</string>
+ <string>DigitSeven</string>
+ <string>DigitEight</string>
+ <string>DigitNine</string>
+ <string>Colon</string>
+ <string>Semicolon</string>
+ <string>LTSgn</string>
+ <string>EqSgn</string>
+ <string>GTSgn</string>
+ <string>QstnMrk</string>
+ <string>AtSgn</string>
+ <string>LtnCapA</string>
+ <string>LtnCapA.alt</string>
+ <string>LtnCapB</string>
+ <string>LtnCapC</string>
+ <string>LtnCapD</string>
+ <string>LtnCapE</string>
+ <string>LtnCapF</string>
+ <string>LtnCapG</string>
+ <string>LtnCapH</string>
+ <string>LtnCapI</string>
+ <string>LtnCapJ</string>
+ <string>LtnCapK</string>
+ <string>LtnCapL</string>
+ <string>LtnCapM</string>
+ <string>LtnCapN</string>
+ <string>LtnCapO</string>
+ <string>LtnCapP</string>
+ <string>LtnCapQ</string>
+ <string>LtnCapR</string>
+ <string>LtnCapS</string>
+ <string>LtnCapT</string>
+ <string>LtnCapU</string>
+ <string>LtnCapV</string>
+ <string>LtnCapW</string>
+ <string>LtnCapX</string>
+ <string>LtnCapY</string>
+ <string>LftSqrBrac</string>
+ <string>ReverseSolidus</string>
+ <string>RtSqrBrac</string>
+ <string>CircumAccent</string>
+ <string>LowLine</string>
+ <string>GraveAccent</string>
+ <string>LtnSmA</string>
+ <string>LtnSmB</string>
+ <string>LtnSmC</string>
+ <string>LtnSmD</string>
+ <string>LtnSmE</string>
+ <string>LtnSmF</string>
+ <string>LtnSmG</string>
+ <string>LtnSmH</string>
+ <string>LtnSmI</string>
+ <string>LtnSmJ</string>
+ <string>LtnSmK</string>
+ <string>LtnSmL</string>
+ <string>LtnSmM</string>
+ <string>LtnSmN</string>
+ <string>LtnSmO</string>
+ <string>LtnSmP</string>
+ <string>LtnSmQ</string>
+ <string>LtnSmR</string>
+ <string>LtnSmS</string>
+ <string>LtnSmT</string>
+ <string>LtnSmU</string>
+ <string>LtnSmV</string>
+ <string>LtnSmW</string>
+ <string>LtnSmX</string>
+ <string>LtnSmY</string>
+ <string>LftCurlyBrac</string>
+ <string>VertLine</string>
+ <string>RtCurlyBrac</string>
+ <string>Tilde</string>
+ <string>LtnCapADiaer</string>
+ <string>LtnSmAAcute</string>
+ <string>LtnSmAGrave</string>
+ <string>LtnSmACircum</string>
+ <string>LtnSmADiaer</string>
+ <string>LtnSmATilde</string>
+ <string>LtnSmARingAbv</string>
+ <string>DottedCirc</string>
+ <string>Hyphen</string>
+ <string>NonBreakingHyphen</string>
+ <string>Hyphen_Soft</string>
+ <string>CombAcute</string>
+ <string>CombGrave</string>
+ <string>CombCircum</string>
+ <string>CombTilde</string>
+ <string>CombDiaer</string>
+ <string>CombRingAbv</string>
+ </array>
+ <key>com.schriftgestaltung.keyboardIncrement</key>
+ <integer>1</integer>
+ <key>com.schriftgestaltung.weight</key>
+ <string>Regular</string>
+ <key>com.schriftgestaltung.weightValue</key>
+ <integer>400</integer>
+ <key>com.schriftgestaltung.width</key>
+ <string>Regular</string>
+ <key>com.schriftgestaltung.widthValue</key>
+ <integer>100</integer>
+ <key>org.sil.lcg.toneLetters</key>
+ <dict>
+ <key>contourWidth</key>
+ <integer>480</integer>
+ <key>dotSize</key>
+ <integer>180</integer>
+ <key>dotSpacing</key>
+ <integer>200</integer>
+ <key>glyphDepth</key>
+ <integer>-25</integer>
+ <key>glyphHeight</key>
+ <integer>1600</integer>
+ <key>italicAngle</key>
+ <integer>14</integer>
+ <key>marginDotLeft</key>
+ <integer>120</integer>
+ <key>marginDotRight</key>
+ <integer>160</integer>
+ <key>marginFlatLeft</key>
+ <integer>120</integer>
+ <key>marginFlatRight</key>
+ <integer>160</integer>
+ <key>marginPointLeft</key>
+ <integer>100</integer>
+ <key>marginPointRight</key>
+ <integer>140</integer>
+ <key>strokeThickness</key>
+ <integer>120</integer>
+ </dict>
+ <key>public.glyphOrder</key>
+ <array>
+ <string>.notdef</string>
+ <string>.null</string>
+ <string>nonmarkingreturn</string>
+ <string>Space</string>
+ <string>ExclamationMrk</string>
+ <string>QuotMrk</string>
+ <string>NumSgn</string>
+ <string>DollarSgn</string>
+ <string>PercentSgn</string>
+ <string>Ampersand</string>
+ <string>Apos</string>
+ <string>LftParen</string>
+ <string>RtParen</string>
+ <string>Asterisk</string>
+ <string>PlusSgn</string>
+ <string>Comma</string>
+ <string>HyphenMinus</string>
+ <string>FullStop</string>
+ <string>Solidus</string>
+ <string>DigitZero</string>
+ <string>DigitOne</string>
+ <string>DigitTwo</string>
+ <string>DigitThree</string>
+ <string>DigitFour</string>
+ <string>DigitFive</string>
+ <string>DigitSix</string>
+ <string>DigitSeven</string>
+ <string>DigitEight</string>
+ <string>DigitNine</string>
+ <string>Colon</string>
+ <string>Semicolon</string>
+ <string>LTSgn</string>
+ <string>EqSgn</string>
+ <string>GTSgn</string>
+ <string>QstnMrk</string>
+ <string>AtSgn</string>
+ <string>LtnCapA</string>
+ <string>LtnCapA.alt</string>
+ <string>LtnCapB</string>
+ <string>LtnCapC</string>
+ <string>LtnCapD</string>
+ <string>LtnCapE</string>
+ <string>LtnCapF</string>
+ <string>LtnCapG</string>
+ <string>LtnCapH</string>
+ <string>LtnCapI</string>
+ <string>LtnCapJ</string>
+ <string>LtnCapK</string>
+ <string>LtnCapL</string>
+ <string>LtnCapM</string>
+ <string>LtnCapN</string>
+ <string>LtnCapO</string>
+ <string>LtnCapP</string>
+ <string>LtnCapQ</string>
+ <string>LtnCapR</string>
+ <string>LtnCapS</string>
+ <string>LtnCapT</string>
+ <string>LtnCapU</string>
+ <string>LtnCapV</string>
+ <string>LtnCapW</string>
+ <string>LtnCapX</string>
+ <string>LtnCapY</string>
+ <string>LftSqrBrac</string>
+ <string>ReverseSolidus</string>
+ <string>RtSqrBrac</string>
+ <string>CircumAccent</string>
+ <string>LowLine</string>
+ <string>GraveAccent</string>
+ <string>LtnSmA</string>
+ <string>LtnSmB</string>
+ <string>LtnSmC</string>
+ <string>LtnSmD</string>
+ <string>LtnSmE</string>
+ <string>LtnSmF</string>
+ <string>LtnSmG</string>
+ <string>LtnSmH</string>
+ <string>LtnSmI</string>
+ <string>LtnSmJ</string>
+ <string>LtnSmK</string>
+ <string>LtnSmL</string>
+ <string>LtnSmM</string>
+ <string>LtnSmN</string>
+ <string>LtnSmO</string>
+ <string>LtnSmP</string>
+ <string>LtnSmQ</string>
+ <string>LtnSmR</string>
+ <string>LtnSmS</string>
+ <string>LtnSmT</string>
+ <string>LtnSmU</string>
+ <string>LtnSmV</string>
+ <string>LtnSmW</string>
+ <string>LtnSmX</string>
+ <string>LtnSmY</string>
+ <string>LftCurlyBrac</string>
+ <string>VertLine</string>
+ <string>RtCurlyBrac</string>
+ <string>Tilde</string>
+ <string>LtnCapADiaer</string>
+ <string>LtnSmAAcute</string>
+ <string>LtnSmAGrave</string>
+ <string>LtnSmACircum</string>
+ <string>LtnSmADiaer</string>
+ <string>LtnSmATilde</string>
+ <string>LtnSmARingAbv</string>
+ <string>DottedCirc</string>
+ <string>Hyphen</string>
+ <string>NonBreakingHyphen</string>
+ <string>Hyphen_Soft</string>
+ <string>CombAcute</string>
+ <string>CombGrave</string>
+ <string>CombCircum</string>
+ <string>CombTilde</string>
+ <string>CombDiaer</string>
+ <string>CombRingAbv</string>
+ </array>
+ <key>public.postscriptNames</key>
+ <dict>
+ <key>Ampersand</key>
+ <string>ampersand</string>
+ <key>Apos</key>
+ <string>quotesingle</string>
+ <key>Asterisk</key>
+ <string>asterisk</string>
+ <key>AtSgn</key>
+ <string>at</string>
+ <key>CircumAccent</key>
+ <string>asciicircum</string>
+ <key>Colon</key>
+ <string>colon</string>
+ <key>CombAcute</key>
+ <string>acutecomb</string>
+ <key>CombCircum</key>
+ <string>uni0302</string>
+ <key>CombDiaer</key>
+ <string>uni0308</string>
+ <key>CombGrave</key>
+ <string>gravecomb</string>
+ <key>CombRingAbv</key>
+ <string>uni030A</string>
+ <key>CombTilde</key>
+ <string>tildecomb</string>
+ <key>Comma</key>
+ <string>comma</string>
+ <key>DigitEight</key>
+ <string>eight</string>
+ <key>DigitFive</key>
+ <string>five</string>
+ <key>DigitFour</key>
+ <string>four</string>
+ <key>DigitNine</key>
+ <string>nine</string>
+ <key>DigitOne</key>
+ <string>one</string>
+ <key>DigitSeven</key>
+ <string>seven</string>
+ <key>DigitSix</key>
+ <string>six</string>
+ <key>DigitThree</key>
+ <string>three</string>
+ <key>DigitTwo</key>
+ <string>two</string>
+ <key>DigitZero</key>
+ <string>zero</string>
+ <key>DollarSgn</key>
+ <string>dollar</string>
+ <key>DottedCirc</key>
+ <string>uni25CC</string>
+ <key>EqSgn</key>
+ <string>equal</string>
+ <key>ExclamationMrk</key>
+ <string>exclam</string>
+ <key>FullStop</key>
+ <string>period</string>
+ <key>GTSgn</key>
+ <string>greater</string>
+ <key>GraveAccent</key>
+ <string>grave</string>
+ <key>Hyphen</key>
+ <string>uni2010</string>
+ <key>HyphenMinus</key>
+ <string>hyphen</string>
+ <key>Hyphen_Soft</key>
+ <string>uni00AD</string>
+ <key>LTSgn</key>
+ <string>less</string>
+ <key>LftCurlyBrac</key>
+ <string>braceleft</string>
+ <key>LftParen</key>
+ <string>parenleft</string>
+ <key>LftSqrBrac</key>
+ <string>bracketleft</string>
+ <key>LowLine</key>
+ <string>underscore</string>
+ <key>LtnCapA</key>
+ <string>A</string>
+ <key>LtnCapA.alt</key>
+ <string>A</string>
+ <key>LtnCapADiaer</key>
+ <string>Adieresis</string>
+ <key>LtnCapB</key>
+ <string>B</string>
+ <key>LtnCapC</key>
+ <string>C</string>
+ <key>LtnCapD</key>
+ <string>D</string>
+ <key>LtnCapE</key>
+ <string>E</string>
+ <key>LtnCapF</key>
+ <string>F</string>
+ <key>LtnCapG</key>
+ <string>G</string>
+ <key>LtnCapH</key>
+ <string>H</string>
+ <key>LtnCapI</key>
+ <string>I</string>
+ <key>LtnCapJ</key>
+ <string>J</string>
+ <key>LtnCapK</key>
+ <string>K</string>
+ <key>LtnCapL</key>
+ <string>L</string>
+ <key>LtnCapM</key>
+ <string>M</string>
+ <key>LtnCapN</key>
+ <string>N</string>
+ <key>LtnCapO</key>
+ <string>O</string>
+ <key>LtnCapP</key>
+ <string>P</string>
+ <key>LtnCapQ</key>
+ <string>Q</string>
+ <key>LtnCapR</key>
+ <string>R</string>
+ <key>LtnCapS</key>
+ <string>S</string>
+ <key>LtnCapT</key>
+ <string>T</string>
+ <key>LtnCapU</key>
+ <string>U</string>
+ <key>LtnCapV</key>
+ <string>V</string>
+ <key>LtnCapW</key>
+ <string>W</string>
+ <key>LtnCapX</key>
+ <string>X</string>
+ <key>LtnCapY</key>
+ <string>Y</string>
+ <key>LtnSmA</key>
+ <string>a</string>
+ <key>LtnSmAAcute</key>
+ <string>aacute</string>
+ <key>LtnSmACircum</key>
+ <string>acircumflex</string>
+ <key>LtnSmADiaer</key>
+ <string>adieresis</string>
+ <key>LtnSmAGrave</key>
+ <string>agrave</string>
+ <key>LtnSmARingAbv</key>
+ <string>aring</string>
+ <key>LtnSmATilde</key>
+ <string>atilde</string>
+ <key>LtnSmB</key>
+ <string>b</string>
+ <key>LtnSmC</key>
+ <string>c</string>
+ <key>LtnSmD</key>
+ <string>d</string>
+ <key>LtnSmE</key>
+ <string>e</string>
+ <key>LtnSmF</key>
+ <string>f</string>
+ <key>LtnSmG</key>
+ <string>g</string>
+ <key>LtnSmH</key>
+ <string>h</string>
+ <key>LtnSmI</key>
+ <string>i</string>
+ <key>LtnSmJ</key>
+ <string>j</string>
+ <key>LtnSmK</key>
+ <string>k</string>
+ <key>LtnSmL</key>
+ <string>l</string>
+ <key>LtnSmM</key>
+ <string>m</string>
+ <key>LtnSmN</key>
+ <string>n</string>
+ <key>LtnSmO</key>
+ <string>o</string>
+ <key>LtnSmP</key>
+ <string>p</string>
+ <key>LtnSmQ</key>
+ <string>q</string>
+ <key>LtnSmR</key>
+ <string>r</string>
+ <key>LtnSmS</key>
+ <string>s</string>
+ <key>LtnSmT</key>
+ <string>t</string>
+ <key>LtnSmU</key>
+ <string>u</string>
+ <key>LtnSmV</key>
+ <string>v</string>
+ <key>LtnSmW</key>
+ <string>w</string>
+ <key>LtnSmX</key>
+ <string>x</string>
+ <key>LtnSmY</key>
+ <string>y</string>
+ <key>NonBreakingHyphen</key>
+ <string>uni2011</string>
+ <key>NumSgn</key>
+ <string>numbersign</string>
+ <key>PercentSgn</key>
+ <string>percent</string>
+ <key>PlusSgn</key>
+ <string>plus</string>
+ <key>QstnMrk</key>
+ <string>question</string>
+ <key>QuotMrk</key>
+ <string>quotedbl</string>
+ <key>ReverseSolidus</key>
+ <string>backslash</string>
+ <key>RtCurlyBrac</key>
+ <string>braceright</string>
+ <key>RtParen</key>
+ <string>parenright</string>
+ <key>RtSqrBrac</key>
+ <string>bracketright</string>
+ <key>Semicolon</key>
+ <string>semicolon</string>
+ <key>Solidus</key>
+ <string>slash</string>
+ <key>Space</key>
+ <string>space</string>
+ <key>Tilde</key>
+ <string>asciitilde</string>
+ <key>VertLine</key>
+ <string>bar</string>
+ </dict>
+</dict>
+</plist>
diff --git a/tests/reference/ufo/psfsetunicodes.ufo/metainfo.plist b/tests/reference/ufo/psfsetunicodes.ufo/metainfo.plist
new file mode 100644
index 0000000..aa10c5c
--- /dev/null
+++ b/tests/reference/ufo/psfsetunicodes.ufo/metainfo.plist
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>creator</key>
+ <string>org.sil.scripts.pysilfont</string>
+ <key>formatVersion</key>
+ <integer>3</integer>
+</dict>
+</plist>
diff --git a/tests/reference/ufo/psfsyncmasters-Bold-fontinfo.plist b/tests/reference/ufo/psfsyncmasters-Bold-fontinfo.plist
new file mode 100644
index 0000000..4e412bf
--- /dev/null
+++ b/tests/reference/ufo/psfsyncmasters-Bold-fontinfo.plist
@@ -0,0 +1,245 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>ascender</key>
+ <integer>2100</integer>
+ <key>capHeight</key>
+ <integer>1485</integer>
+ <key>copyright</key>
+ <string>Copyright (c) 2004-2021 SIL International</string>
+ <key>descender</key>
+ <integer>-550</integer>
+ <key>familyName</key>
+ <string>Psf Test</string>
+ <key>note</key>
+ <string>Test note
+Second line
+
+Third line
+</string>
+ <key>openTypeHeadCreated</key>
+ <string>2021/01/29 11:19:45</string>
+ <key>openTypeHheaAscender</key>
+ <integer>2100</integer>
+ <key>openTypeHheaDescender</key>
+ <integer>-550</integer>
+ <key>openTypeHheaLineGap</key>
+ <integer>0</integer>
+ <key>openTypeNameDescription</key>
+ <string>Copyright (c) 2004-2021 SIL International</string>
+ <key>openTypeNameDesigner</key>
+ <string>Victor Gaultney, Annie Olsen, Julie Remington, Don Collingsworth, Eric Hays, Becca Hirsbrunner</string>
+ <key>openTypeNameDesignerURL</key>
+ <string>http://scripts.sil.org/</string>
+ <key>openTypeNameLicense</key>
+ <string>Copyright (c) 2004-2021 SIL International (http://www.sil.org/) with Reserved Font Names "Andika" and "SIL".
+
+This Font Software is licensed under the SIL Open Font License, Version 1.1. This license is copied below, and is also available with a FAQ at: http://scripts.sil.org/OFL
+
+
+-----------------------------------------------------------
+SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
+-----------------------------------------------------------
+
+PREAMBLE
+The goals of the Open Font License (OFL) are to stimulate worldwide development of collaborative font projects, to support the font creation efforts of academic and linguistic communities, and to provide a free and open framework in which fonts may be shared and improved in partnership with others.
+
+The OFL allows the licensed fonts to be used, studied, modified and redistributed freely as long as they are not sold by themselves. The fonts, including any derivative works, can be bundled, embedded, redistributed and/or sold with any software provided that any reserved names are not used by derivative works. The fonts and derivatives, however, cannot be released under any other type of license. The requirement for fonts to remain under this license does not apply to any document created using the fonts or their derivatives.
+
+DEFINITIONS
+"Font Software" refers to the set of files released by the Copyright Holder(s) under this license and clearly marked as such. This may include source files, build scripts and documentation.
+
+"Reserved Font Name" refers to any names specified as such after the copyright statement(s).
+
+"Original Version" refers to the collection of Font Software components as distributed by the Copyright Holder(s).
+
+"Modified Version" refers to any derivative made by adding to, deleting, or substituting -- in part or in whole -- any of the components of the Original Version, by changing formats or by porting the Font Software to a new environment.
+
+"Author" refers to any designer, engineer, programmer, technical writer or other person who contributed to the Font Software.
+
+PERMISSION &amp; CONDITIONS
+Permission is hereby granted, free of charge, to any person obtaining a copy of the Font Software, to use, study, copy, merge, embed, modify, redistribute, and sell modified and unmodified copies of the Font Software, subject to the following conditions:
+
+1) Neither the Font Software nor any of its individual components, in Original or Modified Versions, may be sold by itself.
+
+2) Original or Modified Versions of the Font Software may be bundled, redistributed and/or sold with any software, provided that each copy contains the above copyright notice and this license. These can be included either as stand-alone text files, human-readable headers or in the appropriate machine-readable metadata fields within text or binary files as long as those fields can be easily viewed by the user.
+
+3) No Modified Version of the Font Software may use the Reserved Font Name(s) unless explicit written permission is granted by the corresponding Copyright Holder. This restriction only applies to the primary font name as presented to the users.
+
+4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font Software shall not be used to promote, endorse or advertise any Modified Version, except to acknowledge the contribution(s) of the Copyright Holder(s) and the Author(s) or with their explicit written permission.
+
+5) The Font Software, modified or unmodified, in part or in whole, must be distributed entirely under this license, and must not be distributed under any other license. The requirement for fonts to remain under this license does not apply to any document created using the Font Software.
+
+TERMINATION
+This license becomes null and void if any of the above conditions are not met.
+
+DISCLAIMER
+THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM OTHER DEALINGS IN THE FONT SOFTWARE.</string>
+ <key>openTypeNameLicenseURL</key>
+ <string>http://scripts.sil.org/OFL</string>
+ <key>openTypeNameManufacturer</key>
+ <string>SIL International</string>
+ <key>openTypeNameManufacturerURL</key>
+ <string>http://scripts.sil.org</string>
+ <key>openTypeNamePreferredFamilyName</key>
+ <string>Psf Test</string>
+ <key>openTypeNamePreferredSubfamilyName</key>
+ <string>Bold</string>
+ <key>openTypeNameUniqueID</key>
+ <string>SIL International: Psf Test Bold: 2022</string>
+ <key>openTypeNameVersion</key>
+ <string>Version 5.550</string>
+ <key>openTypeOS2CodePageRanges</key>
+ <array>
+ <integer>0</integer>
+ <integer>1</integer>
+ <integer>2</integer>
+ <integer>4</integer>
+ <integer>7</integer>
+ <integer>8</integer>
+ </array>
+ <key>openTypeOS2FamilyClass</key>
+ <array>
+ <integer>0</integer>
+ <integer>0</integer>
+ </array>
+ <key>openTypeOS2Panose</key>
+ <array>
+ <integer>2</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ </array>
+ <key>openTypeOS2StrikeoutPosition</key>
+ <integer>700</integer>
+ <key>openTypeOS2StrikeoutSize</key>
+ <integer>100</integer>
+ <key>openTypeOS2SubscriptXOffset</key>
+ <integer>0</integer>
+ <key>openTypeOS2SubscriptXSize</key>
+ <integer>1433</integer>
+ <key>openTypeOS2SubscriptYOffset</key>
+ <integer>286</integer>
+ <key>openTypeOS2SubscriptYSize</key>
+ <integer>1331</integer>
+ <key>openTypeOS2SuperscriptXOffset</key>
+ <integer>0</integer>
+ <key>openTypeOS2SuperscriptXSize</key>
+ <integer>1433</integer>
+ <key>openTypeOS2SuperscriptYOffset</key>
+ <integer>976</integer>
+ <key>openTypeOS2SuperscriptYSize</key>
+ <integer>1331</integer>
+ <key>openTypeOS2Type</key>
+ <array/>
+ <key>openTypeOS2TypoAscender</key>
+ <integer>2100</integer>
+ <key>openTypeOS2TypoDescender</key>
+ <integer>-550</integer>
+ <key>openTypeOS2TypoLineGap</key>
+ <integer>0</integer>
+ <key>openTypeOS2UnicodeRanges</key>
+ <array>
+ <integer>0</integer>
+ <integer>1</integer>
+ <integer>6</integer>
+ <integer>7</integer>
+ <integer>31</integer>
+ <integer>33</integer>
+ <integer>35</integer>
+ <integer>36</integer>
+ <integer>37</integer>
+ <integer>38</integer>
+ <integer>39</integer>
+ <integer>40</integer>
+ <integer>45</integer>
+ <integer>46</integer>
+ <integer>47</integer>
+ <integer>57</integer>
+ <integer>60</integer>
+ <integer>62</integer>
+ <integer>64</integer>
+ <integer>67</integer>
+ <integer>69</integer>
+ <integer>89</integer>
+ </array>
+ <key>openTypeOS2VendorID</key>
+ <string>SIL</string>
+ <key>openTypeOS2WeightClass</key>
+ <integer>700</integer>
+ <key>openTypeOS2WidthClass</key>
+ <integer>5</integer>
+ <key>openTypeOS2WinAscent</key>
+ <integer>2100</integer>
+ <key>openTypeOS2WinDescent</key>
+ <integer>550</integer>
+ <key>postscriptBlueValues</key>
+ <array>
+ <integer>-490</integer>
+ <integer>-490</integer>
+ <integer>-25</integer>
+ <integer>0</integer>
+ <integer>1020</integer>
+ <integer>1040</integer>
+ <integer>1455</integer>
+ <integer>1485</integer>
+ <integer>1600</integer>
+ <integer>1620</integer>
+ </array>
+ <key>postscriptFontName</key>
+ <string>PsfTest-Bold</string>
+ <key>postscriptFullName</key>
+ <string>Psf Test Bold</string>
+ <key>postscriptStemSnapH</key>
+ <array>
+ <integer>140</integer>
+ <integer>145</integer>
+ <integer>150</integer>
+ <integer>155</integer>
+ <integer>160</integer>
+ <integer>165</integer>
+ <integer>170</integer>
+ <integer>175</integer>
+ <integer>185</integer>
+ <integer>270</integer>
+ </array>
+ <key>postscriptStemSnapV</key>
+ <array>
+ <integer>165</integer>
+ <integer>180</integer>
+ <integer>185</integer>
+ <integer>190</integer>
+ <integer>195</integer>
+ <integer>200</integer>
+ <integer>205</integer>
+ <integer>270</integer>
+ </array>
+ <key>postscriptUnderlinePosition</key>
+ <integer>-110</integer>
+ <key>postscriptUnderlineThickness</key>
+ <integer>80</integer>
+ <key>styleMapFamilyName</key>
+ <string>Psf Test</string>
+ <key>styleMapStyleName</key>
+ <string>bold</string>
+ <key>styleName</key>
+ <string>Bold</string>
+ <key>trademark</key>
+ <string>Andika is a trademark of SIL International.</string>
+ <key>unitsPerEm</key>
+ <integer>2048</integer>
+ <key>versionMajor</key>
+ <integer>5</integer>
+ <key>versionMinor</key>
+ <integer>550</integer>
+ <key>xHeight</key>
+ <integer>1040</integer>
+</dict>
+</plist>
diff --git a/tests/reference/ufo/psfsyncmasters-Bold-lib.plist b/tests/reference/ufo/psfsyncmasters-Bold-lib.plist
new file mode 100644
index 0000000..03492dd
--- /dev/null
+++ b/tests/reference/ufo/psfsyncmasters-Bold-lib.plist
@@ -0,0 +1,536 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>com.schriftgestaltung.Glyphs.fontUserData</key>
+ <dict/>
+ <key>com.schriftgestaltung.appVersion</key>
+ <string>1161</string>
+ <key>com.schriftgestaltung.customParameter.GSFont.DisplayStrings</key>
+ <string/>
+ <key>com.schriftgestaltung.customParameter.GSFont.disablesAutomaticAlignment</key>
+ <true/>
+ <key>com.schriftgestaltung.customParameter.GSFont.disablesLastChange</key>
+ <true/>
+ <key>com.schriftgestaltung.customParameter.GSFont.useNiceNames</key>
+ <integer>0</integer>
+ <key>com.schriftgestaltung.customParameter.GSFontMaster.customValue</key>
+ <integer>0</integer>
+ <key>com.schriftgestaltung.customParameter.GSFontMaster.customValue1</key>
+ <integer>0</integer>
+ <key>com.schriftgestaltung.customParameter.GSFontMaster.customValue2</key>
+ <integer>0</integer>
+ <key>com.schriftgestaltung.customParameter.GSFontMaster.customValue3</key>
+ <integer>0</integer>
+ <key>com.schriftgestaltung.customParameter.GSFontMaster.iconName</key>
+ <string/>
+ <key>com.schriftgestaltung.customParameter.GSFontMaster.weightValue</key>
+ <integer>700</integer>
+ <key>com.schriftgestaltung.customParameter.GSFontMaster.widthValue</key>
+ <integer>100</integer>
+ <key>com.schriftgestaltung.disablesAutomaticAlignment</key>
+ <true/>
+ <key>com.schriftgestaltung.disablesLastChange</key>
+ <true/>
+ <key>com.schriftgestaltung.fontMasterOrder</key>
+ <integer>1</integer>
+ <key>com.schriftgestaltung.glyphOrder</key>
+ <array>
+ <string>.notdef</string>
+ <string>.null</string>
+ <string>nonmarkingreturn</string>
+ <string>Space</string>
+ <string>ExclamationMrk</string>
+ <string>QuotMrk</string>
+ <string>NumSgn</string>
+ <string>DollarSgn</string>
+ <string>PercentSgn</string>
+ <string>Ampersand</string>
+ <string>Apos</string>
+ <string>LftParen</string>
+ <string>RtParen</string>
+ <string>Asterisk</string>
+ <string>PlusSgn</string>
+ <string>Comma</string>
+ <string>HyphenMinus</string>
+ <string>FullStop</string>
+ <string>Solidus</string>
+ <string>DigitZero</string>
+ <string>DigitOne</string>
+ <string>DigitTwo</string>
+ <string>DigitThree</string>
+ <string>DigitFour</string>
+ <string>DigitFive</string>
+ <string>DigitSix</string>
+ <string>DigitSeven</string>
+ <string>DigitEight</string>
+ <string>DigitNine</string>
+ <string>Colon</string>
+ <string>Semicolon</string>
+ <string>LTSgn</string>
+ <string>EqSgn</string>
+ <string>GTSgn</string>
+ <string>QstnMrk</string>
+ <string>AtSgn</string>
+ <string>LtnCapA</string>
+ <string>LtnCapA.alt</string>
+ <string>LtnCapB</string>
+ <string>LtnCapC</string>
+ <string>LtnCapD</string>
+ <string>LtnCapE</string>
+ <string>LtnCapF</string>
+ <string>LtnCapG</string>
+ <string>LtnCapH</string>
+ <string>LtnCapI</string>
+ <string>LtnCapJ</string>
+ <string>LtnCapK</string>
+ <string>LtnCapL</string>
+ <string>LtnCapM</string>
+ <string>LtnCapN</string>
+ <string>LtnCapO</string>
+ <string>LtnCapP</string>
+ <string>LtnCapQ</string>
+ <string>LtnCapR</string>
+ <string>LtnCapS</string>
+ <string>LtnCapT</string>
+ <string>LtnCapU</string>
+ <string>LtnCapV</string>
+ <string>LtnCapW</string>
+ <string>LtnCapX</string>
+ <string>LtnCapY</string>
+ <string>LftSqrBrac</string>
+ <string>ReverseSolidus</string>
+ <string>RtSqrBrac</string>
+ <string>CircumAccent</string>
+ <string>LowLine</string>
+ <string>GraveAccent</string>
+ <string>LtnSmA</string>
+ <string>LtnSmB</string>
+ <string>LtnSmC</string>
+ <string>LtnSmD</string>
+ <string>LtnSmE</string>
+ <string>LtnSmF</string>
+ <string>LtnSmG</string>
+ <string>LtnSmH</string>
+ <string>LtnSmI</string>
+ <string>LtnSmJ</string>
+ <string>LtnSmK</string>
+ <string>LtnSmL</string>
+ <string>LtnSmM</string>
+ <string>LtnSmN</string>
+ <string>LtnSmO</string>
+ <string>LtnSmP</string>
+ <string>LtnSmQ</string>
+ <string>LtnSmR</string>
+ <string>LtnSmS</string>
+ <string>LtnSmT</string>
+ <string>LtnSmU</string>
+ <string>LtnSmV</string>
+ <string>LtnSmW</string>
+ <string>LtnSmX</string>
+ <string>LtnSmY</string>
+ <string>LftCurlyBrac</string>
+ <string>VertLine</string>
+ <string>RtCurlyBrac</string>
+ <string>Tilde</string>
+ <string>LtnCapADiaer</string>
+ <string>LtnSmAAcute</string>
+ <string>LtnSmAGrave</string>
+ <string>LtnSmACircum</string>
+ <string>LtnSmADiaer</string>
+ <string>LtnSmATilde</string>
+ <string>LtnSmARingAbv</string>
+ <string>DottedCirc</string>
+ <string>Hyphen</string>
+ <string>NonBreakingHyphen</string>
+ <string>Hyphen_Soft</string>
+ <string>CombAcute</string>
+ <string>CombGrave</string>
+ <string>CombCircum</string>
+ <string>CombTilde</string>
+ <string>CombDiaer</string>
+ <string>CombRingAbv</string>
+ </array>
+ <key>com.schriftgestaltung.keyboardIncrement</key>
+ <integer>1</integer>
+ <key>com.schriftgestaltung.weight</key>
+ <string>Bold</string>
+ <key>com.schriftgestaltung.weightValue</key>
+ <integer>700</integer>
+ <key>com.schriftgestaltung.width</key>
+ <string>Regular</string>
+ <key>com.schriftgestaltung.widthValue</key>
+ <integer>100</integer>
+ <key>org.sil.lcg.toneLetters</key>
+ <dict>
+ <key>contourWidth</key>
+ <integer>540</integer>
+ <key>dotSize</key>
+ <integer>280</integer>
+ <key>dotSpacing</key>
+ <integer>200</integer>
+ <key>glyphDepth</key>
+ <integer>-25</integer>
+ <key>glyphHeight</key>
+ <integer>1600</integer>
+ <key>italicAngle</key>
+ <integer>0</integer>
+ <key>marginDotLeft</key>
+ <integer>100</integer>
+ <key>marginDotRight</key>
+ <integer>140</integer>
+ <key>marginFlatLeft</key>
+ <integer>100</integer>
+ <key>marginFlatRight</key>
+ <integer>140</integer>
+ <key>marginPointLeft</key>
+ <integer>80</integer>
+ <key>marginPointRight</key>
+ <integer>120</integer>
+ <key>strokeThickness</key>
+ <integer>200</integer>
+ </dict>
+ <key>public.glyphOrder</key>
+ <array>
+ <string>.notdef</string>
+ <string>.null</string>
+ <string>nonmarkingreturn</string>
+ <string>Space</string>
+ <string>ExclamationMrk</string>
+ <string>QuotMrk</string>
+ <string>NumSgn</string>
+ <string>DollarSgn</string>
+ <string>PercentSgn</string>
+ <string>Ampersand</string>
+ <string>Apos</string>
+ <string>LftParen</string>
+ <string>RtParen</string>
+ <string>Asterisk</string>
+ <string>PlusSgn</string>
+ <string>Comma</string>
+ <string>HyphenMinus</string>
+ <string>FullStop</string>
+ <string>Solidus</string>
+ <string>DigitZero</string>
+ <string>DigitOne</string>
+ <string>DigitTwo</string>
+ <string>DigitThree</string>
+ <string>DigitFour</string>
+ <string>DigitFive</string>
+ <string>DigitSix</string>
+ <string>DigitSeven</string>
+ <string>DigitEight</string>
+ <string>DigitNine</string>
+ <string>Colon</string>
+ <string>Semicolon</string>
+ <string>LTSgn</string>
+ <string>EqSgn</string>
+ <string>GTSgn</string>
+ <string>QstnMrk</string>
+ <string>AtSgn</string>
+ <string>LtnCapA</string>
+ <string>LtnCapA.alt</string>
+ <string>LtnCapB</string>
+ <string>LtnCapC</string>
+ <string>LtnCapD</string>
+ <string>LtnCapE</string>
+ <string>LtnCapF</string>
+ <string>LtnCapG</string>
+ <string>LtnCapH</string>
+ <string>LtnCapI</string>
+ <string>LtnCapJ</string>
+ <string>LtnCapK</string>
+ <string>LtnCapL</string>
+ <string>LtnCapM</string>
+ <string>LtnCapN</string>
+ <string>LtnCapO</string>
+ <string>LtnCapP</string>
+ <string>LtnCapQ</string>
+ <string>LtnCapR</string>
+ <string>LtnCapS</string>
+ <string>LtnCapT</string>
+ <string>LtnCapU</string>
+ <string>LtnCapV</string>
+ <string>LtnCapW</string>
+ <string>LtnCapX</string>
+ <string>LtnCapY</string>
+ <string>LftSqrBrac</string>
+ <string>ReverseSolidus</string>
+ <string>RtSqrBrac</string>
+ <string>CircumAccent</string>
+ <string>LowLine</string>
+ <string>GraveAccent</string>
+ <string>LtnSmA</string>
+ <string>LtnSmB</string>
+ <string>LtnSmC</string>
+ <string>LtnSmD</string>
+ <string>LtnSmE</string>
+ <string>LtnSmF</string>
+ <string>LtnSmG</string>
+ <string>LtnSmH</string>
+ <string>LtnSmI</string>
+ <string>LtnSmJ</string>
+ <string>LtnSmK</string>
+ <string>LtnSmL</string>
+ <string>LtnSmM</string>
+ <string>LtnSmN</string>
+ <string>LtnSmO</string>
+ <string>LtnSmP</string>
+ <string>LtnSmQ</string>
+ <string>LtnSmR</string>
+ <string>LtnSmS</string>
+ <string>LtnSmT</string>
+ <string>LtnSmU</string>
+ <string>LtnSmV</string>
+ <string>LtnSmW</string>
+ <string>LtnSmX</string>
+ <string>LtnSmY</string>
+ <string>LftCurlyBrac</string>
+ <string>VertLine</string>
+ <string>RtCurlyBrac</string>
+ <string>Tilde</string>
+ <string>LtnCapADiaer</string>
+ <string>LtnSmAAcute</string>
+ <string>LtnSmAGrave</string>
+ <string>LtnSmACircum</string>
+ <string>LtnSmADiaer</string>
+ <string>LtnSmATilde</string>
+ <string>LtnSmARingAbv</string>
+ <string>DottedCirc</string>
+ <string>Hyphen</string>
+ <string>NonBreakingHyphen</string>
+ <string>Hyphen_Soft</string>
+ <string>CombAcute</string>
+ <string>CombGrave</string>
+ <string>CombCircum</string>
+ <string>CombTilde</string>
+ <string>CombDiaer</string>
+ <string>CombRingAbv</string>
+ </array>
+ <key>public.postscriptNames</key>
+ <dict>
+ <key>Ampersand</key>
+ <string>ampersand</string>
+ <key>Apos</key>
+ <string>quotesingle</string>
+ <key>Asterisk</key>
+ <string>asterisk</string>
+ <key>AtSgn</key>
+ <string>at</string>
+ <key>CircumAccent</key>
+ <string>asciicircum</string>
+ <key>Colon</key>
+ <string>colon</string>
+ <key>CombAcute</key>
+ <string>acutecomb</string>
+ <key>CombCircum</key>
+ <string>uni0302</string>
+ <key>CombDiaer</key>
+ <string>uni0308</string>
+ <key>CombGrave</key>
+ <string>gravecomb</string>
+ <key>CombRingAbv</key>
+ <string>uni030A</string>
+ <key>CombTilde</key>
+ <string>tildecomb</string>
+ <key>Comma</key>
+ <string>comma</string>
+ <key>DigitEight</key>
+ <string>eight</string>
+ <key>DigitFive</key>
+ <string>five</string>
+ <key>DigitFour</key>
+ <string>four</string>
+ <key>DigitNine</key>
+ <string>nine</string>
+ <key>DigitOne</key>
+ <string>one</string>
+ <key>DigitSeven</key>
+ <string>seven</string>
+ <key>DigitSix</key>
+ <string>six</string>
+ <key>DigitThree</key>
+ <string>three</string>
+ <key>DigitTwo</key>
+ <string>two</string>
+ <key>DigitZero</key>
+ <string>zero</string>
+ <key>DollarSgn</key>
+ <string>dollar</string>
+ <key>DottedCirc</key>
+ <string>uni25CC</string>
+ <key>EqSgn</key>
+ <string>equal</string>
+ <key>ExclamationMrk</key>
+ <string>exclam</string>
+ <key>FullStop</key>
+ <string>period</string>
+ <key>GTSgn</key>
+ <string>greater</string>
+ <key>GraveAccent</key>
+ <string>grave</string>
+ <key>Hyphen</key>
+ <string>uni2010</string>
+ <key>HyphenMinus</key>
+ <string>hyphen</string>
+ <key>Hyphen_Soft</key>
+ <string>uni00AD</string>
+ <key>LTSgn</key>
+ <string>less</string>
+ <key>LftCurlyBrac</key>
+ <string>braceleft</string>
+ <key>LftParen</key>
+ <string>parenleft</string>
+ <key>LftSqrBrac</key>
+ <string>bracketleft</string>
+ <key>LowLine</key>
+ <string>underscore</string>
+ <key>LtnCapA</key>
+ <string>A</string>
+ <key>LtnCapA.alt</key>
+ <string>A</string>
+ <key>LtnCapADiaer</key>
+ <string>Adieresis</string>
+ <key>LtnCapB</key>
+ <string>B</string>
+ <key>LtnCapC</key>
+ <string>C</string>
+ <key>LtnCapD</key>
+ <string>D</string>
+ <key>LtnCapE</key>
+ <string>E</string>
+ <key>LtnCapF</key>
+ <string>F</string>
+ <key>LtnCapG</key>
+ <string>G</string>
+ <key>LtnCapH</key>
+ <string>H</string>
+ <key>LtnCapI</key>
+ <string>I</string>
+ <key>LtnCapJ</key>
+ <string>J</string>
+ <key>LtnCapK</key>
+ <string>K</string>
+ <key>LtnCapL</key>
+ <string>L</string>
+ <key>LtnCapM</key>
+ <string>M</string>
+ <key>LtnCapN</key>
+ <string>N</string>
+ <key>LtnCapO</key>
+ <string>O</string>
+ <key>LtnCapP</key>
+ <string>P</string>
+ <key>LtnCapQ</key>
+ <string>Q</string>
+ <key>LtnCapR</key>
+ <string>R</string>
+ <key>LtnCapS</key>
+ <string>S</string>
+ <key>LtnCapT</key>
+ <string>T</string>
+ <key>LtnCapU</key>
+ <string>U</string>
+ <key>LtnCapV</key>
+ <string>V</string>
+ <key>LtnCapW</key>
+ <string>W</string>
+ <key>LtnCapX</key>
+ <string>X</string>
+ <key>LtnCapY</key>
+ <string>Y</string>
+ <key>LtnSmA</key>
+ <string>a</string>
+ <key>LtnSmAAcute</key>
+ <string>aacute</string>
+ <key>LtnSmACircum</key>
+ <string>acircumflex</string>
+ <key>LtnSmADiaer</key>
+ <string>adieresis</string>
+ <key>LtnSmAGrave</key>
+ <string>agrave</string>
+ <key>LtnSmARingAbv</key>
+ <string>aring</string>
+ <key>LtnSmATilde</key>
+ <string>atilde</string>
+ <key>LtnSmB</key>
+ <string>b</string>
+ <key>LtnSmC</key>
+ <string>c</string>
+ <key>LtnSmD</key>
+ <string>d</string>
+ <key>LtnSmE</key>
+ <string>e</string>
+ <key>LtnSmF</key>
+ <string>f</string>
+ <key>LtnSmG</key>
+ <string>g</string>
+ <key>LtnSmH</key>
+ <string>h</string>
+ <key>LtnSmI</key>
+ <string>i</string>
+ <key>LtnSmJ</key>
+ <string>j</string>
+ <key>LtnSmK</key>
+ <string>k</string>
+ <key>LtnSmL</key>
+ <string>l</string>
+ <key>LtnSmM</key>
+ <string>m</string>
+ <key>LtnSmN</key>
+ <string>n</string>
+ <key>LtnSmO</key>
+ <string>o</string>
+ <key>LtnSmP</key>
+ <string>p</string>
+ <key>LtnSmQ</key>
+ <string>q</string>
+ <key>LtnSmR</key>
+ <string>r</string>
+ <key>LtnSmS</key>
+ <string>s</string>
+ <key>LtnSmT</key>
+ <string>t</string>
+ <key>LtnSmU</key>
+ <string>u</string>
+ <key>LtnSmV</key>
+ <string>v</string>
+ <key>LtnSmW</key>
+ <string>w</string>
+ <key>LtnSmX</key>
+ <string>x</string>
+ <key>LtnSmY</key>
+ <string>y</string>
+ <key>NonBreakingHyphen</key>
+ <string>uni2011</string>
+ <key>NumSgn</key>
+ <string>numbersign</string>
+ <key>PercentSgn</key>
+ <string>percent</string>
+ <key>PlusSgn</key>
+ <string>plus</string>
+ <key>QstnMrk</key>
+ <string>question</string>
+ <key>QuotMrk</key>
+ <string>quotedbl</string>
+ <key>ReverseSolidus</key>
+ <string>backslash</string>
+ <key>RtCurlyBrac</key>
+ <string>braceright</string>
+ <key>RtParen</key>
+ <string>parenright</string>
+ <key>RtSqrBrac</key>
+ <string>bracketright</string>
+ <key>Semicolon</key>
+ <string>semicolon</string>
+ <key>Solidus</key>
+ <string>slash</string>
+ <key>Space</key>
+ <string>space</string>
+ <key>Tilde</key>
+ <string>asciitilde</string>
+ <key>VertLine</key>
+ <string>bar</string>
+ </dict>
+</dict>
+</plist>
diff --git a/tests/reference/ufo/psfsyncmasters-BoldItalic-fontinfo.plist b/tests/reference/ufo/psfsyncmasters-BoldItalic-fontinfo.plist
new file mode 100644
index 0000000..ae16540
--- /dev/null
+++ b/tests/reference/ufo/psfsyncmasters-BoldItalic-fontinfo.plist
@@ -0,0 +1,243 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>ascender</key>
+ <integer>2100</integer>
+ <key>capHeight</key>
+ <integer>1485</integer>
+ <key>copyright</key>
+ <string>Copyright (c) 2004-2021 SIL International</string>
+ <key>descender</key>
+ <integer>-550</integer>
+ <key>familyName</key>
+ <string>Psf Test</string>
+ <key>italicAngle</key>
+ <integer>-14</integer>
+ <key>macintoshFONDName</key>
+ <string>My Test</string>
+ <key>openTypeHeadCreated</key>
+ <string>2021/01/29 11:19:45</string>
+ <key>openTypeHheaAscender</key>
+ <integer>2100</integer>
+ <key>openTypeHheaDescender</key>
+ <integer>-550</integer>
+ <key>openTypeHheaLineGap</key>
+ <integer>0</integer>
+ <key>openTypeNameDescription</key>
+ <string>Copyright (c) 2004-2021 SIL International</string>
+ <key>openTypeNameDesigner</key>
+ <string>Victor Gaultney, Annie Olsen, Julie Remington, Don Collingsworth, Eric Hays, Becca Hirsbrunner</string>
+ <key>openTypeNameDesignerURL</key>
+ <string>http://scripts.sil.org/</string>
+ <key>openTypeNameLicense</key>
+ <string>Copyright (c) 2004-2021 SIL International (http://www.sil.org/) with Reserved Font Names "Andika" and "SIL".
+
+This Font Software is licensed under the SIL Open Font License, Version 1.1. This license is copied below, and is also available with a FAQ at: http://scripts.sil.org/OFL
+
+
+-----------------------------------------------------------
+SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
+-----------------------------------------------------------
+
+PREAMBLE
+The goals of the Open Font License (OFL) are to stimulate worldwide development of collaborative font projects, to support the font creation efforts of academic and linguistic communities, and to provide a free and open framework in which fonts may be shared and improved in partnership with others.
+
+The OFL allows the licensed fonts to be used, studied, modified and redistributed freely as long as they are not sold by themselves. The fonts, including any derivative works, can be bundled, embedded, redistributed and/or sold with any software provided that any reserved names are not used by derivative works. The fonts and derivatives, however, cannot be released under any other type of license. The requirement for fonts to remain under this license does not apply to any document created using the fonts or their derivatives.
+
+DEFINITIONS
+"Font Software" refers to the set of files released by the Copyright Holder(s) under this license and clearly marked as such. This may include source files, build scripts and documentation.
+
+"Reserved Font Name" refers to any names specified as such after the copyright statement(s).
+
+"Original Version" refers to the collection of Font Software components as distributed by the Copyright Holder(s).
+
+"Modified Version" refers to any derivative made by adding to, deleting, or substituting -- in part or in whole -- any of the components of the Original Version, by changing formats or by porting the Font Software to a new environment.
+
+"Author" refers to any designer, engineer, programmer, technical writer or other person who contributed to the Font Software.
+
+PERMISSION &amp; CONDITIONS
+Permission is hereby granted, free of charge, to any person obtaining a copy of the Font Software, to use, study, copy, merge, embed, modify, redistribute, and sell modified and unmodified copies of the Font Software, subject to the following conditions:
+
+1) Neither the Font Software nor any of its individual components, in Original or Modified Versions, may be sold by itself.
+
+2) Original or Modified Versions of the Font Software may be bundled, redistributed and/or sold with any software, provided that each copy contains the above copyright notice and this license. These can be included either as stand-alone text files, human-readable headers or in the appropriate machine-readable metadata fields within text or binary files as long as those fields can be easily viewed by the user.
+
+3) No Modified Version of the Font Software may use the Reserved Font Name(s) unless explicit written permission is granted by the corresponding Copyright Holder. This restriction only applies to the primary font name as presented to the users.
+
+4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font Software shall not be used to promote, endorse or advertise any Modified Version, except to acknowledge the contribution(s) of the Copyright Holder(s) and the Author(s) or with their explicit written permission.
+
+5) The Font Software, modified or unmodified, in part or in whole, must be distributed entirely under this license, and must not be distributed under any other license. The requirement for fonts to remain under this license does not apply to any document created using the Font Software.
+
+TERMINATION
+This license becomes null and void if any of the above conditions are not met.
+
+DISCLAIMER
+THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM OTHER DEALINGS IN THE FONT SOFTWARE.</string>
+ <key>openTypeNameLicenseURL</key>
+ <string>http://scripts.sil.org/OFL</string>
+ <key>openTypeNameManufacturer</key>
+ <string>SIL International</string>
+ <key>openTypeNameManufacturerURL</key>
+ <string>http://scripts.sil.org</string>
+ <key>openTypeNamePreferredFamilyName</key>
+ <string>Psf Test</string>
+ <key>openTypeNamePreferredSubfamilyName</key>
+ <string>Bold Italic</string>
+ <key>openTypeNameUniqueID</key>
+ <string>SIL International: Psf Test Bold Italic: 2022</string>
+ <key>openTypeNameVersion</key>
+ <string>Version 5.550</string>
+ <key>openTypeOS2CodePageRanges</key>
+ <array>
+ <integer>0</integer>
+ <integer>1</integer>
+ <integer>2</integer>
+ <integer>4</integer>
+ <integer>7</integer>
+ <integer>8</integer>
+ </array>
+ <key>openTypeOS2FamilyClass</key>
+ <array>
+ <integer>0</integer>
+ <integer>0</integer>
+ </array>
+ <key>openTypeOS2Panose</key>
+ <array>
+ <integer>2</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ </array>
+ <key>openTypeOS2StrikeoutPosition</key>
+ <integer>700</integer>
+ <key>openTypeOS2StrikeoutSize</key>
+ <integer>100</integer>
+ <key>openTypeOS2SubscriptXOffset</key>
+ <integer>0</integer>
+ <key>openTypeOS2SubscriptXSize</key>
+ <integer>1433</integer>
+ <key>openTypeOS2SubscriptYOffset</key>
+ <integer>286</integer>
+ <key>openTypeOS2SubscriptYSize</key>
+ <integer>1331</integer>
+ <key>openTypeOS2SuperscriptXOffset</key>
+ <integer>0</integer>
+ <key>openTypeOS2SuperscriptXSize</key>
+ <integer>1433</integer>
+ <key>openTypeOS2SuperscriptYOffset</key>
+ <integer>976</integer>
+ <key>openTypeOS2SuperscriptYSize</key>
+ <integer>1331</integer>
+ <key>openTypeOS2Type</key>
+ <array/>
+ <key>openTypeOS2TypoAscender</key>
+ <integer>2100</integer>
+ <key>openTypeOS2TypoDescender</key>
+ <integer>-550</integer>
+ <key>openTypeOS2TypoLineGap</key>
+ <integer>0</integer>
+ <key>openTypeOS2UnicodeRanges</key>
+ <array>
+ <integer>0</integer>
+ <integer>1</integer>
+ <integer>6</integer>
+ <integer>7</integer>
+ <integer>31</integer>
+ <integer>33</integer>
+ <integer>35</integer>
+ <integer>36</integer>
+ <integer>37</integer>
+ <integer>38</integer>
+ <integer>39</integer>
+ <integer>40</integer>
+ <integer>45</integer>
+ <integer>46</integer>
+ <integer>47</integer>
+ <integer>57</integer>
+ <integer>60</integer>
+ <integer>62</integer>
+ <integer>64</integer>
+ <integer>67</integer>
+ <integer>69</integer>
+ <integer>89</integer>
+ </array>
+ <key>openTypeOS2VendorID</key>
+ <string>SIL</string>
+ <key>openTypeOS2WeightClass</key>
+ <integer>700</integer>
+ <key>openTypeOS2WidthClass</key>
+ <integer>5</integer>
+ <key>openTypeOS2WinAscent</key>
+ <integer>2100</integer>
+ <key>openTypeOS2WinDescent</key>
+ <integer>550</integer>
+ <key>postscriptBlueValues</key>
+ <array>
+ <integer>-490</integer>
+ <integer>-490</integer>
+ <integer>-25</integer>
+ <integer>0</integer>
+ <integer>1020</integer>
+ <integer>1040</integer>
+ <integer>1455</integer>
+ <integer>1485</integer>
+ <integer>1600</integer>
+ <integer>1620</integer>
+ </array>
+ <key>postscriptFontName</key>
+ <string>PsfTest-BoldItalic</string>
+ <key>postscriptFullName</key>
+ <string>Psf Test Bold Italic</string>
+ <key>postscriptStemSnapH</key>
+ <array>
+ <integer>140</integer>
+ <integer>145</integer>
+ <integer>150</integer>
+ <integer>155</integer>
+ <integer>160</integer>
+ <integer>165</integer>
+ <integer>170</integer>
+ <integer>175</integer>
+ <integer>185</integer>
+ <integer>270</integer>
+ </array>
+ <key>postscriptStemSnapV</key>
+ <array>
+ <integer>165</integer>
+ <integer>180</integer>
+ <integer>185</integer>
+ <integer>190</integer>
+ <integer>195</integer>
+ <integer>200</integer>
+ <integer>205</integer>
+ <integer>270</integer>
+ </array>
+ <key>postscriptUnderlinePosition</key>
+ <integer>-110</integer>
+ <key>postscriptUnderlineThickness</key>
+ <integer>80</integer>
+ <key>styleMapFamilyName</key>
+ <string>Psf Test</string>
+ <key>styleMapStyleName</key>
+ <string>bold italic</string>
+ <key>styleName</key>
+ <string>Bold Italic</string>
+ <key>trademark</key>
+ <string>Andika is a trademark of SIL International.</string>
+ <key>unitsPerEm</key>
+ <integer>2048</integer>
+ <key>versionMajor</key>
+ <integer>5</integer>
+ <key>versionMinor</key>
+ <integer>550</integer>
+ <key>xHeight</key>
+ <integer>1040</integer>
+</dict>
+</plist>
diff --git a/tests/reference/ufo/psfsyncmasters-Italic-fontinfo.plist b/tests/reference/ufo/psfsyncmasters-Italic-fontinfo.plist
new file mode 100644
index 0000000..93c215b
--- /dev/null
+++ b/tests/reference/ufo/psfsyncmasters-Italic-fontinfo.plist
@@ -0,0 +1,243 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>ascender</key>
+ <integer>2100</integer>
+ <key>capHeight</key>
+ <real>1485.3</real>
+ <key>copyright</key>
+ <string>Copyright (c) 2004-2021 SIL International</string>
+ <key>descender</key>
+ <integer>-550</integer>
+ <key>familyName</key>
+ <string>Psf Test</string>
+ <key>italicAngle</key>
+ <integer>-14</integer>
+ <key>openTypeHeadCreated</key>
+ <string>2021/01/29 11:19:45</string>
+ <key>openTypeHheaAscender</key>
+ <integer>2100</integer>
+ <key>openTypeHheaDescender</key>
+ <integer>-550</integer>
+ <key>openTypeHheaLineGap</key>
+ <integer>0</integer>
+ <key>openTypeNameDescription</key>
+ <string>Copyright (c) 2004-2021 SIL International</string>
+ <key>openTypeNameDesigner</key>
+ <string>Victor Gaultney, Annie Olsen, Julie Remington, Don Collingsworth, Eric Hays, Becca Hirsbrunner</string>
+ <key>openTypeNameDesignerURL</key>
+ <string>http://scripts.sil.org/</string>
+ <key>openTypeNameLicense</key>
+ <string>Copyright (c) 2004-2021 SIL International (http://www.sil.org/) with Reserved Font Names "Andika" and "SIL".
+
+This Font Software is licensed under the SIL Open Font License, Version 1.1. This license is copied below, and is also available with a FAQ at: http://scripts.sil.org/OFL
+
+
+-----------------------------------------------------------
+SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
+-----------------------------------------------------------
+
+PREAMBLE
+The goals of the Open Font License (OFL) are to stimulate worldwide development of collaborative font projects, to support the font creation efforts of academic and linguistic communities, and to provide a free and open framework in which fonts may be shared and improved in partnership with others.
+
+The OFL allows the licensed fonts to be used, studied, modified and redistributed freely as long as they are not sold by themselves. The fonts, including any derivative works, can be bundled, embedded, redistributed and/or sold with any software provided that any reserved names are not used by derivative works. The fonts and derivatives, however, cannot be released under any other type of license. The requirement for fonts to remain under this license does not apply to any document created using the fonts or their derivatives.
+
+DEFINITIONS
+"Font Software" refers to the set of files released by the Copyright Holder(s) under this license and clearly marked as such. This may include source files, build scripts and documentation.
+
+"Reserved Font Name" refers to any names specified as such after the copyright statement(s).
+
+"Original Version" refers to the collection of Font Software components as distributed by the Copyright Holder(s).
+
+"Modified Version" refers to any derivative made by adding to, deleting, or substituting -- in part or in whole -- any of the components of the Original Version, by changing formats or by porting the Font Software to a new environment.
+
+"Author" refers to any designer, engineer, programmer, technical writer or other person who contributed to the Font Software.
+
+PERMISSION &amp; CONDITIONS
+Permission is hereby granted, free of charge, to any person obtaining a copy of the Font Software, to use, study, copy, merge, embed, modify, redistribute, and sell modified and unmodified copies of the Font Software, subject to the following conditions:
+
+1) Neither the Font Software nor any of its individual components, in Original or Modified Versions, may be sold by itself.
+
+2) Original or Modified Versions of the Font Software may be bundled, redistributed and/or sold with any software, provided that each copy contains the above copyright notice and this license. These can be included either as stand-alone text files, human-readable headers or in the appropriate machine-readable metadata fields within text or binary files as long as those fields can be easily viewed by the user.
+
+3) No Modified Version of the Font Software may use the Reserved Font Name(s) unless explicit written permission is granted by the corresponding Copyright Holder. This restriction only applies to the primary font name as presented to the users.
+
+4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font Software shall not be used to promote, endorse or advertise any Modified Version, except to acknowledge the contribution(s) of the Copyright Holder(s) and the Author(s) or with their explicit written permission.
+
+5) The Font Software, modified or unmodified, in part or in whole, must be distributed entirely under this license, and must not be distributed under any other license. The requirement for fonts to remain under this license does not apply to any document created using the Font Software.
+
+TERMINATION
+This license becomes null and void if any of the above conditions are not met.
+
+DISCLAIMER
+THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM OTHER DEALINGS IN THE FONT SOFTWARE.</string>
+ <key>openTypeNameLicenseURL</key>
+ <string>http://scripts.sil.org/OFL</string>
+ <key>openTypeNameManufacturer</key>
+ <string>SIL International</string>
+ <key>openTypeNameManufacturerURL</key>
+ <string>http://scripts.sil.org</string>
+ <key>openTypeNamePreferredFamilyName</key>
+ <string>Psf Test</string>
+ <key>openTypeNamePreferredSubfamilyName</key>
+ <string>Italic</string>
+ <key>openTypeNameUniqueID</key>
+ <string>SIL International: Psf Test Italic: 2022</string>
+ <key>openTypeNameVersion</key>
+ <string>Version 5.550</string>
+ <key>openTypeOS2CodePageRanges</key>
+ <array>
+ <integer>0</integer>
+ <integer>1</integer>
+ <integer>2</integer>
+ <integer>4</integer>
+ <integer>7</integer>
+ <integer>8</integer>
+ </array>
+ <key>openTypeOS2FamilyClass</key>
+ <array>
+ <integer>0</integer>
+ <integer>0</integer>
+ </array>
+ <key>openTypeOS2Panose</key>
+ <array>
+ <integer>2</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ <integer>0</integer>
+ </array>
+ <key>openTypeOS2StrikeoutPosition</key>
+ <integer>700</integer>
+ <key>openTypeOS2StrikeoutSize</key>
+ <integer>100</integer>
+ <key>openTypeOS2SubscriptXOffset</key>
+ <integer>0</integer>
+ <key>openTypeOS2SubscriptXSize</key>
+ <integer>1433</integer>
+ <key>openTypeOS2SubscriptYOffset</key>
+ <integer>286</integer>
+ <key>openTypeOS2SubscriptYSize</key>
+ <integer>1331</integer>
+ <key>openTypeOS2SuperscriptXOffset</key>
+ <integer>0</integer>
+ <key>openTypeOS2SuperscriptXSize</key>
+ <integer>1433</integer>
+ <key>openTypeOS2SuperscriptYOffset</key>
+ <integer>976</integer>
+ <key>openTypeOS2SuperscriptYSize</key>
+ <integer>1331</integer>
+ <key>openTypeOS2Type</key>
+ <array/>
+ <key>openTypeOS2TypoAscender</key>
+ <integer>2100</integer>
+ <key>openTypeOS2TypoDescender</key>
+ <integer>-550</integer>
+ <key>openTypeOS2TypoLineGap</key>
+ <integer>0</integer>
+ <key>openTypeOS2UnicodeRanges</key>
+ <array>
+ <integer>0</integer>
+ <integer>1</integer>
+ <integer>6</integer>
+ <integer>7</integer>
+ <integer>31</integer>
+ <integer>33</integer>
+ <integer>35</integer>
+ <integer>36</integer>
+ <integer>37</integer>
+ <integer>38</integer>
+ <integer>39</integer>
+ <integer>40</integer>
+ <integer>45</integer>
+ <integer>46</integer>
+ <integer>47</integer>
+ <integer>57</integer>
+ <integer>60</integer>
+ <integer>62</integer>
+ <integer>64</integer>
+ <integer>67</integer>
+ <integer>69</integer>
+ <integer>89</integer>
+ </array>
+ <key>openTypeOS2VendorID</key>
+ <string>SIL</string>
+ <key>openTypeOS2WeightClass</key>
+ <integer>400</integer>
+ <key>openTypeOS2WidthClass</key>
+ <integer>5</integer>
+ <key>openTypeOS2WinAscent</key>
+ <integer>2100</integer>
+ <key>openTypeOS2WinDescent</key>
+ <integer>550</integer>
+ <key>postscriptBlueValues</key>
+ <array>
+ <integer>-490</integer>
+ <integer>-490</integer>
+ <integer>-25</integer>
+ <integer>0</integer>
+ <integer>1020</integer>
+ <integer>1040</integer>
+ <integer>1455</integer>
+ <integer>1485</integer>
+ <integer>1600</integer>
+ <integer>1620</integer>
+ </array>
+ <key>postscriptFontName</key>
+ <string>PsfTest-Italic</string>
+ <key>postscriptFullName</key>
+ <string>Psf Test Italic</string>
+ <key>postscriptStemSnapH</key>
+ <array>
+ <integer>140</integer>
+ <integer>145</integer>
+ <integer>150</integer>
+ <integer>155</integer>
+ <integer>160</integer>
+ <integer>165</integer>
+ <integer>170</integer>
+ <integer>175</integer>
+ <integer>185</integer>
+ <integer>270</integer>
+ </array>
+ <key>postscriptStemSnapV</key>
+ <array>
+ <integer>165</integer>
+ <integer>180</integer>
+ <integer>185</integer>
+ <integer>190</integer>
+ <integer>195</integer>
+ <integer>200</integer>
+ <integer>205</integer>
+ <integer>270</integer>
+ </array>
+ <key>postscriptUnderlinePosition</key>
+ <integer>-110</integer>
+ <key>postscriptUnderlineThickness</key>
+ <integer>80</integer>
+ <key>styleMapFamilyName</key>
+ <string>Psf Test</string>
+ <key>styleMapStyleName</key>
+ <string>italic</string>
+ <key>styleName</key>
+ <string>Italic</string>
+ <key>trademark</key>
+ <string>Andika is a trademark of SIL International.</string>
+ <key>unitsPerEm</key>
+ <integer>2048</integer>
+ <key>versionMajor</key>
+ <integer>5</integer>
+ <key>versionMinor</key>
+ <integer>550</integer>
+ <key>xHeight</key>
+ <integer>1040</integer>
+ <key>year</key>
+ <integer>2021</integer>
+</dict>
+</plist>
diff --git a/tests/reference/ufo/psfsyncmasters.lg b/tests/reference/ufo/psfsyncmasters.lg
new file mode 100644
index 0000000..dabd1cc
--- /dev/null
+++ b/tests/reference/ufo/psfsyncmasters.lg
@@ -0,0 +1,12 @@
+2020-07-28 14:36:09 Progress: Running: psfsyncmasters -n tests/input/font-psf-test/source/PsfTestRoman.designspace tests/input/font-psf-test/source/PsfTestItalic.designspace -l local/testresults/ufo/psfsyncmasters.log
+2020-07-28 14:36:09 Warning: PsfTest-Bold.ufo com.schriftgestaltung.glyphOrder updated: Old value: ['.notdef', '.null',..., new value: ['.notdef', '.null',...
+2020-07-28 14:36:09 Progress: Writing updated lib.plist to lib_new.plist
+2020-07-28 14:36:09 Progress: Writing updated fontinfo.plist to fontinfo_new.plist
+2020-07-28 14:36:09 Warning: PsfTest-Italic.ufo openTypeNamePreferredFamilyName updated: Old value: Psf Testing, new value: Psf Test
+2020-07-28 14:36:09 Warning: PsfTest-Italic.ufo openTypeOS2TypoLineGap updated: Old value: 1, new value: 0
+2020-07-28 14:36:09 Warning: PsfTest-Italic.ufo styleMapFamilyName updated: Old value: Psf test, new value: Psf Test
+2020-07-28 14:36:09 Progress: Writing updated fontinfo.plist to fontinfo_new.plist
+2020-07-28 14:36:09 Warning: PsfTest-BoldItalic.ufo openTypeHheaAscender updated: Old value: 2200, new value: 2100
+2020-07-28 14:36:09 Warning: PsfTest-BoldItalic.ufo postscriptFamilyBlues removed: Old value: []
+2020-07-28 14:36:09 Progress: Writing updated fontinfo.plist to fontinfo_new.plist
+2020-07-28 14:36:09 Progress: psfsyncmasters completed
diff --git a/tests/reference/ufo/psfufo2ttf.lg b/tests/reference/ufo/psfufo2ttf.lg
new file mode 100644
index 0000000..53e7ee8
--- /dev/null
+++ b/tests/reference/ufo/psfufo2ttf.lg
@@ -0,0 +1,4 @@
+2020-07-28 14:36:09 Progress: Running: psfufo2ttf tests/input/font-psf-test/source/PsfTest-Regular.ufo local/testresults/ufo/psfufo2ttf.ttf -l local/testresults/ufo/psfufo2ttf.log
+2020-07-28 14:36:09 Progress: Converting UFO to ttf without OT
+2020-07-28 14:36:09 Progress: Saving ttf file
+2020-07-28 14:36:09 Progress: Done
diff --git a/tests/reference/ufo/psfufo2ttf.ttf b/tests/reference/ufo/psfufo2ttf.ttf
new file mode 100644
index 0000000..748c82b
--- /dev/null
+++ b/tests/reference/ufo/psfufo2ttf.ttf
Binary files differ
diff --git a/tests/resetreferencelogs.py b/tests/resetreferencelogs.py
new file mode 100644
index 0000000..064a1e3
--- /dev/null
+++ b/tests/resetreferencelogs.py
@@ -0,0 +1,67 @@
+#!/usr/bin/env python
+''' Reset the reference log files following changes to tests
+Works on one test group at a time.
+Copies the results logs to reference .lg files, replacing making file paths generic.
+setupTestdata.py then generates correct log files from .lg files
+'''
+__url__ = 'http://github.com/silnrsi/pysilfont'
+__copyright__ = 'Copyright (c) 2018 SIL International (http://www.sil.org)'
+__license__ = 'Released under the MIT License (http://opensource.org/licenses/MIT)'
+__author__ = 'David Raymond'
+
+import os, sys, shutil, glob, io
+from silfont.util import text_diff
+
+# Check being run in pysilfont root directory
+cwd = os.getcwd()
+if os.path.split(cwd)[1] != "pysilfont":
+ print("resetReferenceLogs must be run in pysilfont root directory")
+ sys.exit(1)
+
+if len(sys.argv) != 2:
+ print("Usage: resetReferenceLogs testgroupname")
+ print("*** Should only be run when reference logs in the local/testresults/<testgorupname> directory"
+ " are known to be good ***")
+ sys.exit()
+
+testgroup = sys.argv[1]
+
+if testgroup not in ("ufo", "fontparts"):
+ print("Invalid test group")
+ sys.exit()
+
+logsdir = "local/testresults/" + testgroup + "/"
+refdir = "tests/reference/" + testgroup + "/"
+
+if not os.path.isdir(logsdir):
+ print(logsdir + " does not exist")
+ sys.exit()
+
+
+# Read the new log files and create new .lg files from them
+logs = glob.iglob(logsdir + "*.log")
+updates = False
+for log in logs:
+ inlog = io.open(log, mode="r", encoding="utf-8")
+ testn = os.path.splitext(os.path.split(log)[1])[0]
+ outtmp = refdir + testn + ".tmp"
+ outlg = refdir + testn + ".lg"
+ outlog = io.open(outtmp, mode="w", encoding="utf-8")
+ for line in inlog:
+ line = line.replace(cwd, "@cwd@") # Replace machine-specific cwd with placeholder
+ line = line.replace("\\","/") # Replace Windows \ with /
+ outlog.write(line)
+ outlog.close()
+ # Only update the .lg if it has changed
+ diff = text_diff(outtmp, outlg, ignore_chars=20)
+ if diff.returncode: # Either they are different or .lg file is missing
+ try:
+ os.remove(outlg)
+ except:
+ pass
+ os.rename(outtmp, outlg)
+ updates = True
+ print(outlg + " recreated")
+ else:
+ os.remove(outtmp)
+if updates: print("Run tests/setuptestdata.py to reset reference .log files") \ No newline at end of file
diff --git a/tests/runlocalufotests.py b/tests/runlocalufotests.py
new file mode 100644
index 0000000..5d79d70
--- /dev/null
+++ b/tests/runlocalufotests.py
@@ -0,0 +1,63 @@
+#!/usr/bin/env python
+''' For running local tests, assuming setuplocalufotests.py has been run
+The copy in pysilfont/tests should never be run. setuplocalufotests makes a copy in local/tests and renames it to
+test_localufos so that "pytest local" or "pytest local/ufotests" will find and run it
+It assumes setuplocalufotests had run cleanly, so minimal checking for validity of csv file
+'''
+__url__ = 'http://github.com/silnrsi/pysilfont'
+__copyright__ = 'Copyright (c) 2018 SIL International (http://www.sil.org)'
+__license__ = 'Released under the MIT License (http://opensource.org/licenses/MIT)'
+__author__ = 'David Raymond'
+
+from silfont.core import execute, csvreader
+import silfont.util as UT
+import silfont.scripts.psfnormalize as psfnormalize
+import os, sys, shutil, glob, io
+
+
+# Open config file
+cfg = csvreader("local/ufotests/ufolist.csv")
+cfg.numfields=4
+
+# Clear out any previous results
+resultsdir = "local/ufotests/results/"
+if os.path.isdir(resultsdir):
+ shutil.rmtree(resultsdir)
+os.makedirs(resultsdir)
+
+ufolist = []
+for line in cfg: ufolist.append(line)
+
+def test_normalize():
+ global ufolist
+ allclear = True
+
+ for (ufo, ufoname, errorcount, warningcount) in ufolist:
+ cl = " ".join(["psfnormalize", ufo, "-l", resultsdir + ufoname + ".log", "-q", "-p", "checkfix=fix"])
+ result = UT.test_run("UFO", cl, psfnormalize, resultsdir + ufoname + ".ufo", int(errorcount), int(warningcount))
+ if not result:
+ print("The above issues were with normalizing " + ufo)
+ allclear = False
+
+ assert allclear
+
+def test_diffs():
+ global ufolist
+ allclear = True
+
+ for line in ufolist:
+ ufoname = line[1]
+ diff = UT.ufo_diff(resultsdir + ufoname + ".ufo", "local/ufotests/reference/" + ufoname + ".ufo")
+ if diff.returncode:
+ allclear = False
+ diff.print_text()
+ diff = UT.text_diff(resultsdir + ufoname + ".log", "local/ufotests/reference/" + ufoname + ".log", ignore_chars=20)
+ if diff.returncode:
+ allclear = False
+ diff.print_text()
+
+ assert allclear
+
+if __name__ == "__main__":
+ test_normalize()
+ test_diffs()
diff --git a/tests/runmakefeatests.py b/tests/runmakefeatests.py
new file mode 100644
index 0000000..7243202
--- /dev/null
+++ b/tests/runmakefeatests.py
@@ -0,0 +1,46 @@
+#!/usr/bin/env python
+''' Test of script named in testname below
+'''
+__url__ = 'http://github.com/silnrsi/pysilfont'
+__copyright__ = 'Copyright (c) 2019 SIL International (http://www.sil.org)'
+__license__ = 'Released under the MIT License (http://opensource.org/licenses/MIT)'
+__author__ = 'David Raymond'
+
+import silfont.util
+
+# Next 7 lines of code may be test-specific
+import os
+import silfont.scripts.psfmakefea as testcommand
+from glob import glob
+
+testname = "psfmakefea"
+outdir = "local/testresults/psfmakefea"
+cl = "psfmakefea -i tests/input/{name}.feax -o {outdir}/{name}.fea -l {outdir}/{name}.log"
+outfont = None # Set to None for commands which don't output a font
+diffexts = [".fea", ".log"] # List of extensions of all output files
+exp_errors = 0 # These may need updating if the test ufo is updated
+exp_warnings = 0 # The test ufo should have some errors/warnings to test the code!
+test_files = [os.path.splitext(os.path.basename(f))[0] for f in glob("tests/input/*.feax")]
+# Code after this can be the same for most/all tests; if needed to be different for a test remove this comment!
+
+def test_run():
+ if not os.path.exists(outdir):
+ os.makedirs(outdir)
+ for name in test_files:
+ command = cl.format(name=name, outdir=outdir)
+ result = silfont.util.test_run(None, command, testcommand, outfont, exp_errors, exp_warnings)
+ assert result
+
+def test_diffs(): # Do a diff on all output files
+ for name in test_files:
+ result = silfont.util.test_diffs("psfmakefea", name, diffexts)
+ assert result
+
+if __name__ == "__main__":
+ test_run()
+ test_diffs()
+
+
+
+
+
diff --git a/tests/setuplocalufotests.py b/tests/setuplocalufotests.py
new file mode 100644
index 0000000..f8ca322
--- /dev/null
+++ b/tests/setuplocalufotests.py
@@ -0,0 +1,69 @@
+#!/usr/bin/env python
+''' Setup test based on locally-stored UFOs
+Reads from tests/localufos.csv which has format ufopath,type where
+- ufopath is the full path to the ufo
+- type is either:
+ - "copy" to copy the ufo to local/ufotests/source (to protect against future changes to the ufo
+ - "insitu" to use the uso from where it is, for ufos unlikely to be changed during a development cycle
+It should be run with stable pysilfont code prior to starting development and will create reference copies of the fonts
+by normalizing with checkfix=fix
+Once setup, "pytest local/ufotests" will again normalize all the fonts listed and compare with the reference fonts
+'''
+__url__ = 'http://github.com/silnrsi/pysilfont'
+__copyright__ = 'Copyright (c) 2018 SIL International (http://www.sil.org)'
+__license__ = 'Released under the MIT License (http://opensource.org/licenses/MIT)'
+__author__ = 'David Raymond'
+
+from silfont.core import execute, csvreader
+import silfont.scripts.psfnormalize as psfnormalize
+import os, sys, shutil
+
+# Check being run in pysilfont root directory
+cwd = os.getcwd()
+if os.path.split(cwd)[1] != "pysilfont":
+ print("setupTestdata must be run in pysilfont root directory")
+ sys.exit(1)
+
+# Open config file
+cfg = csvreader("tests/localufos.csv")
+cfg.numfields=2
+
+# Clear out any previous data and create directory tree
+if os.path.isdir("local/ufotests"): shutil.rmtree("local/ufotests")
+for type in ("source", "results", "reference", "logs"): os.makedirs("local/ufotests/" + type)
+
+# Create source (for type=copy) and reference copies of the ufos
+ufolist = []
+for ufo,type in cfg:
+ (path,ufoname) = os.path.split(ufo)
+ logname = ufoname[:-4] + ".log"
+ if not os.path.isdir(ufo):
+ print (ufo + " is not a directory")
+ continue
+ if type == "copy":
+ sourcedir = "local/ufotests/source/" + ufoname
+ shutil.copytree(ufo, sourcedir)
+ elif type == "insitu":
+ sourcedir = ufo
+ else:
+ print("Invalid type '" + type + "' for " + ufo)
+ continue
+
+ sys.argv = ["psfnormalize", sourcedir, "-l", "local/ufotests/results/" + logname, "-q", "-p", "checkfix=fix"]
+ print("Normalizing " + sourcedir + " for reference")
+ (args, font) = execute("UFO", psfnormalize.doit, psfnormalize.argspec, chain="first")
+ font.write("local/ufotests/results/" + ufoname)
+ # Move from results to reference - originally written to results to get reference log file correct
+ os.rename("local/ufotests/results/" + ufoname, "local/ufotests/reference/" + ufoname)
+ os.rename("local/ufotests/results/" + logname, "local/ufotests/reference/" + logname)
+ #errorcount = args.logger.errorcount -1 if args.logger.errorcount else 0 # If there is an error, reduce count for extra error reporting that there were errors!
+ ufolist.append((sourcedir, ufoname[:-4], str(args.logger.errorcount), str(args.logger.warningcount)))
+args.logger.logfile.close() # Make sure final log file is closed
+
+# Create ufolist.csv
+ufofile = open("local/ufotests/ufolist.csv", "w")
+for line in ufolist:
+ ufofile.write(",".join(line) + "\n")
+
+# Copy the main test to local/ufotests
+shutil.copy("tests/runlocalufotests.py", "local/ufotests/test_localufos.py")
diff --git a/tests/setuptestdata.py b/tests/setuptestdata.py
new file mode 100644
index 0000000..7dbe296
--- /dev/null
+++ b/tests/setuptestdata.py
@@ -0,0 +1,47 @@
+#!/usr/bin/env python
+''' Setup the test environment
+'''
+__url__ = 'http://github.com/silnrsi/pysilfont'
+__copyright__ = 'Copyright (c) 2018 SIL International (http://www.sil.org)'
+__license__ = 'Released under the MIT License (http://opensource.org/licenses/MIT)'
+__author__ = 'David Raymond'
+
+import os, sys, shutil, glob, io
+
+# Check being run in pysilfont root directory
+cwd = os.getcwd()
+if os.path.split(cwd)[1] != "pysilfont":
+ print("setupTestdata must be run in pysilfont root directory")
+ sys.exit(1)
+
+resultsdir = "local/testresults/"
+oldresultsdir = "local/oldtestresults/"
+
+if os.path.isdir(resultsdir):
+ if os.path.isdir(oldresultsdir): shutil.rmtree(oldresultsdir)
+ os.rename(resultsdir, oldresultsdir)
+os.makedirs(resultsdir + "ufo/psfglyphs2ufo")
+os.makedirs(resultsdir + "fontparts")
+
+
+# Copy standard UFO results across so that the log files consistently say:
+# "Progress: Output UFO already exists - reading for comparison"
+
+ufos = glob.iglob("tests/reference/ufo/*.ufo")
+for ufo in ufos:
+ (base, ufoname) = os.path.split(ufo)
+ resultufo = os.path.join(resultsdir, "ufo", ufoname)
+ shutil.copytree(ufo, resultufo)
+
+# Create reference log files from .lg files
+for name in os.listdir("tests/reference/"):
+ fulldir = "tests/reference/" + name
+ if os.path.isdir(fulldir):
+ for filen in os.listdir(fulldir):
+ (base,ext) = os.path.splitext(filen)
+ if ext == ".lg":
+ inlog = io.open(os.path.join(fulldir, filen), mode="r", encoding="utf-8")
+ outlog = io.open(os.path.join(fulldir, base + ".log"), mode="w", encoding="utf-8")
+ for line in inlog:
+ line = line.replace("@cwd@", cwd) # Replace placeholder with machine-specific cwd
+ outlog.write(line)
diff --git a/tests/ufo/test_10_psfbuildcomp.py b/tests/ufo/test_10_psfbuildcomp.py
new file mode 100644
index 0000000..d599c7e
--- /dev/null
+++ b/tests/ufo/test_10_psfbuildcomp.py
@@ -0,0 +1,37 @@
+#!/usr/bin/env python
+''' Test of script named in testname below
+'''
+__url__ = 'http://github.com/silnrsi/pysilfont'
+__copyright__ = 'Copyright (c) 2018 SIL International (http://www.sil.org)'
+__license__ = 'Released under the MIT License (http://opensource.org/licenses/MIT)'
+__author__ = 'David Raymond'
+
+import silfont.util
+
+# Next 7 lines of code may be test-specific
+import silfont.scripts.psfbuildcomp as testcommand
+testname = "psfbuildcomp"
+cl = "psfbuildcomp tests/input/font-psf-test/source/PsfTest-Regular.ufo -i tests/input/psfbuildcomp.txt -l local/testresults/ufo/psfbuildcomp.log -p loglevel=i"
+outfont = "local/testresults/ufo/psfbuildcomp.ufo" # Set to None for commands which don't output a font
+diffexts = [".ufo", ".log"] # List of extensions of all output files
+exp_errors = 9 # These may need updating if the test ufo is updated
+exp_warnings = 5 # The test ufo should have some errors/warnings to test the code!
+
+# Code after this can be the same for most/all tests; if needed to be different for a test remove this comment!
+
+def test_run():
+ result = silfont.util.test_run("UFO", cl, testcommand, outfont, exp_errors, exp_warnings)
+ assert result
+
+def test_diffs(): # Do a diff on all output files
+ result = silfont.util.test_diffs("ufo", testname, diffexts)
+ assert result
+
+if __name__ == "__main__":
+ test_run()
+ test_diffs()
+
+
+
+
+
diff --git a/tests/ufo/test_16_psfchangettfglyphnames.py b/tests/ufo/test_16_psfchangettfglyphnames.py
new file mode 100644
index 0000000..72b7dc1
--- /dev/null
+++ b/tests/ufo/test_16_psfchangettfglyphnames.py
@@ -0,0 +1,37 @@
+#!/usr/bin/env python
+'Test for psfchangettfglyphnames'
+__url__ = 'http://github.com/silnrsi/pysilfont'
+__copyright__ = 'Copyright (c) 2018 SIL International (http://www.sil.org)'
+__license__ = 'Released under the MIT License (http://opensource.org/licenses/MIT)'
+__author__ = 'David Raymond'
+
+import silfont.util
+
+# Next 5 lines of code are test-specific
+import silfont.scripts.psfchangettfglyphnames as testcommand
+testname = "psfchangettfglyphnames"
+cl = "psfchangettfglyphnames tests/input/font-psf-test/source/PsfTest-Regular.ufo " \
+ "tests/input/PsfTest-R.ttf local/testresults/ufo/psfchangettfglyphnames.ttf -l local/testresults/ufo/psfchangettfglyphnames.log"
+outfont = None
+diffexts = [".ttf", ".log"]
+exp_errors = 0 # These may need updating if the test ufo is updated
+exp_warnings = 0 # The test ufo should have some errors/warnings to test the code!
+
+# Code after this can be the same for most tests; if needed to be different for a test remove this comment!
+
+def test_run():
+ result = silfont.util.test_run("UFO", cl, testcommand, outfont, exp_errors, exp_warnings)
+ assert result
+
+def test_diffs(): # Generic function for all UFO tests
+ result = silfont.util.test_diffs("ufo", testname, diffexts)
+ assert result
+
+if __name__ == "__main__":
+ test_run()
+ test_diffs()
+
+
+
+
+
diff --git a/tests/ufo/test_18_psfcheckbasicchars.py b/tests/ufo/test_18_psfcheckbasicchars.py
new file mode 100644
index 0000000..9e685ce
--- /dev/null
+++ b/tests/ufo/test_18_psfcheckbasicchars.py
@@ -0,0 +1,36 @@
+#!/usr/bin/env python
+'Test for psfcheckbasicchars'
+__url__ = 'http://github.com/silnrsi/pysilfont'
+__copyright__ = 'Copyright (c) 2018 SIL International (http://www.sil.org)'
+__license__ = 'Released under the MIT License (http://opensource.org/licenses/MIT)'
+__author__ = 'David Raymond'
+
+import silfont.util
+
+# Next 5 lines of code are test-specific
+import silfont.scripts.psfcheckbasicchars as testcommand
+testname = "psfcheckbasicchars"
+cl = "psfcheckbasicchars tests/input/font-psf-test/source/PsfTest-Regular.ufo -l local/testresults/ufo/psfcheckbasicchars.log"
+outfont = None
+diffexts = [".log"]
+exp_errors = 1 # These may need updating if the test ufo is updated
+exp_warnings = 192 # The test ufo should have some errors/warnings to test the code!
+
+# Code after this can be the same for most tests; if needed to be different for a test remove this comment!
+
+def test_run():
+ result = silfont.util.test_run("UFO", cl, testcommand, outfont, exp_errors, exp_warnings)
+ assert result
+
+def test_diffs(): # Generic function for all UFO tests
+ result = silfont.util.test_diffs("ufo", testname, diffexts)
+ assert result
+
+if __name__ == "__main__":
+ test_run()
+ test_diffs()
+
+
+
+
+
diff --git a/tests/ufo/test_23_psfcopyglyphs.py b/tests/ufo/test_23_psfcopyglyphs.py
new file mode 100644
index 0000000..b874cea
--- /dev/null
+++ b/tests/ufo/test_23_psfcopyglyphs.py
@@ -0,0 +1,41 @@
+#!/usr/bin/env python
+''' Test of script named in testname below
+'''
+__url__ = 'http://github.com/silnrsi/pysilfont'
+__copyright__ = 'Copyright (c) 2018 SIL International (http://www.sil.org)'
+__license__ = 'Released under the MIT License (http://opensource.org/licenses/MIT)'
+__author__ = 'David Raymond'
+
+import silfont.util
+
+# Next 7 lines of code may be test-specific
+import silfont.scripts.psfcopyglyphs as testcommand
+testname = "psfcopyglyphs"
+cl = "psfcopyglyphs -s tests/input/font-psf-test/source/PsfTest-Regular.ufo " \
+ "tests/input/font-psf-test/source/PsfTest-Italic.ufo " \
+ "-i tests/input/psfcopyglyphs.csv " \
+ "-l local/testresults/ufo/psfcopyglyphs.log " \
+ "--rename newname --unicode usv"
+outfont = "local/testresults/ufo/psfcopyglyphs.ufo" # Set to None for commands which don't output a font
+diffexts = [".ufo", ".log"] # List of extensions of all output files
+exp_errors = 0 # These may need updating if the test ufo is updated
+exp_warnings = 15 # The test ufo should have some errors/warnings to test the code!
+
+# Code after this can be the same for most/all tests; if needed to be different for a test remove this comment!
+
+def test_run():
+ result = silfont.util.test_run("UFO", cl, testcommand, outfont, exp_errors, exp_warnings)
+ assert result
+
+def test_diffs(): # Do a diff on all output files
+ result = silfont.util.test_diffs("ufo", testname, diffexts)
+ assert result
+
+if __name__ == "__main__":
+ test_run()
+ test_diffs()
+
+
+
+
+
diff --git a/tests/ufo/test_30_psfdeleteglyphs.py b/tests/ufo/test_30_psfdeleteglyphs.py
new file mode 100644
index 0000000..c5c461a
--- /dev/null
+++ b/tests/ufo/test_30_psfdeleteglyphs.py
@@ -0,0 +1,37 @@
+#!/usr/bin/env python
+''' Test of script named in testname below
+'''
+__url__ = 'http://github.com/silnrsi/pysilfont'
+__copyright__ = 'Copyright (c) 2018 SIL International (http://www.sil.org)'
+__license__ = 'Released under the MIT License (http://opensource.org/licenses/MIT)'
+__author__ = 'David Raymond'
+
+import silfont.util
+
+# Next 7 lines of code may be test-specific
+import silfont.scripts.psfdeleteglyphs as testcommand
+testname = "psfdeleteglyphs"
+cl = "psfdeleteglyphs tests/input/font-psf-test/source/PsfTest-Regular.ufo -i tests/input/psfdeleteglyphs.txt -l local/testresults/ufo/psfdeleteglyphs.log -p loglevel=i -p scrlevel=w"
+outfont = "local/testresults/ufo/psfdeleteglyphs.ufo" # Set to None for commands which don't output a font
+diffexts = [".ufo", ".log"] # List of extensions of all output files
+exp_errors = 0 # These may need updating if the test ufo is updated
+exp_warnings = 6 # The test ufo should have some errors/warnings to test the code!
+
+# Code after this can be the same for most/all tests; if needed to be different for a test remove this comment!
+
+def test_run():
+ result = silfont.util.test_run("UFO", cl, testcommand, outfont, exp_errors, exp_warnings)
+ assert result
+
+def test_diffs(): # Do a diff on all output files
+ result = silfont.util.test_diffs("ufo", testname, diffexts)
+ assert result
+
+if __name__ == "__main__":
+ test_run()
+ test_diffs()
+
+
+
+
+
diff --git a/tests/ufo/test_34_psfexportanchors.py b/tests/ufo/test_34_psfexportanchors.py
new file mode 100644
index 0000000..fff85a7
--- /dev/null
+++ b/tests/ufo/test_34_psfexportanchors.py
@@ -0,0 +1,36 @@
+#!/usr/bin/env python
+'Test for psfexportanchors'
+__url__ = 'http://github.com/silnrsi/pysilfont'
+__copyright__ = 'Copyright (c) 2018 SIL International (http://www.sil.org)'
+__license__ = 'Released under the MIT License (http://opensource.org/licenses/MIT)'
+__author__ = 'David Raymond'
+
+import silfont.util
+
+# Next 5 lines of code are test-specific
+import silfont.scripts.psfexportanchors as testcommand
+testname = "psfexportanchors"
+cl = "psfexportanchors tests/input/font-psf-test/source/PsfTest-Italic.ufo local/testresults/ufo/psfexportanchors.xml -l local/testresults/ufo/psfexportanchors.log"
+outfont = None
+diffexts = [".xml", ".log"]
+exp_errors = 0 # These may need updating if the test ufo is updated
+exp_warnings = 10 # The test ufo should have some errors/warnings to test the code!
+
+# Code after this can be the same for most tests; if needed to be different for a test remove this comment!
+
+def test_run():
+ result = silfont.util.test_run("UFO", cl, testcommand, outfont, exp_errors, exp_warnings)
+ assert result
+
+def test_diffs(): # Generic function for all UFO tests
+ result = silfont.util.test_diffs("ufo", testname, diffexts)
+ assert result
+
+if __name__ == "__main__":
+ test_run()
+ test_diffs()
+
+
+
+
+
diff --git a/tests/ufo/test_36_psfexportunicodes.py b/tests/ufo/test_36_psfexportunicodes.py
new file mode 100644
index 0000000..6d5cad9
--- /dev/null
+++ b/tests/ufo/test_36_psfexportunicodes.py
@@ -0,0 +1,36 @@
+#!/usr/bin/env python
+'Test for psfexportunicodes'
+__url__ = 'http://github.com/silnrsi/pysilfont'
+__copyright__ = 'Copyright (c) 2018 SIL International (http://www.sil.org)'
+__license__ = 'Released under the MIT License (http://opensource.org/licenses/MIT)'
+__author__ = 'David Raymond'
+
+import silfont.util
+
+# Next 5 lines of code are test-specific
+import silfont.scripts.psfexportunicodes as testcommand
+testname = "psfexportunicodes"
+cl = "psfexportunicodes tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo -o local/testresults/ufo/psfexportunicodes.csv -l local/testresults/ufo/psfexportunicodes.log"
+outfont = None
+diffexts = [".csv", ".log"]
+exp_errors = 0 # These may need updating if the test ufo is updated
+exp_warnings = 7 # The test ufo should have some errors/warnings to test the code!
+
+# Code after this can be the same for most tests; if needed to be different for a test remove this comment!
+
+def test_run():
+ result = silfont.util.test_run("UFO", cl, testcommand, outfont, exp_errors, exp_warnings)
+ assert result
+
+def test_diffs(): # Generic function for all UFO tests
+ result = silfont.util.test_diffs("ufo", testname, diffexts)
+ assert result
+
+if __name__ == "__main__":
+ test_run()
+ test_diffs()
+
+
+
+
+
diff --git a/tests/ufo/test_38_psfgenftml.py b/tests/ufo/test_38_psfgenftml.py
new file mode 100644
index 0000000..6c2483f
--- /dev/null
+++ b/tests/ufo/test_38_psfgenftml.py
@@ -0,0 +1,75 @@
+#!/usr/bin/env python
+''' Test of script named in testname below
+'''
+__url__ = 'http://github.com/silnrsi/pysilfont'
+__copyright__ = 'Copyright (c) 2018 SIL International (http://www.sil.org)'
+__license__ = 'Released under the MIT License (http://opensource.org/licenses/MIT)'
+__author__ = 'Bob Hallissy'
+
+import silfont.util
+import silfont.ftml_builder as FB
+
+# There is no one psfgenftml script -- each project will have its own. So here is what we'll use for testing:
+
+class testcommand(object):
+ argspec = [
+ ('ifont',{'help': 'Input UFO'}, {'type': 'infont'}),
+ ('output',{'help': 'Output file ftml in XML format', 'nargs': '?'}, {'type': 'outfile', 'def': '_out.ftml'}),
+ ('-i','--input',{'help': 'Glyph info csv file'}, {'type': 'incsv', 'def': 'glyph_data.csv'}),
+ ('-l','--log',{'help': 'Set log file name'}, {'type': 'outfile', 'def': '_ftml.log'}),
+ ]
+
+ @staticmethod
+ def doit(args):
+ logger = args.logger
+
+ # Read input csv
+ builder = FB.FTMLBuilder(logger, incsv = args.input, font = args.ifont)
+
+ # Initialize FTML document:
+ test = "ftml_builder test"
+ ftml = FB.FTML(test, logger)
+
+ # all chars that should be in the font:
+ ftml.startTestGroup('Encoded characters')
+ for uid in sorted(builder.uids()):
+ if uid < 32: continue
+ c = builder.char(uid)
+ # iterate over all permutations of feature settings that might affect this character:
+ for featlist in builder.permuteFeatures(uids = (uid,)):
+ ftml.setFeatures(featlist)
+ builder.render((uid,), ftml)
+ # Test one character with RTL enabled:
+ if uid == 67:
+ builder.render((uid,), ftml, rtl = True)
+ # Don't close test -- collect consecutive encoded chars in a single row
+ ftml.clearFeatures()
+ for langID in sorted(c.langs):
+ ftml.setLang(langID)
+ builder.render((uid,), ftml)
+ ftml.clearLang()
+
+ # Write the output ftml file
+ ftml.writeFile(args.output)
+
+testname = "psfgenftml"
+cl = testname + " -i tests/input/psfgenftml.csv -l local/testresults/ufo/psfgenftml.log " \
+ "tests/input/font-psf-test/source/PsfTest-Italic.ufo local/testresults/ufo/psfgenftml.ftml"
+outfont = None
+diffexts = [".ftml", ".log"]
+exp_errors = 0 # These may need updating if the test ufo is updated
+exp_warnings = 11 # The test ufo should have some errors/warnings to test the code!
+
+# Code after this can be the same for most tests; if needed to be different for a test remove this comment!
+
+def test_run():
+ result = silfont.util.test_run("UFO", cl, testcommand, outfont, exp_errors, exp_warnings)
+ assert result
+
+def test_diffs(): # Generic function for all UFO tests
+ result = silfont.util.test_diffs("ufo", testname, diffexts)
+ assert result
+
+if __name__ == "__main__":
+ test_run()
+ test_diffs()
diff --git a/tests/ufo/test_40_psfglyphs2ufo.py b/tests/ufo/test_40_psfglyphs2ufo.py
new file mode 100644
index 0000000..a5a74ff
--- /dev/null
+++ b/tests/ufo/test_40_psfglyphs2ufo.py
@@ -0,0 +1,64 @@
+#!/usr/bin/env python
+''' Test of script named in testname below
+'''
+__url__ = 'http://github.com/silnrsi/pysilfont'
+__copyright__ = 'Copyright (c) 2018 SIL International (http://www.sil.org)'
+__license__ = 'Released under the MIT License (http://opensource.org/licenses/MIT)'
+__author__ = 'David Raymond'
+
+import silfont.util
+import sys
+from silfont.core import execute
+import silfont.scripts.psfglyphs2ufo as psfglyphs2ufo
+import silfont.scripts.psfnormalize as psfnormalize
+
+def test_run():
+ cl = "psfglyphs2ufo --nofea tests/input/font-psf-test/source/PsfTestRoman.glyphs " \
+ "local/testresults/ufo/psfglyphs2ufo -l local/testresults/ufo/psfglyphs2ufo.log"
+ sys.argv = cl.split(" ")
+ (args, font) = execute("UFO", psfglyphs2ufo.doit, psfglyphs2ufo.argspec, chain="first")
+ args.logger.logfile.close()
+ exp_counts = (1, 0)
+ actual_counts = (args.logger.errorcount, args.logger.warningcount)
+ # Now normalize the output ufos
+ for weight in ("Regular", "Bold"):
+ fontname = "local/testresults/ufo/psfglyphs2ufo/PsfTest-" + weight + ".ufo"
+ cl = "psfnormalize " + fontname
+ sys.argv = cl.split(" ")
+ (args, font) = execute("UFO", psfnormalize.doit, psfnormalize.argspec, chain="first")
+ font.write(fontname)
+
+ if exp_counts == actual_counts:
+ assert True
+ else:
+ print("Mis-match of logger errors/warnings: " + str(exp_counts) + " vs " + str(actual_counts))
+ assert False
+
+def test_diffs(): # Do a diff on all output files
+ result = True
+ refdir = "tests/reference/ufo/"
+ resdir = "local/testresults/ufo/"
+
+ ufodiff = False
+
+ diff = silfont.util.ufo_diff(resdir + "psfglyphs2ufo/PsfTest-Regular.ufo", refdir + "psfglyphs2ufo/PsfTest-Regular.ufo")
+ if diff.returncode:
+ ufodiff = True
+ diff.print_text()
+ result = False
+
+ diff = silfont.util.ufo_diff(resdir + "psfglyphs2ufo/PsfTest-Bold.ufo", refdir + "psfglyphs2ufo/PsfTest-Bold.ufo")
+ if diff.returncode:
+ diff.print_text()
+ result = False
+
+ diff = silfont.util.text_diff(resdir + "psfglyphs2ufo.log", refdir + "psfglyphs2ufo.log", ignore_chars=20)
+ if diff.returncode:
+ diff.print_text()
+ result = False
+
+ assert result
+
+if __name__ == "__main__":
+ test_run()
+ test_diffs()
diff --git a/tests/ufo/test_42_psfmakefea.py b/tests/ufo/test_42_psfmakefea.py
new file mode 100644
index 0000000..4f4e069
--- /dev/null
+++ b/tests/ufo/test_42_psfmakefea.py
@@ -0,0 +1,37 @@
+#!/usr/bin/env python
+''' Test of script named in testname below
+'''
+__url__ = 'http://github.com/silnrsi/pysilfont'
+__copyright__ = 'Copyright (c) 2019 SIL International (http://www.sil.org)'
+__license__ = 'Released under the MIT License (http://opensource.org/licenses/MIT)'
+__author__ = 'David Raymond'
+
+import silfont.util
+
+# Next 7 lines of code may be test-specific
+import silfont.scripts.psfmakefea as testcommand
+testname = "psfmakefea"
+cl = "psfmakefea -i tests/input/psfmakefea.feax -o local/testresults/ufo/psfmakefea.fea -l local/testresults/ufo/psfmakefea.log tests/input/font-psf-test/source/PsfTest-Regular.ufo"
+outfont = None # Set to None for commands which don't output a font
+diffexts = [".fea", ".log"] # List of extensions of all output files
+exp_errors = 0 # These may need updating if the test ufo is updated
+exp_warnings = 0 # The test ufo should have some errors/warnings to test the code!
+
+# Code after this can be the same for most/all tests; if needed to be different for a test remove this comment!
+
+def test_run():
+ result = silfont.util.test_run("UFO", cl, testcommand, outfont, exp_errors, exp_warnings)
+ assert result
+
+def test_diffs(): # Do a diff on all output files
+ result = silfont.util.test_diffs("ufo", testname, diffexts)
+ assert result
+
+if __name__ == "__main__":
+ test_run()
+ test_diffs()
+
+
+
+
+
diff --git a/tests/ufo/test_44_psfmakewoffmetatdata.py b/tests/ufo/test_44_psfmakewoffmetatdata.py
new file mode 100644
index 0000000..ff8325d
--- /dev/null
+++ b/tests/ufo/test_44_psfmakewoffmetatdata.py
@@ -0,0 +1,37 @@
+#!/usr/bin/env python
+'Test for psfmakewoffmetadata'
+__url__ = 'http://github.com/silnrsi/pysilfont'
+__copyright__ = 'Copyright (c) 2018 SIL International (http://www.sil.org)'
+__license__ = 'Released under the MIT License (http://opensource.org/licenses/MIT)'
+__author__ = 'David Raymond'
+
+import silfont.util
+
+# Next 5 lines of code are test-specific
+import silfont.scripts.psfmakewoffmetadata as testcommand
+testname = "psfmakewoffmetadata"
+cl = "psfmakewoffmetadata tests/input/font-psf-test/source/PsfTest-Regular.ufo -n Test -i SIL -f tests/input/psfmakewoffmetadata.txt" \
+ + " -o local/testresults/ufo/psfmakewoffmetadata.xml -l local/testresults/ufo/psfmakewoffmetadata.log"
+outfont = None
+diffexts = [".xml", ".log"]
+exp_errors = 0 # These may need updating if the test ufo is updated
+exp_warnings = 6 # The test ufo should have some errors/warnings to test the code!
+
+# Code after this can be the same for most tests; if needed to be different for a test remove this comment!
+
+def test_run():
+ result = silfont.util.test_run("UFO", cl, testcommand, outfont, exp_errors, exp_warnings)
+ assert result
+
+def test_diffs(): # Generic function for all UFO tests
+ result = silfont.util.test_diffs("ufo", testname, diffexts)
+ assert result
+
+if __name__ == "__main__":
+ test_run()
+ test_diffs()
+
+
+
+
+
diff --git a/tests/ufo/test_46_psfrenameglyphs.py b/tests/ufo/test_46_psfrenameglyphs.py
new file mode 100644
index 0000000..d040c25
--- /dev/null
+++ b/tests/ufo/test_46_psfrenameglyphs.py
@@ -0,0 +1,37 @@
+#!/usr/bin/env python
+''' Test of script named in testname below
+'''
+__url__ = 'http://github.com/silnrsi/pysilfont'
+__copyright__ = 'Copyright (c) 2018 SIL International (http://www.sil.org)'
+__license__ = 'Released under the MIT License (http://opensource.org/licenses/MIT)'
+__author__ = 'David Raymond'
+
+import silfont.util
+
+# Next 7 lines of code may be test-specific
+import silfont.scripts.psfrenameglyphs as testcommand
+testname = "psfrenameglyphs"
+cl = "psfrenameglyphs tests/input/font-psf-test/source/PsfTest-Bold.ufo -i tests/input/psfrenameglyphs.csv -l local/testresults/ufo/psfrenameglyphs.log -p loglevel=i -p checkfix=fix"
+outfont = "local/testresults/ufo/psfrenameglyphs.ufo" # Set to None for commands which don't output a font
+diffexts = [".ufo", ".log"] # List of extensions of all output files
+exp_errors = 0 # These may need updating if the test ufo is updated
+exp_warnings = 5 # The test ufo should have some errors/warnings to test the code!
+
+# Code after this can be the same for most/all tests; if needed to be different for a test remove this comment!
+
+def test_run():
+ result = silfont.util.test_run("UFO", cl, testcommand, outfont, exp_errors, exp_warnings)
+ assert result
+
+def test_diffs(): # Do a diff on all output files
+ result = silfont.util.test_diffs("ufo", testname, diffexts)
+ assert result
+
+if __name__ == "__main__":
+ test_run()
+ test_diffs()
+
+
+
+
+
diff --git a/tests/ufo/test_50_psfsetassocfeat.py b/tests/ufo/test_50_psfsetassocfeat.py
new file mode 100644
index 0000000..060a25d
--- /dev/null
+++ b/tests/ufo/test_50_psfsetassocfeat.py
@@ -0,0 +1,37 @@
+#!/usr/bin/env python
+''' Test of script named in testname below
+'''
+__url__ = 'http://github.com/silnrsi/pysilfont'
+__copyright__ = 'Copyright (c) 2018 SIL International (http://www.sil.org)'
+__license__ = 'Released under the MIT License (http://opensource.org/licenses/MIT)'
+__author__ = 'David Raymond'
+
+import silfont.util
+
+# Next 7 lines of code may be test-specific
+import silfont.scripts.psfsetassocfeat as testcommand
+testname = "psfsetassocfeat"
+cl = "psfsetassocfeat tests/input/font-psf-test/source/PsfTest-Italic.ufo -i tests/input/psfsetassocfeat.csv -l local/testresults/ufo/psfsetassocfeat.log -p loglevel=i"
+outfont = "local/testresults/ufo/psfsetassocfeat.ufo" # Set to None for commands which don't output a font
+diffexts = [".ufo", ".log"] # List of extensions of all output files
+exp_errors = 0 # These may need updating if the test ufo is updated
+exp_warnings = 9 # The test ufo should have some errors/warnings to test the code!
+
+# Code after this can be the same for most/all tests; if needed to be different for a test remove this comment!
+
+def test_run():
+ result = silfont.util.test_run("UFO", cl, testcommand, outfont, exp_errors, exp_warnings)
+ assert result
+
+def test_diffs(): # Do a diff on all output files
+ result = silfont.util.test_diffs("ufo", testname, diffexts)
+ assert result
+
+if __name__ == "__main__":
+ test_run()
+ test_diffs()
+
+
+
+
+
diff --git a/tests/ufo/test_52_psfsetassocuids.py b/tests/ufo/test_52_psfsetassocuids.py
new file mode 100644
index 0000000..adb35c7
--- /dev/null
+++ b/tests/ufo/test_52_psfsetassocuids.py
@@ -0,0 +1,37 @@
+#!/usr/bin/env python
+''' Test of script named in testname below
+'''
+__url__ = 'http://github.com/silnrsi/pysilfont'
+__copyright__ = 'Copyright (c) 2018 SIL International (http://www.sil.org)'
+__license__ = 'Released under the MIT License (http://opensource.org/licenses/MIT)'
+__author__ = 'David Raymond'
+
+import silfont.util
+
+# Next 7 lines of code may be test-specific
+import silfont.scripts.psfsetassocuids as testcommand
+testname = "psfsetassocuids"
+cl = "psfsetassocuids tests/input/font-psf-test/source/PsfTest-Bold.ufo -i tests/input/psfsetassocuids.csv -l local/testresults/ufo/psfsetassocuids.log -p loglevel=i"
+outfont = "local/testresults/ufo/psfsetassocuids.ufo" # Set to None for commands which don't output a font
+diffexts = [".ufo", ".log"] # List of extensions of all output files
+exp_errors = 1 # These may need updating if the test ufo is updated
+exp_warnings = 5 # The test ufo should have some errors/warnings to test the code!
+
+# Code after this can be the same for most/all tests; if needed to be different for a test remove this comment!
+
+def test_run():
+ result = silfont.util.test_run("UFO", cl, testcommand, outfont, exp_errors, exp_warnings)
+ assert result
+
+def test_diffs(): # Do a diff on all output files
+ result = silfont.util.test_diffs("ufo", testname, diffexts)
+ assert result
+
+if __name__ == "__main__":
+ test_run()
+ test_diffs()
+
+
+
+
+
diff --git a/tests/ufo/test_54_psfsetglyphorder.py b/tests/ufo/test_54_psfsetglyphorder.py
new file mode 100644
index 0000000..8d4181c
--- /dev/null
+++ b/tests/ufo/test_54_psfsetglyphorder.py
@@ -0,0 +1,37 @@
+#!/usr/bin/env python
+''' Test of script named in testname below
+'''
+__url__ = 'http://github.com/silnrsi/pysilfont'
+__copyright__ = 'Copyright (c) 2018 SIL International (http://www.sil.org)'
+__license__ = 'Released under the MIT License (http://opensource.org/licenses/MIT)'
+__author__ = 'David Raymond'
+
+import silfont.util
+
+# Next 7 lines of code may be test-specific
+import silfont.scripts.psfsetglyphorder as testcommand
+testname = "psfsetglyphorder"
+cl = "psfsetglyphorder tests/input/font-psf-test/source/PsfTest-Italic.ufo -i tests/input/glyph_data.csv -l local/testresults/ufo/psfsetglyphorder.log -p loglevel=i"
+outfont = "local/testresults/ufo/psfsetglyphorder.ufo" # Set to None for commands which don't output a font
+diffexts = [".ufo", ".log"] # List of extensions of all output files
+exp_errors = 0 # These may need updating if the test ufo is updated
+exp_warnings = 9 # The test ufo should have some errors/warnings to test the code!
+
+# Code after this can be the same for most/all tests; if needed to be different for a test remove this comment!
+
+def test_run():
+ result = silfont.util.test_run("UFO", cl, testcommand, outfont, exp_errors, exp_warnings)
+ assert result
+
+def test_diffs(): # Do a diff on all output files
+ result = silfont.util.test_diffs("ufo", testname, diffexts)
+ assert result
+
+if __name__ == "__main__":
+ test_run()
+ test_diffs()
+
+
+
+
+
diff --git a/tests/ufo/test_56_psfsetkeys.py b/tests/ufo/test_56_psfsetkeys.py
new file mode 100644
index 0000000..ac5505c
--- /dev/null
+++ b/tests/ufo/test_56_psfsetkeys.py
@@ -0,0 +1,37 @@
+#!/usr/bin/env python
+''' Test of script named in testname below
+'''
+__url__ = 'http://github.com/silnrsi/pysilfont'
+__copyright__ = 'Copyright (c) 2018 SIL International (http://www.sil.org)'
+__license__ = 'Released under the MIT License (http://opensource.org/licenses/MIT)'
+__author__ = 'David Raymond'
+
+import silfont.util
+
+# Next 7 lines of code may be test-specific
+import silfont.scripts.psfsetkeys as testcommand
+testname = "psfsetkeys"
+cl = "psfsetkeys tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo -k org.sil.newkey -v newvalue -l local/testresults/ufo/psfsetkeys.log -p loglevel=i -p checkfix=fix"
+outfont = "local/testresults/ufo/psfsetkeys.ufo" # Set to None for commands which don't output a font
+diffexts = [".ufo", ".log"] # List of extensions of all output files
+exp_errors = 0 # These may need updating if the test ufo is updated
+exp_warnings = 7 # The test ufo should have some errors/warnings to test the code!
+
+# Code after this can be the same for most/all tests; if needed to be different for a test remove this comment!
+
+def test_run():
+ result = silfont.util.test_run("UFO", cl, testcommand, outfont, exp_errors, exp_warnings)
+ assert result
+
+def test_diffs(): # Do a diff on all output files
+ result = silfont.util.test_diffs("ufo", testname, diffexts)
+ assert result
+
+if __name__ == "__main__":
+ test_run()
+ test_diffs()
+
+
+
+
+
diff --git a/tests/ufo/test_60_psfsetpsnames.py b/tests/ufo/test_60_psfsetpsnames.py
new file mode 100644
index 0000000..924a815
--- /dev/null
+++ b/tests/ufo/test_60_psfsetpsnames.py
@@ -0,0 +1,37 @@
+#!/usr/bin/env python
+''' Test of script named in testname below
+'''
+__url__ = 'http://github.com/silnrsi/pysilfont'
+__copyright__ = 'Copyright (c) 2018 SIL International (http://www.sil.org)'
+__license__ = 'Released under the MIT License (http://opensource.org/licenses/MIT)'
+__author__ = 'David Raymond'
+
+import silfont.util
+
+# Next 7 lines of code may be test-specific
+import silfont.scripts.psfsetpsnames as testcommand
+testname = "psfsetpsnames"
+cl = "psfsetpsnames tests/input/font-psf-test/source/PsfTest-BoldItalic.ufo -i tests/input/glyph_data.csv -l local/testresults/ufo/psfsetpsnames.log -p loglevel=i"
+outfont = "local/testresults/ufo/psfsetpsnames.ufo" # Set to None for commands which don't output a font
+diffexts = [".ufo", ".log"] # List of extensions of all output files
+exp_errors = 0 # These may need updating if the test ufo is updated
+exp_warnings = 7 # The test ufo should have some errors/warnings to test the code!
+
+# Code after this can be the same for most/all tests; if needed to be different for a test remove this comment!
+
+def test_run():
+ result = silfont.util.test_run("UFO", cl, testcommand, outfont, exp_errors, exp_warnings)
+ assert result
+
+def test_diffs(): # Do a diff on all output files
+ result = silfont.util.test_diffs("ufo", testname, diffexts)
+ assert result
+
+if __name__ == "__main__":
+ test_run()
+ test_diffs()
+
+
+
+
+
diff --git a/tests/ufo/test_62_psfsetunicodes.py b/tests/ufo/test_62_psfsetunicodes.py
new file mode 100644
index 0000000..c12f3d4
--- /dev/null
+++ b/tests/ufo/test_62_psfsetunicodes.py
@@ -0,0 +1,37 @@
+#!/usr/bin/env python
+''' Test of script named in testname below
+'''
+__url__ = 'http://github.com/silnrsi/pysilfont'
+__copyright__ = 'Copyright (c) 2018 SIL International (http://www.sil.org)'
+__license__ = 'Released under the MIT License (http://opensource.org/licenses/MIT)'
+__author__ = 'David Raymond'
+
+import silfont.util
+
+# Next 7 lines of code may be test-specific
+import silfont.scripts.psfsetunicodes as testcommand
+testname = "psfsetunicodes"
+cl = "psfsetunicodes tests/input/font-psf-test/source/PsfTest-Italic.ufo -i tests/input/psfsetunicodes.csv -l local/testresults/ufo/psfsetunicodes.log -p loglevel=v -p checkfix=fix"
+outfont = "local/testresults/ufo/psfsetunicodes.ufo" # Set to None for commands which don't output a font
+diffexts = [".ufo", ".log"] # List of extensions of all output files
+exp_errors = 0 # These may need updating if the test ufo is updated
+exp_warnings = 9 # The test ufo should have some errors/warnings to test the code!
+
+# Code after this can be the same for most/all tests; if needed to be different for a test remove this comment!
+
+def test_run():
+ result = silfont.util.test_run("UFO", cl, testcommand, outfont, exp_errors, exp_warnings)
+ assert result
+
+def test_diffs(): # Do a diff on all output files
+ result = silfont.util.test_diffs("ufo", testname, diffexts)
+ assert result
+
+if __name__ == "__main__":
+ test_run()
+ test_diffs()
+
+
+
+
+
diff --git a/tests/ufo/test_80_psfsyncmasters.py b/tests/ufo/test_80_psfsyncmasters.py
new file mode 100644
index 0000000..128d7e6
--- /dev/null
+++ b/tests/ufo/test_80_psfsyncmasters.py
@@ -0,0 +1,73 @@
+#!/usr/bin/env python
+''' Test of script named in testname below
+'''
+__url__ = 'http://github.com/silnrsi/pysilfont'
+__copyright__ = 'Copyright (c) 2018 SIL International (http://www.sil.org)'
+__license__ = 'Released under the MIT License (http://opensource.org/licenses/MIT)'
+__author__ = 'David Raymond'
+
+import silfont.util
+import sys, os, glob, subprocess
+from silfont.core import execute
+import silfont.scripts.psfsyncmasters as psfsyncmasters
+
+def test_run():
+ cl = "psfsyncmasters -n tests/input/font-psf-test/source/PsfTestRoman.designspace " \
+ "tests/input/font-psf-test/source/PsfTestItalic.designspace -l local/testresults/ufo/psfsyncmasters.log"
+ sys.argv = cl.split(" ")
+ (args, font) = execute("UFO", psfsyncmasters.doit, psfsyncmasters.argspec, chain="first")
+ args.logger.logfile.close()
+ exp_counts = (0, 6)
+ actual_counts = (args.logger.errorcount, args.logger.warningcount)
+ if exp_counts == actual_counts:
+ assert True
+ else:
+ print("Mis-match of logger errors/warnings: " + str(exp_counts) + " vs " + str(actual_counts))
+ assert False
+
+def test_diffs(): # Do a diff on all output files
+ result = True
+ sourcedir = "tests/input/font-psf-test/source/"
+ refdir = "tests/reference/ufo/"
+ resdir = "local/testresults/ufo/"
+ # -n in commands will have created _new versions of changed files in the source directory,
+ # so move them to results prior to running diff commands
+ for f in glob.glob(resdir + "psfsyncmasters*.plist"): os.remove(f) # Delete any old results
+ filelist = []
+ for style in ("Regular", "Italic", "Bold", "BoldItalic"):
+ ufodir = sourcedir + "PsfTest-" + style + ".ufo/"
+ for f in glob.glob(ufodir + "*_new.plist"):
+ (dir,filen) = os.path.split(f)
+ filen = "fontinfo.plist" if filen[0] == "f" else "lib.plist"
+ filen = style + "-" + filen
+ filelist.append(filen)
+ os.rename(f, resdir + "psfsyncmasters-" + filen )
+ filelist.sort()
+ expectedlist = ['Bold-fontinfo.plist', 'Bold-lib.plist', 'BoldItalic-fontinfo.plist', 'Italic-fontinfo.plist']
+ if filelist != expectedlist:
+ print("None-standard output files: \n" + str(filelist))
+ print("Expected: \n" + str(expectedlist))
+ result = False
+ for f in filelist:
+ # Need to diff the plists with subprocess("diff") to be able handle openTypeHeadCreated issue
+ filen = "psfsyncmasters-" + f
+ diff = subprocess.Popen(["diff", resdir + filen, refdir + filen, "-c1"], stdout=subprocess.PIPE, stderr=subprocess.PIPE)
+ text = diff.communicate()
+ if diff.returncode == 1:
+ difftext = text[0].decode("utf-8").split("\n")
+ # Need to rule out only change being openTypeHeadCreated (which should be the case for fontinfo)
+ if not(difftext[4].strip() == "<key>openTypeHeadCreated</key>" and len(difftext) == 12):
+ print(filen + " different from reference")
+ for line in difftext: print(line)
+ result = False
+
+ diff = silfont.util.text_diff(resdir + "psfsyncmasters.log", refdir + "psfsyncmasters.log", ignore_chars=20)
+ if diff.returncode:
+ diff.print_text()
+ result = False
+
+ assert result
+
+if __name__ == "__main__":
+ test_run()
+ test_diffs() \ No newline at end of file
diff --git a/tests/ufo/test_88_psfufo2ttf.py b/tests/ufo/test_88_psfufo2ttf.py
new file mode 100644
index 0000000..e90373d
--- /dev/null
+++ b/tests/ufo/test_88_psfufo2ttf.py
@@ -0,0 +1,37 @@
+#!/usr/bin/env python
+'Test for psfufo2ttf'
+__url__ = 'http://github.com/silnrsi/pysilfont'
+__copyright__ = 'Copyright (c) 2018 SIL International (http://www.sil.org)'
+__license__ = 'Released under the MIT License (http://opensource.org/licenses/MIT)'
+__author__ = 'David Raymond'
+
+import silfont.util
+
+# Next 5 lines of code are test-specific
+import silfont.scripts.psfufo2ttf as testcommand
+testname = "psfufo2ttf"
+cl = "psfufo2ttf tests/input/font-psf-test/source/PsfTest-Regular.ufo " \
+ "local/testresults/ufo/psfufo2ttf.ttf -l local/testresults/ufo/psfufo2ttf.log"
+outfont = None
+diffexts = [".ttf", ".log"]
+exp_errors = 0 # These may need updating if the test ufo is updated
+exp_warnings = 0 # The test ufo should have some errors/warnings to test the code!
+
+# Code after this can be the same for most tests; if needed to be different for a test remove this comment!
+
+def test_run():
+ result = silfont.util.test_run("UFO", cl, testcommand, outfont, exp_errors, exp_warnings)
+ assert result
+
+def test_diffs(): # Generic function for all UFO tests
+ result = silfont.util.test_diffs("ufo", testname, diffexts)
+ assert result
+
+if __name__ == "__main__":
+ test_run()
+ test_diffs()
+
+
+
+
+
diff --git a/tests/ufo/test_99_psfnormalize.py b/tests/ufo/test_99_psfnormalize.py
new file mode 100644
index 0000000..0449d03
--- /dev/null
+++ b/tests/ufo/test_99_psfnormalize.py
@@ -0,0 +1,37 @@
+#!/usr/bin/env python
+''' Test of script named in testname below
+'''
+__url__ = 'http://github.com/silnrsi/pysilfont'
+__copyright__ = 'Copyright (c) 2018 SIL International (http://www.sil.org)'
+__license__ = 'Released under the MIT License (http://opensource.org/licenses/MIT)'
+__author__ = 'David Raymond'
+
+import silfont.util
+
+# Next 7 lines of code may be test-specific
+import silfont.scripts.psfnormalize as testcommand
+testname = "psfnormalize"
+cl = "psfnormalize tests/input/font-psf-test/source/PsfTest-Italic.ufo -l local/testresults/ufo/psfnormalize.log -p checkfix=fix"
+outfont = "local/testresults/ufo/psfnormalize.ufo" # Set to None for commands which don't output a font
+diffexts = [".ufo", ".log"] # List of extensions of all output files
+exp_errors = 0 # These may need updating if the test ufo is updated
+exp_warnings = 9 # The test ufo should have some errors/warnings to test the code!
+
+# Code after this can be the same for most/all tests; if needed to be different for a test remove this comment!
+
+def test_run():
+ result = silfont.util.test_run("UFO", cl, testcommand, outfont, exp_errors, exp_warnings)
+ assert result
+
+def test_diffs(): # Do a diff on all output files
+ result = silfont.util.test_diffs("ufo", testname, diffexts)
+ assert result
+
+if __name__ == "__main__":
+ test_run()
+ test_diffs()
+
+
+
+
+