fontconfig

package
v0.0.3 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 21, 2023 License: LGPL-2.1, MIT Imports: 30 Imported by: 1

README

fontconfig for Golang

This package is a port from the C fontconfig library.

Its main purpose is to fetch the metadata of the fonts installed in a system, and use that database to select the best font to use given some user-specified query (name, style, weight, etc...).

Differences from the original C library

While the main fonctionnality of the original library are preserved, some simplifications have been made (mainly to avoid complex logic of file system handling).

Caching

The package drops support for advanced caching: it is deferred to the users. They can use the provided Serialize and LoadFontset functions, but its up to them to specified what to cache, when and where.

Configuration build

The main way to specify complex configurations remains the XML fontconfig format. However, it is not possible to use <include> directives. Several config files are simply added one by one.

Font directories

The XML format does not support specifying font directories. Instead, scans are explicitely triggered by the user, which provide a file (ScanFontFile), an in-memory content (ScanFontRessource) or a list of directories (ScanFontDirectories).

Dependencies

This is a pure Go implementation, which rely on fonts as a substitute of FreeType to handle the scanning of a font file.

Documentation

Overview

Package fontconfig provides a way to list the fonts of a system and to query the best match with user defined criteria.

See the `Config` type for an entry point.

This package is a port of the C library.

Index

Examples

Constants

View Source
const (
	SLANT_ROMAN   = 0
	SLANT_ITALIC  = 100
	SLANT_OBLIQUE = 110

	WIDTH_ULTRACONDENSED = 50
	WIDTH_EXTRACONDENSED = 63
	WIDTH_CONDENSED      = 75
	WIDTH_SEMICONDENSED  = 87
	WIDTH_NORMAL         = 100
	WIDTH_SEMIEXPANDED   = 113
	WIDTH_EXPANDED       = 125
	WIDTH_EXTRAEXPANDED  = 150
	WIDTH_ULTRAEXPANDED  = 200

	PROPORTIONAL = 0
	DUAL         = 90
	MONO         = 100
	CHARCELL     = 110

	/* sub-pixel order */
	RGBA_UNKNOWN = 0
	RGBA_RGB     = 1
	RGBA_BGR     = 2
	RGBA_VRGB    = 3
	RGBA_VBGR    = 4
	RGBA_NONE    = 5

	/* hinting style */
	HINT_NONE   = 0
	HINT_SLIGHT = 1
	HINT_MEDIUM = 2
	HINT_FULL   = 3

	/* LCD filter */
	LCD_NONE    = 0
	LCD_DEFAULT = 1
	LCD_LIGHT   = 2
	LCD_LEGACY  = 3
)
View Source
const (
	WEIGHT_THIN       = 0
	WEIGHT_EXTRALIGHT = 40
	WEIGHT_ULTRALIGHT = WEIGHT_EXTRALIGHT
	WEIGHT_LIGHT      = 50
	WEIGHT_DEMILIGHT  = 55
	WEIGHT_SEMILIGHT  = WEIGHT_DEMILIGHT
	WEIGHT_BOOK       = 75
	WEIGHT_REGULAR    = 80
	WEIGHT_NORMAL     = WEIGHT_REGULAR
	WEIGHT_MEDIUM     = 100
	WEIGHT_DEMIBOLD   = 180
	WEIGHT_SEMIBOLD   = WEIGHT_DEMIBOLD
	WEIGHT_BOLD       = 200
	WEIGHT_EXTRABOLD  = 205
	WEIGHT_ULTRABOLD  = WEIGHT_EXTRABOLD
	WEIGHT_BLACK      = 210
	WEIGHT_HEAVY      = WEIGHT_BLACK
	WEIGHT_EXTRABLACK = 215
	WEIGHT_ULTRABLACK = WEIGHT_EXTRABLACK
)
View Source
const (

	// Rules in the config to apply to the query pattern (FcMatchPattern)
	MatchQuery matchKind
	// Rules in the config to apply to the fonts
	// returned as the result of a query (FcMatchFont)
	MatchResult
	// Rules in the config to apply to the fonts obtained
	// during the scan (FcMatchScan)
	MatchScan
)

Variables

View Source
var Identity = Matrix{1, 0, 0, 1}
View Source
var Standard = &Config{
	subst: []ruleSet{{name: "confs/09-autohint-if-no-hinting.conf", description: "Enable autohinter if font doesn't have any hinting", domain: "", subst: [matchKindEnd][]directive{nil, {{
		tests: []ruleTest{{
			expr:   &expression{u: Bool(0), op: 5},
			kind:   1,
			qual:   0,
			object: 51,
			op:     22,
		}},
		edits: []ruleEdit{{
			expr:    &expression{u: Bool(1), op: 5},
			binding: 0,
			object:  19,
			op:      15,
		}},
	}}, nil}},
		{name: "confs/10-antialias.conf", description: "", domain: "", subst: [matchKindEnd][]directive{{{
			tests: nil,
			edits: []ruleEdit{{
				expr:    &expression{u: Bool(1), op: 5},
				binding: 0,
				object:  15,
				op:      15,
			}},
		}}, nil, nil}},
		{name: "confs/10-autohint.conf", description: "Enable autohinter", domain: "", subst: [matchKindEnd][]directive{{{
			tests: nil,
			edits: []ruleEdit{{
				expr:    &expression{u: Bool(1), op: 5},
				binding: 0,
				object:  19,
				op:      15,
			}},
		}}, nil, nil}},
		{name: "confs/10-hinting-full.conf", description: "Set hintfull to hintstyle", domain: "", subst: [matchKindEnd][]directive{{{
			tests: nil,
			edits: []ruleEdit{{
				expr:    &expression{u: String("hintfull"), op: 10},
				binding: 0,
				object:  16,
				op:      15,
			}},
		}}, nil, nil}},
		{name: "confs/10-hinting-medium.conf", description: "Set hintmedium to hintstyle", domain: "", subst: [matchKindEnd][]directive{{{
			tests: nil,
			edits: []ruleEdit{{
				expr:    &expression{u: String("hintmedium"), op: 10},
				binding: 0,
				object:  16,
				op:      15,
			}},
		}}, nil, nil}},
		{name: "confs/10-hinting-none.conf", description: "Set hintnone to hintstyle", domain: "", subst: [matchKindEnd][]directive{{{
			tests: nil,
			edits: []ruleEdit{{
				expr:    &expression{u: String("hintnone"), op: 10},
				binding: 0,
				object:  16,
				op:      15,
			}},
		}}, nil, nil}},
		{name: "confs/10-hinting-slight.conf", description: "Set hintslight to hintstyle", domain: "", subst: [matchKindEnd][]directive{{{
			tests: nil,
			edits: []ruleEdit{{
				expr:    &expression{u: String("hintslight"), op: 10},
				binding: 0,
				object:  16,
				op:      15,
			}},
		}}, nil, nil}},
		{name: "confs/10-no-sub-pixel.conf", description: "Disable sub-pixel rendering", domain: "", subst: [matchKindEnd][]directive{{{
			tests: nil,
			edits: []ruleEdit{{
				expr:    &expression{u: String("none"), op: 10},
				binding: 0,
				object:  27,
				op:      15,
			}},
		}}, nil, nil}},
		{name: "confs/10-scale-bitmap-fonts.conf", description: "Bitmap scaling", domain: "", subst: [matchKindEnd][]directive{nil, {{
			tests: []ruleTest{{
				expr:   &expression{u: Bool(0), op: 5},
				kind:   1,
				qual:   0,
				object: 24,
				op:     22,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: exprTree{&expression{u: exprName{object: 12, kind: 0}, op: 9}, &expression{u: exprName{object: 12, kind: 1}, op: 9}}, op: 34},
				binding: 0,
				object:  74,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: Bool(0), op: 5},
				kind:   1,
				qual:   0,
				object: 24,
				op:     22,
			},
				{
					expr:   &expression{u: Bool(0), op: 5},
					kind:   1,
					qual:   0,
					object: 25,
					op:     22,
				},
				{
					expr:   &expression{u: Bool(1), op: 5},
					kind:   1,
					qual:   0,
					object: 17,
					op:     22,
				}},
			edits: []ruleEdit{{
				expr:    &expression{u: exprTree{&expression{u: exprTree{&expression{u: exprName{object: 74, kind: -1}, op: 9}, &expression{u: Float(1.2), op: 1}}, op: 27}, &expression{u: exprTree{&expression{u: exprName{object: 74, kind: -1}, op: 9}, &expression{u: Float(0.8), op: 1}}, op: 29}}, op: 21},
				binding: 0,
				object:  75,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: Bool(1), op: 5},
				kind:   1,
				qual:   0,
				object: 75,
				op:     22,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: Float(1), op: 1},
				binding: 0,
				object:  74,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: Bool(0), op: 5},
				kind:   1,
				qual:   0,
				object: 24,
				op:     22,
			},
				{
					expr:   &expression{u: Float(1), op: 1},
					kind:   1,
					qual:   0,
					object: 74,
					op:     23,
				}},
			edits: []ruleEdit{{
				expr:    &expression{u: exprTree{&expression{u: exprName{object: 32, kind: -1}, op: 9}, &expression{u: exprMatrix{xx: &expression{u: exprName{object: 74, kind: -1}, op: 9}, xy: &expression{u: Float(0), op: 1}, yx: &expression{u: Float(0), op: 1}, yy: &expression{u: exprName{object: 74, kind: -1}, op: 9}}, op: 3}}, op: 33},
				binding: 0,
				object:  32,
				op:      11,
			},
				{
					expr:    &expression{u: exprTree{&expression{u: exprName{object: 10, kind: -1}, op: 9}, &expression{u: exprName{object: 74, kind: -1}, op: 9}}, op: 34},
					binding: 0,
					object:  10,
					op:      11,
				}},
		}}, nil}},
		{name: "confs/10-sub-pixel-bgr.conf", description: "Enable sub-pixel rendering with the BGR stripes layout", domain: "", subst: [matchKindEnd][]directive{{{
			tests: nil,
			edits: []ruleEdit{{
				expr:    &expression{u: String("bgr"), op: 10},
				binding: 0,
				object:  27,
				op:      15,
			}},
		}}, nil, nil}},
		{name: "confs/10-sub-pixel-rgb.conf", description: "Enable sub-pixel rendering with the RGB stripes layout", domain: "", subst: [matchKindEnd][]directive{{{
			tests: nil,
			edits: []ruleEdit{{
				expr:    &expression{u: String("rgb"), op: 10},
				binding: 0,
				object:  27,
				op:      15,
			}},
		}}, nil, nil}},
		{name: "confs/10-sub-pixel-vbgr.conf", description: "Enable sub-pixel rendering with the vertical BGR stripes layout", domain: "", subst: [matchKindEnd][]directive{{{
			tests: nil,
			edits: []ruleEdit{{
				expr:    &expression{u: String("vbgr"), op: 10},
				binding: 0,
				object:  27,
				op:      15,
			}},
		}}, nil, nil}},
		{name: "confs/10-sub-pixel-vrgb.conf", description: "Enable sub-pixel rendering with the vertical RGB stripes layout", domain: "", subst: [matchKindEnd][]directive{{{
			tests: nil,
			edits: []ruleEdit{{
				expr:    &expression{u: String("vrgb"), op: 10},
				binding: 0,
				object:  27,
				op:      15,
			}},
		}}, nil, nil}},
		{name: "confs/10-unhinted.conf", description: "Disable hinting", domain: "", subst: [matchKindEnd][]directive{{{
			tests: nil,
			edits: []ruleEdit{{
				expr:    &expression{u: Bool(0), op: 5},
				binding: 0,
				object:  17,
				op:      15,
			}},
		}}, nil, nil}},
		{name: "confs/11-lcdfilter-default.conf", description: "Use lcddefault as default for LCD filter", domain: "", subst: [matchKindEnd][]directive{{{
			tests: nil,
			edits: []ruleEdit{{
				expr:    &expression{u: String("lcddefault"), op: 10},
				binding: 0,
				object:  41,
				op:      15,
			}},
		}}, nil, nil}},
		{name: "confs/11-lcdfilter-legacy.conf", description: "Use lcdlegacy as default for LCD filter", domain: "", subst: [matchKindEnd][]directive{{{
			tests: nil,
			edits: []ruleEdit{{
				expr:    &expression{u: String("lcdlegacy"), op: 10},
				binding: 0,
				object:  41,
				op:      15,
			}},
		}}, nil, nil}},
		{name: "confs/11-lcdfilter-light.conf", description: "Use lcdlight as default for LCD filter", domain: "", subst: [matchKindEnd][]directive{{{
			tests: nil,
			edits: []ruleEdit{{
				expr:    &expression{u: String("lcdlight"), op: 10},
				binding: 0,
				object:  41,
				op:      15,
			}},
		}}, nil, nil}},
		{name: "confs/20-unhint-small-dejavu-lgc-sans-mono.conf", description: "", domain: "", subst: [matchKindEnd][]directive{nil, {{
			tests: []ruleTest{{
				expr:   &expression{u: String("DejaVu LGC Sans Mono"), op: 2},
				kind:   1,
				qual:   0,
				object: 1,
				op:     22,
			},
				{
					expr:   &expression{u: Float(7.5), op: 1},
					kind:   1,
					qual:   0,
					object: 12,
					op:     27,
				}},
			edits: []ruleEdit{{
				expr:    &expression{u: Bool(0), op: 5},
				binding: 0,
				object:  17,
				op:      11,
			}},
		}}, nil}},
		{name: "confs/20-unhint-small-dejavu-lgc-sans.conf", description: "", domain: "", subst: [matchKindEnd][]directive{nil, {{
			tests: []ruleTest{{
				expr:   &expression{u: String("DejaVu LGC Sans"), op: 2},
				kind:   1,
				qual:   0,
				object: 1,
				op:     22,
			},
				{
					expr:   &expression{u: Float(7.5), op: 1},
					kind:   1,
					qual:   0,
					object: 12,
					op:     27,
				}},
			edits: []ruleEdit{{
				expr:    &expression{u: Bool(0), op: 5},
				binding: 0,
				object:  17,
				op:      11,
			}},
		}}, nil}},
		{name: "confs/20-unhint-small-dejavu-lgc-serif.conf", description: "", domain: "", subst: [matchKindEnd][]directive{nil, {{
			tests: []ruleTest{{
				expr:   &expression{u: String("DejaVu LGC Serif"), op: 2},
				kind:   1,
				qual:   0,
				object: 1,
				op:     22,
			},
				{
					expr:   &expression{u: Float(7.5), op: 1},
					kind:   1,
					qual:   0,
					object: 12,
					op:     27,
				}},
			edits: []ruleEdit{{
				expr:    &expression{u: Bool(0), op: 5},
				binding: 0,
				object:  17,
				op:      11,
			}},
		}}, nil}},
		{name: "confs/20-unhint-small-dejavu-sans-mono.conf", description: "", domain: "", subst: [matchKindEnd][]directive{nil, {{
			tests: []ruleTest{{
				expr:   &expression{u: String("DejaVu Sans Mono"), op: 2},
				kind:   1,
				qual:   0,
				object: 1,
				op:     22,
			},
				{
					expr:   &expression{u: Float(7.5), op: 1},
					kind:   1,
					qual:   0,
					object: 12,
					op:     27,
				}},
			edits: []ruleEdit{{
				expr:    &expression{u: Bool(0), op: 5},
				binding: 0,
				object:  17,
				op:      11,
			}},
		}}, nil}},
		{name: "confs/20-unhint-small-dejavu-sans.conf", description: "", domain: "", subst: [matchKindEnd][]directive{nil, {{
			tests: []ruleTest{{
				expr:   &expression{u: String("DejaVu Sans"), op: 2},
				kind:   1,
				qual:   0,
				object: 1,
				op:     22,
			},
				{
					expr:   &expression{u: Float(7.5), op: 1},
					kind:   1,
					qual:   0,
					object: 12,
					op:     27,
				}},
			edits: []ruleEdit{{
				expr:    &expression{u: Bool(0), op: 5},
				binding: 0,
				object:  17,
				op:      11,
			}},
		}}, nil}},
		{name: "confs/20-unhint-small-dejavu-serif.conf", description: "", domain: "", subst: [matchKindEnd][]directive{nil, {{
			tests: []ruleTest{{
				expr:   &expression{u: String("DejaVu Serif"), op: 2},
				kind:   1,
				qual:   0,
				object: 1,
				op:     22,
			},
				{
					expr:   &expression{u: Float(7.5), op: 1},
					kind:   1,
					qual:   0,
					object: 12,
					op:     27,
				}},
			edits: []ruleEdit{{
				expr:    &expression{u: Bool(0), op: 5},
				binding: 0,
				object:  17,
				op:      11,
			}},
		}}, nil}},
		{name: "confs/20-unhint-small-vera.conf", description: "Disable hinting for Bitstream Vera fonts when the size is less than 8ppem", domain: "", subst: [matchKindEnd][]directive{nil, {{
			tests: []ruleTest{{
				expr:   &expression{u: String("Bitstream Vera Sans"), op: 2},
				kind:   1,
				qual:   0,
				object: 1,
				op:     65558,
			},
				{
					expr:   &expression{u: Float(7.5), op: 1},
					kind:   1,
					qual:   0,
					object: 12,
					op:     27,
				}},
			edits: []ruleEdit{{
				expr:    &expression{u: Bool(0), op: 5},
				binding: 0,
				object:  17,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Bitstream Vera Serif"), op: 2},
				kind:   1,
				qual:   0,
				object: 1,
				op:     65558,
			},
				{
					expr:   &expression{u: Float(7.5), op: 1},
					kind:   1,
					qual:   0,
					object: 12,
					op:     27,
				}},
			edits: []ruleEdit{{
				expr:    &expression{u: Bool(0), op: 5},
				binding: 0,
				object:  17,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Bitstream Vera Sans Mono"), op: 2},
				kind:   1,
				qual:   0,
				object: 1,
				op:     65558,
			},
				{
					expr:   &expression{u: Float(7.5), op: 1},
					kind:   1,
					qual:   0,
					object: 12,
					op:     27,
				}},
			edits: []ruleEdit{{
				expr:    &expression{u: Bool(0), op: 5},
				binding: 0,
				object:  17,
				op:      11,
			}},
		}}, nil}},
		{name: "confs/25-unhint-nonlatin.conf", description: "Disable hinting for CJK fonts", domain: "", subst: [matchKindEnd][]directive{nil, {{
			tests: []ruleTest{{
				expr:   &expression{u: String("Kochi Mincho"), op: 2},
				kind:   1,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: Bool(0), op: 5},
				binding: 0,
				object:  17,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Kochi Gothic"), op: 2},
				kind:   1,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: Bool(0), op: 5},
				binding: 0,
				object:  17,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Sazanami Mincho"), op: 2},
				kind:   1,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: Bool(0), op: 5},
				binding: 0,
				object:  17,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Sazanami Gothic"), op: 2},
				kind:   1,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: Bool(0), op: 5},
				binding: 0,
				object:  17,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Baekmuk Batang"), op: 2},
				kind:   1,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: Bool(0), op: 5},
				binding: 0,
				object:  17,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Baekmuk Dotum"), op: 2},
				kind:   1,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: Bool(0), op: 5},
				binding: 0,
				object:  17,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Baekmuk Gulim"), op: 2},
				kind:   1,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: Bool(0), op: 5},
				binding: 0,
				object:  17,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Baekmuk Headline"), op: 2},
				kind:   1,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: Bool(0), op: 5},
				binding: 0,
				object:  17,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("AR PL Mingti2L Big5"), op: 2},
				kind:   1,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: Bool(0), op: 5},
				binding: 0,
				object:  17,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("AR PL ShanHeiSun Uni"), op: 2},
				kind:   1,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: Bool(0), op: 5},
				binding: 0,
				object:  17,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("AR PL KaitiM Big5"), op: 2},
				kind:   1,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: Bool(0), op: 5},
				binding: 0,
				object:  17,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("AR PL ZenKai Uni"), op: 2},
				kind:   1,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: Bool(0), op: 5},
				binding: 0,
				object:  17,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("AR PL SungtiL GB"), op: 2},
				kind:   1,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: Bool(0), op: 5},
				binding: 0,
				object:  17,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("AR PL KaitiM GB"), op: 2},
				kind:   1,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: Bool(0), op: 5},
				binding: 0,
				object:  17,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("ZYSong18030"), op: 2},
				kind:   1,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: Bool(0), op: 5},
				binding: 0,
				object:  17,
				op:      11,
			}},
		}}, nil}},
		{name: "confs/30-0-google-crosextra-carlito-fontconfig.conf", description: "", domain: "", subst: [matchKindEnd][]directive{{{
			tests: []ruleTest{{
				expr:   &expression{u: String("Calibri"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("Carlito"), op: 2},
				binding: 2,
				object:  1,
				op:      15,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Carlito"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("Calibri"), op: 2},
				binding: 2,
				object:  1,
				op:      16,
			}},
		}}, nil, nil}},
		{name: "confs/30-cjk-aliases.conf", description: "", domain: "", subst: [matchKindEnd][]directive{{{
			tests: []ruleTest{{
				expr:   &expression{u: String("Batang"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: exprTree{&expression{u: String("Noto Serif CJK KR"), op: 2}, &expression{u: exprTree{&expression{u: String("NanumMyeongjo"), op: 2}, &expression{u: String("UnBatang"), op: 2}}, op: 36}}, op: 36},
				binding: 0,
				object:  1,
				op:      15,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("바탕"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: exprTree{&expression{u: String("Noto Serif CJK KR"), op: 2}, &expression{u: exprTree{&expression{u: String("NanumMyeongjo"), op: 2}, &expression{u: String("UnBatang"), op: 2}}, op: 36}}, op: 36},
				binding: 0,
				object:  1,
				op:      15,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("BatangChe"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: exprTree{&expression{u: String("Noto Serif CJK KR"), op: 2}, &expression{u: exprTree{&expression{u: String("NanumMyeongjo"), op: 2}, &expression{u: String("UnBatang"), op: 2}}, op: 36}}, op: 36},
				binding: 0,
				object:  1,
				op:      15,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("바탕체"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: exprTree{&expression{u: String("Noto Serif CJK KR"), op: 2}, &expression{u: exprTree{&expression{u: String("NanumMyeongjo"), op: 2}, &expression{u: String("UnBatang"), op: 2}}, op: 36}}, op: 36},
				binding: 0,
				object:  1,
				op:      15,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Myeongjo"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: exprTree{&expression{u: String("Noto Serif CJK KR"), op: 2}, &expression{u: exprTree{&expression{u: String("NanumMyeongjo"), op: 2}, &expression{u: String("UnBatang"), op: 2}}, op: 36}}, op: 36},
				binding: 0,
				object:  1,
				op:      15,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("명조"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: exprTree{&expression{u: String("Noto Serif CJK KR"), op: 2}, &expression{u: exprTree{&expression{u: String("NanumMyeongjo"), op: 2}, &expression{u: String("UnBatang"), op: 2}}, op: 36}}, op: 36},
				binding: 0,
				object:  1,
				op:      15,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("MyeongjoChe"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: exprTree{&expression{u: String("Noto Serif CJK KR"), op: 2}, &expression{u: exprTree{&expression{u: String("NanumMyeongjo"), op: 2}, &expression{u: String("UnBatang"), op: 2}}, op: 36}}, op: 36},
				binding: 0,
				object:  1,
				op:      15,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("명조체"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: exprTree{&expression{u: String("Noto Serif CJK KR"), op: 2}, &expression{u: exprTree{&expression{u: String("NanumMyeongjo"), op: 2}, &expression{u: String("UnBatang"), op: 2}}, op: 36}}, op: 36},
				binding: 0,
				object:  1,
				op:      15,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("AR MingtiM KSC"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: exprTree{&expression{u: String("Noto Serif CJK KR"), op: 2}, &expression{u: exprTree{&expression{u: String("NanumMyeongjo"), op: 2}, &expression{u: String("UnBatang"), op: 2}}, op: 36}}, op: 36},
				binding: 0,
				object:  1,
				op:      15,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Adobe 명조 Std M"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: exprTree{&expression{u: String("Noto Serif CJK KR"), op: 2}, &expression{u: exprTree{&expression{u: String("NanumMyeongjo"), op: 2}, &expression{u: String("UnBatang"), op: 2}}, op: 36}}, op: 36},
				binding: 0,
				object:  1,
				op:      15,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Adobe Myeongjo Std M"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: exprTree{&expression{u: String("Noto Serif CJK KR"), op: 2}, &expression{u: exprTree{&expression{u: String("NanumMyeongjo"), op: 2}, &expression{u: String("UnBatang"), op: 2}}, op: 36}}, op: 36},
				binding: 0,
				object:  1,
				op:      15,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Gungsuh"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: exprTree{&expression{u: String("Noto Serif CJK KR"), op: 2}, &expression{u: exprTree{&expression{u: String("UnGungseo"), op: 2}, &expression{u: String("NanumMyeongjo"), op: 2}}, op: 36}}, op: 36},
				binding: 0,
				object:  1,
				op:      15,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("궁서"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: exprTree{&expression{u: String("Noto Serif CJK KR"), op: 2}, &expression{u: exprTree{&expression{u: String("UnGungseo"), op: 2}, &expression{u: String("NanumMyeongjo"), op: 2}}, op: 36}}, op: 36},
				binding: 0,
				object:  1,
				op:      15,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("GungsuhChe"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: exprTree{&expression{u: String("Noto Serif CJK KR"), op: 2}, &expression{u: exprTree{&expression{u: String("UnGungseo"), op: 2}, &expression{u: String("NanumMyeongjo"), op: 2}}, op: 36}}, op: 36},
				binding: 0,
				object:  1,
				op:      15,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("궁서체"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: exprTree{&expression{u: String("Noto Serif CJK KR"), op: 2}, &expression{u: exprTree{&expression{u: String("UnGungseo"), op: 2}, &expression{u: String("NanumMyeongjo"), op: 2}}, op: 36}}, op: 36},
				binding: 0,
				object:  1,
				op:      15,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Dotum"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: exprTree{&expression{u: String("Noto Sans CJK KR"), op: 2}, &expression{u: exprTree{&expression{u: String("NanumGothic"), op: 2}, &expression{u: String("UnDotum"), op: 2}}, op: 36}}, op: 36},
				binding: 0,
				object:  1,
				op:      15,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("돋움"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: exprTree{&expression{u: String("Noto Sans CJK KR"), op: 2}, &expression{u: exprTree{&expression{u: String("NanumGothic"), op: 2}, &expression{u: String("UnDotum"), op: 2}}, op: 36}}, op: 36},
				binding: 0,
				object:  1,
				op:      15,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Gothic"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: exprTree{&expression{u: String("Noto Sans CJK KR"), op: 2}, &expression{u: exprTree{&expression{u: String("NanumGothic"), op: 2}, &expression{u: String("UnDotum"), op: 2}}, op: 36}}, op: 36},
				binding: 0,
				object:  1,
				op:      15,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("고딕"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: exprTree{&expression{u: String("Noto Sans CJK KR"), op: 2}, &expression{u: exprTree{&expression{u: String("NanumGothic"), op: 2}, &expression{u: String("UnDotum"), op: 2}}, op: 36}}, op: 36},
				binding: 0,
				object:  1,
				op:      15,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Malgun Gothic"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: exprTree{&expression{u: String("Noto Sans CJK KR"), op: 2}, &expression{u: exprTree{&expression{u: String("NanumGothic"), op: 2}, &expression{u: String("UnDotum"), op: 2}}, op: 36}}, op: 36},
				binding: 0,
				object:  1,
				op:      15,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("맑은 고딕"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: exprTree{&expression{u: String("Noto Sans CJK KR"), op: 2}, &expression{u: exprTree{&expression{u: String("NanumGothic"), op: 2}, &expression{u: String("UnDotum"), op: 2}}, op: 36}}, op: 36},
				binding: 0,
				object:  1,
				op:      15,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Gulim"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: exprTree{&expression{u: String("Noto Sans CJK KR"), op: 2}, &expression{u: exprTree{&expression{u: String("NanumGothic"), op: 2}, &expression{u: String("UnDotum"), op: 2}}, op: 36}}, op: 36},
				binding: 0,
				object:  1,
				op:      15,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("굴림"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: exprTree{&expression{u: String("Noto Sans CJK KR"), op: 2}, &expression{u: exprTree{&expression{u: String("NanumGothic"), op: 2}, &expression{u: String("UnDotum"), op: 2}}, op: 36}}, op: 36},
				binding: 0,
				object:  1,
				op:      15,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("AppleGothic"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: exprTree{&expression{u: String("Noto Sans CJK KR"), op: 2}, &expression{u: exprTree{&expression{u: String("NanumGothic"), op: 2}, &expression{u: String("UnDotum"), op: 2}}, op: 36}}, op: 36},
				binding: 0,
				object:  1,
				op:      15,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("애플고딕"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: exprTree{&expression{u: String("Noto Sans CJK KR"), op: 2}, &expression{u: exprTree{&expression{u: String("NanumGothic"), op: 2}, &expression{u: String("UnDotum"), op: 2}}, op: 36}}, op: 36},
				binding: 0,
				object:  1,
				op:      15,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("DotumChe"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: exprTree{&expression{u: String("Noto Sans Mono CJK KR"), op: 2}, &expression{u: exprTree{&expression{u: String("NanumGothicCoding"), op: 2}, &expression{u: String("NanumGothic"), op: 2}}, op: 36}}, op: 36},
				binding: 0,
				object:  1,
				op:      15,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("돋움체"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: exprTree{&expression{u: String("Noto Sans Mono CJK KR"), op: 2}, &expression{u: exprTree{&expression{u: String("NanumGothicCoding"), op: 2}, &expression{u: String("NanumGothic"), op: 2}}, op: 36}}, op: 36},
				binding: 0,
				object:  1,
				op:      15,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("GothicChe"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: exprTree{&expression{u: String("Noto Sans Mono CJK KR"), op: 2}, &expression{u: exprTree{&expression{u: String("NanumGothicCoding"), op: 2}, &expression{u: String("NanumGothic"), op: 2}}, op: 36}}, op: 36},
				binding: 0,
				object:  1,
				op:      15,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("고딕체"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: exprTree{&expression{u: String("Noto Sans Mono CJK KR"), op: 2}, &expression{u: exprTree{&expression{u: String("NanumGothicCoding"), op: 2}, &expression{u: String("NanumGothic"), op: 2}}, op: 36}}, op: 36},
				binding: 0,
				object:  1,
				op:      15,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("GulimChe"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: exprTree{&expression{u: String("Noto Sans Mono CJK KR"), op: 2}, &expression{u: exprTree{&expression{u: String("NanumGothicCoding"), op: 2}, &expression{u: String("NanumGothic"), op: 2}}, op: 36}}, op: 36},
				binding: 0,
				object:  1,
				op:      15,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("굴림체"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: exprTree{&expression{u: String("Noto Sans Mono CJK KR"), op: 2}, &expression{u: exprTree{&expression{u: String("NanumGothicCoding"), op: 2}, &expression{u: String("NanumGothic"), op: 2}}, op: 36}}, op: 36},
				binding: 0,
				object:  1,
				op:      15,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("MS Gothic"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: exprTree{&expression{u: String("Noto Sans Mono CJK JP"), op: 2}, &expression{u: exprTree{&expression{u: String("TakaoGothic"), op: 2}, &expression{u: exprTree{&expression{u: String("IPAGothic"), op: 2}, &expression{u: exprTree{&expression{u: String("IPAMonaGothic"), op: 2}, &expression{u: exprTree{&expression{u: String("VL Gothic"), op: 2}, &expression{u: exprTree{&expression{u: String("Sazanami Gothic"), op: 2}, &expression{u: String("Kochi Gothic"), op: 2}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36},
				binding: 0,
				object:  1,
				op:      15,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("MS ゴシック"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: exprTree{&expression{u: String("Noto Sans Mono CJK JP"), op: 2}, &expression{u: exprTree{&expression{u: String("TakaoGothic"), op: 2}, &expression{u: exprTree{&expression{u: String("IPAGothic"), op: 2}, &expression{u: exprTree{&expression{u: String("IPAMonaGothic"), op: 2}, &expression{u: exprTree{&expression{u: String("VL Gothic"), op: 2}, &expression{u: exprTree{&expression{u: String("Sazanami Gothic"), op: 2}, &expression{u: String("Kochi Gothic"), op: 2}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36},
				binding: 0,
				object:  1,
				op:      15,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("MS PGothic"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: exprTree{&expression{u: String("Noto Sans CJK JP"), op: 2}, &expression{u: exprTree{&expression{u: String("IPAMonaPGothic"), op: 2}, &expression{u: exprTree{&expression{u: String("TakaoPGothic"), op: 2}, &expression{u: exprTree{&expression{u: String("IPAPGothic"), op: 2}, &expression{u: exprTree{&expression{u: String("VL PGothic"), op: 2}, &expression{u: exprTree{&expression{u: String("Sazanami Gothic"), op: 2}, &expression{u: String("Kochi Gothic"), op: 2}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36},
				binding: 0,
				object:  1,
				op:      15,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("MS Pゴシック"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: exprTree{&expression{u: String("Noto Sans CJK JP"), op: 2}, &expression{u: exprTree{&expression{u: String("IPAMonaPGothic"), op: 2}, &expression{u: exprTree{&expression{u: String("TakaoPGothic"), op: 2}, &expression{u: exprTree{&expression{u: String("IPAPGothic"), op: 2}, &expression{u: exprTree{&expression{u: String("VL PGothic"), op: 2}, &expression{u: exprTree{&expression{u: String("Sazanami Gothic"), op: 2}, &expression{u: String("Kochi Gothic"), op: 2}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36},
				binding: 0,
				object:  1,
				op:      15,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("MS UIGothic"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: exprTree{&expression{u: String("Noto Sans CJK JP"), op: 2}, &expression{u: exprTree{&expression{u: String("IPAMonaPGothic"), op: 2}, &expression{u: exprTree{&expression{u: String("TakaoPGothic"), op: 2}, &expression{u: exprTree{&expression{u: String("IPAPGothic"), op: 2}, &expression{u: exprTree{&expression{u: String("VL PGothic"), op: 2}, &expression{u: exprTree{&expression{u: String("Sazanami Gothic"), op: 2}, &expression{u: String("Kochi Gothic"), op: 2}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36},
				binding: 0,
				object:  1,
				op:      15,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Meiryo UI"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: exprTree{&expression{u: String("Noto Sans CJK JP"), op: 2}, &expression{u: exprTree{&expression{u: String("IPAMonaPGothic"), op: 2}, &expression{u: exprTree{&expression{u: String("TakaoPGothic"), op: 2}, &expression{u: exprTree{&expression{u: String("IPAPGothic"), op: 2}, &expression{u: exprTree{&expression{u: String("VL PGothic"), op: 2}, &expression{u: exprTree{&expression{u: String("Sazanami Gothic"), op: 2}, &expression{u: String("Kochi Gothic"), op: 2}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36},
				binding: 0,
				object:  1,
				op:      15,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("MS Mincho"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: exprTree{&expression{u: String("Noto Serif CJK JP"), op: 2}, &expression{u: exprTree{&expression{u: String("TakaoMincho"), op: 2}, &expression{u: exprTree{&expression{u: String("IPAMincho"), op: 2}, &expression{u: exprTree{&expression{u: String("IPAMonaMincho"), op: 2}, &expression{u: exprTree{&expression{u: String("Sazanami Mincho"), op: 2}, &expression{u: String("Kochi Mincho"), op: 2}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36},
				binding: 0,
				object:  1,
				op:      15,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("MS 明朝"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: exprTree{&expression{u: String("Noto Serif CJK JP"), op: 2}, &expression{u: exprTree{&expression{u: String("TakaoMincho"), op: 2}, &expression{u: exprTree{&expression{u: String("IPAMincho"), op: 2}, &expression{u: exprTree{&expression{u: String("IPAMonaMincho"), op: 2}, &expression{u: exprTree{&expression{u: String("Sazanami Mincho"), op: 2}, &expression{u: String("Kochi Mincho"), op: 2}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36},
				binding: 0,
				object:  1,
				op:      15,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("AR MinchoL JIS"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: exprTree{&expression{u: String("Noto Serif CJK JP"), op: 2}, &expression{u: exprTree{&expression{u: String("TakaoMincho"), op: 2}, &expression{u: exprTree{&expression{u: String("IPAMincho"), op: 2}, &expression{u: exprTree{&expression{u: String("IPAMonaMincho"), op: 2}, &expression{u: exprTree{&expression{u: String("Sazanami Mincho"), op: 2}, &expression{u: String("Kochi Mincho"), op: 2}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36},
				binding: 0,
				object:  1,
				op:      15,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("MS PMincho"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: exprTree{&expression{u: String("Noto Serif CJK JP"), op: 2}, &expression{u: exprTree{&expression{u: String("IPAMonaPMincho"), op: 2}, &expression{u: exprTree{&expression{u: String("TakaoPMincho"), op: 2}, &expression{u: exprTree{&expression{u: String("IPAPMincho"), op: 2}, &expression{u: exprTree{&expression{u: String("Sazanami Mincho"), op: 2}, &expression{u: String("Kochi Mincho"), op: 2}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36},
				binding: 0,
				object:  1,
				op:      15,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("MS P明朝"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: exprTree{&expression{u: String("Noto Serif CJK JP"), op: 2}, &expression{u: exprTree{&expression{u: String("IPAMonaPMincho"), op: 2}, &expression{u: exprTree{&expression{u: String("TakaoPMincho"), op: 2}, &expression{u: exprTree{&expression{u: String("IPAPMincho"), op: 2}, &expression{u: exprTree{&expression{u: String("Sazanami Mincho"), op: 2}, &expression{u: String("Kochi Mincho"), op: 2}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36},
				binding: 0,
				object:  1,
				op:      15,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Meiryo"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("IPAexGothic"), op: 2},
				binding: 0,
				object:  1,
				op:      15,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("メイリオ"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("IPAexGothic"), op: 2},
				binding: 0,
				object:  1,
				op:      15,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("SimSun"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: exprTree{&expression{u: String("Noto Serif CJK SC"), op: 2}, &expression{u: exprTree{&expression{u: String("HYSong"), op: 2}, &expression{u: String("AR PL UMing CN"), op: 2}}, op: 36}}, op: 36},
				binding: 0,
				object:  1,
				op:      15,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("NSimSun"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: exprTree{&expression{u: String("Noto Serif CJK SC"), op: 2}, &expression{u: exprTree{&expression{u: String("HYSong"), op: 2}, &expression{u: String("AR PL UMing CN"), op: 2}}, op: 36}}, op: 36},
				binding: 0,
				object:  1,
				op:      15,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("SimSun-18030"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: exprTree{&expression{u: String("Noto Serif CJK SC"), op: 2}, &expression{u: exprTree{&expression{u: String("HYSong"), op: 2}, &expression{u: String("AR PL UMing CN"), op: 2}}, op: 36}}, op: 36},
				binding: 0,
				object:  1,
				op:      15,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("NSimSun-18030"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: exprTree{&expression{u: String("Noto Serif CJK SC"), op: 2}, &expression{u: exprTree{&expression{u: String("HYSong"), op: 2}, &expression{u: String("AR PL UMing CN"), op: 2}}, op: 36}}, op: 36},
				binding: 0,
				object:  1,
				op:      15,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("宋体"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: exprTree{&expression{u: String("Noto Serif CJK SC"), op: 2}, &expression{u: exprTree{&expression{u: String("HYSong"), op: 2}, &expression{u: String("AR PL UMing CN"), op: 2}}, op: 36}}, op: 36},
				binding: 0,
				object:  1,
				op:      15,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("新宋体"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: exprTree{&expression{u: String("Noto Serif CJK SC"), op: 2}, &expression{u: exprTree{&expression{u: String("HYSong"), op: 2}, &expression{u: String("AR PL UMing CN"), op: 2}}, op: 36}}, op: 36},
				binding: 0,
				object:  1,
				op:      15,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("AR MingtiM GB"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: exprTree{&expression{u: String("Noto Serif CJK SC"), op: 2}, &expression{u: exprTree{&expression{u: String("HYSong"), op: 2}, &expression{u: String("AR PL UMing CN"), op: 2}}, op: 36}}, op: 36},
				binding: 0,
				object:  1,
				op:      15,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("KaiTi"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: exprTree{&expression{u: String("Noto Serif CJK SC"), op: 2}, &expression{u: exprTree{&expression{u: String("AR PL UKai CN"), op: 2}, &expression{u: String("AR PL ZenKai Uni"), op: 2}}, op: 36}}, op: 36},
				binding: 0,
				object:  1,
				op:      15,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("楷体"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: exprTree{&expression{u: String("Noto Serif CJK SC"), op: 2}, &expression{u: exprTree{&expression{u: String("AR PL UKai CN"), op: 2}, &expression{u: String("AR PL ZenKai Uni"), op: 2}}, op: 36}}, op: 36},
				binding: 0,
				object:  1,
				op:      15,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Microsoft YaHei"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: exprTree{&expression{u: String("Noto Sans CJK SC"), op: 2}, &expression{u: exprTree{&expression{u: String("WenQuanYi Micro Hei"), op: 2}, &expression{u: String("WenQuanYi Zen Hei"), op: 2}}, op: 36}}, op: 36},
				binding: 0,
				object:  1,
				op:      15,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("微软雅黑"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: exprTree{&expression{u: String("Noto Sans CJK SC"), op: 2}, &expression{u: exprTree{&expression{u: String("WenQuanYi Micro Hei"), op: 2}, &expression{u: String("WenQuanYi Zen Hei"), op: 2}}, op: 36}}, op: 36},
				binding: 0,
				object:  1,
				op:      15,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("MingLiU"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: exprTree{&expression{u: String("Noto Serif CJK TC"), op: 2}, &expression{u: String("AR PL UMing TW"), op: 2}}, op: 36},
				binding: 0,
				object:  1,
				op:      15,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("細明體"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: exprTree{&expression{u: String("Noto Serif CJK TC"), op: 2}, &expression{u: String("AR PL UMing TW"), op: 2}}, op: 36},
				binding: 0,
				object:  1,
				op:      15,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("PMingLiU"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: exprTree{&expression{u: String("Noto Serif CJK TC"), op: 2}, &expression{u: String("AR PL UMing TW"), op: 2}}, op: 36},
				binding: 0,
				object:  1,
				op:      15,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("新細明體"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: exprTree{&expression{u: String("Noto Serif CJK TC"), op: 2}, &expression{u: String("AR PL UMing TW"), op: 2}}, op: 36},
				binding: 0,
				object:  1,
				op:      15,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("AR MingtiM BIG-5"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: exprTree{&expression{u: String("Noto Serif CJK TC"), op: 2}, &expression{u: String("AR PL UMing TW"), op: 2}}, op: 36},
				binding: 0,
				object:  1,
				op:      15,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("DFKai\\-SB"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: exprTree{&expression{u: String("Noto Serif CJK TC"), op: 2}, &expression{u: exprTree{&expression{u: String("AR PL UKai TW"), op: 2}, &expression{u: String("AR PL ZenKai Uni"), op: 2}}, op: 36}}, op: 36},
				binding: 0,
				object:  1,
				op:      15,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("標楷體"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: exprTree{&expression{u: String("Noto Serif CJK TC"), op: 2}, &expression{u: exprTree{&expression{u: String("AR PL UKai TW"), op: 2}, &expression{u: String("AR PL ZenKai Uni"), op: 2}}, op: 36}}, op: 36},
				binding: 0,
				object:  1,
				op:      15,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Microsoft JhengHei"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: exprTree{&expression{u: String("Noto Sans CJK TC"), op: 2}, &expression{u: exprTree{&expression{u: String("WenQuanYi Micro Hei"), op: 2}, &expression{u: String("WenQuanYi Zen Hei"), op: 2}}, op: 36}}, op: 36},
				binding: 0,
				object:  1,
				op:      15,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("微軟正黑體"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: exprTree{&expression{u: String("Noto Sans CJK TC"), op: 2}, &expression{u: exprTree{&expression{u: String("WenQuanYi Micro Hei"), op: 2}, &expression{u: String("WenQuanYi Zen Hei"), op: 2}}, op: 36}}, op: 36},
				binding: 0,
				object:  1,
				op:      15,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Ming (for ISO10646)"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("AR PL UMing HK"), op: 2},
				binding: 0,
				object:  1,
				op:      15,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("MingLiU_HKSCS"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("AR PL UMing HK"), op: 2},
				binding: 0,
				object:  1,
				op:      15,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("細明體_HKSCS"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("AR PL UMing HK"), op: 2},
				binding: 0,
				object:  1,
				op:      15,
			}},
		}}, nil, nil}},
		{name: "confs/30-metric-aliases.conf", description: "Set substitutions for similar/metric-compatible families", domain: "", subst: [matchKindEnd][]directive{{{
			tests: []ruleTest{{
				expr:   &expression{u: String("Nimbus Sans L"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("Helvetica"), op: 2},
				binding: 2,
				object:  1,
				op:      16,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Nimbus Sans"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("Helvetica"), op: 2},
				binding: 2,
				object:  1,
				op:      16,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("TeX Gyre Heros"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("Helvetica"), op: 2},
				binding: 2,
				object:  1,
				op:      16,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Nimbus Sans Narrow"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("Helvetica Narrow"), op: 2},
				binding: 2,
				object:  1,
				op:      16,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("TeX Gyre Heros Cn"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("Helvetica Narrow"), op: 2},
				binding: 2,
				object:  1,
				op:      16,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Nimbus Roman No9 L"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("Times"), op: 2},
				binding: 2,
				object:  1,
				op:      16,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Nimbus Roman"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("Times"), op: 2},
				binding: 2,
				object:  1,
				op:      16,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("TeX Gyre Termes"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("Times"), op: 2},
				binding: 2,
				object:  1,
				op:      16,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Nimbus Mono L"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("Courier"), op: 2},
				binding: 2,
				object:  1,
				op:      16,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Nimbus Mono"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("Courier"), op: 2},
				binding: 2,
				object:  1,
				op:      16,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Nimbus Mono PS"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("Courier"), op: 2},
				binding: 2,
				object:  1,
				op:      16,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("TeX Gyre Cursor"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("Courier"), op: 2},
				binding: 2,
				object:  1,
				op:      16,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Avant Garde"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("ITC Avant Garde Gothic"), op: 2},
				binding: 2,
				object:  1,
				op:      16,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("URW Gothic L"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("ITC Avant Garde Gothic"), op: 2},
				binding: 2,
				object:  1,
				op:      16,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("URW Gothic"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("ITC Avant Garde Gothic"), op: 2},
				binding: 2,
				object:  1,
				op:      16,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("TeX Gyre Adventor"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("ITC Avant Garde Gothic"), op: 2},
				binding: 2,
				object:  1,
				op:      16,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Bookman"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("ITC Bookman"), op: 2},
				binding: 2,
				object:  1,
				op:      16,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("URW Bookman L"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("ITC Bookman"), op: 2},
				binding: 2,
				object:  1,
				op:      16,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Bookman URW"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("ITC Bookman"), op: 2},
				binding: 2,
				object:  1,
				op:      16,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("URW Bookman"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("ITC Bookman"), op: 2},
				binding: 2,
				object:  1,
				op:      16,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("TeX Gyre Bonum"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("ITC Bookman"), op: 2},
				binding: 2,
				object:  1,
				op:      16,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Bookman Old Style"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("ITC Bookman"), op: 2},
				binding: 2,
				object:  1,
				op:      16,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Zapf Chancery"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("ITC Zapf Chancery"), op: 2},
				binding: 2,
				object:  1,
				op:      16,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("URW Chancery L"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("ITC Zapf Chancery"), op: 2},
				binding: 2,
				object:  1,
				op:      16,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Chancery URW"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("ITC Zapf Chancery"), op: 2},
				binding: 2,
				object:  1,
				op:      16,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Z003"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("ITC Zapf Chancery"), op: 2},
				binding: 2,
				object:  1,
				op:      16,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("TeX Gyre Chorus"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("ITC Zapf Chancery"), op: 2},
				binding: 2,
				object:  1,
				op:      16,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("URW Palladio L"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("Palatino"), op: 2},
				binding: 2,
				object:  1,
				op:      16,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Palladio URW"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("Palatino"), op: 2},
				binding: 2,
				object:  1,
				op:      16,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("P052"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("Palatino"), op: 2},
				binding: 2,
				object:  1,
				op:      16,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("TeX Gyre Pagella"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("Palatino"), op: 2},
				binding: 2,
				object:  1,
				op:      16,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Palatino Linotype"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("Palatino"), op: 2},
				binding: 2,
				object:  1,
				op:      16,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Century Schoolbook L"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("New Century Schoolbook"), op: 2},
				binding: 2,
				object:  1,
				op:      16,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Century SchoolBook URW"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("New Century Schoolbook"), op: 2},
				binding: 2,
				object:  1,
				op:      16,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("C059"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("New Century Schoolbook"), op: 2},
				binding: 2,
				object:  1,
				op:      16,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("TeX Gyre Schola"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("New Century Schoolbook"), op: 2},
				binding: 2,
				object:  1,
				op:      16,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Century Schoolbook"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("New Century Schoolbook"), op: 2},
				binding: 2,
				object:  1,
				op:      16,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Arimo"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("Arial"), op: 2},
				binding: 2,
				object:  1,
				op:      16,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Liberation Sans"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("Arial"), op: 2},
				binding: 2,
				object:  1,
				op:      16,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Liberation Sans Narrow"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("Arial Narrow"), op: 2},
				binding: 2,
				object:  1,
				op:      16,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Albany"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("Arial"), op: 2},
				binding: 2,
				object:  1,
				op:      16,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Albany AMT"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("Arial"), op: 2},
				binding: 2,
				object:  1,
				op:      16,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Tinos"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("Times New Roman"), op: 2},
				binding: 2,
				object:  1,
				op:      16,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Liberation Serif"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("Times New Roman"), op: 2},
				binding: 2,
				object:  1,
				op:      16,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Thorndale"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("Times New Roman"), op: 2},
				binding: 2,
				object:  1,
				op:      16,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Thorndale AMT"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("Times New Roman"), op: 2},
				binding: 2,
				object:  1,
				op:      16,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Cousine"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("Courier New"), op: 2},
				binding: 2,
				object:  1,
				op:      16,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Liberation Mono"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("Courier New"), op: 2},
				binding: 2,
				object:  1,
				op:      16,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Cumberland"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("Courier New"), op: 2},
				binding: 2,
				object:  1,
				op:      16,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Cumberland AMT"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("Courier New"), op: 2},
				binding: 2,
				object:  1,
				op:      16,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Gelasio"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("Georgia"), op: 2},
				binding: 2,
				object:  1,
				op:      16,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Caladea"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("Cambria"), op: 2},
				binding: 2,
				object:  1,
				op:      16,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Carlito"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("Calibri"), op: 2},
				binding: 2,
				object:  1,
				op:      16,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("SymbolNeu"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("Symbol"), op: 2},
				binding: 2,
				object:  1,
				op:      16,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Helvetica"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("Arial"), op: 2},
				binding: 0,
				object:  1,
				op:      16,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Helvetica Narrow"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("Arial Narrow"), op: 2},
				binding: 0,
				object:  1,
				op:      16,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Times"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("Times New Roman"), op: 2},
				binding: 0,
				object:  1,
				op:      16,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Courier"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("Courier New"), op: 2},
				binding: 0,
				object:  1,
				op:      16,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Arial"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("Helvetica"), op: 2},
				binding: 0,
				object:  1,
				op:      16,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Arial Narrow"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("Helvetica Narrow"), op: 2},
				binding: 0,
				object:  1,
				op:      16,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Times New Roman"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("Times"), op: 2},
				binding: 0,
				object:  1,
				op:      16,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Courier New"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("Courier"), op: 2},
				binding: 0,
				object:  1,
				op:      16,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Helvetica"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("TeX Gyre Heros"), op: 2},
				binding: 2,
				object:  1,
				op:      15,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Helvetica Narrow"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("TeX Gyre Heros Cn"), op: 2},
				binding: 2,
				object:  1,
				op:      15,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Times"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("TeX Gyre Termes"), op: 2},
				binding: 2,
				object:  1,
				op:      15,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Courier"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("TeX Gyre Cursor"), op: 2},
				binding: 2,
				object:  1,
				op:      15,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("ITC Avant Garde Gothic"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("TeX Gyre Adventor"), op: 2},
				binding: 2,
				object:  1,
				op:      15,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("ITC Bookman"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: exprTree{&expression{u: String("Bookman Old Style"), op: 2}, &expression{u: String("TeX Gyre Bonum"), op: 2}}, op: 36},
				binding: 2,
				object:  1,
				op:      15,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("ITC Zapf Chancery"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("TeX Gyre Chorus"), op: 2},
				binding: 2,
				object:  1,
				op:      15,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Palatino"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: exprTree{&expression{u: String("Palatino Linotype"), op: 2}, &expression{u: String("TeX Gyre Pagella"), op: 2}}, op: 36},
				binding: 2,
				object:  1,
				op:      15,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("New Century Schoolbook"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: exprTree{&expression{u: String("Century Schoolbook"), op: 2}, &expression{u: String("TeX Gyre Schola"), op: 2}}, op: 36},
				binding: 2,
				object:  1,
				op:      15,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Arial"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: exprTree{&expression{u: String("Arimo"), op: 2}, &expression{u: exprTree{&expression{u: String("Liberation Sans"), op: 2}, &expression{u: exprTree{&expression{u: String("Albany"), op: 2}, &expression{u: String("Albany AMT"), op: 2}}, op: 36}}, op: 36}}, op: 36},
				binding: 2,
				object:  1,
				op:      15,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Arial Narrow"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("Liberation Sans Narrow"), op: 2},
				binding: 2,
				object:  1,
				op:      15,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Times New Roman"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: exprTree{&expression{u: String("Tinos"), op: 2}, &expression{u: exprTree{&expression{u: String("Liberation Serif"), op: 2}, &expression{u: exprTree{&expression{u: String("Thorndale"), op: 2}, &expression{u: String("Thorndale AMT"), op: 2}}, op: 36}}, op: 36}}, op: 36},
				binding: 2,
				object:  1,
				op:      15,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Courier New"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: exprTree{&expression{u: String("Cousine"), op: 2}, &expression{u: exprTree{&expression{u: String("Liberation Mono"), op: 2}, &expression{u: exprTree{&expression{u: String("Cumberland"), op: 2}, &expression{u: String("Cumberland AMT"), op: 2}}, op: 36}}, op: 36}}, op: 36},
				binding: 2,
				object:  1,
				op:      15,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Georgia"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("Gelasio"), op: 2},
				binding: 2,
				object:  1,
				op:      15,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Cambria"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("Caladea"), op: 2},
				binding: 2,
				object:  1,
				op:      15,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Calibri"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("Carlito"), op: 2},
				binding: 2,
				object:  1,
				op:      15,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Symbol"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("SymbolNeu"), op: 2},
				binding: 2,
				object:  1,
				op:      15,
			}},
		}}, nil, nil}},
		{name: "confs/30-opensymbol.conf", description: "", domain: "", subst: [matchKindEnd][]directive{{{
			tests: []ruleTest{{
				expr:   &expression{u: String("Symbol"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     22,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("OpenSymbol"), op: 2},
				binding: 2,
				object:  1,
				op:      15,
			}},
		}}, nil, nil}},
		{name: "confs/35-lang-normalize.conf", description: "", domain: "", subst: [matchKindEnd][]directive{{{
			tests: []ruleTest{{
				expr:   &expression{u: String("aa"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("aa"), op: 2},
				binding: 2,
				object:  34,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("ab"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("ab"), op: 2},
				binding: 2,
				object:  34,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("af"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("af"), op: 2},
				binding: 2,
				object:  34,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("ak"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("ak"), op: 2},
				binding: 2,
				object:  34,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("am"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("am"), op: 2},
				binding: 2,
				object:  34,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("an"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("an"), op: 2},
				binding: 2,
				object:  34,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("ar"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("ar"), op: 2},
				binding: 2,
				object:  34,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("as"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("as"), op: 2},
				binding: 2,
				object:  34,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("ast"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("ast"), op: 2},
				binding: 2,
				object:  34,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("av"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("av"), op: 2},
				binding: 2,
				object:  34,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("ay"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("ay"), op: 2},
				binding: 2,
				object:  34,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("ba"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("ba"), op: 2},
				binding: 2,
				object:  34,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("be"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("be"), op: 2},
				binding: 2,
				object:  34,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("bg"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("bg"), op: 2},
				binding: 2,
				object:  34,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("bh"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("bh"), op: 2},
				binding: 2,
				object:  34,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("bho"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("bho"), op: 2},
				binding: 2,
				object:  34,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("bi"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("bi"), op: 2},
				binding: 2,
				object:  34,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("bin"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("bin"), op: 2},
				binding: 2,
				object:  34,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("bm"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("bm"), op: 2},
				binding: 2,
				object:  34,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("bn"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("bn"), op: 2},
				binding: 2,
				object:  34,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("bo"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("bo"), op: 2},
				binding: 2,
				object:  34,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("br"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("br"), op: 2},
				binding: 2,
				object:  34,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("brx"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("brx"), op: 2},
				binding: 2,
				object:  34,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("bs"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("bs"), op: 2},
				binding: 2,
				object:  34,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("bua"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("bua"), op: 2},
				binding: 2,
				object:  34,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("byn"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("byn"), op: 2},
				binding: 2,
				object:  34,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("ca"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("ca"), op: 2},
				binding: 2,
				object:  34,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("ce"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("ce"), op: 2},
				binding: 2,
				object:  34,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("ch"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("ch"), op: 2},
				binding: 2,
				object:  34,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("chm"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("chm"), op: 2},
				binding: 2,
				object:  34,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("chr"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("chr"), op: 2},
				binding: 2,
				object:  34,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("co"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("co"), op: 2},
				binding: 2,
				object:  34,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("crh"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("crh"), op: 2},
				binding: 2,
				object:  34,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("cs"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("cs"), op: 2},
				binding: 2,
				object:  34,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("csb"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("csb"), op: 2},
				binding: 2,
				object:  34,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("cu"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("cu"), op: 2},
				binding: 2,
				object:  34,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("cv"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("cv"), op: 2},
				binding: 2,
				object:  34,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("cy"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("cy"), op: 2},
				binding: 2,
				object:  34,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("da"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("da"), op: 2},
				binding: 2,
				object:  34,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("de"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("de"), op: 2},
				binding: 2,
				object:  34,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("doi"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("doi"), op: 2},
				binding: 2,
				object:  34,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("dv"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("dv"), op: 2},
				binding: 2,
				object:  34,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("dz"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("dz"), op: 2},
				binding: 2,
				object:  34,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("ee"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("ee"), op: 2},
				binding: 2,
				object:  34,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("el"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("el"), op: 2},
				binding: 2,
				object:  34,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("en"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("en"), op: 2},
				binding: 2,
				object:  34,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("eo"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("eo"), op: 2},
				binding: 2,
				object:  34,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("es"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("es"), op: 2},
				binding: 2,
				object:  34,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("et"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("et"), op: 2},
				binding: 2,
				object:  34,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("eu"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("eu"), op: 2},
				binding: 2,
				object:  34,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("fa"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("fa"), op: 2},
				binding: 2,
				object:  34,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("fat"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("fat"), op: 2},
				binding: 2,
				object:  34,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("ff"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("ff"), op: 2},
				binding: 2,
				object:  34,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("fi"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("fi"), op: 2},
				binding: 2,
				object:  34,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("fil"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("fil"), op: 2},
				binding: 2,
				object:  34,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("fj"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("fj"), op: 2},
				binding: 2,
				object:  34,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("fo"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("fo"), op: 2},
				binding: 2,
				object:  34,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("fr"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("fr"), op: 2},
				binding: 2,
				object:  34,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("fur"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("fur"), op: 2},
				binding: 2,
				object:  34,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("fy"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("fy"), op: 2},
				binding: 2,
				object:  34,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("ga"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("ga"), op: 2},
				binding: 2,
				object:  34,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("gd"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("gd"), op: 2},
				binding: 2,
				object:  34,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("gez"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("gez"), op: 2},
				binding: 2,
				object:  34,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("gl"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("gl"), op: 2},
				binding: 2,
				object:  34,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("gn"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("gn"), op: 2},
				binding: 2,
				object:  34,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("gu"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("gu"), op: 2},
				binding: 2,
				object:  34,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("gv"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("gv"), op: 2},
				binding: 2,
				object:  34,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("ha"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("ha"), op: 2},
				binding: 2,
				object:  34,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("haw"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("haw"), op: 2},
				binding: 2,
				object:  34,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("he"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("he"), op: 2},
				binding: 2,
				object:  34,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("hi"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("hi"), op: 2},
				binding: 2,
				object:  34,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("hne"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("hne"), op: 2},
				binding: 2,
				object:  34,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("ho"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("ho"), op: 2},
				binding: 2,
				object:  34,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("hr"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("hr"), op: 2},
				binding: 2,
				object:  34,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("hsb"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("hsb"), op: 2},
				binding: 2,
				object:  34,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("ht"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("ht"), op: 2},
				binding: 2,
				object:  34,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("hu"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("hu"), op: 2},
				binding: 2,
				object:  34,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("hy"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("hy"), op: 2},
				binding: 2,
				object:  34,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("hz"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("hz"), op: 2},
				binding: 2,
				object:  34,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("ia"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("ia"), op: 2},
				binding: 2,
				object:  34,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("id"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("id"), op: 2},
				binding: 2,
				object:  34,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("ie"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("ie"), op: 2},
				binding: 2,
				object:  34,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("ig"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("ig"), op: 2},
				binding: 2,
				object:  34,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("ii"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("ii"), op: 2},
				binding: 2,
				object:  34,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("ik"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("ik"), op: 2},
				binding: 2,
				object:  34,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("io"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("io"), op: 2},
				binding: 2,
				object:  34,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("is"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("is"), op: 2},
				binding: 2,
				object:  34,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("it"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("it"), op: 2},
				binding: 2,
				object:  34,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("iu"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("iu"), op: 2},
				binding: 2,
				object:  34,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("ja"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("ja"), op: 2},
				binding: 2,
				object:  34,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("jv"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("jv"), op: 2},
				binding: 2,
				object:  34,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("ka"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("ka"), op: 2},
				binding: 2,
				object:  34,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("kaa"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("kaa"), op: 2},
				binding: 2,
				object:  34,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("kab"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("kab"), op: 2},
				binding: 2,
				object:  34,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("ki"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("ki"), op: 2},
				binding: 2,
				object:  34,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("kj"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("kj"), op: 2},
				binding: 2,
				object:  34,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("kk"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("kk"), op: 2},
				binding: 2,
				object:  34,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("kl"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("kl"), op: 2},
				binding: 2,
				object:  34,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("km"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("km"), op: 2},
				binding: 2,
				object:  34,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("kn"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("kn"), op: 2},
				binding: 2,
				object:  34,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("ko"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("ko"), op: 2},
				binding: 2,
				object:  34,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("kok"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("kok"), op: 2},
				binding: 2,
				object:  34,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("kr"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("kr"), op: 2},
				binding: 2,
				object:  34,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("ks"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("ks"), op: 2},
				binding: 2,
				object:  34,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("kum"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("kum"), op: 2},
				binding: 2,
				object:  34,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("kv"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("kv"), op: 2},
				binding: 2,
				object:  34,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("kw"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("kw"), op: 2},
				binding: 2,
				object:  34,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("kwm"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("kwm"), op: 2},
				binding: 2,
				object:  34,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("ky"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("ky"), op: 2},
				binding: 2,
				object:  34,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("la"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("la"), op: 2},
				binding: 2,
				object:  34,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("lah"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("lah"), op: 2},
				binding: 2,
				object:  34,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("lb"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("lb"), op: 2},
				binding: 2,
				object:  34,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("lez"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("lez"), op: 2},
				binding: 2,
				object:  34,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("lg"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("lg"), op: 2},
				binding: 2,
				object:  34,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("li"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("li"), op: 2},
				binding: 2,
				object:  34,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("ln"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("ln"), op: 2},
				binding: 2,
				object:  34,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("lo"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("lo"), op: 2},
				binding: 2,
				object:  34,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("lt"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("lt"), op: 2},
				binding: 2,
				object:  34,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("lv"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("lv"), op: 2},
				binding: 2,
				object:  34,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("mai"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("mai"), op: 2},
				binding: 2,
				object:  34,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("mg"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("mg"), op: 2},
				binding: 2,
				object:  34,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("mh"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("mh"), op: 2},
				binding: 2,
				object:  34,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("mi"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("mi"), op: 2},
				binding: 2,
				object:  34,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("mk"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("mk"), op: 2},
				binding: 2,
				object:  34,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("ml"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("ml"), op: 2},
				binding: 2,
				object:  34,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("mni"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("mni"), op: 2},
				binding: 2,
				object:  34,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("mo"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("mo"), op: 2},
				binding: 2,
				object:  34,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("mr"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("mr"), op: 2},
				binding: 2,
				object:  34,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("ms"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("ms"), op: 2},
				binding: 2,
				object:  34,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("mt"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("mt"), op: 2},
				binding: 2,
				object:  34,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("my"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("my"), op: 2},
				binding: 2,
				object:  34,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("na"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("na"), op: 2},
				binding: 2,
				object:  34,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("nb"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("nb"), op: 2},
				binding: 2,
				object:  34,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("nds"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("nds"), op: 2},
				binding: 2,
				object:  34,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("ne"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("ne"), op: 2},
				binding: 2,
				object:  34,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("ng"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("ng"), op: 2},
				binding: 2,
				object:  34,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("nl"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("nl"), op: 2},
				binding: 2,
				object:  34,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("nn"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("nn"), op: 2},
				binding: 2,
				object:  34,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("no"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("no"), op: 2},
				binding: 2,
				object:  34,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("nqo"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("nqo"), op: 2},
				binding: 2,
				object:  34,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("nr"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("nr"), op: 2},
				binding: 2,
				object:  34,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("nso"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("nso"), op: 2},
				binding: 2,
				object:  34,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("nv"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("nv"), op: 2},
				binding: 2,
				object:  34,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("ny"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("ny"), op: 2},
				binding: 2,
				object:  34,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("oc"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("oc"), op: 2},
				binding: 2,
				object:  34,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("om"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("om"), op: 2},
				binding: 2,
				object:  34,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("or"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("or"), op: 2},
				binding: 2,
				object:  34,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("os"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("os"), op: 2},
				binding: 2,
				object:  34,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("ota"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("ota"), op: 2},
				binding: 2,
				object:  34,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("pa"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("pa"), op: 2},
				binding: 2,
				object:  34,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("pl"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("pl"), op: 2},
				binding: 2,
				object:  34,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("pt"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("pt"), op: 2},
				binding: 2,
				object:  34,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("qu"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("qu"), op: 2},
				binding: 2,
				object:  34,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("quz"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("quz"), op: 2},
				binding: 2,
				object:  34,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("rm"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("rm"), op: 2},
				binding: 2,
				object:  34,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("rn"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("rn"), op: 2},
				binding: 2,
				object:  34,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("ro"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("ro"), op: 2},
				binding: 2,
				object:  34,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("ru"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("ru"), op: 2},
				binding: 2,
				object:  34,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("rw"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("rw"), op: 2},
				binding: 2,
				object:  34,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("sa"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("sa"), op: 2},
				binding: 2,
				object:  34,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("sah"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("sah"), op: 2},
				binding: 2,
				object:  34,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("sat"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("sat"), op: 2},
				binding: 2,
				object:  34,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("sc"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("sc"), op: 2},
				binding: 2,
				object:  34,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("sco"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("sco"), op: 2},
				binding: 2,
				object:  34,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("sd"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("sd"), op: 2},
				binding: 2,
				object:  34,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("se"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("se"), op: 2},
				binding: 2,
				object:  34,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("sel"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("sel"), op: 2},
				binding: 2,
				object:  34,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("sg"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("sg"), op: 2},
				binding: 2,
				object:  34,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("sh"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("sh"), op: 2},
				binding: 2,
				object:  34,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("shs"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("shs"), op: 2},
				binding: 2,
				object:  34,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("si"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("si"), op: 2},
				binding: 2,
				object:  34,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("sid"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("sid"), op: 2},
				binding: 2,
				object:  34,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("sk"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("sk"), op: 2},
				binding: 2,
				object:  34,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("sl"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("sl"), op: 2},
				binding: 2,
				object:  34,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("sm"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("sm"), op: 2},
				binding: 2,
				object:  34,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("sma"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("sma"), op: 2},
				binding: 2,
				object:  34,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("smj"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("smj"), op: 2},
				binding: 2,
				object:  34,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("smn"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("smn"), op: 2},
				binding: 2,
				object:  34,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("sms"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("sms"), op: 2},
				binding: 2,
				object:  34,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("sn"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("sn"), op: 2},
				binding: 2,
				object:  34,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("so"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("so"), op: 2},
				binding: 2,
				object:  34,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("sq"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("sq"), op: 2},
				binding: 2,
				object:  34,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("sr"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("sr"), op: 2},
				binding: 2,
				object:  34,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("ss"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("ss"), op: 2},
				binding: 2,
				object:  34,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("st"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("st"), op: 2},
				binding: 2,
				object:  34,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("su"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("su"), op: 2},
				binding: 2,
				object:  34,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("sv"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("sv"), op: 2},
				binding: 2,
				object:  34,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("sw"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("sw"), op: 2},
				binding: 2,
				object:  34,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("syr"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("syr"), op: 2},
				binding: 2,
				object:  34,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("ta"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("ta"), op: 2},
				binding: 2,
				object:  34,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("te"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("te"), op: 2},
				binding: 2,
				object:  34,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("tg"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("tg"), op: 2},
				binding: 2,
				object:  34,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("th"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("th"), op: 2},
				binding: 2,
				object:  34,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("tig"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("tig"), op: 2},
				binding: 2,
				object:  34,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("tk"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("tk"), op: 2},
				binding: 2,
				object:  34,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("tl"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("tl"), op: 2},
				binding: 2,
				object:  34,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("tn"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("tn"), op: 2},
				binding: 2,
				object:  34,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("to"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("to"), op: 2},
				binding: 2,
				object:  34,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("tr"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("tr"), op: 2},
				binding: 2,
				object:  34,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("ts"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("ts"), op: 2},
				binding: 2,
				object:  34,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("tt"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("tt"), op: 2},
				binding: 2,
				object:  34,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("tw"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("tw"), op: 2},
				binding: 2,
				object:  34,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("ty"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("ty"), op: 2},
				binding: 2,
				object:  34,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("tyv"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("tyv"), op: 2},
				binding: 2,
				object:  34,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("ug"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("ug"), op: 2},
				binding: 2,
				object:  34,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("uk"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("uk"), op: 2},
				binding: 2,
				object:  34,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("ur"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("ur"), op: 2},
				binding: 2,
				object:  34,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("uz"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("uz"), op: 2},
				binding: 2,
				object:  34,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("ve"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("ve"), op: 2},
				binding: 2,
				object:  34,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("vi"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("vi"), op: 2},
				binding: 2,
				object:  34,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("vo"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("vo"), op: 2},
				binding: 2,
				object:  34,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("vot"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("vot"), op: 2},
				binding: 2,
				object:  34,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("wa"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("wa"), op: 2},
				binding: 2,
				object:  34,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("wal"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("wal"), op: 2},
				binding: 2,
				object:  34,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("wen"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("wen"), op: 2},
				binding: 2,
				object:  34,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("wo"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("wo"), op: 2},
				binding: 2,
				object:  34,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("xh"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("xh"), op: 2},
				binding: 2,
				object:  34,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("yap"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("yap"), op: 2},
				binding: 2,
				object:  34,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("yi"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("yi"), op: 2},
				binding: 2,
				object:  34,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("yo"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("yo"), op: 2},
				binding: 2,
				object:  34,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("za"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("za"), op: 2},
				binding: 2,
				object:  34,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("zu"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("zu"), op: 2},
				binding: 2,
				object:  34,
				op:      11,
			}},
		}}, nil, nil}},
		{name: "confs/40-nonlatin.conf", description: "Set substitutions for non-Latin fonts", domain: "", subst: [matchKindEnd][]directive{{{
			tests: []ruleTest{{
				expr:   &expression{u: String("Nazli"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("serif"), op: 2},
				binding: 0,
				object:  1,
				op:      16,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Lotoos"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("serif"), op: 2},
				binding: 0,
				object:  1,
				op:      16,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Mitra"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("serif"), op: 2},
				binding: 0,
				object:  1,
				op:      16,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Ferdosi"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("serif"), op: 2},
				binding: 0,
				object:  1,
				op:      16,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Badr"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("serif"), op: 2},
				binding: 0,
				object:  1,
				op:      16,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Zar"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("serif"), op: 2},
				binding: 0,
				object:  1,
				op:      16,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Titr"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("serif"), op: 2},
				binding: 0,
				object:  1,
				op:      16,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Jadid"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("serif"), op: 2},
				binding: 0,
				object:  1,
				op:      16,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Kochi Mincho"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("serif"), op: 2},
				binding: 0,
				object:  1,
				op:      16,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("AR PL SungtiL GB"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("serif"), op: 2},
				binding: 0,
				object:  1,
				op:      16,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("AR PL Mingti2L Big5"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("serif"), op: 2},
				binding: 0,
				object:  1,
				op:      16,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("MS 明朝"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("serif"), op: 2},
				binding: 0,
				object:  1,
				op:      16,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("NanumMyeongjo"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("serif"), op: 2},
				binding: 0,
				object:  1,
				op:      16,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("UnBatang"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("serif"), op: 2},
				binding: 0,
				object:  1,
				op:      16,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Baekmuk Batang"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("serif"), op: 2},
				binding: 0,
				object:  1,
				op:      16,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("MgOpen Canonica"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("serif"), op: 2},
				binding: 0,
				object:  1,
				op:      16,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Sazanami Mincho"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("serif"), op: 2},
				binding: 0,
				object:  1,
				op:      16,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("AR PL ZenKai Uni"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("serif"), op: 2},
				binding: 0,
				object:  1,
				op:      16,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("ZYSong18030"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("serif"), op: 2},
				binding: 0,
				object:  1,
				op:      16,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("FreeSerif"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("serif"), op: 2},
				binding: 0,
				object:  1,
				op:      16,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("SimSun"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("serif"), op: 2},
				binding: 0,
				object:  1,
				op:      16,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Arshia"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("sans-serif"), op: 2},
				binding: 0,
				object:  1,
				op:      16,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Elham"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("sans-serif"), op: 2},
				binding: 0,
				object:  1,
				op:      16,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Farnaz"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("sans-serif"), op: 2},
				binding: 0,
				object:  1,
				op:      16,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Nasim"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("sans-serif"), op: 2},
				binding: 0,
				object:  1,
				op:      16,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Sina"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("sans-serif"), op: 2},
				binding: 0,
				object:  1,
				op:      16,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Roya"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("sans-serif"), op: 2},
				binding: 0,
				object:  1,
				op:      16,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Koodak"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("sans-serif"), op: 2},
				binding: 0,
				object:  1,
				op:      16,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Terafik"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("sans-serif"), op: 2},
				binding: 0,
				object:  1,
				op:      16,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Kochi Gothic"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("sans-serif"), op: 2},
				binding: 0,
				object:  1,
				op:      16,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("AR PL KaitiM GB"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("sans-serif"), op: 2},
				binding: 0,
				object:  1,
				op:      16,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("AR PL KaitiM Big5"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("sans-serif"), op: 2},
				binding: 0,
				object:  1,
				op:      16,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("MS ゴシック"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("sans-serif"), op: 2},
				binding: 0,
				object:  1,
				op:      16,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("NanumGothic"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("sans-serif"), op: 2},
				binding: 0,
				object:  1,
				op:      16,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("UnDotum"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("sans-serif"), op: 2},
				binding: 0,
				object:  1,
				op:      16,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Baekmuk Dotum"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("sans-serif"), op: 2},
				binding: 0,
				object:  1,
				op:      16,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("MgOpen Moderna"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("sans-serif"), op: 2},
				binding: 0,
				object:  1,
				op:      16,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("MgOpen Modata"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("sans-serif"), op: 2},
				binding: 0,
				object:  1,
				op:      16,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("MgOpen Cosmetica"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("sans-serif"), op: 2},
				binding: 0,
				object:  1,
				op:      16,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Sazanami Gothic"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("sans-serif"), op: 2},
				binding: 0,
				object:  1,
				op:      16,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("AR PL ShanHeiSun Uni"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("sans-serif"), op: 2},
				binding: 0,
				object:  1,
				op:      16,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("ZYSong18030"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("sans-serif"), op: 2},
				binding: 0,
				object:  1,
				op:      16,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("FreeSans"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("sans-serif"), op: 2},
				binding: 0,
				object:  1,
				op:      16,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("NSimSun"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("monospace"), op: 2},
				binding: 0,
				object:  1,
				op:      16,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("ZYSong18030"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("monospace"), op: 2},
				binding: 0,
				object:  1,
				op:      16,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("NanumGothicCoding"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("monospace"), op: 2},
				binding: 0,
				object:  1,
				op:      16,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("FreeMono"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("monospace"), op: 2},
				binding: 0,
				object:  1,
				op:      16,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Homa"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("fantasy"), op: 2},
				binding: 0,
				object:  1,
				op:      16,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Kamran"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("fantasy"), op: 2},
				binding: 0,
				object:  1,
				op:      16,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Fantezi"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("fantasy"), op: 2},
				binding: 0,
				object:  1,
				op:      16,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Tabassom"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("fantasy"), op: 2},
				binding: 0,
				object:  1,
				op:      16,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("IranNastaliq"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("cursive"), op: 2},
				binding: 0,
				object:  1,
				op:      16,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Nafees Nastaleeq"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("cursive"), op: 2},
				binding: 0,
				object:  1,
				op:      16,
			}},
		}}, nil, nil}},
		{name: "confs/45-generic.conf", description: "Set substitutions for emoji/math fonts", domain: "", subst: [matchKindEnd][]directive{{{
			tests: []ruleTest{{
				expr:   &expression{u: String("Noto Color Emoji"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("emoji"), op: 2},
				binding: 2,
				object:  1,
				op:      16,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Apple Color Emoji"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("emoji"), op: 2},
				binding: 2,
				object:  1,
				op:      16,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Segoe UI Emoji"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("emoji"), op: 2},
				binding: 2,
				object:  1,
				op:      16,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Twitter Color Emoji"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("emoji"), op: 2},
				binding: 2,
				object:  1,
				op:      16,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("EmojiOne Mozilla"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("emoji"), op: 2},
				binding: 2,
				object:  1,
				op:      16,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Emoji Two"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("emoji"), op: 2},
				binding: 2,
				object:  1,
				op:      16,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Emoji One"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("emoji"), op: 2},
				binding: 2,
				object:  1,
				op:      16,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Noto Emoji"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("emoji"), op: 2},
				binding: 2,
				object:  1,
				op:      16,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Android Emoji"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("emoji"), op: 2},
				binding: 2,
				object:  1,
				op:      16,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("emoji"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     22,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("und-zsye"), op: 2},
				binding: 0,
				object:  34,
				op:      14,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("und-zsye"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     22,
			},
				{
					expr:   &expression{u: String("emoji"), op: 2},
					kind:   0,
					qual:   1,
					object: 1,
					op:     23,
				}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("emoji"), op: 2},
				binding: 1,
				object:  1,
				op:      15,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("XITS Math"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("math"), op: 2},
				binding: 2,
				object:  1,
				op:      16,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("STIX Two Math"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("math"), op: 2},
				binding: 2,
				object:  1,
				op:      16,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Cambria Math"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("math"), op: 2},
				binding: 2,
				object:  1,
				op:      16,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Latin Modern Math"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("math"), op: 2},
				binding: 2,
				object:  1,
				op:      16,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Minion Math"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("math"), op: 2},
				binding: 2,
				object:  1,
				op:      16,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Lucida Math"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("math"), op: 2},
				binding: 2,
				object:  1,
				op:      16,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Asana Math"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("math"), op: 2},
				binding: 2,
				object:  1,
				op:      16,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("math"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     22,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("und-zmth"), op: 2},
				binding: 0,
				object:  34,
				op:      14,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("und-zmth"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     22,
			},
				{
					expr:   &expression{u: String("math"), op: 2},
					kind:   0,
					qual:   1,
					object: 1,
					op:     23,
				}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("math"), op: 2},
				binding: 1,
				object:  1,
				op:      15,
			}},
		}}, nil, nil}},
		{name: "confs/45-latin.conf", description: "Set substitutions for Latin fonts", domain: "", subst: [matchKindEnd][]directive{{{
			tests: []ruleTest{{
				expr:   &expression{u: String("Bitstream Vera Serif"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("serif"), op: 2},
				binding: 0,
				object:  1,
				op:      16,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Cambria"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("serif"), op: 2},
				binding: 0,
				object:  1,
				op:      16,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Constantia"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("serif"), op: 2},
				binding: 0,
				object:  1,
				op:      16,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("DejaVu Serif"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("serif"), op: 2},
				binding: 0,
				object:  1,
				op:      16,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Elephant"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("serif"), op: 2},
				binding: 0,
				object:  1,
				op:      16,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Garamond"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("serif"), op: 2},
				binding: 0,
				object:  1,
				op:      16,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Georgia"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("serif"), op: 2},
				binding: 0,
				object:  1,
				op:      16,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Liberation Serif"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("serif"), op: 2},
				binding: 0,
				object:  1,
				op:      16,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Luxi Serif"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("serif"), op: 2},
				binding: 0,
				object:  1,
				op:      16,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("MS Serif"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("serif"), op: 2},
				binding: 0,
				object:  1,
				op:      16,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Nimbus Roman No9 L"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("serif"), op: 2},
				binding: 0,
				object:  1,
				op:      16,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Nimbus Roman"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("serif"), op: 2},
				binding: 0,
				object:  1,
				op:      16,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Palatino Linotype"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("serif"), op: 2},
				binding: 0,
				object:  1,
				op:      16,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Thorndale AMT"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("serif"), op: 2},
				binding: 0,
				object:  1,
				op:      16,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Thorndale"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("serif"), op: 2},
				binding: 0,
				object:  1,
				op:      16,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Times New Roman"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("serif"), op: 2},
				binding: 0,
				object:  1,
				op:      16,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Times"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("serif"), op: 2},
				binding: 0,
				object:  1,
				op:      16,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Albany AMT"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("sans-serif"), op: 2},
				binding: 0,
				object:  1,
				op:      16,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Albany"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("sans-serif"), op: 2},
				binding: 0,
				object:  1,
				op:      16,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Arial Unicode MS"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("sans-serif"), op: 2},
				binding: 0,
				object:  1,
				op:      16,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Arial"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("sans-serif"), op: 2},
				binding: 0,
				object:  1,
				op:      16,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Bitstream Vera Sans"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("sans-serif"), op: 2},
				binding: 0,
				object:  1,
				op:      16,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Britannic"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("sans-serif"), op: 2},
				binding: 0,
				object:  1,
				op:      16,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Calibri"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("sans-serif"), op: 2},
				binding: 0,
				object:  1,
				op:      16,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Candara"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("sans-serif"), op: 2},
				binding: 0,
				object:  1,
				op:      16,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Century Gothic"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("sans-serif"), op: 2},
				binding: 0,
				object:  1,
				op:      16,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Corbel"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("sans-serif"), op: 2},
				binding: 0,
				object:  1,
				op:      16,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("DejaVu Sans"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("sans-serif"), op: 2},
				binding: 0,
				object:  1,
				op:      16,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Helvetica"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("sans-serif"), op: 2},
				binding: 0,
				object:  1,
				op:      16,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Haettenschweiler"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("sans-serif"), op: 2},
				binding: 0,
				object:  1,
				op:      16,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Liberation Sans"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("sans-serif"), op: 2},
				binding: 0,
				object:  1,
				op:      16,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("MS Sans Serif"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("sans-serif"), op: 2},
				binding: 0,
				object:  1,
				op:      16,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Nimbus Sans L"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("sans-serif"), op: 2},
				binding: 0,
				object:  1,
				op:      16,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Nimbus Sans"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("sans-serif"), op: 2},
				binding: 0,
				object:  1,
				op:      16,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Luxi Sans"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("sans-serif"), op: 2},
				binding: 0,
				object:  1,
				op:      16,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Tahoma"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("sans-serif"), op: 2},
				binding: 0,
				object:  1,
				op:      16,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Trebuchet MS"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("sans-serif"), op: 2},
				binding: 0,
				object:  1,
				op:      16,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Twentieth Century"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("sans-serif"), op: 2},
				binding: 0,
				object:  1,
				op:      16,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Verdana"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("sans-serif"), op: 2},
				binding: 0,
				object:  1,
				op:      16,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Andale Mono"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("monospace"), op: 2},
				binding: 0,
				object:  1,
				op:      16,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Bitstream Vera Sans Mono"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("monospace"), op: 2},
				binding: 0,
				object:  1,
				op:      16,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Consolas"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("monospace"), op: 2},
				binding: 0,
				object:  1,
				op:      16,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Courier New"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("monospace"), op: 2},
				binding: 0,
				object:  1,
				op:      16,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Courier"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("monospace"), op: 2},
				binding: 0,
				object:  1,
				op:      16,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Cumberland AMT"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("monospace"), op: 2},
				binding: 0,
				object:  1,
				op:      16,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Cumberland"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("monospace"), op: 2},
				binding: 0,
				object:  1,
				op:      16,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("DejaVu Sans Mono"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("monospace"), op: 2},
				binding: 0,
				object:  1,
				op:      16,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Fixedsys"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("monospace"), op: 2},
				binding: 0,
				object:  1,
				op:      16,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Inconsolata"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("monospace"), op: 2},
				binding: 0,
				object:  1,
				op:      16,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Liberation Mono"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("monospace"), op: 2},
				binding: 0,
				object:  1,
				op:      16,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Luxi Mono"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("monospace"), op: 2},
				binding: 0,
				object:  1,
				op:      16,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Nimbus Mono L"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("monospace"), op: 2},
				binding: 0,
				object:  1,
				op:      16,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Nimbus Mono"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("monospace"), op: 2},
				binding: 0,
				object:  1,
				op:      16,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Nimbus Mono PS"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("monospace"), op: 2},
				binding: 0,
				object:  1,
				op:      16,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Terminal"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("monospace"), op: 2},
				binding: 0,
				object:  1,
				op:      16,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Bauhaus Std"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("fantasy"), op: 2},
				binding: 0,
				object:  1,
				op:      16,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Cooper Std"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("fantasy"), op: 2},
				binding: 0,
				object:  1,
				op:      16,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Copperplate Gothic Std"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("fantasy"), op: 2},
				binding: 0,
				object:  1,
				op:      16,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Impact"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("fantasy"), op: 2},
				binding: 0,
				object:  1,
				op:      16,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Comic Sans MS"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("cursive"), op: 2},
				binding: 0,
				object:  1,
				op:      16,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("ITC Zapf Chancery Std"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("cursive"), op: 2},
				binding: 0,
				object:  1,
				op:      16,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Zapfino"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("cursive"), op: 2},
				binding: 0,
				object:  1,
				op:      16,
			}},
		}}, nil, nil}},
		{name: "confs/49-sansserif.conf", description: "Add sans-serif to the family when no generic name", domain: "", subst: [matchKindEnd][]directive{{{
			tests: []ruleTest{{
				expr:   &expression{u: String("sans-serif"), op: 2},
				kind:   0,
				qual:   1,
				object: 1,
				op:     23,
			},
				{
					expr:   &expression{u: String("serif"), op: 2},
					kind:   0,
					qual:   1,
					object: 1,
					op:     23,
				},
				{
					expr:   &expression{u: String("monospace"), op: 2},
					kind:   0,
					qual:   1,
					object: 1,
					op:     23,
				}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("sans-serif"), op: 2},
				binding: 0,
				object:  1,
				op:      16,
			}},
		}}, nil, nil}},
		{name: "confs/56-language-selector-ar.conf", description: "", domain: "", subst: [matchKindEnd][]directive{{{
			tests: []ruleTest{{
				expr:   &expression{u: String("ar"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     22,
			},
				{
					expr:   &expression{u: String("sans-serif"), op: 2},
					kind:   0,
					qual:   0,
					object: 1,
					op:     22,
				}},
			edits: []ruleEdit{{
				expr:    &expression{u: exprTree{&expression{u: String("Noto Sans"), op: 2}, &expression{u: String("Noto Sans Arabic UI"), op: 2}}, op: 36},
				binding: 0,
				object:  1,
				op:      14,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("ar"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     22,
			},
				{
					expr:   &expression{u: String("serif"), op: 2},
					kind:   0,
					qual:   0,
					object: 1,
					op:     22,
				}},
			edits: []ruleEdit{{
				expr:    &expression{u: exprTree{&expression{u: String("Noto Serif"), op: 2}, &expression{u: String("Noto Naskh Arabic"), op: 2}}, op: 36},
				binding: 0,
				object:  1,
				op:      14,
			}},
		}}, nil, nil}},
		{name: "confs/57-dejavu-sans-mono.conf", description: "", domain: "", subst: [matchKindEnd][]directive{{{
			tests: []ruleTest{{
				expr:   &expression{u: String("Bepa Mono"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("DejaVu Sans Mono"), op: 2},
				binding: 2,
				object:  1,
				op:      15,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Bitstream Prima Sans Mono"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("DejaVu Sans Mono"), op: 2},
				binding: 2,
				object:  1,
				op:      15,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Bitstream Vera Sans Mono"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("DejaVu Sans Mono"), op: 2},
				binding: 2,
				object:  1,
				op:      15,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("DejaVu LGC Sans Mono"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("DejaVu Sans Mono"), op: 2},
				binding: 2,
				object:  1,
				op:      15,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Olwen Sans Mono"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("DejaVu Sans Mono"), op: 2},
				binding: 2,
				object:  1,
				op:      15,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("SUSE Sans Mono"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("DejaVu Sans Mono"), op: 2},
				binding: 2,
				object:  1,
				op:      15,
			}},
		}}, nil, nil}},
		{name: "confs/57-dejavu-sans.conf", description: "", domain: "", subst: [matchKindEnd][]directive{{{
			tests: []ruleTest{{
				expr:   &expression{u: String("Arev Sans"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("DejaVu Sans"), op: 2},
				binding: 2,
				object:  1,
				op:      15,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Bepa"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("DejaVu Sans"), op: 2},
				binding: 2,
				object:  1,
				op:      15,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Bitstream Prima Sans"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("DejaVu Sans"), op: 2},
				binding: 2,
				object:  1,
				op:      15,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Bitstream Vera Sans"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("DejaVu Sans"), op: 2},
				binding: 2,
				object:  1,
				op:      15,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("DejaVu LGC Sans"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("DejaVu Sans"), op: 2},
				binding: 2,
				object:  1,
				op:      15,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Hunky Sans"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("DejaVu Sans"), op: 2},
				binding: 2,
				object:  1,
				op:      15,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Olwen Sans"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("DejaVu Sans"), op: 2},
				binding: 2,
				object:  1,
				op:      15,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("SUSE Sans"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("DejaVu Sans"), op: 2},
				binding: 2,
				object:  1,
				op:      15,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Verajja"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("DejaVu Sans"), op: 2},
				binding: 2,
				object:  1,
				op:      15,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("VerajjaPDA"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("DejaVu Sans"), op: 2},
				binding: 2,
				object:  1,
				op:      15,
			}},
		}}, nil, nil}},
		{name: "confs/57-dejavu-serif.conf", description: "", domain: "", subst: [matchKindEnd][]directive{{{
			tests: []ruleTest{{
				expr:   &expression{u: String("Bitstream Prima Serif"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("DejaVu Serif"), op: 2},
				binding: 2,
				object:  1,
				op:      15,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Bitstream Vera Serif"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("DejaVu Serif"), op: 2},
				binding: 2,
				object:  1,
				op:      15,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("DejaVu LGC Serif"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("DejaVu Serif"), op: 2},
				binding: 2,
				object:  1,
				op:      15,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Hunky Serif"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("DejaVu Serif"), op: 2},
				binding: 2,
				object:  1,
				op:      15,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Olwen Serif"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("DejaVu Serif"), op: 2},
				binding: 2,
				object:  1,
				op:      15,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("SUSE Serif"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("DejaVu Serif"), op: 2},
				binding: 2,
				object:  1,
				op:      15,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Verajja Serif"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("DejaVu Serif"), op: 2},
				binding: 2,
				object:  1,
				op:      15,
			}},
		}}, nil, nil}},
		{name: "confs/58-dejavu-lgc-sans-mono.conf", description: "", domain: "", subst: [matchKindEnd][]directive{{{
			tests: []ruleTest{{
				expr:   &expression{u: String("Bepa Mono"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("DejaVu LGC Sans Mono"), op: 2},
				binding: 2,
				object:  1,
				op:      15,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Bitstream Prima Sans Mono"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("DejaVu LGC Sans Mono"), op: 2},
				binding: 2,
				object:  1,
				op:      15,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Bitstream Vera Sans Mono"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("DejaVu LGC Sans Mono"), op: 2},
				binding: 2,
				object:  1,
				op:      15,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("DejaVu Sans Mono"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("DejaVu LGC Sans Mono"), op: 2},
				binding: 2,
				object:  1,
				op:      15,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Olwen Sans Mono"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("DejaVu LGC Sans Mono"), op: 2},
				binding: 2,
				object:  1,
				op:      15,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("SUSE Sans Mono"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("DejaVu LGC Sans Mono"), op: 2},
				binding: 2,
				object:  1,
				op:      15,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("DejaVu LGC Sans Mono"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("monospace"), op: 2},
				binding: 0,
				object:  1,
				op:      16,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("monospace"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("DejaVu LGC Sans Mono"), op: 2},
				binding: 0,
				object:  1,
				op:      14,
			}},
		}}, nil, nil}},
		{name: "confs/58-dejavu-lgc-sans.conf", description: "", domain: "", subst: [matchKindEnd][]directive{{{
			tests: []ruleTest{{
				expr:   &expression{u: String("Arev Sans"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("DejaVu LGC Sans"), op: 2},
				binding: 2,
				object:  1,
				op:      15,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Bepa"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("DejaVu LGC Sans"), op: 2},
				binding: 2,
				object:  1,
				op:      15,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Bitstream Prima Sans"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("DejaVu LGC Sans"), op: 2},
				binding: 2,
				object:  1,
				op:      15,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Bitstream Vera Sans"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("DejaVu LGC Sans"), op: 2},
				binding: 2,
				object:  1,
				op:      15,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("DejaVu Sans"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("DejaVu LGC Sans"), op: 2},
				binding: 2,
				object:  1,
				op:      15,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Hunky Sans"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("DejaVu LGC Sans"), op: 2},
				binding: 2,
				object:  1,
				op:      15,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Olwen Sans"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("DejaVu LGC Sans"), op: 2},
				binding: 2,
				object:  1,
				op:      15,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("SUSE Sans"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("DejaVu LGC Sans"), op: 2},
				binding: 2,
				object:  1,
				op:      15,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Verajja"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("DejaVu LGC Sans"), op: 2},
				binding: 2,
				object:  1,
				op:      15,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("VerajjaPDA"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("DejaVu LGC Sans"), op: 2},
				binding: 2,
				object:  1,
				op:      15,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("DejaVu LGC Sans"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("sans-serif"), op: 2},
				binding: 0,
				object:  1,
				op:      16,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("sans-serif"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("DejaVu LGC Sans"), op: 2},
				binding: 0,
				object:  1,
				op:      14,
			}},
		}}, nil, nil}},
		{name: "confs/58-dejavu-lgc-serif.conf", description: "", domain: "", subst: [matchKindEnd][]directive{{{
			tests: []ruleTest{{
				expr:   &expression{u: String("Bitstream Prima Serif"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("DejaVu LGC Serif"), op: 2},
				binding: 2,
				object:  1,
				op:      15,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Bitstream Vera Serif"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("DejaVu LGC Serif"), op: 2},
				binding: 2,
				object:  1,
				op:      15,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("DejaVu Serif"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("DejaVu LGC Serif"), op: 2},
				binding: 2,
				object:  1,
				op:      15,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Hunky Serif"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("DejaVu LGC Serif"), op: 2},
				binding: 2,
				object:  1,
				op:      15,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Olwen Serif"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("DejaVu LGC Serif"), op: 2},
				binding: 2,
				object:  1,
				op:      15,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("SUSE Serif"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("DejaVu LGC Serif"), op: 2},
				binding: 2,
				object:  1,
				op:      15,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Verajja Serif"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("DejaVu LGC Serif"), op: 2},
				binding: 2,
				object:  1,
				op:      15,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("DejaVu LGC Serif"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("serif"), op: 2},
				binding: 0,
				object:  1,
				op:      16,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("serif"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("DejaVu LGC Serif"), op: 2},
				binding: 0,
				object:  1,
				op:      14,
			}},
		}}, nil, nil}},
		{name: "confs/59-lohit-devanagari.conf", description: "", domain: "", subst: [matchKindEnd][]directive{{{
			tests: []ruleTest{{
				expr:   &expression{u: String("mangal"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("Lohit Devanagari"), op: 2},
				binding: 2,
				object:  1,
				op:      15,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Lohit Devanagari"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("managl"), op: 2},
				binding: 2,
				object:  1,
				op:      16,
			}},
		}}, nil, nil}},
		{name: "confs/60-generic.conf", description: "Set preferable fonts for emoji/math fonts", domain: "", subst: [matchKindEnd][]directive{{{
			tests: []ruleTest{{
				expr:   &expression{u: String("und-zsye"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     22,
			},
				{
					expr:   &expression{u: Bool(1), op: 5},
					kind:   0,
					qual:   1,
					object: 47,
					op:     23,
				},
				{
					expr:   &expression{u: Bool(0), op: 5},
					kind:   0,
					qual:   1,
					object: 47,
					op:     23,
				}},
			edits: []ruleEdit{{
				expr:    &expression{u: Bool(1), op: 5},
				binding: 0,
				object:  47,
				op:      15,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("emoji"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: exprTree{&expression{u: String("Noto Color Emoji"), op: 2}, &expression{u: exprTree{&expression{u: String("Apple Color Emoji"), op: 2}, &expression{u: exprTree{&expression{u: String("Segoe UI Emoji"), op: 2}, &expression{u: exprTree{&expression{u: String("Twitter Color Emoji"), op: 2}, &expression{u: exprTree{&expression{u: String("EmojiOne Mozilla"), op: 2}, &expression{u: exprTree{&expression{u: String("Emoji Two"), op: 2}, &expression{u: exprTree{&expression{u: String("Emoji One"), op: 2}, &expression{u: exprTree{&expression{u: String("Noto Emoji"), op: 2}, &expression{u: String("Android Emoji"), op: 2}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36},
				binding: 2,
				object:  1,
				op:      14,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("math"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: exprTree{&expression{u: String("XITS Math"), op: 2}, &expression{u: exprTree{&expression{u: String("STIX Two Math"), op: 2}, &expression{u: exprTree{&expression{u: String("Cambria Math"), op: 2}, &expression{u: exprTree{&expression{u: String("Latin Modern Math"), op: 2}, &expression{u: exprTree{&expression{u: String("Minion Math"), op: 2}, &expression{u: exprTree{&expression{u: String("Lucida Math"), op: 2}, &expression{u: String("Asana Math"), op: 2}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36},
				binding: 2,
				object:  1,
				op:      14,
			}},
		}}, nil, nil}},
		{name: "confs/60-latin.conf", description: "Set preferable fonts for Latin", domain: "", subst: [matchKindEnd][]directive{{{
			tests: []ruleTest{{
				expr:   &expression{u: String("serif"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: exprTree{&expression{u: String("DejaVu Serif"), op: 2}, &expression{u: exprTree{&expression{u: String("Bitstream Vera Serif"), op: 2}, &expression{u: exprTree{&expression{u: String("Times New Roman"), op: 2}, &expression{u: exprTree{&expression{u: String("Thorndale AMT"), op: 2}, &expression{u: exprTree{&expression{u: String("Luxi Serif"), op: 2}, &expression{u: exprTree{&expression{u: String("Nimbus Roman No9 L"), op: 2}, &expression{u: exprTree{&expression{u: String("Nimbus Roman"), op: 2}, &expression{u: String("Times"), op: 2}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36},
				binding: 0,
				object:  1,
				op:      14,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("sans-serif"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: exprTree{&expression{u: String("DejaVu Sans"), op: 2}, &expression{u: exprTree{&expression{u: String("Bitstream Vera Sans"), op: 2}, &expression{u: exprTree{&expression{u: String("Verdana"), op: 2}, &expression{u: exprTree{&expression{u: String("Arial"), op: 2}, &expression{u: exprTree{&expression{u: String("Albany AMT"), op: 2}, &expression{u: exprTree{&expression{u: String("Luxi Sans"), op: 2}, &expression{u: exprTree{&expression{u: String("Nimbus Sans L"), op: 2}, &expression{u: exprTree{&expression{u: String("Nimbus Sans"), op: 2}, &expression{u: exprTree{&expression{u: String("Helvetica"), op: 2}, &expression{u: exprTree{&expression{u: String("Lucida Sans Unicode"), op: 2}, &expression{u: exprTree{&expression{u: String("BPG Glaho International"), op: 2}, &expression{u: String("Tahoma"), op: 2}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36},
				binding: 0,
				object:  1,
				op:      14,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("monospace"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: exprTree{&expression{u: String("DejaVu Sans Mono"), op: 2}, &expression{u: exprTree{&expression{u: String("Bitstream Vera Sans Mono"), op: 2}, &expression{u: exprTree{&expression{u: String("Inconsolata"), op: 2}, &expression{u: exprTree{&expression{u: String("Andale Mono"), op: 2}, &expression{u: exprTree{&expression{u: String("Courier New"), op: 2}, &expression{u: exprTree{&expression{u: String("Cumberland AMT"), op: 2}, &expression{u: exprTree{&expression{u: String("Luxi Mono"), op: 2}, &expression{u: exprTree{&expression{u: String("Nimbus Mono L"), op: 2}, &expression{u: exprTree{&expression{u: String("Nimbus Mono"), op: 2}, &expression{u: exprTree{&expression{u: String("Nimbus Mono PS"), op: 2}, &expression{u: String("Courier"), op: 2}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36},
				binding: 0,
				object:  1,
				op:      14,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("fantasy"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: exprTree{&expression{u: String("Impact"), op: 2}, &expression{u: exprTree{&expression{u: String("Copperplate Gothic Std"), op: 2}, &expression{u: exprTree{&expression{u: String("Cooper Std"), op: 2}, &expression{u: String("Bauhaus Std"), op: 2}}, op: 36}}, op: 36}}, op: 36},
				binding: 0,
				object:  1,
				op:      14,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("cursive"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: exprTree{&expression{u: String("ITC Zapf Chancery Std"), op: 2}, &expression{u: exprTree{&expression{u: String("Zapfino"), op: 2}, &expression{u: String("Comic Sans MS"), op: 2}}, op: 36}}, op: 36},
				binding: 0,
				object:  1,
				op:      14,
			}},
		}}, nil, nil}},
		{name: "confs/61-urw-bookman.conf", description: "", domain: "", subst: [matchKindEnd][]directive{{{
			tests: []ruleTest{{
				expr:   &expression{u: String("serif"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("URW Bookman"), op: 2},
				binding: 0,
				object:  1,
				op:      14,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("URW Bookman"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("serif"), op: 2},
				binding: 0,
				object:  1,
				op:      16,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("URW Bookman"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("ITC Bookman"), op: 2},
				binding: 2,
				object:  1,
				op:      16,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("ITC Bookman"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("URW Bookman"), op: 2},
				binding: 2,
				object:  1,
				op:      15,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Bookman Old Style"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("URW Bookman"), op: 2},
				binding: 2,
				object:  1,
				op:      15,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("TeX Gyre Bonum"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("URW Bookman"), op: 2},
				binding: 2,
				object:  1,
				op:      15,
			}},
		}}, nil, nil}},
		{name: "confs/61-urw-c059.conf", description: "", domain: "", subst: [matchKindEnd][]directive{{{
			tests: []ruleTest{{
				expr:   &expression{u: String("serif"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("C059"), op: 2},
				binding: 0,
				object:  1,
				op:      14,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("C059"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("serif"), op: 2},
				binding: 0,
				object:  1,
				op:      16,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("C059"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("New Century Schoolbook"), op: 2},
				binding: 2,
				object:  1,
				op:      16,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("New Century Schoolbook"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("C059"), op: 2},
				binding: 2,
				object:  1,
				op:      15,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Century Schoolbook"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("C059"), op: 2},
				binding: 2,
				object:  1,
				op:      15,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Tex Gyre Schola"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("C059"), op: 2},
				binding: 2,
				object:  1,
				op:      15,
			}},
		}}, nil, nil}},
		{name: "confs/61-urw-d050000l.conf", description: "", domain: "", subst: [matchKindEnd][]directive{{{
			tests: []ruleTest{{
				expr:   &expression{u: String("fantasy"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("D050000L"), op: 2},
				binding: 0,
				object:  1,
				op:      14,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("D050000L"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("fantasy"), op: 2},
				binding: 0,
				object:  1,
				op:      16,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("D050000L"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("ITC Zapf Dingbats"), op: 2},
				binding: 2,
				object:  1,
				op:      16,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("ITC Zapf Dingbats"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("D050000L"), op: 2},
				binding: 2,
				object:  1,
				op:      15,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("ITC Zapf Dingbats Std"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("D050000L"), op: 2},
				binding: 2,
				object:  1,
				op:      15,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Zapf Dingbats"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("D050000L"), op: 2},
				binding: 2,
				object:  1,
				op:      15,
			}},
		}}, nil, nil}},
		{name: "confs/61-urw-fallback-backwards.conf", description: "", domain: "", subst: [matchKindEnd][]directive{{{
			tests: []ruleTest{{
				expr:   &expression{u: String("Century Schoolbook L"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("C059"), op: 2},
				binding: 2,
				object:  1,
				op:      15,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Century SchoolBook URW"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("C059"), op: 2},
				binding: 2,
				object:  1,
				op:      15,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Dingbats"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("D050000L"), op: 2},
				binding: 2,
				object:  1,
				op:      15,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Nimbus Mono"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("Nimbus Mono PS"), op: 2},
				binding: 2,
				object:  1,
				op:      15,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Nimbus Mono L"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("Nimbus Mono PS"), op: 2},
				binding: 2,
				object:  1,
				op:      15,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Nimbus Roman No9 L"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("Nimbus Roman"), op: 2},
				binding: 2,
				object:  1,
				op:      15,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Nimbus Sans L"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("Nimbus Sans"), op: 2},
				binding: 2,
				object:  1,
				op:      15,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Palladio URW"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("P052"), op: 2},
				binding: 2,
				object:  1,
				op:      15,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("URW Palladio L"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("P052"), op: 2},
				binding: 2,
				object:  1,
				op:      15,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Standard Symbols L"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("Standard Symbols PS"), op: 2},
				binding: 2,
				object:  1,
				op:      15,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Bookman URW"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("URW Bookman"), op: 2},
				binding: 2,
				object:  1,
				op:      15,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("URW Bookman L"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("URW Bookman"), op: 2},
				binding: 2,
				object:  1,
				op:      15,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("URW Gothic L"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("URW Gothic"), op: 2},
				binding: 2,
				object:  1,
				op:      15,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Chancery URW"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("Z003"), op: 2},
				binding: 2,
				object:  1,
				op:      15,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("URW Chancery L"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("Z003"), op: 2},
				binding: 2,
				object:  1,
				op:      15,
			}},
		}}, nil, nil}},
		{name: "confs/61-urw-fallback-generics.conf", description: "", domain: "", subst: [matchKindEnd][]directive{{{
			tests: []ruleTest{{
				expr:   &expression{u: String("Courier"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: exprTree{&expression{u: String("Nimbus Mono"), op: 2}, &expression{u: String("Nimbus Mono L"), op: 2}}, op: 36},
				binding: 2,
				object:  1,
				op:      15,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Helvetica"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("Nimbus Sans L"), op: 2},
				binding: 2,
				object:  1,
				op:      15,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("ITC Avant Garde Gothic"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("URW Gothic L"), op: 2},
				binding: 2,
				object:  1,
				op:      15,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("ITC Bookman"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: exprTree{&expression{u: String("Bookman URW"), op: 2}, &expression{u: String("URW Bookman L"), op: 2}}, op: 36},
				binding: 2,
				object:  1,
				op:      15,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("ITC Zapf Chancery"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: exprTree{&expression{u: String("Chancery URW"), op: 2}, &expression{u: String("URW Chancery L"), op: 2}}, op: 36},
				binding: 2,
				object:  1,
				op:      15,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("ITC Zapf Dingbats"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("Dingbats"), op: 2},
				binding: 2,
				object:  1,
				op:      15,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("New Century Schoolbook"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: exprTree{&expression{u: String("Century Schoolbook L"), op: 2}, &expression{u: String("Century SchoolBook URW"), op: 2}}, op: 36},
				binding: 2,
				object:  1,
				op:      15,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Palatino"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: exprTree{&expression{u: String("Palladio URW"), op: 2}, &expression{u: String("URW Palladio L"), op: 2}}, op: 36},
				binding: 2,
				object:  1,
				op:      15,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Symbol"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("Standard Symbols L"), op: 2},
				binding: 2,
				object:  1,
				op:      15,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Times"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("Nimbus Roman No9 L"), op: 2},
				binding: 2,
				object:  1,
				op:      15,
			}},
		}}, nil, nil}},
		{name: "confs/61-urw-gothic.conf", description: "", domain: "", subst: [matchKindEnd][]directive{{{
			tests: []ruleTest{{
				expr:   &expression{u: String("sans-serif"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("URW Gothic"), op: 2},
				binding: 0,
				object:  1,
				op:      14,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("URW Gothic"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("sans-serif"), op: 2},
				binding: 0,
				object:  1,
				op:      16,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("URW Gothic"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("ITC Avant Garde Gothic"), op: 2},
				binding: 2,
				object:  1,
				op:      16,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("ITC Avant Garde Gothic"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("URW Gothic"), op: 2},
				binding: 2,
				object:  1,
				op:      15,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("TeX Gyre Adventor"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("URW Gothic"), op: 2},
				binding: 2,
				object:  1,
				op:      15,
			}},
		}}, nil, nil}},
		{name: "confs/61-urw-nimbus-mono-ps.conf", description: "", domain: "", subst: [matchKindEnd][]directive{{{
			tests: []ruleTest{{
				expr:   &expression{u: String("monospace"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("Nimbus Mono PS"), op: 2},
				binding: 0,
				object:  1,
				op:      14,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Nimbus Mono PS"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("monospace"), op: 2},
				binding: 0,
				object:  1,
				op:      16,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Nimbus Mono PS"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("Courier"), op: 2},
				binding: 2,
				object:  1,
				op:      16,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Courier"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("Nimbus Mono PS"), op: 2},
				binding: 2,
				object:  1,
				op:      15,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("TeX Gyre Cursor"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("Nimbus Mono PS"), op: 2},
				binding: 2,
				object:  1,
				op:      15,
			}},
		}}, nil, nil}},
		{name: "confs/61-urw-nimbus-roman.conf", description: "", domain: "", subst: [matchKindEnd][]directive{{{
			tests: []ruleTest{{
				expr:   &expression{u: String("serif"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("Nimbus Roman"), op: 2},
				binding: 0,
				object:  1,
				op:      14,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Nimbus Roman"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("serif"), op: 2},
				binding: 0,
				object:  1,
				op:      16,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Nimbus Roman"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("Times"), op: 2},
				binding: 2,
				object:  1,
				op:      16,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Times"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("Nimbus Roman"), op: 2},
				binding: 2,
				object:  1,
				op:      15,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("TeX Gyre Termes"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("Nimbus Roman"), op: 2},
				binding: 2,
				object:  1,
				op:      15,
			}},
		}}, nil, nil}},
		{name: "confs/61-urw-nimbus-sans.conf", description: "", domain: "", subst: [matchKindEnd][]directive{{{
			tests: []ruleTest{{
				expr:   &expression{u: String("sans-serif"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("Nimbus Sans"), op: 2},
				binding: 0,
				object:  1,
				op:      14,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("sans-serif"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("Nimbus Sans Narrow"), op: 2},
				binding: 0,
				object:  1,
				op:      14,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Nimbus Sans"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("sans-serif"), op: 2},
				binding: 0,
				object:  1,
				op:      16,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Nimbus Sans Narrow"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("sans-serif"), op: 2},
				binding: 0,
				object:  1,
				op:      16,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Nimbus Sans"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("Helvetica"), op: 2},
				binding: 2,
				object:  1,
				op:      16,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Nimbus Sans Narrow"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("Helvetica Narrow"), op: 2},
				binding: 2,
				object:  1,
				op:      16,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Helvetica"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("Nimbus Sans"), op: 2},
				binding: 2,
				object:  1,
				op:      15,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Helvetica Narrow"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("Nimbus Sans Narrow"), op: 2},
				binding: 2,
				object:  1,
				op:      15,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("TeX Gyre Heros"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("Nimbus Sans"), op: 2},
				binding: 2,
				object:  1,
				op:      15,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("TeX Gyre Heros Cn"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("Nimbus Sans Narrow"), op: 2},
				binding: 2,
				object:  1,
				op:      15,
			}},
		}}, nil, nil}},
		{name: "confs/61-urw-p052.conf", description: "", domain: "", subst: [matchKindEnd][]directive{{{
			tests: []ruleTest{{
				expr:   &expression{u: String("serif"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("P052"), op: 2},
				binding: 0,
				object:  1,
				op:      14,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("P052"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("serif"), op: 2},
				binding: 0,
				object:  1,
				op:      16,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("P052"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("Palatino"), op: 2},
				binding: 2,
				object:  1,
				op:      16,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Palatino"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("P052"), op: 2},
				binding: 2,
				object:  1,
				op:      15,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Palatino Linotype"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("P052"), op: 2},
				binding: 2,
				object:  1,
				op:      15,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Tex Gyre Pagella"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("P052"), op: 2},
				binding: 2,
				object:  1,
				op:      15,
			}},
		}}, nil, nil}},
		{name: "confs/61-urw-standard-symbols-ps.conf", description: "", domain: "", subst: [matchKindEnd][]directive{{{
			tests: []ruleTest{{
				expr:   &expression{u: String("serif"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("Standard Symbols PS"), op: 2},
				binding: 0,
				object:  1,
				op:      14,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Standard Symbols PS"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("serif"), op: 2},
				binding: 0,
				object:  1,
				op:      16,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Standard Symbols PS"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("Symbol"), op: 2},
				binding: 2,
				object:  1,
				op:      16,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Symbol"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("Standard Symbols PS"), op: 2},
				binding: 2,
				object:  1,
				op:      15,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("SymbolNeu"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("Standard Symbols PS"), op: 2},
				binding: 2,
				object:  1,
				op:      15,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Symbol Neu for Powerline"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("Standard Symbols PS"), op: 2},
				binding: 2,
				object:  1,
				op:      15,
			}},
		}}, nil, nil}},
		{name: "confs/61-urw-z003.conf", description: "", domain: "", subst: [matchKindEnd][]directive{{{
			tests: []ruleTest{{
				expr:   &expression{u: String("cursive"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("Z003"), op: 2},
				binding: 0,
				object:  1,
				op:      14,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Z003"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("cursive"), op: 2},
				binding: 0,
				object:  1,
				op:      16,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Z003"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("ITC Zapf Chancery"), op: 2},
				binding: 2,
				object:  1,
				op:      16,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("ITC Zapf Chancery"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("Z003"), op: 2},
				binding: 2,
				object:  1,
				op:      15,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("TeX Gyre Chorus"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("Z003"), op: 2},
				binding: 2,
				object:  1,
				op:      15,
			}},
		}}, nil, nil}},
		{name: "confs/64-01-tlwg-kinnari.conf", description: "", domain: "", subst: [matchKindEnd][]directive{{{
			tests: []ruleTest{{
				expr:   &expression{u: String("serif"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("Kinnari"), op: 2},
				binding: 0,
				object:  1,
				op:      14,
			}},
		}}, nil, nil}},
		{name: "confs/64-02-tlwg-norasi.conf", description: "", domain: "", subst: [matchKindEnd][]directive{{{
			tests: []ruleTest{{
				expr:   &expression{u: String("serif"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("Norasi"), op: 2},
				binding: 0,
				object:  1,
				op:      14,
			}},
		}}, nil, nil}},
		{name: "confs/64-10-tlwg-loma.conf", description: "", domain: "", subst: [matchKindEnd][]directive{{{
			tests: []ruleTest{{
				expr:   &expression{u: String("sans-serif"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("Loma"), op: 2},
				binding: 0,
				object:  1,
				op:      14,
			}},
		}}, nil, nil}},
		{name: "confs/64-11-tlwg-waree.conf", description: "", domain: "", subst: [matchKindEnd][]directive{{{
			tests: []ruleTest{{
				expr:   &expression{u: String("sans-serif"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("Waree"), op: 2},
				binding: 0,
				object:  1,
				op:      14,
			}},
		}}, nil, nil}},
		{name: "confs/64-13-tlwg-garuda.conf", description: "", domain: "", subst: [matchKindEnd][]directive{{{
			tests: []ruleTest{{
				expr:   &expression{u: String("sans-serif"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("Garuda"), op: 2},
				binding: 0,
				object:  1,
				op:      14,
			}},
		}}, nil, nil}},
		{name: "confs/64-14-tlwg-umpush.conf", description: "", domain: "", subst: [matchKindEnd][]directive{{{
			tests: []ruleTest{{
				expr:   &expression{u: String("sans-serif"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("Umpush"), op: 2},
				binding: 0,
				object:  1,
				op:      14,
			}},
		}}, nil, nil}},
		{name: "confs/64-15-laksaman.conf", description: "", domain: "", subst: [matchKindEnd][]directive{{{
			tests: []ruleTest{{
				expr:   &expression{u: String("sans-serif"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("Laksaman"), op: 2},
				binding: 0,
				object:  1,
				op:      14,
			}},
		}}, nil, nil}},
		{name: "confs/64-21-tlwg-typo.conf", description: "", domain: "", subst: [matchKindEnd][]directive{{{
			tests: []ruleTest{{
				expr:   &expression{u: String("monospace"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("TlwgTypo"), op: 2},
				binding: 0,
				object:  1,
				op:      14,
			}},
		}}, nil, nil}},
		{name: "confs/64-22-tlwg-typist.conf", description: "", domain: "", subst: [matchKindEnd][]directive{{{
			tests: []ruleTest{{
				expr:   &expression{u: String("monospace"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("TlwgTypist"), op: 2},
				binding: 0,
				object:  1,
				op:      14,
			}},
		}}, nil, nil}},
		{name: "confs/64-23-tlwg-mono.conf", description: "", domain: "", subst: [matchKindEnd][]directive{{{
			tests: []ruleTest{{
				expr:   &expression{u: String("monospace"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("TlwgMono"), op: 2},
				binding: 0,
				object:  1,
				op:      14,
			}},
		}}, nil, nil}},
		{name: "confs/64-language-selector-prefer.conf", description: "", domain: "", subst: [matchKindEnd][]directive{{{
			tests: []ruleTest{{
				expr:   &expression{u: String("sans-serif"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: exprTree{&expression{u: String("Noto Sans CJK JP"), op: 2}, &expression{u: exprTree{&expression{u: String("Noto Sans CJK KR"), op: 2}, &expression{u: exprTree{&expression{u: String("Noto Sans CJK SC"), op: 2}, &expression{u: exprTree{&expression{u: String("Noto Sans CJK TC"), op: 2}, &expression{u: exprTree{&expression{u: String("Noto Sans CJK HK"), op: 2}, &expression{u: String("Lohit Devanagari"), op: 2}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36},
				binding: 0,
				object:  1,
				op:      14,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("serif"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: exprTree{&expression{u: String("Noto Serif CJK JP"), op: 2}, &expression{u: exprTree{&expression{u: String("Noto Serif CJK KR"), op: 2}, &expression{u: exprTree{&expression{u: String("Noto Serif CJK SC"), op: 2}, &expression{u: exprTree{&expression{u: String("Noto Serif CJK TC"), op: 2}, &expression{u: String("Lohit Devanagari"), op: 2}}, op: 36}}, op: 36}}, op: 36}}, op: 36},
				binding: 0,
				object:  1,
				op:      14,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("monospace"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: exprTree{&expression{u: String("Noto Sans Mono CJK JP"), op: 2}, &expression{u: exprTree{&expression{u: String("Noto Sans Mono CJK KR"), op: 2}, &expression{u: exprTree{&expression{u: String("Noto Sans Mono CJK SC"), op: 2}, &expression{u: exprTree{&expression{u: String("Noto Sans Mono CJK TC"), op: 2}, &expression{u: String("Noto Sans Mono CJK HK"), op: 2}}, op: 36}}, op: 36}}, op: 36}}, op: 36},
				binding: 0,
				object:  1,
				op:      14,
			}},
		}}, nil, nil}},
		{name: "confs/65-0-fonts-beng-extra.conf", description: "", domain: "", subst: [matchKindEnd][]directive{{{
			tests: []ruleTest{{
				expr:   &expression{u: String("bn"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			},
				{
					expr:   &expression{u: String("sans-serif"), op: 2},
					kind:   0,
					qual:   0,
					object: 1,
					op:     22,
				}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("Lohit Bengali"), op: 2},
				binding: 2,
				object:  1,
				op:      15,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("bn"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			},
				{
					expr:   &expression{u: String("serif"), op: 2},
					kind:   0,
					qual:   0,
					object: 1,
					op:     22,
				}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("MuktiNarrow"), op: 2},
				binding: 2,
				object:  1,
				op:      15,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("as"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			},
				{
					expr:   &expression{u: String("sans-serif"), op: 2},
					kind:   0,
					qual:   0,
					object: 1,
					op:     22,
				}},
			edits: []ruleEdit{{
				expr:    &expression{u: exprTree{&expression{u: String("Lohit Assamese"), op: 2}, &expression{u: String("Lohit Bengali"), op: 2}}, op: 36},
				binding: 2,
				object:  1,
				op:      15,
			}},
		}}, nil, nil}},
		{name: "confs/65-0-fonts-deva-extra.conf", description: "", domain: "", subst: [matchKindEnd][]directive{nil, {{
			tests: []ruleTest{{
				expr:   &expression{u: String("hi"), op: 2},
				kind:   1,
				qual:   0,
				object: 34,
				op:     24,
			},
				{
					expr:   &expression{u: String("sans-serif"), op: 2},
					kind:   1,
					qual:   0,
					object: 1,
					op:     22,
				}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("gargi"), op: 2},
				binding: 2,
				object:  1,
				op:      15,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("hi"), op: 2},
				kind:   1,
				qual:   0,
				object: 34,
				op:     24,
			},
				{
					expr:   &expression{u: String("serif"), op: 2},
					kind:   1,
					qual:   0,
					object: 1,
					op:     22,
				}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("Lohit Hindi"), op: 2},
				binding: 2,
				object:  1,
				op:      15,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("mr"), op: 2},
				kind:   1,
				qual:   0,
				object: 34,
				op:     24,
			},
				{
					expr:   &expression{u: String("sans-serif"), op: 2},
					kind:   1,
					qual:   0,
					object: 1,
					op:     22,
				}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("gargi"), op: 2},
				binding: 2,
				object:  1,
				op:      15,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("mr"), op: 2},
				kind:   1,
				qual:   0,
				object: 34,
				op:     24,
			},
				{
					expr:   &expression{u: String("serif"), op: 2},
					kind:   1,
					qual:   0,
					object: 1,
					op:     22,
				}},
			edits: []ruleEdit{{
				expr:    &expression{u: exprTree{&expression{u: String("Lohit Marathi"), op: 2}, &expression{u: String("Lohit Hindi"), op: 2}}, op: 36},
				binding: 2,
				object:  1,
				op:      15,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("mai"), op: 2},
				kind:   1,
				qual:   0,
				object: 34,
				op:     24,
			},
				{
					expr:   &expression{u: String("sans-serif"), op: 2},
					kind:   1,
					qual:   0,
					object: 1,
					op:     22,
				}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("gargi"), op: 2},
				binding: 2,
				object:  1,
				op:      15,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("mai"), op: 2},
				kind:   1,
				qual:   0,
				object: 34,
				op:     24,
			},
				{
					expr:   &expression{u: String("serif"), op: 2},
					kind:   1,
					qual:   0,
					object: 1,
					op:     22,
				}},
			edits: []ruleEdit{{
				expr:    &expression{u: exprTree{&expression{u: String("Lohit Maithili"), op: 2}, &expression{u: String("Lohit Hindi"), op: 2}}, op: 36},
				binding: 2,
				object:  1,
				op:      15,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("ne"), op: 2},
				kind:   1,
				qual:   0,
				object: 34,
				op:     24,
			},
				{
					expr:   &expression{u: String("sans-serif"), op: 2},
					kind:   1,
					qual:   0,
					object: 1,
					op:     22,
				}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("gargi"), op: 2},
				binding: 2,
				object:  1,
				op:      15,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("ne"), op: 2},
				kind:   1,
				qual:   0,
				object: 34,
				op:     24,
			},
				{
					expr:   &expression{u: String("serif"), op: 2},
					kind:   1,
					qual:   0,
					object: 1,
					op:     22,
				}},
			edits: []ruleEdit{{
				expr:    &expression{u: exprTree{&expression{u: String("Lohit Nepali"), op: 2}, &expression{u: String("Lohit Hindi"), op: 2}}, op: 36},
				binding: 2,
				object:  1,
				op:      15,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("kok"), op: 2},
				kind:   1,
				qual:   0,
				object: 34,
				op:     24,
			},
				{
					expr:   &expression{u: String("sans-serif"), op: 2},
					kind:   1,
					qual:   0,
					object: 1,
					op:     22,
				}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("gargi"), op: 2},
				binding: 2,
				object:  1,
				op:      15,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("kok"), op: 2},
				kind:   1,
				qual:   0,
				object: 34,
				op:     24,
			},
				{
					expr:   &expression{u: String("serif"), op: 2},
					kind:   1,
					qual:   0,
					object: 1,
					op:     22,
				}},
			edits: []ruleEdit{{
				expr:    &expression{u: exprTree{&expression{u: String("Lohit Konkani"), op: 2}, &expression{u: String("Lohit Hindi"), op: 2}}, op: 36},
				binding: 2,
				object:  1,
				op:      15,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("ks"), op: 2},
				kind:   1,
				qual:   0,
				object: 34,
				op:     24,
			},
				{
					expr:   &expression{u: String("sans-serif"), op: 2},
					kind:   1,
					qual:   0,
					object: 1,
					op:     22,
				}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("gargi"), op: 2},
				binding: 2,
				object:  1,
				op:      15,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("ks"), op: 2},
				kind:   1,
				qual:   0,
				object: 34,
				op:     24,
			},
				{
					expr:   &expression{u: String("serif"), op: 2},
					kind:   1,
					qual:   0,
					object: 1,
					op:     22,
				}},
			edits: []ruleEdit{{
				expr:    &expression{u: exprTree{&expression{u: String("Lohit Kashmiri"), op: 2}, &expression{u: String("Lohit Hindi"), op: 2}}, op: 36},
				binding: 2,
				object:  1,
				op:      15,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("sn"), op: 2},
				kind:   1,
				qual:   0,
				object: 34,
				op:     24,
			},
				{
					expr:   &expression{u: String("sans-serif"), op: 2},
					kind:   1,
					qual:   0,
					object: 1,
					op:     22,
				}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("gargi"), op: 2},
				binding: 2,
				object:  1,
				op:      15,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("sn"), op: 2},
				kind:   1,
				qual:   0,
				object: 34,
				op:     24,
			},
				{
					expr:   &expression{u: String("serif"), op: 2},
					kind:   1,
					qual:   0,
					object: 1,
					op:     22,
				}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("Lohit Hindi"), op: 2},
				binding: 2,
				object:  1,
				op:      15,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("sd"), op: 2},
				kind:   1,
				qual:   0,
				object: 34,
				op:     24,
			},
				{
					expr:   &expression{u: String("sans-serif"), op: 2},
					kind:   1,
					qual:   0,
					object: 1,
					op:     22,
				}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("gargi"), op: 2},
				binding: 2,
				object:  1,
				op:      15,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("sd"), op: 2},
				kind:   1,
				qual:   0,
				object: 34,
				op:     24,
			},
				{
					expr:   &expression{u: String("serif"), op: 2},
					kind:   1,
					qual:   0,
					object: 1,
					op:     22,
				}},
			edits: []ruleEdit{{
				expr:    &expression{u: exprTree{&expression{u: String("Lohit Sindhi"), op: 2}, &expression{u: String("Lohit Hindi"), op: 2}}, op: 36},
				binding: 2,
				object:  1,
				op:      15,
			}},
		}}, nil}},
		{name: "confs/65-0-fonts-gubbi.conf", description: "", domain: "", subst: [matchKindEnd][]directive{nil, {{
			tests: []ruleTest{{
				expr:   &expression{u: String("kn"), op: 2},
				kind:   1,
				qual:   0,
				object: 34,
				op:     24,
			},
				{
					expr:   &expression{u: String("serif"), op: 2},
					kind:   1,
					qual:   0,
					object: 1,
					op:     22,
				}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("Gubbi"), op: 2},
				binding: 2,
				object:  1,
				op:      15,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("kn"), op: 2},
				kind:   1,
				qual:   0,
				object: 34,
				op:     24,
			},
				{
					expr:   &expression{u: String("sans-serif"), op: 2},
					kind:   1,
					qual:   0,
					object: 1,
					op:     22,
				}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("Lohit Kannada"), op: 2},
				binding: 2,
				object:  1,
				op:      15,
			}},
		}}, nil}},
		{name: "confs/65-0-fonts-gujr-extra.conf", description: "", domain: "", subst: [matchKindEnd][]directive{nil, {{
			tests: []ruleTest{{
				expr:   &expression{u: String("gu"), op: 2},
				kind:   1,
				qual:   0,
				object: 34,
				op:     24,
			},
				{
					expr:   &expression{u: String("sans-serif"), op: 2},
					kind:   1,
					qual:   0,
					object: 1,
					op:     22,
				}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("Rekha"), op: 2},
				binding: 2,
				object:  1,
				op:      15,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("gu"), op: 2},
				kind:   1,
				qual:   0,
				object: 34,
				op:     24,
			},
				{
					expr:   &expression{u: String("serif"), op: 2},
					kind:   1,
					qual:   0,
					object: 1,
					op:     22,
				}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("Lohit Gujarati"), op: 2},
				binding: 2,
				object:  1,
				op:      15,
			}},
		}}, nil}},
		{name: "confs/65-0-fonts-guru-extra.conf", description: "", domain: "", subst: [matchKindEnd][]directive{{{
			tests: []ruleTest{{
				expr:   &expression{u: String("pa"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			},
				{
					expr:   &expression{u: String("sans-serif"), op: 2},
					kind:   0,
					qual:   0,
					object: 1,
					op:     22,
				}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("Saab"), op: 2},
				binding: 2,
				object:  1,
				op:      15,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("pa"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			},
				{
					expr:   &expression{u: String("serif"), op: 2},
					kind:   0,
					qual:   0,
					object: 1,
					op:     22,
				}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("Lohit Punjabi"), op: 2},
				binding: 2,
				object:  1,
				op:      15,
			}},
		}}, nil, nil}},
		{name: "confs/65-0-fonts-orya-extra.conf", description: "", domain: "", subst: [matchKindEnd][]directive{{{
			tests: []ruleTest{{
				expr:   &expression{u: String("or"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			},
				{
					expr:   &expression{u: String("sans-serif"), op: 2},
					kind:   0,
					qual:   0,
					object: 1,
					op:     22,
				}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("utkal"), op: 2},
				binding: 2,
				object:  1,
				op:      15,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("or"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			},
				{
					expr:   &expression{u: String("serif"), op: 2},
					kind:   0,
					qual:   0,
					object: 1,
					op:     22,
				}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("utkal"), op: 2},
				binding: 2,
				object:  1,
				op:      15,
			}},
		}}, nil, nil}},
		{name: "confs/65-0-fonts-pagul.conf", description: "", domain: "", subst: [matchKindEnd][]directive{nil, {{
			tests: []ruleTest{{
				expr:   &expression{u: String("saz"), op: 2},
				kind:   1,
				qual:   0,
				object: 34,
				op:     24,
			},
				{
					expr:   &expression{u: String("sans-serif"), op: 2},
					kind:   1,
					qual:   0,
					object: 1,
					op:     22,
				}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("Pagul"), op: 2},
				binding: 2,
				object:  1,
				op:      15,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("saz"), op: 2},
				kind:   1,
				qual:   0,
				object: 34,
				op:     24,
			},
				{
					expr:   &expression{u: String("serif"), op: 2},
					kind:   1,
					qual:   0,
					object: 1,
					op:     22,
				}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("Pagul"), op: 2},
				binding: 2,
				object:  1,
				op:      15,
			}},
		}}, nil}},
		{name: "confs/65-0-fonts-telu-extra.conf", description: "", domain: "", subst: [matchKindEnd][]directive{{{
			tests: []ruleTest{{
				expr:   &expression{u: String("te"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			},
				{
					expr:   &expression{u: String("sans-serif"), op: 2},
					kind:   0,
					qual:   0,
					object: 1,
					op:     22,
				}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("lohit_te"), op: 2},
				binding: 2,
				object:  1,
				op:      15,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("te"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			},
				{
					expr:   &expression{u: String("serif"), op: 2},
					kind:   0,
					qual:   0,
					object: 1,
					op:     22,
				}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("Vemana"), op: 2},
				binding: 2,
				object:  1,
				op:      15,
			}},
		}}, nil, nil}},
		{name: "confs/65-0-smc-meera.conf", description: "", domain: "", subst: [matchKindEnd][]directive{{{
			tests: []ruleTest{{
				expr:   &expression{u: String("ml"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			},
				{
					expr:   &expression{u: String("sans-serif"), op: 2},
					kind:   0,
					qual:   0,
					object: 1,
					op:     22,
				}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("Meera"), op: 2},
				binding: 0,
				object:  1,
				op:      14,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Meera"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("sans-serif"), op: 2},
				binding: 0,
				object:  1,
				op:      16,
			}},
		}}, nil, nil}},
		{name: "confs/65-0-smc-rachana.conf", description: "", domain: "", subst: [matchKindEnd][]directive{{{
			tests: []ruleTest{{
				expr:   &expression{u: String("ml"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			},
				{
					expr:   &expression{u: String("serif"), op: 2},
					kind:   0,
					qual:   0,
					object: 1,
					op:     22,
				}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("Rachana"), op: 2},
				binding: 0,
				object:  1,
				op:      14,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Rachana"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("serif"), op: 2},
				binding: 0,
				object:  1,
				op:      16,
			}},
		}}, nil, nil}},
		{name: "confs/65-droid-sans-fallback.conf", description: "", domain: "", subst: [matchKindEnd][]directive{{{
			tests: []ruleTest{{
				expr:   &expression{u: String("sans-serif"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("Droid Sans Fallback"), op: 2},
				binding: 0,
				object:  1,
				op:      14,
			}},
		}}, nil, nil}},
		{name: "confs/65-fonts-lmodern.conf", description: "", domain: "", subst: [matchKindEnd][]directive{nil, nil, nil}},
		{name: "confs/65-fonts-persian.conf", description: "", domain: "", subst: [matchKindEnd][]directive{{{
			tests: []ruleTest{{
				expr:   &expression{u: String("Nesf"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("Nesf2"), op: 2},
				binding: 2,
				object:  1,
				op:      15,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Nesf2"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("Persian_sansserif_default"), op: 2},
				binding: 2,
				object:  1,
				op:      15,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Nazanin"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("Nazli"), op: 2},
				binding: 2,
				object:  1,
				op:      15,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Lotus"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("Lotoos"), op: 2},
				binding: 2,
				object:  1,
				op:      15,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Yaqut"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("Yaghoot"), op: 2},
				binding: 2,
				object:  1,
				op:      15,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Yaghut"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("Yaghoot"), op: 2},
				binding: 2,
				object:  1,
				op:      15,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Traffic"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("Terafik"), op: 2},
				binding: 2,
				object:  1,
				op:      15,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Ferdowsi"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("Ferdosi"), op: 2},
				binding: 2,
				object:  1,
				op:      15,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Fantezy"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("Fantezi"), op: 2},
				binding: 2,
				object:  1,
				op:      15,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Jadid"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("Persian_title"), op: 2},
				binding: 2,
				object:  1,
				op:      15,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Titr"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("Persian_title"), op: 2},
				binding: 2,
				object:  1,
				op:      15,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Kamran"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: exprTree{&expression{u: String("Persian_fantasy"), op: 2}, &expression{u: String("Homa"), op: 2}}, op: 36},
				binding: 2,
				object:  1,
				op:      15,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Homa"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: exprTree{&expression{u: String("Persian_fantasy"), op: 2}, &expression{u: String("Kamran"), op: 2}}, op: 36},
				binding: 2,
				object:  1,
				op:      15,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Fantezi"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("Persian_fantasy"), op: 2},
				binding: 2,
				object:  1,
				op:      15,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Tabassom"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("Persian_fantasy"), op: 2},
				binding: 2,
				object:  1,
				op:      15,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Arshia"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("Persian_square"), op: 2},
				binding: 2,
				object:  1,
				op:      15,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Nasim"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("Persian_square"), op: 2},
				binding: 2,
				object:  1,
				op:      15,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Elham"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: exprTree{&expression{u: String("Persian_square"), op: 2}, &expression{u: String("Farnaz"), op: 2}}, op: 36},
				binding: 2,
				object:  1,
				op:      15,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Farnaz"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: exprTree{&expression{u: String("Persian_square"), op: 2}, &expression{u: String("Elham"), op: 2}}, op: 36},
				binding: 2,
				object:  1,
				op:      15,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Sina"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("Persian_square"), op: 2},
				binding: 2,
				object:  1,
				op:      15,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Persian_title"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: exprTree{&expression{u: String("Titr"), op: 2}, &expression{u: exprTree{&expression{u: String("Jadid"), op: 2}, &expression{u: String("Persian_serif"), op: 2}}, op: 36}}, op: 36},
				binding: 2,
				object:  1,
				op:      15,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Persian_fantasy"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: exprTree{&expression{u: String("Homa"), op: 2}, &expression{u: exprTree{&expression{u: String("Kamran"), op: 2}, &expression{u: exprTree{&expression{u: String("Fantezi"), op: 2}, &expression{u: exprTree{&expression{u: String("Tabassom"), op: 2}, &expression{u: String("Persian_square"), op: 2}}, op: 36}}, op: 36}}, op: 36}}, op: 36},
				binding: 2,
				object:  1,
				op:      15,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Persian_square"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: exprTree{&expression{u: String("Arshia"), op: 2}, &expression{u: exprTree{&expression{u: String("Elham"), op: 2}, &expression{u: exprTree{&expression{u: String("Farnaz"), op: 2}, &expression{u: exprTree{&expression{u: String("Nasim"), op: 2}, &expression{u: exprTree{&expression{u: String("Sina"), op: 2}, &expression{u: String("Persian_serif"), op: 2}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36},
				binding: 2,
				object:  1,
				op:      15,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("serif"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: exprTree{&expression{u: String("Nazli"), op: 2}, &expression{u: exprTree{&expression{u: String("Lotoos"), op: 2}, &expression{u: exprTree{&expression{u: String("Mitra"), op: 2}, &expression{u: exprTree{&expression{u: String("Ferdosi"), op: 2}, &expression{u: exprTree{&expression{u: String("Badr"), op: 2}, &expression{u: String("Zar"), op: 2}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36},
				binding: 0,
				object:  1,
				op:      15,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("sans-serif"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: exprTree{&expression{u: String("Roya"), op: 2}, &expression{u: exprTree{&expression{u: String("Koodak"), op: 2}, &expression{u: String("Terafik"), op: 2}}, op: 36}}, op: 36},
				binding: 0,
				object:  1,
				op:      15,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("monospace"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("Terafik"), op: 2},
				binding: 0,
				object:  1,
				op:      15,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("fantasy"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: exprTree{&expression{u: String("Homa"), op: 2}, &expression{u: exprTree{&expression{u: String("Kamran"), op: 2}, &expression{u: exprTree{&expression{u: String("Fantezi"), op: 2}, &expression{u: String("Tabassom"), op: 2}}, op: 36}}, op: 36}}, op: 36},
				binding: 0,
				object:  1,
				op:      15,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("cursive"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: exprTree{&expression{u: String("IranNastaliq"), op: 2}, &expression{u: String("Nafees Nastaleeq"), op: 2}}, op: 36},
				binding: 0,
				object:  1,
				op:      15,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("serif"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     22,
			},
				{
					expr:   &expression{u: Int(200), op: 0},
					kind:   0,
					qual:   0,
					object: 8,
					op:     30,
				},
				{
					expr:   &expression{u: Float(24), op: 1},
					kind:   0,
					qual:   0,
					object: 10,
					op:     30,
				}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("Titr"), op: 2},
				binding: 0,
				object:  1,
				op:      14,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("sans-serif"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     22,
			},
				{
					expr:   &expression{u: Int(200), op: 0},
					kind:   0,
					qual:   0,
					object: 8,
					op:     30,
				},
				{
					expr:   &expression{u: Float(24), op: 1},
					kind:   0,
					qual:   0,
					object: 10,
					op:     30,
				}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("Titr"), op: 2},
				binding: 0,
				object:  1,
				op:      14,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Persian_sansserif_default"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     22,
			},
				{
					expr:   &expression{u: Int(200), op: 0},
					kind:   0,
					qual:   0,
					object: 8,
					op:     30,
				},
				{
					expr:   &expression{u: Float(24), op: 1},
					kind:   0,
					qual:   0,
					object: 10,
					op:     30,
				}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("Titr"), op: 2},
				binding: 2,
				object:  1,
				op:      14,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Persian_sansserif_default"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     22,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("Roya"), op: 2},
				binding: 2,
				object:  1,
				op:      11,
			}},
		}}, {{
			tests: []ruleTest{{
				expr:   &expression{u: String("TURNED-OFF"), op: 2},
				kind:   1,
				qual:   0,
				object: 14,
				op:     22,
			},
				{
					expr:   &expression{u: String("farsiweb"), op: 2},
					kind:   1,
					qual:   0,
					object: 14,
					op:     22,
				},
				{
					expr:   &expression{u: String("roman"), op: 10},
					kind:   1,
					qual:   0,
					object: 7,
					op:     22,
				},
				{
					expr:   &expression{u: String("roman"), op: 10},
					kind:   0,
					qual:   0,
					object: 7,
					op:     23,
				}},
			edits: []ruleEdit{{
				expr:    &expression{u: exprTree{&expression{u: exprName{object: 32, kind: -1}, op: 9}, &expression{u: exprMatrix{xx: &expression{u: Float(1), op: 1}, xy: &expression{u: Float(-0.2), op: 1}, yx: &expression{u: Float(0), op: 1}, yy: &expression{u: Float(1), op: 1}}, op: 3}}, op: 33},
				binding: 0,
				object:  32,
				op:      11,
			},
				{
					expr:    &expression{u: String("oblique"), op: 10},
					binding: 0,
					object:  7,
					op:      11,
				}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("farsiweb"), op: 2},
				kind:   1,
				qual:   0,
				object: 14,
				op:     22,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: Bool(0), op: 5},
				binding: 0,
				object:  19,
				op:      11,
			},
				{
					expr:    &expression{u: Bool(0), op: 5},
					binding: 0,
					object:  17,
					op:      11,
				},
				{
					expr:    &expression{u: Bool(0), op: 5},
					binding: 0,
					object:  39,
					op:      11,
				}},
		}}, {{
			tests: []ruleTest{{
				expr:   &expression{u: String("Elham"), op: 2},
				kind:   2,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("farsiweb"), op: 2},
				binding: 0,
				object:  14,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Homa"), op: 2},
				kind:   2,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("farsiweb"), op: 2},
				binding: 0,
				object:  14,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Koodak"), op: 2},
				kind:   2,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("farsiweb"), op: 2},
				binding: 0,
				object:  14,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Nazli"), op: 2},
				kind:   2,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("farsiweb"), op: 2},
				binding: 0,
				object:  14,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Roya"), op: 2},
				kind:   2,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("farsiweb"), op: 2},
				binding: 0,
				object:  14,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Terafik"), op: 2},
				kind:   2,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("farsiweb"), op: 2},
				binding: 0,
				object:  14,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Titr"), op: 2},
				kind:   2,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("farsiweb"), op: 2},
				binding: 0,
				object:  14,
				op:      11,
			}},
		}}}},
		{name: "confs/65-fonts-takao-pgothic.conf", description: "", domain: "", subst: [matchKindEnd][]directive{{{
			tests: []ruleTest{{
				expr:   &expression{u: String("TakaoPGothic"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("sans-serif"), op: 2},
				binding: 0,
				object:  1,
				op:      16,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("ja"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			},
				{
					expr:   &expression{u: String("sans-serif"), op: 2},
					kind:   0,
					qual:   0,
					object: 1,
					op:     22,
				}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("TakaoPGothic"), op: 2},
				binding: 1,
				object:  1,
				op:      14,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("GothicBBB"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     22,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("TakaoPGothic"), op: 2},
				binding: 1,
				object:  1,
				op:      14,
			}},
		}}, {{
			tests: []ruleTest{{
				expr:   &expression{u: String("TakaoPGothic"), op: 2},
				kind:   1,
				qual:   0,
				object: 1,
				op:     24,
			},
				{
					expr:   &expression{u: Float(18), op: 1},
					kind:   1,
					qual:   0,
					object: 12,
					op:     28,
				}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("hintnone"), op: 10},
				binding: 0,
				object:  16,
				op:      11,
			},
				{
					expr:    &expression{u: Bool(0), op: 5},
					binding: 0,
					object:  39,
					op:      11,
				}},
		}}, nil}},
		{name: "confs/65-fonts-texgyre.conf", description: "", domain: "", subst: [matchKindEnd][]directive{nil, nil, nil}},
		{name: "confs/65-khmer.conf", description: "", domain: "", subst: [matchKindEnd][]directive{{{
			tests: []ruleTest{{
				expr:   &expression{u: String("sans-serif"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("Khmer OS"), op: 2},
				binding: 0,
				object:  1,
				op:      14,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("serif"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("Khmer OS"), op: 2},
				binding: 0,
				object:  1,
				op:      14,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("monospace"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("Khmer OS System"), op: 2},
				binding: 0,
				object:  1,
				op:      14,
			}},
		}}, nil, nil}},
		{name: "confs/65-nonlatin.conf", description: "Set preferable fonts for non-Latin", domain: "", subst: [matchKindEnd][]directive{{{
			tests: []ruleTest{{
				expr:   &expression{u: String("serif"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: exprTree{&expression{u: String("Artsounk"), op: 2}, &expression{u: exprTree{&expression{u: String("BPG UTF8 M"), op: 2}, &expression{u: exprTree{&expression{u: String("Kinnari"), op: 2}, &expression{u: exprTree{&expression{u: String("Norasi"), op: 2}, &expression{u: exprTree{&expression{u: String("Frank Ruehl"), op: 2}, &expression{u: exprTree{&expression{u: String("Dror"), op: 2}, &expression{u: exprTree{&expression{u: String("JG LaoTimes"), op: 2}, &expression{u: exprTree{&expression{u: String("Saysettha Unicode"), op: 2}, &expression{u: exprTree{&expression{u: String("Pigiarniq"), op: 2}, &expression{u: exprTree{&expression{u: String("B Davat"), op: 2}, &expression{u: exprTree{&expression{u: String("B Compset"), op: 2}, &expression{u: exprTree{&expression{u: String("Kacst-Qr"), op: 2}, &expression{u: exprTree{&expression{u: String("Urdu Nastaliq Unicode"), op: 2}, &expression{u: exprTree{&expression{u: String("Raghindi"), op: 2}, &expression{u: exprTree{&expression{u: String("Mukti Narrow"), op: 2}, &expression{u: exprTree{&expression{u: String("padmaa"), op: 2}, &expression{u: exprTree{&expression{u: String("Hapax Berbère"), op: 2}, &expression{u: exprTree{&expression{u: String("MS Mincho"), op: 2}, &expression{u: exprTree{&expression{u: String("SimSun"), op: 2}, &expression{u: exprTree{&expression{u: String("PMingLiu"), op: 2}, &expression{u: exprTree{&expression{u: String("WenQuanYi Zen Hei"), op: 2}, &expression{u: exprTree{&expression{u: String("WenQuanYi Bitmap Song"), op: 2}, &expression{u: exprTree{&expression{u: String("AR PL ShanHeiSun Uni"), op: 2}, &expression{u: exprTree{&expression{u: String("AR PL New Sung"), op: 2}, &expression{u: exprTree{&expression{u: String("ZYSong18030"), op: 2}, &expression{u: exprTree{&expression{u: String("HanyiSong"), op: 2}, &expression{u: exprTree{&expression{u: String("MgOpen Canonica"), op: 2}, &expression{u: exprTree{&expression{u: String("Sazanami Mincho"), op: 2}, &expression{u: exprTree{&expression{u: String("IPAMonaMincho"), op: 2}, &expression{u: exprTree{&expression{u: String("IPAMincho"), op: 2}, &expression{u: exprTree{&expression{u: String("Kochi Mincho"), op: 2}, &expression{u: exprTree{&expression{u: String("AR PL SungtiL GB"), op: 2}, &expression{u: exprTree{&expression{u: String("AR PL Mingti2L Big5"), op: 2}, &expression{u: exprTree{&expression{u: String("AR PL Zenkai Uni"), op: 2}, &expression{u: exprTree{&expression{u: String("MS 明朝"), op: 2}, &expression{u: exprTree{&expression{u: String("ZYSong18030"), op: 2}, &expression{u: exprTree{&expression{u: String("NanumMyeongjo"), op: 2}, &expression{u: exprTree{&expression{u: String("UnBatang"), op: 2}, &expression{u: exprTree{&expression{u: String("Baekmuk Batang"), op: 2}, &expression{u: exprTree{&expression{u: String("KacstQura"), op: 2}, &expression{u: exprTree{&expression{u: String("Frank Ruehl CLM"), op: 2}, &expression{u: exprTree{&expression{u: String("Lohit Bengali"), op: 2}, &expression{u: exprTree{&expression{u: String("Lohit Gujarati"), op: 2}, &expression{u: exprTree{&expression{u: String("Lohit Hindi"), op: 2}, &expression{u: exprTree{&expression{u: String("Lohit Marathi"), op: 2}, &expression{u: exprTree{&expression{u: String("Lohit Maithili"), op: 2}, &expression{u: exprTree{&expression{u: String("Lohit Kashmiri"), op: 2}, &expression{u: exprTree{&expression{u: String("Lohit Konkani"), op: 2}, &expression{u: exprTree{&expression{u: String("Lohit Nepali"), op: 2}, &expression{u: exprTree{&expression{u: String("Lohit Sindhi"), op: 2}, &expression{u: exprTree{&expression{u: String("Lohit Punjabi"), op: 2}, &expression{u: exprTree{&expression{u: String("Lohit Tamil"), op: 2}, &expression{u: exprTree{&expression{u: String("Rachana"), op: 2}, &expression{u: exprTree{&expression{u: String("Lohit Malayalam"), op: 2}, &expression{u: exprTree{&expression{u: String("Lohit Kannada"), op: 2}, &expression{u: exprTree{&expression{u: String("Lohit Telugu"), op: 2}, &expression{u: exprTree{&expression{u: String("Lohit Oriya"), op: 2}, &expression{u: String("LKLUG"), op: 2}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36},
				binding: 0,
				object:  1,
				op:      14,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("sans-serif"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: exprTree{&expression{u: String("Nachlieli"), op: 2}, &expression{u: exprTree{&expression{u: String("Lucida Sans Unicode"), op: 2}, &expression{u: exprTree{&expression{u: String("Yudit Unicode"), op: 2}, &expression{u: exprTree{&expression{u: String("Kerkis"), op: 2}, &expression{u: exprTree{&expression{u: String("ArmNet Helvetica"), op: 2}, &expression{u: exprTree{&expression{u: String("Artsounk"), op: 2}, &expression{u: exprTree{&expression{u: String("BPG UTF8 M"), op: 2}, &expression{u: exprTree{&expression{u: String("Waree"), op: 2}, &expression{u: exprTree{&expression{u: String("Loma"), op: 2}, &expression{u: exprTree{&expression{u: String("Garuda"), op: 2}, &expression{u: exprTree{&expression{u: String("Umpush"), op: 2}, &expression{u: exprTree{&expression{u: String("Saysettha Unicode"), op: 2}, &expression{u: exprTree{&expression{u: String("JG Lao Old Arial"), op: 2}, &expression{u: exprTree{&expression{u: String("GF Zemen Unicode"), op: 2}, &expression{u: exprTree{&expression{u: String("Pigiarniq"), op: 2}, &expression{u: exprTree{&expression{u: String("B Davat"), op: 2}, &expression{u: exprTree{&expression{u: String("B Compset"), op: 2}, &expression{u: exprTree{&expression{u: String("Kacst-Qr"), op: 2}, &expression{u: exprTree{&expression{u: String("Urdu Nastaliq Unicode"), op: 2}, &expression{u: exprTree{&expression{u: String("Raghindi"), op: 2}, &expression{u: exprTree{&expression{u: String("Mukti Narrow"), op: 2}, &expression{u: exprTree{&expression{u: String("padmaa"), op: 2}, &expression{u: exprTree{&expression{u: String("Hapax Berbère"), op: 2}, &expression{u: exprTree{&expression{u: String("MS Gothic"), op: 2}, &expression{u: exprTree{&expression{u: String("UmePlus P Gothic"), op: 2}, &expression{u: exprTree{&expression{u: String("Microsoft YaHei"), op: 2}, &expression{u: exprTree{&expression{u: String("Microsoft JhengHei"), op: 2}, &expression{u: exprTree{&expression{u: String("WenQuanYi Zen Hei"), op: 2}, &expression{u: exprTree{&expression{u: String("WenQuanYi Bitmap Song"), op: 2}, &expression{u: exprTree{&expression{u: String("AR PL ShanHeiSun Uni"), op: 2}, &expression{u: exprTree{&expression{u: String("AR PL New Sung"), op: 2}, &expression{u: exprTree{&expression{u: String("MgOpen Moderna"), op: 2}, &expression{u: exprTree{&expression{u: String("MgOpen Modata"), op: 2}, &expression{u: exprTree{&expression{u: String("MgOpen Cosmetica"), op: 2}, &expression{u: exprTree{&expression{u: String("VL Gothic"), op: 2}, &expression{u: exprTree{&expression{u: String("IPAMonaGothic"), op: 2}, &expression{u: exprTree{&expression{u: String("IPAGothic"), op: 2}, &expression{u: exprTree{&expression{u: String("Sazanami Gothic"), op: 2}, &expression{u: exprTree{&expression{u: String("Kochi Gothic"), op: 2}, &expression{u: exprTree{&expression{u: String("AR PL KaitiM GB"), op: 2}, &expression{u: exprTree{&expression{u: String("AR PL KaitiM Big5"), op: 2}, &expression{u: exprTree{&expression{u: String("AR PL ShanHeiSun Uni"), op: 2}, &expression{u: exprTree{&expression{u: String("AR PL SungtiL GB"), op: 2}, &expression{u: exprTree{&expression{u: String("AR PL Mingti2L Big5"), op: 2}, &expression{u: exprTree{&expression{u: String("MS ゴシック"), op: 2}, &expression{u: exprTree{&expression{u: String("ZYSong18030"), op: 2}, &expression{u: exprTree{&expression{u: String("NanumGothic"), op: 2}, &expression{u: exprTree{&expression{u: String("UnDotum"), op: 2}, &expression{u: exprTree{&expression{u: String("Baekmuk Dotum"), op: 2}, &expression{u: exprTree{&expression{u: String("Baekmuk Gulim"), op: 2}, &expression{u: exprTree{&expression{u: String("KacstQura"), op: 2}, &expression{u: exprTree{&expression{u: String("Lohit Bengali"), op: 2}, &expression{u: exprTree{&expression{u: String("Lohit Gujarati"), op: 2}, &expression{u: exprTree{&expression{u: String("Lohit Hindi"), op: 2}, &expression{u: exprTree{&expression{u: String("Lohit Marathi"), op: 2}, &expression{u: exprTree{&expression{u: String("Lohit Maithili"), op: 2}, &expression{u: exprTree{&expression{u: String("Lohit Kashmiri"), op: 2}, &expression{u: exprTree{&expression{u: String("Lohit Konkani"), op: 2}, &expression{u: exprTree{&expression{u: String("Lohit Nepali"), op: 2}, &expression{u: exprTree{&expression{u: String("Lohit Sindhi"), op: 2}, &expression{u: exprTree{&expression{u: String("Lohit Punjabi"), op: 2}, &expression{u: exprTree{&expression{u: String("Lohit Tamil"), op: 2}, &expression{u: exprTree{&expression{u: String("Meera"), op: 2}, &expression{u: exprTree{&expression{u: String("Lohit Malayalam"), op: 2}, &expression{u: exprTree{&expression{u: String("Lohit Kannada"), op: 2}, &expression{u: exprTree{&expression{u: String("Lohit Telugu"), op: 2}, &expression{u: exprTree{&expression{u: String("Lohit Oriya"), op: 2}, &expression{u: String("LKLUG"), op: 2}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36},
				binding: 0,
				object:  1,
				op:      14,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("monospace"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: exprTree{&expression{u: String("Miriam Mono"), op: 2}, &expression{u: exprTree{&expression{u: String("VL Gothic"), op: 2}, &expression{u: exprTree{&expression{u: String("IPAMonaGothic"), op: 2}, &expression{u: exprTree{&expression{u: String("IPAGothic"), op: 2}, &expression{u: exprTree{&expression{u: String("Sazanami Gothic"), op: 2}, &expression{u: exprTree{&expression{u: String("Kochi Gothic"), op: 2}, &expression{u: exprTree{&expression{u: String("AR PL KaitiM GB"), op: 2}, &expression{u: exprTree{&expression{u: String("MS Gothic"), op: 2}, &expression{u: exprTree{&expression{u: String("UmePlus Gothic"), op: 2}, &expression{u: exprTree{&expression{u: String("NSimSun"), op: 2}, &expression{u: exprTree{&expression{u: String("MingLiu"), op: 2}, &expression{u: exprTree{&expression{u: String("AR PL ShanHeiSun Uni"), op: 2}, &expression{u: exprTree{&expression{u: String("AR PL New Sung Mono"), op: 2}, &expression{u: exprTree{&expression{u: String("HanyiSong"), op: 2}, &expression{u: exprTree{&expression{u: String("AR PL SungtiL GB"), op: 2}, &expression{u: exprTree{&expression{u: String("AR PL Mingti2L Big5"), op: 2}, &expression{u: exprTree{&expression{u: String("ZYSong18030"), op: 2}, &expression{u: exprTree{&expression{u: String("NanumGothicCoding"), op: 2}, &expression{u: exprTree{&expression{u: String("NanumGothic"), op: 2}, &expression{u: exprTree{&expression{u: String("UnDotum"), op: 2}, &expression{u: exprTree{&expression{u: String("Baekmuk Dotum"), op: 2}, &expression{u: exprTree{&expression{u: String("Baekmuk Gulim"), op: 2}, &expression{u: exprTree{&expression{u: String("TlwgTypo"), op: 2}, &expression{u: exprTree{&expression{u: String("TlwgTypist"), op: 2}, &expression{u: exprTree{&expression{u: String("TlwgTypewriter"), op: 2}, &expression{u: exprTree{&expression{u: String("TlwgMono"), op: 2}, &expression{u: exprTree{&expression{u: String("Hasida"), op: 2}, &expression{u: exprTree{&expression{u: String("Mitra Mono"), op: 2}, &expression{u: exprTree{&expression{u: String("GF Zemen Unicode"), op: 2}, &expression{u: exprTree{&expression{u: String("Hapax Berbère"), op: 2}, &expression{u: exprTree{&expression{u: String("Lohit Bengali"), op: 2}, &expression{u: exprTree{&expression{u: String("Lohit Gujarati"), op: 2}, &expression{u: exprTree{&expression{u: String("Lohit Hindi"), op: 2}, &expression{u: exprTree{&expression{u: String("Lohit Marathi"), op: 2}, &expression{u: exprTree{&expression{u: String("Lohit Maithili"), op: 2}, &expression{u: exprTree{&expression{u: String("Lohit Kashmiri"), op: 2}, &expression{u: exprTree{&expression{u: String("Lohit Konkani"), op: 2}, &expression{u: exprTree{&expression{u: String("Lohit Nepali"), op: 2}, &expression{u: exprTree{&expression{u: String("Lohit Sindhi"), op: 2}, &expression{u: exprTree{&expression{u: String("Lohit Punjabi"), op: 2}, &expression{u: exprTree{&expression{u: String("Lohit Tamil"), op: 2}, &expression{u: exprTree{&expression{u: String("Meera"), op: 2}, &expression{u: exprTree{&expression{u: String("Lohit Malayalam"), op: 2}, &expression{u: exprTree{&expression{u: String("Lohit Kannada"), op: 2}, &expression{u: exprTree{&expression{u: String("Lohit Telugu"), op: 2}, &expression{u: exprTree{&expression{u: String("Lohit Oriya"), op: 2}, &expression{u: String("LKLUG"), op: 2}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36},
				binding: 0,
				object:  1,
				op:      14,
			}},
		}}, nil, nil}},
		{name: "confs/66-lohit-assamese.conf", description: "", domain: "", subst: [matchKindEnd][]directive{{{
			tests: []ruleTest{{
				expr:   &expression{u: String("as"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			},
				{
					expr:   &expression{u: String("sans-serif"), op: 2},
					kind:   0,
					qual:   0,
					object: 1,
					op:     22,
				}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("Lohit Assamese"), op: 2},
				binding: 0,
				object:  1,
				op:      14,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Lohit Assamese"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("sans-serif"), op: 2},
				binding: 0,
				object:  1,
				op:      16,
			}},
		}}, {{
			tests: []ruleTest{{
				expr:   &expression{u: String("Lohit Assamese"), op: 2},
				kind:   1,
				qual:   0,
				object: 1,
				op:     22,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: Bool(1), op: 5},
				binding: 0,
				object:  19,
				op:      11,
			}},
		}}, nil}},
		{name: "confs/66-lohit-bengali.conf", description: "", domain: "", subst: [matchKindEnd][]directive{{{
			tests: []ruleTest{{
				expr:   &expression{u: String("bn"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			},
				{
					expr:   &expression{u: String("sans-serif"), op: 2},
					kind:   0,
					qual:   0,
					object: 1,
					op:     22,
				}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("Lohit Bengali"), op: 2},
				binding: 0,
				object:  1,
				op:      14,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Lohit Bengali"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("sans-serif"), op: 2},
				binding: 0,
				object:  1,
				op:      16,
			}},
		}}, {{
			tests: []ruleTest{{
				expr:   &expression{u: String("Lohit Bengali"), op: 2},
				kind:   1,
				qual:   0,
				object: 1,
				op:     22,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: Bool(1), op: 5},
				binding: 0,
				object:  19,
				op:      11,
			}},
		}}, nil}},
		{name: "confs/66-lohit-devanagari.conf", description: "", domain: "", subst: [matchKindEnd][]directive{{{
			tests: []ruleTest{{
				expr:   &expression{u: String("hi"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			},
				{
					expr:   &expression{u: String("sans-serif"), op: 2},
					kind:   0,
					qual:   0,
					object: 1,
					op:     22,
				}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("Lohit Devanagari"), op: 2},
				binding: 0,
				object:  1,
				op:      14,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("mr"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			},
				{
					expr:   &expression{u: String("sans-serif"), op: 2},
					kind:   0,
					qual:   0,
					object: 1,
					op:     22,
				}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("Lohit Devanagari"), op: 2},
				binding: 0,
				object:  1,
				op:      14,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("kok"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			},
				{
					expr:   &expression{u: String("sans-serif"), op: 2},
					kind:   0,
					qual:   0,
					object: 1,
					op:     22,
				}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("Lohit Devanagari"), op: 2},
				binding: 0,
				object:  1,
				op:      14,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("ks@devanagari"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			},
				{
					expr:   &expression{u: String("sans-serif"), op: 2},
					kind:   0,
					qual:   0,
					object: 1,
					op:     22,
				}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("Lohit Devanagari"), op: 2},
				binding: 0,
				object:  1,
				op:      14,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("sd@devanagari"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			},
				{
					expr:   &expression{u: String("sans-serif"), op: 2},
					kind:   0,
					qual:   0,
					object: 1,
					op:     22,
				}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("Lohit Devanagari"), op: 2},
				binding: 0,
				object:  1,
				op:      14,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("mai"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			},
				{
					expr:   &expression{u: String("sans-serif"), op: 2},
					kind:   0,
					qual:   0,
					object: 1,
					op:     22,
				}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("Lohit Devanagari"), op: 2},
				binding: 0,
				object:  1,
				op:      14,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("ne"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			},
				{
					expr:   &expression{u: String("sans-serif"), op: 2},
					kind:   0,
					qual:   0,
					object: 1,
					op:     22,
				}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("Lohit Devanagari"), op: 2},
				binding: 0,
				object:  1,
				op:      14,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("brx"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			},
				{
					expr:   &expression{u: String("sans-serif"), op: 2},
					kind:   0,
					qual:   0,
					object: 1,
					op:     22,
				}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("Lohit Devanagari"), op: 2},
				binding: 0,
				object:  1,
				op:      14,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("doi"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			},
				{
					expr:   &expression{u: String("sans-serif"), op: 2},
					kind:   0,
					qual:   0,
					object: 1,
					op:     22,
				}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("Lohit Devanagari"), op: 2},
				binding: 0,
				object:  1,
				op:      14,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("sa"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			},
				{
					expr:   &expression{u: String("sans-serif"), op: 2},
					kind:   0,
					qual:   0,
					object: 1,
					op:     22,
				}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("Lohit Devanagari"), op: 2},
				binding: 0,
				object:  1,
				op:      14,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("sat"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			},
				{
					expr:   &expression{u: String("sans-serif"), op: 2},
					kind:   0,
					qual:   0,
					object: 1,
					op:     22,
				}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("Lohit Devanagari"), op: 2},
				binding: 0,
				object:  1,
				op:      14,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Lohit Devanagari"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("sans-serif"), op: 2},
				binding: 0,
				object:  1,
				op:      16,
			}},
		}}, nil, nil}},
		{name: "confs/66-lohit-gujarati.conf", description: "", domain: "", subst: [matchKindEnd][]directive{{{
			tests: []ruleTest{{
				expr:   &expression{u: String("gu"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			},
				{
					expr:   &expression{u: String("sans-serif"), op: 2},
					kind:   0,
					qual:   0,
					object: 1,
					op:     22,
				}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("Lohit Gujarati"), op: 2},
				binding: 0,
				object:  1,
				op:      14,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Lohit Gujarati"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("sans-serif"), op: 2},
				binding: 0,
				object:  1,
				op:      16,
			}},
		}}, {{
			tests: []ruleTest{{
				expr:   &expression{u: String("Lohit Gujarati"), op: 2},
				kind:   1,
				qual:   0,
				object: 1,
				op:     22,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: Bool(1), op: 5},
				binding: 0,
				object:  19,
				op:      11,
			}},
		}}, nil}},
		{name: "confs/66-lohit-gurmukhi.conf", description: "", domain: "", subst: [matchKindEnd][]directive{{{
			tests: []ruleTest{{
				expr:   &expression{u: String("pa"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			},
				{
					expr:   &expression{u: String("sans-serif"), op: 2},
					kind:   0,
					qual:   0,
					object: 1,
					op:     22,
				}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("Lohit Gurmukhi"), op: 2},
				binding: 0,
				object:  1,
				op:      14,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Lohit Gurmukhi"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("sans-serif"), op: 2},
				binding: 0,
				object:  1,
				op:      16,
			}},
		}}, {{
			tests: []ruleTest{{
				expr:   &expression{u: String("Lohit Gurmukhi"), op: 2},
				kind:   1,
				qual:   0,
				object: 1,
				op:     22,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: Bool(1), op: 5},
				binding: 0,
				object:  19,
				op:      11,
			}},
		}}, nil}},
		{name: "confs/66-lohit-kannada.conf", description: "", domain: "", subst: [matchKindEnd][]directive{{{
			tests: []ruleTest{{
				expr:   &expression{u: String("kn"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			},
				{
					expr:   &expression{u: String("sans-serif"), op: 2},
					kind:   0,
					qual:   0,
					object: 1,
					op:     22,
				}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("Lohit Kannada"), op: 2},
				binding: 0,
				object:  1,
				op:      14,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Lohit Kannada"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("sans-serif"), op: 2},
				binding: 0,
				object:  1,
				op:      16,
			}},
		}}, {{
			tests: []ruleTest{{
				expr:   &expression{u: String("Lohit Kannada"), op: 2},
				kind:   1,
				qual:   0,
				object: 1,
				op:     22,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: Bool(1), op: 5},
				binding: 0,
				object:  19,
				op:      11,
			}},
		}}, nil}},
		{name: "confs/66-lohit-odia.conf", description: "", domain: "", subst: [matchKindEnd][]directive{{{
			tests: []ruleTest{{
				expr:   &expression{u: String("or"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			},
				{
					expr:   &expression{u: String("sans-serif"), op: 2},
					kind:   0,
					qual:   0,
					object: 1,
					op:     22,
				}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("Lohit Odia"), op: 2},
				binding: 0,
				object:  1,
				op:      14,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Lohit Odia"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("sans-serif"), op: 2},
				binding: 0,
				object:  1,
				op:      16,
			}},
		}}, {{
			tests: []ruleTest{{
				expr:   &expression{u: String("Lohit Odia"), op: 2},
				kind:   1,
				qual:   0,
				object: 1,
				op:     22,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: Bool(1), op: 5},
				binding: 0,
				object:  19,
				op:      11,
			}},
		}}, nil}},
		{name: "confs/66-lohit-tamil-classical.conf", description: "", domain: "", subst: [matchKindEnd][]directive{{{
			tests: []ruleTest{{
				expr:   &expression{u: String("ta"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			},
				{
					expr:   &expression{u: String("sans-serif"), op: 2},
					kind:   0,
					qual:   0,
					object: 1,
					op:     22,
				}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("Lohit Tamil Classical"), op: 2},
				binding: 0,
				object:  1,
				op:      14,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Lohit Tamil Classical"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("sans-serif"), op: 2},
				binding: 0,
				object:  1,
				op:      16,
			}},
		}}, {{
			tests: []ruleTest{{
				expr:   &expression{u: String("Lohit Tamil Classical"), op: 2},
				kind:   1,
				qual:   0,
				object: 1,
				op:     22,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: Bool(1), op: 5},
				binding: 0,
				object:  19,
				op:      11,
			}},
		}}, nil}},
		{name: "confs/66-lohit-tamil.conf", description: "", domain: "", subst: [matchKindEnd][]directive{{{
			tests: []ruleTest{{
				expr:   &expression{u: String("ta"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			},
				{
					expr:   &expression{u: String("sans-serif"), op: 2},
					kind:   0,
					qual:   0,
					object: 1,
					op:     22,
				}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("Lohit Tamil"), op: 2},
				binding: 0,
				object:  1,
				op:      14,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Lohit Tamil"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("sans-serif"), op: 2},
				binding: 0,
				object:  1,
				op:      16,
			}},
		}}, {{
			tests: []ruleTest{{
				expr:   &expression{u: String("Lohit Tamil"), op: 2},
				kind:   1,
				qual:   0,
				object: 1,
				op:     22,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: Bool(1), op: 5},
				binding: 0,
				object:  19,
				op:      11,
			}},
		}}, nil}},
		{name: "confs/66-lohit-telugu.conf", description: "", domain: "", subst: [matchKindEnd][]directive{{{
			tests: []ruleTest{{
				expr:   &expression{u: String("te"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			},
				{
					expr:   &expression{u: String("sans-serif"), op: 2},
					kind:   0,
					qual:   0,
					object: 1,
					op:     22,
				}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("Lohit Telugu"), op: 2},
				binding: 0,
				object:  1,
				op:      14,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Lohit Telugu"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("sans-serif"), op: 2},
				binding: 0,
				object:  1,
				op:      16,
			}},
		}}, nil, nil}},
		{name: "confs/67-fonts-smc-manjari.conf", description: "", domain: "", subst: [matchKindEnd][]directive{{{
			tests: []ruleTest{{
				expr:   &expression{u: String("ml"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     24,
			},
				{
					expr:   &expression{u: String("sans-serif"), op: 2},
					kind:   0,
					qual:   0,
					object: 1,
					op:     22,
				}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("Manjari"), op: 2},
				binding: 0,
				object:  1,
				op:      14,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Manjari"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("sans-serif"), op: 2},
				binding: 0,
				object:  1,
				op:      16,
			}},
		}}, nil, nil}},
		{name: "confs/67-smc-anjalioldlipi.conf", description: "", domain: "", subst: [matchKindEnd][]directive{{{
			tests: []ruleTest{{
				expr:   &expression{u: String("ml-in"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     22,
			},
				{
					expr:   &expression{u: String("sans-serif"), op: 2},
					kind:   0,
					qual:   0,
					object: 1,
					op:     22,
				}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("AnjaliOldLipi"), op: 2},
				binding: 0,
				object:  1,
				op:      14,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("AnjaliOldLipi"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("sans-serif"), op: 2},
				binding: 0,
				object:  1,
				op:      16,
			}},
		}}, nil, nil}},
		{name: "confs/67-smc-chilanka.conf", description: "", domain: "", subst: [matchKindEnd][]directive{{{
			tests: []ruleTest{{
				expr:   &expression{u: String("ml-in"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     22,
			},
				{
					expr:   &expression{u: String("cursive"), op: 2},
					kind:   0,
					qual:   0,
					object: 1,
					op:     22,
				}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("Chilanka"), op: 2},
				binding: 0,
				object:  1,
				op:      14,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Chilanka"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("cursive"), op: 2},
				binding: 0,
				object:  1,
				op:      16,
			}},
		}}, nil, nil}},
		{name: "confs/67-smc-dyuthi.conf", description: "", domain: "", subst: [matchKindEnd][]directive{{{
			tests: []ruleTest{{
				expr:   &expression{u: String("ml-in"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     22,
			},
				{
					expr:   &expression{u: String("sans-serif"), op: 2},
					kind:   0,
					qual:   0,
					object: 1,
					op:     22,
				}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("Dyuthi"), op: 2},
				binding: 0,
				object:  1,
				op:      14,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Dyuthi"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("sans-serif"), op: 2},
				binding: 0,
				object:  1,
				op:      16,
			}},
		}}, nil, nil}},
		{name: "confs/67-smc-karumbi.conf", description: "", domain: "", subst: [matchKindEnd][]directive{{{
			tests: []ruleTest{{
				expr:   &expression{u: String("ml-in"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     22,
			},
				{
					expr:   &expression{u: String("cursive"), op: 2},
					kind:   0,
					qual:   0,
					object: 1,
					op:     22,
				}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("Karumbi"), op: 2},
				binding: 0,
				object:  1,
				op:      14,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Karumbi"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("cursive"), op: 2},
				binding: 0,
				object:  1,
				op:      16,
			}},
		}}, nil, nil}},
		{name: "confs/67-smc-keraleeyam.conf", description: "", domain: "", subst: [matchKindEnd][]directive{{{
			tests: []ruleTest{{
				expr:   &expression{u: String("ml-in"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     22,
			},
				{
					expr:   &expression{u: String("sans-serif"), op: 2},
					kind:   0,
					qual:   0,
					object: 1,
					op:     22,
				}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("Keraleeyam"), op: 2},
				binding: 0,
				object:  1,
				op:      14,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Keraleeyam"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("sans-serif"), op: 2},
				binding: 0,
				object:  1,
				op:      16,
			}},
		}}, nil, nil}},
		{name: "confs/67-smc-raghumalayalamsans.conf", description: "", domain: "", subst: [matchKindEnd][]directive{{{
			tests: []ruleTest{{
				expr:   &expression{u: String("ml-in"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     22,
			},
				{
					expr:   &expression{u: String("sans-serif"), op: 2},
					kind:   0,
					qual:   0,
					object: 1,
					op:     22,
				}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("RaghuMalayalam"), op: 2},
				binding: 0,
				object:  1,
				op:      14,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("RaghuMalayalam"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("sans-serif"), op: 2},
				binding: 0,
				object:  1,
				op:      16,
			}},
		}}, nil, nil}},
		{name: "confs/67-smc-suruma.conf", description: "", domain: "", subst: [matchKindEnd][]directive{{{
			tests: []ruleTest{{
				expr:   &expression{u: String("ml-in"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     22,
			},
				{
					expr:   &expression{u: String("sans-serif"), op: 2},
					kind:   0,
					qual:   0,
					object: 1,
					op:     22,
				}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("suruma"), op: 2},
				binding: 0,
				object:  1,
				op:      14,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("suruma"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("sans-serif"), op: 2},
				binding: 0,
				object:  1,
				op:      16,
			}},
		}}, nil, nil}},
		{name: "confs/67-smc-uroob.conf", description: "", domain: "", subst: [matchKindEnd][]directive{{{
			tests: []ruleTest{{
				expr:   &expression{u: String("ml-in"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     22,
			},
				{
					expr:   &expression{u: String("fantasy"), op: 2},
					kind:   0,
					qual:   0,
					object: 1,
					op:     22,
				}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("Uroob"), op: 2},
				binding: 0,
				object:  1,
				op:      14,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Uroob"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("fantasy"), op: 2},
				binding: 0,
				object:  1,
				op:      16,
			}},
		}}, nil, nil}},
		{name: "confs/69-language-selector-ja.conf", description: "", domain: "", subst: [matchKindEnd][]directive{nil, {{
			tests: []ruleTest{{
				expr:   &expression{u: String("Noto Sans CJK JP"), op: 2},
				kind:   1,
				qual:   0,
				object: 1,
				op:     24,
			},
				{
					expr:   &expression{u: Float(18), op: 1},
					kind:   1,
					qual:   1,
					object: 12,
					op:     28,
				}},
			edits: []ruleEdit{{
				expr:    &expression{u: Bool(0), op: 5},
				binding: 0,
				object:  39,
				op:      11,
			},
				{
					expr:    &expression{u: String("hintnone"), op: 10},
					binding: 0,
					object:  16,
					op:      11,
				}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Noto Serif CJK JP"), op: 2},
				kind:   1,
				qual:   0,
				object: 1,
				op:     24,
			},
				{
					expr:   &expression{u: Float(18), op: 1},
					kind:   1,
					qual:   1,
					object: 12,
					op:     28,
				}},
			edits: []ruleEdit{{
				expr:    &expression{u: Bool(0), op: 5},
				binding: 0,
				object:  39,
				op:      11,
			},
				{
					expr:    &expression{u: String("hintnone"), op: 10},
					binding: 0,
					object:  16,
					op:      11,
				}},
		}}, nil}},
		{name: "confs/69-language-selector-zh-cn.conf", description: "", domain: "", subst: [matchKindEnd][]directive{{{
			tests: []ruleTest{{
				expr:   &expression{u: String("zh-cn"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     22,
			},
				{
					expr:   &expression{u: String("serif"), op: 2},
					kind:   0,
					qual:   0,
					object: 1,
					op:     22,
				}},
			edits: []ruleEdit{{
				expr:    &expression{u: exprTree{&expression{u: String("Noto Serif CJK SC"), op: 2}, &expression{u: exprTree{&expression{u: String("HYSong"), op: 2}, &expression{u: exprTree{&expression{u: String("AR PL UMing CN"), op: 2}, &expression{u: exprTree{&expression{u: String("AR PL UMing HK"), op: 2}, &expression{u: exprTree{&expression{u: String("AR PL New Sung"), op: 2}, &expression{u: exprTree{&expression{u: String("WenQuanYi Bitmap Song"), op: 2}, &expression{u: exprTree{&expression{u: String("AR PL UKai CN"), op: 2}, &expression{u: String("AR PL ZenKai Uni"), op: 2}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36},
				binding: 1,
				object:  1,
				op:      14,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("sans-serif"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     22,
			},
				{
					expr:   &expression{u: String("zh-cn"), op: 2},
					kind:   0,
					qual:   0,
					object: 34,
					op:     22,
				}},
			edits: []ruleEdit{{
				expr:    &expression{u: exprTree{&expression{u: String("Noto Sans CJK SC"), op: 2}, &expression{u: exprTree{&expression{u: String("WenQuanYi Zen Hei"), op: 2}, &expression{u: exprTree{&expression{u: String("HYSong"), op: 2}, &expression{u: exprTree{&expression{u: String("AR PL UMing CN"), op: 2}, &expression{u: exprTree{&expression{u: String("AR PL UMing HK"), op: 2}, &expression{u: exprTree{&expression{u: String("AR PL New Sung"), op: 2}, &expression{u: exprTree{&expression{u: String("AR PL UKai CN"), op: 2}, &expression{u: String("AR PL ZenKai Uni"), op: 2}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36},
				binding: 1,
				object:  1,
				op:      14,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("monospace"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     22,
			},
				{
					expr:   &expression{u: String("zh-cn"), op: 2},
					kind:   0,
					qual:   0,
					object: 34,
					op:     22,
				}},
			edits: []ruleEdit{{
				expr:    &expression{u: exprTree{&expression{u: String("DejaVu Sans Mono"), op: 2}, &expression{u: exprTree{&expression{u: String("Noto Sans Mono CJK SC"), op: 2}, &expression{u: exprTree{&expression{u: String("WenQuanYi Zen Hei Mono"), op: 2}, &expression{u: exprTree{&expression{u: String("HYSong"), op: 2}, &expression{u: exprTree{&expression{u: String("AR PL UMing CN"), op: 2}, &expression{u: exprTree{&expression{u: String("AR PL UMing HK"), op: 2}, &expression{u: exprTree{&expression{u: String("AR PL New Sung"), op: 2}, &expression{u: exprTree{&expression{u: String("AR PL UKai CN"), op: 2}, &expression{u: String("AR PL ZenKai Uni"), op: 2}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36},
				binding: 1,
				object:  1,
				op:      14,
			}},
		}}, nil, nil}},
		{name: "confs/69-language-selector-zh-hk.conf", description: "", domain: "", subst: [matchKindEnd][]directive{{{
			tests: []ruleTest{{
				expr:   &expression{u: String("serif"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     22,
			},
				{
					expr:   &expression{u: String("zh-hk"), op: 2},
					kind:   0,
					qual:   0,
					object: 34,
					op:     22,
				}},
			edits: []ruleEdit{{
				expr:    &expression{u: exprTree{&expression{u: String("Noto Serif CJK TC"), op: 2}, &expression{u: exprTree{&expression{u: String("AR PL UMing HK"), op: 2}, &expression{u: exprTree{&expression{u: String("AR PL New Sung"), op: 2}, &expression{u: exprTree{&expression{u: String("HYSong"), op: 2}, &expression{u: exprTree{&expression{u: String("WenQuanYi Bitmap Song"), op: 2}, &expression{u: exprTree{&expression{u: String("AR PL UKai HK"), op: 2}, &expression{u: String("AR PL ZenKai Uni"), op: 2}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36},
				binding: 1,
				object:  1,
				op:      14,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("sans-serif"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     22,
			},
				{
					expr:   &expression{u: String("zh-hk"), op: 2},
					kind:   0,
					qual:   0,
					object: 34,
					op:     22,
				}},
			edits: []ruleEdit{{
				expr:    &expression{u: exprTree{&expression{u: String("Noto Sans CJK HK"), op: 2}, &expression{u: exprTree{&expression{u: String("AR PL UMing HK"), op: 2}, &expression{u: exprTree{&expression{u: String("AR PL New Sung"), op: 2}, &expression{u: exprTree{&expression{u: String("HYSong"), op: 2}, &expression{u: exprTree{&expression{u: String("AR PL UKai HK"), op: 2}, &expression{u: String("AR PL ZenKai Uni"), op: 2}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36},
				binding: 1,
				object:  1,
				op:      14,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("monospace"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     22,
			},
				{
					expr:   &expression{u: String("zh-hk"), op: 2},
					kind:   0,
					qual:   0,
					object: 34,
					op:     22,
				}},
			edits: []ruleEdit{{
				expr:    &expression{u: exprTree{&expression{u: String("DejaVu Sans Mono"), op: 2}, &expression{u: exprTree{&expression{u: String("Noto Sans Mono CJK HK"), op: 2}, &expression{u: exprTree{&expression{u: String("AR PL UMing HK"), op: 2}, &expression{u: exprTree{&expression{u: String("AR PL New Sung"), op: 2}, &expression{u: exprTree{&expression{u: String("HYSong"), op: 2}, &expression{u: exprTree{&expression{u: String("AR PL UKai HK"), op: 2}, &expression{u: String("AR PL ZenKai Uni"), op: 2}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36},
				binding: 1,
				object:  1,
				op:      14,
			}},
		}}, nil, nil}},
		{name: "confs/69-language-selector-zh-mo.conf", description: "", domain: "", subst: [matchKindEnd][]directive{{{
			tests: []ruleTest{{
				expr:   &expression{u: String("serif"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     22,
			},
				{
					expr:   &expression{u: String("zh-mo"), op: 2},
					kind:   0,
					qual:   0,
					object: 34,
					op:     22,
				}},
			edits: []ruleEdit{{
				expr:    &expression{u: exprTree{&expression{u: String("Noto Serif CJK TC"), op: 2}, &expression{u: exprTree{&expression{u: String("AR PL UMing HK"), op: 2}, &expression{u: exprTree{&expression{u: String("AR PL New Sung"), op: 2}, &expression{u: exprTree{&expression{u: String("HYSong"), op: 2}, &expression{u: exprTree{&expression{u: String("WenQuanYi Bitmap Song"), op: 2}, &expression{u: exprTree{&expression{u: String("AR PL UKai HK"), op: 2}, &expression{u: String("AR PL ZenKai Uni"), op: 2}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36},
				binding: 1,
				object:  1,
				op:      14,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("sans-serif"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     22,
			},
				{
					expr:   &expression{u: String("zh-mo"), op: 2},
					kind:   0,
					qual:   0,
					object: 34,
					op:     22,
				}},
			edits: []ruleEdit{{
				expr:    &expression{u: exprTree{&expression{u: String("Bitstream Vera Sans"), op: 2}, &expression{u: exprTree{&expression{u: String("Noto Sans CJK TC"), op: 2}, &expression{u: exprTree{&expression{u: String("AR PL UMing HK"), op: 2}, &expression{u: exprTree{&expression{u: String("AR PL New Sung"), op: 2}, &expression{u: exprTree{&expression{u: String("HYSong"), op: 2}, &expression{u: exprTree{&expression{u: String("AR PL UKai HK"), op: 2}, &expression{u: String("AR PL ZenKai Uni"), op: 2}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36},
				binding: 1,
				object:  1,
				op:      14,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("monospace"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     22,
			},
				{
					expr:   &expression{u: String("zh-mo"), op: 2},
					kind:   0,
					qual:   0,
					object: 34,
					op:     22,
				}},
			edits: []ruleEdit{{
				expr:    &expression{u: exprTree{&expression{u: String("Bitstream Vera Sans Mono"), op: 2}, &expression{u: exprTree{&expression{u: String("DejaVu Sans Mono"), op: 2}, &expression{u: exprTree{&expression{u: String("Noto Sans Mono CJK TC"), op: 2}, &expression{u: exprTree{&expression{u: String("AR PL UMing HK"), op: 2}, &expression{u: exprTree{&expression{u: String("AR PL New Sung"), op: 2}, &expression{u: exprTree{&expression{u: String("HYSong"), op: 2}, &expression{u: exprTree{&expression{u: String("AR PL UKai HK"), op: 2}, &expression{u: String("AR PL ZenKai Uni"), op: 2}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36},
				binding: 1,
				object:  1,
				op:      14,
			}},
		}}, nil, nil}},
		{name: "confs/69-language-selector-zh-sg.conf", description: "", domain: "", subst: [matchKindEnd][]directive{{{
			tests: []ruleTest{{
				expr:   &expression{u: String("serif"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     22,
			},
				{
					expr:   &expression{u: String("zh-sg"), op: 2},
					kind:   0,
					qual:   0,
					object: 34,
					op:     22,
				}},
			edits: []ruleEdit{{
				expr:    &expression{u: exprTree{&expression{u: String("Noto Serif CJK SC"), op: 2}, &expression{u: exprTree{&expression{u: String("HYSong"), op: 2}, &expression{u: exprTree{&expression{u: String("AR PL UMing CN"), op: 2}, &expression{u: exprTree{&expression{u: String("AR PL UMing HK"), op: 2}, &expression{u: exprTree{&expression{u: String("AR PL New Sung"), op: 2}, &expression{u: exprTree{&expression{u: String("WenQuanYi Bitmap Song"), op: 2}, &expression{u: exprTree{&expression{u: String("AR PL UKai CN"), op: 2}, &expression{u: String("AR PL ZenKai Uni"), op: 2}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36},
				binding: 1,
				object:  1,
				op:      14,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("sans-serif"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     22,
			},
				{
					expr:   &expression{u: String("zh-sg"), op: 2},
					kind:   0,
					qual:   0,
					object: 34,
					op:     22,
				}},
			edits: []ruleEdit{{
				expr:    &expression{u: exprTree{&expression{u: String("Noto Sans CJK SC"), op: 2}, &expression{u: exprTree{&expression{u: String("WenQuanYi Zen Hei"), op: 2}, &expression{u: exprTree{&expression{u: String("HYSong"), op: 2}, &expression{u: exprTree{&expression{u: String("AR PL UMing CN"), op: 2}, &expression{u: exprTree{&expression{u: String("AR PL UMing HK"), op: 2}, &expression{u: exprTree{&expression{u: String("AR PL New Sung"), op: 2}, &expression{u: exprTree{&expression{u: String("AR PL UKai CN"), op: 2}, &expression{u: String("AR PL ZenKai Uni"), op: 2}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36},
				binding: 1,
				object:  1,
				op:      14,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("monospace"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     22,
			},
				{
					expr:   &expression{u: String("zh-sg"), op: 2},
					kind:   0,
					qual:   0,
					object: 34,
					op:     22,
				}},
			edits: []ruleEdit{{
				expr:    &expression{u: exprTree{&expression{u: String("DejaVu Sans Mono"), op: 2}, &expression{u: exprTree{&expression{u: String("Noto Sans Mono CJK SC"), op: 2}, &expression{u: exprTree{&expression{u: String("WenQuanYi Zen Hei Mono"), op: 2}, &expression{u: exprTree{&expression{u: String("HYSong"), op: 2}, &expression{u: exprTree{&expression{u: String("AR PL UMing CN"), op: 2}, &expression{u: exprTree{&expression{u: String("AR PL UMing HK"), op: 2}, &expression{u: exprTree{&expression{u: String("AR PL New Sung"), op: 2}, &expression{u: exprTree{&expression{u: String("AR PL UKai CN"), op: 2}, &expression{u: String("AR PL ZenKai Uni"), op: 2}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36},
				binding: 1,
				object:  1,
				op:      14,
			}},
		}}, nil, nil}},
		{name: "confs/69-language-selector-zh-tw.conf", description: "", domain: "", subst: [matchKindEnd][]directive{{{
			tests: []ruleTest{{
				expr:   &expression{u: String("serif"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     22,
			},
				{
					expr:   &expression{u: String("zh-tw"), op: 2},
					kind:   0,
					qual:   0,
					object: 34,
					op:     22,
				}},
			edits: []ruleEdit{{
				expr:    &expression{u: exprTree{&expression{u: String("Noto Serif CJK TC"), op: 2}, &expression{u: exprTree{&expression{u: String("AR PL UMing TW"), op: 2}, &expression{u: exprTree{&expression{u: String("AR PL UMing HK"), op: 2}, &expression{u: exprTree{&expression{u: String("AR PL New Sung"), op: 2}, &expression{u: exprTree{&expression{u: String("HYSong"), op: 2}, &expression{u: exprTree{&expression{u: String("WenQuanYi Bitmap Song"), op: 2}, &expression{u: exprTree{&expression{u: String("AR PL UKai TW"), op: 2}, &expression{u: exprTree{&expression{u: String("AR PL UKai HK"), op: 2}, &expression{u: exprTree{&expression{u: String("AR PL ZenKai Uni"), op: 2}, &expression{u: exprTree{&expression{u: String("DejaVu Serif"), op: 2}, &expression{u: String("Bitstream Vera Serif"), op: 2}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36},
				binding: 1,
				object:  1,
				op:      14,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("sans-serif"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     22,
			},
				{
					expr:   &expression{u: String("zh-tw"), op: 2},
					kind:   0,
					qual:   0,
					object: 34,
					op:     22,
				}},
			edits: []ruleEdit{{
				expr:    &expression{u: exprTree{&expression{u: String("Noto Sans CJK TC"), op: 2}, &expression{u: exprTree{&expression{u: String("WenQuanYi Zen Hei"), op: 2}, &expression{u: exprTree{&expression{u: String("AR PL UMing TW"), op: 2}, &expression{u: exprTree{&expression{u: String("AR PL UMing HK"), op: 2}, &expression{u: exprTree{&expression{u: String("AR PL New Sung"), op: 2}, &expression{u: exprTree{&expression{u: String("HYSong"), op: 2}, &expression{u: exprTree{&expression{u: String("AR PL UKai TW"), op: 2}, &expression{u: exprTree{&expression{u: String("AR PL UKai HK"), op: 2}, &expression{u: exprTree{&expression{u: String("AR PL ZenKai Uni"), op: 2}, &expression{u: exprTree{&expression{u: String("DejaVu Sans"), op: 2}, &expression{u: String("Bitstream Vera Sans"), op: 2}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36},
				binding: 1,
				object:  1,
				op:      14,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("monospace"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     22,
			},
				{
					expr:   &expression{u: String("zh-tw"), op: 2},
					kind:   0,
					qual:   0,
					object: 34,
					op:     22,
				}},
			edits: []ruleEdit{{
				expr:    &expression{u: exprTree{&expression{u: String("DejaVu Sans Mono"), op: 2}, &expression{u: exprTree{&expression{u: String("Noto Sans Mono CJK TC"), op: 2}, &expression{u: exprTree{&expression{u: String("WenQuanYi Zen Hei Mono"), op: 2}, &expression{u: exprTree{&expression{u: String("AR PL UMing TW"), op: 2}, &expression{u: exprTree{&expression{u: String("AR PL UMing HK"), op: 2}, &expression{u: exprTree{&expression{u: String("AR PL New Sung"), op: 2}, &expression{u: exprTree{&expression{u: String("HYSong"), op: 2}, &expression{u: exprTree{&expression{u: String("AR PL UKai TW"), op: 2}, &expression{u: exprTree{&expression{u: String("AR PL UKai HK"), op: 2}, &expression{u: exprTree{&expression{u: String("AR PL ZenKai Uni"), op: 2}, &expression{u: exprTree{&expression{u: String("DejaVu Sans Mono"), op: 2}, &expression{u: String("Bitstream Vera Sans Mono"), op: 2}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36}}, op: 36},
				binding: 1,
				object:  1,
				op:      14,
			}},
		}}, nil, nil}},
		{name: "confs/69-unifont.conf", description: "", domain: "", subst: [matchKindEnd][]directive{{{
			tests: []ruleTest{{
				expr:   &expression{u: String("serif"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: exprTree{&expression{u: String("FreeSerif"), op: 2}, &expression{u: exprTree{&expression{u: String("Code2000"), op: 2}, &expression{u: String("Code2001"), op: 2}}, op: 36}}, op: 36},
				binding: 0,
				object:  1,
				op:      14,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("sans-serif"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: exprTree{&expression{u: String("FreeSans"), op: 2}, &expression{u: exprTree{&expression{u: String("Arial Unicode MS"), op: 2}, &expression{u: exprTree{&expression{u: String("Arial Unicode"), op: 2}, &expression{u: exprTree{&expression{u: String("Code2000"), op: 2}, &expression{u: String("Code2001"), op: 2}}, op: 36}}, op: 36}}, op: 36}}, op: 36},
				binding: 0,
				object:  1,
				op:      14,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("monospace"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("FreeMono"), op: 2},
				binding: 0,
				object:  1,
				op:      14,
			}},
		}}, nil, nil}},
		{name: "confs/70-fonts-noto-cjk.conf", description: "", domain: "", subst: [matchKindEnd][]directive{{{
			tests: []ruleTest{{
				expr:   &expression{u: String("ja"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     22,
			},
				{
					expr:   &expression{u: String("serif"), op: 2},
					kind:   0,
					qual:   0,
					object: 1,
					op:     22,
				}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("Noto Serif CJK JP"), op: 2},
				binding: 0,
				object:  1,
				op:      14,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("ko"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     22,
			},
				{
					expr:   &expression{u: String("serif"), op: 2},
					kind:   0,
					qual:   0,
					object: 1,
					op:     22,
				}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("Noto Serif CJK KR"), op: 2},
				binding: 0,
				object:  1,
				op:      14,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("zh-cn"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     22,
			},
				{
					expr:   &expression{u: String("serif"), op: 2},
					kind:   0,
					qual:   0,
					object: 1,
					op:     22,
				}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("Noto Serif CJK SC"), op: 2},
				binding: 1,
				object:  1,
				op:      14,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("zh-tw"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     22,
			},
				{
					expr:   &expression{u: String("serif"), op: 2},
					kind:   0,
					qual:   0,
					object: 1,
					op:     22,
				}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("Noto Serif CJK TC"), op: 2},
				binding: 1,
				object:  1,
				op:      14,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("zh-hk"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     22,
			},
				{
					expr:   &expression{u: String("serif"), op: 2},
					kind:   0,
					qual:   0,
					object: 1,
					op:     22,
				}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("Noto Serif CJK HK"), op: 2},
				binding: 1,
				object:  1,
				op:      14,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("ja"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     22,
			},
				{
					expr:   &expression{u: String("sans-serif"), op: 2},
					kind:   0,
					qual:   0,
					object: 1,
					op:     22,
				}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("Noto Sans CJK JP"), op: 2},
				binding: 0,
				object:  1,
				op:      14,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("ko"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     22,
			},
				{
					expr:   &expression{u: String("sans-serif"), op: 2},
					kind:   0,
					qual:   0,
					object: 1,
					op:     22,
				}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("Noto Sans CJK KR"), op: 2},
				binding: 0,
				object:  1,
				op:      14,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("zh-cn"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     22,
			},
				{
					expr:   &expression{u: String("sans-serif"), op: 2},
					kind:   0,
					qual:   0,
					object: 1,
					op:     22,
				}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("Noto Sans CJK SC"), op: 2},
				binding: 1,
				object:  1,
				op:      14,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("zh-tw"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     22,
			},
				{
					expr:   &expression{u: String("sans-serif"), op: 2},
					kind:   0,
					qual:   0,
					object: 1,
					op:     22,
				}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("Noto Sans CJK TC"), op: 2},
				binding: 1,
				object:  1,
				op:      14,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("zh-hk"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     22,
			},
				{
					expr:   &expression{u: String("sans-serif"), op: 2},
					kind:   0,
					qual:   0,
					object: 1,
					op:     22,
				}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("Noto Sans CJK HK"), op: 2},
				binding: 1,
				object:  1,
				op:      14,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("ja"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     22,
			},
				{
					expr:   &expression{u: String("monospace"), op: 2},
					kind:   0,
					qual:   0,
					object: 1,
					op:     22,
				}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("Noto Sans Mono CJK JP"), op: 2},
				binding: 0,
				object:  1,
				op:      14,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("ko"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     22,
			},
				{
					expr:   &expression{u: String("monospace"), op: 2},
					kind:   0,
					qual:   0,
					object: 1,
					op:     22,
				}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("Noto Sans Mono CJK KR"), op: 2},
				binding: 0,
				object:  1,
				op:      14,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("zh-cn"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     22,
			},
				{
					expr:   &expression{u: String("monospace"), op: 2},
					kind:   0,
					qual:   0,
					object: 1,
					op:     22,
				}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("Noto Sans Mono CJK SC"), op: 2},
				binding: 1,
				object:  1,
				op:      14,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("zh-tw"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     22,
			},
				{
					expr:   &expression{u: String("monospace"), op: 2},
					kind:   0,
					qual:   0,
					object: 1,
					op:     22,
				}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("Noto Sans Mono CJK TC"), op: 2},
				binding: 1,
				object:  1,
				op:      14,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("zh-hk"), op: 2},
				kind:   0,
				qual:   0,
				object: 34,
				op:     22,
			},
				{
					expr:   &expression{u: String("monospace"), op: 2},
					kind:   0,
					qual:   0,
					object: 1,
					op:     22,
				}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("Noto Sans Mono CJK HK"), op: 2},
				binding: 1,
				object:  1,
				op:      14,
			}},
		}}, nil, nil}},
		{name: "confs/70-no-bitmaps.conf", description: "Reject bitmap fonts", domain: "", subst: [matchKindEnd][]directive{nil, nil, nil}},
		{name: "confs/70-yes-bitmaps.conf", description: "Accept bitmap fonts", domain: "", subst: [matchKindEnd][]directive{nil, nil, nil}},
		{name: "confs/80-delicious.conf", description: "", domain: "", subst: [matchKindEnd][]directive{nil, nil, {{
			tests: []ruleTest{{
				expr:   &expression{u: String("Delicious"), op: 2},
				kind:   2,
				qual:   0,
				object: 1,
				op:     65558,
			},
				{
					expr:   &expression{u: String("Heavy"), op: 2},
					kind:   2,
					qual:   0,
					object: 3,
					op:     22,
				}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("heavy"), op: 10},
				binding: 0,
				object:  8,
				op:      11,
			}},
		}}}},
		{name: "confs/89-tlwg-garuda-synthetic.conf", description: "", domain: "", subst: [matchKindEnd][]directive{{{
			tests: []ruleTest{{
				expr:   &expression{u: String("Browallia"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     24,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("Garuda"), op: 2},
				binding: 2,
				object:  1,
				op:      15,
			}},
		}}, {{
			tests: []ruleTest{{
				expr:   &expression{u: String("Garuda"), op: 2},
				kind:   1,
				qual:   0,
				object: 1,
				op:     22,
			},
				{
					expr:   &expression{u: String("Browallia"), op: 2},
					kind:   0,
					qual:   0,
					object: 1,
					op:     24,
				}},
			edits: []ruleEdit{{
				expr:    &expression{u: exprMatrix{xx: &expression{u: Float(0.68), op: 1}, xy: &expression{u: Float(0), op: 1}, yx: &expression{u: Float(0), op: 1}, yy: &expression{u: Float(0.68), op: 1}}, op: 3},
				binding: 0,
				object:  32,
				op:      11,
			}},
		}}, nil}},
		{name: "confs/89-tlwg-kinnari-synthetic.conf", description: "", domain: "", subst: [matchKindEnd][]directive{{{
			tests: []ruleTest{{
				expr:   &expression{u: String("Angsana"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     24,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("Kinnari"), op: 2},
				binding: 2,
				object:  1,
				op:      15,
			}},
		}}, {{
			tests: []ruleTest{{
				expr:   &expression{u: String("Kinnari"), op: 2},
				kind:   1,
				qual:   0,
				object: 1,
				op:     22,
			},
				{
					expr:   &expression{u: String("Angsana"), op: 2},
					kind:   0,
					qual:   0,
					object: 1,
					op:     24,
				}},
			edits: []ruleEdit{{
				expr:    &expression{u: exprMatrix{xx: &expression{u: Float(0.67), op: 1}, xy: &expression{u: Float(0), op: 1}, yx: &expression{u: Float(0), op: 1}, yy: &expression{u: Float(0.67), op: 1}}, op: 3},
				binding: 0,
				object:  32,
				op:      11,
			}},
		}}, nil}},
		{name: "confs/89-tlwg-laksaman-synthetic.conf", description: "", domain: "", subst: [matchKindEnd][]directive{{{
			tests: []ruleTest{{
				expr:   &expression{u: String("TH Sarabun"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     24,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("Laksaman"), op: 2},
				binding: 2,
				object:  1,
				op:      15,
			}},
		}}, {{
			tests: []ruleTest{{
				expr:   &expression{u: String("Laksaman"), op: 2},
				kind:   1,
				qual:   0,
				object: 1,
				op:     22,
			},
				{
					expr:   &expression{u: String("TH Sarabun"), op: 2},
					kind:   0,
					qual:   0,
					object: 1,
					op:     24,
				}},
			edits: []ruleEdit{{
				expr:    &expression{u: exprMatrix{xx: &expression{u: Float(0.66), op: 1}, xy: &expression{u: Float(0), op: 1}, yx: &expression{u: Float(0), op: 1}, yy: &expression{u: Float(0.66), op: 1}}, op: 3},
				binding: 0,
				object:  32,
				op:      11,
			}},
		}}, nil}},
		{name: "confs/89-tlwg-umpush-synthetic.conf", description: "", domain: "", subst: [matchKindEnd][]directive{{{
			tests: []ruleTest{{
				expr:   &expression{u: String("Cordia"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     24,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("Umpush"), op: 2},
				binding: 2,
				object:  1,
				op:      15,
			}},
		}}, {{
			tests: []ruleTest{{
				expr:   &expression{u: String("Umpush"), op: 2},
				kind:   1,
				qual:   0,
				object: 1,
				op:     22,
			},
				{
					expr:   &expression{u: String("Cordia"), op: 2},
					kind:   0,
					qual:   0,
					object: 1,
					op:     24,
				}},
			edits: []ruleEdit{{
				expr:    &expression{u: exprMatrix{xx: &expression{u: Float(0.65), op: 1}, xy: &expression{u: Float(0), op: 1}, yx: &expression{u: Float(0), op: 1}, yy: &expression{u: Float(0.65), op: 1}}, op: 3},
				binding: 0,
				object:  32,
				op:      11,
			}},
		}}, nil}},
		{name: "confs/90-fonts-linux-libertine.conf", description: "", domain: "", subst: [matchKindEnd][]directive{{{
			tests: []ruleTest{{
				expr:   &expression{u: String("Linux Libertine"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("Linux Libertine O"), op: 2},
				binding: 0,
				object:  1,
				op:      15,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Linux Biolinum"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     65558,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("Linux Biolinum O"), op: 2},
				binding: 0,
				object:  1,
				op:      15,
			}},
		}}, nil, nil}},
		{name: "confs/90-fonts-nanum.conf", description: "", domain: "", subst: [matchKindEnd][]directive{{{
			tests: []ruleTest{{
				expr:   &expression{u: String("NanumBarunGothic"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     22,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("DejaVu Sans"), op: 2},
				binding: 0,
				object:  1,
				op:      15,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("NanumGothic"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     22,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("DejaVu Sans"), op: 2},
				binding: 0,
				object:  1,
				op:      15,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("NanumGothicCoding"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     22,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: exprTree{&expression{u: String("NanumGothic"), op: 2}, &expression{u: String("DejaVu Sans Mono"), op: 2}}, op: 36},
				binding: 0,
				object:  1,
				op:      15,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("NanumMyeongjo"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     22,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("DejaVu Serif"), op: 2},
				binding: 0,
				object:  1,
				op:      15,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("NanumSquare"), op: 2},
				kind:   0,
				qual:   0,
				object: 1,
				op:     22,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("DejaVu Sans"), op: 2},
				binding: 0,
				object:  1,
				op:      15,
			}},
		}}, {{
			tests: []ruleTest{{
				expr:   &expression{u: String("NanumGothicCoding"), op: 2},
				kind:   1,
				qual:   0,
				object: 1,
				op:     22,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("dual"), op: 10},
				binding: 0,
				object:  13,
				op:      11,
			},
				{
					expr:    &expression{u: Bool(0), op: 5},
					binding: 0,
					object:  20,
					op:      11,
				}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("NanumGothic"), op: 2},
				kind:   1,
				qual:   0,
				object: 1,
				op:     22,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: Bool(1), op: 5},
				binding: 0,
				object:  15,
				op:      11,
			},
				{
					expr:    &expression{u: Bool(1), op: 5},
					binding: 0,
					object:  17,
					op:      11,
				},
				{
					expr:    &expression{u: Bool(0), op: 5},
					binding: 0,
					object:  19,
					op:      11,
				}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("NanumGothicCoding"), op: 2},
				kind:   1,
				qual:   0,
				object: 1,
				op:     22,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: Bool(1), op: 5},
				binding: 0,
				object:  15,
				op:      11,
			},
				{
					expr:    &expression{u: Bool(1), op: 5},
					binding: 0,
					object:  17,
					op:      11,
				},
				{
					expr:    &expression{u: Bool(0), op: 5},
					binding: 0,
					object:  19,
					op:      11,
				}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("NanumMyeongjo"), op: 2},
				kind:   1,
				qual:   0,
				object: 1,
				op:     22,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: Bool(1), op: 5},
				binding: 0,
				object:  15,
				op:      11,
			},
				{
					expr:    &expression{u: Bool(1), op: 5},
					binding: 0,
					object:  17,
					op:      11,
				},
				{
					expr:    &expression{u: Bool(0), op: 5},
					binding: 0,
					object:  19,
					op:      11,
				}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("NanumBarunGothic"), op: 2},
				kind:   1,
				qual:   0,
				object: 1,
				op:     22,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: Bool(1), op: 5},
				binding: 0,
				object:  15,
				op:      11,
			},
				{
					expr:    &expression{u: Bool(1), op: 5},
					binding: 0,
					object:  17,
					op:      11,
				},
				{
					expr:    &expression{u: Bool(0), op: 5},
					binding: 0,
					object:  19,
					op:      11,
				}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("NanumMyeongjo"), op: 2},
				kind:   1,
				qual:   0,
				object: 1,
				op:     22,
			},
				{
					expr:   &expression{u: String("hintslight"), op: 10},
					kind:   1,
					qual:   0,
					object: 16,
					op:     29,
				}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("hintslight"), op: 10},
				binding: 0,
				object:  16,
				op:      11,
			}},
		}}, {{
			tests: []ruleTest{{
				expr:   &expression{u: String("NanumBarunGothic Bold"), op: 2},
				kind:   2,
				qual:   0,
				object: 5,
				op:     22,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("bold"), op: 10},
				binding: 0,
				object:  8,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("NanumGothicBold"), op: 2},
				kind:   2,
				qual:   0,
				object: 5,
				op:     22,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("bold"), op: 10},
				binding: 0,
				object:  8,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("NanumMyeongjoBold"), op: 2},
				kind:   2,
				qual:   0,
				object: 5,
				op:     22,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("bold"), op: 10},
				binding: 0,
				object:  8,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("NanumSquare Bold"), op: 2},
				kind:   2,
				qual:   0,
				object: 5,
				op:     22,
			}},
			edits: []ruleEdit{{
				expr:    &expression{u: String("Bold"), op: 2},
				binding: 0,
				object:  3,
				op:      12,
			},
				{
					expr:    &expression{u: String("en"), op: 2},
					binding: 0,
					object:  4,
					op:      12,
				}},
		}}}},
		{name: "confs/90-synthetic.conf", description: "", domain: "", subst: [matchKindEnd][]directive{nil, {{
			tests: []ruleTest{{
				expr:   &expression{u: String("roman"), op: 10},
				kind:   1,
				qual:   0,
				object: 7,
				op:     22,
			},
				{
					expr:   &expression{u: String("roman"), op: 10},
					kind:   0,
					qual:   0,
					object: 7,
					op:     23,
				}},
			edits: []ruleEdit{{
				expr:    &expression{u: exprTree{&expression{u: exprName{object: 32, kind: -1}, op: 9}, &expression{u: exprMatrix{xx: &expression{u: Float(1), op: 1}, xy: &expression{u: Float(0.2), op: 1}, yx: &expression{u: Float(0), op: 1}, yy: &expression{u: Float(1), op: 1}}, op: 3}}, op: 33},
				binding: 0,
				object:  32,
				op:      11,
			},
				{
					expr:    &expression{u: String("oblique"), op: 10},
					binding: 0,
					object:  7,
					op:      11,
				},
				{
					expr:    &expression{u: Bool(0), op: 5},
					binding: 0,
					object:  39,
					op:      11,
				}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("medium"), op: 10},
				kind:   1,
				qual:   0,
				object: 8,
				op:     28,
			},
				{
					expr:   &expression{u: String("bold"), op: 10},
					kind:   0,
					qual:   0,
					object: 8,
					op:     30,
				}},
			edits: []ruleEdit{{
				expr:    &expression{u: Bool(1), op: 5},
				binding: 0,
				object:  38,
				op:      11,
			},
				{
					expr:    &expression{u: String("bold"), op: 10},
					binding: 0,
					object:  8,
					op:      11,
				}},
		}}, nil}},
		{name: "confs/99-language-selector-zh.conf", description: "", domain: "", subst: [matchKindEnd][]directive{nil, {{
			tests: []ruleTest{{
				expr:   &expression{u: String("Song"), op: 2},
				kind:   1,
				qual:   0,
				object: 1,
				op:     24,
			},
				{
					expr:   &expression{u: Int(100), op: 0},
					kind:   1,
					qual:   0,
					object: 8,
					op:     28,
				},
				{
					expr:   &expression{u: Int(180), op: 0},
					kind:   0,
					qual:   0,
					object: 8,
					op:     30,
				}},
			edits: []ruleEdit{{
				expr:    &expression{u: Bool(1), op: 5},
				binding: 0,
				object:  38,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Sun"), op: 2},
				kind:   1,
				qual:   0,
				object: 1,
				op:     24,
			},
				{
					expr:   &expression{u: Int(100), op: 0},
					kind:   1,
					qual:   0,
					object: 8,
					op:     28,
				},
				{
					expr:   &expression{u: Int(180), op: 0},
					kind:   0,
					qual:   0,
					object: 8,
					op:     30,
				}},
			edits: []ruleEdit{{
				expr:    &expression{u: Bool(1), op: 5},
				binding: 0,
				object:  38,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Kai"), op: 2},
				kind:   1,
				qual:   0,
				object: 1,
				op:     24,
			},
				{
					expr:   &expression{u: Int(100), op: 0},
					kind:   1,
					qual:   0,
					object: 8,
					op:     28,
				},
				{
					expr:   &expression{u: Int(180), op: 0},
					kind:   0,
					qual:   0,
					object: 8,
					op:     30,
				}},
			edits: []ruleEdit{{
				expr:    &expression{u: Bool(1), op: 5},
				binding: 0,
				object:  38,
				op:      11,
			}},
		}, {
			tests: []ruleTest{{
				expr:   &expression{u: String("Ming"), op: 2},
				kind:   1,
				qual:   0,
				object: 1,
				op:     24,
			},
				{
					expr:   &expression{u: Int(100), op: 0},
					kind:   1,
					qual:   0,
					object: 8,
					op:     28,
				},
				{
					expr:   &expression{u: Int(180), op: 0},
					kind:   0,
					qual:   0,
					object: 8,
					op:     30,
				}},
			edits: []ruleEdit{{
				expr:    &expression{u: Bool(1), op: 5},
				binding: 0,
				object:  38,
				op:      11,
			}},
		}}, nil}}},
	customObjects:  map[string]Object{"pixelsizefixupfactor": 0x4a, "scalingnotneeded": 0x4b},
	acceptGlobs:    map[string]bool{},
	rejectGlobs:    map[string]bool{},
	acceptPatterns: Fontset{Pattern{25: &valueList{valueElt{Value: Bool(0), Binding: 1}}}},
	rejectPatterns: Fontset{Pattern{1: &valueList{valueElt{Value: String("LMMono10"), Binding: 1}}, 37: &valueList{valueElt{Value: String("Type 1"), Binding: 1}}},
		Pattern{1: &valueList{valueElt{Value: String("LMMonoCaps10"), Binding: 1}}, 37: &valueList{valueElt{Value: String("Type 1"), Binding: 1}}},
		Pattern{1: &valueList{valueElt{Value: String("LMMonoLt10"), Binding: 1}}, 37: &valueList{valueElt{Value: String("Type 1"), Binding: 1}}},
		Pattern{1: &valueList{valueElt{Value: String("LMMonoLtCond10"), Binding: 1}}, 37: &valueList{valueElt{Value: String("Type 1"), Binding: 1}}},
		Pattern{1: &valueList{valueElt{Value: String("LMMonoProp10"), Binding: 1}}, 37: &valueList{valueElt{Value: String("Type 1"), Binding: 1}}},
		Pattern{1: &valueList{valueElt{Value: String("LMMonoPropLt10"), Binding: 1}}, 37: &valueList{valueElt{Value: String("Type 1"), Binding: 1}}},
		Pattern{1: &valueList{valueElt{Value: String("LMMonoSlant10"), Binding: 1}}, 37: &valueList{valueElt{Value: String("Type 1"), Binding: 1}}},
		Pattern{1: &valueList{valueElt{Value: String("LMRoman10"), Binding: 1}}, 37: &valueList{valueElt{Value: String("Type 1"), Binding: 1}}},
		Pattern{1: &valueList{valueElt{Value: String("LMRomanCaps10"), Binding: 1}}, 37: &valueList{valueElt{Value: String("Type 1"), Binding: 1}}},
		Pattern{1: &valueList{valueElt{Value: String("LMRomanDemi10"), Binding: 1}}, 37: &valueList{valueElt{Value: String("Type 1"), Binding: 1}}},
		Pattern{1: &valueList{valueElt{Value: String("LMRomanDunh10"), Binding: 1}}, 37: &valueList{valueElt{Value: String("Type 1"), Binding: 1}}},
		Pattern{1: &valueList{valueElt{Value: String("LMRomanSlant10"), Binding: 1}}, 37: &valueList{valueElt{Value: String("Type 1"), Binding: 1}}},
		Pattern{1: &valueList{valueElt{Value: String("LMRomanUnsl10"), Binding: 1}}, 37: &valueList{valueElt{Value: String("Type 1"), Binding: 1}}},
		Pattern{1: &valueList{valueElt{Value: String("LMSans10"), Binding: 1}}, 37: &valueList{valueElt{Value: String("Type 1"), Binding: 1}}},
		Pattern{1: &valueList{valueElt{Value: String("LMSansDemiCond10"), Binding: 1}}, 37: &valueList{valueElt{Value: String("Type 1"), Binding: 1}}},
		Pattern{1: &valueList{valueElt{Value: String("LMSansQuot8"), Binding: 1}}, 37: &valueList{valueElt{Value: String("Type 1"), Binding: 1}}},
		Pattern{1: &valueList{valueElt{Value: String("TeXGyreAdventor"), Binding: 1}}, 37: &valueList{valueElt{Value: String("Type 1"), Binding: 1}}},
		Pattern{1: &valueList{valueElt{Value: String("TeXGyreBonum"), Binding: 1}}, 37: &valueList{valueElt{Value: String("Type 1"), Binding: 1}}},
		Pattern{1: &valueList{valueElt{Value: String("TeXGyreChorus"), Binding: 1}}, 37: &valueList{valueElt{Value: String("Type 1"), Binding: 1}}},
		Pattern{1: &valueList{valueElt{Value: String("TeXGyreCursor"), Binding: 1}}, 37: &valueList{valueElt{Value: String("Type 1"), Binding: 1}}},
		Pattern{1: &valueList{valueElt{Value: String("TeXGyreHeros"), Binding: 1}}, 37: &valueList{valueElt{Value: String("Type 1"), Binding: 1}}},
		Pattern{1: &valueList{valueElt{Value: String("TeXGyreHerosCondensed"), Binding: 1}}, 37: &valueList{valueElt{Value: String("Type 1"), Binding: 1}}},
		Pattern{1: &valueList{valueElt{Value: String("TeXGyrePagella"), Binding: 1}}, 37: &valueList{valueElt{Value: String("Type 1"), Binding: 1}}},
		Pattern{1: &valueList{valueElt{Value: String("TeXGyreSchola"), Binding: 1}}, 37: &valueList{valueElt{Value: String("Type 1"), Binding: 1}}},
		Pattern{1: &valueList{valueElt{Value: String("TeXGyreTermes"), Binding: 1}}, 37: &valueList{valueElt{Value: String("Type 1"), Binding: 1}}},
		Pattern{25: &valueList{valueElt{Value: Bool(0), Binding: 1}}}},
	maxObjects: 22,
}

Standard exposes the parsed configuration described in the 'confs' folder.

Functions

func DefaultFontDirs

func DefaultFontDirs() ([]string, error)

DefaultFontDirs return the OS-dependent usual directories for fonts, or an error if no one exists.

func PartialScanFontDirectories

func PartialScanFontDirectories(dirs ...string) ([]fonts.FaceDescription, error)

PartialScanFontDirectories walk through the given directories and scan each font file to extract a summary. An error is returned if the directory traversal fails, not for invalid font files, which are simply ignored.

func WeightFromOT

func WeightFromOT(otWeight float32) float32

WeightFromOT returns a float value to use with `WEIGHT`, from a float in the 1..1000 range, resembling the numbers from OpenType specification's OS/2 usWeight numbers, which are also similar to CSS font-weight numbers. If input is negative, zero, or greater than 1000, returns -1. This function linearly interpolates between various WEIGHT constants. As such, the returned value does not necessarily match any of the predefined constants.

func WeightToOT

func WeightToOT(fcWeight float32) float32

WeightToOT is the inverse of `WeightFromOT`. If the input is less than `WEIGHT_THIN` or greater than `WEIGHT_EXTRABLACK`, it returns -1. Otherwise returns a number in the range 1 to 1000.

Types

type Bool

type Bool uint8

Bool is a tri-state boolean (see the associated constants)

const (
	False    Bool = iota // common `false`
	True                 // common `true`
	DontCare             // unspecified
)

func (Bool) String

func (b Bool) String() string

type Charset

type Charset struct {
	// contains filtered or unexported fields
}

Charset is a compact rune set.

Its internal representation is composed of a variable number of 'pages', where each page is a boolean set of size 256, encoding the last byte of a rune. Each rune is then mapped to a page number, defined by it second and third bytes.

func (*Charset) AddChar

func (fcs *Charset) AddChar(r rune)

AddChar add `r` to the set.

func (Charset) Copy

func (fcs Charset) Copy() Charset

Copy returns a deep copy of the charset.

func (Charset) DelChar

func (fcs Charset) DelChar(r rune)

DelChar remove the rune from the set.

func (*Charset) HasChar

func (fcs *Charset) HasChar(r rune) bool

HasChar returns `true` if `r` is in the set.

func (Charset) Len

func (a Charset) Len() int

Len returns the number of runes in the set.

func (Charset) String

func (s Charset) String() string

String returns a represensation of the internal storage of the charset.

type Config

type Config struct {
	// contains filtered or unexported fields
}

Config holds a complete configuration of the library.

This object is used to transform the patterns used in queries and returned as results. It also provides a way to exclude particular files/directories/patterns when scanning the available fonts.

A configuration is constructed from XML data files, with the `LoadFromMemory` and `LoadFromDir` methods. The 'standard' default configuration is provided in the 'confs/' directory and as the global variable `Standard`.

See also `ScanAndCache` for an all-in-one wrapper.

Example
c := NewConfig()
if err := c.LoadFromDir("confs"); err != nil {
	log.Fatal(err)
}
fontDirs, err := DefaultFontDirs()
if err != nil {
	log.Fatal(err)
}
_, err = c.ScanFontDirectories(fontDirs...)
if err != nil {
	log.Fatal(err)
}
fmt.Println("success")
Output:

success

func NewConfig

func NewConfig() *Config

NewConfig returns a new empty, initialized configuration

func (*Config) Copy

func (c *Config) Copy() *Config

Copy returns a deep copy of the configuration.

func (*Config) LoadFromDir

func (config *Config) LoadFromDir(dir string) error

LoadFromDir scans this directory, loading all files of the form [0-9]*.conf, and recurse through the subdirectories. It may be used with the included folder 'confs/' to build a 'standard' configuration. See `LoadFromMemory` if you want control over individual files.

func (*Config) LoadFromMemory

func (config *Config) LoadFromMemory(r io.Reader) error

Walks the configuration in `r` and constructs the internal representation in `config`. The new rules are added to the configuration, meaning that several file can be merged by repeated calls.

func (*Config) PrepareRender

func (config *Config) PrepareRender(pat, font Pattern) Pattern

PrepareRender creates a new pattern consisting of elements of `font` not appearing in `pat`, elements of `pat` not appearing in `font` and the best matching value from `pat` for elements appearing in both. The result is passed to `config.Substitute` with `kind = MatchResult` and then returned.

func (*Config) ScanFontDirectories

func (config *Config) ScanFontDirectories(dirs ...string) (Fontset, error)

ScanFontDirectories recursively scans the given directories, opening the valid font files and building the associated font patterns. Symbolic links for files are resolved, but not for directories. The rules with kind `MatchScan` in `config` are applied to the results. The <selectfont> rules defined in the configuration are applied to filter the returned set.

An error is returned if the directory traversal fails, not for invalid font files, which are simply ignored.

func (*Config) ScanFontFile

func (config *Config) ScanFontFile(path string) (Fontset, error)

ScanFontFile scans one font file (see ScanFontDirectories for more details). Here, an error is returned for an invalid font file. Note that only the pattern-based font selector specified in the config (if any), are applied.

func (*Config) ScanFontRessource

func (config *Config) ScanFontRessource(content fonts.Resource, contentID string) (Fontset, error)

ScanFontRessource is the same as `ScanFontFile`, for general content. `contentID` is included in the returned patterns as the file name.

func (*Config) Substitute

func (config *Config) Substitute(p, testPattern Pattern, kind matchKind)

Substitute performs the sequence of pattern modification operations on `p`. If `kind` is MatchQuery, then those tagged as pattern operations are applied, else if `kind` is MatchResult, those tagged as font operations are applied and `testPattern` is used for <test> elements with target=pattern.

type ExportedFamilySubstitution

type ExportedFamilySubstitution struct {
	Comment            string
	TestCode           string
	OpCode             string   // how to insert the families
	AdditionalFamilies []string // the families to add
}

func GenerateSubstitution

func GenerateSubstitution() ([]ExportedFamilySubstitution, error)

GenerateSubstitution exports the Standard family substitution rules

type Float

type Float float32

type FontFormat

type FontFormat string

FontFormat identifies the supported font file types.

const (
	TrueType FontFormat = "TrueType"
	PCF      FontFormat = "PCF"
	Type1    FontFormat = "Type 1"
)

func ReadFontFile

func ReadFontFile(file fonts.Resource) (fonts.Faces, FontFormat)

ReadFontFile tries for every supported font format, returning a valid font format if one matches.

func (FontFormat) Loader

func (ff FontFormat) Loader() fonts.FontLoader

Loader returns the loader for the font format.

type Fontset

type Fontset []Pattern

Fontset contains a list of Patterns, containing the results of listing fonts. The order within the set does not determine the font selection, except in the case of identical matches in which case earlier fonts match preferrentially.

func LoadFontset

func LoadFontset(src io.Reader) (Fontset, error)

LoadFontset reads a cache file, exported by the `Fontset.Serialize` method, and constructs the associated font set.

func LoadFontsetFile

func LoadFontsetFile(file string) (Fontset, error)

LoadFontsetFile is a convenience wrapper of `LoadFontset` for files.

func ScanAndCache

func ScanAndCache(fontsFileCache string) (Fontset, error)

ScanAndCache uses the standard config, scans the fonts on disk from the default directories, and caches the result into `fontsFileCache`.

func (Fontset) List

func (set Fontset) List(p Pattern, objs ...Object) Fontset

List selects fonts matching `p` (all if p is empty), creates patterns from those fonts containing only the objects in `objs` and returns the set of unique such patterns. If no objects are specified, default to all builtin objects.

func (Fontset) Match

func (set Fontset) Match(p Pattern, config *Config) Pattern

Match finds the font in `set` most closely matching `pattern` and returns the result of `config.PrepareRender` for that font and the provided pattern. This function should be called only after `config.Substitute` and `p.SubstituteDefault` have been called for `p`; otherwise the results will not be correct.

func (Fontset) Serialize

func (fs Fontset) Serialize(dst io.Writer) error

Serialize serialise the content of the font set (using a custom binary encoding and gzip). Since scanning the fonts is rather slow, this methods can be used in conjonction with `LoadFontset` to cache the result of a scan.

func (Fontset) Sort

func (set Fontset) Sort(p Pattern, trim bool) (Fontset, Charset)

Sort returns the list of fonts from `set` sorted by closeness to `pattern`. If `trim` is true, elements in the list which don't include Unicode coverage not provided by earlier elements in the list are elided. The union of Unicode coverage of all of the fonts is returned. This function should be called only after `Config.Substitute` and `Pattern.SubstituteDefault` have been called for `p`; otherwise the results will not be correct. The returned `Fontset` references Pattern structures which may be shared by the return value from multiple `Sort` calls, applications cannot modify these patterns. Instead, they should be passed, along with `p`, to `Config.PrepareRender()` which combines them into a complete pattern.

type Int

type Int int32

type Langset

type Langset struct {
	// contains filtered or unexported fields
}

Langset holds the set of languages supported by a font. These are computed for a font based on orthographic information built into the fontconfig library. Fontconfig has orthographies for all of the ISO 639-1 languages except for MS, NA, PA, PS, QU, RN, RW, SD, SG, SN, SU and ZA.

func NewLangset

func NewLangset(str string) Langset

NewLangset parse a set of language of the form <lang1>|<lang2>|... Each language should be of the form Ll-Tt where Ll is a two or three letter language from ISO 639 and Tt is a territory from ISO 3166.

func (Langset) Copy

func (ls Langset) Copy() Langset

Copy returns a deep copy of `ls`.

func (Langset) String

func (ls Langset) String() string

type Matrix

type Matrix struct {
	Xx, Xy, Yx, Yy float32
}

func (Matrix) Multiply

func (a Matrix) Multiply(b Matrix) Matrix

return a * b

type Object

type Object uint16

Object encode the properties of a font. Standard properties are built in the package, but custom ones may also be integrated inside patterns and configuration files.

const (
	FAMILY          Object // with type String
	FAMILYLANG             // with type String
	STYLE                  // with type String
	STYLELANG              // with type String
	FULLNAME               // with type String
	FULLNAMELANG           // with type String
	SLANT                  // with type Int
	WEIGHT                 // with type Range
	WIDTH                  // with type Range
	SIZE                   // with type Range
	ASPECT                 // with type Double
	PIXEL_SIZE             // with type Double
	SPACING                // with type Int
	FOUNDRY                // with type String
	ANTIALIAS              // with type Bool
	HINT_STYLE             // with type Int
	HINTING                // with type Bool
	VERTICAL_LAYOUT        // with type Bool
	AUTOHINT               // with type Bool
	GLOBAL_ADVANCE         // with type Bool
	FILE                   // with type String
	INDEX                  // with type Int
	RASTERIZER             // with type String
	OUTLINE                // with type Bool
	SCALABLE               // with type Bool
	DPI                    // with type Double
	RGBA                   // with type Int
	SCALE                  // with type Double
	MINSPACE               // with type Bool
	CHARWIDTH              // with type Int
	CHAR_HEIGHT            // with type Int
	MATRIX                 // with type Matrix
	CHARSET                // with type CharSet
	LANG                   // with type LangSet
	FONTVERSION            // with type Int
	CAPABILITY             // with type String
	FONTFORMAT             // with type String
	EMBOLDEN               // with type Bool
	EMBEDDED_BITMAP        // with type Bool
	DECORATIVE             // with type Bool
	LCD_FILTER             // with type Int
	NAMELANG               // with type String
	FONT_FEATURES          // with type String
	PRGNAME                // with type String
	HASH                   // with type String
	POSTSCRIPT_NAME        // with type String
	COLOR                  // with type Bool
	SYMBOL                 // with type Bool
	FONT_VARIATIONS        // with type String
	VARIABLE               // with type Bool
	FONT_HAS_HINT          // with type Bool
	ORDER                  // with type Int
	// Custom objects should be defined starting from this value
	FirstCustomObject
)

func (Object) String

func (object Object) String() string

type Pattern

type Pattern map[Object]*valueList

An Pattern holds a set of names with associated value lists; each name refers to a property of a font, also called `Object`. Patterns are used as inputs to the matching code as well as holding information about specific fonts. Each property can hold one or more values; conventionally all of the same type, although the interface doesn't demand that.

func BuildPattern

func BuildPattern(elements ...PatternElement) Pattern

func NewPattern

func NewPattern() Pattern

NewPattern returns an empty, initalized pattern

func (Pattern) Add

func (p Pattern) Add(object Object, value Value, appendMode bool)

Add adds the given value for the given object, with a strong binding. `appendMode` controls the location of insertion in the current list. A copy of `value` is made, so that the library retains no reference to any user-supplied data.

func (Pattern) AddBool

func (p Pattern) AddBool(object Object, value bool)

AddBool append `value` to `object` field

func (Pattern) AddFloat

func (p Pattern) AddFloat(object Object, value float32)

AddFloat append `value` to `object` field

func (Pattern) AddInt

func (p Pattern) AddInt(object Object, value int32)

AddInt append `value` to `object` field

func (Pattern) AddString

func (p Pattern) AddString(object Object, value string)

AddString append `value` to `object` field

func (Pattern) Del

func (p Pattern) Del(object Object)

Del remove all the values associated to `object`

func (Pattern) Duplicate

func (p Pattern) Duplicate() Pattern

Duplicate returns a new pattern that matches `p`. Each pattern may be modified without affecting the other one.

func (Pattern) FaceID

func (p Pattern) FaceID() fonts.FaceID

FaceID reads the FILE and INDEX records. Note that it usually only makes sense to call this function for results (for which the fields are garanteed to be valid).

func (Pattern) Format

func (p Pattern) Format() FontFormat

Format returns the font format of this pattern.

func (Pattern) GetAt

func (p Pattern) GetAt(object Object, id int) (Value, Result)

GetAt returns the value in position `id` for `object`, without type conversion.

func (Pattern) GetBool

func (p Pattern) GetBool(object Object) (Bool, bool)

GetBool return the potential Bool at `object`, index 0, if any.

func (Pattern) GetCharset

func (p Pattern) GetCharset(object Object) (Charset, bool)

GetCharset return the potential Charset at `object`, index 0, if any.

func (Pattern) GetFloat

func (p Pattern) GetFloat(object Object) (float32, bool)

GetFloat return the potential first float at `object`, if any. Note that integers are also accepted. See GetAt for more control on type conversion

func (Pattern) GetFloats

func (p Pattern) GetFloats(object Object) []float32

GetFloats returns the values with type Float at `object`

func (Pattern) GetInt

func (p Pattern) GetInt(object Object) (int32, bool)

GetInt return the potential first int at `object`, if any.

func (Pattern) GetInts

func (p Pattern) GetInts(object Object) []int32

GetInts returns the values with type Int at `object`

func (Pattern) GetMatrices

func (p Pattern) GetMatrices(object Object) []Matrix

GetMatrices returns the values with type FcMatrix at `object`

func (Pattern) GetMatrix

func (p Pattern) GetMatrix(object Object) (Matrix, bool)

GetMatrix return the potential Matrix at `object`, index 0, if any.

func (Pattern) GetString

func (p Pattern) GetString(object Object) (string, bool)

GetString return the potential string at `object`, index 0, if any.

func (Pattern) GetStrings

func (p Pattern) GetStrings(object Object) []string

GetStrings returns the values with type String at `object`

func (Pattern) Hash

func (p Pattern) Hash() string

Hash returns a value, usable as map key, and defining the pattern in terms of equality: two patterns with the same hash are considered equal.

func (Pattern) String

func (p Pattern) String() string

String returns a human friendly representation, mainly used for debugging.

func (Pattern) SubstituteDefault

func (pattern Pattern) SubstituteDefault()

SubstituteDefault performs default substitutions in a pattern, supplying default values for underspecified font patterns:

  • unspecified style or weight are set to Medium
  • unspecified style or slant are set to Roman
  • unspecified pixel size are given one computed from any specified point size (default 12), dpi (default 75) and scale (default 1).

type PatternElement

type PatternElement struct {
	Value  Value
	Object Object
}

PatternElement associate one value to a categorie (or Object)

type Range

type Range struct {
	Begin, End float32
}

type Result

type Result uint8

Result is returned when accessing elements of a pattern.

const (
	ResultMatch Result = iota
	ResultNoMatch
	ResultTypeMismatch
	ResultNoId
)

type String

type String string

type Value

type Value interface {
	// contains filtered or unexported methods
}

Value is a sum type for the values of the properties of a pattern

Directories

Path Synopsis
Read a set of language orthographies and build Go declarations for charsets which can then be used to identify which languages are supported by a given font.
Read a set of language orthographies and build Go declarations for charsets which can then be used to identify which languages are supported by a given font.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL