beidermorseash

package
v1.4.2 Latest Latest
Warning

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

Go to latest
Published: Aug 1, 2023 License: MIT Imports: 5 Imported by: 0

Documentation

Overview

THE FOLLOWING CODE WAS GENERATED USING "beidermorse/generate.go" COMMAND. DO NOT EDIT!

THE FOLLOWING CODE WAS GENERATED USING "beidermorse/generate.go" COMMAND. DO NOT EDIT!

Index

Constants

Variables

View Source
var Discards = []string{
	"ben",
	"bar",
	"ha",
}
View Source
var ErrInvalidAccuracy = fmt.Errorf("invalid accuracy value")
View Source
var ErrInvalidMode = fmt.Errorf("invalid name mode")
View Source
var FinalRules = bmpm.FinalRules{
	Approx: bmpm.FinalRule{
		First: bmpm.Rules{
			{
				Pattern: []rune("h"),
				RightContext: &bmpm.Matcher{
					MatchEmptyString: true,
				},
				Phonetic: []bmpm.RuleToken{
					{
						Text:  nil,
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("b"),
				RightContext: &bmpm.Matcher{
					MatchEmptyString: false,
					Prefix: [][]rune{
						[]rune("f"),
						[]rune("k"),
						[]rune("t"),
						[]rune("S"),
						[]rune("s"),
					},
				},
				Phonetic: []bmpm.RuleToken{
					{
						Text:  []rune("p"),
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("b"),
				RightContext: &bmpm.Matcher{
					MatchEmptyString: false,
					Prefix: [][]rune{
						[]rune("p"),
					},
				},
				Phonetic: []bmpm.RuleToken{
					{
						Text:  nil,
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("b"),
				RightContext: &bmpm.Matcher{
					MatchEmptyString: true,
				},
				Phonetic: []bmpm.RuleToken{
					{
						Text:  []rune("p"),
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("p"),
				RightContext: &bmpm.Matcher{
					MatchEmptyString: false,
					Prefix: [][]rune{
						[]rune("g"),
						[]rune("d"),
						[]rune("Z"),
						[]rune("z"),
					},
				},
				Phonetic: []bmpm.RuleToken{
					{
						Text:  []rune("b"),
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("p"),
				RightContext: &bmpm.Matcher{
					MatchEmptyString: false,
					Prefix: [][]rune{
						[]rune("b"),
					},
				},
				Phonetic: []bmpm.RuleToken{
					{
						Text:  nil,
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("v"),
				RightContext: &bmpm.Matcher{
					MatchEmptyString: false,
					Prefix: [][]rune{
						[]rune("p"),
						[]rune("k"),
						[]rune("t"),
						[]rune("S"),
						[]rune("s"),
					},
				},
				Phonetic: []bmpm.RuleToken{
					{
						Text:  []rune("f"),
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("v"),
				RightContext: &bmpm.Matcher{
					MatchEmptyString: false,
					Prefix: [][]rune{
						[]rune("f"),
					},
				},
				Phonetic: []bmpm.RuleToken{
					{
						Text:  nil,
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("v"),
				RightContext: &bmpm.Matcher{
					MatchEmptyString: true,
				},
				Phonetic: []bmpm.RuleToken{
					{
						Text:  []rune("f"),
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("f"),
				RightContext: &bmpm.Matcher{
					MatchEmptyString: false,
					Prefix: [][]rune{
						[]rune("b"),
						[]rune("g"),
						[]rune("d"),
						[]rune("Z"),
						[]rune("z"),
					},
				},
				Phonetic: []bmpm.RuleToken{
					{
						Text:  []rune("v"),
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("f"),
				RightContext: &bmpm.Matcher{
					MatchEmptyString: false,
					Prefix: [][]rune{
						[]rune("v"),
					},
				},
				Phonetic: []bmpm.RuleToken{
					{
						Text:  nil,
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("g"),
				RightContext: &bmpm.Matcher{
					MatchEmptyString: false,
					Prefix: [][]rune{
						[]rune("p"),
						[]rune("f"),
						[]rune("t"),
						[]rune("S"),
						[]rune("s"),
					},
				},
				Phonetic: []bmpm.RuleToken{
					{
						Text:  []rune("k"),
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("g"),
				RightContext: &bmpm.Matcher{
					MatchEmptyString: false,
					Prefix: [][]rune{
						[]rune("k"),
					},
				},
				Phonetic: []bmpm.RuleToken{
					{
						Text:  nil,
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("g"),
				RightContext: &bmpm.Matcher{
					MatchEmptyString: true,
				},
				Phonetic: []bmpm.RuleToken{
					{
						Text:  []rune("k"),
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("k"),
				RightContext: &bmpm.Matcher{
					MatchEmptyString: false,
					Prefix: [][]rune{
						[]rune("b"),
						[]rune("d"),
						[]rune("Z"),
						[]rune("z"),
					},
				},
				Phonetic: []bmpm.RuleToken{
					{
						Text:  []rune("g"),
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("k"),
				RightContext: &bmpm.Matcher{
					MatchEmptyString: false,
					Prefix: [][]rune{
						[]rune("g"),
					},
				},
				Phonetic: []bmpm.RuleToken{
					{
						Text:  nil,
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("d"),
				RightContext: &bmpm.Matcher{
					MatchEmptyString: false,
					Prefix: [][]rune{
						[]rune("p"),
						[]rune("f"),
						[]rune("k"),
						[]rune("S"),
						[]rune("s"),
					},
				},
				Phonetic: []bmpm.RuleToken{
					{
						Text:  []rune("t"),
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("d"),
				RightContext: &bmpm.Matcher{
					MatchEmptyString: false,
					Prefix: [][]rune{
						[]rune("t"),
					},
				},
				Phonetic: []bmpm.RuleToken{
					{
						Text:  nil,
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("d"),
				RightContext: &bmpm.Matcher{
					MatchEmptyString: true,
				},
				Phonetic: []bmpm.RuleToken{
					{
						Text:  []rune("t"),
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("t"),
				RightContext: &bmpm.Matcher{
					MatchEmptyString: false,
					Prefix: [][]rune{
						[]rune("b"),
						[]rune("g"),
						[]rune("Z"),
						[]rune("z"),
					},
				},
				Phonetic: []bmpm.RuleToken{
					{
						Text:  []rune("d"),
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("t"),
				RightContext: &bmpm.Matcher{
					MatchEmptyString: false,
					Prefix: [][]rune{
						[]rune("d"),
					},
				},
				Phonetic: []bmpm.RuleToken{
					{
						Text:  nil,
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("s"),
				RightContext: &bmpm.Matcher{
					MatchEmptyString: false,
					Prefix: [][]rune{
						[]rune("dZ"),
					},
				},
				Phonetic: []bmpm.RuleToken{
					{
						Text:  nil,
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("s"),
				RightContext: &bmpm.Matcher{
					MatchEmptyString: false,
					Prefix: [][]rune{
						[]rune("tS"),
					},
				},
				Phonetic: []bmpm.RuleToken{
					{
						Text:  nil,
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("z"),
				RightContext: &bmpm.Matcher{
					MatchEmptyString: false,
					Prefix: [][]rune{
						[]rune("p"),
						[]rune("f"),
						[]rune("k"),
						[]rune("S"),
						[]rune("t"),
					},
				},
				Phonetic: []bmpm.RuleToken{
					{
						Text:  []rune("s"),
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("z"),
				RightContext: &bmpm.Matcher{
					MatchEmptyString: false,
					Prefix: [][]rune{
						[]rune("s"),
						[]rune("S"),
						[]rune("z"),
						[]rune("Z"),
					},
				},
				Phonetic: []bmpm.RuleToken{
					{
						Text:  nil,
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("s"),
				RightContext: &bmpm.Matcher{
					MatchEmptyString: false,
					Prefix: [][]rune{
						[]rune("s"),
						[]rune("S"),
						[]rune("z"),
						[]rune("Z"),
					},
				},
				Phonetic: []bmpm.RuleToken{
					{
						Text:  nil,
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("Z"),
				RightContext: &bmpm.Matcher{
					MatchEmptyString: false,
					Prefix: [][]rune{
						[]rune("s"),
						[]rune("S"),
						[]rune("z"),
						[]rune("Z"),
					},
				},
				Phonetic: []bmpm.RuleToken{
					{
						Text:  nil,
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("S"),
				RightContext: &bmpm.Matcher{
					MatchEmptyString: false,
					Prefix: [][]rune{
						[]rune("s"),
						[]rune("S"),
						[]rune("z"),
						[]rune("Z"),
					},
				},
				Phonetic: []bmpm.RuleToken{
					{
						Text:  nil,
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("jnm"),
				Phonetic: []bmpm.RuleToken{
					{
						Text:  []rune("jm"),
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("ji"),
				LeftContext: &bmpm.Matcher{
					MatchEmptyString: true,
				},
				Phonetic: []bmpm.RuleToken{
					{
						Text:  []rune("i"),
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("jI"),
				LeftContext: &bmpm.Matcher{
					MatchEmptyString: true,
				},
				Phonetic: []bmpm.RuleToken{
					{
						Text:  []rune("I"),
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("a"),
				RightContext: &bmpm.Matcher{
					MatchEmptyString: false,
					Prefix: [][]rune{
						[]rune("a"),
						[]rune("A"),
						[]rune("B"),
					},
				},
				Phonetic: []bmpm.RuleToken{
					{
						Text:  nil,
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("a"),
				LeftContext: &bmpm.Matcher{
					MatchEmptyString: false,
					Suffix: [][]rune{
						[]rune("A"),
						[]rune("B"),
					},
				},
				Phonetic: []bmpm.RuleToken{
					{
						Text:  nil,
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("A"),
				RightContext: &bmpm.Matcher{
					MatchEmptyString: false,
					Prefix: [][]rune{
						[]rune("A"),
					},
				},
				Phonetic: []bmpm.RuleToken{
					{
						Text:  nil,
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("B"),
				RightContext: &bmpm.Matcher{
					MatchEmptyString: false,
					Prefix: [][]rune{
						[]rune("B"),
					},
				},
				Phonetic: []bmpm.RuleToken{
					{
						Text:  nil,
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("b"),
				RightContext: &bmpm.Matcher{
					MatchEmptyString: false,
					Prefix: [][]rune{
						[]rune("b"),
					},
				},
				Phonetic: []bmpm.RuleToken{
					{
						Text:  nil,
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("d"),
				RightContext: &bmpm.Matcher{
					MatchEmptyString: false,
					Prefix: [][]rune{
						[]rune("d"),
					},
				},
				Phonetic: []bmpm.RuleToken{
					{
						Text:  nil,
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("f"),
				RightContext: &bmpm.Matcher{
					MatchEmptyString: false,
					Prefix: [][]rune{
						[]rune("f"),
					},
				},
				Phonetic: []bmpm.RuleToken{
					{
						Text:  nil,
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("g"),
				RightContext: &bmpm.Matcher{
					MatchEmptyString: false,
					Prefix: [][]rune{
						[]rune("g"),
					},
				},
				Phonetic: []bmpm.RuleToken{
					{
						Text:  nil,
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("k"),
				RightContext: &bmpm.Matcher{
					MatchEmptyString: false,
					Prefix: [][]rune{
						[]rune("k"),
					},
				},
				Phonetic: []bmpm.RuleToken{
					{
						Text:  nil,
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("l"),
				RightContext: &bmpm.Matcher{
					MatchEmptyString: false,
					Prefix: [][]rune{
						[]rune("l"),
					},
				},
				Phonetic: []bmpm.RuleToken{
					{
						Text:  nil,
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("m"),
				RightContext: &bmpm.Matcher{
					MatchEmptyString: false,
					Prefix: [][]rune{
						[]rune("m"),
					},
				},
				Phonetic: []bmpm.RuleToken{
					{
						Text:  nil,
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("n"),
				RightContext: &bmpm.Matcher{
					MatchEmptyString: false,
					Prefix: [][]rune{
						[]rune("n"),
					},
				},
				Phonetic: []bmpm.RuleToken{
					{
						Text:  nil,
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("p"),
				RightContext: &bmpm.Matcher{
					MatchEmptyString: false,
					Prefix: [][]rune{
						[]rune("p"),
					},
				},
				Phonetic: []bmpm.RuleToken{
					{
						Text:  nil,
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("r"),
				RightContext: &bmpm.Matcher{
					MatchEmptyString: false,
					Prefix: [][]rune{
						[]rune("r"),
					},
				},
				Phonetic: []bmpm.RuleToken{
					{
						Text:  nil,
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("t"),
				RightContext: &bmpm.Matcher{
					MatchEmptyString: false,
					Prefix: [][]rune{
						[]rune("t"),
					},
				},
				Phonetic: []bmpm.RuleToken{
					{
						Text:  nil,
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("v"),
				RightContext: &bmpm.Matcher{
					MatchEmptyString: false,
					Prefix: [][]rune{
						[]rune("v"),
					},
				},
				Phonetic: []bmpm.RuleToken{
					{
						Text:  nil,
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("z"),
				RightContext: &bmpm.Matcher{
					MatchEmptyString: false,
					Prefix: [][]rune{
						[]rune("z"),
					},
				},
				Phonetic: []bmpm.RuleToken{
					{
						Text:  nil,
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("n"),
				RightContext: &bmpm.Matcher{
					MatchEmptyString: false,
					Prefix: [][]rune{
						[]rune("b"),
						[]rune("p"),
					},
				},
				Phonetic: []bmpm.RuleToken{
					{
						Text:  []rune("m"),
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("kAg"),
				LeftContext: &bmpm.Matcher{
					MatchEmptyString: true,
				},
				RightContext: &bmpm.Matcher{
					MatchEmptyString: false,
					Prefix: [][]rune{
						[]rune("A"),
						[]rune("E"),
						[]rune("O"),
						[]rune("I"),
						[]rune("U"),
						[]rune("a"),
						[]rune("e"),
						[]rune("o"),
						[]rune("i"),
						[]rune("u"),
					},
				},
				Phonetic: []bmpm.RuleToken{
					{
						Text:  []rune("kOg"),
						Langs: -1,
					},
					{
						Text:  []rune("kO"),
						Langs: 512,
					},
				},
			},
			{
				Pattern: []rune("kOg"),
				LeftContext: &bmpm.Matcher{
					MatchEmptyString: true,
				},
				RightContext: &bmpm.Matcher{
					MatchEmptyString: false,
					Prefix: [][]rune{
						[]rune("A"),
						[]rune("E"),
						[]rune("O"),
						[]rune("I"),
						[]rune("U"),
						[]rune("a"),
						[]rune("e"),
						[]rune("o"),
						[]rune("i"),
						[]rune("u"),
					},
				},
				Phonetic: []bmpm.RuleToken{
					{
						Text:  []rune("kAg"),
						Langs: -1,
					},
					{
						Text:  []rune("kA"),
						Langs: 512,
					},
				},
			},
			{
				Pattern: []rune("kog"),
				LeftContext: &bmpm.Matcher{
					MatchEmptyString: true,
				},
				RightContext: &bmpm.Matcher{
					MatchEmptyString: false,
					Prefix: [][]rune{
						[]rune("A"),
						[]rune("E"),
						[]rune("O"),
						[]rune("I"),
						[]rune("U"),
						[]rune("a"),
						[]rune("e"),
						[]rune("o"),
						[]rune("i"),
						[]rune("u"),
					},
				},
				Phonetic: []bmpm.RuleToken{
					{
						Text:  []rune("kog"),
						Langs: -1,
					},
					{
						Text:  []rune("ko"),
						Langs: 512,
					},
				},
			},
			{
				Pattern: []rune("kag"),
				LeftContext: &bmpm.Matcher{
					MatchEmptyString: true,
				},
				RightContext: &bmpm.Matcher{
					MatchEmptyString: false,
					Prefix: [][]rune{
						[]rune("A"),
						[]rune("E"),
						[]rune("O"),
						[]rune("I"),
						[]rune("U"),
						[]rune("a"),
						[]rune("e"),
						[]rune("o"),
						[]rune("i"),
						[]rune("u"),
					},
				},
				Phonetic: []bmpm.RuleToken{
					{
						Text:  []rune("kag"),
						Langs: -1,
					},
					{
						Text:  []rune("ka"),
						Langs: 512,
					},
				},
			},
			{
				Pattern: []rune("h"),
				Phonetic: []bmpm.RuleToken{
					{
						Text:  nil,
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("H"),
				Phonetic: []bmpm.RuleToken{
					{
						Text:  []rune("x"),
						Langs: -1,
					},
					{
						Text:  nil,
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("F"),
				RightContext: &bmpm.Matcher{
					MatchEmptyString: false,
					Prefix: [][]rune{
						[]rune("bh"),
						[]rune("dh"),
						[]rune("gh"),
						[]rune("kh"),
						[]rune("ph"),
						[]rune("sh"),
						[]rune("th"),
						[]rune("vh"),
						[]rune("zh"),
						[]rune("Zh"),
					},
				},
				Phonetic: []bmpm.RuleToken{
					{
						Text:  []rune("e"),
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("F"),
				RightContext: &bmpm.Matcher{
					MatchEmptyString: false,
					Prefix: [][]rune{
						[]rune("bx"),
						[]rune("dx"),
						[]rune("gx"),
						[]rune("kx"),
						[]rune("px"),
						[]rune("sx"),
						[]rune("tx"),
						[]rune("vx"),
						[]rune("zx"),
						[]rune("Zx"),
					},
				},
				Phonetic: []bmpm.RuleToken{
					{
						Text:  []rune("e"),
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("B"),
				RightContext: &bmpm.Matcher{
					MatchEmptyString: false,
					Prefix: [][]rune{
						[]rune("bh"),
						[]rune("dh"),
						[]rune("gh"),
						[]rune("kh"),
						[]rune("ph"),
						[]rune("sh"),
						[]rune("th"),
						[]rune("vh"),
						[]rune("zh"),
						[]rune("Zh"),
					},
				},
				Phonetic: []bmpm.RuleToken{
					{
						Text:  []rune("a"),
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("B"),
				RightContext: &bmpm.Matcher{
					MatchEmptyString: false,
					Prefix: [][]rune{
						[]rune("bx"),
						[]rune("dx"),
						[]rune("gx"),
						[]rune("kx"),
						[]rune("px"),
						[]rune("sx"),
						[]rune("tx"),
						[]rune("vx"),
						[]rune("zx"),
						[]rune("Zx"),
					},
				},
				Phonetic: []bmpm.RuleToken{
					{
						Text:  []rune("a"),
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("e"),
				LeftContext: &bmpm.Matcher{
					MatchEmptyString: false,
					Suffix: [][]rune{
						[]rune("b"),
						[]rune("d"),
						[]rune("f"),
						[]rune("g"),
						[]rune("k"),
						[]rune("l"),
						[]rune("m"),
						[]rune("n"),
						[]rune("p"),
						[]rune("r"),
						[]rune("s"),
						[]rune("S"),
						[]rune("t"),
						[]rune("v"),
						[]rune("z"),
						[]rune("Z"),
					},
				},
				RightContext: &bmpm.Matcher{
					MatchEmptyString: false,
					Exact: [][]rune{
						[]rune("l"),
						[]rune("n"),
					},
				},
				Phonetic: []bmpm.RuleToken{
					{
						Text:  nil,
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("i"),
				LeftContext: &bmpm.Matcher{
					MatchEmptyString: false,
					Suffix: [][]rune{
						[]rune("b"),
						[]rune("d"),
						[]rune("f"),
						[]rune("g"),
						[]rune("k"),
						[]rune("l"),
						[]rune("m"),
						[]rune("n"),
						[]rune("p"),
						[]rune("r"),
						[]rune("s"),
						[]rune("S"),
						[]rune("t"),
						[]rune("v"),
						[]rune("z"),
						[]rune("Z"),
					},
				},
				RightContext: &bmpm.Matcher{
					MatchEmptyString: false,
					Exact: [][]rune{
						[]rune("l"),
						[]rune("n"),
					},
				},
				Phonetic: []bmpm.RuleToken{
					{
						Text:  nil,
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("E"),
				LeftContext: &bmpm.Matcher{
					MatchEmptyString: false,
					Suffix: [][]rune{
						[]rune("b"),
						[]rune("d"),
						[]rune("f"),
						[]rune("g"),
						[]rune("k"),
						[]rune("l"),
						[]rune("m"),
						[]rune("n"),
						[]rune("p"),
						[]rune("r"),
						[]rune("s"),
						[]rune("S"),
						[]rune("t"),
						[]rune("v"),
						[]rune("z"),
						[]rune("Z"),
					},
				},
				RightContext: &bmpm.Matcher{
					MatchEmptyString: false,
					Exact: [][]rune{
						[]rune("l"),
						[]rune("n"),
					},
				},
				Phonetic: []bmpm.RuleToken{
					{
						Text:  nil,
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("I"),
				LeftContext: &bmpm.Matcher{
					MatchEmptyString: false,
					Suffix: [][]rune{
						[]rune("b"),
						[]rune("d"),
						[]rune("f"),
						[]rune("g"),
						[]rune("k"),
						[]rune("l"),
						[]rune("m"),
						[]rune("n"),
						[]rune("p"),
						[]rune("r"),
						[]rune("s"),
						[]rune("S"),
						[]rune("t"),
						[]rune("v"),
						[]rune("z"),
						[]rune("Z"),
					},
				},
				RightContext: &bmpm.Matcher{
					MatchEmptyString: false,
					Exact: [][]rune{
						[]rune("l"),
						[]rune("n"),
					},
				},
				Phonetic: []bmpm.RuleToken{
					{
						Text:  nil,
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("F"),
				LeftContext: &bmpm.Matcher{
					MatchEmptyString: false,
					Suffix: [][]rune{
						[]rune("b"),
						[]rune("d"),
						[]rune("f"),
						[]rune("g"),
						[]rune("k"),
						[]rune("l"),
						[]rune("m"),
						[]rune("n"),
						[]rune("p"),
						[]rune("r"),
						[]rune("s"),
						[]rune("S"),
						[]rune("t"),
						[]rune("v"),
						[]rune("z"),
						[]rune("Z"),
					},
				},
				RightContext: &bmpm.Matcher{
					MatchEmptyString: false,
					Exact: [][]rune{
						[]rune("l"),
						[]rune("n"),
					},
				},
				Phonetic: []bmpm.RuleToken{
					{
						Text:  nil,
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("Q"),
				LeftContext: &bmpm.Matcher{
					MatchEmptyString: false,
					Suffix: [][]rune{
						[]rune("b"),
						[]rune("d"),
						[]rune("f"),
						[]rune("g"),
						[]rune("k"),
						[]rune("l"),
						[]rune("m"),
						[]rune("n"),
						[]rune("p"),
						[]rune("r"),
						[]rune("s"),
						[]rune("S"),
						[]rune("t"),
						[]rune("v"),
						[]rune("z"),
						[]rune("Z"),
					},
				},
				RightContext: &bmpm.Matcher{
					MatchEmptyString: false,
					Exact: [][]rune{
						[]rune("l"),
						[]rune("n"),
					},
				},
				Phonetic: []bmpm.RuleToken{
					{
						Text:  nil,
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("Y"),
				LeftContext: &bmpm.Matcher{
					MatchEmptyString: false,
					Suffix: [][]rune{
						[]rune("b"),
						[]rune("d"),
						[]rune("f"),
						[]rune("g"),
						[]rune("k"),
						[]rune("l"),
						[]rune("m"),
						[]rune("n"),
						[]rune("p"),
						[]rune("r"),
						[]rune("s"),
						[]rune("S"),
						[]rune("t"),
						[]rune("v"),
						[]rune("z"),
						[]rune("Z"),
					},
				},
				RightContext: &bmpm.Matcher{
					MatchEmptyString: false,
					Exact: [][]rune{
						[]rune("l"),
						[]rune("n"),
					},
				},
				Phonetic: []bmpm.RuleToken{
					{
						Text:  nil,
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("e"),
				LeftContext: &bmpm.Matcher{
					MatchEmptyString: false,
					Suffix: [][]rune{
						[]rune("b"),
						[]rune("d"),
						[]rune("f"),
						[]rune("g"),
						[]rune("k"),
						[]rune("l"),
						[]rune("m"),
						[]rune("n"),
						[]rune("p"),
						[]rune("r"),
						[]rune("s"),
						[]rune("S"),
						[]rune("t"),
						[]rune("v"),
						[]rune("z"),
						[]rune("Z"),
					},
				},
				RightContext: &bmpm.Matcher{
					MatchEmptyString: false,
					Prefix: [][]rune{
						[]rune("lb"),
						[]rune("ld"),
						[]rune("lf"),
						[]rune("lg"),
						[]rune("lk"),
						[]rune("ll"),
						[]rune("lm"),
						[]rune("ln"),
						[]rune("lp"),
						[]rune("lr"),
						[]rune("ls"),
						[]rune("lS"),
						[]rune("lt"),
						[]rune("lv"),
						[]rune("lz"),
						[]rune("lZ"),
						[]rune("nb"),
						[]rune("nd"),
						[]rune("nf"),
						[]rune("ng"),
						[]rune("nk"),
						[]rune("nl"),
						[]rune("nm"),
						[]rune("nn"),
						[]rune("np"),
						[]rune("nr"),
						[]rune("ns"),
						[]rune("nS"),
						[]rune("nt"),
						[]rune("nv"),
						[]rune("nz"),
						[]rune("nZ"),
					},
				},
				Phonetic: []bmpm.RuleToken{
					{
						Text:  []rune("e"),
						Langs: -1,
					},
					{
						Text:  nil,
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("i"),
				LeftContext: &bmpm.Matcher{
					MatchEmptyString: false,
					Suffix: [][]rune{
						[]rune("b"),
						[]rune("d"),
						[]rune("f"),
						[]rune("g"),
						[]rune("k"),
						[]rune("l"),
						[]rune("m"),
						[]rune("n"),
						[]rune("p"),
						[]rune("r"),
						[]rune("s"),
						[]rune("S"),
						[]rune("t"),
						[]rune("v"),
						[]rune("z"),
						[]rune("Z"),
					},
				},
				RightContext: &bmpm.Matcher{
					MatchEmptyString: false,
					Prefix: [][]rune{
						[]rune("lb"),
						[]rune("ld"),
						[]rune("lf"),
						[]rune("lg"),
						[]rune("lk"),
						[]rune("ll"),
						[]rune("lm"),
						[]rune("ln"),
						[]rune("lp"),
						[]rune("lr"),
						[]rune("ls"),
						[]rune("lS"),
						[]rune("lt"),
						[]rune("lv"),
						[]rune("lz"),
						[]rune("lZ"),
						[]rune("nb"),
						[]rune("nd"),
						[]rune("nf"),
						[]rune("ng"),
						[]rune("nk"),
						[]rune("nl"),
						[]rune("nm"),
						[]rune("nn"),
						[]rune("np"),
						[]rune("nr"),
						[]rune("ns"),
						[]rune("nS"),
						[]rune("nt"),
						[]rune("nv"),
						[]rune("nz"),
						[]rune("nZ"),
					},
				},
				Phonetic: []bmpm.RuleToken{
					{
						Text:  []rune("i"),
						Langs: -1,
					},
					{
						Text:  nil,
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("E"),
				LeftContext: &bmpm.Matcher{
					MatchEmptyString: false,
					Suffix: [][]rune{
						[]rune("b"),
						[]rune("d"),
						[]rune("f"),
						[]rune("g"),
						[]rune("k"),
						[]rune("l"),
						[]rune("m"),
						[]rune("n"),
						[]rune("p"),
						[]rune("r"),
						[]rune("s"),
						[]rune("S"),
						[]rune("t"),
						[]rune("v"),
						[]rune("z"),
						[]rune("Z"),
					},
				},
				RightContext: &bmpm.Matcher{
					MatchEmptyString: false,
					Prefix: [][]rune{
						[]rune("lb"),
						[]rune("ld"),
						[]rune("lf"),
						[]rune("lg"),
						[]rune("lk"),
						[]rune("ll"),
						[]rune("lm"),
						[]rune("ln"),
						[]rune("lp"),
						[]rune("lr"),
						[]rune("ls"),
						[]rune("lS"),
						[]rune("lt"),
						[]rune("lv"),
						[]rune("lz"),
						[]rune("lZ"),
						[]rune("nb"),
						[]rune("nd"),
						[]rune("nf"),
						[]rune("ng"),
						[]rune("nk"),
						[]rune("nl"),
						[]rune("nm"),
						[]rune("nn"),
						[]rune("np"),
						[]rune("nr"),
						[]rune("ns"),
						[]rune("nS"),
						[]rune("nt"),
						[]rune("nv"),
						[]rune("nz"),
						[]rune("nZ"),
					},
				},
				Phonetic: []bmpm.RuleToken{
					{
						Text:  []rune("E"),
						Langs: -1,
					},
					{
						Text:  nil,
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("I"),
				LeftContext: &bmpm.Matcher{
					MatchEmptyString: false,
					Suffix: [][]rune{
						[]rune("b"),
						[]rune("d"),
						[]rune("f"),
						[]rune("g"),
						[]rune("k"),
						[]rune("l"),
						[]rune("m"),
						[]rune("n"),
						[]rune("p"),
						[]rune("r"),
						[]rune("s"),
						[]rune("S"),
						[]rune("t"),
						[]rune("v"),
						[]rune("z"),
						[]rune("Z"),
					},
				},
				RightContext: &bmpm.Matcher{
					MatchEmptyString: false,
					Prefix: [][]rune{
						[]rune("lb"),
						[]rune("ld"),
						[]rune("lf"),
						[]rune("lg"),
						[]rune("lk"),
						[]rune("ll"),
						[]rune("lm"),
						[]rune("ln"),
						[]rune("lp"),
						[]rune("lr"),
						[]rune("ls"),
						[]rune("lS"),
						[]rune("lt"),
						[]rune("lv"),
						[]rune("lz"),
						[]rune("lZ"),
						[]rune("nb"),
						[]rune("nd"),
						[]rune("nf"),
						[]rune("ng"),
						[]rune("nk"),
						[]rune("nl"),
						[]rune("nm"),
						[]rune("nn"),
						[]rune("np"),
						[]rune("nr"),
						[]rune("ns"),
						[]rune("nS"),
						[]rune("nt"),
						[]rune("nv"),
						[]rune("nz"),
						[]rune("nZ"),
					},
				},
				Phonetic: []bmpm.RuleToken{
					{
						Text:  []rune("I"),
						Langs: -1,
					},
					{
						Text:  nil,
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("F"),
				LeftContext: &bmpm.Matcher{
					MatchEmptyString: false,
					Suffix: [][]rune{
						[]rune("b"),
						[]rune("d"),
						[]rune("f"),
						[]rune("g"),
						[]rune("k"),
						[]rune("l"),
						[]rune("m"),
						[]rune("n"),
						[]rune("p"),
						[]rune("r"),
						[]rune("s"),
						[]rune("S"),
						[]rune("t"),
						[]rune("v"),
						[]rune("z"),
						[]rune("Z"),
					},
				},
				RightContext: &bmpm.Matcher{
					MatchEmptyString: false,
					Prefix: [][]rune{
						[]rune("lb"),
						[]rune("ld"),
						[]rune("lf"),
						[]rune("lg"),
						[]rune("lk"),
						[]rune("ll"),
						[]rune("lm"),
						[]rune("ln"),
						[]rune("lp"),
						[]rune("lr"),
						[]rune("ls"),
						[]rune("lS"),
						[]rune("lt"),
						[]rune("lv"),
						[]rune("lz"),
						[]rune("lZ"),
						[]rune("nb"),
						[]rune("nd"),
						[]rune("nf"),
						[]rune("ng"),
						[]rune("nk"),
						[]rune("nl"),
						[]rune("nm"),
						[]rune("nn"),
						[]rune("np"),
						[]rune("nr"),
						[]rune("ns"),
						[]rune("nS"),
						[]rune("nt"),
						[]rune("nv"),
						[]rune("nz"),
						[]rune("nZ"),
					},
				},
				Phonetic: []bmpm.RuleToken{
					{
						Text:  []rune("F"),
						Langs: -1,
					},
					{
						Text:  nil,
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("Q"),
				LeftContext: &bmpm.Matcher{
					MatchEmptyString: false,
					Suffix: [][]rune{
						[]rune("b"),
						[]rune("d"),
						[]rune("f"),
						[]rune("g"),
						[]rune("k"),
						[]rune("l"),
						[]rune("m"),
						[]rune("n"),
						[]rune("p"),
						[]rune("r"),
						[]rune("s"),
						[]rune("S"),
						[]rune("t"),
						[]rune("v"),
						[]rune("z"),
						[]rune("Z"),
					},
				},
				RightContext: &bmpm.Matcher{
					MatchEmptyString: false,
					Prefix: [][]rune{
						[]rune("lb"),
						[]rune("ld"),
						[]rune("lf"),
						[]rune("lg"),
						[]rune("lk"),
						[]rune("ll"),
						[]rune("lm"),
						[]rune("ln"),
						[]rune("lp"),
						[]rune("lr"),
						[]rune("ls"),
						[]rune("lS"),
						[]rune("lt"),
						[]rune("lv"),
						[]rune("lz"),
						[]rune("lZ"),
						[]rune("nb"),
						[]rune("nd"),
						[]rune("nf"),
						[]rune("ng"),
						[]rune("nk"),
						[]rune("nl"),
						[]rune("nm"),
						[]rune("nn"),
						[]rune("np"),
						[]rune("nr"),
						[]rune("ns"),
						[]rune("nS"),
						[]rune("nt"),
						[]rune("nv"),
						[]rune("nz"),
						[]rune("nZ"),
					},
				},
				Phonetic: []bmpm.RuleToken{
					{
						Text:  []rune("Q"),
						Langs: -1,
					},
					{
						Text:  nil,
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("Y"),
				LeftContext: &bmpm.Matcher{
					MatchEmptyString: false,
					Suffix: [][]rune{
						[]rune("b"),
						[]rune("d"),
						[]rune("f"),
						[]rune("g"),
						[]rune("k"),
						[]rune("l"),
						[]rune("m"),
						[]rune("n"),
						[]rune("p"),
						[]rune("r"),
						[]rune("s"),
						[]rune("S"),
						[]rune("t"),
						[]rune("v"),
						[]rune("z"),
						[]rune("Z"),
					},
				},
				RightContext: &bmpm.Matcher{
					MatchEmptyString: false,
					Prefix: [][]rune{
						[]rune("lb"),
						[]rune("ld"),
						[]rune("lf"),
						[]rune("lg"),
						[]rune("lk"),
						[]rune("ll"),
						[]rune("lm"),
						[]rune("ln"),
						[]rune("lp"),
						[]rune("lr"),
						[]rune("ls"),
						[]rune("lS"),
						[]rune("lt"),
						[]rune("lv"),
						[]rune("lz"),
						[]rune("lZ"),
						[]rune("nb"),
						[]rune("nd"),
						[]rune("nf"),
						[]rune("ng"),
						[]rune("nk"),
						[]rune("nl"),
						[]rune("nm"),
						[]rune("nn"),
						[]rune("np"),
						[]rune("nr"),
						[]rune("ns"),
						[]rune("nS"),
						[]rune("nt"),
						[]rune("nv"),
						[]rune("nz"),
						[]rune("nZ"),
					},
				},
				Phonetic: []bmpm.RuleToken{
					{
						Text:  []rune("Y"),
						Langs: -1,
					},
					{
						Text:  nil,
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("lEs"),
				Phonetic: []bmpm.RuleToken{
					{
						Text:  []rune("lEs"),
						Langs: -1,
					},
					{
						Text:  []rune("lz"),
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("lE"),
				LeftContext: &bmpm.Matcher{
					MatchEmptyString: false,
					Suffix: [][]rune{
						[]rune("b"),
						[]rune("d"),
						[]rune("f"),
						[]rune("g"),
						[]rune("k"),
						[]rune("m"),
						[]rune("n"),
						[]rune("p"),
						[]rune("r"),
						[]rune("S"),
						[]rune("t"),
						[]rune("v"),
						[]rune("z"),
						[]rune("Z"),
					},
				},
				Phonetic: []bmpm.RuleToken{
					{
						Text:  []rune("lE"),
						Langs: -1,
					},
					{
						Text:  []rune("l"),
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("aue"),
				Phonetic: []bmpm.RuleToken{
					{
						Text:  []rune("D"),
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("oue"),
				Phonetic: []bmpm.RuleToken{
					{
						Text:  []rune("D"),
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("AvE"),
				Phonetic: []bmpm.RuleToken{
					{
						Text:  []rune("D"),
						Langs: -1,
					},
					{
						Text:  []rune("AvE"),
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("Ave"),
				Phonetic: []bmpm.RuleToken{
					{
						Text:  []rune("D"),
						Langs: -1,
					},
					{
						Text:  []rune("Ave"),
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("avE"),
				Phonetic: []bmpm.RuleToken{
					{
						Text:  []rune("D"),
						Langs: -1,
					},
					{
						Text:  []rune("avE"),
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("ave"),
				Phonetic: []bmpm.RuleToken{
					{
						Text:  []rune("D"),
						Langs: -1,
					},
					{
						Text:  []rune("ave"),
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("OvE"),
				Phonetic: []bmpm.RuleToken{
					{
						Text:  []rune("D"),
						Langs: -1,
					},
					{
						Text:  []rune("OvE"),
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("Ove"),
				Phonetic: []bmpm.RuleToken{
					{
						Text:  []rune("D"),
						Langs: -1,
					},
					{
						Text:  []rune("Ove"),
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("ovE"),
				Phonetic: []bmpm.RuleToken{
					{
						Text:  []rune("D"),
						Langs: -1,
					},
					{
						Text:  []rune("ovE"),
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("ove"),
				Phonetic: []bmpm.RuleToken{
					{
						Text:  []rune("D"),
						Langs: -1,
					},
					{
						Text:  []rune("ove"),
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("ea"),
				Phonetic: []bmpm.RuleToken{
					{
						Text:  []rune("D"),
						Langs: -1,
					},
					{
						Text:  []rune("ea"),
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("EA"),
				Phonetic: []bmpm.RuleToken{
					{
						Text:  []rune("D"),
						Langs: -1,
					},
					{
						Text:  []rune("EA"),
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("Ea"),
				Phonetic: []bmpm.RuleToken{
					{
						Text:  []rune("D"),
						Langs: -1,
					},
					{
						Text:  []rune("Ea"),
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("eA"),
				Phonetic: []bmpm.RuleToken{
					{
						Text:  []rune("D"),
						Langs: -1,
					},
					{
						Text:  []rune("eA"),
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("aji"),
				Phonetic: []bmpm.RuleToken{
					{
						Text:  []rune("D"),
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("ajI"),
				Phonetic: []bmpm.RuleToken{
					{
						Text:  []rune("D"),
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("aje"),
				Phonetic: []bmpm.RuleToken{
					{
						Text:  []rune("D"),
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("ajE"),
				Phonetic: []bmpm.RuleToken{
					{
						Text:  []rune("D"),
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("Aji"),
				Phonetic: []bmpm.RuleToken{
					{
						Text:  []rune("D"),
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("AjI"),
				Phonetic: []bmpm.RuleToken{
					{
						Text:  []rune("D"),
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("Aje"),
				Phonetic: []bmpm.RuleToken{
					{
						Text:  []rune("D"),
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("AjE"),
				Phonetic: []bmpm.RuleToken{
					{
						Text:  []rune("D"),
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("oji"),
				Phonetic: []bmpm.RuleToken{
					{
						Text:  []rune("D"),
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("ojI"),
				Phonetic: []bmpm.RuleToken{
					{
						Text:  []rune("D"),
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("oje"),
				Phonetic: []bmpm.RuleToken{
					{
						Text:  []rune("D"),
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("ojE"),
				Phonetic: []bmpm.RuleToken{
					{
						Text:  []rune("D"),
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("Oji"),
				Phonetic: []bmpm.RuleToken{
					{
						Text:  []rune("D"),
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("OjI"),
				Phonetic: []bmpm.RuleToken{
					{
						Text:  []rune("D"),
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("Oje"),
				Phonetic: []bmpm.RuleToken{
					{
						Text:  []rune("D"),
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("OjE"),
				Phonetic: []bmpm.RuleToken{
					{
						Text:  []rune("D"),
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("eji"),
				Phonetic: []bmpm.RuleToken{
					{
						Text:  []rune("D"),
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("ejI"),
				Phonetic: []bmpm.RuleToken{
					{
						Text:  []rune("D"),
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("eje"),
				Phonetic: []bmpm.RuleToken{
					{
						Text:  []rune("D"),
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("ejE"),
				Phonetic: []bmpm.RuleToken{
					{
						Text:  []rune("D"),
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("Eji"),
				Phonetic: []bmpm.RuleToken{
					{
						Text:  []rune("D"),
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("EjI"),
				Phonetic: []bmpm.RuleToken{
					{
						Text:  []rune("D"),
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("Eje"),
				Phonetic: []bmpm.RuleToken{
					{
						Text:  []rune("D"),
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("EjE"),
				Phonetic: []bmpm.RuleToken{
					{
						Text:  []rune("D"),
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("uji"),
				Phonetic: []bmpm.RuleToken{
					{
						Text:  []rune("D"),
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("ujI"),
				Phonetic: []bmpm.RuleToken{
					{
						Text:  []rune("D"),
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("uje"),
				Phonetic: []bmpm.RuleToken{
					{
						Text:  []rune("D"),
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("ujE"),
				Phonetic: []bmpm.RuleToken{
					{
						Text:  []rune("D"),
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("Uji"),
				Phonetic: []bmpm.RuleToken{
					{
						Text:  []rune("D"),
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("UjI"),
				Phonetic: []bmpm.RuleToken{
					{
						Text:  []rune("D"),
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("Uje"),
				Phonetic: []bmpm.RuleToken{
					{
						Text:  []rune("D"),
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("UjE"),
				Phonetic: []bmpm.RuleToken{
					{
						Text:  []rune("D"),
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("iji"),
				Phonetic: []bmpm.RuleToken{
					{
						Text:  []rune("D"),
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("ijI"),
				Phonetic: []bmpm.RuleToken{
					{
						Text:  []rune("D"),
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("ije"),
				Phonetic: []bmpm.RuleToken{
					{
						Text:  []rune("D"),
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("ijE"),
				Phonetic: []bmpm.RuleToken{
					{
						Text:  []rune("D"),
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("Iji"),
				Phonetic: []bmpm.RuleToken{
					{
						Text:  []rune("D"),
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("IjI"),
				Phonetic: []bmpm.RuleToken{
					{
						Text:  []rune("D"),
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("Ije"),
				Phonetic: []bmpm.RuleToken{
					{
						Text:  []rune("D"),
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("IjE"),
				Phonetic: []bmpm.RuleToken{
					{
						Text:  []rune("D"),
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("aja"),
				Phonetic: []bmpm.RuleToken{
					{
						Text:  []rune("D"),
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("ajA"),
				Phonetic: []bmpm.RuleToken{
					{
						Text:  []rune("D"),
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("ajo"),
				Phonetic: []bmpm.RuleToken{
					{
						Text:  []rune("D"),
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("ajO"),
				Phonetic: []bmpm.RuleToken{
					{
						Text:  []rune("D"),
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("aju"),
				Phonetic: []bmpm.RuleToken{
					{
						Text:  []rune("D"),
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("ajU"),
				Phonetic: []bmpm.RuleToken{
					{
						Text:  []rune("D"),
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("Aja"),
				Phonetic: []bmpm.RuleToken{
					{
						Text:  []rune("D"),
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("AjA"),
				Phonetic: []bmpm.RuleToken{
					{
						Text:  []rune("D"),
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("Ajo"),
				Phonetic: []bmpm.RuleToken{
					{
						Text:  []rune("D"),
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("AjO"),
				Phonetic: []bmpm.RuleToken{
					{
						Text:  []rune("D"),
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("Aju"),
				Phonetic: []bmpm.RuleToken{
					{
						Text:  []rune("D"),
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("AjU"),
				Phonetic: []bmpm.RuleToken{
					{
						Text:  []rune("D"),
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("oja"),
				Phonetic: []bmpm.RuleToken{
					{
						Text:  []rune("D"),
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("ojA"),
				Phonetic: []bmpm.RuleToken{
					{
						Text:  []rune("D"),
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("ojo"),
				Phonetic: []bmpm.RuleToken{
					{
						Text:  []rune("D"),
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("ojO"),
				Phonetic: []bmpm.RuleToken{
					{
						Text:  []rune("D"),
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("Aju"),
				Phonetic: []bmpm.RuleToken{
					{
						Text:  []rune("D"),
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("AjU"),
				Phonetic: []bmpm.RuleToken{
					{
						Text:  []rune("D"),
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("Oja"),
				Phonetic: []bmpm.RuleToken{
					{
						Text:  []rune("D"),
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("OjA"),
				Phonetic: []bmpm.RuleToken{
					{
						Text:  []rune("D"),
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("Ojo"),
				Phonetic: []bmpm.RuleToken{
					{
						Text:  []rune("D"),
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("OjO"),
				Phonetic: []bmpm.RuleToken{
					{
						Text:  []rune("D"),
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("Aju"),
				Phonetic: []bmpm.RuleToken{
					{
						Text:  []rune("D"),
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("AjU"),
				Phonetic: []bmpm.RuleToken{
					{
						Text:  []rune("D"),
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("eja"),
				Phonetic: []bmpm.RuleToken{
					{
						Text:  []rune("D"),
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("ejA"),
				Phonetic: []bmpm.RuleToken{
					{
						Text:  []rune("D"),
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("ejo"),
				Phonetic: []bmpm.RuleToken{
					{
						Text:  []rune("D"),
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("ejO"),
				Phonetic: []bmpm.RuleToken{
					{
						Text:  []rune("D"),
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("Aju"),
				Phonetic: []bmpm.RuleToken{
					{
						Text:  []rune("D"),
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("AjU"),
				Phonetic: []bmpm.RuleToken{
					{
						Text:  []rune("D"),
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("Eja"),
				Phonetic: []bmpm.RuleToken{
					{
						Text:  []rune("D"),
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("EjA"),
				Phonetic: []bmpm.RuleToken{
					{
						Text:  []rune("D"),
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("Ejo"),
				Phonetic: []bmpm.RuleToken{
					{
						Text:  []rune("D"),
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("EjO"),
				Phonetic: []bmpm.RuleToken{
					{
						Text:  []rune("D"),
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("Aju"),
				Phonetic: []bmpm.RuleToken{
					{
						Text:  []rune("D"),
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("AjU"),
				Phonetic: []bmpm.RuleToken{
					{
						Text:  []rune("D"),
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("uja"),
				Phonetic: []bmpm.RuleToken{
					{
						Text:  []rune("D"),
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("ujA"),
				Phonetic: []bmpm.RuleToken{
					{
						Text:  []rune("D"),
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("ujo"),
				Phonetic: []bmpm.RuleToken{
					{
						Text:  []rune("D"),
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("ujO"),
				Phonetic: []bmpm.RuleToken{
					{
						Text:  []rune("D"),
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("Aju"),
				Phonetic: []bmpm.RuleToken{
					{
						Text:  []rune("D"),
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("AjU"),
				Phonetic: []bmpm.RuleToken{
					{
						Text:  []rune("D"),
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("Uja"),
				Phonetic: []bmpm.RuleToken{
					{
						Text:  []rune("D"),
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("UjA"),
				Phonetic: []bmpm.RuleToken{
					{
						Text:  []rune("D"),
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("Ujo"),
				Phonetic: []bmpm.RuleToken{
					{
						Text:  []rune("D"),
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("UjO"),
				Phonetic: []bmpm.RuleToken{
					{
						Text:  []rune("D"),
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("Aju"),
				Phonetic: []bmpm.RuleToken{
					{
						Text:  []rune("D"),
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("AjU"),
				Phonetic: []bmpm.RuleToken{
					{
						Text:  []rune("D"),
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("ija"),
				Phonetic: []bmpm.RuleToken{
					{
						Text:  []rune("D"),
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("ijA"),
				Phonetic: []bmpm.RuleToken{
					{
						Text:  []rune("D"),
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("ijo"),
				Phonetic: []bmpm.RuleToken{
					{
						Text:  []rune("D"),
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("ijO"),
				Phonetic: []bmpm.RuleToken{
					{
						Text:  []rune("D"),
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("Aju"),
				Phonetic: []bmpm.RuleToken{
					{
						Text:  []rune("D"),
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("AjU"),
				Phonetic: []bmpm.RuleToken{
					{
						Text:  []rune("D"),
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("Ija"),
				Phonetic: []bmpm.RuleToken{
					{
						Text:  []rune("D"),
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("IjA"),
				Phonetic: []bmpm.RuleToken{
					{
						Text:  []rune("D"),
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("Ijo"),
				Phonetic: []bmpm.RuleToken{
					{
						Text:  []rune("D"),
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("IjO"),
				Phonetic: []bmpm.RuleToken{
					{
						Text:  []rune("D"),
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("Aju"),
				Phonetic: []bmpm.RuleToken{
					{
						Text:  []rune("D"),
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("AjU"),
				Phonetic: []bmpm.RuleToken{
					{
						Text:  []rune("D"),
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("j"),
				Phonetic: []bmpm.RuleToken{
					{
						Text:  []rune("i"),
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("lYndEr"),
				RightContext: &bmpm.Matcher{
					MatchEmptyString: true,
				},
				Phonetic: []bmpm.RuleToken{
					{
						Text:  []rune("lYnder"),
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("lander"),
				RightContext: &bmpm.Matcher{
					MatchEmptyString: true,
				},
				Phonetic: []bmpm.RuleToken{
					{
						Text:  []rune("lYnder"),
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("lAndEr"),
				RightContext: &bmpm.Matcher{
					MatchEmptyString: true,
				},
				Phonetic: []bmpm.RuleToken{
					{
						Text:  []rune("lYnder"),
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("lAnder"),
				RightContext: &bmpm.Matcher{
					MatchEmptyString: true,
				},
				Phonetic: []bmpm.RuleToken{
					{
						Text:  []rune("lYnder"),
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("landEr"),
				RightContext: &bmpm.Matcher{
					MatchEmptyString: true,
				},
				Phonetic: []bmpm.RuleToken{
					{
						Text:  []rune("lYnder"),
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("lender"),
				RightContext: &bmpm.Matcher{
					MatchEmptyString: true,
				},
				Phonetic: []bmpm.RuleToken{
					{
						Text:  []rune("lYnder"),
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("lEndEr"),
				RightContext: &bmpm.Matcher{
					MatchEmptyString: true,
				},
				Phonetic: []bmpm.RuleToken{
					{
						Text:  []rune("lYnder"),
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("lendEr"),
				RightContext: &bmpm.Matcher{
					MatchEmptyString: true,
				},
				Phonetic: []bmpm.RuleToken{
					{
						Text:  []rune("lYnder"),
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("lEnder"),
				RightContext: &bmpm.Matcher{
					MatchEmptyString: true,
				},
				Phonetic: []bmpm.RuleToken{
					{
						Text:  []rune("lYnder"),
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("bUrk"),
				RightContext: &bmpm.Matcher{
					MatchEmptyString: true,
				},
				Phonetic: []bmpm.RuleToken{
					{
						Text:  []rune("burk"),
						Langs: -1,
					},
					{
						Text:  []rune("berk"),
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("burk"),
				RightContext: &bmpm.Matcher{
					MatchEmptyString: true,
				},
				Phonetic: []bmpm.RuleToken{
					{
						Text:  []rune("burk"),
						Langs: -1,
					},
					{
						Text:  []rune("berk"),
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("bUrg"),
				RightContext: &bmpm.Matcher{
					MatchEmptyString: true,
				},
				Phonetic: []bmpm.RuleToken{
					{
						Text:  []rune("burk"),
						Langs: -1,
					},
					{
						Text:  []rune("berk"),
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("burg"),
				RightContext: &bmpm.Matcher{
					MatchEmptyString: true,
				},
				Phonetic: []bmpm.RuleToken{
					{
						Text:  []rune("burk"),
						Langs: -1,
					},
					{
						Text:  []rune("berk"),
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("s"),
				RightContext: &bmpm.Matcher{
					MatchEmptyString: false,
					Prefix: [][]rune{
						[]rune("r"),
						[]rune("m"),
						[]rune("n"),
						[]rune("l"),
					},
				},
				Phonetic: []bmpm.RuleToken{
					{
						Text:  []rune("z"),
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("S"),
				RightContext: &bmpm.Matcher{
					MatchEmptyString: false,
					Prefix: [][]rune{
						[]rune("r"),
						[]rune("m"),
						[]rune("n"),
						[]rune("l"),
					},
				},
				Phonetic: []bmpm.RuleToken{
					{
						Text:  []rune("z"),
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("s"),
				LeftContext: &bmpm.Matcher{
					MatchEmptyString: false,
					Suffix: [][]rune{
						[]rune("r"),
						[]rune("m"),
						[]rune("n"),
						[]rune("l"),
					},
				},
				Phonetic: []bmpm.RuleToken{
					{
						Text:  []rune("z"),
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("S"),
				LeftContext: &bmpm.Matcher{
					MatchEmptyString: false,
					Suffix: [][]rune{
						[]rune("r"),
						[]rune("m"),
						[]rune("n"),
						[]rune("l"),
					},
				},
				Phonetic: []bmpm.RuleToken{
					{
						Text:  []rune("z"),
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("dS"),
				RightContext: &bmpm.Matcher{
					MatchEmptyString: true,
				},
				Phonetic: []bmpm.RuleToken{
					{
						Text:  []rune("S"),
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("dZ"),
				RightContext: &bmpm.Matcher{
					MatchEmptyString: true,
				},
				Phonetic: []bmpm.RuleToken{
					{
						Text:  []rune("S"),
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("Z"),
				RightContext: &bmpm.Matcher{
					MatchEmptyString: true,
				},
				Phonetic: []bmpm.RuleToken{
					{
						Text:  []rune("S"),
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("S"),
				RightContext: &bmpm.Matcher{
					MatchEmptyString: true,
				},
				Phonetic: []bmpm.RuleToken{
					{
						Text:  []rune("S"),
						Langs: -1,
					},
					{
						Text:  []rune("s"),
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("z"),
				RightContext: &bmpm.Matcher{
					MatchEmptyString: true,
				},
				Phonetic: []bmpm.RuleToken{
					{
						Text:  []rune("S"),
						Langs: -1,
					},
					{
						Text:  []rune("s"),
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("S"),
				Phonetic: []bmpm.RuleToken{
					{
						Text:  []rune("s"),
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("dZ"),
				Phonetic: []bmpm.RuleToken{
					{
						Text:  []rune("z"),
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("Z"),
				Phonetic: []bmpm.RuleToken{
					{
						Text:  []rune("z"),
						Langs: -1,
					},
				},
			},
		},
		Second: map[bmpm.Lang]bmpm.Rules{
			bmpm.Lang(Any): {
				{
					Pattern: []rune("b"),
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("b"),
							Langs: -1,
						},
						{
							Text:  []rune("v"),
							Langs: 1024,
						},
					},
				},
				{
					Pattern: []rune("J"),
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("z"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("aiB"),
					RightContext: &bmpm.Matcher{
						MatchEmptyString: false,
						Prefix: [][]rune{
							[]rune("b"),
							[]rune("p"),
						},
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("D"),
							Langs: -1,
						},
						{
							Text:  []rune("Dm"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("AiB"),
					RightContext: &bmpm.Matcher{
						MatchEmptyString: false,
						Prefix: [][]rune{
							[]rune("b"),
							[]rune("p"),
						},
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("D"),
							Langs: -1,
						},
						{
							Text:  []rune("Dm"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("oiB"),
					RightContext: &bmpm.Matcher{
						MatchEmptyString: false,
						Prefix: [][]rune{
							[]rune("b"),
							[]rune("p"),
						},
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("D"),
							Langs: -1,
						},
						{
							Text:  []rune("Dm"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("OiB"),
					RightContext: &bmpm.Matcher{
						MatchEmptyString: false,
						Prefix: [][]rune{
							[]rune("b"),
							[]rune("p"),
						},
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("D"),
							Langs: -1,
						},
						{
							Text:  []rune("Dm"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("uiB"),
					RightContext: &bmpm.Matcher{
						MatchEmptyString: false,
						Prefix: [][]rune{
							[]rune("b"),
							[]rune("p"),
						},
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("D"),
							Langs: -1,
						},
						{
							Text:  []rune("Dm"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("UiB"),
					RightContext: &bmpm.Matcher{
						MatchEmptyString: false,
						Prefix: [][]rune{
							[]rune("b"),
							[]rune("p"),
						},
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("D"),
							Langs: -1,
						},
						{
							Text:  []rune("Dm"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("eiB"),
					RightContext: &bmpm.Matcher{
						MatchEmptyString: false,
						Prefix: [][]rune{
							[]rune("b"),
							[]rune("p"),
						},
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("D"),
							Langs: -1,
						},
						{
							Text:  []rune("Dm"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("EiB"),
					RightContext: &bmpm.Matcher{
						MatchEmptyString: false,
						Prefix: [][]rune{
							[]rune("b"),
							[]rune("p"),
						},
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("D"),
							Langs: -1,
						},
						{
							Text:  []rune("Dm"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("iiB"),
					RightContext: &bmpm.Matcher{
						MatchEmptyString: false,
						Prefix: [][]rune{
							[]rune("b"),
							[]rune("p"),
						},
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("D"),
							Langs: -1,
						},
						{
							Text:  []rune("Dm"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("IiB"),
					RightContext: &bmpm.Matcher{
						MatchEmptyString: false,
						Prefix: [][]rune{
							[]rune("b"),
							[]rune("p"),
						},
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("D"),
							Langs: -1,
						},
						{
							Text:  []rune("Dm"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("aiB"),
					RightContext: &bmpm.Matcher{
						MatchEmptyString: false,
						Prefix: [][]rune{
							[]rune("d"),
							[]rune("g"),
							[]rune("k"),
							[]rune("s"),
							[]rune("t"),
							[]rune("v"),
							[]rune("z"),
						},
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("D"),
							Langs: -1,
						},
						{
							Text:  []rune("Dn"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("AiB"),
					RightContext: &bmpm.Matcher{
						MatchEmptyString: false,
						Prefix: [][]rune{
							[]rune("d"),
							[]rune("g"),
							[]rune("k"),
							[]rune("s"),
							[]rune("t"),
							[]rune("v"),
							[]rune("z"),
						},
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("D"),
							Langs: -1,
						},
						{
							Text:  []rune("Dn"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("oiB"),
					RightContext: &bmpm.Matcher{
						MatchEmptyString: false,
						Prefix: [][]rune{
							[]rune("d"),
							[]rune("g"),
							[]rune("k"),
							[]rune("s"),
							[]rune("t"),
							[]rune("v"),
							[]rune("z"),
						},
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("D"),
							Langs: -1,
						},
						{
							Text:  []rune("Dn"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("OiB"),
					RightContext: &bmpm.Matcher{
						MatchEmptyString: false,
						Prefix: [][]rune{
							[]rune("d"),
							[]rune("g"),
							[]rune("k"),
							[]rune("s"),
							[]rune("t"),
							[]rune("v"),
							[]rune("z"),
						},
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("D"),
							Langs: -1,
						},
						{
							Text:  []rune("Dn"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("uiB"),
					RightContext: &bmpm.Matcher{
						MatchEmptyString: false,
						Prefix: [][]rune{
							[]rune("d"),
							[]rune("g"),
							[]rune("k"),
							[]rune("s"),
							[]rune("t"),
							[]rune("v"),
							[]rune("z"),
						},
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("D"),
							Langs: -1,
						},
						{
							Text:  []rune("Dn"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("UiB"),
					RightContext: &bmpm.Matcher{
						MatchEmptyString: false,
						Prefix: [][]rune{
							[]rune("d"),
							[]rune("g"),
							[]rune("k"),
							[]rune("s"),
							[]rune("t"),
							[]rune("v"),
							[]rune("z"),
						},
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("D"),
							Langs: -1,
						},
						{
							Text:  []rune("Dn"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("eiB"),
					RightContext: &bmpm.Matcher{
						MatchEmptyString: false,
						Prefix: [][]rune{
							[]rune("d"),
							[]rune("g"),
							[]rune("k"),
							[]rune("s"),
							[]rune("t"),
							[]rune("v"),
							[]rune("z"),
						},
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("D"),
							Langs: -1,
						},
						{
							Text:  []rune("Dn"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("EiB"),
					RightContext: &bmpm.Matcher{
						MatchEmptyString: false,
						Prefix: [][]rune{
							[]rune("d"),
							[]rune("g"),
							[]rune("k"),
							[]rune("s"),
							[]rune("t"),
							[]rune("v"),
							[]rune("z"),
						},
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("D"),
							Langs: -1,
						},
						{
							Text:  []rune("Dn"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("iiB"),
					RightContext: &bmpm.Matcher{
						MatchEmptyString: false,
						Prefix: [][]rune{
							[]rune("d"),
							[]rune("g"),
							[]rune("k"),
							[]rune("s"),
							[]rune("t"),
							[]rune("v"),
							[]rune("z"),
						},
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("D"),
							Langs: -1,
						},
						{
							Text:  []rune("Dn"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("IiB"),
					RightContext: &bmpm.Matcher{
						MatchEmptyString: false,
						Prefix: [][]rune{
							[]rune("d"),
							[]rune("g"),
							[]rune("k"),
							[]rune("s"),
							[]rune("t"),
							[]rune("v"),
							[]rune("z"),
						},
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("D"),
							Langs: -1,
						},
						{
							Text:  []rune("Dn"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("B"),
					RightContext: &bmpm.Matcher{
						MatchEmptyString: false,
						Prefix: [][]rune{
							[]rune("b"),
							[]rune("p"),
						},
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("o"),
							Langs: -1,
						},
						{
							Text:  []rune("om"),
							Langs: 128,
						},
						{
							Text:  []rune("im"),
							Langs: 128,
						},
					},
				},
				{
					Pattern: []rune("B"),
					RightContext: &bmpm.Matcher{
						MatchEmptyString: false,
						Prefix: [][]rune{
							[]rune("d"),
							[]rune("g"),
							[]rune("k"),
							[]rune("s"),
							[]rune("t"),
							[]rune("v"),
							[]rune("z"),
						},
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("a"),
							Langs: -1,
						},
						{
							Text:  []rune("o"),
							Langs: -1,
						},
						{
							Text:  []rune("on"),
							Langs: 128,
						},
						{
							Text:  []rune("in"),
							Langs: 128,
						},
					},
				},
				{
					Pattern: []rune("B"),
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("a"),
							Langs: -1,
						},
						{
							Text:  []rune("o"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("aiF"),
					RightContext: &bmpm.Matcher{
						MatchEmptyString: false,
						Prefix: [][]rune{
							[]rune("b"),
							[]rune("p"),
						},
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("D"),
							Langs: -1,
						},
						{
							Text:  []rune("Dm"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("AiF"),
					RightContext: &bmpm.Matcher{
						MatchEmptyString: false,
						Prefix: [][]rune{
							[]rune("b"),
							[]rune("p"),
						},
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("D"),
							Langs: -1,
						},
						{
							Text:  []rune("Dm"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("oiF"),
					RightContext: &bmpm.Matcher{
						MatchEmptyString: false,
						Prefix: [][]rune{
							[]rune("b"),
							[]rune("p"),
						},
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("D"),
							Langs: -1,
						},
						{
							Text:  []rune("Dm"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("OiF"),
					RightContext: &bmpm.Matcher{
						MatchEmptyString: false,
						Prefix: [][]rune{
							[]rune("b"),
							[]rune("p"),
						},
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("D"),
							Langs: -1,
						},
						{
							Text:  []rune("Dm"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("uiF"),
					RightContext: &bmpm.Matcher{
						MatchEmptyString: false,
						Prefix: [][]rune{
							[]rune("b"),
							[]rune("p"),
						},
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("D"),
							Langs: -1,
						},
						{
							Text:  []rune("Dm"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("UiF"),
					RightContext: &bmpm.Matcher{
						MatchEmptyString: false,
						Prefix: [][]rune{
							[]rune("b"),
							[]rune("p"),
						},
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("D"),
							Langs: -1,
						},
						{
							Text:  []rune("Dm"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("eiF"),
					RightContext: &bmpm.Matcher{
						MatchEmptyString: false,
						Prefix: [][]rune{
							[]rune("b"),
							[]rune("p"),
						},
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("D"),
							Langs: -1,
						},
						{
							Text:  []rune("Dm"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("EiF"),
					RightContext: &bmpm.Matcher{
						MatchEmptyString: false,
						Prefix: [][]rune{
							[]rune("b"),
							[]rune("p"),
						},
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("D"),
							Langs: -1,
						},
						{
							Text:  []rune("Dm"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("iiF"),
					RightContext: &bmpm.Matcher{
						MatchEmptyString: false,
						Prefix: [][]rune{
							[]rune("b"),
							[]rune("p"),
						},
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("D"),
							Langs: -1,
						},
						{
							Text:  []rune("Dm"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("IiF"),
					RightContext: &bmpm.Matcher{
						MatchEmptyString: false,
						Prefix: [][]rune{
							[]rune("b"),
							[]rune("p"),
						},
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("D"),
							Langs: -1,
						},
						{
							Text:  []rune("Dm"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("aiF"),
					RightContext: &bmpm.Matcher{
						MatchEmptyString: false,
						Prefix: [][]rune{
							[]rune("d"),
							[]rune("g"),
							[]rune("k"),
							[]rune("s"),
							[]rune("t"),
							[]rune("v"),
							[]rune("z"),
						},
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("D"),
							Langs: -1,
						},
						{
							Text:  []rune("Dn"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("AiF"),
					RightContext: &bmpm.Matcher{
						MatchEmptyString: false,
						Prefix: [][]rune{
							[]rune("d"),
							[]rune("g"),
							[]rune("k"),
							[]rune("s"),
							[]rune("t"),
							[]rune("v"),
							[]rune("z"),
						},
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("D"),
							Langs: -1,
						},
						{
							Text:  []rune("Dn"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("oiF"),
					RightContext: &bmpm.Matcher{
						MatchEmptyString: false,
						Prefix: [][]rune{
							[]rune("d"),
							[]rune("g"),
							[]rune("k"),
							[]rune("s"),
							[]rune("t"),
							[]rune("v"),
							[]rune("z"),
						},
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("D"),
							Langs: -1,
						},
						{
							Text:  []rune("Dn"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("OiF"),
					RightContext: &bmpm.Matcher{
						MatchEmptyString: false,
						Prefix: [][]rune{
							[]rune("d"),
							[]rune("g"),
							[]rune("k"),
							[]rune("s"),
							[]rune("t"),
							[]rune("v"),
							[]rune("z"),
						},
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("D"),
							Langs: -1,
						},
						{
							Text:  []rune("Dn"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("uiF"),
					RightContext: &bmpm.Matcher{
						MatchEmptyString: false,
						Prefix: [][]rune{
							[]rune("d"),
							[]rune("g"),
							[]rune("k"),
							[]rune("s"),
							[]rune("t"),
							[]rune("v"),
							[]rune("z"),
						},
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("D"),
							Langs: -1,
						},
						{
							Text:  []rune("Dn"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("UiF"),
					RightContext: &bmpm.Matcher{
						MatchEmptyString: false,
						Prefix: [][]rune{
							[]rune("d"),
							[]rune("g"),
							[]rune("k"),
							[]rune("s"),
							[]rune("t"),
							[]rune("v"),
							[]rune("z"),
						},
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("D"),
							Langs: -1,
						},
						{
							Text:  []rune("Dn"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("eiF"),
					RightContext: &bmpm.Matcher{
						MatchEmptyString: false,
						Prefix: [][]rune{
							[]rune("d"),
							[]rune("g"),
							[]rune("k"),
							[]rune("s"),
							[]rune("t"),
							[]rune("v"),
							[]rune("z"),
						},
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("D"),
							Langs: -1,
						},
						{
							Text:  []rune("Dn"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("EiF"),
					RightContext: &bmpm.Matcher{
						MatchEmptyString: false,
						Prefix: [][]rune{
							[]rune("d"),
							[]rune("g"),
							[]rune("k"),
							[]rune("s"),
							[]rune("t"),
							[]rune("v"),
							[]rune("z"),
						},
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("D"),
							Langs: -1,
						},
						{
							Text:  []rune("Dn"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("iiF"),
					RightContext: &bmpm.Matcher{
						MatchEmptyString: false,
						Prefix: [][]rune{
							[]rune("d"),
							[]rune("g"),
							[]rune("k"),
							[]rune("s"),
							[]rune("t"),
							[]rune("v"),
							[]rune("z"),
						},
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("D"),
							Langs: -1,
						},
						{
							Text:  []rune("Dn"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("IiF"),
					RightContext: &bmpm.Matcher{
						MatchEmptyString: false,
						Prefix: [][]rune{
							[]rune("d"),
							[]rune("g"),
							[]rune("k"),
							[]rune("s"),
							[]rune("t"),
							[]rune("v"),
							[]rune("z"),
						},
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("D"),
							Langs: -1,
						},
						{
							Text:  []rune("Dn"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("F"),
					RightContext: &bmpm.Matcher{
						MatchEmptyString: false,
						Prefix: [][]rune{
							[]rune("b"),
							[]rune("p"),
						},
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("i"),
							Langs: -1,
						},
						{
							Text:  []rune("im"),
							Langs: 128,
						},
						{
							Text:  []rune("om"),
							Langs: 128,
						},
					},
				},
				{
					Pattern: []rune("F"),
					RightContext: &bmpm.Matcher{
						MatchEmptyString: false,
						Prefix: [][]rune{
							[]rune("d"),
							[]rune("g"),
							[]rune("k"),
							[]rune("s"),
							[]rune("t"),
							[]rune("v"),
							[]rune("z"),
						},
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("i"),
							Langs: -1,
						},
						{
							Text:  []rune("in"),
							Langs: 128,
						},
						{
							Text:  []rune("on"),
							Langs: 128,
						},
					},
				},
				{
					Pattern: []rune("F"),
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("i"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("P"),
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("o"),
							Langs: -1,
						},
						{
							Text:  []rune("u"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("I"),
					LeftContext: &bmpm.Matcher{
						MatchEmptyString: false,
						Suffix: [][]rune{
							[]rune("a"),
							[]rune("e"),
							[]rune("i"),
							[]rune("o"),
							[]rune("u"),
							[]rune("A"),
							[]rune("E"),
							[]rune("I"),
							[]rune("B"),
							[]rune("F"),
							[]rune("O"),
							[]rune("U"),
							[]rune("Q"),
							[]rune("Y"),
						},
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("i"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("I"),
					RightContext: &bmpm.Matcher{
						MatchEmptyString: false,
						Pattern:          regexp.MustCompile("^[^aeiouAEBFIOU]e"),
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("Q"),
							Langs: 16,
						},
						{
							Text:  []rune("i"),
							Langs: -1,
						},
						{
							Text:  []rune("D"),
							Langs: 4,
						},
					},
				},
				{
					Pattern: []rune("I"),
					RightContext: &bmpm.Matcher{
						MatchEmptyString: true,
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("i"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("I"),
					RightContext: &bmpm.Matcher{
						MatchEmptyString: false,
						Pattern:          regexp.MustCompile("^[^k]$"),
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("i"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("Ik"),
					LeftContext: &bmpm.Matcher{
						MatchEmptyString: false,
						Suffix: [][]rune{
							[]rune("l"),
							[]rune("r"),
						},
					},
					RightContext: &bmpm.Matcher{
						MatchEmptyString: true,
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("ik"),
							Langs: -1,
						},
						{
							Text:  []rune("Qk"),
							Langs: 16,
						},
					},
				},
				{
					Pattern: []rune("Ik"),
					RightContext: &bmpm.Matcher{
						MatchEmptyString: true,
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("ik"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("sIts"),
					RightContext: &bmpm.Matcher{
						MatchEmptyString: true,
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("sits"),
							Langs: -1,
						},
						{
							Text:  []rune("sQts"),
							Langs: 16,
						},
					},
				},
				{
					Pattern: []rune("Its"),
					RightContext: &bmpm.Matcher{
						MatchEmptyString: true,
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("its"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("I"),
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("Q"),
							Langs: 16,
						},
						{
							Text:  []rune("i"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("lE"),
					LeftContext: &bmpm.Matcher{
						MatchEmptyString: false,
						Suffix: [][]rune{
							[]rune("b"),
							[]rune("d"),
							[]rune("f"),
							[]rune("g"),
							[]rune("k"),
							[]rune("m"),
							[]rune("n"),
							[]rune("p"),
							[]rune("r"),
							[]rune("s"),
							[]rune("S"),
							[]rune("t"),
							[]rune("v"),
							[]rune("z"),
							[]rune("Z"),
						},
					},
					RightContext: &bmpm.Matcher{
						MatchEmptyString: true,
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("li"),
							Langs: -1,
						},
						{
							Text:  []rune("il"),
							Langs: 4,
						},
					},
				},
				{
					Pattern: []rune("lE"),
					LeftContext: &bmpm.Matcher{
						MatchEmptyString: false,
						Suffix: [][]rune{
							[]rune("b"),
							[]rune("d"),
							[]rune("f"),
							[]rune("g"),
							[]rune("k"),
							[]rune("m"),
							[]rune("n"),
							[]rune("p"),
							[]rune("r"),
							[]rune("s"),
							[]rune("S"),
							[]rune("t"),
							[]rune("v"),
							[]rune("z"),
							[]rune("Z"),
						},
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("li"),
							Langs: -1,
						},
						{
							Text:  []rune("il"),
							Langs: 4,
						},
						{
							Text:  []rune("lY"),
							Langs: 16,
						},
					},
				},
				{
					Pattern: []rune("au"),
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("D"),
							Langs: -1,
						},
						{
							Text:  []rune("a"),
							Langs: -1,
						},
						{
							Text:  []rune("u"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("ou"),
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("D"),
							Langs: -1,
						},
						{
							Text:  []rune("o"),
							Langs: -1,
						},
						{
							Text:  []rune("u"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("ai"),
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("D"),
							Langs: -1,
						},
						{
							Text:  []rune("a"),
							Langs: -1,
						},
						{
							Text:  []rune("i"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("Ai"),
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("D"),
							Langs: -1,
						},
						{
							Text:  []rune("a"),
							Langs: -1,
						},
						{
							Text:  []rune("i"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("oi"),
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("D"),
							Langs: -1,
						},
						{
							Text:  []rune("o"),
							Langs: -1,
						},
						{
							Text:  []rune("i"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("Oi"),
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("D"),
							Langs: -1,
						},
						{
							Text:  []rune("o"),
							Langs: -1,
						},
						{
							Text:  []rune("i"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("ui"),
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("D"),
							Langs: -1,
						},
						{
							Text:  []rune("u"),
							Langs: -1,
						},
						{
							Text:  []rune("i"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("Ui"),
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("D"),
							Langs: -1,
						},
						{
							Text:  []rune("u"),
							Langs: -1,
						},
						{
							Text:  []rune("i"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("ei"),
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("D"),
							Langs: -1,
						},
						{
							Text:  []rune("i"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("Ei"),
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("D"),
							Langs: -1,
						},
						{
							Text:  []rune("i"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("iA"),
					RightContext: &bmpm.Matcher{
						MatchEmptyString: true,
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("ia"),
							Langs: -1,
						},
						{
							Text:  []rune("io"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("iA"),
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("ia"),
							Langs: -1,
						},
						{
							Text:  []rune("io"),
							Langs: -1,
						},
						{
							Text:  []rune("iY"),
							Langs: 16,
						},
					},
				},
				{
					Pattern: []rune("A"),
					RightContext: &bmpm.Matcher{
						MatchEmptyString: false,
						Pattern:          regexp.MustCompile("^[^aeiouAEBFIOU]e"),
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("a"),
							Langs: -1,
						},
						{
							Text:  []rune("o"),
							Langs: -1,
						},
						{
							Text:  []rune("Y"),
							Langs: 16,
						},
						{
							Text:  []rune("D"),
							Langs: 4,
						},
					},
				},
				{
					Pattern: []rune("E"),
					LeftContext: &bmpm.Matcher{
						MatchEmptyString: false,
						Pattern:          regexp.MustCompile("i[^aeiouAEIOU]$"),
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("i"),
							Langs: -1,
						},
						{
							Text:  []rune("Y"),
							Langs: 16,
						},
						{
							Text:  nil,
							Langs: 4,
						},
					},
				},
				{
					Pattern: []rune("E"),
					LeftContext: &bmpm.Matcher{
						MatchEmptyString: false,
						Pattern:          regexp.MustCompile("a[^aeiouAEIOU]$"),
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("i"),
							Langs: -1,
						},
						{
							Text:  []rune("Y"),
							Langs: 16,
						},
						{
							Text:  nil,
							Langs: 4,
						},
					},
				},
				{
					Pattern: []rune("e"),
					RightContext: &bmpm.Matcher{
						MatchEmptyString: false,
						Exact: [][]rune{
							[]rune("f"),
							[]rune("k"),
							[]rune("l"),
							[]rune("m"),
							[]rune("n"),
							[]rune("p"),
							[]rune("r"),
							[]rune("s"),
							[]rune("t"),
							[]rune("v"),
						},
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("i"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("e"),
					RightContext: &bmpm.Matcher{
						MatchEmptyString: false,
						Exact: [][]rune{
							[]rune("ts"),
						},
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("i"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("e"),
					RightContext: &bmpm.Matcher{
						MatchEmptyString: true,
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("i"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("e"),
					LeftContext: &bmpm.Matcher{
						MatchEmptyString: false,
						Suffix: [][]rune{
							[]rune("D"),
							[]rune("a"),
							[]rune("o"),
							[]rune("i"),
							[]rune("u"),
							[]rune("A"),
							[]rune("O"),
							[]rune("I"),
							[]rune("U"),
							[]rune("Q"),
							[]rune("Y"),
						},
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("i"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("e"),
					RightContext: &bmpm.Matcher{
						MatchEmptyString: false,
						Prefix: [][]rune{
							[]rune("a"),
							[]rune("o"),
							[]rune("A"),
							[]rune("O"),
							[]rune("Q"),
							[]rune("Y"),
						},
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("i"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("e"),
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("i"),
							Langs: -1,
						},
						{
							Text:  []rune("Y"),
							Langs: 16,
						},
					},
				},
				{
					Pattern: []rune("E"),
					RightContext: &bmpm.Matcher{
						MatchEmptyString: false,
						Exact: [][]rune{
							[]rune("f"),
							[]rune("k"),
							[]rune("l"),
							[]rune("m"),
							[]rune("n"),
							[]rune("p"),
							[]rune("r"),
							[]rune("s"),
							[]rune("t"),
						},
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("i"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("E"),
					RightContext: &bmpm.Matcher{
						MatchEmptyString: false,
						Exact: [][]rune{
							[]rune("ts"),
						},
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("i"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("E"),
					RightContext: &bmpm.Matcher{
						MatchEmptyString: true,
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("i"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("E"),
					LeftContext: &bmpm.Matcher{
						MatchEmptyString: false,
						Suffix: [][]rune{
							[]rune("D"),
							[]rune("a"),
							[]rune("o"),
							[]rune("i"),
							[]rune("u"),
							[]rune("A"),
							[]rune("O"),
							[]rune("I"),
							[]rune("U"),
							[]rune("Q"),
							[]rune("Y"),
						},
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("i"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("E"),
					RightContext: &bmpm.Matcher{
						MatchEmptyString: false,
						Prefix: [][]rune{
							[]rune("a"),
							[]rune("o"),
							[]rune("A"),
							[]rune("O"),
							[]rune("Q"),
							[]rune("Y"),
						},
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("i"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("E"),
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("i"),
							Langs: -1,
						},
						{
							Text:  []rune("Y"),
							Langs: 16,
						},
					},
				},
				{
					Pattern: []rune("a"),
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("a"),
							Langs: -1,
						},
						{
							Text:  []rune("o"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("O"),
					RightContext: &bmpm.Matcher{
						MatchEmptyString: false,
						Exact: [][]rune{
							[]rune("f"),
							[]rune("k"),
							[]rune("l"),
							[]rune("m"),
							[]rune("n"),
							[]rune("p"),
							[]rune("r"),
							[]rune("s"),
							[]rune("t"),
							[]rune("v"),
						},
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("o"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("O"),
					RightContext: &bmpm.Matcher{
						MatchEmptyString: false,
						Exact: [][]rune{
							[]rune("ts"),
						},
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("o"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("O"),
					RightContext: &bmpm.Matcher{
						MatchEmptyString: true,
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("o"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("O"),
					LeftContext: &bmpm.Matcher{
						MatchEmptyString: false,
						Suffix: [][]rune{
							[]rune("o"),
							[]rune("e"),
							[]rune("i"),
							[]rune("u"),
							[]rune("Q"),
							[]rune("Y"),
						},
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("o"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("O"),
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("o"),
							Langs: -1,
						},
						{
							Text:  []rune("Y"),
							Langs: 16,
						},
					},
				},
				{
					Pattern: []rune("A"),
					RightContext: &bmpm.Matcher{
						MatchEmptyString: false,
						Exact: [][]rune{
							[]rune("f"),
							[]rune("k"),
							[]rune("l"),
							[]rune("m"),
							[]rune("n"),
							[]rune("p"),
							[]rune("r"),
							[]rune("s"),
							[]rune("t"),
						},
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("a"),
							Langs: -1,
						},
						{
							Text:  []rune("o"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("A"),
					RightContext: &bmpm.Matcher{
						MatchEmptyString: false,
						Exact: [][]rune{
							[]rune("ts"),
						},
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("a"),
							Langs: -1,
						},
						{
							Text:  []rune("o"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("A"),
					RightContext: &bmpm.Matcher{
						MatchEmptyString: true,
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("a"),
							Langs: -1,
						},
						{
							Text:  []rune("o"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("A"),
					LeftContext: &bmpm.Matcher{
						MatchEmptyString: false,
						Suffix: [][]rune{
							[]rune("o"),
							[]rune("e"),
							[]rune("i"),
							[]rune("u"),
							[]rune("Q"),
							[]rune("Y"),
						},
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("a"),
							Langs: -1,
						},
						{
							Text:  []rune("o"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("A"),
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("a"),
							Langs: -1,
						},
						{
							Text:  []rune("o"),
							Langs: -1,
						},
						{
							Text:  []rune("Y"),
							Langs: 16,
						},
					},
				},
				{
					Pattern: []rune("U"),
					RightContext: &bmpm.Matcher{
						MatchEmptyString: true,
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("u"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("U"),
					LeftContext: &bmpm.Matcher{
						MatchEmptyString: false,
						Suffix: [][]rune{
							[]rune("D"),
							[]rune("o"),
							[]rune("i"),
							[]rune("u"),
							[]rune("Q"),
							[]rune("Y"),
						},
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("u"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("U"),
					RightContext: &bmpm.Matcher{
						MatchEmptyString: false,
						Pattern:          regexp.MustCompile("^[^k]$"),
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("u"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("Uk"),
					LeftContext: &bmpm.Matcher{
						MatchEmptyString: false,
						Suffix: [][]rune{
							[]rune("l"),
							[]rune("r"),
						},
					},
					RightContext: &bmpm.Matcher{
						MatchEmptyString: true,
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("uk"),
							Langs: -1,
						},
						{
							Text:  []rune("Qk"),
							Langs: 16,
						},
					},
				},
				{
					Pattern: []rune("Uk"),
					RightContext: &bmpm.Matcher{
						MatchEmptyString: true,
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("uk"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("sUts"),
					RightContext: &bmpm.Matcher{
						MatchEmptyString: true,
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("suts"),
							Langs: -1,
						},
						{
							Text:  []rune("sQts"),
							Langs: 16,
						},
					},
				},
				{
					Pattern: []rune("Uts"),
					RightContext: &bmpm.Matcher{
						MatchEmptyString: true,
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("uts"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("U"),
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("u"),
							Langs: -1,
						},
						{
							Text:  []rune("Q"),
							Langs: 16,
						},
					},
				},
			},
			bmpm.Lang(Russian): {
				{
					Pattern: []rune("I"),
					RightContext: &bmpm.Matcher{
						MatchEmptyString: true,
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("i"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("I"),
					RightContext: &bmpm.Matcher{
						MatchEmptyString: false,
						Pattern:          regexp.MustCompile("^[^k]$"),
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("i"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("Ik"),
					LeftContext: &bmpm.Matcher{
						MatchEmptyString: false,
						Suffix: [][]rune{
							[]rune("l"),
							[]rune("r"),
						},
					},
					RightContext: &bmpm.Matcher{
						MatchEmptyString: true,
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("ik"),
							Langs: -1,
						},
						{
							Text:  []rune("Qk"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("Ik"),
					RightContext: &bmpm.Matcher{
						MatchEmptyString: true,
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("ik"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("sIts"),
					RightContext: &bmpm.Matcher{
						MatchEmptyString: true,
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("sits"),
							Langs: -1,
						},
						{
							Text:  []rune("sQts"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("Its"),
					RightContext: &bmpm.Matcher{
						MatchEmptyString: true,
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("its"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("I"),
					LeftContext: &bmpm.Matcher{
						MatchEmptyString: false,
						Suffix: [][]rune{
							[]rune("a"),
							[]rune("e"),
							[]rune("i"),
							[]rune("E"),
							[]rune("I"),
							[]rune("o"),
							[]rune("u"),
						},
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("i"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("I"),
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("i"),
							Langs: -1,
						},
						{
							Text:  []rune("Q"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("au"),
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("D"),
							Langs: -1,
						},
						{
							Text:  []rune("a"),
							Langs: -1,
						},
						{
							Text:  []rune("u"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("ou"),
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("D"),
							Langs: -1,
						},
						{
							Text:  []rune("o"),
							Langs: -1,
						},
						{
							Text:  []rune("u"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("ai"),
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("D"),
							Langs: -1,
						},
						{
							Text:  []rune("a"),
							Langs: -1,
						},
						{
							Text:  []rune("i"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("oi"),
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("D"),
							Langs: -1,
						},
						{
							Text:  []rune("o"),
							Langs: -1,
						},
						{
							Text:  []rune("i"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("ui"),
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("D"),
							Langs: -1,
						},
						{
							Text:  []rune("u"),
							Langs: -1,
						},
						{
							Text:  []rune("i"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("om"),
					RightContext: &bmpm.Matcher{
						MatchEmptyString: false,
						Prefix: [][]rune{
							[]rune("b"),
							[]rune("p"),
						},
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("om"),
							Langs: -1,
						},
						{
							Text:  []rune("im"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("on"),
					RightContext: &bmpm.Matcher{
						MatchEmptyString: false,
						Prefix: [][]rune{
							[]rune("d"),
							[]rune("g"),
							[]rune("k"),
							[]rune("s"),
							[]rune("t"),
							[]rune("v"),
							[]rune("z"),
						},
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("on"),
							Langs: -1,
						},
						{
							Text:  []rune("in"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("em"),
					RightContext: &bmpm.Matcher{
						MatchEmptyString: false,
						Prefix: [][]rune{
							[]rune("b"),
							[]rune("p"),
						},
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("im"),
							Langs: -1,
						},
						{
							Text:  []rune("om"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("en"),
					RightContext: &bmpm.Matcher{
						MatchEmptyString: false,
						Prefix: [][]rune{
							[]rune("d"),
							[]rune("g"),
							[]rune("k"),
							[]rune("s"),
							[]rune("t"),
							[]rune("v"),
							[]rune("z"),
						},
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("in"),
							Langs: -1,
						},
						{
							Text:  []rune("on"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("Em"),
					RightContext: &bmpm.Matcher{
						MatchEmptyString: false,
						Prefix: [][]rune{
							[]rune("b"),
							[]rune("p"),
						},
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("im"),
							Langs: -1,
						},
						{
							Text:  []rune("Ym"),
							Langs: -1,
						},
						{
							Text:  []rune("om"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("En"),
					RightContext: &bmpm.Matcher{
						MatchEmptyString: false,
						Prefix: [][]rune{
							[]rune("d"),
							[]rune("g"),
							[]rune("k"),
							[]rune("s"),
							[]rune("t"),
							[]rune("v"),
							[]rune("z"),
						},
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("in"),
							Langs: -1,
						},
						{
							Text:  []rune("Yn"),
							Langs: -1,
						},
						{
							Text:  []rune("on"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("a"),
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("a"),
							Langs: -1,
						},
						{
							Text:  []rune("o"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("e"),
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("i"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("E"),
					RightContext: &bmpm.Matcher{
						MatchEmptyString: false,
						Exact: [][]rune{
							[]rune("f"),
							[]rune("k"),
							[]rune("l"),
							[]rune("m"),
							[]rune("n"),
							[]rune("p"),
							[]rune("r"),
							[]rune("s"),
							[]rune("S"),
							[]rune("t"),
							[]rune("v"),
						},
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("i"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("E"),
					RightContext: &bmpm.Matcher{
						MatchEmptyString: false,
						Exact: [][]rune{
							[]rune("ts"),
						},
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("i"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("E"),
					LeftContext: &bmpm.Matcher{
						MatchEmptyString: false,
						Suffix: [][]rune{
							[]rune("D"),
							[]rune("a"),
							[]rune("o"),
							[]rune("i"),
							[]rune("u"),
							[]rune("Q"),
						},
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("i"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("E"),
					RightContext: &bmpm.Matcher{
						MatchEmptyString: false,
						Prefix: [][]rune{
							[]rune("a"),
							[]rune("o"),
							[]rune("Q"),
						},
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("i"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("E"),
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("Y"),
							Langs: -1,
						},
						{
							Text:  []rune("i"),
							Langs: -1,
						},
					},
				},
			},
			bmpm.Lang(Cyrillic): {
				{
					Pattern: []rune("I"),
					RightContext: &bmpm.Matcher{
						MatchEmptyString: true,
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("i"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("I"),
					RightContext: &bmpm.Matcher{
						MatchEmptyString: false,
						Pattern:          regexp.MustCompile("^[^k]$"),
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("i"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("Ik"),
					LeftContext: &bmpm.Matcher{
						MatchEmptyString: false,
						Suffix: [][]rune{
							[]rune("l"),
							[]rune("r"),
						},
					},
					RightContext: &bmpm.Matcher{
						MatchEmptyString: true,
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("ik"),
							Langs: -1,
						},
						{
							Text:  []rune("Qk"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("Ik"),
					RightContext: &bmpm.Matcher{
						MatchEmptyString: true,
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("ik"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("sIts"),
					RightContext: &bmpm.Matcher{
						MatchEmptyString: true,
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("sits"),
							Langs: -1,
						},
						{
							Text:  []rune("sQts"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("Its"),
					RightContext: &bmpm.Matcher{
						MatchEmptyString: true,
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("its"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("I"),
					LeftContext: &bmpm.Matcher{
						MatchEmptyString: false,
						Suffix: [][]rune{
							[]rune("a"),
							[]rune("e"),
							[]rune("i"),
							[]rune("E"),
							[]rune("I"),
							[]rune("o"),
							[]rune("u"),
						},
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("i"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("I"),
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("i"),
							Langs: -1,
						},
						{
							Text:  []rune("Q"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("au"),
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("D"),
							Langs: -1,
						},
						{
							Text:  []rune("a"),
							Langs: -1,
						},
						{
							Text:  []rune("u"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("ou"),
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("D"),
							Langs: -1,
						},
						{
							Text:  []rune("o"),
							Langs: -1,
						},
						{
							Text:  []rune("u"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("ai"),
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("D"),
							Langs: -1,
						},
						{
							Text:  []rune("a"),
							Langs: -1,
						},
						{
							Text:  []rune("i"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("oi"),
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("D"),
							Langs: -1,
						},
						{
							Text:  []rune("o"),
							Langs: -1,
						},
						{
							Text:  []rune("i"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("ui"),
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("D"),
							Langs: -1,
						},
						{
							Text:  []rune("u"),
							Langs: -1,
						},
						{
							Text:  []rune("i"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("om"),
					RightContext: &bmpm.Matcher{
						MatchEmptyString: false,
						Prefix: [][]rune{
							[]rune("b"),
							[]rune("p"),
						},
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("om"),
							Langs: -1,
						},
						{
							Text:  []rune("im"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("on"),
					RightContext: &bmpm.Matcher{
						MatchEmptyString: false,
						Prefix: [][]rune{
							[]rune("d"),
							[]rune("g"),
							[]rune("k"),
							[]rune("s"),
							[]rune("t"),
							[]rune("v"),
							[]rune("z"),
						},
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("on"),
							Langs: -1,
						},
						{
							Text:  []rune("in"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("em"),
					RightContext: &bmpm.Matcher{
						MatchEmptyString: false,
						Prefix: [][]rune{
							[]rune("b"),
							[]rune("p"),
						},
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("im"),
							Langs: -1,
						},
						{
							Text:  []rune("om"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("en"),
					RightContext: &bmpm.Matcher{
						MatchEmptyString: false,
						Prefix: [][]rune{
							[]rune("d"),
							[]rune("g"),
							[]rune("k"),
							[]rune("s"),
							[]rune("t"),
							[]rune("v"),
							[]rune("z"),
						},
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("in"),
							Langs: -1,
						},
						{
							Text:  []rune("on"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("Em"),
					RightContext: &bmpm.Matcher{
						MatchEmptyString: false,
						Prefix: [][]rune{
							[]rune("b"),
							[]rune("p"),
						},
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("im"),
							Langs: -1,
						},
						{
							Text:  []rune("Ym"),
							Langs: -1,
						},
						{
							Text:  []rune("om"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("En"),
					RightContext: &bmpm.Matcher{
						MatchEmptyString: false,
						Prefix: [][]rune{
							[]rune("d"),
							[]rune("g"),
							[]rune("k"),
							[]rune("s"),
							[]rune("t"),
							[]rune("v"),
							[]rune("z"),
						},
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("in"),
							Langs: -1,
						},
						{
							Text:  []rune("Yn"),
							Langs: -1,
						},
						{
							Text:  []rune("on"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("a"),
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("a"),
							Langs: -1,
						},
						{
							Text:  []rune("o"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("e"),
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("i"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("E"),
					RightContext: &bmpm.Matcher{
						MatchEmptyString: false,
						Exact: [][]rune{
							[]rune("f"),
							[]rune("k"),
							[]rune("l"),
							[]rune("m"),
							[]rune("n"),
							[]rune("p"),
							[]rune("r"),
							[]rune("s"),
							[]rune("S"),
							[]rune("t"),
							[]rune("v"),
						},
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("i"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("E"),
					RightContext: &bmpm.Matcher{
						MatchEmptyString: false,
						Exact: [][]rune{
							[]rune("ts"),
						},
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("i"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("E"),
					LeftContext: &bmpm.Matcher{
						MatchEmptyString: false,
						Suffix: [][]rune{
							[]rune("D"),
							[]rune("a"),
							[]rune("o"),
							[]rune("i"),
							[]rune("u"),
							[]rune("Q"),
						},
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("i"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("E"),
					RightContext: &bmpm.Matcher{
						MatchEmptyString: false,
						Prefix: [][]rune{
							[]rune("a"),
							[]rune("o"),
							[]rune("Q"),
						},
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("i"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("E"),
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("Y"),
							Langs: -1,
						},
						{
							Text:  []rune("i"),
							Langs: -1,
						},
					},
				},
			},
			bmpm.Lang(English): {
				{
					Pattern: []rune("I"),
					RightContext: &bmpm.Matcher{
						MatchEmptyString: false,
						Pattern:          regexp.MustCompile("^[^aEIeiou]e"),
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("Q"),
							Langs: -1,
						},
						{
							Text:  []rune("i"),
							Langs: -1,
						},
						{
							Text:  []rune("D"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("I"),
					RightContext: &bmpm.Matcher{
						MatchEmptyString: true,
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("i"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("I"),
					LeftContext: &bmpm.Matcher{
						MatchEmptyString: false,
						Suffix: [][]rune{
							[]rune("a"),
							[]rune("E"),
							[]rune("I"),
							[]rune("e"),
							[]rune("i"),
							[]rune("o"),
							[]rune("u"),
						},
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("i"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("I"),
					RightContext: &bmpm.Matcher{
						MatchEmptyString: false,
						Pattern:          regexp.MustCompile("^[^k]$"),
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("i"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("Ik"),
					LeftContext: &bmpm.Matcher{
						MatchEmptyString: false,
						Suffix: [][]rune{
							[]rune("l"),
							[]rune("r"),
						},
					},
					RightContext: &bmpm.Matcher{
						MatchEmptyString: true,
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("ik"),
							Langs: -1,
						},
						{
							Text:  []rune("Qk"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("Ik"),
					RightContext: &bmpm.Matcher{
						MatchEmptyString: true,
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("ik"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("sIts"),
					RightContext: &bmpm.Matcher{
						MatchEmptyString: true,
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("sits"),
							Langs: -1,
						},
						{
							Text:  []rune("sQts"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("Its"),
					RightContext: &bmpm.Matcher{
						MatchEmptyString: true,
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("its"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("I"),
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("i"),
							Langs: -1,
						},
						{
							Text:  []rune("Q"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("lE"),
					LeftContext: &bmpm.Matcher{
						MatchEmptyString: false,
						Suffix: [][]rune{
							[]rune("b"),
							[]rune("d"),
							[]rune("f"),
							[]rune("g"),
							[]rune("k"),
							[]rune("m"),
							[]rune("n"),
							[]rune("p"),
							[]rune("r"),
							[]rune("s"),
							[]rune("S"),
							[]rune("t"),
							[]rune("v"),
							[]rune("z"),
							[]rune("Z"),
						},
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("il"),
							Langs: -1,
						},
						{
							Text:  []rune("li"),
							Langs: -1,
						},
						{
							Text:  []rune("lY"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("au"),
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("D"),
							Langs: -1,
						},
						{
							Text:  []rune("a"),
							Langs: -1,
						},
						{
							Text:  []rune("u"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("ou"),
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("D"),
							Langs: -1,
						},
						{
							Text:  []rune("o"),
							Langs: -1,
						},
						{
							Text:  []rune("u"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("ai"),
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("D"),
							Langs: -1,
						},
						{
							Text:  []rune("a"),
							Langs: -1,
						},
						{
							Text:  []rune("i"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("oi"),
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("D"),
							Langs: -1,
						},
						{
							Text:  []rune("o"),
							Langs: -1,
						},
						{
							Text:  []rune("i"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("ui"),
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("D"),
							Langs: -1,
						},
						{
							Text:  []rune("u"),
							Langs: -1,
						},
						{
							Text:  []rune("i"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("E"),
					LeftContext: &bmpm.Matcher{
						MatchEmptyString: false,
						Pattern:          regexp.MustCompile("D[^aeiEIou]$"),
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("i"),
							Langs: -1,
						},
						{
							Text:  nil,
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("e"),
					LeftContext: &bmpm.Matcher{
						MatchEmptyString: false,
						Pattern:          regexp.MustCompile("D[^aeiEIou]$"),
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("i"),
							Langs: -1,
						},
						{
							Text:  nil,
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("e"),
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("i"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("E"),
					RightContext: &bmpm.Matcher{
						MatchEmptyString: false,
						Exact: [][]rune{
							[]rune("f"),
							[]rune("k"),
							[]rune("l"),
							[]rune("m"),
							[]rune("n"),
							[]rune("p"),
							[]rune("r"),
							[]rune("s"),
							[]rune("S"),
							[]rune("t"),
							[]rune("v"),
						},
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("i"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("E"),
					RightContext: &bmpm.Matcher{
						MatchEmptyString: false,
						Exact: [][]rune{
							[]rune("ts"),
						},
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("i"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("E"),
					LeftContext: &bmpm.Matcher{
						MatchEmptyString: false,
						Suffix: [][]rune{
							[]rune("D"),
							[]rune("a"),
							[]rune("o"),
							[]rune("i"),
							[]rune("E"),
							[]rune("u"),
							[]rune("Q"),
							[]rune("Y"),
						},
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("i"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("E"),
					RightContext: &bmpm.Matcher{
						MatchEmptyString: false,
						Prefix: [][]rune{
							[]rune("a"),
							[]rune("o"),
							[]rune("Q"),
							[]rune("Y"),
						},
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("i"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("E"),
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("Y"),
							Langs: -1,
						},
						{
							Text:  []rune("i"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("a"),
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("a"),
							Langs: -1,
						},
						{
							Text:  []rune("o"),
							Langs: -1,
						},
					},
				},
			},
			bmpm.Lang(French): {
				{
					Pattern: []rune("I"),
					RightContext: &bmpm.Matcher{
						MatchEmptyString: true,
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("i"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("I"),
					LeftContext: &bmpm.Matcher{
						MatchEmptyString: false,
						Suffix: [][]rune{
							[]rune("a"),
							[]rune("E"),
							[]rune("I"),
							[]rune("e"),
							[]rune("i"),
							[]rune("o"),
							[]rune("u"),
						},
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("i"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("I"),
					RightContext: &bmpm.Matcher{
						MatchEmptyString: false,
						Pattern:          regexp.MustCompile("^[^k]$"),
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("i"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("Ik"),
					LeftContext: &bmpm.Matcher{
						MatchEmptyString: false,
						Suffix: [][]rune{
							[]rune("l"),
							[]rune("r"),
						},
					},
					RightContext: &bmpm.Matcher{
						MatchEmptyString: true,
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("ik"),
							Langs: -1,
						},
						{
							Text:  []rune("Qk"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("Ik"),
					RightContext: &bmpm.Matcher{
						MatchEmptyString: true,
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("ik"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("sIts"),
					RightContext: &bmpm.Matcher{
						MatchEmptyString: true,
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("sits"),
							Langs: -1,
						},
						{
							Text:  []rune("sQts"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("Its"),
					RightContext: &bmpm.Matcher{
						MatchEmptyString: true,
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("its"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("I"),
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("i"),
							Langs: -1,
						},
						{
							Text:  []rune("Q"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("au"),
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("D"),
							Langs: -1,
						},
						{
							Text:  []rune("a"),
							Langs: -1,
						},
						{
							Text:  []rune("u"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("ou"),
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("D"),
							Langs: -1,
						},
						{
							Text:  []rune("o"),
							Langs: -1,
						},
						{
							Text:  []rune("u"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("ai"),
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("D"),
							Langs: -1,
						},
						{
							Text:  []rune("a"),
							Langs: -1,
						},
						{
							Text:  []rune("i"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("oi"),
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("D"),
							Langs: -1,
						},
						{
							Text:  []rune("o"),
							Langs: -1,
						},
						{
							Text:  []rune("i"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("ui"),
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("D"),
							Langs: -1,
						},
						{
							Text:  []rune("u"),
							Langs: -1,
						},
						{
							Text:  []rune("i"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("a"),
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("a"),
							Langs: -1,
						},
						{
							Text:  []rune("o"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("e"),
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("i"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("E"),
					RightContext: &bmpm.Matcher{
						MatchEmptyString: false,
						Exact: [][]rune{
							[]rune("f"),
							[]rune("k"),
							[]rune("l"),
							[]rune("m"),
							[]rune("n"),
							[]rune("p"),
							[]rune("r"),
							[]rune("s"),
							[]rune("S"),
							[]rune("t"),
							[]rune("v"),
						},
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("i"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("E"),
					RightContext: &bmpm.Matcher{
						MatchEmptyString: false,
						Exact: [][]rune{
							[]rune("ts"),
						},
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("i"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("E"),
					LeftContext: &bmpm.Matcher{
						MatchEmptyString: false,
						Suffix: [][]rune{
							[]rune("a"),
							[]rune("o"),
							[]rune("i"),
							[]rune("u"),
							[]rune("Q"),
						},
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("i"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("E"),
					RightContext: &bmpm.Matcher{
						MatchEmptyString: false,
						Prefix: [][]rune{
							[]rune("a"),
							[]rune("o"),
							[]rune("Q"),
						},
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("i"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("E"),
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("Y"),
							Langs: -1,
						},
						{
							Text:  []rune("i"),
							Langs: -1,
						},
					},
				},
			},
			bmpm.Lang(German): {
				{
					Pattern: []rune("I"),
					RightContext: &bmpm.Matcher{
						MatchEmptyString: true,
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("i"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("I"),
					LeftContext: &bmpm.Matcher{
						MatchEmptyString: false,
						Suffix: [][]rune{
							[]rune("a"),
							[]rune("e"),
							[]rune("i"),
							[]rune("A"),
							[]rune("E"),
							[]rune("I"),
							[]rune("O"),
							[]rune("U"),
							[]rune("o"),
							[]rune("u"),
							[]rune("Q"),
							[]rune("Y"),
						},
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("i"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("I"),
					RightContext: &bmpm.Matcher{
						MatchEmptyString: false,
						Pattern:          regexp.MustCompile("^[^k]$"),
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("i"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("Ik"),
					LeftContext: &bmpm.Matcher{
						MatchEmptyString: false,
						Suffix: [][]rune{
							[]rune("l"),
							[]rune("r"),
						},
					},
					RightContext: &bmpm.Matcher{
						MatchEmptyString: true,
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("ik"),
							Langs: -1,
						},
						{
							Text:  []rune("Qk"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("Ik"),
					RightContext: &bmpm.Matcher{
						MatchEmptyString: true,
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("ik"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("sIts"),
					RightContext: &bmpm.Matcher{
						MatchEmptyString: true,
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("sits"),
							Langs: -1,
						},
						{
							Text:  []rune("sQts"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("Its"),
					RightContext: &bmpm.Matcher{
						MatchEmptyString: true,
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("its"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("I"),
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("Q"),
							Langs: -1,
						},
						{
							Text:  []rune("i"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("AU"),
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("D"),
							Langs: -1,
						},
						{
							Text:  []rune("a"),
							Langs: -1,
						},
						{
							Text:  []rune("u"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("aU"),
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("D"),
							Langs: -1,
						},
						{
							Text:  []rune("a"),
							Langs: -1,
						},
						{
							Text:  []rune("u"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("Au"),
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("D"),
							Langs: -1,
						},
						{
							Text:  []rune("a"),
							Langs: -1,
						},
						{
							Text:  []rune("u"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("au"),
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("D"),
							Langs: -1,
						},
						{
							Text:  []rune("a"),
							Langs: -1,
						},
						{
							Text:  []rune("u"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("ou"),
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("D"),
							Langs: -1,
						},
						{
							Text:  []rune("o"),
							Langs: -1,
						},
						{
							Text:  []rune("u"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("OU"),
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("D"),
							Langs: -1,
						},
						{
							Text:  []rune("o"),
							Langs: -1,
						},
						{
							Text:  []rune("u"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("oU"),
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("D"),
							Langs: -1,
						},
						{
							Text:  []rune("o"),
							Langs: -1,
						},
						{
							Text:  []rune("u"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("Ou"),
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("D"),
							Langs: -1,
						},
						{
							Text:  []rune("o"),
							Langs: -1,
						},
						{
							Text:  []rune("u"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("ai"),
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("D"),
							Langs: -1,
						},
						{
							Text:  []rune("a"),
							Langs: -1,
						},
						{
							Text:  []rune("i"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("Ai"),
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("D"),
							Langs: -1,
						},
						{
							Text:  []rune("a"),
							Langs: -1,
						},
						{
							Text:  []rune("i"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("oi"),
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("D"),
							Langs: -1,
						},
						{
							Text:  []rune("o"),
							Langs: -1,
						},
						{
							Text:  []rune("i"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("Oi"),
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("D"),
							Langs: -1,
						},
						{
							Text:  []rune("o"),
							Langs: -1,
						},
						{
							Text:  []rune("i"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("ui"),
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("D"),
							Langs: -1,
						},
						{
							Text:  []rune("u"),
							Langs: -1,
						},
						{
							Text:  []rune("i"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("Ui"),
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("D"),
							Langs: -1,
						},
						{
							Text:  []rune("u"),
							Langs: -1,
						},
						{
							Text:  []rune("i"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("e"),
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("i"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("E"),
					RightContext: &bmpm.Matcher{
						MatchEmptyString: false,
						Exact: [][]rune{
							[]rune("f"),
							[]rune("k"),
							[]rune("l"),
							[]rune("m"),
							[]rune("n"),
							[]rune("p"),
							[]rune("r"),
							[]rune("s"),
							[]rune("t"),
						},
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("i"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("E"),
					RightContext: &bmpm.Matcher{
						MatchEmptyString: false,
						Exact: [][]rune{
							[]rune("ts"),
						},
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("i"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("E"),
					RightContext: &bmpm.Matcher{
						MatchEmptyString: true,
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("i"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("E"),
					LeftContext: &bmpm.Matcher{
						MatchEmptyString: false,
						Suffix: [][]rune{
							[]rune("D"),
							[]rune("a"),
							[]rune("o"),
							[]rune("A"),
							[]rune("O"),
							[]rune("U"),
							[]rune("i"),
							[]rune("u"),
							[]rune("Q"),
							[]rune("Y"),
						},
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("i"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("E"),
					RightContext: &bmpm.Matcher{
						MatchEmptyString: false,
						Prefix: [][]rune{
							[]rune("a"),
							[]rune("o"),
							[]rune("A"),
							[]rune("O"),
							[]rune("Q"),
							[]rune("Y"),
						},
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("i"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("E"),
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("Y"),
							Langs: -1,
						},
						{
							Text:  []rune("i"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("O"),
					RightContext: &bmpm.Matcher{
						MatchEmptyString: true,
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("o"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("O"),
					RightContext: &bmpm.Matcher{
						MatchEmptyString: false,
						Exact: [][]rune{
							[]rune("f"),
							[]rune("k"),
							[]rune("l"),
							[]rune("m"),
							[]rune("n"),
							[]rune("p"),
							[]rune("r"),
							[]rune("s"),
							[]rune("t"),
						},
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("o"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("O"),
					RightContext: &bmpm.Matcher{
						MatchEmptyString: false,
						Exact: [][]rune{
							[]rune("ts"),
						},
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("o"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("O"),
					LeftContext: &bmpm.Matcher{
						MatchEmptyString: false,
						Suffix: [][]rune{
							[]rune("a"),
							[]rune("o"),
							[]rune("A"),
							[]rune("O"),
							[]rune("U"),
							[]rune("e"),
							[]rune("i"),
							[]rune("u"),
							[]rune("Q"),
							[]rune("Y"),
						},
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("o"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("O"),
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("o"),
							Langs: -1,
						},
						{
							Text:  []rune("Y"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("a"),
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("a"),
							Langs: -1,
						},
						{
							Text:  []rune("o"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("A"),
					RightContext: &bmpm.Matcher{
						MatchEmptyString: true,
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("a"),
							Langs: -1,
						},
						{
							Text:  []rune("o"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("A"),
					RightContext: &bmpm.Matcher{
						MatchEmptyString: false,
						Exact: [][]rune{
							[]rune("f"),
							[]rune("k"),
							[]rune("l"),
							[]rune("m"),
							[]rune("n"),
							[]rune("p"),
							[]rune("r"),
							[]rune("s"),
							[]rune("t"),
						},
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("a"),
							Langs: -1,
						},
						{
							Text:  []rune("o"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("A"),
					RightContext: &bmpm.Matcher{
						MatchEmptyString: false,
						Exact: [][]rune{
							[]rune("ts"),
						},
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("a"),
							Langs: -1,
						},
						{
							Text:  []rune("o"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("A"),
					LeftContext: &bmpm.Matcher{
						MatchEmptyString: false,
						Suffix: [][]rune{
							[]rune("a"),
							[]rune("o"),
							[]rune("e"),
							[]rune("O"),
							[]rune("U"),
							[]rune("i"),
							[]rune("u"),
							[]rune("Q"),
							[]rune("Y"),
						},
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("a"),
							Langs: -1,
						},
						{
							Text:  []rune("o"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("A"),
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("a"),
							Langs: -1,
						},
						{
							Text:  []rune("o"),
							Langs: -1,
						},
						{
							Text:  []rune("Y"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("U"),
					RightContext: &bmpm.Matcher{
						MatchEmptyString: true,
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("u"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("U"),
					LeftContext: &bmpm.Matcher{
						MatchEmptyString: false,
						Suffix: [][]rune{
							[]rune("D"),
							[]rune("a"),
							[]rune("o"),
							[]rune("i"),
							[]rune("u"),
							[]rune("U"),
							[]rune("Q"),
							[]rune("Y"),
						},
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("u"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("U"),
					RightContext: &bmpm.Matcher{
						MatchEmptyString: false,
						Pattern:          regexp.MustCompile("^[^k]$"),
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("u"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("Uk"),
					LeftContext: &bmpm.Matcher{
						MatchEmptyString: false,
						Suffix: [][]rune{
							[]rune("l"),
							[]rune("r"),
						},
					},
					RightContext: &bmpm.Matcher{
						MatchEmptyString: true,
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("uk"),
							Langs: -1,
						},
						{
							Text:  []rune("Qk"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("Uk"),
					RightContext: &bmpm.Matcher{
						MatchEmptyString: true,
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("uk"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("sUts"),
					RightContext: &bmpm.Matcher{
						MatchEmptyString: true,
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("suts"),
							Langs: -1,
						},
						{
							Text:  []rune("sQts"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("Uts"),
					RightContext: &bmpm.Matcher{
						MatchEmptyString: true,
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("uts"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("U"),
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("u"),
							Langs: -1,
						},
						{
							Text:  []rune("Q"),
							Langs: -1,
						},
					},
				},
			},
			bmpm.Lang(Hebrew): {},
			bmpm.Lang(Hungarian): {
				{
					Pattern: []rune("I"),
					RightContext: &bmpm.Matcher{
						MatchEmptyString: true,
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("i"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("I"),
					LeftContext: &bmpm.Matcher{
						MatchEmptyString: false,
						Suffix: [][]rune{
							[]rune("a"),
							[]rune("E"),
							[]rune("I"),
							[]rune("e"),
							[]rune("i"),
							[]rune("o"),
							[]rune("u"),
						},
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("i"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("I"),
					RightContext: &bmpm.Matcher{
						MatchEmptyString: false,
						Pattern:          regexp.MustCompile("^[^k]$"),
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("i"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("Ik"),
					LeftContext: &bmpm.Matcher{
						MatchEmptyString: false,
						Suffix: [][]rune{
							[]rune("l"),
							[]rune("r"),
						},
					},
					RightContext: &bmpm.Matcher{
						MatchEmptyString: true,
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("ik"),
							Langs: -1,
						},
						{
							Text:  []rune("Qk"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("Ik"),
					RightContext: &bmpm.Matcher{
						MatchEmptyString: true,
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("ik"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("sIts"),
					RightContext: &bmpm.Matcher{
						MatchEmptyString: true,
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("sits"),
							Langs: -1,
						},
						{
							Text:  []rune("sQts"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("Its"),
					RightContext: &bmpm.Matcher{
						MatchEmptyString: true,
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("its"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("I"),
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("i"),
							Langs: -1,
						},
						{
							Text:  []rune("Q"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("au"),
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("D"),
							Langs: -1,
						},
						{
							Text:  []rune("a"),
							Langs: -1,
						},
						{
							Text:  []rune("u"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("ou"),
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("D"),
							Langs: -1,
						},
						{
							Text:  []rune("o"),
							Langs: -1,
						},
						{
							Text:  []rune("u"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("ai"),
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("D"),
							Langs: -1,
						},
						{
							Text:  []rune("a"),
							Langs: -1,
						},
						{
							Text:  []rune("i"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("oi"),
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("D"),
							Langs: -1,
						},
						{
							Text:  []rune("o"),
							Langs: -1,
						},
						{
							Text:  []rune("i"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("ui"),
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("D"),
							Langs: -1,
						},
						{
							Text:  []rune("u"),
							Langs: -1,
						},
						{
							Text:  []rune("i"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("a"),
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("a"),
							Langs: -1,
						},
						{
							Text:  []rune("o"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("e"),
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("i"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("E"),
					RightContext: &bmpm.Matcher{
						MatchEmptyString: false,
						Exact: [][]rune{
							[]rune("f"),
							[]rune("k"),
							[]rune("l"),
							[]rune("m"),
							[]rune("n"),
							[]rune("p"),
							[]rune("r"),
							[]rune("s"),
							[]rune("S"),
							[]rune("t"),
							[]rune("v"),
						},
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("i"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("E"),
					RightContext: &bmpm.Matcher{
						MatchEmptyString: false,
						Exact: [][]rune{
							[]rune("ts"),
						},
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("i"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("E"),
					LeftContext: &bmpm.Matcher{
						MatchEmptyString: false,
						Suffix: [][]rune{
							[]rune("a"),
							[]rune("o"),
							[]rune("i"),
							[]rune("u"),
							[]rune("Q"),
						},
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("i"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("E"),
					RightContext: &bmpm.Matcher{
						MatchEmptyString: false,
						Prefix: [][]rune{
							[]rune("a"),
							[]rune("o"),
							[]rune("Q"),
						},
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("i"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("E"),
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("Y"),
							Langs: -1,
						},
						{
							Text:  []rune("i"),
							Langs: -1,
						},
					},
				},
			},
			bmpm.Lang(Polish): {
				{
					Pattern: []rune("aiB"),
					RightContext: &bmpm.Matcher{
						MatchEmptyString: false,
						Prefix: [][]rune{
							[]rune("b"),
							[]rune("p"),
						},
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("D"),
							Langs: -1,
						},
						{
							Text:  []rune("Dm"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("oiB"),
					RightContext: &bmpm.Matcher{
						MatchEmptyString: false,
						Prefix: [][]rune{
							[]rune("b"),
							[]rune("p"),
						},
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("D"),
							Langs: -1,
						},
						{
							Text:  []rune("Dm"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("uiB"),
					RightContext: &bmpm.Matcher{
						MatchEmptyString: false,
						Prefix: [][]rune{
							[]rune("b"),
							[]rune("p"),
						},
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("D"),
							Langs: -1,
						},
						{
							Text:  []rune("Dm"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("eiB"),
					RightContext: &bmpm.Matcher{
						MatchEmptyString: false,
						Prefix: [][]rune{
							[]rune("b"),
							[]rune("p"),
						},
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("D"),
							Langs: -1,
						},
						{
							Text:  []rune("Dm"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("EiB"),
					RightContext: &bmpm.Matcher{
						MatchEmptyString: false,
						Prefix: [][]rune{
							[]rune("b"),
							[]rune("p"),
						},
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("D"),
							Langs: -1,
						},
						{
							Text:  []rune("Dm"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("iiB"),
					RightContext: &bmpm.Matcher{
						MatchEmptyString: false,
						Prefix: [][]rune{
							[]rune("b"),
							[]rune("p"),
						},
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("D"),
							Langs: -1,
						},
						{
							Text:  []rune("Dm"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("IiB"),
					RightContext: &bmpm.Matcher{
						MatchEmptyString: false,
						Prefix: [][]rune{
							[]rune("b"),
							[]rune("p"),
						},
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("D"),
							Langs: -1,
						},
						{
							Text:  []rune("Dm"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("aiB"),
					RightContext: &bmpm.Matcher{
						MatchEmptyString: false,
						Prefix: [][]rune{
							[]rune("d"),
							[]rune("g"),
							[]rune("k"),
							[]rune("s"),
							[]rune("t"),
							[]rune("v"),
							[]rune("z"),
						},
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("D"),
							Langs: -1,
						},
						{
							Text:  []rune("Dn"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("oiB"),
					RightContext: &bmpm.Matcher{
						MatchEmptyString: false,
						Prefix: [][]rune{
							[]rune("d"),
							[]rune("g"),
							[]rune("k"),
							[]rune("s"),
							[]rune("t"),
							[]rune("v"),
							[]rune("z"),
						},
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("D"),
							Langs: -1,
						},
						{
							Text:  []rune("Dn"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("uiB"),
					RightContext: &bmpm.Matcher{
						MatchEmptyString: false,
						Prefix: [][]rune{
							[]rune("d"),
							[]rune("g"),
							[]rune("k"),
							[]rune("s"),
							[]rune("t"),
							[]rune("v"),
							[]rune("z"),
						},
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("D"),
							Langs: -1,
						},
						{
							Text:  []rune("Dn"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("eiB"),
					RightContext: &bmpm.Matcher{
						MatchEmptyString: false,
						Prefix: [][]rune{
							[]rune("d"),
							[]rune("g"),
							[]rune("k"),
							[]rune("s"),
							[]rune("t"),
							[]rune("v"),
							[]rune("z"),
						},
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("D"),
							Langs: -1,
						},
						{
							Text:  []rune("Dn"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("EiB"),
					RightContext: &bmpm.Matcher{
						MatchEmptyString: false,
						Prefix: [][]rune{
							[]rune("d"),
							[]rune("g"),
							[]rune("k"),
							[]rune("s"),
							[]rune("t"),
							[]rune("v"),
							[]rune("z"),
						},
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("D"),
							Langs: -1,
						},
						{
							Text:  []rune("Dn"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("iiB"),
					RightContext: &bmpm.Matcher{
						MatchEmptyString: false,
						Prefix: [][]rune{
							[]rune("d"),
							[]rune("g"),
							[]rune("k"),
							[]rune("s"),
							[]rune("t"),
							[]rune("v"),
							[]rune("z"),
						},
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("D"),
							Langs: -1,
						},
						{
							Text:  []rune("Dn"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("IiB"),
					RightContext: &bmpm.Matcher{
						MatchEmptyString: false,
						Prefix: [][]rune{
							[]rune("d"),
							[]rune("g"),
							[]rune("k"),
							[]rune("s"),
							[]rune("t"),
							[]rune("v"),
							[]rune("z"),
						},
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("D"),
							Langs: -1,
						},
						{
							Text:  []rune("Dn"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("B"),
					RightContext: &bmpm.Matcher{
						MatchEmptyString: false,
						Prefix: [][]rune{
							[]rune("b"),
							[]rune("p"),
						},
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("o"),
							Langs: -1,
						},
						{
							Text:  []rune("om"),
							Langs: -1,
						},
						{
							Text:  []rune("im"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("B"),
					RightContext: &bmpm.Matcher{
						MatchEmptyString: false,
						Prefix: [][]rune{
							[]rune("d"),
							[]rune("g"),
							[]rune("k"),
							[]rune("s"),
							[]rune("t"),
							[]rune("v"),
							[]rune("z"),
						},
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("o"),
							Langs: -1,
						},
						{
							Text:  []rune("on"),
							Langs: -1,
						},
						{
							Text:  []rune("in"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("B"),
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("o"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("aiF"),
					RightContext: &bmpm.Matcher{
						MatchEmptyString: false,
						Prefix: [][]rune{
							[]rune("b"),
							[]rune("p"),
						},
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("D"),
							Langs: -1,
						},
						{
							Text:  []rune("Dm"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("oiF"),
					RightContext: &bmpm.Matcher{
						MatchEmptyString: false,
						Prefix: [][]rune{
							[]rune("b"),
							[]rune("p"),
						},
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("D"),
							Langs: -1,
						},
						{
							Text:  []rune("Dm"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("uiF"),
					RightContext: &bmpm.Matcher{
						MatchEmptyString: false,
						Prefix: [][]rune{
							[]rune("b"),
							[]rune("p"),
						},
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("D"),
							Langs: -1,
						},
						{
							Text:  []rune("Dm"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("eiF"),
					RightContext: &bmpm.Matcher{
						MatchEmptyString: false,
						Prefix: [][]rune{
							[]rune("b"),
							[]rune("p"),
						},
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("D"),
							Langs: -1,
						},
						{
							Text:  []rune("Dm"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("EiF"),
					RightContext: &bmpm.Matcher{
						MatchEmptyString: false,
						Prefix: [][]rune{
							[]rune("b"),
							[]rune("p"),
						},
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("D"),
							Langs: -1,
						},
						{
							Text:  []rune("Dm"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("iiF"),
					RightContext: &bmpm.Matcher{
						MatchEmptyString: false,
						Prefix: [][]rune{
							[]rune("b"),
							[]rune("p"),
						},
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("D"),
							Langs: -1,
						},
						{
							Text:  []rune("Dm"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("IiF"),
					RightContext: &bmpm.Matcher{
						MatchEmptyString: false,
						Prefix: [][]rune{
							[]rune("b"),
							[]rune("p"),
						},
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("D"),
							Langs: -1,
						},
						{
							Text:  []rune("Dm"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("aiF"),
					RightContext: &bmpm.Matcher{
						MatchEmptyString: false,
						Prefix: [][]rune{
							[]rune("d"),
							[]rune("g"),
							[]rune("k"),
							[]rune("s"),
							[]rune("t"),
							[]rune("v"),
							[]rune("z"),
						},
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("D"),
							Langs: -1,
						},
						{
							Text:  []rune("Dn"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("oiF"),
					RightContext: &bmpm.Matcher{
						MatchEmptyString: false,
						Prefix: [][]rune{
							[]rune("d"),
							[]rune("g"),
							[]rune("k"),
							[]rune("s"),
							[]rune("t"),
							[]rune("v"),
							[]rune("z"),
						},
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("D"),
							Langs: -1,
						},
						{
							Text:  []rune("Dn"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("uiF"),
					RightContext: &bmpm.Matcher{
						MatchEmptyString: false,
						Prefix: [][]rune{
							[]rune("d"),
							[]rune("g"),
							[]rune("k"),
							[]rune("s"),
							[]rune("t"),
							[]rune("v"),
							[]rune("z"),
						},
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("D"),
							Langs: -1,
						},
						{
							Text:  []rune("Dn"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("eiF"),
					RightContext: &bmpm.Matcher{
						MatchEmptyString: false,
						Prefix: [][]rune{
							[]rune("d"),
							[]rune("g"),
							[]rune("k"),
							[]rune("s"),
							[]rune("t"),
							[]rune("v"),
							[]rune("z"),
						},
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("D"),
							Langs: -1,
						},
						{
							Text:  []rune("Dn"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("EiF"),
					RightContext: &bmpm.Matcher{
						MatchEmptyString: false,
						Prefix: [][]rune{
							[]rune("d"),
							[]rune("g"),
							[]rune("k"),
							[]rune("s"),
							[]rune("t"),
							[]rune("v"),
							[]rune("z"),
						},
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("D"),
							Langs: -1,
						},
						{
							Text:  []rune("Dn"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("iiF"),
					RightContext: &bmpm.Matcher{
						MatchEmptyString: false,
						Prefix: [][]rune{
							[]rune("d"),
							[]rune("g"),
							[]rune("k"),
							[]rune("s"),
							[]rune("t"),
							[]rune("v"),
							[]rune("z"),
						},
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("D"),
							Langs: -1,
						},
						{
							Text:  []rune("Dn"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("IiF"),
					RightContext: &bmpm.Matcher{
						MatchEmptyString: false,
						Prefix: [][]rune{
							[]rune("d"),
							[]rune("g"),
							[]rune("k"),
							[]rune("s"),
							[]rune("t"),
							[]rune("v"),
							[]rune("z"),
						},
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("D"),
							Langs: -1,
						},
						{
							Text:  []rune("Dn"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("F"),
					RightContext: &bmpm.Matcher{
						MatchEmptyString: false,
						Prefix: [][]rune{
							[]rune("b"),
							[]rune("p"),
						},
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("i"),
							Langs: -1,
						},
						{
							Text:  []rune("im"),
							Langs: -1,
						},
						{
							Text:  []rune("om"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("F"),
					RightContext: &bmpm.Matcher{
						MatchEmptyString: false,
						Prefix: [][]rune{
							[]rune("d"),
							[]rune("g"),
							[]rune("k"),
							[]rune("s"),
							[]rune("t"),
							[]rune("v"),
							[]rune("z"),
						},
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("i"),
							Langs: -1,
						},
						{
							Text:  []rune("in"),
							Langs: -1,
						},
						{
							Text:  []rune("on"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("F"),
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("i"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("P"),
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("o"),
							Langs: -1,
						},
						{
							Text:  []rune("u"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("I"),
					RightContext: &bmpm.Matcher{
						MatchEmptyString: true,
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("i"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("I"),
					RightContext: &bmpm.Matcher{
						MatchEmptyString: false,
						Pattern:          regexp.MustCompile("^[^k]$"),
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("i"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("Ik"),
					LeftContext: &bmpm.Matcher{
						MatchEmptyString: false,
						Suffix: [][]rune{
							[]rune("l"),
							[]rune("r"),
						},
					},
					RightContext: &bmpm.Matcher{
						MatchEmptyString: true,
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("ik"),
							Langs: -1,
						},
						{
							Text:  []rune("Qk"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("Ik"),
					RightContext: &bmpm.Matcher{
						MatchEmptyString: true,
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("ik"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("sIts"),
					RightContext: &bmpm.Matcher{
						MatchEmptyString: true,
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("sits"),
							Langs: -1,
						},
						{
							Text:  []rune("sQts"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("Its"),
					RightContext: &bmpm.Matcher{
						MatchEmptyString: true,
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("its"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("I"),
					LeftContext: &bmpm.Matcher{
						MatchEmptyString: false,
						Suffix: [][]rune{
							[]rune("a"),
							[]rune("e"),
							[]rune("i"),
							[]rune("A"),
							[]rune("E"),
							[]rune("B"),
							[]rune("F"),
							[]rune("I"),
							[]rune("o"),
							[]rune("u"),
						},
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("i"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("I"),
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("i"),
							Langs: -1,
						},
						{
							Text:  []rune("Q"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("au"),
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("D"),
							Langs: -1,
						},
						{
							Text:  []rune("a"),
							Langs: -1,
						},
						{
							Text:  []rune("u"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("ou"),
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("D"),
							Langs: -1,
						},
						{
							Text:  []rune("o"),
							Langs: -1,
						},
						{
							Text:  []rune("u"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("ai"),
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("D"),
							Langs: -1,
						},
						{
							Text:  []rune("a"),
							Langs: -1,
						},
						{
							Text:  []rune("i"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("oi"),
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("D"),
							Langs: -1,
						},
						{
							Text:  []rune("o"),
							Langs: -1,
						},
						{
							Text:  []rune("i"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("ui"),
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("D"),
							Langs: -1,
						},
						{
							Text:  []rune("u"),
							Langs: -1,
						},
						{
							Text:  []rune("i"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("a"),
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("a"),
							Langs: -1,
						},
						{
							Text:  []rune("o"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("e"),
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("i"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("E"),
					RightContext: &bmpm.Matcher{
						MatchEmptyString: false,
						Exact: [][]rune{
							[]rune("f"),
							[]rune("k"),
							[]rune("l"),
							[]rune("m"),
							[]rune("n"),
							[]rune("p"),
							[]rune("r"),
							[]rune("s"),
							[]rune("t"),
						},
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("i"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("E"),
					RightContext: &bmpm.Matcher{
						MatchEmptyString: false,
						Exact: [][]rune{
							[]rune("ts"),
						},
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("i"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("E"),
					RightContext: &bmpm.Matcher{
						MatchEmptyString: true,
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("i"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("E"),
					LeftContext: &bmpm.Matcher{
						MatchEmptyString: false,
						Suffix: [][]rune{
							[]rune("D"),
							[]rune("a"),
							[]rune("o"),
							[]rune("i"),
							[]rune("u"),
							[]rune("Q"),
						},
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("i"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("E"),
					RightContext: &bmpm.Matcher{
						MatchEmptyString: false,
						Prefix: [][]rune{
							[]rune("a"),
							[]rune("o"),
							[]rune("Q"),
						},
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("i"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("E"),
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("Y"),
							Langs: -1,
						},
						{
							Text:  []rune("i"),
							Langs: -1,
						},
					},
				},
			},
			bmpm.Lang(Romanian): {
				{
					Pattern: []rune("aiB"),
					RightContext: &bmpm.Matcher{
						MatchEmptyString: false,
						Prefix: [][]rune{
							[]rune("b"),
							[]rune("p"),
						},
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("D"),
							Langs: -1,
						},
						{
							Text:  []rune("Dm"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("oiB"),
					RightContext: &bmpm.Matcher{
						MatchEmptyString: false,
						Prefix: [][]rune{
							[]rune("b"),
							[]rune("p"),
						},
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("D"),
							Langs: -1,
						},
						{
							Text:  []rune("Dm"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("uiB"),
					RightContext: &bmpm.Matcher{
						MatchEmptyString: false,
						Prefix: [][]rune{
							[]rune("b"),
							[]rune("p"),
						},
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("D"),
							Langs: -1,
						},
						{
							Text:  []rune("Dm"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("eiB"),
					RightContext: &bmpm.Matcher{
						MatchEmptyString: false,
						Prefix: [][]rune{
							[]rune("b"),
							[]rune("p"),
						},
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("D"),
							Langs: -1,
						},
						{
							Text:  []rune("Dm"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("EiB"),
					RightContext: &bmpm.Matcher{
						MatchEmptyString: false,
						Prefix: [][]rune{
							[]rune("b"),
							[]rune("p"),
						},
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("D"),
							Langs: -1,
						},
						{
							Text:  []rune("Dm"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("iiB"),
					RightContext: &bmpm.Matcher{
						MatchEmptyString: false,
						Prefix: [][]rune{
							[]rune("b"),
							[]rune("p"),
						},
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("D"),
							Langs: -1,
						},
						{
							Text:  []rune("Dm"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("IiB"),
					RightContext: &bmpm.Matcher{
						MatchEmptyString: false,
						Prefix: [][]rune{
							[]rune("b"),
							[]rune("p"),
						},
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("D"),
							Langs: -1,
						},
						{
							Text:  []rune("Dm"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("aiB"),
					RightContext: &bmpm.Matcher{
						MatchEmptyString: false,
						Prefix: [][]rune{
							[]rune("d"),
							[]rune("g"),
							[]rune("k"),
							[]rune("s"),
							[]rune("t"),
							[]rune("v"),
							[]rune("z"),
						},
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("D"),
							Langs: -1,
						},
						{
							Text:  []rune("Dn"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("oiB"),
					RightContext: &bmpm.Matcher{
						MatchEmptyString: false,
						Prefix: [][]rune{
							[]rune("d"),
							[]rune("g"),
							[]rune("k"),
							[]rune("s"),
							[]rune("t"),
							[]rune("v"),
							[]rune("z"),
						},
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("D"),
							Langs: -1,
						},
						{
							Text:  []rune("Dn"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("uiB"),
					RightContext: &bmpm.Matcher{
						MatchEmptyString: false,
						Prefix: [][]rune{
							[]rune("d"),
							[]rune("g"),
							[]rune("k"),
							[]rune("s"),
							[]rune("t"),
							[]rune("v"),
							[]rune("z"),
						},
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("D"),
							Langs: -1,
						},
						{
							Text:  []rune("Dn"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("eiB"),
					RightContext: &bmpm.Matcher{
						MatchEmptyString: false,
						Prefix: [][]rune{
							[]rune("d"),
							[]rune("g"),
							[]rune("k"),
							[]rune("s"),
							[]rune("t"),
							[]rune("v"),
							[]rune("z"),
						},
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("D"),
							Langs: -1,
						},
						{
							Text:  []rune("Dn"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("EiB"),
					RightContext: &bmpm.Matcher{
						MatchEmptyString: false,
						Prefix: [][]rune{
							[]rune("d"),
							[]rune("g"),
							[]rune("k"),
							[]rune("s"),
							[]rune("t"),
							[]rune("v"),
							[]rune("z"),
						},
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("D"),
							Langs: -1,
						},
						{
							Text:  []rune("Dn"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("iiB"),
					RightContext: &bmpm.Matcher{
						MatchEmptyString: false,
						Prefix: [][]rune{
							[]rune("d"),
							[]rune("g"),
							[]rune("k"),
							[]rune("s"),
							[]rune("t"),
							[]rune("v"),
							[]rune("z"),
						},
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("D"),
							Langs: -1,
						},
						{
							Text:  []rune("Dn"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("IiB"),
					RightContext: &bmpm.Matcher{
						MatchEmptyString: false,
						Prefix: [][]rune{
							[]rune("d"),
							[]rune("g"),
							[]rune("k"),
							[]rune("s"),
							[]rune("t"),
							[]rune("v"),
							[]rune("z"),
						},
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("D"),
							Langs: -1,
						},
						{
							Text:  []rune("Dn"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("B"),
					RightContext: &bmpm.Matcher{
						MatchEmptyString: false,
						Prefix: [][]rune{
							[]rune("b"),
							[]rune("p"),
						},
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("o"),
							Langs: -1,
						},
						{
							Text:  []rune("om"),
							Langs: -1,
						},
						{
							Text:  []rune("im"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("B"),
					RightContext: &bmpm.Matcher{
						MatchEmptyString: false,
						Prefix: [][]rune{
							[]rune("d"),
							[]rune("g"),
							[]rune("k"),
							[]rune("s"),
							[]rune("t"),
							[]rune("v"),
							[]rune("z"),
						},
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("o"),
							Langs: -1,
						},
						{
							Text:  []rune("on"),
							Langs: -1,
						},
						{
							Text:  []rune("in"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("B"),
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("o"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("aiF"),
					RightContext: &bmpm.Matcher{
						MatchEmptyString: false,
						Prefix: [][]rune{
							[]rune("b"),
							[]rune("p"),
						},
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("D"),
							Langs: -1,
						},
						{
							Text:  []rune("Dm"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("oiF"),
					RightContext: &bmpm.Matcher{
						MatchEmptyString: false,
						Prefix: [][]rune{
							[]rune("b"),
							[]rune("p"),
						},
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("D"),
							Langs: -1,
						},
						{
							Text:  []rune("Dm"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("uiF"),
					RightContext: &bmpm.Matcher{
						MatchEmptyString: false,
						Prefix: [][]rune{
							[]rune("b"),
							[]rune("p"),
						},
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("D"),
							Langs: -1,
						},
						{
							Text:  []rune("Dm"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("eiF"),
					RightContext: &bmpm.Matcher{
						MatchEmptyString: false,
						Prefix: [][]rune{
							[]rune("b"),
							[]rune("p"),
						},
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("D"),
							Langs: -1,
						},
						{
							Text:  []rune("Dm"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("EiF"),
					RightContext: &bmpm.Matcher{
						MatchEmptyString: false,
						Prefix: [][]rune{
							[]rune("b"),
							[]rune("p"),
						},
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("D"),
							Langs: -1,
						},
						{
							Text:  []rune("Dm"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("iiF"),
					RightContext: &bmpm.Matcher{
						MatchEmptyString: false,
						Prefix: [][]rune{
							[]rune("b"),
							[]rune("p"),
						},
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("D"),
							Langs: -1,
						},
						{
							Text:  []rune("Dm"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("IiF"),
					RightContext: &bmpm.Matcher{
						MatchEmptyString: false,
						Prefix: [][]rune{
							[]rune("b"),
							[]rune("p"),
						},
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("D"),
							Langs: -1,
						},
						{
							Text:  []rune("Dm"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("aiF"),
					RightContext: &bmpm.Matcher{
						MatchEmptyString: false,
						Prefix: [][]rune{
							[]rune("d"),
							[]rune("g"),
							[]rune("k"),
							[]rune("s"),
							[]rune("t"),
							[]rune("v"),
							[]rune("z"),
						},
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("D"),
							Langs: -1,
						},
						{
							Text:  []rune("Dn"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("oiF"),
					RightContext: &bmpm.Matcher{
						MatchEmptyString: false,
						Prefix: [][]rune{
							[]rune("d"),
							[]rune("g"),
							[]rune("k"),
							[]rune("s"),
							[]rune("t"),
							[]rune("v"),
							[]rune("z"),
						},
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("D"),
							Langs: -1,
						},
						{
							Text:  []rune("Dn"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("uiF"),
					RightContext: &bmpm.Matcher{
						MatchEmptyString: false,
						Prefix: [][]rune{
							[]rune("d"),
							[]rune("g"),
							[]rune("k"),
							[]rune("s"),
							[]rune("t"),
							[]rune("v"),
							[]rune("z"),
						},
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("D"),
							Langs: -1,
						},
						{
							Text:  []rune("Dn"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("eiF"),
					RightContext: &bmpm.Matcher{
						MatchEmptyString: false,
						Prefix: [][]rune{
							[]rune("d"),
							[]rune("g"),
							[]rune("k"),
							[]rune("s"),
							[]rune("t"),
							[]rune("v"),
							[]rune("z"),
						},
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("D"),
							Langs: -1,
						},
						{
							Text:  []rune("Dn"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("EiF"),
					RightContext: &bmpm.Matcher{
						MatchEmptyString: false,
						Prefix: [][]rune{
							[]rune("d"),
							[]rune("g"),
							[]rune("k"),
							[]rune("s"),
							[]rune("t"),
							[]rune("v"),
							[]rune("z"),
						},
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("D"),
							Langs: -1,
						},
						{
							Text:  []rune("Dn"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("iiF"),
					RightContext: &bmpm.Matcher{
						MatchEmptyString: false,
						Prefix: [][]rune{
							[]rune("d"),
							[]rune("g"),
							[]rune("k"),
							[]rune("s"),
							[]rune("t"),
							[]rune("v"),
							[]rune("z"),
						},
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("D"),
							Langs: -1,
						},
						{
							Text:  []rune("Dn"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("IiF"),
					RightContext: &bmpm.Matcher{
						MatchEmptyString: false,
						Prefix: [][]rune{
							[]rune("d"),
							[]rune("g"),
							[]rune("k"),
							[]rune("s"),
							[]rune("t"),
							[]rune("v"),
							[]rune("z"),
						},
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("D"),
							Langs: -1,
						},
						{
							Text:  []rune("Dn"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("F"),
					RightContext: &bmpm.Matcher{
						MatchEmptyString: false,
						Prefix: [][]rune{
							[]rune("b"),
							[]rune("p"),
						},
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("i"),
							Langs: -1,
						},
						{
							Text:  []rune("im"),
							Langs: -1,
						},
						{
							Text:  []rune("om"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("F"),
					RightContext: &bmpm.Matcher{
						MatchEmptyString: false,
						Prefix: [][]rune{
							[]rune("d"),
							[]rune("g"),
							[]rune("k"),
							[]rune("s"),
							[]rune("t"),
							[]rune("v"),
							[]rune("z"),
						},
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("i"),
							Langs: -1,
						},
						{
							Text:  []rune("in"),
							Langs: -1,
						},
						{
							Text:  []rune("on"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("F"),
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("i"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("P"),
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("o"),
							Langs: -1,
						},
						{
							Text:  []rune("u"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("I"),
					RightContext: &bmpm.Matcher{
						MatchEmptyString: true,
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("i"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("I"),
					RightContext: &bmpm.Matcher{
						MatchEmptyString: false,
						Pattern:          regexp.MustCompile("^[^k]$"),
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("i"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("Ik"),
					LeftContext: &bmpm.Matcher{
						MatchEmptyString: false,
						Suffix: [][]rune{
							[]rune("l"),
							[]rune("r"),
						},
					},
					RightContext: &bmpm.Matcher{
						MatchEmptyString: true,
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("ik"),
							Langs: -1,
						},
						{
							Text:  []rune("Qk"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("Ik"),
					RightContext: &bmpm.Matcher{
						MatchEmptyString: true,
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("ik"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("sIts"),
					RightContext: &bmpm.Matcher{
						MatchEmptyString: true,
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("sits"),
							Langs: -1,
						},
						{
							Text:  []rune("sQts"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("Its"),
					RightContext: &bmpm.Matcher{
						MatchEmptyString: true,
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("its"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("I"),
					LeftContext: &bmpm.Matcher{
						MatchEmptyString: false,
						Suffix: [][]rune{
							[]rune("a"),
							[]rune("e"),
							[]rune("i"),
							[]rune("A"),
							[]rune("E"),
							[]rune("B"),
							[]rune("F"),
							[]rune("I"),
							[]rune("o"),
							[]rune("u"),
						},
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("i"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("I"),
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("i"),
							Langs: -1,
						},
						{
							Text:  []rune("Q"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("au"),
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("D"),
							Langs: -1,
						},
						{
							Text:  []rune("a"),
							Langs: -1,
						},
						{
							Text:  []rune("u"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("ou"),
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("D"),
							Langs: -1,
						},
						{
							Text:  []rune("o"),
							Langs: -1,
						},
						{
							Text:  []rune("u"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("ai"),
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("D"),
							Langs: -1,
						},
						{
							Text:  []rune("a"),
							Langs: -1,
						},
						{
							Text:  []rune("i"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("oi"),
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("D"),
							Langs: -1,
						},
						{
							Text:  []rune("o"),
							Langs: -1,
						},
						{
							Text:  []rune("i"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("ui"),
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("D"),
							Langs: -1,
						},
						{
							Text:  []rune("u"),
							Langs: -1,
						},
						{
							Text:  []rune("i"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("a"),
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("a"),
							Langs: -1,
						},
						{
							Text:  []rune("o"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("e"),
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("i"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("E"),
					RightContext: &bmpm.Matcher{
						MatchEmptyString: false,
						Exact: [][]rune{
							[]rune("f"),
							[]rune("k"),
							[]rune("l"),
							[]rune("m"),
							[]rune("n"),
							[]rune("p"),
							[]rune("r"),
							[]rune("s"),
							[]rune("t"),
						},
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("i"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("E"),
					RightContext: &bmpm.Matcher{
						MatchEmptyString: false,
						Exact: [][]rune{
							[]rune("ts"),
						},
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("i"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("E"),
					RightContext: &bmpm.Matcher{
						MatchEmptyString: true,
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("i"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("E"),
					LeftContext: &bmpm.Matcher{
						MatchEmptyString: false,
						Suffix: [][]rune{
							[]rune("D"),
							[]rune("a"),
							[]rune("o"),
							[]rune("i"),
							[]rune("u"),
							[]rune("Q"),
						},
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("i"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("E"),
					RightContext: &bmpm.Matcher{
						MatchEmptyString: false,
						Prefix: [][]rune{
							[]rune("a"),
							[]rune("o"),
							[]rune("Q"),
						},
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("i"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("E"),
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("Y"),
							Langs: -1,
						},
						{
							Text:  []rune("i"),
							Langs: -1,
						},
					},
				},
			},
			bmpm.Lang(Spanish): {
				{
					Pattern: []rune("I"),
					RightContext: &bmpm.Matcher{
						MatchEmptyString: true,
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("i"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("I"),
					LeftContext: &bmpm.Matcher{
						MatchEmptyString: false,
						Suffix: [][]rune{
							[]rune("a"),
							[]rune("E"),
							[]rune("I"),
							[]rune("e"),
							[]rune("i"),
							[]rune("o"),
							[]rune("u"),
						},
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("i"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("I"),
					RightContext: &bmpm.Matcher{
						MatchEmptyString: false,
						Pattern:          regexp.MustCompile("^[^k]$"),
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("i"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("Ik"),
					LeftContext: &bmpm.Matcher{
						MatchEmptyString: false,
						Suffix: [][]rune{
							[]rune("l"),
							[]rune("r"),
						},
					},
					RightContext: &bmpm.Matcher{
						MatchEmptyString: true,
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("ik"),
							Langs: -1,
						},
						{
							Text:  []rune("Qk"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("Ik"),
					RightContext: &bmpm.Matcher{
						MatchEmptyString: true,
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("ik"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("sIts"),
					RightContext: &bmpm.Matcher{
						MatchEmptyString: true,
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("sits"),
							Langs: -1,
						},
						{
							Text:  []rune("sQts"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("Its"),
					RightContext: &bmpm.Matcher{
						MatchEmptyString: true,
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("its"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("I"),
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("i"),
							Langs: -1,
						},
						{
							Text:  []rune("Q"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("au"),
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("D"),
							Langs: -1,
						},
						{
							Text:  []rune("a"),
							Langs: -1,
						},
						{
							Text:  []rune("u"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("ou"),
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("D"),
							Langs: -1,
						},
						{
							Text:  []rune("o"),
							Langs: -1,
						},
						{
							Text:  []rune("u"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("ai"),
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("D"),
							Langs: -1,
						},
						{
							Text:  []rune("a"),
							Langs: -1,
						},
						{
							Text:  []rune("i"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("oi"),
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("D"),
							Langs: -1,
						},
						{
							Text:  []rune("o"),
							Langs: -1,
						},
						{
							Text:  []rune("i"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("ui"),
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("D"),
							Langs: -1,
						},
						{
							Text:  []rune("u"),
							Langs: -1,
						},
						{
							Text:  []rune("i"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("a"),
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("a"),
							Langs: -1,
						},
						{
							Text:  []rune("o"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("e"),
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("i"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("E"),
					RightContext: &bmpm.Matcher{
						MatchEmptyString: false,
						Exact: [][]rune{
							[]rune("f"),
							[]rune("k"),
							[]rune("l"),
							[]rune("m"),
							[]rune("n"),
							[]rune("p"),
							[]rune("r"),
							[]rune("s"),
							[]rune("S"),
							[]rune("t"),
							[]rune("v"),
						},
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("i"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("E"),
					RightContext: &bmpm.Matcher{
						MatchEmptyString: false,
						Exact: [][]rune{
							[]rune("ts"),
						},
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("i"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("E"),
					LeftContext: &bmpm.Matcher{
						MatchEmptyString: false,
						Suffix: [][]rune{
							[]rune("a"),
							[]rune("o"),
							[]rune("i"),
							[]rune("u"),
							[]rune("Q"),
						},
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("i"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("E"),
					RightContext: &bmpm.Matcher{
						MatchEmptyString: false,
						Prefix: [][]rune{
							[]rune("a"),
							[]rune("o"),
							[]rune("Q"),
						},
					},
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("i"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("E"),
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("Y"),
							Langs: -1,
						},
						{
							Text:  []rune("i"),
							Langs: -1,
						},
					},
				},
			},
		},
	},
	Exact: bmpm.FinalRule{
		First: bmpm.Rules{
			{
				Pattern: []rune("h"),
				RightContext: &bmpm.Matcher{
					MatchEmptyString: true,
				},
				Phonetic: []bmpm.RuleToken{
					{
						Text:  nil,
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("b"),
				RightContext: &bmpm.Matcher{
					MatchEmptyString: false,
					Prefix: [][]rune{
						[]rune("f"),
						[]rune("k"),
						[]rune("t"),
						[]rune("S"),
						[]rune("s"),
					},
				},
				Phonetic: []bmpm.RuleToken{
					{
						Text:  []rune("p"),
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("b"),
				RightContext: &bmpm.Matcher{
					MatchEmptyString: false,
					Prefix: [][]rune{
						[]rune("p"),
					},
				},
				Phonetic: []bmpm.RuleToken{
					{
						Text:  nil,
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("b"),
				RightContext: &bmpm.Matcher{
					MatchEmptyString: true,
				},
				Phonetic: []bmpm.RuleToken{
					{
						Text:  []rune("p"),
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("p"),
				RightContext: &bmpm.Matcher{
					MatchEmptyString: false,
					Prefix: [][]rune{
						[]rune("g"),
						[]rune("d"),
						[]rune("Z"),
						[]rune("z"),
					},
				},
				Phonetic: []bmpm.RuleToken{
					{
						Text:  []rune("b"),
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("p"),
				RightContext: &bmpm.Matcher{
					MatchEmptyString: false,
					Prefix: [][]rune{
						[]rune("b"),
					},
				},
				Phonetic: []bmpm.RuleToken{
					{
						Text:  nil,
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("v"),
				RightContext: &bmpm.Matcher{
					MatchEmptyString: false,
					Prefix: [][]rune{
						[]rune("p"),
						[]rune("k"),
						[]rune("t"),
						[]rune("S"),
						[]rune("s"),
					},
				},
				Phonetic: []bmpm.RuleToken{
					{
						Text:  []rune("f"),
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("v"),
				RightContext: &bmpm.Matcher{
					MatchEmptyString: false,
					Prefix: [][]rune{
						[]rune("f"),
					},
				},
				Phonetic: []bmpm.RuleToken{
					{
						Text:  nil,
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("v"),
				RightContext: &bmpm.Matcher{
					MatchEmptyString: true,
				},
				Phonetic: []bmpm.RuleToken{
					{
						Text:  []rune("f"),
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("f"),
				RightContext: &bmpm.Matcher{
					MatchEmptyString: false,
					Prefix: [][]rune{
						[]rune("b"),
						[]rune("g"),
						[]rune("d"),
						[]rune("Z"),
						[]rune("z"),
					},
				},
				Phonetic: []bmpm.RuleToken{
					{
						Text:  []rune("v"),
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("f"),
				RightContext: &bmpm.Matcher{
					MatchEmptyString: false,
					Prefix: [][]rune{
						[]rune("v"),
					},
				},
				Phonetic: []bmpm.RuleToken{
					{
						Text:  nil,
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("g"),
				RightContext: &bmpm.Matcher{
					MatchEmptyString: false,
					Prefix: [][]rune{
						[]rune("p"),
						[]rune("f"),
						[]rune("t"),
						[]rune("S"),
						[]rune("s"),
					},
				},
				Phonetic: []bmpm.RuleToken{
					{
						Text:  []rune("k"),
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("g"),
				RightContext: &bmpm.Matcher{
					MatchEmptyString: false,
					Prefix: [][]rune{
						[]rune("k"),
					},
				},
				Phonetic: []bmpm.RuleToken{
					{
						Text:  nil,
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("g"),
				RightContext: &bmpm.Matcher{
					MatchEmptyString: true,
				},
				Phonetic: []bmpm.RuleToken{
					{
						Text:  []rune("k"),
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("k"),
				RightContext: &bmpm.Matcher{
					MatchEmptyString: false,
					Prefix: [][]rune{
						[]rune("b"),
						[]rune("d"),
						[]rune("Z"),
						[]rune("z"),
					},
				},
				Phonetic: []bmpm.RuleToken{
					{
						Text:  []rune("g"),
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("k"),
				RightContext: &bmpm.Matcher{
					MatchEmptyString: false,
					Prefix: [][]rune{
						[]rune("g"),
					},
				},
				Phonetic: []bmpm.RuleToken{
					{
						Text:  nil,
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("d"),
				RightContext: &bmpm.Matcher{
					MatchEmptyString: false,
					Prefix: [][]rune{
						[]rune("p"),
						[]rune("f"),
						[]rune("k"),
						[]rune("S"),
						[]rune("s"),
					},
				},
				Phonetic: []bmpm.RuleToken{
					{
						Text:  []rune("t"),
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("d"),
				RightContext: &bmpm.Matcher{
					MatchEmptyString: false,
					Prefix: [][]rune{
						[]rune("t"),
					},
				},
				Phonetic: []bmpm.RuleToken{
					{
						Text:  nil,
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("d"),
				RightContext: &bmpm.Matcher{
					MatchEmptyString: true,
				},
				Phonetic: []bmpm.RuleToken{
					{
						Text:  []rune("t"),
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("t"),
				RightContext: &bmpm.Matcher{
					MatchEmptyString: false,
					Prefix: [][]rune{
						[]rune("b"),
						[]rune("g"),
						[]rune("Z"),
						[]rune("z"),
					},
				},
				Phonetic: []bmpm.RuleToken{
					{
						Text:  []rune("d"),
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("t"),
				RightContext: &bmpm.Matcher{
					MatchEmptyString: false,
					Prefix: [][]rune{
						[]rune("d"),
					},
				},
				Phonetic: []bmpm.RuleToken{
					{
						Text:  nil,
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("s"),
				RightContext: &bmpm.Matcher{
					MatchEmptyString: false,
					Prefix: [][]rune{
						[]rune("dZ"),
					},
				},
				Phonetic: []bmpm.RuleToken{
					{
						Text:  nil,
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("s"),
				RightContext: &bmpm.Matcher{
					MatchEmptyString: false,
					Prefix: [][]rune{
						[]rune("tS"),
					},
				},
				Phonetic: []bmpm.RuleToken{
					{
						Text:  nil,
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("z"),
				RightContext: &bmpm.Matcher{
					MatchEmptyString: false,
					Prefix: [][]rune{
						[]rune("p"),
						[]rune("f"),
						[]rune("k"),
						[]rune("S"),
						[]rune("t"),
					},
				},
				Phonetic: []bmpm.RuleToken{
					{
						Text:  []rune("s"),
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("z"),
				RightContext: &bmpm.Matcher{
					MatchEmptyString: false,
					Prefix: [][]rune{
						[]rune("s"),
						[]rune("S"),
						[]rune("z"),
						[]rune("Z"),
					},
				},
				Phonetic: []bmpm.RuleToken{
					{
						Text:  nil,
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("s"),
				RightContext: &bmpm.Matcher{
					MatchEmptyString: false,
					Prefix: [][]rune{
						[]rune("s"),
						[]rune("S"),
						[]rune("z"),
						[]rune("Z"),
					},
				},
				Phonetic: []bmpm.RuleToken{
					{
						Text:  nil,
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("Z"),
				RightContext: &bmpm.Matcher{
					MatchEmptyString: false,
					Prefix: [][]rune{
						[]rune("s"),
						[]rune("S"),
						[]rune("z"),
						[]rune("Z"),
					},
				},
				Phonetic: []bmpm.RuleToken{
					{
						Text:  nil,
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("S"),
				RightContext: &bmpm.Matcher{
					MatchEmptyString: false,
					Prefix: [][]rune{
						[]rune("s"),
						[]rune("S"),
						[]rune("z"),
						[]rune("Z"),
					},
				},
				Phonetic: []bmpm.RuleToken{
					{
						Text:  nil,
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("jnm"),
				Phonetic: []bmpm.RuleToken{
					{
						Text:  []rune("jm"),
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("ji"),
				LeftContext: &bmpm.Matcher{
					MatchEmptyString: true,
				},
				Phonetic: []bmpm.RuleToken{
					{
						Text:  []rune("i"),
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("jI"),
				LeftContext: &bmpm.Matcher{
					MatchEmptyString: true,
				},
				Phonetic: []bmpm.RuleToken{
					{
						Text:  []rune("I"),
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("a"),
				RightContext: &bmpm.Matcher{
					MatchEmptyString: false,
					Prefix: [][]rune{
						[]rune("a"),
						[]rune("A"),
						[]rune("B"),
					},
				},
				Phonetic: []bmpm.RuleToken{
					{
						Text:  nil,
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("a"),
				LeftContext: &bmpm.Matcher{
					MatchEmptyString: false,
					Suffix: [][]rune{
						[]rune("A"),
						[]rune("B"),
					},
				},
				Phonetic: []bmpm.RuleToken{
					{
						Text:  nil,
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("A"),
				RightContext: &bmpm.Matcher{
					MatchEmptyString: false,
					Prefix: [][]rune{
						[]rune("A"),
					},
				},
				Phonetic: []bmpm.RuleToken{
					{
						Text:  nil,
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("B"),
				RightContext: &bmpm.Matcher{
					MatchEmptyString: false,
					Prefix: [][]rune{
						[]rune("B"),
					},
				},
				Phonetic: []bmpm.RuleToken{
					{
						Text:  nil,
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("b"),
				RightContext: &bmpm.Matcher{
					MatchEmptyString: false,
					Prefix: [][]rune{
						[]rune("b"),
					},
				},
				Phonetic: []bmpm.RuleToken{
					{
						Text:  nil,
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("d"),
				RightContext: &bmpm.Matcher{
					MatchEmptyString: false,
					Prefix: [][]rune{
						[]rune("d"),
					},
				},
				Phonetic: []bmpm.RuleToken{
					{
						Text:  nil,
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("f"),
				RightContext: &bmpm.Matcher{
					MatchEmptyString: false,
					Prefix: [][]rune{
						[]rune("f"),
					},
				},
				Phonetic: []bmpm.RuleToken{
					{
						Text:  nil,
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("g"),
				RightContext: &bmpm.Matcher{
					MatchEmptyString: false,
					Prefix: [][]rune{
						[]rune("g"),
					},
				},
				Phonetic: []bmpm.RuleToken{
					{
						Text:  nil,
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("k"),
				RightContext: &bmpm.Matcher{
					MatchEmptyString: false,
					Prefix: [][]rune{
						[]rune("k"),
					},
				},
				Phonetic: []bmpm.RuleToken{
					{
						Text:  nil,
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("l"),
				RightContext: &bmpm.Matcher{
					MatchEmptyString: false,
					Prefix: [][]rune{
						[]rune("l"),
					},
				},
				Phonetic: []bmpm.RuleToken{
					{
						Text:  nil,
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("m"),
				RightContext: &bmpm.Matcher{
					MatchEmptyString: false,
					Prefix: [][]rune{
						[]rune("m"),
					},
				},
				Phonetic: []bmpm.RuleToken{
					{
						Text:  nil,
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("n"),
				RightContext: &bmpm.Matcher{
					MatchEmptyString: false,
					Prefix: [][]rune{
						[]rune("n"),
					},
				},
				Phonetic: []bmpm.RuleToken{
					{
						Text:  nil,
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("p"),
				RightContext: &bmpm.Matcher{
					MatchEmptyString: false,
					Prefix: [][]rune{
						[]rune("p"),
					},
				},
				Phonetic: []bmpm.RuleToken{
					{
						Text:  nil,
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("r"),
				RightContext: &bmpm.Matcher{
					MatchEmptyString: false,
					Prefix: [][]rune{
						[]rune("r"),
					},
				},
				Phonetic: []bmpm.RuleToken{
					{
						Text:  nil,
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("t"),
				RightContext: &bmpm.Matcher{
					MatchEmptyString: false,
					Prefix: [][]rune{
						[]rune("t"),
					},
				},
				Phonetic: []bmpm.RuleToken{
					{
						Text:  nil,
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("v"),
				RightContext: &bmpm.Matcher{
					MatchEmptyString: false,
					Prefix: [][]rune{
						[]rune("v"),
					},
				},
				Phonetic: []bmpm.RuleToken{
					{
						Text:  nil,
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("z"),
				RightContext: &bmpm.Matcher{
					MatchEmptyString: false,
					Prefix: [][]rune{
						[]rune("z"),
					},
				},
				Phonetic: []bmpm.RuleToken{
					{
						Text:  nil,
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("H"),
				Phonetic: []bmpm.RuleToken{
					{
						Text:  []rune("h"),
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("s"),
				LeftContext: &bmpm.Matcher{
					MatchEmptyString: false,
					Pattern:          regexp.MustCompile("[^t]$"),
				},
				RightContext: &bmpm.Matcher{
					MatchEmptyString: false,
					Prefix: [][]rune{
						[]rune("b"),
						[]rune("g"),
						[]rune("Z"),
						[]rune("d"),
					},
				},
				Phonetic: []bmpm.RuleToken{
					{
						Text:  []rune("z"),
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("Z"),
				RightContext: &bmpm.Matcher{
					MatchEmptyString: false,
					Prefix: [][]rune{
						[]rune("p"),
						[]rune("f"),
						[]rune("k"),
						[]rune("s"),
						[]rune("t"),
					},
				},
				Phonetic: []bmpm.RuleToken{
					{
						Text:  []rune("S"),
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("Z"),
				RightContext: &bmpm.Matcher{
					MatchEmptyString: true,
				},
				Phonetic: []bmpm.RuleToken{
					{
						Text:  []rune("S"),
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("S"),
				RightContext: &bmpm.Matcher{
					MatchEmptyString: false,
					Prefix: [][]rune{
						[]rune("b"),
						[]rune("g"),
						[]rune("z"),
						[]rune("d"),
					},
				},
				Phonetic: []bmpm.RuleToken{
					{
						Text:  []rune("Z"),
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("z"),
				RightContext: &bmpm.Matcher{
					MatchEmptyString: true,
				},
				Phonetic: []bmpm.RuleToken{
					{
						Text:  []rune("s"),
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("ji"),
				LeftContext: &bmpm.Matcher{
					MatchEmptyString: false,
					Suffix: [][]rune{
						[]rune("a"),
						[]rune("A"),
						[]rune("o"),
						[]rune("O"),
						[]rune("e"),
						[]rune("E"),
						[]rune("i"),
						[]rune("I"),
						[]rune("u"),
						[]rune("U"),
					},
				},
				Phonetic: []bmpm.RuleToken{
					{
						Text:  []rune("j"),
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("jI"),
				LeftContext: &bmpm.Matcher{
					MatchEmptyString: false,
					Suffix: [][]rune{
						[]rune("a"),
						[]rune("A"),
						[]rune("o"),
						[]rune("O"),
						[]rune("e"),
						[]rune("E"),
						[]rune("i"),
						[]rune("I"),
						[]rune("u"),
						[]rune("U"),
					},
				},
				Phonetic: []bmpm.RuleToken{
					{
						Text:  []rune("j"),
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("je"),
				LeftContext: &bmpm.Matcher{
					MatchEmptyString: false,
					Suffix: [][]rune{
						[]rune("a"),
						[]rune("A"),
						[]rune("o"),
						[]rune("O"),
						[]rune("e"),
						[]rune("E"),
						[]rune("i"),
						[]rune("I"),
						[]rune("u"),
						[]rune("U"),
					},
				},
				Phonetic: []bmpm.RuleToken{
					{
						Text:  []rune("j"),
						Langs: -1,
					},
				},
			},
			{
				Pattern: []rune("jE"),
				LeftContext: &bmpm.Matcher{
					MatchEmptyString: false,
					Suffix: [][]rune{
						[]rune("a"),
						[]rune("A"),
						[]rune("o"),
						[]rune("O"),
						[]rune("e"),
						[]rune("E"),
						[]rune("i"),
						[]rune("I"),
						[]rune("u"),
						[]rune("U"),
					},
				},
				Phonetic: []bmpm.RuleToken{
					{
						Text:  []rune("j"),
						Langs: -1,
					},
				},
			},
		},
		Second: map[bmpm.Lang]bmpm.Rules{
			bmpm.Lang(Any): {
				{
					Pattern: []rune("A"),
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("a"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("B"),
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("a"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("E"),
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("e"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("F"),
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("e"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("I"),
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("i"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("O"),
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("o"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("P"),
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("o"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("U"),
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("u"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("J"),
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("l"),
							Langs: -1,
						},
					},
				},
			},
			bmpm.Lang(Russian): {
				{
					Pattern: []rune("E"),
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("e"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("I"),
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("i"),
							Langs: -1,
						},
					},
				},
			},
			bmpm.Lang(Cyrillic): {
				{
					Pattern: []rune("E"),
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("e"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("I"),
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("i"),
							Langs: -1,
						},
					},
				},
			},
			bmpm.Lang(English): {
				{
					Pattern: []rune("E"),
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("e"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("I"),
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("i"),
							Langs: -1,
						},
					},
				},
			},
			bmpm.Lang(French): {
				{
					Pattern: []rune("E"),
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("e"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("I"),
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("i"),
							Langs: -1,
						},
					},
				},
			},
			bmpm.Lang(German): {
				{
					Pattern: []rune("A"),
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("a"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("B"),
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("a"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("E"),
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("e"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("F"),
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("e"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("I"),
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("i"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("O"),
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("o"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("P"),
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("o"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("U"),
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("u"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("J"),
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("l"),
							Langs: -1,
						},
					},
				},
			},
			bmpm.Lang(Hebrew): {},
			bmpm.Lang(Hungarian): {
				{
					Pattern: []rune("E"),
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("e"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("I"),
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("i"),
							Langs: -1,
						},
					},
				},
			},
			bmpm.Lang(Polish): {
				{
					Pattern: []rune("B"),
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("a"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("F"),
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("e"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("P"),
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("o"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("E"),
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("e"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("I"),
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("i"),
							Langs: -1,
						},
					},
				},
			},
			bmpm.Lang(Romanian): {
				{
					Pattern: []rune("E"),
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("e"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("I"),
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("i"),
							Langs: -1,
						},
					},
				},
			},
			bmpm.Lang(Spanish): {
				{
					Pattern: []rune("E"),
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("e"),
							Langs: -1,
						},
					},
				},
				{
					Pattern: []rune("I"),
					Phonetic: []bmpm.RuleToken{
						{
							Text:  []rune("i"),
							Langs: -1,
						},
					},
				},
			},
		},
	},
}
View Source
var LangRules = []bmpm.LangRule{}/* 172 elements not displayed */
View Source
var Rules = map[bmpm.Lang]bmpm.Rules{
	bmpm.Lang(Any): {
		{
			Pattern: []rune("yna"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: true,
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("in"),
					Langs: 512,
				},
				{
					Text:  []rune("ina"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("ina"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: true,
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("in"),
					Langs: 512,
				},
				{
					Text:  []rune("ina"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("liova"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: true,
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("lof"),
					Langs: 512,
				},
				{
					Text:  []rune("lef"),
					Langs: 512,
				},
				{
					Text:  []rune("lova"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("lova"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: true,
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("lof"),
					Langs: 512,
				},
				{
					Text:  []rune("lef"),
					Langs: 512,
				},
				{
					Text:  []rune("lova"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("ova"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: true,
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("of"),
					Langs: 512,
				},
				{
					Text:  []rune("ova"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("eva"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: true,
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("ef"),
					Langs: 512,
				},
				{
					Text:  []rune("eva"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("aia"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: true,
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("aja"),
					Langs: -1,
				},
				{
					Text:  []rune("i"),
					Langs: 512,
				},
			},
		},
		{
			Pattern: []rune("aja"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: true,
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("aja"),
					Langs: -1,
				},
				{
					Text:  []rune("i"),
					Langs: 512,
				},
			},
		},
		{
			Pattern: []rune("aya"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: true,
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("aja"),
					Langs: -1,
				},
				{
					Text:  []rune("i"),
					Langs: 512,
				},
			},
		},
		{
			Pattern: []rune("lowa"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: true,
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("lova"),
					Langs: -1,
				},
				{
					Text:  []rune("lof"),
					Langs: 128,
				},
				{
					Text:  []rune("l"),
					Langs: 128,
				},
				{
					Text:  []rune("el"),
					Langs: 128,
				},
			},
		},
		{
			Pattern: []rune("kowa"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: true,
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("kova"),
					Langs: -1,
				},
				{
					Text:  []rune("kof"),
					Langs: 128,
				},
				{
					Text:  []rune("k"),
					Langs: 128,
				},
				{
					Text:  []rune("ek"),
					Langs: 128,
				},
			},
		},
		{
			Pattern: []rune("owa"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: true,
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("ova"),
					Langs: -1,
				},
				{
					Text:  []rune("of"),
					Langs: 128,
				},
				{
					Text:  nil,
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("lowna"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: true,
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("lovna"),
					Langs: -1,
				},
				{
					Text:  []rune("levna"),
					Langs: -1,
				},
				{
					Text:  []rune("l"),
					Langs: 128,
				},
				{
					Text:  []rune("el"),
					Langs: 128,
				},
			},
		},
		{
			Pattern: []rune("kowna"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: true,
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("kovna"),
					Langs: -1,
				},
				{
					Text:  []rune("k"),
					Langs: 128,
				},
				{
					Text:  []rune("ek"),
					Langs: 128,
				},
			},
		},
		{
			Pattern: []rune("owna"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: true,
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("ovna"),
					Langs: -1,
				},
				{
					Text:  nil,
					Langs: 128,
				},
			},
		},
		{
			Pattern: []rune("lówna"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: true,
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("l"),
					Langs: -1,
				},
				{
					Text:  []rune("el"),
					Langs: 128,
				},
			},
		},
		{
			Pattern: []rune("kówna"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: true,
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("k"),
					Langs: -1,
				},
				{
					Text:  []rune("ek"),
					Langs: 128,
				},
			},
		},
		{
			Pattern: []rune("ówna"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: true,
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  nil,
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("a"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: true,
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("a"),
					Langs: -1,
				},
				{
					Text:  []rune("i"),
					Langs: 128,
				},
			},
		},
		{
			Pattern: []rune("rh"),
			LeftContext: &bmpm.Matcher{
				MatchEmptyString: true,
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("r"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("ssch"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("S"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("chsch"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("xS"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("tsch"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("tS"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("sch"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: false,
				Prefix: [][]rune{
					[]rune("e"),
					[]rune("i"),
				},
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("sk"),
					Langs: 256,
				},
				{
					Text:  []rune("S"),
					Langs: -1,
				},
				{
					Text:  []rune("StS"),
					Langs: 512,
				},
			},
		},
		{
			Pattern: []rune("sch"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("S"),
					Langs: -1,
				},
				{
					Text:  []rune("StS"),
					Langs: 512,
				},
			},
		},
		{
			Pattern: []rune("ssh"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("S"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("sh"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: false,
				Prefix: [][]rune{
					[]rune("ä"),
					[]rune("ö"),
					[]rune("ü"),
				},
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("sh"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("sh"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: false,
				Prefix: [][]rune{
					[]rune("a"),
					[]rune("e"),
					[]rune("i"),
					[]rune("o"),
					[]rune("u"),
				},
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("S"),
					Langs: 516,
				},
				{
					Text:  []rune("sh"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("sh"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("S"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("kh"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("x"),
					Langs: 516,
				},
				{
					Text:  []rune("kh"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("chs"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("ks"),
					Langs: 16,
				},
				{
					Text:  []rune("xs"),
					Langs: -1,
				},
				{
					Text:  []rune("tSs"),
					Langs: 516,
				},
			},
		},
		{
			Pattern: []rune("ch"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: false,
				Prefix: [][]rune{
					[]rune("e"),
					[]rune("i"),
				},
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("x"),
					Langs: -1,
				},
				{
					Text:  []rune("k"),
					Langs: 256,
				},
				{
					Text:  []rune("tS"),
					Langs: 516,
				},
			},
		},
		{
			Pattern: []rune("ch"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("x"),
					Langs: -1,
				},
				{
					Text:  []rune("tS"),
					Langs: 516,
				},
			},
		},
		{
			Pattern: []rune("ck"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("k"),
					Langs: -1,
				},
				{
					Text:  []rune("tsk"),
					Langs: 128,
				},
			},
		},
		{
			Pattern: []rune("czy"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("tSi"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("cze"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: false,
				Prefix: [][]rune{
					[]rune("b"),
					[]rune("c"),
					[]rune("d"),
					[]rune("g"),
					[]rune("k"),
					[]rune("p"),
					[]rune("s"),
					[]rune("t"),
					[]rune("w"),
					[]rune("z"),
					[]rune("ż"),
				},
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("tSe"),
					Langs: -1,
				},
				{
					Text:  []rune("tSF"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("ciewicz"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("tsevitS"),
					Langs: -1,
				},
				{
					Text:  []rune("tSevitS"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("siewicz"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("sevitS"),
					Langs: -1,
				},
				{
					Text:  []rune("SevitS"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("ziewicz"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("zevitS"),
					Langs: -1,
				},
				{
					Text:  []rune("ZevitS"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("riewicz"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("rjevitS"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("diewicz"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("djevitS"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("tiewicz"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("tjevitS"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("iewicz"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("evitS"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("ewicz"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("evitS"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("owicz"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("ovitS"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("icz"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("itS"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("cz"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("tS"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("cia"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: false,
				Prefix: [][]rune{
					[]rune("b"),
					[]rune("c"),
					[]rune("d"),
					[]rune("g"),
					[]rune("k"),
					[]rune("p"),
					[]rune("s"),
					[]rune("t"),
					[]rune("w"),
					[]rune("z"),
					[]rune("ż"),
				},
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("tSB"),
					Langs: 128,
				},
				{
					Text:  []rune("tsB"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("cia"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("tSa"),
					Langs: 128,
				},
				{
					Text:  []rune("tsa"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("cią"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: false,
				Prefix: [][]rune{
					[]rune("b"),
					[]rune("p"),
				},
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("tSom"),
					Langs: 128,
				},
				{
					Text:  []rune("tsom"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("cią"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("tSon"),
					Langs: 128,
				},
				{
					Text:  []rune("tson"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("cię"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: false,
				Prefix: [][]rune{
					[]rune("b"),
					[]rune("p"),
				},
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("tSem"),
					Langs: 128,
				},
				{
					Text:  []rune("tsem"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("cię"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("tSen"),
					Langs: 128,
				},
				{
					Text:  []rune("tsen"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("cie"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: false,
				Prefix: [][]rune{
					[]rune("b"),
					[]rune("c"),
					[]rune("d"),
					[]rune("g"),
					[]rune("k"),
					[]rune("p"),
					[]rune("s"),
					[]rune("t"),
					[]rune("w"),
					[]rune("z"),
					[]rune("ż"),
				},
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("tSF"),
					Langs: 128,
				},
				{
					Text:  []rune("tsF"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("cie"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("tSe"),
					Langs: 128,
				},
				{
					Text:  []rune("tse"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("cio"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("tSo"),
					Langs: 128,
				},
				{
					Text:  []rune("tso"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("ciu"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("tSu"),
					Langs: 128,
				},
				{
					Text:  []rune("tsu"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("ci"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: true,
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("tsi"),
					Langs: 128,
				},
				{
					Text:  []rune("tSi"),
					Langs: 384,
				},
				{
					Text:  []rune("tS"),
					Langs: 256,
				},
				{
					Text:  []rune("si"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("ci"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("tsi"),
					Langs: 128,
				},
				{
					Text:  []rune("tSi"),
					Langs: 384,
				},
				{
					Text:  []rune("si"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("ce"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: false,
				Prefix: [][]rune{
					[]rune("b"),
					[]rune("c"),
					[]rune("d"),
					[]rune("g"),
					[]rune("k"),
					[]rune("p"),
					[]rune("s"),
					[]rune("t"),
					[]rune("w"),
					[]rune("z"),
					[]rune("ż"),
				},
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("tsF"),
					Langs: 128,
				},
				{
					Text:  []rune("tSe"),
					Langs: 384,
				},
				{
					Text:  []rune("se"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("ce"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("tSe"),
					Langs: 384,
				},
				{
					Text:  []rune("tse"),
					Langs: 128,
				},
				{
					Text:  []rune("se"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("cy"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("si"),
					Langs: -1,
				},
				{
					Text:  []rune("tsi"),
					Langs: 128,
				},
			},
		},
		{
			Pattern: []rune("ssz"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("S"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("sz"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("S"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("ssp"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("Sp"),
					Langs: 16,
				},
				{
					Text:  []rune("sp"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("sp"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("Sp"),
					Langs: 16,
				},
				{
					Text:  []rune("sp"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("sst"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("St"),
					Langs: 16,
				},
				{
					Text:  []rune("st"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("st"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("St"),
					Langs: 16,
				},
				{
					Text:  []rune("st"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("ss"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("s"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("sia"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: false,
				Prefix: [][]rune{
					[]rune("b"),
					[]rune("c"),
					[]rune("d"),
					[]rune("g"),
					[]rune("k"),
					[]rune("p"),
					[]rune("s"),
					[]rune("t"),
					[]rune("w"),
					[]rune("z"),
					[]rune("ż"),
				},
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("SB"),
					Langs: 128,
				},
				{
					Text:  []rune("sB"),
					Langs: 128,
				},
				{
					Text:  []rune("sja"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("sia"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("Sa"),
					Langs: 128,
				},
				{
					Text:  []rune("sja"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("sią"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: false,
				Prefix: [][]rune{
					[]rune("b"),
					[]rune("p"),
				},
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("Som"),
					Langs: 128,
				},
				{
					Text:  []rune("som"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("sią"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("Son"),
					Langs: 128,
				},
				{
					Text:  []rune("son"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("się"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: false,
				Prefix: [][]rune{
					[]rune("b"),
					[]rune("p"),
				},
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("Sem"),
					Langs: 128,
				},
				{
					Text:  []rune("sem"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("się"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("Sen"),
					Langs: 128,
				},
				{
					Text:  []rune("sen"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("sie"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: false,
				Prefix: [][]rune{
					[]rune("b"),
					[]rune("c"),
					[]rune("d"),
					[]rune("g"),
					[]rune("k"),
					[]rune("p"),
					[]rune("s"),
					[]rune("t"),
					[]rune("w"),
					[]rune("z"),
					[]rune("ż"),
				},
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("SF"),
					Langs: 128,
				},
				{
					Text:  []rune("sF"),
					Langs: -1,
				},
				{
					Text:  []rune("zi"),
					Langs: 16,
				},
			},
		},
		{
			Pattern: []rune("sie"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("se"),
					Langs: -1,
				},
				{
					Text:  []rune("Se"),
					Langs: 128,
				},
				{
					Text:  []rune("zi"),
					Langs: 16,
				},
			},
		},
		{
			Pattern: []rune("sio"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("So"),
					Langs: 128,
				},
				{
					Text:  []rune("so"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("siu"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("Su"),
					Langs: 128,
				},
				{
					Text:  []rune("sju"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("si"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("Si"),
					Langs: 128,
				},
				{
					Text:  []rune("si"),
					Langs: -1,
				},
				{
					Text:  []rune("zi"),
					Langs: 16,
				},
			},
		},
		{
			Pattern: []rune("s"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: false,
				Prefix: [][]rune{
					[]rune("a"),
					[]rune("e"),
					[]rune("i"),
					[]rune("o"),
					[]rune("u"),
					[]rune("ä"),
					[]rune("ö"),
					[]rune("ë"),
				},
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("s"),
					Langs: -1,
				},
				{
					Text:  []rune("z"),
					Langs: 16,
				},
			},
		},
		{
			Pattern: []rune("gue"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("ge"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("gui"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("gi"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("guy"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("gi"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("gh"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: false,
				Prefix: [][]rune{
					[]rune("e"),
					[]rune("i"),
				},
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("g"),
					Langs: 256,
				},
				{
					Text:  []rune("gh"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("gauz"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: true,
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("haus"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("gaus"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: true,
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("haus"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("gol'ts"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: true,
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("holts"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("golts"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: true,
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("holts"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("gol'tz"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: true,
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("holts"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("goltz"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("holts"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("gol'ts"),
			LeftContext: &bmpm.Matcher{
				MatchEmptyString: true,
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("holts"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("golts"),
			LeftContext: &bmpm.Matcher{
				MatchEmptyString: true,
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("holts"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("gol'tz"),
			LeftContext: &bmpm.Matcher{
				MatchEmptyString: true,
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("holts"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("goltz"),
			LeftContext: &bmpm.Matcher{
				MatchEmptyString: true,
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("holts"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("gendler"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: true,
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("hendler"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("gejmer"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: true,
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("hajmer"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("gejm"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: true,
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("hajm"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("geymer"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: true,
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("hajmer"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("geym"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: true,
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("hajm"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("geimer"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: true,
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("hajmer"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("geim"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: true,
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("hajm"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("gof"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: true,
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("hof"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("ger"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: true,
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("ger"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("gen"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: true,
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("gen"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("gin"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: true,
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("gin"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("gie"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: true,
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("ge"),
					Langs: -1,
				},
				{
					Text:  []rune("gi"),
					Langs: 16,
				},
				{
					Text:  []rune("ji"),
					Langs: 8,
				},
			},
		},
		{
			Pattern: []rune("gie"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("ge"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("ge"),
			LeftContext: &bmpm.Matcher{
				MatchEmptyString: false,
				Suffix: [][]rune{
					[]rune("y"),
					[]rune("a"),
					[]rune("e"),
					[]rune("i"),
					[]rune("o"),
					[]rune("u"),
				},
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("gE"),
					Langs: -1,
				},
				{
					Text:  []rune("xe"),
					Langs: 1024,
				},
				{
					Text:  []rune("dZe"),
					Langs: 260,
				},
			},
		},
		{
			Pattern: []rune("gi"),
			LeftContext: &bmpm.Matcher{
				MatchEmptyString: false,
				Suffix: [][]rune{
					[]rune("y"),
					[]rune("a"),
					[]rune("e"),
					[]rune("i"),
					[]rune("o"),
					[]rune("u"),
				},
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("gI"),
					Langs: -1,
				},
				{
					Text:  []rune("xi"),
					Langs: 1024,
				},
				{
					Text:  []rune("dZi"),
					Langs: 260,
				},
			},
		},
		{
			Pattern: []rune("ge"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("gE"),
					Langs: -1,
				},
				{
					Text:  []rune("dZe"),
					Langs: 260,
				},
				{
					Text:  []rune("hE"),
					Langs: 512,
				},
				{
					Text:  []rune("xe"),
					Langs: 1024,
				},
			},
		},
		{
			Pattern: []rune("gi"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("gI"),
					Langs: -1,
				},
				{
					Text:  []rune("dZi"),
					Langs: 260,
				},
				{
					Text:  []rune("hI"),
					Langs: 512,
				},
				{
					Text:  []rune("xi"),
					Langs: 1024,
				},
			},
		},
		{
			Pattern: []rune("gy"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: false,
				Prefix: [][]rune{
					[]rune("a"),
					[]rune("e"),
					[]rune("o"),
					[]rune("u"),
					[]rune("á"),
					[]rune("é"),
					[]rune("ó"),
					[]rune("ú"),
					[]rune("ü"),
					[]rune("ö"),
					[]rune("ő"),
					[]rune("ű"),
				},
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("gi"),
					Langs: -1,
				},
				{
					Text:  []rune("dj"),
					Langs: 64,
				},
			},
		},
		{
			Pattern: []rune("gy"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("gi"),
					Langs: -1,
				},
				{
					Text:  []rune("d"),
					Langs: 64,
				},
			},
		},
		{
			Pattern: []rune("g"),
			LeftContext: &bmpm.Matcher{
				MatchEmptyString: false,
				Suffix: [][]rune{
					[]rune("j"),
					[]rune("y"),
					[]rune("a"),
					[]rune("e"),
					[]rune("i"),
					[]rune("o"),
					[]rune("u"),
				},
			},
			RightContext: &bmpm.Matcher{
				MatchEmptyString: false,
				Prefix: [][]rune{
					[]rune("a"),
					[]rune("o"),
					[]rune("u"),
					[]rune("y"),
					[]rune("e"),
					[]rune("i"),
				},
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("g"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("g"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: false,
				Prefix: [][]rune{
					[]rune("a"),
					[]rune("o"),
					[]rune("u"),
					[]rune("e"),
					[]rune("i"),
				},
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("g"),
					Langs: -1,
				},
				{
					Text:  []rune("h"),
					Langs: 512,
				},
			},
		},
		{
			Pattern: []rune("ej"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("aj"),
					Langs: -1,
				},
				{
					Text:  []rune("eZ"),
					Langs: 264,
				},
				{
					Text:  []rune("ex"),
					Langs: 1024,
				},
			},
		},
		{
			Pattern: []rune("ej"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("aj"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("ly"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: false,
				Prefix: [][]rune{
					[]rune("a"),
					[]rune("u"),
				},
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("l"),
					Langs: -1,
				},
				{
					Text:  []rune("lj"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("li"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: false,
				Prefix: [][]rune{
					[]rune("a"),
					[]rune("u"),
				},
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("l"),
					Langs: -1,
				},
				{
					Text:  []rune("lj"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("lj"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: false,
				Prefix: [][]rune{
					[]rune("a"),
					[]rune("u"),
				},
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("l"),
					Langs: -1,
				},
				{
					Text:  []rune("lj"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("lio"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("lo"),
					Langs: -1,
				},
				{
					Text:  []rune("le"),
					Langs: 512,
				},
			},
		},
		{
			Pattern: []rune("lyo"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("lo"),
					Langs: -1,
				},
				{
					Text:  []rune("le"),
					Langs: 512,
				},
			},
		},
		{
			Pattern: []rune("ll"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("l"),
					Langs: -1,
				},
				{
					Text:  []rune("J"),
					Langs: 1024,
				},
			},
		},
		{
			Pattern: []rune("j"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: false,
				Prefix: [][]rune{
					[]rune("a"),
					[]rune("o"),
					[]rune("e"),
					[]rune("i"),
					[]rune("u"),
					[]rune("y"),
				},
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("j"),
					Langs: -1,
				},
				{
					Text:  []rune("dZ"),
					Langs: 4,
				},
				{
					Text:  []rune("x"),
					Langs: 1024,
				},
				{
					Text:  []rune("Z"),
					Langs: 264,
				},
			},
		},
		{
			Pattern: []rune("j"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("j"),
					Langs: -1,
				},
				{
					Text:  []rune("x"),
					Langs: 1024,
				},
			},
		},
		{
			Pattern: []rune("pf"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("pf"),
					Langs: -1,
				},
				{
					Text:  []rune("p"),
					Langs: -1,
				},
				{
					Text:  []rune("f"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("ph"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("ph"),
					Langs: -1,
				},
				{
					Text:  []rune("f"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("qu"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("kv"),
					Langs: 16,
				},
				{
					Text:  []rune("k"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("rze"),
			LeftContext: &bmpm.Matcher{
				MatchEmptyString: false,
				Suffix: [][]rune{
					[]rune("t"),
				},
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("Se"),
					Langs: 128,
				},
				{
					Text:  []rune("re"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("rze"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("rze"),
					Langs: -1,
				},
				{
					Text:  []rune("rtsE"),
					Langs: 16,
				},
				{
					Text:  []rune("Ze"),
					Langs: 128,
				},
				{
					Text:  []rune("re"),
					Langs: 128,
				},
				{
					Text:  []rune("rZe"),
					Langs: 128,
				},
			},
		},
		{
			Pattern: []rune("rzy"),
			LeftContext: &bmpm.Matcher{
				MatchEmptyString: false,
				Suffix: [][]rune{
					[]rune("t"),
				},
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("Si"),
					Langs: 128,
				},
				{
					Text:  []rune("ri"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("rzy"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("Zi"),
					Langs: 128,
				},
				{
					Text:  []rune("ri"),
					Langs: 128,
				},
				{
					Text:  []rune("rZi"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("rz"),
			LeftContext: &bmpm.Matcher{
				MatchEmptyString: false,
				Suffix: [][]rune{
					[]rune("t"),
				},
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("S"),
					Langs: 128,
				},
				{
					Text:  []rune("r"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("rz"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("rz"),
					Langs: -1,
				},
				{
					Text:  []rune("rts"),
					Langs: 16,
				},
				{
					Text:  []rune("Z"),
					Langs: 128,
				},
				{
					Text:  []rune("r"),
					Langs: 128,
				},
				{
					Text:  []rune("rZ"),
					Langs: 128,
				},
			},
		},
		{
			Pattern: []rune("tz"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: true,
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("ts"),
					Langs: -1,
				},
				{
					Text:  []rune("tS"),
					Langs: 20,
				},
			},
		},
		{
			Pattern: []rune("tz"),
			LeftContext: &bmpm.Matcher{
				MatchEmptyString: true,
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("ts"),
					Langs: -1,
				},
				{
					Text:  []rune("tS"),
					Langs: 20,
				},
			},
		},
		{
			Pattern: []rune("tz"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("ts"),
					Langs: 532,
				},
				{
					Text:  []rune("tz"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("zh"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("Z"),
					Langs: -1,
				},
				{
					Text:  []rune("zh"),
					Langs: 128,
				},
				{
					Text:  []rune("tsh"),
					Langs: 16,
				},
			},
		},
		{
			Pattern: []rune("zia"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: false,
				Prefix: [][]rune{
					[]rune("b"),
					[]rune("c"),
					[]rune("d"),
					[]rune("g"),
					[]rune("k"),
					[]rune("p"),
					[]rune("s"),
					[]rune("t"),
					[]rune("w"),
					[]rune("z"),
					[]rune("ż"),
				},
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("ZB"),
					Langs: 128,
				},
				{
					Text:  []rune("zB"),
					Langs: 128,
				},
				{
					Text:  []rune("zja"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("zia"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("Za"),
					Langs: 128,
				},
				{
					Text:  []rune("zja"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("zią"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: false,
				Prefix: [][]rune{
					[]rune("b"),
					[]rune("p"),
				},
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("Zom"),
					Langs: 128,
				},
				{
					Text:  []rune("zom"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("zią"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("Zon"),
					Langs: 128,
				},
				{
					Text:  []rune("zon"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("zię"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: false,
				Prefix: [][]rune{
					[]rune("b"),
					[]rune("p"),
				},
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("Zem"),
					Langs: 128,
				},
				{
					Text:  []rune("zem"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("zię"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("Zen"),
					Langs: 128,
				},
				{
					Text:  []rune("zen"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("zie"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: false,
				Prefix: [][]rune{
					[]rune("b"),
					[]rune("c"),
					[]rune("d"),
					[]rune("g"),
					[]rune("k"),
					[]rune("p"),
					[]rune("s"),
					[]rune("t"),
					[]rune("w"),
					[]rune("z"),
					[]rune("ż"),
				},
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("ZF"),
					Langs: 128,
				},
				{
					Text:  []rune("zF"),
					Langs: 128,
				},
				{
					Text:  []rune("ze"),
					Langs: -1,
				},
				{
					Text:  []rune("tsi"),
					Langs: 16,
				},
			},
		},
		{
			Pattern: []rune("zie"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("ze"),
					Langs: -1,
				},
				{
					Text:  []rune("Ze"),
					Langs: 128,
				},
				{
					Text:  []rune("tsi"),
					Langs: 16,
				},
			},
		},
		{
			Pattern: []rune("zio"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("Zo"),
					Langs: 128,
				},
				{
					Text:  []rune("zo"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("ziu"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("Zu"),
					Langs: 128,
				},
				{
					Text:  []rune("zju"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("zi"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("Zi"),
					Langs: 128,
				},
				{
					Text:  []rune("zi"),
					Langs: -1,
				},
				{
					Text:  []rune("tsi"),
					Langs: 16,
				},
			},
		},
		{
			Pattern: []rune("thal"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: true,
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("tal"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("th"),
			LeftContext: &bmpm.Matcher{
				MatchEmptyString: true,
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("t"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("th"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: false,
				Prefix: [][]rune{
					[]rune("a"),
					[]rune("e"),
					[]rune("i"),
					[]rune("o"),
					[]rune("u"),
				},
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("t"),
					Langs: 16,
				},
				{
					Text:  []rune("th"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("th"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("t"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("vogel"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("vogel"),
					Langs: -1,
				},
				{
					Text:  []rune("fogel"),
					Langs: 16,
				},
			},
		},
		{
			Pattern: []rune("v"),
			LeftContext: &bmpm.Matcher{
				MatchEmptyString: true,
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("v"),
					Langs: -1,
				},
				{
					Text:  []rune("f"),
					Langs: 16,
				},
			},
		},
		{
			Pattern: []rune("h"),
			LeftContext: &bmpm.Matcher{
				MatchEmptyString: false,
				Suffix: [][]rune{
					[]rune("a"),
					[]rune("e"),
					[]rune("i"),
					[]rune("o"),
					[]rune("u"),
					[]rune("y"),
					[]rune("ä"),
					[]rune("ö"),
					[]rune("ü"),
				},
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  nil,
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("h"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("h"),
					Langs: -1,
				},
				{
					Text:  []rune("x"),
					Langs: 384,
				},
			},
		},
		{
			Pattern: []rune("h"),
			LeftContext: &bmpm.Matcher{
				MatchEmptyString: true,
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("h"),
					Langs: -1,
				},
				{
					Text:  []rune("H"),
					Langs: 20,
				},
			},
		},
		{
			Pattern: []rune("yi"),
			LeftContext: &bmpm.Matcher{
				MatchEmptyString: false,
				Pattern:          regexp.MustCompile(" $"),
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("i"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("ii"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: false,
				Pattern:          regexp.MustCompile("^ "),
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("i"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("iy"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: false,
				Pattern:          regexp.MustCompile("^ "),
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("i"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("yy"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: false,
				Pattern:          regexp.MustCompile("^ "),
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("i"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("e"),
			LeftContext: &bmpm.Matcher{
				MatchEmptyString: false,
				Suffix: [][]rune{
					[]rune("in"),
				},
			},
			RightContext: &bmpm.Matcher{
				MatchEmptyString: true,
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("e"),
					Langs: -1,
				},
				{
					Text:  nil,
					Langs: 8,
				},
			},
		},
		{
			Pattern: []rune("yj"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: true,
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("i"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("ij"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: true,
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("i"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("aue"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("aue"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("oue"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("oue"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("au"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("au"),
					Langs: -1,
				},
				{
					Text:  []rune("o"),
					Langs: 8,
				},
			},
		},
		{
			Pattern: []rune("ou"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("ou"),
					Langs: -1,
				},
				{
					Text:  []rune("u"),
					Langs: 8,
				},
			},
		},
		{
			Pattern: []rune("ue"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("Q"),
					Langs: -1,
				},
				{
					Text:  []rune("uje"),
					Langs: 512,
				},
			},
		},
		{
			Pattern: []rune("ae"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("Y"),
					Langs: 16,
				},
				{
					Text:  []rune("aje"),
					Langs: 512,
				},
				{
					Text:  []rune("ae"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("oe"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("Y"),
					Langs: 16,
				},
				{
					Text:  []rune("oje"),
					Langs: 512,
				},
				{
					Text:  []rune("oe"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("ee"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("i"),
					Langs: 4,
				},
				{
					Text:  []rune("aje"),
					Langs: 512,
				},
				{
					Text:  []rune("e"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("ei"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("aj"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("ey"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("aj"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("eu"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("aj"),
					Langs: 16,
				},
				{
					Text:  []rune("oj"),
					Langs: 16,
				},
				{
					Text:  []rune("eu"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("i"),
			LeftContext: &bmpm.Matcher{
				MatchEmptyString: false,
				Suffix: [][]rune{
					[]rune("a"),
					[]rune("o"),
					[]rune("u"),
				},
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("j"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("y"),
			LeftContext: &bmpm.Matcher{
				MatchEmptyString: false,
				Suffix: [][]rune{
					[]rune("a"),
					[]rune("o"),
					[]rune("u"),
				},
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("j"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("ie"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: false,
				Prefix: [][]rune{
					[]rune("b"),
					[]rune("c"),
					[]rune("d"),
					[]rune("g"),
					[]rune("k"),
					[]rune("p"),
					[]rune("s"),
					[]rune("t"),
					[]rune("w"),
					[]rune("z"),
					[]rune("ż"),
				},
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("i"),
					Langs: 16,
				},
				{
					Text:  []rune("e"),
					Langs: 128,
				},
				{
					Text:  []rune("ije"),
					Langs: 512,
				},
				{
					Text:  []rune("je"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("ie"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("i"),
					Langs: 16,
				},
				{
					Text:  []rune("e"),
					Langs: 128,
				},
				{
					Text:  []rune("ije"),
					Langs: 512,
				},
				{
					Text:  []rune("je"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("ye"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("je"),
					Langs: -1,
				},
				{
					Text:  []rune("ije"),
					Langs: 512,
				},
			},
		},
		{
			Pattern: []rune("i"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: false,
				Prefix: [][]rune{
					[]rune("a"),
					[]rune("u"),
				},
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("j"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("y"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: false,
				Prefix: [][]rune{
					[]rune("a"),
					[]rune("u"),
				},
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("j"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("io"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("jo"),
					Langs: -1,
				},
				{
					Text:  []rune("e"),
					Langs: 512,
				},
			},
		},
		{
			Pattern: []rune("yo"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("jo"),
					Langs: -1,
				},
				{
					Text:  []rune("e"),
					Langs: 512,
				},
			},
		},
		{
			Pattern: []rune("ea"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("ea"),
					Langs: -1,
				},
				{
					Text:  []rune("ja"),
					Langs: 256,
				},
			},
		},
		{
			Pattern: []rune("e"),
			LeftContext: &bmpm.Matcher{
				MatchEmptyString: true,
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("e"),
					Langs: -1,
				},
				{
					Text:  []rune("je"),
					Langs: 512,
				},
			},
		},
		{
			Pattern: []rune("oo"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("u"),
					Langs: 4,
				},
				{
					Text:  []rune("o"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("uu"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("u"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("ć"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("tS"),
					Langs: 128,
				},
				{
					Text:  []rune("ts"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("ł"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("l"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("ń"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("n"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("ñ"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("n"),
					Langs: -1,
				},
				{
					Text:  []rune("nj"),
					Langs: 1024,
				},
			},
		},
		{
			Pattern: []rune("ś"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("S"),
					Langs: 128,
				},
				{
					Text:  []rune("s"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("ş"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("S"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("ţ"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("ts"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("ż"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("Z"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("ź"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("Z"),
					Langs: 128,
				},
				{
					Text:  []rune("z"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("où"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("u"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("ą"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: false,
				Prefix: [][]rune{
					[]rune("b"),
					[]rune("p"),
				},
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("om"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("ą"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("on"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("ä"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("Y"),
					Langs: -1,
				},
				{
					Text:  []rune("e"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("á"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("a"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("ă"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("e"),
					Langs: 256,
				},
				{
					Text:  []rune("a"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("à"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("a"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("â"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("a"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("é"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("e"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("è"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("e"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("ê"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("e"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("ę"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: false,
				Prefix: [][]rune{
					[]rune("b"),
					[]rune("p"),
				},
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("em"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("ę"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("en"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("í"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("i"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("î"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("i"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("ö"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("Y"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("ő"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("Y"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("ó"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("u"),
					Langs: 128,
				},
				{
					Text:  []rune("o"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("ű"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("Q"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("ü"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("Q"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("ú"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("u"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("ű"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("Q"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("ß"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("s"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("'"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  nil,
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("\""),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  nil,
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("a"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: false,
				Prefix: [][]rune{
					[]rune("b"),
					[]rune("c"),
					[]rune("d"),
					[]rune("g"),
					[]rune("k"),
					[]rune("p"),
					[]rune("s"),
					[]rune("t"),
					[]rune("w"),
					[]rune("z"),
					[]rune("ż"),
				},
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("A"),
					Langs: -1,
				},
				{
					Text:  []rune("B"),
					Langs: 128,
				},
			},
		},
		{
			Pattern: []rune("e"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: false,
				Prefix: [][]rune{
					[]rune("b"),
					[]rune("c"),
					[]rune("d"),
					[]rune("g"),
					[]rune("k"),
					[]rune("p"),
					[]rune("s"),
					[]rune("t"),
					[]rune("w"),
					[]rune("z"),
					[]rune("ż"),
				},
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("E"),
					Langs: -1,
				},
				{
					Text:  []rune("F"),
					Langs: 128,
				},
			},
		},
		{
			Pattern: []rune("o"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: false,
				Prefix: [][]rune{
					[]rune("b"),
					[]rune("c"),
					[]rune("ć"),
					[]rune("d"),
					[]rune("g"),
					[]rune("k"),
					[]rune("l"),
					[]rune("ł"),
					[]rune("m"),
					[]rune("n"),
					[]rune("ń"),
					[]rune("r"),
					[]rune("s"),
					[]rune("ś"),
					[]rune("t"),
					[]rune("w"),
					[]rune("z"),
					[]rune("ź"),
					[]rune("ż"),
				},
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("O"),
					Langs: -1,
				},
				{
					Text:  []rune("P"),
					Langs: 128,
				},
			},
		},
		{
			Pattern: []rune("a"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("A"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("b"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("b"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("c"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("k"),
					Langs: -1,
				},
				{
					Text:  []rune("ts"),
					Langs: 128,
				},
			},
		},
		{
			Pattern: []rune("d"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("d"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("e"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("E"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("f"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("f"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("g"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("g"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("h"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("h"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("i"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("I"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("j"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("j"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("k"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("k"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("l"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("l"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("m"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("m"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("n"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("n"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("o"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("O"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("p"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("p"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("q"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("k"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("r"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("r"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("s"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("s"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("t"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("t"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("u"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("U"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("v"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("v"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("w"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("v"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("x"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("ks"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("y"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("i"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("z"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("ts"),
					Langs: 16,
				},
				{
					Text:  []rune("z"),
					Langs: -1,
				},
			},
		},
	},
	bmpm.Lang(Cyrillic): {
		{
			Pattern: []rune("ця"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("tsa"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("цю"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("tsu"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("циа"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("tsa"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("цие"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("tse"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("цио"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("tso"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("циу"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("tsu"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("сие"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("se"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("сио"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("so"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("зие"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("ze"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("зио"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("zo"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("гауз"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: true,
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("haus"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("гаус"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: true,
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("haus"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("гольц"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: true,
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("holts"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("геймер"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: true,
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("hajmer"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("гейм"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: true,
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("hajm"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("гоф"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: true,
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("hof"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("гер"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: true,
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("ger"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("ген"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: true,
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("gen"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("гин"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: true,
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("gin"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("г"),
			LeftContext: &bmpm.Matcher{
				MatchEmptyString: false,
				Suffix: [][]rune{
					[]rune("й"),
					[]rune("ё"),
					[]rune("я"),
					[]rune("ю"),
					[]rune("ы"),
					[]rune("а"),
					[]rune("е"),
					[]rune("о"),
					[]rune("и"),
					[]rune("у"),
				},
			},
			RightContext: &bmpm.Matcher{
				MatchEmptyString: false,
				Prefix: [][]rune{
					[]rune("а"),
					[]rune("е"),
					[]rune("о"),
					[]rune("и"),
					[]rune("у"),
				},
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("g"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("г"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: false,
				Prefix: [][]rune{
					[]rune("а"),
					[]rune("е"),
					[]rune("о"),
					[]rune("и"),
					[]rune("у"),
				},
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("g"),
					Langs: -1,
				},
				{
					Text:  []rune("h"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("ля"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("la"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("лю"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("lu"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("лё"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("le"),
					Langs: -1,
				},
				{
					Text:  []rune("lo"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("лио"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("le"),
					Langs: -1,
				},
				{
					Text:  []rune("lo"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("ле"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("lE"),
					Langs: -1,
				},
				{
					Text:  []rune("lo"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("ийе"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("je"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("ие"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("je"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("ыйе"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("je"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("ые"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("je"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("ий"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: false,
				Prefix: [][]rune{
					[]rune("а"),
					[]rune("о"),
					[]rune("у"),
				},
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("j"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("ый"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: false,
				Prefix: [][]rune{
					[]rune("а"),
					[]rune("о"),
					[]rune("у"),
				},
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("j"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("ий"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: true,
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("i"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("ый"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: true,
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("i"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("ё"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("e"),
					Langs: -1,
				},
				{
					Text:  []rune("jo"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("ей"),
			LeftContext: &bmpm.Matcher{
				MatchEmptyString: true,
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("jaj"),
					Langs: -1,
				},
				{
					Text:  []rune("aj"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("е"),
			LeftContext: &bmpm.Matcher{
				MatchEmptyString: false,
				Suffix: [][]rune{
					[]rune("а"),
					[]rune("е"),
					[]rune("о"),
					[]rune("у"),
				},
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("je"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("е"),
			LeftContext: &bmpm.Matcher{
				MatchEmptyString: true,
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("je"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("эй"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("aj"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("ей"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("aj"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("ауе"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("aue"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("ауэ"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("aue"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("а"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("a"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("б"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("b"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("в"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("v"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("г"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("g"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("д"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("d"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("е"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("E"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("ж"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("Z"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("з"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("z"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("и"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("I"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("й"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("j"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("к"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("k"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("л"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("l"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("м"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("m"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("н"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("n"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("о"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("o"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("п"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("p"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("р"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("r"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("с"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: false,
				Prefix: [][]rune{
					[]rune("с"),
				},
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  nil,
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("с"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("s"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("т"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("t"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("у"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("u"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("ф"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("f"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("х"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("x"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("ц"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("ts"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("ч"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("tS"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("ш"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("S"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("щ"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("StS"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("ъ"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  nil,
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("ы"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("I"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("ь"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  nil,
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("э"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("E"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("ю"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("ju"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("я"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("ja"),
					Langs: -1,
				},
			},
		},
	},
	bmpm.Lang(English): {
		{
			Pattern: []rune("tch"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("tS"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("ch"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("tS"),
					Langs: -1,
				},
				{
					Text:  []rune("x"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("ck"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("k"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("cc"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: false,
				Prefix: [][]rune{
					[]rune("i"),
					[]rune("e"),
					[]rune("y"),
				},
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("ks"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("c"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: false,
				Prefix: [][]rune{
					[]rune("c"),
				},
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  nil,
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("c"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: false,
				Prefix: [][]rune{
					[]rune("i"),
					[]rune("e"),
					[]rune("y"),
				},
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("s"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("c"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("k"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("gh"),
			LeftContext: &bmpm.Matcher{
				MatchEmptyString: true,
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("g"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("gh"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("g"),
					Langs: -1,
				},
				{
					Text:  []rune("f"),
					Langs: -1,
				},
				{
					Text:  []rune("w"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("gn"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("gn"),
					Langs: -1,
				},
				{
					Text:  []rune("n"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("g"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: false,
				Prefix: [][]rune{
					[]rune("i"),
					[]rune("e"),
					[]rune("y"),
				},
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("g"),
					Langs: -1,
				},
				{
					Text:  []rune("dZ"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("th"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("t"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("kh"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("x"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("ph"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("f"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("sch"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("S"),
					Langs: -1,
				},
				{
					Text:  []rune("sk"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("sh"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("S"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("who"),
			LeftContext: &bmpm.Matcher{
				MatchEmptyString: true,
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("hu"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("wh"),
			LeftContext: &bmpm.Matcher{
				MatchEmptyString: true,
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("w"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("h"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: true,
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  nil,
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("h"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: false,
				Pattern:          regexp.MustCompile("^[^aeiou]"),
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  nil,
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("h"),
			LeftContext: &bmpm.Matcher{
				MatchEmptyString: true,
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("H"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("h"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("h"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("j"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("dZ"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("kn"),
			LeftContext: &bmpm.Matcher{
				MatchEmptyString: true,
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("n"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("mb"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: true,
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("m"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("ng"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: true,
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("N"),
					Langs: -1,
				},
				{
					Text:  []rune("ng"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("pn"),
			LeftContext: &bmpm.Matcher{
				MatchEmptyString: true,
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("pn"),
					Langs: -1,
				},
				{
					Text:  []rune("n"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("ps"),
			LeftContext: &bmpm.Matcher{
				MatchEmptyString: true,
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("ps"),
					Langs: -1,
				},
				{
					Text:  []rune("s"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("qu"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("kw"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("q"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("k"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("tia"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("So"),
					Langs: -1,
				},
				{
					Text:  []rune("Sa"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("tio"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("So"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("wr"),
			LeftContext: &bmpm.Matcher{
				MatchEmptyString: true,
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("r"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("w"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("w"),
					Langs: -1,
				},
				{
					Text:  []rune("v"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("x"),
			LeftContext: &bmpm.Matcher{
				MatchEmptyString: true,
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("z"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("x"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("ks"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("yi"),
			LeftContext: &bmpm.Matcher{
				MatchEmptyString: false,
				Pattern:          regexp.MustCompile(" $"),
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("i"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("y"),
			LeftContext: &bmpm.Matcher{
				MatchEmptyString: true,
			},
			RightContext: &bmpm.Matcher{
				MatchEmptyString: false,
				Prefix: [][]rune{
					[]rune("a"),
					[]rune("e"),
					[]rune("i"),
					[]rune("o"),
					[]rune("u"),
					[]rune("y"),
				},
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("j"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("aue"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("aue"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("oue"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("aue"),
					Langs: -1,
				},
				{
					Text:  []rune("oue"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("ai"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("aj"),
					Langs: -1,
				},
				{
					Text:  []rune("e"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("ay"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("aj"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("a"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: false,
				Pattern:          regexp.MustCompile("^[^aeiou]e"),
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("aj"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("a"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("e"),
					Langs: -1,
				},
				{
					Text:  []rune("o"),
					Langs: -1,
				},
				{
					Text:  []rune("a"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("ei"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("aj"),
					Langs: -1,
				},
				{
					Text:  []rune("i"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("ey"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("aj"),
					Langs: -1,
				},
				{
					Text:  []rune("i"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("ear"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("ia"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("ea"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("i"),
					Langs: -1,
				},
				{
					Text:  []rune("e"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("ee"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("i"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("e"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: false,
				Pattern:          regexp.MustCompile("^[^aeiou]e"),
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("i"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("e"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: true,
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  nil,
					Langs: -1,
				},
				{
					Text:  []rune("E"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("e"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("E"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("ie"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("i"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("i"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: false,
				Pattern:          regexp.MustCompile("^[^aeiou]e"),
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("aj"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("i"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("I"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("oa"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("ou"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("oi"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("oj"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("oo"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("u"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("ou"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("u"),
					Langs: -1,
				},
				{
					Text:  []rune("ou"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("oy"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("oj"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("o"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: false,
				Pattern:          regexp.MustCompile("^[^aeiou]e"),
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("ou"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("o"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("o"),
					Langs: -1,
				},
				{
					Text:  []rune("a"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("u"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: false,
				Pattern:          regexp.MustCompile("^[^aeiou]e"),
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("ju"),
					Langs: -1,
				},
				{
					Text:  []rune("u"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("u"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: false,
				Prefix: [][]rune{
					[]rune("r"),
				},
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("e"),
					Langs: -1,
				},
				{
					Text:  []rune("u"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("u"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("u"),
					Langs: -1,
				},
				{
					Text:  []rune("a"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("y"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("i"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("b"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("b"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("d"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("d"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("f"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("f"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("g"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("g"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("k"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("k"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("l"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("l"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("m"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("m"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("n"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("n"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("p"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("p"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("r"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("r"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("s"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("s"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("t"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("t"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("v"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("v"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("z"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("z"),
					Langs: -1,
				},
			},
		},
	},
	bmpm.Lang(French): {
		{
			Pattern: []rune("kh"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("x"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("ph"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("f"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("ç"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("s"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("x"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("ks"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("ch"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("S"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("c"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: false,
				Prefix: [][]rune{
					[]rune("e"),
					[]rune("i"),
					[]rune("y"),
					[]rune("é"),
					[]rune("è"),
					[]rune("ê"),
				},
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("s"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("c"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("k"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("gn"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("n"),
					Langs: -1,
				},
				{
					Text:  []rune("gn"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("g"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: false,
				Prefix: [][]rune{
					[]rune("e"),
					[]rune("i"),
					[]rune("y"),
				},
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("Z"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("gue"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: true,
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("k"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("gu"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: false,
				Prefix: [][]rune{
					[]rune("e"),
					[]rune("i"),
					[]rune("y"),
				},
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("g"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("que"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: true,
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("k"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("qu"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("k"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("q"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("k"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("s"),
			LeftContext: &bmpm.Matcher{
				MatchEmptyString: false,
				Suffix: [][]rune{
					[]rune("a"),
					[]rune("e"),
					[]rune("i"),
					[]rune("o"),
					[]rune("u"),
					[]rune("y"),
					[]rune("é"),
					[]rune("è"),
					[]rune("ê"),
				},
			},
			RightContext: &bmpm.Matcher{
				MatchEmptyString: false,
				Prefix: [][]rune{
					[]rune("a"),
					[]rune("e"),
					[]rune("i"),
					[]rune("o"),
					[]rune("u"),
					[]rune("y"),
					[]rune("é"),
					[]rune("è"),
					[]rune("ê"),
				},
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("z"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("h"),
			LeftContext: &bmpm.Matcher{
				MatchEmptyString: false,
				Suffix: [][]rune{
					[]rune("b"),
					[]rune("d"),
					[]rune("g"),
					[]rune("t"),
				},
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  nil,
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("h"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: true,
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  nil,
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("j"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("Z"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("w"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("v"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("ouh"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: false,
				Prefix: [][]rune{
					[]rune("a"),
					[]rune("i"),
					[]rune("o"),
					[]rune("e"),
				},
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("v"),
					Langs: -1,
				},
				{
					Text:  []rune("uh"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("ou"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: false,
				Prefix: [][]rune{
					[]rune("a"),
					[]rune("e"),
					[]rune("i"),
					[]rune("o"),
				},
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("v"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("uo"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("vo"),
					Langs: -1,
				},
				{
					Text:  []rune("o"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("u"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: false,
				Prefix: [][]rune{
					[]rune("a"),
					[]rune("e"),
					[]rune("i"),
					[]rune("o"),
				},
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("v"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("aue"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("aue"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("eau"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("o"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("ai"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("aj"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("ay"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("aj"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("é"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("e"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("ê"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("e"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("è"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("e"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("à"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("a"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("â"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("a"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("où"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("u"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("ou"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("u"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("oi"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("oj"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("ei"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("aj"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("ey"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("aj"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("y"),
			LeftContext: &bmpm.Matcher{
				MatchEmptyString: false,
				Suffix: [][]rune{
					[]rune("o"),
					[]rune("u"),
				},
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("j"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("e"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: true,
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("e"),
					Langs: -1,
				},
				{
					Text:  nil,
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("i"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: false,
				Prefix: [][]rune{
					[]rune("a"),
					[]rune("o"),
					[]rune("u"),
				},
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("j"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("y"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: false,
				Prefix: [][]rune{
					[]rune("a"),
					[]rune("o"),
					[]rune("e"),
					[]rune("u"),
				},
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("j"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("yi"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("i"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("ii"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("i"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("yy"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("i"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("y"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("i"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("a"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("a"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("b"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("b"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("d"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("d"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("e"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("E"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("f"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("f"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("g"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("g"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("h"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("h"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("i"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("I"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("k"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("k"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("l"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("l"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("m"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("m"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("n"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("n"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("o"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("o"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("p"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("p"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("r"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("r"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("s"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("s"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("t"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("t"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("u"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("u"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("v"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("v"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("z"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("z"),
					Langs: -1,
				},
			},
		},
	},
	bmpm.Lang(German): {
		{
			Pattern: []rune("ziu"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("tsu"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("zia"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("tsa"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("zio"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("tso"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("ssch"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("S"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("chsch"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("xS"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("ewitsch"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: true,
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("evitS"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("owitsch"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: true,
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("ovitS"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("evitsch"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: true,
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("evitS"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("ovitsch"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: true,
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("ovitS"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("witsch"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: true,
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("vitS"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("vitsch"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: true,
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("vitS"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("sch"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("S"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("chs"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("ks"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("ch"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("x"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("ck"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("k"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("c"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: false,
				Prefix: [][]rune{
					[]rune("e"),
					[]rune("i"),
					[]rune("y"),
				},
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("ts"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("sp"),
			LeftContext: &bmpm.Matcher{
				MatchEmptyString: true,
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("Sp"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("st"),
			LeftContext: &bmpm.Matcher{
				MatchEmptyString: true,
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("St"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("ssp"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("Sp"),
					Langs: -1,
				},
				{
					Text:  []rune("sp"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("sp"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("Sp"),
					Langs: -1,
				},
				{
					Text:  []rune("sp"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("sst"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("St"),
					Langs: -1,
				},
				{
					Text:  []rune("st"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("st"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("St"),
					Langs: -1,
				},
				{
					Text:  []rune("st"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("pf"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("pf"),
					Langs: -1,
				},
				{
					Text:  []rune("p"),
					Langs: -1,
				},
				{
					Text:  []rune("f"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("ph"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("ph"),
					Langs: -1,
				},
				{
					Text:  []rune("f"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("qu"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("kv"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("ewitz"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: true,
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("evits"),
					Langs: -1,
				},
				{
					Text:  []rune("evitS"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("ewiz"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: true,
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("evits"),
					Langs: -1,
				},
				{
					Text:  []rune("evitS"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("evitz"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: true,
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("evits"),
					Langs: -1,
				},
				{
					Text:  []rune("evitS"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("eviz"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: true,
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("evits"),
					Langs: -1,
				},
				{
					Text:  []rune("evitS"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("owitz"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: true,
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("ovits"),
					Langs: -1,
				},
				{
					Text:  []rune("ovitS"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("owiz"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: true,
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("ovits"),
					Langs: -1,
				},
				{
					Text:  []rune("ovitS"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("ovitz"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: true,
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("ovits"),
					Langs: -1,
				},
				{
					Text:  []rune("ovitS"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("oviz"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: true,
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("ovits"),
					Langs: -1,
				},
				{
					Text:  []rune("ovitS"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("witz"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: true,
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("vits"),
					Langs: -1,
				},
				{
					Text:  []rune("vitS"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("wiz"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: true,
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("vits"),
					Langs: -1,
				},
				{
					Text:  []rune("vitS"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("vitz"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: true,
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("vits"),
					Langs: -1,
				},
				{
					Text:  []rune("vitS"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("viz"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: true,
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("vits"),
					Langs: -1,
				},
				{
					Text:  []rune("vitS"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("tz"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("ts"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("thal"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: true,
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("tal"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("th"),
			LeftContext: &bmpm.Matcher{
				MatchEmptyString: true,
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("t"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("th"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: false,
				Prefix: [][]rune{
					[]rune("ä"),
					[]rune("ö"),
					[]rune("ü"),
					[]rune("a"),
					[]rune("e"),
					[]rune("i"),
					[]rune("o"),
					[]rune("u"),
				},
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("t"),
					Langs: -1,
				},
				{
					Text:  []rune("th"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("th"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("t"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("rh"),
			LeftContext: &bmpm.Matcher{
				MatchEmptyString: true,
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("r"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("h"),
			LeftContext: &bmpm.Matcher{
				MatchEmptyString: false,
				Suffix: [][]rune{
					[]rune("a"),
					[]rune("e"),
					[]rune("i"),
					[]rune("o"),
					[]rune("u"),
					[]rune("y"),
					[]rune("ä"),
					[]rune("ö"),
					[]rune("ü"),
				},
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  nil,
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("h"),
			LeftContext: &bmpm.Matcher{
				MatchEmptyString: true,
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("H"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("ss"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("s"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("s"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: false,
				Prefix: [][]rune{
					[]rune("ä"),
					[]rune("ö"),
					[]rune("ü"),
					[]rune("a"),
					[]rune("e"),
					[]rune("i"),
					[]rune("o"),
					[]rune("u"),
					[]rune("y"),
				},
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("z"),
					Langs: -1,
				},
				{
					Text:  []rune("s"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("s"),
			LeftContext: &bmpm.Matcher{
				MatchEmptyString: false,
				Suffix: [][]rune{
					[]rune("a"),
					[]rune("e"),
					[]rune("i"),
					[]rune("o"),
					[]rune("u"),
					[]rune("y"),
					[]rune("ä"),
					[]rune("ö"),
					[]rune("ü"),
					[]rune("j"),
				},
			},
			RightContext: &bmpm.Matcher{
				MatchEmptyString: false,
				Prefix: [][]rune{
					[]rune("a"),
					[]rune("e"),
					[]rune("i"),
					[]rune("o"),
					[]rune("u"),
					[]rune("y"),
					[]rune("ä"),
					[]rune("ö"),
					[]rune("ü"),
				},
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("z"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("ß"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("s"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("ij"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: true,
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("i"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("aue"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("aue"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("ue"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("Q"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("ae"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("Y"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("oe"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("Y"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("ü"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("Q"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("ä"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("Y"),
					Langs: -1,
				},
				{
					Text:  []rune("e"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("ö"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("Y"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("ei"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("aj"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("ey"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("aj"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("eu"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("aj"),
					Langs: -1,
				},
				{
					Text:  []rune("oj"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("i"),
			LeftContext: &bmpm.Matcher{
				MatchEmptyString: false,
				Suffix: [][]rune{
					[]rune("a"),
					[]rune("o"),
					[]rune("u"),
				},
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("j"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("y"),
			LeftContext: &bmpm.Matcher{
				MatchEmptyString: false,
				Suffix: [][]rune{
					[]rune("a"),
					[]rune("o"),
					[]rune("u"),
				},
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("j"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("ie"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("I"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("i"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: false,
				Prefix: [][]rune{
					[]rune("a"),
					[]rune("o"),
					[]rune("u"),
				},
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("j"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("y"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: false,
				Prefix: [][]rune{
					[]rune("a"),
					[]rune("o"),
					[]rune("e"),
					[]rune("u"),
				},
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("j"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("ñ"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("n"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("ã"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("a"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("ő"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("o"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("ű"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("u"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("ç"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("s"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("a"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("A"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("b"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("b"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("c"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("k"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("d"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("d"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("e"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("E"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("f"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("f"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("g"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("g"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("h"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("h"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("i"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("I"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("j"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("j"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("k"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("k"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("l"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("l"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("m"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("m"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("n"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("n"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("o"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("O"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("p"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("p"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("q"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("k"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("r"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("r"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("s"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("s"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("t"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("t"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("u"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("U"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("v"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("f"),
					Langs: -1,
				},
				{
					Text:  []rune("v"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("w"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("v"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("x"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("ks"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("y"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("i"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("z"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("ts"),
					Langs: -1,
				},
			},
		},
	},
	bmpm.Lang(Hebrew): {
		{
			Pattern: []rune("אי"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("i"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("עי"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("i"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("עו"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("VV"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("או"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("VV"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("ג׳"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("Z"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("ד׳"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("dZ"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("א"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("L"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("ב"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("b"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("ג"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("g"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("ד"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("d"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("ה"),
			LeftContext: &bmpm.Matcher{
				MatchEmptyString: true,
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("1"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("ה"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: true,
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("1"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("ה"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  nil,
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("וו"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("V"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("וי"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("WW"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("ו"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("W"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("ז"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("z"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("ח"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("X"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("ט"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("T"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("יי"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("i"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("י"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("i"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("ך"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("X"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("כ"),
			LeftContext: &bmpm.Matcher{
				MatchEmptyString: true,
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("K"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("כ"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("k"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("ל"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("l"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("ם"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("m"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("מ"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("m"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("ן"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("n"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("נ"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("n"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("ס"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("s"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("ע"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("L"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("ף"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("f"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("פ"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("f"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("ץ"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("C"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("צ"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("C"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("ק"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("K"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("ר"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("r"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("ש"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("s"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("ת"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("TB"),
					Langs: -1,
				},
			},
		},
	},
	bmpm.Lang(Hungarian): {
		{
			Pattern: []rune("sz"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("s"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("zs"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("Z"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("cs"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("tS"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("ay"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("oj"),
					Langs: -1,
				},
				{
					Text:  []rune("aj"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("ai"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("oj"),
					Langs: -1,
				},
				{
					Text:  []rune("aj"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("aj"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("oj"),
					Langs: -1,
				},
				{
					Text:  []rune("aj"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("ei"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("aj"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("ey"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("aj"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("y"),
			LeftContext: &bmpm.Matcher{
				MatchEmptyString: false,
				Suffix: [][]rune{
					[]rune("á"),
					[]rune("o"),
				},
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("j"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("i"),
			LeftContext: &bmpm.Matcher{
				MatchEmptyString: false,
				Suffix: [][]rune{
					[]rune("á"),
					[]rune("o"),
				},
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("j"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("ee"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("aj"),
					Langs: -1,
				},
				{
					Text:  []rune("e"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("ely"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("aj"),
					Langs: -1,
				},
				{
					Text:  []rune("eli"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("ly"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("j"),
					Langs: -1,
				},
				{
					Text:  []rune("li"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("gy"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: false,
				Prefix: [][]rune{
					[]rune("a"),
					[]rune("e"),
					[]rune("o"),
					[]rune("u"),
					[]rune("á"),
					[]rune("é"),
					[]rune("ó"),
					[]rune("ú"),
					[]rune("ü"),
					[]rune("ö"),
					[]rune("ő"),
					[]rune("ű"),
				},
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("dj"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("gy"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("d"),
					Langs: -1,
				},
				{
					Text:  []rune("gi"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("ny"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: false,
				Prefix: [][]rune{
					[]rune("a"),
					[]rune("e"),
					[]rune("o"),
					[]rune("u"),
					[]rune("á"),
					[]rune("é"),
					[]rune("ó"),
					[]rune("ú"),
					[]rune("ü"),
					[]rune("ö"),
					[]rune("ő"),
					[]rune("ű"),
				},
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("nj"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("ny"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("n"),
					Langs: -1,
				},
				{
					Text:  []rune("ni"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("ty"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: false,
				Prefix: [][]rune{
					[]rune("a"),
					[]rune("e"),
					[]rune("o"),
					[]rune("u"),
					[]rune("á"),
					[]rune("é"),
					[]rune("ó"),
					[]rune("ú"),
					[]rune("ü"),
					[]rune("ö"),
					[]rune("ő"),
					[]rune("ű"),
				},
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("tj"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("ty"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("t"),
					Langs: -1,
				},
				{
					Text:  []rune("ti"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("qu"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("ku"),
					Langs: -1,
				},
				{
					Text:  []rune("kv"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("h"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: true,
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  nil,
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("á"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("a"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("é"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("e"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("í"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("i"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("ó"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("o"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("ö"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("Y"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("ő"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("Y"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("ú"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("u"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("ü"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("Q"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("ű"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("Q"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("a"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("a"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("b"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("b"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("c"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("ts"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("d"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("d"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("e"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("E"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("f"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("f"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("g"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("g"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("h"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("h"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("i"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("I"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("j"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("j"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("k"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("k"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("l"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("l"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("m"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("m"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("n"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("n"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("o"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("o"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("p"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("p"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("q"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("k"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("r"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("r"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("s"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("S"),
					Langs: -1,
				},
				{
					Text:  []rune("s"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("t"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("t"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("u"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("u"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("v"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("v"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("w"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("v"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("x"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("ks"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("y"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("i"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("z"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("z"),
					Langs: -1,
				},
			},
		},
	},
	bmpm.Lang(Polish): {
		{
			Pattern: []rune("ska"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: true,
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("ski"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("cka"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: true,
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("tski"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("lowa"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: true,
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("lova"),
					Langs: -1,
				},
				{
					Text:  []rune("lof"),
					Langs: -1,
				},
				{
					Text:  []rune("l"),
					Langs: -1,
				},
				{
					Text:  []rune("el"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("kowa"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: true,
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("kova"),
					Langs: -1,
				},
				{
					Text:  []rune("kof"),
					Langs: -1,
				},
				{
					Text:  []rune("k"),
					Langs: -1,
				},
				{
					Text:  []rune("ek"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("owa"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: true,
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("ova"),
					Langs: -1,
				},
				{
					Text:  []rune("of"),
					Langs: -1,
				},
				{
					Text:  nil,
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("lowna"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: true,
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("lovna"),
					Langs: -1,
				},
				{
					Text:  []rune("levna"),
					Langs: -1,
				},
				{
					Text:  []rune("l"),
					Langs: -1,
				},
				{
					Text:  []rune("el"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("kowna"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: true,
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("kovna"),
					Langs: -1,
				},
				{
					Text:  []rune("k"),
					Langs: -1,
				},
				{
					Text:  []rune("ek"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("owna"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: true,
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("ovna"),
					Langs: -1,
				},
				{
					Text:  nil,
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("lówna"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: true,
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("l"),
					Langs: -1,
				},
				{
					Text:  []rune("el"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("kówna"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: true,
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("k"),
					Langs: -1,
				},
				{
					Text:  []rune("ek"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("ówna"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: true,
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  nil,
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("a"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: true,
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("a"),
					Langs: -1,
				},
				{
					Text:  []rune("i"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("czy"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("tSi"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("cze"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: false,
				Prefix: [][]rune{
					[]rune("b"),
					[]rune("c"),
					[]rune("d"),
					[]rune("g"),
					[]rune("k"),
					[]rune("p"),
					[]rune("s"),
					[]rune("t"),
					[]rune("w"),
					[]rune("z"),
					[]rune("ż"),
				},
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("tSe"),
					Langs: -1,
				},
				{
					Text:  []rune("tSF"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("ciewicz"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("tsevitS"),
					Langs: -1,
				},
				{
					Text:  []rune("tSevitS"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("siewicz"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("sevitS"),
					Langs: -1,
				},
				{
					Text:  []rune("SevitS"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("ziewicz"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("zevitS"),
					Langs: -1,
				},
				{
					Text:  []rune("ZevitS"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("riewicz"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("rjevitS"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("diewicz"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("djevitS"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("tiewicz"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("tjevitS"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("iewicz"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("evitS"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("ewicz"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("evitS"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("owicz"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("ovitS"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("icz"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("itS"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("cz"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("tS"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("ch"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("x"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("cia"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: false,
				Prefix: [][]rune{
					[]rune("b"),
					[]rune("c"),
					[]rune("d"),
					[]rune("g"),
					[]rune("k"),
					[]rune("p"),
					[]rune("s"),
					[]rune("t"),
					[]rune("w"),
					[]rune("z"),
					[]rune("ż"),
				},
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("tSB"),
					Langs: -1,
				},
				{
					Text:  []rune("tsB"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("cia"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("tSa"),
					Langs: -1,
				},
				{
					Text:  []rune("tsa"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("cią"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: false,
				Prefix: [][]rune{
					[]rune("b"),
					[]rune("p"),
				},
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("tSom"),
					Langs: -1,
				},
				{
					Text:  []rune("tsom"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("cią"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("tSon"),
					Langs: -1,
				},
				{
					Text:  []rune("tson"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("cię"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: false,
				Prefix: [][]rune{
					[]rune("b"),
					[]rune("p"),
				},
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("tSem"),
					Langs: -1,
				},
				{
					Text:  []rune("tsem"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("cię"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("tSen"),
					Langs: -1,
				},
				{
					Text:  []rune("tsen"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("cie"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: false,
				Prefix: [][]rune{
					[]rune("b"),
					[]rune("c"),
					[]rune("d"),
					[]rune("g"),
					[]rune("k"),
					[]rune("p"),
					[]rune("s"),
					[]rune("t"),
					[]rune("w"),
					[]rune("z"),
					[]rune("ż"),
				},
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("tSF"),
					Langs: -1,
				},
				{
					Text:  []rune("tsF"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("cie"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("tSe"),
					Langs: -1,
				},
				{
					Text:  []rune("tse"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("cio"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("tSo"),
					Langs: -1,
				},
				{
					Text:  []rune("tso"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("ciu"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("tSu"),
					Langs: -1,
				},
				{
					Text:  []rune("tsu"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("ci"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("tSi"),
					Langs: -1,
				},
				{
					Text:  []rune("tsI"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("ć"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("tS"),
					Langs: -1,
				},
				{
					Text:  []rune("ts"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("ssz"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("S"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("sz"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("S"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("sia"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: false,
				Prefix: [][]rune{
					[]rune("b"),
					[]rune("c"),
					[]rune("d"),
					[]rune("g"),
					[]rune("k"),
					[]rune("p"),
					[]rune("s"),
					[]rune("t"),
					[]rune("w"),
					[]rune("z"),
					[]rune("ż"),
				},
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("SB"),
					Langs: -1,
				},
				{
					Text:  []rune("sB"),
					Langs: -1,
				},
				{
					Text:  []rune("sja"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("sia"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("Sa"),
					Langs: -1,
				},
				{
					Text:  []rune("sja"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("sią"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: false,
				Prefix: [][]rune{
					[]rune("b"),
					[]rune("p"),
				},
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("Som"),
					Langs: -1,
				},
				{
					Text:  []rune("som"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("sią"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("Son"),
					Langs: -1,
				},
				{
					Text:  []rune("son"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("się"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: false,
				Prefix: [][]rune{
					[]rune("b"),
					[]rune("p"),
				},
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("Sem"),
					Langs: -1,
				},
				{
					Text:  []rune("sem"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("się"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("Sen"),
					Langs: -1,
				},
				{
					Text:  []rune("sen"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("sie"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: false,
				Prefix: [][]rune{
					[]rune("b"),
					[]rune("c"),
					[]rune("d"),
					[]rune("g"),
					[]rune("k"),
					[]rune("p"),
					[]rune("s"),
					[]rune("t"),
					[]rune("w"),
					[]rune("z"),
					[]rune("ż"),
				},
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("SF"),
					Langs: -1,
				},
				{
					Text:  []rune("sF"),
					Langs: -1,
				},
				{
					Text:  []rune("se"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("sie"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("Se"),
					Langs: -1,
				},
				{
					Text:  []rune("se"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("sio"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("So"),
					Langs: -1,
				},
				{
					Text:  []rune("so"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("siu"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("Su"),
					Langs: -1,
				},
				{
					Text:  []rune("sju"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("si"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("Si"),
					Langs: -1,
				},
				{
					Text:  []rune("sI"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("ś"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("S"),
					Langs: -1,
				},
				{
					Text:  []rune("s"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("zia"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: false,
				Prefix: [][]rune{
					[]rune("b"),
					[]rune("c"),
					[]rune("d"),
					[]rune("g"),
					[]rune("k"),
					[]rune("p"),
					[]rune("s"),
					[]rune("t"),
					[]rune("w"),
					[]rune("z"),
					[]rune("ż"),
				},
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("ZB"),
					Langs: -1,
				},
				{
					Text:  []rune("zB"),
					Langs: -1,
				},
				{
					Text:  []rune("zja"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("zia"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("Za"),
					Langs: -1,
				},
				{
					Text:  []rune("zja"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("zią"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: false,
				Prefix: [][]rune{
					[]rune("b"),
					[]rune("p"),
				},
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("Zom"),
					Langs: -1,
				},
				{
					Text:  []rune("zom"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("zią"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("Zon"),
					Langs: -1,
				},
				{
					Text:  []rune("zon"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("zię"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: false,
				Prefix: [][]rune{
					[]rune("b"),
					[]rune("p"),
				},
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("Zem"),
					Langs: -1,
				},
				{
					Text:  []rune("zem"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("zię"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("Zen"),
					Langs: -1,
				},
				{
					Text:  []rune("zen"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("zie"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: false,
				Prefix: [][]rune{
					[]rune("b"),
					[]rune("c"),
					[]rune("d"),
					[]rune("g"),
					[]rune("k"),
					[]rune("p"),
					[]rune("s"),
					[]rune("t"),
					[]rune("w"),
					[]rune("z"),
					[]rune("ż"),
				},
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("ZF"),
					Langs: -1,
				},
				{
					Text:  []rune("zF"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("zie"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("Ze"),
					Langs: -1,
				},
				{
					Text:  []rune("ze"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("zio"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("Zo"),
					Langs: -1,
				},
				{
					Text:  []rune("zo"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("ziu"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("Zu"),
					Langs: -1,
				},
				{
					Text:  []rune("zju"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("zi"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("Zi"),
					Langs: -1,
				},
				{
					Text:  []rune("zI"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("że"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: false,
				Prefix: [][]rune{
					[]rune("b"),
					[]rune("c"),
					[]rune("d"),
					[]rune("g"),
					[]rune("k"),
					[]rune("p"),
					[]rune("s"),
					[]rune("t"),
					[]rune("w"),
					[]rune("z"),
					[]rune("ż"),
				},
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("Ze"),
					Langs: -1,
				},
				{
					Text:  []rune("ZF"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("że"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: false,
				Prefix: [][]rune{
					[]rune("b"),
					[]rune("c"),
					[]rune("d"),
					[]rune("g"),
					[]rune("k"),
					[]rune("p"),
					[]rune("s"),
					[]rune("t"),
					[]rune("w"),
					[]rune("z"),
					[]rune("ż"),
				},
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("Ze"),
					Langs: -1,
				},
				{
					Text:  []rune("ZF"),
					Langs: -1,
				},
				{
					Text:  []rune("ze"),
					Langs: -1,
				},
				{
					Text:  []rune("zF"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("że"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("Ze"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("źe"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("Ze"),
					Langs: -1,
				},
				{
					Text:  []rune("ze"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("ży"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("Zi"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("źi"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("Zi"),
					Langs: -1,
				},
				{
					Text:  []rune("zi"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("ż"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("Z"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("ź"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("Z"),
					Langs: -1,
				},
				{
					Text:  []rune("z"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("rze"),
			LeftContext: &bmpm.Matcher{
				MatchEmptyString: false,
				Suffix: [][]rune{
					[]rune("t"),
				},
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("Se"),
					Langs: -1,
				},
				{
					Text:  []rune("re"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("rze"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("Ze"),
					Langs: -1,
				},
				{
					Text:  []rune("re"),
					Langs: -1,
				},
				{
					Text:  []rune("rZe"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("rzy"),
			LeftContext: &bmpm.Matcher{
				MatchEmptyString: false,
				Suffix: [][]rune{
					[]rune("t"),
				},
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("Si"),
					Langs: -1,
				},
				{
					Text:  []rune("ri"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("rzy"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("Zi"),
					Langs: -1,
				},
				{
					Text:  []rune("ri"),
					Langs: -1,
				},
				{
					Text:  []rune("rZi"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("rz"),
			LeftContext: &bmpm.Matcher{
				MatchEmptyString: false,
				Suffix: [][]rune{
					[]rune("t"),
				},
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("S"),
					Langs: -1,
				},
				{
					Text:  []rune("r"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("rz"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("Z"),
					Langs: -1,
				},
				{
					Text:  []rune("r"),
					Langs: -1,
				},
				{
					Text:  []rune("rZ"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("lio"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("lo"),
					Langs: -1,
				},
				{
					Text:  []rune("le"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("ł"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("l"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("ń"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("n"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("qu"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("k"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("s"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: false,
				Prefix: [][]rune{
					[]rune("s"),
				},
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  nil,
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("ó"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("u"),
					Langs: -1,
				},
				{
					Text:  []rune("o"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("ą"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: false,
				Prefix: [][]rune{
					[]rune("b"),
					[]rune("p"),
				},
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("om"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("ę"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: false,
				Prefix: [][]rune{
					[]rune("b"),
					[]rune("p"),
				},
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("em"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("ą"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("on"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("ę"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("en"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("ije"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("je"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("yje"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("je"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("iie"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("je"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("yie"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("je"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("iye"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("je"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("yye"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("je"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("ij"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: false,
				Prefix: [][]rune{
					[]rune("a"),
					[]rune("o"),
					[]rune("u"),
				},
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("j"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("yj"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: false,
				Prefix: [][]rune{
					[]rune("a"),
					[]rune("o"),
					[]rune("u"),
				},
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("j"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("ii"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: false,
				Prefix: [][]rune{
					[]rune("a"),
					[]rune("o"),
					[]rune("u"),
				},
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("j"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("yi"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: false,
				Prefix: [][]rune{
					[]rune("a"),
					[]rune("o"),
					[]rune("u"),
				},
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("j"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("iy"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: false,
				Prefix: [][]rune{
					[]rune("a"),
					[]rune("o"),
					[]rune("u"),
				},
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("j"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("yy"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: false,
				Prefix: [][]rune{
					[]rune("a"),
					[]rune("o"),
					[]rune("u"),
				},
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("j"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("rie"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("rje"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("die"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("dje"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("tie"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("tje"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("ie"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: false,
				Prefix: [][]rune{
					[]rune("b"),
					[]rune("c"),
					[]rune("d"),
					[]rune("g"),
					[]rune("k"),
					[]rune("p"),
					[]rune("s"),
					[]rune("t"),
					[]rune("w"),
					[]rune("z"),
					[]rune("ż"),
				},
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("F"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("ie"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("e"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("aue"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("aue"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("au"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("au"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("ei"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("aj"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("ey"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("aj"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("ej"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("aj"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("ai"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("aj"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("ay"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("aj"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("aj"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("aj"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("i"),
			LeftContext: &bmpm.Matcher{
				MatchEmptyString: false,
				Suffix: [][]rune{
					[]rune("o"),
					[]rune("u"),
				},
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("j"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("y"),
			LeftContext: &bmpm.Matcher{
				MatchEmptyString: false,
				Suffix: [][]rune{
					[]rune("o"),
					[]rune("u"),
				},
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("j"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("i"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: false,
				Prefix: [][]rune{
					[]rune("a"),
					[]rune("o"),
					[]rune("u"),
				},
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("j"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("y"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: false,
				Prefix: [][]rune{
					[]rune("a"),
					[]rune("e"),
					[]rune("o"),
					[]rune("u"),
				},
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("j"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("a"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: false,
				Prefix: [][]rune{
					[]rune("b"),
					[]rune("c"),
					[]rune("d"),
					[]rune("g"),
					[]rune("k"),
					[]rune("p"),
					[]rune("s"),
					[]rune("t"),
					[]rune("w"),
					[]rune("z"),
					[]rune("ż"),
				},
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("B"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("e"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: false,
				Prefix: [][]rune{
					[]rune("b"),
					[]rune("c"),
					[]rune("d"),
					[]rune("g"),
					[]rune("k"),
					[]rune("p"),
					[]rune("s"),
					[]rune("t"),
					[]rune("w"),
					[]rune("z"),
					[]rune("ż"),
				},
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("E"),
					Langs: -1,
				},
				{
					Text:  []rune("F"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("o"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: false,
				Prefix: [][]rune{
					[]rune("b"),
					[]rune("c"),
					[]rune("ć"),
					[]rune("d"),
					[]rune("g"),
					[]rune("k"),
					[]rune("l"),
					[]rune("ł"),
					[]rune("m"),
					[]rune("n"),
					[]rune("ń"),
					[]rune("r"),
					[]rune("s"),
					[]rune("ś"),
					[]rune("t"),
					[]rune("w"),
					[]rune("z"),
					[]rune("ź"),
					[]rune("ż"),
				},
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("P"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("a"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("a"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("b"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("b"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("c"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("ts"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("d"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("d"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("e"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("E"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("f"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("f"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("g"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("g"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("h"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("h"),
					Langs: -1,
				},
				{
					Text:  []rune("x"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("i"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("I"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("j"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("j"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("k"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("k"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("l"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("l"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("m"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("m"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("n"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("n"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("o"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("o"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("p"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("p"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("q"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("k"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("r"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("r"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("s"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("s"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("t"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("t"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("u"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("u"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("v"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("v"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("w"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("v"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("x"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("ks"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("y"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("I"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("z"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("z"),
					Langs: -1,
				},
			},
		},
	},
	bmpm.Lang(Romanian): {
		{
			Pattern: []rune("j"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("Z"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("ce"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("tSe"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("ci"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("tSi"),
					Langs: -1,
				},
				{
					Text:  []rune("tS"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("ch"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: false,
				Prefix: [][]rune{
					[]rune("e"),
					[]rune("i"),
				},
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("k"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("ch"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("x"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("c"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("k"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("gi"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("dZi"),
					Langs: -1,
				},
				{
					Text:  []rune("dZ"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("g"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: false,
				Prefix: [][]rune{
					[]rune("e"),
					[]rune("i"),
				},
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("dZ"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("gh"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("g"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("ei"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("aj"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("i"),
			LeftContext: &bmpm.Matcher{
				MatchEmptyString: false,
				Suffix: [][]rune{
					[]rune("a"),
					[]rune("o"),
					[]rune("u"),
				},
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("j"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("i"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: false,
				Prefix: [][]rune{
					[]rune("a"),
					[]rune("e"),
					[]rune("o"),
					[]rune("u"),
				},
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("j"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("ţ"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("ts"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("ş"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("S"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("h"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("x"),
					Langs: -1,
				},
				{
					Text:  []rune("h"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("qu"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("k"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("q"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("k"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("w"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("v"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("x"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("ks"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("y"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("i"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("î"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("i"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("ea"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("ja"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("ă"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("e"),
					Langs: -1,
				},
				{
					Text:  []rune("a"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("aue"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("aue"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("a"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("a"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("b"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("b"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("d"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("d"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("e"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("E"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("f"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("f"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("g"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("g"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("i"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("I"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("k"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("k"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("l"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("l"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("m"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("m"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("n"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("n"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("o"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("o"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("p"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("p"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("r"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("r"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("s"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("s"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("t"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("t"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("u"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("u"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("v"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("v"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("z"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("z"),
					Langs: -1,
				},
			},
		},
	},
	bmpm.Lang(Russian): {
		{
			Pattern: []rune("yna"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: true,
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("in"),
					Langs: -1,
				},
				{
					Text:  []rune("ina"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("ina"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: true,
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("in"),
					Langs: -1,
				},
				{
					Text:  []rune("ina"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("liova"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: true,
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("lof"),
					Langs: -1,
				},
				{
					Text:  []rune("lef"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("lova"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: true,
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("lof"),
					Langs: -1,
				},
				{
					Text:  []rune("lef"),
					Langs: -1,
				},
				{
					Text:  []rune("lova"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("ova"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: true,
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("of"),
					Langs: -1,
				},
				{
					Text:  []rune("ova"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("eva"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: true,
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("ef"),
					Langs: -1,
				},
				{
					Text:  []rune("ova"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("aia"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: true,
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("aja"),
					Langs: -1,
				},
				{
					Text:  []rune("i"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("aja"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: true,
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("aja"),
					Langs: -1,
				},
				{
					Text:  []rune("i"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("aya"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: true,
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("aja"),
					Langs: -1,
				},
				{
					Text:  []rune("i"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("tsya"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("tsa"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("tsyu"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("tsu"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("tsia"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("tsa"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("tsie"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("tse"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("tsio"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("tso"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("tsye"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("tse"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("tsyo"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("tso"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("tsiu"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("tsu"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("sie"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("se"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("sio"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("so"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("zie"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("ze"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("zio"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("zo"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("sye"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("se"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("syo"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("so"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("zye"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("ze"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("zyo"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("zo"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("gauz"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: true,
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("haus"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("gaus"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: true,
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("haus"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("gol'ts"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: true,
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("holts"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("golts"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: true,
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("holts"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("gol'tz"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: true,
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("holts"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("goltz"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: true,
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("holts"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("gejmer"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: true,
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("hajmer"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("gejm"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: true,
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("hajm"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("geimer"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: true,
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("hajmer"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("geim"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: true,
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("hajm"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("geymer"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: true,
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("hajmer"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("geym"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: true,
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("hajm"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("gendler"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: true,
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("hendler"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("gof"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: true,
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("hof"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("gojf"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: true,
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("hojf"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("goyf"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: true,
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("hojf"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("goif"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: true,
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("hojf"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("ger"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: true,
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("ger"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("gen"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: true,
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("gen"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("gin"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: true,
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("gin"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("gg"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("g"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("kog"),
			LeftContext: &bmpm.Matcher{
				MatchEmptyString: true,
			},
			RightContext: &bmpm.Matcher{
				MatchEmptyString: false,
				Prefix: [][]rune{
					[]rune("a"),
					[]rune("e"),
					[]rune("o"),
					[]rune("i"),
					[]rune("u"),
				},
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("kog"),
					Langs: -1,
				},
				{
					Text:  []rune("koh"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("kag"),
			LeftContext: &bmpm.Matcher{
				MatchEmptyString: true,
			},
			RightContext: &bmpm.Matcher{
				MatchEmptyString: false,
				Prefix: [][]rune{
					[]rune("a"),
					[]rune("e"),
					[]rune("o"),
					[]rune("i"),
					[]rune("u"),
				},
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("kag"),
					Langs: -1,
				},
				{
					Text:  []rune("kah"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("g"),
			LeftContext: &bmpm.Matcher{
				MatchEmptyString: false,
				Suffix: [][]rune{
					[]rune("j"),
					[]rune("a"),
					[]rune("e"),
					[]rune("o"),
					[]rune("i"),
					[]rune("u"),
					[]rune("y"),
				},
			},
			RightContext: &bmpm.Matcher{
				MatchEmptyString: false,
				Prefix: [][]rune{
					[]rune("a"),
					[]rune("e"),
					[]rune("o"),
					[]rune("i"),
					[]rune("u"),
				},
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("g"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("g"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: false,
				Prefix: [][]rune{
					[]rune("a"),
					[]rune("e"),
					[]rune("o"),
					[]rune("i"),
					[]rune("u"),
				},
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("g"),
					Langs: -1,
				},
				{
					Text:  []rune("h"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("kh"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("x"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("ch"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("tS"),
					Langs: -1,
				},
				{
					Text:  []rune("x"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("sch"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("StS"),
					Langs: -1,
				},
				{
					Text:  []rune("S"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("ssh"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("S"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("sh"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("S"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("zh"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("Z"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("tz"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: true,
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("ts"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("tz"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("ts"),
					Langs: -1,
				},
				{
					Text:  []rune("tz"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("c"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: false,
				Prefix: [][]rune{
					[]rune("i"),
					[]rune("e"),
					[]rune("y"),
				},
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("s"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("c"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("k"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("qu"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("kv"),
					Langs: -1,
				},
				{
					Text:  []rune("k"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("q"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("k"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("s"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: false,
				Prefix: [][]rune{
					[]rune("s"),
				},
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  nil,
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("w"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("v"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("x"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("ks"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("lya"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("la"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("lyu"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("lu"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("lia"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("la"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("liu"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("lu"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("lja"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("la"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("lju"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("lu"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("le"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("lo"),
					Langs: -1,
				},
				{
					Text:  []rune("lE"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("lyo"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("lo"),
					Langs: -1,
				},
				{
					Text:  []rune("le"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("lio"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("lo"),
					Langs: -1,
				},
				{
					Text:  []rune("le"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("ije"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("je"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("ie"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("je"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("iye"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("je"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("iie"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("je"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("yje"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("je"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("ye"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("je"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("yye"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("je"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("yie"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("je"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("ij"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: false,
				Prefix: [][]rune{
					[]rune("a"),
					[]rune("o"),
					[]rune("u"),
				},
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("j"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("iy"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: false,
				Prefix: [][]rune{
					[]rune("a"),
					[]rune("o"),
					[]rune("u"),
				},
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("j"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("ii"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: false,
				Prefix: [][]rune{
					[]rune("a"),
					[]rune("o"),
					[]rune("u"),
				},
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("j"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("yj"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: false,
				Prefix: [][]rune{
					[]rune("a"),
					[]rune("o"),
					[]rune("u"),
				},
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("j"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("yy"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: false,
				Prefix: [][]rune{
					[]rune("a"),
					[]rune("o"),
					[]rune("u"),
				},
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("j"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("yi"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: false,
				Prefix: [][]rune{
					[]rune("a"),
					[]rune("o"),
					[]rune("u"),
				},
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("j"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("io"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("jo"),
					Langs: -1,
				},
				{
					Text:  []rune("e"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("i"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: false,
				Prefix: [][]rune{
					[]rune("a"),
					[]rune("u"),
				},
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("j"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("i"),
			LeftContext: &bmpm.Matcher{
				MatchEmptyString: false,
				Suffix: [][]rune{
					[]rune("a"),
					[]rune("o"),
					[]rune("u"),
				},
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("j"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("ei"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("aj"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("ey"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("aj"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("ej"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("aj"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("yo"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("jo"),
					Langs: -1,
				},
				{
					Text:  []rune("e"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("y"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: false,
				Prefix: [][]rune{
					[]rune("a"),
					[]rune("u"),
				},
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("j"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("y"),
			LeftContext: &bmpm.Matcher{
				MatchEmptyString: false,
				Suffix: [][]rune{
					[]rune("a"),
					[]rune("i"),
					[]rune("o"),
					[]rune("u"),
				},
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("j"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("ii"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: false,
				Pattern:          regexp.MustCompile("^ "),
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("i"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("iy"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: false,
				Pattern:          regexp.MustCompile("^ "),
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("i"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("yy"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: false,
				Pattern:          regexp.MustCompile("^ "),
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("i"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("yi"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: false,
				Pattern:          regexp.MustCompile("^ "),
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("i"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("yj"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: true,
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("i"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("ij"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: true,
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("i"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("e"),
			LeftContext: &bmpm.Matcher{
				MatchEmptyString: true,
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("je"),
					Langs: -1,
				},
				{
					Text:  []rune("E"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("ee"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("aje"),
					Langs: -1,
				},
				{
					Text:  []rune("i"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("e"),
			LeftContext: &bmpm.Matcher{
				MatchEmptyString: false,
				Suffix: [][]rune{
					[]rune("a"),
					[]rune("o"),
					[]rune("u"),
				},
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("je"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("y"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("I"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("oo"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("oo"),
					Langs: -1,
				},
				{
					Text:  []rune("u"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("'"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  nil,
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("\""),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  nil,
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("aue"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("aue"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("a"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("a"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("b"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("b"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("d"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("d"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("e"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("E"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("f"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("f"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("g"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("g"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("h"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("h"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("i"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("I"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("j"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("j"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("k"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("k"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("l"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("l"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("m"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("m"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("n"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("n"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("o"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("o"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("p"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("p"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("r"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("r"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("s"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("s"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("t"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("t"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("u"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("u"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("v"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("v"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("z"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("z"),
					Langs: -1,
				},
			},
		},
	},
	bmpm.Lang(Spanish): {
		{
			Pattern: []rune("ñ"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("n"),
					Langs: -1,
				},
				{
					Text:  []rune("nj"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("ch"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("tS"),
					Langs: -1,
				},
				{
					Text:  []rune("dZ"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("h"),
			LeftContext: &bmpm.Matcher{
				MatchEmptyString: false,
				Suffix: [][]rune{
					[]rune("b"),
					[]rune("d"),
					[]rune("g"),
					[]rune("t"),
				},
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  nil,
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("h"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: true,
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  nil,
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("j"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("x"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("x"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("ks"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("ll"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("l"),
					Langs: -1,
				},
				{
					Text:  []rune("Z"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("w"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("v"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("v"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("b"),
					Langs: -1,
				},
				{
					Text:  []rune("v"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("b"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("b"),
					Langs: -1,
				},
				{
					Text:  []rune("v"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("m"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: false,
				Prefix: [][]rune{
					[]rune("b"),
					[]rune("p"),
					[]rune("v"),
					[]rune("f"),
				},
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("m"),
					Langs: -1,
				},
				{
					Text:  []rune("n"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("c"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: false,
				Prefix: [][]rune{
					[]rune("e"),
					[]rune("i"),
				},
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("s"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("c"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("k"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("z"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("z"),
					Langs: -1,
				},
				{
					Text:  []rune("s"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("gu"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: false,
				Prefix: [][]rune{
					[]rune("e"),
					[]rune("i"),
				},
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("g"),
					Langs: -1,
				},
				{
					Text:  []rune("gv"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("g"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: false,
				Prefix: [][]rune{
					[]rune("e"),
					[]rune("i"),
				},
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("x"),
					Langs: -1,
				},
				{
					Text:  []rune("g"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("qu"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("k"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("q"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("k"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("uo"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("vo"),
					Langs: -1,
				},
				{
					Text:  []rune("o"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("u"),
			RightContext: &bmpm.Matcher{
				MatchEmptyString: false,
				Prefix: [][]rune{
					[]rune("a"),
					[]rune("e"),
					[]rune("i"),
				},
			},
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("v"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("y"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("i"),
					Langs: -1,
				},
				{
					Text:  []rune("j"),
					Langs: -1,
				},
				{
					Text:  []rune("S"),
					Langs: -1,
				},
				{
					Text:  []rune("Z"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("ü"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("v"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("á"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("a"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("é"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("e"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("í"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("i"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("ó"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("o"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("ú"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("u"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("a"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("a"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("d"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("d"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("e"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("E"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("f"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("f"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("g"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("g"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("h"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("h"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("i"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("I"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("k"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("k"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("l"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("l"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("m"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("m"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("n"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("n"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("o"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("o"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("p"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("p"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("r"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("r"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("s"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("s"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("t"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("t"),
					Langs: -1,
				},
			},
		},
		{
			Pattern: []rune("u"),
			Phonetic: []bmpm.RuleToken{
				{
					Text:  []rune("u"),
					Langs: -1,
				},
			},
		},
	},
}

Functions

This section is empty.

Types

type Accuracy

type Accuracy bmpm.Accuracy

Accuracy exact or approximate matching

const (
	Exact  Accuracy = "exact"  // exact matching rules
	Approx Accuracy = "approx" // approx matching (results in more tokens)
)

func (Accuracy) Valid

func (a Accuracy) Valid() bool

type Encoder

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

func MustNewEncoder

func MustNewEncoder(opts ...EncoderOption) *Encoder

MustNewEncoder create new encoder instance. Panics on error

func NewEncoder

func NewEncoder(opts ...EncoderOption) (*Encoder, error)

NewEncoder create new encoder instance

func (*Encoder) Encode

func (e *Encoder) Encode(input string) []string

Encode transform a passed string to a slice of phonetic tokens

func (*Encoder) SetOption

func (e *Encoder) SetOption(opt EncoderOption) error

SetOption set encoder option. Method is not safe for concurrent usage

type EncoderOption

type EncoderOption func(e *Encoder) error

EncoderOption func to provide encoder configuration parameter

func WithAccuracy

func WithAccuracy(a Accuracy) EncoderOption

WithAccuracy Set encoder accuracy

func WithBufferReuse

func WithBufferReuse(value bool) EncoderOption

WithBufferReuse reuse buffers to reduce GC pressure Leads to an increase in constant memory consumption, especially under heavy loads

func WithLang

func WithLang(l Lang) EncoderOption

WithLang Set encoder default lang (see lang constants)

type Lang

type Lang bmpm.Lang
const (
	Any Lang = 1 << iota
	Cyrillic
	English
	French
	German
	Hebrew
	Hungarian
	Polish
	Romanian
	Russian
	Spanish
)

func (Lang) String

func (l Lang) String() string

Jump to

Keyboard shortcuts

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