use utf8;
{

'' => {
	'~' => 'cp',
	'@' => 'mo arg',
	'^' => 'pm',
	'0' => '=^',
	'$' => 'pm',
	'#' => 'pm',
	'*' => 'pm',
	'+' => '=zi',
	'-' => '=zo',
	'^^'=> 'po',
	'?' => 'pm args modec',
	'/' => 'pm args modec',
	'[' => 'me arg mode[',
	']' => 'me arg mode]',
	':' => 'mo args',
	';' => 'me arg args mode;',
	"'" => 'pm',
	'`' => "='",
	'|' => 'cp v2 v2.2',

	'a' => 'mo args',
	'A' => 'mo',
	'^a'=> 'cp',
	'b' => 'po args',
	'B' => 'ci',
	'^b'=> 'pm',
	'^c'=> 'co',
	'^d'=> 'pm',
	'd' => 'co',
	'D' => 'co',
	'i' => 'mv',
	'^i'=> '=L',
	'^e'=> '=j',
	'f' => 'cp args',
	'F' => 'mi args',
	'^f'=> 'pm', # spacebar
	'g' => 'me modeg arg',
	'G' => 'pm',
	'^g'=> 'ci',
	'h' => 'pm',
	'H' => 'cp',
	'j' => 'pm',
	'k' => 'pm',
	'l' => 'pm',
	'L' => 'cp',
	'M' => 'mo arg',
	'm' => 'mo arg',
	'n' => 'pm',
	'N' => 'pm',
	'^n'=> 'po',
	'o' => 'cp',
	'O' => 'cp',
	'^o'=> '=H',
	'p' => 'cp',
	'P' => 'mi',
	'^p'=> '=gT',
	'q' => 'mv arg',
	'r' => 'co',
	'R' => 'cp',
	't' => 'mi',
	'T' => 'mi',
	'^v'=> 'co arg',
	'^u'=> 'pm',
	'u' => 'mi',
	'^x'=> 'cp',
	'y' => 'mo',
	'Y' => 'mo',
	'^y'=> '=k',
	'z' => 'ci modez arg',
	'Z' => 'me modeZ arg',
	'^z'=> 'mv',
}, # normal mode

g => {
	lead => 'g',

	'0' => 'po',
	'$' => 'po',
	'^' => '=g0',

	'b' => 'po',
	'B' => 'po',
	'f' => 'cp',
	'F' => 'mo',
	'^g'=> 'ci',
	'g' => 'pm',
	'h' => 'cp',
	'H' => 'mi',
	'i' => 'pm',
	'n' => 'mi arg',
	'o' => 'cp arg',
	'P' => 'mi',
	't' => 'po',
	'T' => 'po',
	'u' => 'cp',
	'U' => 'cp',
}, # mode g

';' => {
	lead => ';',

	';' => 'pm',
	'?' => 'ci',
	'a' => 'mo args',
	'b' => 'mi v2',
	'c' => 'v2 v2.2',
	'f' => 'pm v2', # previously ';o'
	'F' => 'mi v2', # previously ';t'
	'i' => 'cp v2 v2.2',
	'I' => 'mi v2 v2.2',
	'o' => 'cp',
	'O' => 'cp args',
	's' => 'mo',
	't' => 'mi',
	'T' => 'mi args',
	'v' => 'cp',
	'w' => 'mi',
	'W' => 'mi args',
	'y' => 'mo',
	'Y' => 'mo',
}, # mode ;

']' => {
	lead => ']',

	'f' => 'pm',
	']' => 'cp',
}, # mode ]

'[' => {
	lead => '[',

	'f' => 'pm',
	'[' => 'cp',
}, # mode [

z => {
	lead => 'z',

	'i' => 'ci',
	'm' => 'ci',
	'o' => 'ci',
	'r' => 'ci',
	'z' => 'ci',
	'I' => 'ci',
	'M' => 'ci',
	'O' => 'ci',
	'R' => 'ci',
	'Z' => 'ci',
}, # mode z

Z => {
	lead => 'Z',

	'Q' => 'mo',
	'Z' => 'mo',
}, # mode Z

}
