The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
[]
ExtraScanCodesWin=
COMPANYNAME=Ilya Zakharevich
+LAYOUTNAME=US·Int Grk=Ⓖ➡⇧␣=^ˡⒶˡ- Rus·ЯВЕ=Ⓡ➡Ⓐʳ␣=Ⓜ Hbr➡Ⓡ²=Ⓜ^ʳ- • k.ilyaz.org
+LAYOUTNAME=RUS·ЯВЕРТЫ Lat=Ⓖ➡⇧␣=^ˡⒶˡ- Grk=Ⓡ➡Ⓐʳ␣=Ⓜ Hbr➡Ⓡ²=Ⓜ^ʳ- • k.ilyaz.org
+LAYOUTNAME=Gr·ΘΩΕΡΤΨ↻[]\ Lat=Ⓖ➡⇧␣=^ˡⒶˡ Rus=Ⓡ➡Ⓐʳ␣=Ⓜ Hbr➡Ⓡ²=Ⓜ^ʳ •k.ilyaz.org
+LAYOUTNAME=Hebr·QWERTY Lat=Ⓖ➡⇧␣=^ˡⒶˡ- Grk=Ⓡ➡Ⓐʳ␣=Ⓜ Rus➡Ⓡ²=Ⓜ^ʳ- •k.ilyaz.org
COPYR_YEARS=2011-2015
@LOCALE_NAME=en-US,ru-RU,el-GR,he-IL
@LOCALE_ID=0409,0419,0408,040d
@DLLNAME=iz-la-4s,iz-ru-4s,iz-gr-p4,iz-hb-4s
SORT_ORDER_ID_=0000
@LANGUAGE_NAME=English (United States),Russian (Russia),Greek (Greece),Hebrew (Israel)
#
VERSION=0.70
#
OSX_ADD_VERSION=1
#
[Substitutions]
# Will be used when putting a second diacritic: (as <subst-Vietnamese>)
@Vietnamese=åă,àâ,èê,òô,øơ,bư
@Macron=øō
@Zuang_tones=2ƨ,3з,4ч,5ƽ,6ƅ,@Ƨ,#З,$Ч,%Ƽ,^Ƅ
@Cardinal=a.2135,b.2136,g.2137,d.2138
@extra_phonetic=lɬ,Lɮ
# On the number row above the key:
@extra_greek=1ϑ,!ϴ,2ς,3ϵ,4ϕ,5ϱ,6ϝ,^Ϝ,8ϰ,0ϖ,-∂,_∇,'∂,"∇
#'
[DEADKEYS]
#
# Can be omitted now (actually, it should better be omitted since we use PrefixDocs now)
#
####0020=SPACE
#
[visual -> KBD/B/C/D]
#
visual_rowcount=5
@visual_per_row_counts=4,4,4,4,2
visual_prefixes=  * ?
in_key_separator=/
in_key_separator2=‼
prefix_repeat=3
#					Greek-AltGr-Junk has only one element: 2009—2009
@layer_names=Green,Green-AltGr,Greek,Greek-AltGr-Junk
@layer_names=Blue,Blue-AltGr,Cyrillic-Extra,Cyrillic-ExtraExtra
@layer_names=US-Base,USLatin-AltGr,Ripe,Ripe-AltGr
@layer_names=Russian-Base,Cyrillic-AltGr,Cyrillic-II,Cyrillic-II-AltGr
@layer_names=Hebrew-Base,Hebrew-AltGr
#					20: access KP_Decimal and KP_Extra_Slash_on_Left on offsets 20,21
@keyline_offsets=0,1,1,1,20
#
# Perl 5.8.8 does not recognize  ҇ as a combining character...
	--/⋱≀	--∣/∤∁	--≈/∃∀	--⧣/∛∄	--€/∜⨋	--◌/☆★	--£/⨊		--¶/⨄⨃		--⊠/∞⧆		--/‟‛	--/◌⧇		--–/∓±		--
	--   ⊤⊥/≠⟂/ꙩ/ꚑ ∫∮/∭∥/ꙫ/ꙭ ⊲⊳/⊣⊢/ꙮ □◇/△▽/ꚉ •⋈/⨯⋆/ꙛ ∨∧		∪∩//ꙅ		≐×/≃/ԑ/--꙳	--∈//ꙉ	∅∋//ꙃ/ꙁ		--//ҹ		--//ӌ
***	`~/ˋ˜	1!/¬¡	2@/ºª	3#/·№	4$/¢£	5%/€¥	6^/ˇˆ		7&/√§/--❧		8*/„‚		9(/“‘	0)/”’		-_/¯—/--―	=+/≈±
	ю//ѫ/ѭ	--/₽ ҄	--/ ҆ ҇	--ё	--Ё	--ъ/--€	--Ъ/-- ҃//-- ҄	--/// ꙽ꙿ	--//-- ҅	--///ҁ	--/// ꙼꙾	--//ҽ/ҿ		ч//ҷ/ӵ
‭???	--/ ֙ ֘	--/ ִ ֮	--/ ֵ ְ	--/ ֶ–	--/ ָ	--/ ֱ€	--/ ֳ‌		--/ ׇ‍		--/ ַ ͏		--/ ֻ‎	--/ ֲ‏		--/־—		--/ ְ﬩ ‬
#
	--//θ	--//ω	--//ε	--//ρ		--//τ	--//ψ	--//υ	--//ι	--//ο	--//π		--	--	--/◊⧫
	--	--//ꚍ	--//ӗ	--//ԕ		--//ꚋ	--//ꙑ	--//ꙕ	--//ӊ	--	--//ꚏ		--//ꚅ	--//ꚗ	--//ӭ
***	q/ä	w/á	e/ê	r/å		t/þ	y/ÿ	u/ü	i/ij	o/œ	p/ø		[{/«‹	]}/»›	\|/¦†
	я/ѣ/ѧ/ѩ	в/ѵ/ꙍ/ԝ	е/ё/ө/ӫ	р/ԗ/ѽ/ҏ		т/ћ/ҭ/ԏ	ы/і/ү/ұ	у/ў/ӯ/ӱ	и/ѷ/ӣ/ӥ	о/ѡ/ѻ/ѿ	п/ѱ/ԥԤ/ҧ	ш//ԧԦ/ѐ	щ//ꚇ/ѝ	э//ѥ/ӧ
‭???	ק ֲ/ ֨ ֬ ששׁ/ ׁ ֓ ע ֵ/ ֶ ֱ ר ֱ/ ֿ ֗	תט/ ֩ ֠	י ּ/ײַײ	טוּ/ ֻױ	י ִ/יִ ֬	ווֹ/ ֹ ָ	פף/ ֡ ֟		--/׆ ֩	--/ ֘ ֠	--/ ֖׀ ‬
#
	--//α	--//σ	--//δ	--//φ	--//γ	--//η	--//ϊ	--//κ	--//λ	--∶		∂∇/′″
	--//ԙ	--//ꚃ	--//ӡ	--	--//ӿ	--//ҩ	--///ꙇ	--//ӄ	--//ԉ	--//ԟ/ҝ		--//ꚓ/ꚕ
***	a/æ	s/ßẞ	d/ð	f/è	g/ý	h/ú	j/í	k/ó	l/ö	;:/¨÷		'"/´˵/′″
	а/ә/ꙗ/ӓ	с/ѕ/ҫ/ԍ	д/ђ/ӟ/ԁ	ф/ѳ/ғ/ӻ	г/ґ/ӷ/ҕ	х/һ/ҳ/ӽ	й/ї/ҋ/ӑ	к/қ/ҡ/ҟ	л/љ/ӆ/ԓ	--//ӹ/ӳ	--/ ́´/ ̀ ̀/ ́ ́
‭???	א ָ/ ַ ֲ סשׂ/ ׂ ֒ ד ֶ/ ְ ֧ פף/פּףּ	ג״/׳ ֞ הח/ ֢ ֜ ח ֻ/ ﬞ ֝ כך/ ֦ ֫ ל ֹ/ ׇ ֳ --/ ֛ ֔	--/׳״ ‬
#"
	--//ζ	--//χ	--//ξ	--//ϋ	--//β	--//ν	--//μ	‼2009—2009/--‼200a—200a ·/--‼1d121.1d121	⁄/⋰//1d11e
	--	--	--//ꙡ	--//ԃ	--	--//ӈ	--//ꙧ	≲//ԇ/ԅ			≳//ꙝ/ꙙ		…≟//ꙓ/ҍ
***	z/à	x/é	c/ç	v/ì	b/ù	n/ñ	m/ò	,</¸≤			.>/°≥/…		/?/0338¿/÷�
	з/є/ҙ/ѯ	ь/ъ/ӛ/ӕ	ц/џ/ҵ/ќ	ж/ӂ/җ/ӝ	б/ѓ/ꙋ/ѹ	н/њ/ң/ҥ	м/ӎ/ꙟ/ԣ	--/«/⁘⁙/ԋ		--/»/·։/჻⁖	--/ј/ԛ/ꙏ
‭???	ז ַ/ ֮ ֕ כך/כּךּ	צץ/ ֯ ׄ ו ְ/ ֺװ ב₪/בּ ֪	נן/׆ ֦	מם/ ֽ ֣	--/ ֑ ֤			--/׃ ֚		--/ ֥ ׅ ‬
	--		--
	--		--
***	\|/¶❧		./,
	ъЪ/ӏӀ		--
‭???	ֿ ׇ		-- ‬
#
# Earlier versions had:	б/ѹ (now г overflows down as ...);	7&/ ҅ ҆	/?/§”	2@/²³
# ԥԤ  ԧԦ must be specified both lc/uc since perl 5.10 does not upcases them automatically (v6.0)
# On Cyrillic-II-maps: forms with ¨, iotified, latinized forms, forms with more developped appendages, or appendages
# more to the right, or higher, are on AltGr prefix.  (Same for almost-unrelated letters placed
# opportunistically.  (Many are inverted w.r.t. Unicode versions!  Later reason in the list wins.)
#
# Ԡ Ԕ - missing.   Stressed: ѐ ѝ (have them).
#
#Non-obvious: '"/́´/ӹ/ӳ	я/ѣ/ѧ/ѩ	б/ѓ/ѹ/ѽ	д/ђ/ӟ/ԁ  й/ї/ҋ/ӑ  ь/ъ/ӛ/ӕ   ф/ѳ/ғ/Ӻ   м/Ω±/ӎ/ꙟ   ш//ԧ/ѐ	щ//ꚇ/ѝ   з/є/ҙ/ѯ  ц/џ/ҵ/ќ
#		р/ ҄®/ꙋ	,</«„/⁘⁙	.>/»“/·։/჻⁖	/?/ј/;	+ 6789
# Coppa is on AltGr since 1/9 fraction pushes it there...
#
[layer_recipes]
#CopyRight_0=		Id(CopyRight)		MutateDupsOK[0327](SelectRX[[eE]](US-Base))	ByPairs[$¤ ,¸ qĸ ËƏ ëə "〃 -∓](US-Base)
#CopyRight_1=		Id(CopyRight-AltGr)	MutateDupsOK[00a8](SelectRX[[t]](US-Base))	ByPairs[EƏ eə](US-Base)
#
#Math_PlusPlus=	Id(Math)		ByPairs['′ "″]
#
# 0301 over Greek letters=tonos;   0308=dialytika	'
Greek_and_More_0=	Id(Greek)	ByPairs[?; ;·](US-Base)
+Greek_and_More_1=	MutateDupsOK[\\ꭓ,0301|<any-calculated-symbol>|<any-calculated-final>|<any-lunate-symbol>|<any-latinize>|
+Greek_and_More_1=			<any-quasisynon>,<any-amplify>](Greek)
+Greek_and_More_1=		ByPairs[YϜ yϝ TϚ tϛ Kϗ XϠ xϡ CϘ cϙ ZϞ zϟ ;· R∐ l∧ L⋀ n∨ N⋁ F∅ ?Ɂ /ɂ](US-Base)
#
Dashes_Bars=		ByPairs[1‐ 2– 3— 4― 0‒](US-Base)	ShiftFromTo[5,˥](SelectRX[[5-9]](US-Base))
# <pseudo-calculated-sign> is needed for -
Subs_Dashes_0=		MutateDupsOK[<sub>,<sub>+<pseudo-calculated-sign>](SelectRX[[0-9\-()+=]])	FlipShift(Dashes_Bars)	ByPairs[|00ad](US-Base)
More_Dashes_1=		ShiftFromTo[5,꜒](SelectRX[[5-9]](US-Base)) ShiftFromTo[5,꜍](SelectRX[[5-9]](FlipShift(US-Base)))	ByPairs[1‑ -⁃ _‾](US-Base)	MutateDupsOK[<sub>](SelectRX[[+=]](US-Base))
#					This stores in unshifted positions of layer 0 (ρ takes YPOGEGRAMMENI 0345):
Greek_vowels_lc=	ByColumns[ρ,α,ω,ε,,,η,υ,ι,ο]
Greek_vowels=		Id(Greek_vowels_lc)		uc(FlipShift(Greek_vowels_lc))
Greek_vowels_AltGr=	MutateDupsOK[0345|0308](Layers(Empty+Greek_vowels))	ByPairs[.0020 l.0020 o.0020 9.0020](US-Base)
#
BusinessA_0=	Imported[business,00a4](US-Base)
BusinessA_1=	Imported[business,00a3](US-Base)
BusinessAdd_0=		ByPairs[qĸ Q⌨ ZƏ zə oơ OƠ uư UƯ '′ "″ ;‵ :‶ -∓ [〈 ]〉 {◄ }► /℅ jƺ](US-Base)	DefinedTo[¤](SelectRX[[^\da-zA-Z]](US-Base))
+BusinessAdd_1=		ByPairs[ZƎ zǝ Oɶ o℅ '‴ "⁗ ;‷ :‱ [◃ {◂ ]▹ }▸ Aᴁ 2ƻ f♀ F⚢ m♂ M⚣ a⚤ ?ʢ e℮ wfi Wfl h⌂ jʓ Q⌠ q⌡](US-Base)		
+BusinessAdd_1=			DefinedTo[¤](SelectRX[[^\da-zA-Z]](US-Base))
#"
cp437_Start=		FromTo[Digits,cp437-Start](FlipShift(Face(Latin)))	ByPairs[_☼](Face(Latin))	ByPairs[-♪ _♫](FlipLayers(Latin))
#
+Add_AltGr=	 AssignTo[NUMPAD,16](Id(BoxDraw11))	AssignTo[FKEYS,12](Id(DashesEtc) FlipShift(FractionEmSpacesEtc))
+Add_AltGr=	 ByPairsPrefix[↑06f7 ↓06f6 →06f5 ←06f4](AssignTo[ARROWS,16](Id(Arrows)))
#
Greek_w_Symbols_on_Digit_Row=	Id(Greek) Mutate[<subst-extra_greek>](Face(Latin))
#
US_Base_Compose=	ByPairsPrefix[ӏ.06f0 Ӏ.00a0](Id(Cyrillic-AltGr))	Id(US-Base)
#
[face_recipes]
#					∦ obscures ⦀
+VLine=		Mutate[\\∦[\],20d2,20d3,<any-addvline>,20e6,<any-vertical>,<any-stem>|
+VLine=			<any-calculated-operator>,0338+<any-manual>,20d2+<any-manual>,20d3+<any-manual>|
+VLine=			<any-addvline>+<any-addvline>,<any-addleft>+<any-addleft>,<any-addright>+<any-addright>](Face(Latin))
+Business=	Layers(BusinessA_0+BusinessA_1)	Face(VLine)	Layers(BusinessAdd_0+BusinessAdd_1)	
+Business=		Face(SpecialKey_Symbols)	
+Business=		ByPairs[0020␢ xꙣ XꙢ vꚁ VꚀ](FlipLayers(Latin))	ByPairs[xꙥ XꙤ vԡ VԠ](Face(Latin))	ByPairs[0192␢]
#
+Greek__Letters=	Layers(Greek_and_More_0+Greek_and_More_1)	
+Greek__Letters=		   ByPairsPrefix[\0342 [0314 ]0313 `03e2](Face(Latin))
+Greek__Letters=		ByPairsInvPrefix[|0342 {0314 }0313 ~03e2](Face(Latin))	ByPairs[Vϔ](FlipLayers(Latin))
#
CyrillicRipe=		NotSameKey(Face(Latin)		Face(CyrillicPhonetic)	Layers(Subs_Dashes_0+More_Dashes_1) Layers(Ripe+Ripe-AltGr))
CyrillicRipeMax=	ByPairs[˵〃](Face(Latin))	Face(CyrillicRipe)	Face(CyrillicPhonetic)
#
GCyrillicRipe=		NotSameKey(FullFace(GreekPoly)	Face(CyrillicPhonetic)	Layers(Subs_Dashes_0+More_Dashes_1) Layers(Ripe+Ripe-AltGr)	Layers(Green+Green-AltGr))
GCyrillicRipeMax=	ByPairs[˵〃](Face(Latin))	Face(GCyrillicRipe)	Face(CyrillicPhonetic)
#
Hebrew=		Layers(Hebrew-Base+Hebrew-AltGr)
+MathBlue=	Mutate[\ℯℹℎ,\\Ɡ,<reveal-substkey>|<font=double-struck>+uc|<font=double-struck>|<subst-Cardinal>|<pseudo-stroke>+<any-font>,<any-font>|<any-script>|<any-calculated-operator>|\\ªº,<super>+dectrl](Face(Latin))
+MathBlue=	  ByPairs[<⟨ >⟩ =≃](Face(Latin))
+MathBlue=	  Mutate[\\ªº,<super>+dectrl|<any-phonetize>|<any-phonetize2>,<any-phonetize3>--0301|<any-whiten>|<any-amplify>](FullFace(Latin))
+MathBlue=	  Mutate[<font=double-struck>|<font=double-struck>+<any-amplify>](Layers(Greek+Empty)) ByPairs[ýℊ ÝꞬ](Face(Latin))
#
+LGreekGreen=	NotSameKey(Face(Latin)	Face(Greek__Letters)	Layers(Green+Green-AltGr))	
+LGreekGreen=		MutateDupsOK[<super>,<super>+<pseudo-calculated-sign>](SelectRX[[-0-9()+=]|-])
LGreekGreenMax=	Face(LGreekGreen)	Face(Greek__Letters)
#
+CGreekGreen=	NotSameKey(Face(CyrillicPhonetic)	Face(Greek__Letters)	Layers(Green+Green-AltGr))
+CGreekGreen=		MutateDupsOK[<super>,<super>+<pseudo-calculated-sign>](SelectRX[[-0-9()+=]|-])
CGreekGreenMax=	Face(CGreekGreen)	Face(Greek__Letters)
#
+CGreekRipe=	NotSameKey(FullFace(CyrillicPhonetic)	Face(Greek__Letters)	Layers(Subs_Dashes_0+More_Dashes_1) Layers(Ripe+Ripe-AltGr)	Layers(Green+Green-AltGr))
+CGreekRipe=		MutateDupsOK[<sub>](SelectRX[[0-9]])
CGreekRipeMax=	Face(CGreekRipe)	Face(Greek__Letters)
#
+HGreekRipe=	NotSameKey(Face(Hebrew)	Face(Greek__Letters)	Layers(Subs_Dashes_0+More_Dashes_1) Layers(Ripe+Ripe-AltGr)	Layers(Green+Green-AltGr))
+HGreekRipe=		MutateDupsOK[<sub>](SelectRX[[0-9]])	
HGreekRipeMax=	Face(HGreekRipe)	Face(Greek__Letters)
#
+CLatinGreen=	NotSameKey(FullFace(CyrillicPhonetic)	Face(Latin)	Layers(Green+Green-AltGr))	
+CLatinGreen=		MutateDupsOK[<super>,<super>+<pseudo-calculated-sign>](SelectRX[[-0-9()+=]|-])
CLatinGreenMax=	Face(CLatinGreen)	Face(Latin)
#
LatinRipe=	NotSameKey(Face(CyrillicPhonetic)	Face(Latin)	Layers(Subs_Dashes_0+More_Dashes_1) Layers(Ripe+Ripe-AltGr))
LatinRipeMax=	Face(LatinRipe)	Face(Latin)
#
+HLatinGreen=	NotSameKey(Face(Hebrew)		Face(Latin)	Layers(Green+Green-AltGr))	
+HLatinGreen=		MutateDupsOK[<super>,<super>+<pseudo-calculated-sign>](SelectRX[[-0-9()+=]|-])
HLatinGreenMax=	Face(HLatinGreen)	Face(Latin)
#
+GLatinGreen=	NotSameKey(FullFace(GreekPoly)		Face(Latin)	Layers(Green+Green-AltGr))	
+GLatinGreen=		MutateDupsOK[<super>,<super>+<pseudo-calculated-sign>](SelectRX[[-0-9()+=]|-])
GLatinGreenMax=	Face(GLatinGreen)	Face(Latin)
#
Greek_Vowels=	Layers(Greek_vowels+Greek_vowels_AltGr)
# PERISPOMENI=0342=circumflex=(visually)tilde	[SpaceOK not needed, since it checks the BASE character of a key] [varia does not decompose into SPACE+combining, but into `]
+Greek_Vowels0=	ByRows[ MutateDupsOK[0342] /// MutateDupsOK[0301] ///  Id /// MutateDupsOK[0300] ](Face(Greek_Vowels))	
+Greek_Vowels0=		ByPairs[`ρ ~Ρ](Face(Latin))	ByPairs[.`](Layers(Empty+US-Base))
# plain -> 0306 vrachy; -> 0304 macron	(in poetry: disambiguate short and long: http://www.tlg.uci.edu/~opoudjis/unicode/unicode_gkbkgd.html)
# They are used (almost always in teaching or dictionaries) to disambiguate the three vowels which might be long or short: alpha, iota, and upsilon. 
Greek_Vowels0_with_Vrachi=	ByRows[ Empty /// Empty ///  MutateDupsOK[0306] /// Empty ](Face(Greek_Vowels))
Greek_Vowels0_with_Macron=	ByRows[ Empty /// Empty ///  MutateDupsOK[0304] /// Empty ](Face(Greek_Vowels))
# 000d↲ PageUp ⎗ PageDn ⎘
SpecialKey_Images=	ByPairs[ 000a␤ 000d⏎ 0009↹ 001b⇤ 001d⇥ 001c␀ 0008⌫ 007f⌦ 0003␥ 001a␦ 001f↨]
SpecialKey_Symbols=	ShiftFromTo[0001,2401](SelectRX[[\x00-\x20]])	ByPairs[␡]
SpecialKey_Images2=	ByPairs[000d↲ 000a⤶ 0008⎌ 001b⎗ 001d⎘ 007f⌧ 0003⎚]
#
+Add_Green1=	Mutate[\ªº,<super>+lc+dectrl]	ByPairs[0020␣ 0192⍽]
##+Add_Green1=			AssignTo[FKEYS,12](Id(DashesEtc) FlipShift(FractionEmSpacesEtc))
##+Add_Green1=			AssignTo[ARROWS,16](Id(Arrows) FlipShift(Arrows2))
##+Add_Green1=			AssignTo[NUMPAD,16](Id(BoxDraw11))
+Add_Ripe1=	Mutate[<sub>+lc+dectrl|<sub>+dectrl]	ByPairs[0020.00a0 0138.202f]
+Add_Ripe1=			AssignTo[ARROWS,16](Id(Arrows²))	AssignTo[NUMPAD,16](Id(BoxDrawBB))
+Add_Ripe1=			AssignTo[FKEYS,12](ByPairsPrefix[=06f0](SubExtraLetters))
+Add_Ripe1=			AssignTo[FKEYS,12](ByPairsPrefix[=06e8](FlipShift(SubExtraLetters)))
Add_Ripe3=	ByPairs[0020.2009 0138.200a]	Face(SpecialKey_Images2)
Add_2Ripe=	AssignTo[NUMPAD,16](Id(BoxDrawB1))	AssignTo[ARROWS,16](Id(ArrowsBlack²))
#				Some of subize/superize duplicate the AltGr version of pseudo-fake; should be put in front
SupersPhonetic=		Mutate[\ªº,<super>,<super>+<pseudo-calculated-sign>|<any-superize>,<pseudo-fake-super>|<any-phonetize0>,<any-phonetized>,<any-stretched>|<any-phonetize2>|<any-phonetize3>|<subst-extra_phonetic>](Face(Latin))
SubsSmallCapsLegs=	Mutate[\﹏,<sub>,<sub>+<pseudo-calculated-sign>|<any-subize>,<pseudo-fake-sub>|<any-subize2>|<pseudo-smallcaps>|<any-smallcaps>|<any-tail>,<any-curl>,<any-leg>](Face(Latin))	ByPairs[oꭥ](FlipLayers(Latin))
#SmallCaps=	Mutate[<pseudo-smallcaps>|<any-smallcaps>](Face(Latin))
RotatedsHooks=	Mutate[<any-manual-turnaround>|<any-inverted-!breve>,<any-sideways>,<any-inverted>+<any-phonetized>,<any-dot>+<any-reversed>,<any-reversed>,<any-turned>|<any-retroflex-hook>,<any-right-hook>|<any-hook-!palatal-!left>|<any-palatal-hook>|<any-left-hook>|<any-inverted-breve>](Face(Latin))
LeftHooks=	Mutate[<any-left-hook>|<pseudo-hook>|<any-palatal-hook>](Face(Latin))
#
+LongStrings=	FromTo[US-Base,Greek-AltGr-Junk](SelectRX[[,/<>:]](Face(Latin)))
+LongStrings=		FromTo[US-Base,Green](SelectRX[[,/<>:]](Face(Latin)))
+LongStrings=		FromTo[US-Base,Green-AltGr](SelectRX[[,/<>:]](Face(Latin)))
#
Base_Base=	Id(US-Base)
#
+CopticDigits=	ShiftFromTo[1,102E1](SelectRX[[0-9]])	ShiftFromTo[1,102EA](SelectRX[[0-9]](FlipShift))
+CopticDigits=		AssignTo[FKEYS,12](ShiftFromTo[1,102F3](SelectRX[[1-9]](Id(Digits))) ByPairs[0.102E0](Id(Digits)))
#
[faces]
# Create DeadKey maps basing on (massaged!) visual descriptions:
# koronis obscures 0313 psili; breve obscures 0342 perispomeni
+DeadKey_Map0342= PrefixDocs[Polytonic greek Vowels by vowel-key-column, Rows=Circumflex/Acute/None-or-Vrachi-Macron/Grave, AltGr=iotization {AND: Zodiak, etc}]
+DeadKey_Map0342= HTML_classes[k=polyBase,to_w,j,k=polyBase,from_w,sl,C,need-learn,ᾰῠῐᾱῡῑ΄΅ϵϼ͵ʹ᾽ͺιϱ]
+DeadKey_Map0342= ByPairs[~⛎](Face(Latin))	ByPairs[lͺ Lι 0028῁ O΅ >῭ 3΄ #΅](FlipLayers(Latin))	
+DeadKey_Map0342=	Face(Greek_Vowels0_with_Vrachi)	
+DeadKey_Map0342=	FromTo[US-Base,Face(Greek_Vowels0_with_Macron)](ByPairs[sa SA hj HJ lk LK](US-Base))	
+DeadKey_Map0342=	Mutate[\\ϔ,<any-stroke-symbol>+<pseudo-calculated-symbol>|	
+DeadKey_Map0342=			<pseudo-upgrade>](Face(Greek_Vowels0))	
+DeadKey_Map0342=	Face(Greek_Vowels0)	FromTo[Digits,Zodiak](FlipShift(Face(Latin)))	
+DeadKey_Map0342=	FromTo[SubExtraLetters,Zodiak](FlipShift(Face(Latin)))	ByPairs[3͵ #ʹ](Face(Latin))
# some capital characters exist with aspiration, but not without; hence the play with uc (and uc may give something like ὮΙ) [varia needs to be special cased - it decomposes into `)
# We repeat the Shift-inverted ByPairs[#͵ 3ʹ](Face(Latin)) only to fight access from CyrillicPhonetic (remember ъЪёЁ)
+DeadKey_Map0313= PrefixDocs[Polytonic greek Vowels with smooth aspiration by vowel-key-column, Rows=Circumflex/Acute/None/Grave, AltGr=iotization; +etc]
+DeadKey_Map0313= HTML_classes[C,need-learn,᾽]
+DeadKey_Map0313= ByPairs[L᾽](FlipLayers(Latin))	Mutate[\\᾽,0313](Face(Greek_Vowels0))	
+DeadKey_Map0313=	Mutate[ucfirst+0313](FlipShift(Face(Greek_Vowels0)))	ByPairs[.῍](Layers(Empty+US-Base))
+DeadKey_Map0313=	ByPairs[3͵ #ʹ](Face(Latin))
#
+DeadKey_Map0314= PrefixDocs[Polytonic greek Vowels with rough aspiration by vowel-key-column, Rows=Circumflex/Acute/None/Grave, AltGr=iotization; +etc]
+DeadKey_Map0314= HTML_classes[C,need-learn,͵ʹ]
+DeadKey_Map0314= Mutate[0314](Face(Greek_Vowels0))	Mutate[ucfirst+0314](FlipShift(Face(Greek_Vowels0)))
+DeadKey_Map0314=	ByPairs[.῝](Layers(Empty+US-Base))	ByPairs[#͵ 3ʹ](Face(Latin))
#
+DeadKey_Map03e2= PrefixDocs[Coptic, Archaic Greek, Stroked/Latinized Greek {AND: dashes, cp437 “control-graphic”, Zuang tones}]
+DeadKey_Map03e2= Mutate[<any-greek2coptic>|<any-greek2coptic>+<any-archaic>|<any-stroke>+<any-latinize>](Layers(Greek+Greek_and_More_1))
+DeadKey_Map03e2=	Mutate[<any-latin2extracoptic>](ByPairs[jj JJ vf VF --](Face(Latin))
+DeadKey_Map03e2=					ByPairs[dt DT kx KX](FlipLayers(Latin)) FlipLayers(Latin))
+DeadKey_Map03e2=	ByPairs[BϷ bϸ !Ͱ 1ͱ jϳ JͿ GͶ gͷ MϺ mϻ Uϒ NͲ nͳ vϲ VϹ oͻ OϽ e϶ QϏ qϗ rͽ RϿ yͼ YϾ w℧ WΩ lƛ](FlipLayers(Latin))
+DeadKey_Map03e2=	Layers(Dashes_Bars+Empty)	Id(cp437_Start)	Mutate[<subst-Zuang_tones>](FlipLayers(Latin))
+DeadKey_Map03e2= HTML_classes[C,special,ⲇⲕϒ,C,very-special,ϸͷϻΩ϶ᵼᵿƛ,C,may-guess,ͱϫϥ,C,need-learn,ϲͻͽͼͳ℧ϗ♫♪]
+DeadKey_Map03e2= Mutate[<circle>+lc+dectrl]
#
+DeadKey_Map00a3=	PrefixDocs[Currencies, horn, add-vertical-line(s) {AND: double addleft/addright, “text” control-key symbols, etc}]
+DeadKey_Map00a3=	HTML_classes[k=businessAlt,from_w,u,C,special,©®℠™℗℅℮‱,C,very-special,ĸươəǝ,C,need-learn,៛﷼ԡꙣꙥꚁ,C1,need-learn,元圆]
+DeadKey_Map00a3=		ByPairs[££]	Face(Business)	
#
+DeadKey_Map012e=	PrefixDocs[Hebrew {AND: iconic control-key symbols}]
+DeadKey_Map012e=		Face(Hebrew)	Face(SpecialKey_Images)	ByPairs[0020.2009 0138.200a]	Face(Add_2Ripe)
#								Having AÅ KK contradicts Unicode recommendations	
+DeadKey_Map019c=	PrefixDocs[MathBlue (“Blue keys” and common math flavors of letter)]
+DeadKey_Map019c=	  ByPairs[0020␠ 0192␢ '⸣ `⸢ ´⸥ ˋ⸤ "〃 02f5⎖ :⫶ ÷⦂ \∖ -− _―]	HTML_classes[C,special,∼∗⧵⋅−⫶⟨⟩≪≫≃,C,very-special,∖﬩ℏ―⎖〃,C,need-learn,ℎℽ]
+DeadKey_Map019c=	  ByPairs[0020␢ \⧵ pℼ Pℿ yℽ qℎ c℃ f℉](FlipLayers(Latin))	ByPairs[0020␠](Face(Latin))	Face(MathBlue)
# '
# It is a terrible hack to make them into deadkeys; all we want is to have them in output_layers
+DeadKey_Map06ff=	PrefixDocs[delivers Fraktur to an extra layer]		AssignTo[ARROWS,16](Id(ArrowsMapsTo²))
+DeadKey_Map06ff=		Mutate32OK[<font=fraktur>](Face(Latin))		AssignTo[NUMPAD,16](Id(BoxDraw21))
#
+DeadKey_Map06fe=	PrefixDocs[delivers Double-Struck to an extra layer]
+DeadKey_Map06fe=		Mutate32OK[<font=double-struck>|<any-whiten>](Face(Latin))	AssignTo[NUMPAD,16](Id(BoxDraw12))
+DeadKey_Map06fe=		Face(LongStrings)	AssignTo[ARROWS,16](Id(ArrowsWhite²))
#
+DeadKey_Map06fd=	PrefixDocs[delivers Script to an extra layer]	AssignTo[NUMPAD,16](Id(BoxDraw22))	Face(CopticDigits)
+DeadKey_Map06fd=		Mutate32OK[<font=script>|<any-script>](Face(Latin))	ByPairsPrefix[:03a6](Face(Latin))
+DeadKey_Map06fd=		ByPairs[/𐆋 ~𐆌 +𐆠](Face(Latin))	Face(LongStrings)	AssignTo[ARROWS,16](Id(HookArrows²))
#
+DeadKey_Map06f1=	PrefixDocs[delivers Bold Fraktur to an extra layer]		Mutate32OK[<font=bold-fraktur>](Face(Latin))
+DeadKey_Map06f1=		AssignTo[ARROWS,16](Id(PartSquares²))	AssignTo[NUMPAD,16](Id(BBoxDrawOnV))
+DeadKey_Map06ef=	PrefixDocs[delivers Bold Script to an extra layer]		Mutate32OK[<font=bold-script>](Face(Latin))
+DeadKey_Map06ef=		ByPairsPrefix[/03a6](Face(Latin))		Face(LongStrings)	
+DeadKey_Map06ef=		AssignTo[ARROWS,16](Id(RoundDirections²))	AssignTo[NUMPAD,16](Id(BBoxDrawOnHV))
#
#				These AssignTo() do not trigger any action in applications???
+DeadKey_Map06ee=	PrefixDocs[delivers SansSerif Bold Italic to an extra layer]
+DeadKey_Map06ee=	 	Mutate32OK[<font=sans-serif-bold-italic>](Face(Latin))
+DeadKey_Map06ee=		AssignTo[ARROWS,16](Id(RectArr²))	AssignTo[NUMPAD,16](Id(BBoxDrawOnH))
#							ByPairs[:03a6](Face(Latin))
#		These are non-essential, added for testing of applications only (B1, Frames??? eventually should be on rCtrl! ???)
#+DeadKey_Map06fc=	PrefixDocs[delivers SansSerif BoldItalic Greek, Bold Digits to an extra layer]
#+DeadKey_Map06fc=	  Mutate32OK[<font=sans-serif-bold-italic>](Id(Greek_w_Symbols_on_Digit_Row))
#+DeadKey_Map06fc=	  AssignTo[NUMPAD,16](Id(BoxDraw1B))	AssignTo[ARROWS,16](Id(WhiteFrame) FlipShift(BlackFrame))
+DeadKey_Map06fc=	PrefixDocs[delivers SansSerif Italic to an extra layer]	Mutate32OK[<font=sans-serif-italic>](Face(Latin))
+DeadKey_Map06fc=		AssignTo[NUMPAD,16](Id(BoxDraw1B))	AssignTo[ARROWS,16](Id(ArrowsDtip²))
#
+DeadKey_Map06fb=	PrefixDocs[delivers SansSerif Bold to an extra layer]	Mutate32OK[<font=sans-serif-bold>](Face(Latin))
+DeadKey_Map06fb=		AssignTo[ARROWS,16](Id(ArrowsVStroke²))
+DeadKey_Map06e9=	PrefixDocs[delivers SansSerif to an extra layer]	Mutate32OK[<font=sans-serif>](Face(Latin))
+DeadKey_Map06e9=		AssignTo[ARROWS,16](Id(CrossedArrows²))
#					ARROWS is a dup of lAlt-Mnu (SS-Bold; not working in many apps)
+DeadKey_Map06f9=	PrefixDocs[delivers Monospace to an extra layer]	Mutate32OK[<font=monospace>](Face(Latin))
+DeadKey_Map06f9=		AssignTo[ARROWS,16](Id(ArrowsVStroke²))
+DeadKey_Map06fa=	PrefixDocs[delivers BoldItalic to an extra layer]	Mutate32OK[<font=bold-italic>](Face(Latin))
+DeadKey_Map06fa=		Mutate32OK[<font=bold>](Face(Latin))	AssignTo[ARROWS,16](Id(PartCircles²))
+DeadKey_Map06f8=	PrefixDocs[delivers Italic to an extra layer]		Mutate32OK[<font=italic>](Face(Latin))
+DeadKey_Map06f8=		AssignTo[ARROWS,16](Id(Arrows4andCircles²))
+DeadKey_Map06ea=	PrefixDocs[delivers Bold to an extra layer]	Mutate32OK[<font=bold>](Face(Latin))
+DeadKey_Map06ea=		AssignTo[ARROWS,16](Id(ArrowsDashedCurved²))
#
DeadKey_Map06f7=	PrefixDocs[Superscript (and MODIFIER LETTERS), Phonetic]	Face(SupersPhonetic)
DeadKey_Map06f6=	PrefixDocs[Subscript (and MODIFIER LETTERS LOW), Small Caps, Legs]	Face(SubsSmallCapsLegs)
DeadKey_Map06f5=	PrefixDocs[Turnaround, inverted, reversed, turned, hooks (to the right)](Face(Latin))		Face(RotatedsHooks)
DeadKey_Map06f4=	PrefixDocs[Hooks to the left (and palatal)](Face(Latin))		Face(LeftHooks)
#
DeadKey_Map06f3=	ByPairsPrefix[:03a6](Face(Latin))	prefix=0138
DeadKey_Map06f2=	ByPairsPrefix[;03a6 :0483 0020.06f0](Face(Latin))	prefix=0192
#
+DeadKey_Map06ed=	PrefixDocs[delivers BoldItalic Greek to an extra layer] AssignTo[ARROWS,16](Id(BlackTrian²))
+DeadKey_Map06ed=		Mutate32OK[<font=bold-italic>](Id(Greek_w_Symbols_on_Digit_Row))
+DeadKey_Map06ec=	PrefixDocs[delivers Bold Greek to an extra layer]	AssignTo[ARROWS,16](Id(WhiteFrame²))
+DeadKey_Map06ec=		Mutate32OK[<font=bold>](Id(Greek_w_Symbols_on_Digit_Row))	AssignTo[NUMPAD,16](Id(BoxDrawOnBH))
+DeadKey_Map06eb=	PrefixDocs[delivers Italic Greek to an extra layer]	AssignTo[ARROWS,16](Id(WhiteTriang²))
+DeadKey_Map06eb=		Mutate32OK[<font=italic>](Id(Greek_w_Symbols_on_Digit_Row))	AssignTo[NUMPAD,16](Id(BoxDrawOnBV))
#
geometry_via_layer=US-Base
#
# Tibetan range 0f**: take only tibetan diacritics, so our code adding diacritics won't be confused by prefices... ???
Auto_Diacritic_Start=0700
#
Flip_AltGr_Key=00a0
#
# Layer-Shift-Caps-AppleVK, isDead;  vk=111: F12, vk=105: F13, vk=90: F20, vk=110: PC__Menu, vk=71: KeyPad_Clear, vk=80: F19
/Apple_Override=1-0--vk=105,1,06f0/1-0--vk=111,1,06f0/0-0--vk=90,1,06f0
# Negative isDead for literal names of states; hex4 is on F19, and Blue-u
/Apple_Override=1-0--vk=80,,‾/0-0--vk=80,-1,hex4/+019c+u,-1,hex4/0-1--vk=80,-1,hex6/+019c+U,-1,hex6
#/Apple_Override=1-0--vk=105,1,06f0/1-0--vk=111,1,06f0
#
#ComposeKey=06f0
/ComposeKey=ComposeFiles,dotcompose,warn,06f0/EntityFiles,entity,warn,,06f0/rfc1345Files,rfc1345,warn,06e8,06f0
@ComposeKey_Show=,&,ʳᶠᶜ
#
# Apparently, binding-column 15 (0-based) of aVkToWch18 is as if with WCH_NONE.  When there are 2 Ctrl-columns, this corresponds to
#    OBSOLETE (now done automatically): Shift of (0-based) elt 6 below ((7+1)*2=16).	Better put something fake into elt 6!
#
#		      Gr,Ru,Heb,Frk,ssbiGrk,Scr, Dbl,ms, i, bi,ssb
# Actual keys:    ,Agr,CA,M,CrM,CMAgr,ACr,CrAgr,MAgr,AM,CM,CAM,AMCr
#
# modKeyID = a capital letter (possibly prepended with l/r); bits = (S) C A K L R Z T
@mods_keys_KBD=lC,CL,lA,AK,rA,CALZ,M,CAT,rC,CAR
@layers_mods_keys=,rA,lClA,M,MrC,rAMrC,lArC,rAM,rArC,lCMrC,lCM,lCrC,lArA,lArAM,lArAMrC,lAM,lClAMrC,lClArC,lClAM,lArArC,lAMrC
@output_layers=0,1,prefixNOTSAME=06f3,prefixNOTSAME=06f2,prefixNOTSAME=012e,prefixNOTSAME=06ff,prefixNOTSAME=06fc
@output_layers=prefixNOTSAME=06fd,prefixNOTSAME=06fe
@output_layers=prefixNOTSAME=06f1,prefixNOTSAME=06ef,prefixNOTSAME=06ee
@output_layers=prefixNOTSAME=06f9,prefixNOTSAME=06f8,prefixNOTSAME=06fa,prefixNOTSAME=06fb
@output_layers=prefixNOTSAME=06ed,prefixNOTSAME=06ec,prefixNOTSAME=06eb
@output_layers=prefixNOTSAME=06ea,prefixNOTSAME=06e9
#
Diacritic_if_undef=			SpaceSelf2Id
DeadChar_DefaultTranslation=		♪
DeadChar_32bitTranslation=		♫
#				Explicit on Latin
[faces/VK]
#		These are sorted alphabetically
#					# Had 03a6 on the "ripe key"; then 0138, now 0192
@SPACE=,0020,0138@,0192@,00a0@
# Temporary: when ¦ is Compose, change to this...
@ABNT_C1=,06f0@,00a0@,00a3@,0301
#@TAB=,0009,0009,0483@,0484@
#
# Dotted circle, black circle, white circle
#@APPS=,-1,25CC@,25CF@,25EF@
#
# Non-breakable translations (non-ideal 2007), 202F
#
[faces/Latin]
@layers=US_Base_Compose,	Id(USLatin-AltGr)	Id(Add_AltGr)
#@layers=US-Base,	Id(USLatin-AltGr)	Id(Add_AltGr)
BaseLayer=US-Base
#LinkFace=CyrillicPhonetic
#
MetaData_Index=0
faceDeadKeys= 	´  ˋ |||  ˆ  ˜ |||  ° ¸ |||  ˇ  ¯  0338  ˵ ¨  £   Ɯ  ĸ
ExportDeadKeys=	´  ˋ  ˆ  ˜  ° ¸  ˇ  ¯  0338  ¨ ˵
#
@extra_report_DeadChar=	012e, 03a6
#					# Now defined via ByPairsPrefix
#@faceDeadKeys2= 0138\,	0138[,	0138], 0138`
#							002c = ,
@char2key_prefer_first=\,|,.,002c,£
@char2key_prefer_last=00a0
#
# Will be only considered when putting a diacritic on AltGr-key (~∼, *∗, .⋅ ) perp=⟂' ¹⟂ is good only if ¹ is on 1! key…; 
# |∣ does not hurt anything (and does not help much)
@AltGrCharSubstitutions=|∣,0338∕
# ¡≀ - better on Greenkeys; #≠ - conflicts too much; ijü - was good when ij was on k, not i; ó∘ - what for???
@AltGrCharSubstitutionLayers=Blue,Blue-AltGr
#
#  This gives more collisions:
#@AltGrCharSubstitutions=ijü,^∧,&∩,*×,#≠,6∨,7∪,|∣,!⊥,1⊤,¡≀,¹⟂,2∫,@∮,ª∭,²‖,²∥,3⊳,#⊲,º△,³▽,4□,$◇,€⊢,¥⊣
#
@Import_Prefix_Keys=	0301:CyrillicPhonetic,03a6,	0483:CyrillicPhonetic,0483
#
+DeadKey_InvMap0000=	ByPairs[0192.202f]	
+DeadKey_InvMap0000=	HTML_classes[k=latinAlt,from_ne,x,k=latinAlt,to_ne,ac,k=latinAlt,xfrom_sw,wf,k=latinAlt,from_nw,l,k=latinAlt,from_w high,p]
+DeadKey_InvMap0000=	HTML_classes[c=latinBase,special,aeyuio,C=latinAlt,special,ê,C=latinAlt,very-special,ºª№€§æßðþçñijœ¡¿]
+DeadKey_InvMap0000=	HTML_classes[C1,need-learn,åøì]
#                   Chaining makes sense if Flip_AltGr_Key is on AltGr key (repeating will reach inverted faces of:)
@chainAltGr=0138,0192,03a6,0483
+PrefixChains=0192,0192,012e,03a6,0483,⍽
+PrefixChains=0138,0138,019c,£,03e2,␣
#
# 017F,0192,03a6 - good candidates to never be generated on the base face.  But 017F takes accents (use it for dead2 only)
# 00b6=pilcrow 007c=| 002f=/ 00a0=NBSPC --> open box, narrow and hair spaces to figure and narrow nbr-spaces (was: 03a6.2007 00a0.202F)
+DeadKey_Map0192=	PrefixDocs[Cyrillic, “Ripe Keys”, Subscript digits/symbols, dashes]
+DeadKey_Map0192=	InheritPrefixKeys[Face(CyrillicPhonetic)](Face(CyrillicRipeMax))
+DeadKey_Map0192=	Face(Add_Ripe1)
+DeadKey_Map0192=	HTML_classes[C=cyr,may-guess,всыхѣєә,C0,need-learn,ючяшщэьжёъЁЪ]
# Layers(Russian+Russian-AltGr)
#					(9=Thin, a=Hair, 7=figure(noBreak), 8=Punctuation spaces)
+DeadKey_AddMap03a6=	PrefixDocs[“Bizarre” Cyrillic, fractions {AND: “other” iconic Control-Key symbols}]	
+DeadKey_AddMap03a6=	Face(Add_Ripe3)
#
DeadKey_AddMap0483=	ByPairs[0020.2007 0138.2008]
#				Default map (not used now???):
DeadKey_Map=		Mutate	Mutate2Self
#
#				ĸ: ↹⇤ 0009⇥
+DeadKey_Map0138=	PrefixDocs[Greek (AltGr=tonos/final/symbol etc), Superscript digits/symbols, “Green Keys”]
+DeadKey_Map0138=		Face(LGreekGreenMax)	Face(Add_Green1)
+DeadKey_Map0138=	HTML_classes[C,very-special,ϋϊ,C,special,αωεηυιο,C,may-guess,ϔϛϟϡɂ,C,need-learn,θψϝϙ∐,C1,may-guess,ϗ∨⋁∧⋀]
#
# diaeresis 00a8; 0309=hook above; ,<any-symbol-diaeresis> does not add anything...
+DeadKey_Map00a8=	PrefixDocs[Diaeresis, hook above [+subs-Vietnamese], “Blue Keys”, operators {AND: doubly-mogrified symbols, rotunda/squirrel/hook/curl, dot above+below, etc}]
+DeadKey_Map00a8=	Mutate[\\∉∌,00a8|0309+<subst-Vietnamese>,<reveal-substkey>|0309|<any-calculated-operator>|
+DeadKey_Map00a8=		   <any-overlay>+<any-addvline>,<any-overlay>+<any-addhline>,<any-overlay>+<any-addline>,
+DeadKey_Map00a8=			<any-amplify>+<any-round>,<any-round>+<any-round>,<any-rotunda>,<any-squirrel>|
+DeadKey_Map00a8=		   <any-dot-above>+<any-dot-below>,<any-dot-above>+0301,<pseudo-stroke>+<any-diagonal-stroke>|
+DeadKey_Map00a8=		   <any-double-bar>,<pseudo-hook>,<pseudo-palatal-hook>|<pseudo-curl>,-<any-white>+<any-unsharpen>]	
+DeadKey_Map00a8=		Mutate2Self
#
# 2f5 ˵ "middle" double grave.  <any-macron-below> gets WITH LINE BELOW, <any-circumflex-accent-below> gets WITH CIRCUMFLEX BELOW
+DeadKey_Map02f5=	PrefixDocs[Diaeresis, double-grave, double-struck capitals {AND: doubly-mogrified symbols, dot above symbols, dot+macron, stroke/swash, paleocontractions, etc}]
+DeadKey_Map02f5=	Mutate[\\ǘ,00a8|<font=double-struck>|<any-double-grave>|
+DeadKey_Map02f5=		<any-overlay>+<any-addvline>,<any-overlay>+<any-addhline>,<any-overlay>+<any-addline>,
+DeadKey_Map02f5=			<any-calculated>+<any-black>,<any-amplify>+<any-round>,<any-round>+<any-round>|
+DeadKey_Map02f5=		<any-adddottop>,<any-amplify>+<any-amplify>|
+DeadKey_Map02f5=		<any-dot-above>+<any-calculated>,<any-dot-above>+0304--00a8|0304+<any-dot-below>|
+DeadKey_Map02f5=		<any-diagonal-stroke>,<any-oblique-stroke>|
+DeadKey_Map02f5=		<any-swash>,<any-bar>+<any-paleocontraction>,<any-paleocontraction>,<any-diaeresized>--0301,
+DeadKey_Map02f5=			<any-reversed>+<any-fishhook>,<any-hook>+<any-greekize>--0301]
+DeadKey_Map02f5=	    ByPairs[p♠ P♣]	ByPairs[p♥ P♦ "0308](FlipLayers)	Mutate2Self
#
#  Combine macron=00af and stroke (AOUaou missing stroke...)  00ad=SOFT HYPHEN; <any-stroke> should pick up 0338; 20D2 (|) and 20E5 \ do not appear in decompositions...
# ⩉ masks combining macron; 0311 is inverted breve; ⋺ gets in the way of overbar
+DeadKey_Map00af=     PrefixDocs[Macron, add horizontal line (or double line), phonetic, dashes (on digits etc) {AND: quill, right-hook, inv-breve, paleocontraction}]
+DeadKey_Map00af=     ByPairs[”ɚ ¹ǃ]
+DeadKey_Map00af=	Mutate[\\⩉∤≤≥⩈⋳⋻,\\⋺[0],00af|0303+<subst-Macron>|
+DeadKey_Map00af=		<any-bar>,<any-horizontal-stroke>,<any-dash>,<any-overbar>,<any-topbar>,<any-strikethrough>,
+DeadKey_Map00af=		    <any-over-equal>,<any-equal>,<any-line-!vertical>,<any-quill>,<any-base>,<any-underbar>,
+DeadKey_Map00af=		    <any-phonetized>,<any-addhline>|<any-right-hook>|
+DeadKey_Map00af=		0311--0301,<any-paleocontraction>,<super>+<any-paleocontraction>+lc|
+DeadKey_Map00af=		0311,<any-horizontal>,0304+<any-dot-below>]	
+DeadKey_Map00af=	ByPairs[1‐ 2– 3—]  ByPairs[4― 0‒ ”ə ¦00ad !‑ ¹ǃ KȎ kȏ @ƻ]	ShiftFromTo[5,˥](SelectRX[[5-9]])
+DeadKey_Map00af=	Mutate2Self
# 0304+<any-dot-below> cannot be inverted - there is no intermediate point!
#
#  Combine breve=02d8/0306 and caron 02c7/030c (we do not ??? of breve-like diacritics!); ŭ is moved to ???
#   Note that Ü combines with caron (in 2 ways! Ǖ Ṻ) - but we prefer Ü -> Ǔ;	arc/check not visible; ƫꞇꞆ obscure ꝥ
+DeadKey_Map02c7=	PrefixDocs[Caron, breve, quasi-synonyms, n-Ary/Big {AND: arc/loop/check/belt/flourish/tilde-below/left-palatal-hook, insular/epigraphic, etc}]
+DeadKey_Map02c7=	ByPairs[02c7.0306]	
+DeadKey_Map02c7=	Mutate[\\ƫꞇꞆ∊∍ŭꟼ,02c7|030c|<any-breve-!inverted>,<any-arc>,<any-caron>,<any-loop>,<any-check>,<any-belt>,
+DeadKey_Map02c7=			<any-flourish>,<any-tilde-below>--0300|
+DeadKey_Map02c7=		    <any-quasisynon>,<any-left-hook>,<any-quasisynon>+<any-black>|
+DeadKey_Map02c7=		    <any-palatal-hook>,<any-insular>,<any-epigraphic>,0306+0327--0301,<any-dot-above>+<any-caron>,
+DeadKey_Map02c7=		    <any-black>+<any-unsharpen>,<any-n-ary>,<any-big>,<any-large>,
+DeadKey_Map02c7=		    <any-n-ary>+<any-manual-!turnaround>,<any-n-ary>+<any-circled>]	
+DeadKey_Map02c7=		ByPairs[þꝥ ÞꝤ íǯ ÍǮ wɷ]	ByPairs[0ᴕ](FlipLayers)	Mutate[<any-smallcaps>](Layers(Empty+Greek))	
+DeadKey_Map02c7=		Mutate2Self
#
# division slash; <any-long-horizontal-stroke> just a micro-optimization; to access Ȧȧ;   pinyin caron=030c-diaeresis
+DeadKey_Map0338=	PrefixDocs[Stroke, cut-off, “other” phonetic {AND: Um, doubled letters, ŭ, dot above, double-overbar, but-not, fences}]
+DeadKey_Map0338=	ByPairs[0338.0338]
+DeadKey_Map0338=	Mutate[\\ʓꞩ,<pseudo-stroke>,<any-stroke-!horizontal>,<any-long-horizontal-stroke>,<any-diagonal>,
+DeadKey_Map0338=			<any-solidus>,<any-addline>,0306--030c--00a8+030c+00a8,<any-curl>+<any-phonetized>|
+DeadKey_Map0338=		   <any-stroke>+<any-calculated>,<any-stroke>+<any-phonetized>,<any-umify>,
+DeadKey_Map0338=			<any-umify>+<any-smallcaps>,<any-umify>+<any-rotunda>,<any-doubleletter>,00a8+00af--00a8,
+DeadKey_Map0338=			<any-dot-above>--0300,<any-double-overbar>,<any-but-not>|
+DeadKey_Map0338=		   <any-phonetize2>,<any-phonetize3>--0301|<any-smallcaps>+dectrl]
+DeadKey_Map0338=		ByPairs[ !‼ 0020∕ {⌈ }⌉ [⌊ ]⌋ ](Face(Latin))	ByPairs[ [⧘ ]⧙ {⧚ }⧛ |⦙ \⦚](FlipLayers(Latin))	
+DeadKey_Map0338=		Mutate2Self
#   =============================================================
+Named_DIA_Recipe__ring_dot=	\\⋵ꞃ,\\⧔⧕[5],\Ẏọ,00b0|0323+<subst-Vietnamese>|||
+Named_DIA_Recipe__ring_dot=		\⊛,!\⊆⊇,0307,0323|0328+<subst-Macron>|
+Named_DIA_Recipe__ring_dot=		<any-round>,<any-ring-!above>,<any-dot>,<any-dots>,<any-dotless>,<any-other-circle>,
+Named_DIA_Recipe__ring_dot=			<any-circled>,<any-circled>+<reveal-substkey>,<any-adddot>,-<any-amplify>,
+Named_DIA_Recipe__ring_dot=			<any-black>--<any-amplify>|<any-insular>,<any-equal>+<any-amplify>
# ring above 00b0: combine with dotabove 0307 dotbelow 0323 
# (only WÊ miss dot below, AUY miss dot above: Ȧ is Livonian and phonetic; U is not precomposed; Ẉ - WHERE???) ; <any-jot> does not add anything useful now...
# Ẏ (useful WHERE???) obscures Vietnamese Ỵ, [any-dots does not add anything...]; ⋵ obscures ⦑
+DeadKey_Map00b0=	PrefixDocs[Ring above, dot above/below/dotless, rounded {AND: circled, amplified, insular} — overflows to/from the column on right]
+DeadKey_Map00b0=	Mutate[+\\⊙⊚[.],<NAMED-ring-dot>||||<circle>,<circle>+lc+dectrl] Mutate2Self
#
# cedilla 0327(00b8) and ogonek 0328, comma below 0326 (precombined only on SsTt); [ᵅ obscures ⦷; let it...; Ꞃꞃ obscures ṛ]
+DeadKey_Map00b8=	PrefixDocs[Cedilla, ogonek, comma below {AND: visigothic/greekize/doubled-letters, whited mogrified} — overflows to/from the column on left]
+DeadKey_Map00b8=	ByPairs[dƍ](FlipLayers(Latin))	
+DeadKey_Map00b8=	Mutate[0328,0327,0326|<any-comma>|<any-visigothic>|<any-greekize>,<any-doubleletter>||||<NAMED-ring-dot>||||
+DeadKey_Map00b8=		<any-whiten>+<any-unsharpen>,<any-whiten>+<any-sharpen>,<any-whiten>+<any-round>,<circle>+dectrl]
+DeadKey_Map00b8=	ByPairs[j℩](FlipLayers(Latin))	Mutate2Self
#     <any-comma> picks up digits with comma which are above 0xffff - better make it last
#
#   =============================================================
+Named_DIA_Recipe__acute=	\\˝ᶂ,\\Ǘ[u],\⋄,00b4|030b--00b4,00b4+031b--0300|||
+Named_DIA_Recipe__acute=		<pseudo-hook>,<any-retroflex-hook>--0301,<any-hook>+<any-calculated>,
+Named_DIA_Recipe__acute=			<any-fishhook>+<any-calculated>,<any-hook-!above>,<any-fishhook>,<pseudo-tail>,
+Named_DIA_Recipe__acute=			<any-leg>,<any-tail>,<pseudo-curl>,<any-apostrophe>,<any-tick>,<any-sharpen>,
+Named_DIA_Recipe__acute=			<any-addright>,<any-rightwards>,<any-right-arrow>|031b,<any-african>
# combine acute 00b4 and hooks/tails/curls and horn 031b	(double acute=030b/2dd - protect against '' --> "; Ǘ is accessible otherwise, hides Ủ)
+DeadKey_Map00b4=	PrefixDocs[Acute [+ on horn], sharpen, add on right {AND: hooks, tail/leg/curl, turned} — overflows to/from the column on right]
+DeadKey_Map00b4=	Mutate[+<NAMED-acute>|<any-tailless>+<any-greekize>|<any-turned>]	Mutate2Self
#
# Do not need 00b4+<subst-Vietnamese> ???
#
# double grave 030f, grave 0060/02cb/0300; append reversed list for acute (horn=031b)	
# (tnvz have 3 type of hooks attached; the middle one [palatal] on nz are not reached ƫᶇᶌᶎ)
# Ǜ would get in the way of Vietnamese Ư (it could be available elsewhere, but there it is also penalized...)
+DeadKey_Map02cb=	PrefixDocs[Grave, unsharpen, squared, add on left {AND: reversed} — overflows to/from the column on left]
+DeadKey_Map02cb=	Mutate[\\Ǜ[u],\\⧆⌼,\〙〘⊠∺,02cb|030f--0300,02cb+031b--0301,031b--00a8|
+DeadKey_Map02cb=		<any-unsharpen>,<any-calculated-squared>,<any-addleft>,<any-leftwards>,<any-left-arrow>||||
+DeadKey_Map02cb=		<NAMED-acute>||||<any-reversed>]
+DeadKey_Map02cb=	    Mutate[<any-smallcaps>](Layers(Greek+Empty))	Mutate2Self
#|<any-reversed>
#
#   =============================================================
# ; <any-overbar>--<any-manual-turnaround> to symmetrize ∈∋.
+Named_DIA_Recipe__hat=	\\ı≈˜〚〛₡⍩⍚ʕ,\⍊⍑⟘¡⩞▫◈⧈⟞ᴎ,!\\⨌,02c6|||
+Named_DIA_Recipe__hat=		<pseudo-smallcaps>,<any-amplify>,<any-whiten>,<any-fake-white>,<any-fake-black>,
+Named_DIA_Recipe__hat=		<any-calculated-!operator-!squared-!circled-!african-!big-!large-!n-ary>,-<any-operator>,
+Named_DIA_Recipe__hat=		<any-fake-black>--<any-operator>,<any-loop>,<any-upturn>,<any-descender>,<any-underbar>,
+Named_DIA_Recipe__hat=		<any-overbar>--<any-manual-turnaround>,<any-paleo>,<any-fishhook>|
+Named_DIA_Recipe__hat=	     <any-inverted>+<any-phonetized>,<any-dot>+<any-reversed>,uc+<any-dot>+<any-reversed>+lc
# Hat:  (if both smallcaps and turned/etc defined in the same Unicode version, prefer smallcaps) [loop/upturn not visible]
+DeadKey_Map02c6=	PrefixDocs[Hat, Amplify, Whiten, Paleo, “other” mogrify {AND: smallcaps, loop/upturn/descender/bar/fishhook/turnaround/inverted-phonetic/dot-reversed} — overflows to/from the column on right]
+DeadKey_Map02c6=	ByPairs[02c6.0302]	Mutate[+<NAMED-hat>|||<any-script>]
+DeadKey_Map02c6=	ByPairs[lɮ](FlipLayers)	Mutate2Self
#
# 0303 tilde
#	(For the purpose of double accents, grave 0300 is considered equivalent to horn 031b or hat 02c6, ring 00b0 to breve 02d8/0306, with-stroke to horn)
+DeadKey_Map02dc=	PrefixDocs[Tilde [+ subst-Vietnamese] — overflows to/from the column on left]
+DeadKey_Map02dc=	Mutate[\\∼∽,\\≋[`],02dc|02dc+<subst-Vietnamese>,<any-tilde>,<any-equivalent>,<any-addtilde>|||
+DeadKey_Map02dc=		\\∿∽⍭[`],<NAMED-hat>]
+DeadKey_Map02dc=	Mutate2Self
# adding <any-turnaround> breaks more than it adds.   \\∽[˜] does not work, since [**] acts BEFORE propagation to AltGr... ⍩ hurts ⩾
#
+TableSummaryAddHTML=	The Hebrew map, 2 satellite Cyrillic (extra + titlo) and 4 satellite Greek maps (3 polytonic, 1 Coptic+extra) are in the report for Cyrillic personality.  (Slightly mutiliated by ъЪёЁ-mirroring.)  In the popups for the column headers, the occasional=tertiary meanings of the prefix are in braces.
#
[faces/CyrillicPhonetic]
#
@layers=Russian-Base,	Id(Cyrillic-AltGr)	Id(Add_AltGr)
BaseLayer=US-Base
LinkFace=Latin
#
MetaData_Index=1
#
faceDeadKeys= 	́	҃  £	Ɯ	ĸ
ExportDeadKeys=	́	҃
#
@extra_report_DeadChar=	012e
#
# 00a0.Ё is required with v0.10 ???!!!  (deadifies double AltGr-SPACE - probably needed due to ъЪёЁ-mirroring
#					# Now defined via ByPairsPrefix: ,	0138.э,	0138.ш,	0138.щ,	0138.ю
@faceDeadKeys2= 00a0.Ё
#		=> 0483
@LayoutTable_add_double_prefix_keys=	0192.э,	0192.ш,	0192.щ,	0192.ю
#
# Pressing AltGr-| produces |; with the setting below, pressing SWITCH AltGr-| produces the expected ¦
# Otherwise: the keys on OEM_102 (the SECOND \|) (which produce \| when both on Cyrillic and Latin) 
# would be prefered, and SWITCH AltGr-| would be resolved as "map | to Latin", and would produce |.
#						002c = ,
# Prefering both picks 2nd from the end (2nd of 3 for Ъ,ъ) - but picking the third makes layout nicer!
@char2key_prefer_first=\,|,.,002c,£,0301
@char2key_prefer_last=Ё,Ъ,ё,ъ,00a0
#
# (Ё would be mapped to Е if we do not specify it explicitly:)
+DeadKey_InvMap0000=	ByPairs[0192.202f Ё.0483]
+DeadKey_InvMap0000=	HTML_classes[C=cyr,may-guess,всыхѣєә,C1=cyr,special,ёъ,C0,need-learn,ючяшщэьжёъЁЪ,C,need-learn,ѓј]
+DeadKey_InvMap0000=	HTML_classes[K,from_nw,ѓ,K,pure,ѓ]
#                   Chaining makes sense if Flip_AltGr_Key is on AltGr key (repeating will reach inverted faces of:)
@chainAltGr=0192,0301,0138,0483
#@Explicit_AltGr_Invert=0192,03a6
+PrefixChains=0192,0192,012e,0301,0338,¨,⍽
+PrefixChains=0138,0138,019c,£,03e2,␣
#
+DeadKey_Map0192=	PrefixDocs[Greek (AltGr=tonos/final/symbol etc), “Ripe Keys”, Subscript digits/symbols, dashes]
+DeadKey_Map0192=	Face(CGreekRipeMax)	Face(Add_Ripe1)
#
#				ĸ: ↹⇤ 0009⇥
+DeadKey_Map0138=	PrefixDocs[Latin, Superscript digits/symbols, “Green Keys”]
+DeadKey_Map0138=	Face(CLatinGreenMax)	Face(Add_Green1)
#
###+DeadKey_Map0192=	PrefixDocs[Greek (AltGr=tonos/final/symbol etc), Superscript digits/symbols, “Green Keys”]
###+DeadKey_Map0192=	Face(CGreekGreenMax)	Face(Add_Ripe1)
#
#				ĸ: ↹⇤ 0009⇥
###+DeadKey_Map0138=	PrefixDocs[Latin, “Ripe Keys”, Subscript digits/symbols, dashes]
###+DeadKey_Map0138=	InheritPrefixKeys[Face(Latin)](Face(LatinRipeMax))	Face(Add_Green1)
#
#DeadKey_InvMap0192=	ByPairs[0020.00a0 0192.2007]
#
+DeadKey_Map0301_0=	PrefixDocs[“Bizarre” Cyrillic, fractions {AND: “other” iconic control-key symbols}]	
+DeadKey_Map0301_0=	HTML_classes[k=cyr2,to_w,=g]
+DeadKey_Map0301_0=	HTML_classes[C,need-learn,ѐѝӹӳӛӕќѹꙋꙟԛꙏҁԣ,C,may-guess,ҽҿѽүұӧғӻӑԋ,K,from_w,ԣ]	Face(Add_Ripe3)
+DeadKey_Map0301_0=	Id(Cyrillic-II)		FromTo[Digits,Denominators1](LinkFace)	FromTo[Digits,Numerators1](FlipShift(US-Base))
# This ByPairs is tricky: we want to translate AltGr-Shift-Space; one might think one must use the mapping of non-AltGr layer???
+DeadKey_Map0301_1=	Id(Cyrillic-II-AltGr)	FromTo[Digits,Denominators2](US-Base)	
+DeadKey_Map0301_1=	FromTo[Digits,Numerators2](FromToFlipShift[US-Base,US-Base](US-Base))	ByPairs[$⅘](US-Base)	Face(Add_Ripe3)
#				0483 is ҃ titlo, A66F is combining vzmet, 2df5 is combining ST, 2df8 is combining DJERV (which we do not have non-combining???)
#
+DeadKey_Map0483=	PrefixDocs[Cyrillic titlo-forms, power-of-10 multipliers {AND: “exotic” Cyrillic}] 
+DeadKey_Map0483=	HTML_classes[k=cyr3,to_w,=,C,need-learn,ꚑꚉꙛꙅԑꙉꙕӊꚏꚅԙӿҝԟꚕꚓꙙꙝҍꙓ,C,may-guess,ԅԇꙁꙃҹⷵⷸᵸᴫ]
+DeadKey_Map0483=		Mutate[<pseudo-calculated-combining>](Face(CyrillicPhonetic))	
+DeadKey_Map0483=		Mutate[<pseudo-calculated-combining>](FlipShift(Layers(Cyrillic-II+Cyrillic-II-AltGr)))	
+DeadKey_Map0483=		FromTo[Digits,CyrPowersOfTen](Face(Latin))	ByPairs[-A66F S.2df5 D.2df8 Nᵸ Lᴫ](Face(Latin))	
+DeadKey_Map0483=		Layers(Cyrillic-ExtraExtra+Cyrillic-Extra)	HTML_classes[C,special,ꙩꙫꙭꙮ]
+DeadKey_Map0483= 		Mutate[<circle>+dectrl]
#
#DeadKey_AddMap0338=	Face(Add_Ripe3)
#
+TableSummaryAddHTML=	The satellite maps for Latin (available here on double-prefix-keys) are in the report for Latin personality.  (In this personality, they are going to be slightly mutiliated by ъЪёЁ-mirroring.)  In the popups for the column headers, the occasional=tertiary meanings of the prefix are in braces.
#
[faces/GreekPoly]
#
@layers=Id(Greek)	ByPairsPrefix[\0342 [0314 ]0313 `03e2](Id(US_Base_Compose))	ByPairsInvPrefix[|0342 {0314 }0313 ~03e2](Id(US_Base_Compose))
@layers=Id(Greek_and_More_1)    ByPairs[Vϔ 6͵ ^ʹ 002c« .»](Id(US-Base))		Id(Add_AltGr)
#	Id(USLatin-AltGr)
BaseLayer=US-Base
LinkFace=Latin
#
MetaData_Index=2
#
faceDeadKeys= 	0342 0314 0313 03e2  £	ĸ
ExportDeadKeys=	0342 0314 0313 03e2
#
# Prefering both picks 2nd from the end (2nd of 3 for Ъ,ъ) - but picking the third makes layout nicer!
@char2key_prefer_first=\,|,.,002c,·,0342,£
@char2key_prefer_last=00a0
#
# (Ё would be mapped to Е if we do not specify it explicitly:)
+DeadKey_InvMap0000=	ByPairs[0192.202f]
#+DeadKey_InvMap0000=	HTML_classes[C=cyr,may-guess,всыхѣєә,C1=cyr,special,ёъ,C0,need-learn,ючяшщэьжёъЁЪ,C,need-learn,ѓј]
#+DeadKey_InvMap0000=	HTML_classes[K,from_nw,ѓ,K,pure,ѓ]
#                   Chaining makes sense if Flip_AltGr_Key is on AltGr key (repeating will reach inverted faces of:)
@chainAltGr=0192,0138
+PrefixChains=0192,0192,012e,0301,0338,¨,⍽
+PrefixChains=0138,0138,019c,£,03e2,␣
#
@extra_report_DeadChar=	012e
#				ĸ: ↹⇤ 0009⇥
+DeadKey_Map0138=	PrefixDocs[Latin, Superscript digits/symbols, “Green Keys”]
+DeadKey_Map0138=	Face(GLatinGreenMax)	Face(Add_Green1)
#
+DeadKey_Map0192=	PrefixDocs[Cyrillic, “Ripe Keys”, Subscript digits/symbols, dashes]
+DeadKey_Map0192=	InheritPrefixKeys[Face(CyrillicPhonetic)](Face(GCyrillicRipeMax))	Face(Add_Ripe1)
+DeadKey_Map0192=	HTML_classes[C=cyr,may-guess,всыхѣєә,C0,need-learn,ючяшщэьжёъЁЪ]
#
[faces/Hebrew]
#
@layers=	Id(Hebrew-Base)	Id(US-Base),	Id(Hebrew-AltGr)	Id(Add_AltGr)
BaseLayer=US-Base
LinkFace=Latin
#
MetaData_Index=3
#
# Prefering both picks 2nd from the end (2nd of 3 for Ъ,ъ) - but picking the third makes layout nicer!
@char2key_prefer_first=\,|,.,002c,£
@char2key_prefer_last=00a0
#
# (Ё would be mapped to Е if we do not specify it explicitly:)
+DeadKey_InvMap0000=	ByPairs[0192.202f]
+DeadKey_InvMap0000=	HTML_classes[k=heb0,from_w,j,k,red-bg,qazol,k,green-bg,edrv,k,blue-bg,uj]
+DeadKey_InvMap0000=	HTML_classes[c0,may-guess,uTwRGH,c0,need-learn,jVBY,C0,need-learn, ֿ ׇ,c0,special,aeUio]
+DeadKey_InvMap0000=	HTML_classes[c1=heb1,very-special,`~WPBkh;:{}\|/005b''"",c1=heb1,special,qrRtTIpSDgGjzZnmM<]
+DeadKey_InvMap0000=	HTML_classes[k=heb1,from_w,1hj>,c=heb1,need-learn,cC7!@HJ>?K,c=heb1,may-guess,xXfFbswaAeEdVyYuUioOlLv-+.002c]
+DeadKey_InvMap0000=	HTML_classes[k=heb1,to_nw,<,k=heb1,pure,<]
#                   Chaining makes sense if Flip_AltGr_Key is on AltGr key (repeating will reach inverted faces of:)
@chainAltGr=0192,0138
+PrefixChains=0192,0192,012e,0301,0338,¨,⍽
+PrefixChains=0138,0138,019c,£,03e2,␣
#
@extra_report_DeadChar=	012e
#				ĸ: ↹⇤ 0009⇥
+DeadKey_Map0138=	PrefixDocs[Latin, Superscript digits/symbols, “Green Keys”]
+DeadKey_Map0138=	Face(HLatinGreenMax)	Face(Add_Green1)
#
+DeadKey_Map012e=	PrefixDocs[Cyrillic, “Ripe Keys”, Subscript digits/symbols, dashes]
+DeadKey_Map012e=	InheritPrefixKeys[Face(CyrillicPhonetic)](Face(CyrillicRipeMax))	Face(SpecialKey_Images)
+DeadKey_Map012e=	HTML_classes[C=cyr,may-guess,всыхѣєә,C0,need-learn,ючяшщэьжёъЁЪ]	Face(Add_2Ripe)
#
+DeadKey_Map0192=	PrefixDocs[Greek (AltGr=tonos/final/symbol etc), Subscript digits/symbols, “Green Keys”]
+DeadKey_Map0192=	Face(HGreekRipeMax)	Face(Add_Ripe1)
#
####[DEADKEYS/eurkey/1/1]
#####
####klc_filename=eurkey-std.klc
#####
#####    Now is not needed at all
#####
[visual -> DEADKEYS/la_ru]
#
# Can be omitted now: (actually, it should better be omitted since we use PrefixDocs now)
#
KEYNAME_DEAD

#03a9	"GREEK CAPITAL LETTER OMEGA"

[visual -> DEADKEYS/business]

DEADKEY	00A4

0041	20b3	// A -> ₳
0061	060b	// a -> ؋
0042	0e3f	// B -> ฿
0062	09f3	// b -> ৳
0043	00a2	// C -> ¢
// 0063	20a1	// c -> ₡
0063	00a9	// c -> ©
0044	20af	// D -> ₯
0064	20ab	// d -> ₫
0045	20a0	// E -> ₠
0065	20ac	// e -> €
0046	20a3	// F -> ₣
0066	0192	// f -> ƒ
0047	20b2	// G -> ₲
0067	0af1	// g -> ૱
0048	20b4	// H -> ₴
0068	20b4	// h -> ₴
0049	fdfc	// I -> ﷼
0069	17db	// i -> ៛
004b	20ad	// K -> ₭
006b	20ad	// k -> ₭
004c	00a3	// L -> £
006c	20ba	// l -> ₺	TURKISH LIRA SIGN [6.2]
// 004d	2133	// M -> ℳ
004d	20BC	// M -> ₼	MANAT SIGN
006d	20a5	// m -> ₥
004e	20a6	// N -> ₦
006e	a838	// n -> ꠸	NORTH INDIC RUPEE MARK [5.2]
0050	20b1	// P -> ₱
0070	2117	// p -> ℗
// 0052	20b9	// R -> ₹
0052	20BD	// R -> ₽	RUBLE SIGN
0072	00ae	// r -> ®
0053	20aa	// S -> ₪
0073	2120	// s -> ℠
0054	20b8	// T -> ₸
0074	2122	// t -> ™
0057	20a9	// W -> ₩
0077	20a9	// w -> ₩
0059	00a5	// Y -> ¥
0079	5143	// y -> 元
00a0	00a4	//   -> ¤
00a4	00a4	// ¤ -> ¤
//0024	00a4	// $ -> ¤
0020	00a4	//   -> ¤

DEADKEY	00A3

// 0043	20a2	// C -> ₢ (AltGr-inv)
0063	20b5	// c -> ₵ (AltGr-inv)
// ®™℗℠
0043	20a1	// C -> ₡
0042	09f2	// B -> ৲ (AltGr-inv)	BENGALI RUPEE MARK	Í
0062	20a2	// b -> ₢ (AltGr-inv)				í
0044	058F	// D -> ֏ (AltGr-inv) 	ARMENIAN DRAM SIGN	Ð
0064	058F	// d -> ֏ (AltGr-inv) 	ARMENIAN DRAM SIGN	ð
0047	09fB	// G -> ৾ (AltGr-inv)	BENGALI GANDA MARK	É
0067	09fB	// g -> ৾ (AltGr-inv)	BENGALI GANDA MARK	é
0069	20b6	// i -> ₶ (AltGr-inv) LIVRE TOURNOIS SIGN [5.2] ij
0049	20b6	// I -> ₶ (AltGr-inv) LIVRE TOURNOIS SIGN [5.2] IJ
004c	10da	// L -> ლ	GEORGIAN LETTER LAS [Georgian; Georgian; 1.1] Ø // Wikipedia article on Lari does not include ლ
// 006c	20b6	// l -> ₶ (AltGr-inv) LIVRE TOURNOIS SIGN [5.2]
006c	20a4	// l -> ₤ (AltGr-inv)				ø
004e	a837	// N -> ꠷ (AltGr-inv) NORTH INDIC PLACEHOLDER MARK	Ñ
006e	a837	// n -> ꠷ (AltGr-inv) NORTH INDIC PLACEHOLDER MARK	ñ
0050	20a7	// P -> ₧ (AltGr-inv)	[obsolete Spanish]	œ
0070	20b0	// p -> ₰
// 0052	20a2	// R -> ₢ (AltGr-inv)				ý
// 0052	211b	// R -> ℛ (AltGr-inv)	SCRIPT CAPITAL R	Ý
0072	20b9	// r -> ₹ (AltGr-inv) new indian RUPEE sign
0052	20a8	// R -> ₨ (AltGr-inv) RUPEE sign
// 0053	0024	// S -> $ (AltGr-inv)				§
0053	0024	// S -> $ (AltGr-inv)				ß
0073	20b7	// s -> ₷	SPESMILO SIGN [5.2]
// 0054	0bf9	// T -> ௹ (AltGr-inv)				Þ
0074	20ae	// t -> ₮
0054	0bf9	// T -> ௹ (AltGr-inv)				þ
// Put CJK yens to AltGr-y/Y	[Order on Wikipedia: yen (円/圓), yuan (元/圆)]
0059	5713	// Y -> 圓 (AltGr-inv)	CJK yen-2		Ÿ
0079	5186	// y -> 円 (AltGr-inv)	CJK yen-1		ÿ
// Put (CJK) yuans to AltGr-u/U	[Order on Wikipedia: yen (円/圓), yuan (元/圆)]
0055	5706	// U -> 圆	yuan-2
0075	5143	// u -> 元	yuan-1

[visual -> RECT/keypad]
@rect_rows_cols=4,4 
@rect_horizontal_counts=13,10,12,12
@layer_names=Base-Keypad,BoxDraw11,BoxDraw22,BoxDraw12,BoxDraw21,BoxDrawBB,BoxDraw1B,BoxDrawB1,BBoxDrawOnH,BBoxDrawOnV,BBoxDrawOnHV,BoxDrawOnBV,BoxDrawOnBH
@layer_names=Arrows,Arrows2,ArrowsBlack,ArrowsPlay,ArrowsWhite,Arrows3,HookArrows,ArrowsZigZag,ArrowsMapsTo,ArrowsToBar
@layer_names=ArrowsDashedCurved,ArrowsArcs,WhiteFrame,BlackFrame,Arrows4andCircles,ArrowsShortArcs,RectArr,RectArrOther,PartCircles,PartBlackCircles,ArrowsDtip,ArrowsDoubled
@layer_names=WhiteTriang,WhiteTriangSmall,BlackTrian,BlackTrianSmall,RoundDirections,RoundDirectionsPlus,PartSquares,Arcs,ArrowsVStroke,ArrowDStroked,CrossedArrows,ArrowAngles
empty=!
COLgap=1
ROWgap=2
# Arrows: Mid: Hor/Ver Extension, bottom row: LeftRight, LongLeftRight-or-LongRight (or Mirrored LR), UpDown
#[ AltGr +1=Dbl=Mnu +2=FlipRight=rCtrl]  [Bold=removeAltGr]	(rCtrl needs →lAlt+rCtrl)
789/	┌┬┐!	╔╦╗!	╓╥╖!	╒╤╕!	┏┳┓!	┎┰┒!	┍┯┑!	┲!┱!	┢╈┪!	╆╽╅!	┞╀┦!	┭!┮!
456*	├┼┤!	╠╬╣!	╟╫╢!	╞╪╡!	┣╋┫!	┠╂┨!	┝┿┥!	╊▧╉!	!▨!!	╼▦╾!	!!!!	┽!┾!
123-	└┴┘!	╚╩╝!	╙╨╜!	╘╧╛!	┗┻┛!	┖┸┚!	┕┷┙!	┺!┹!	┡╇┩!	╄╿╃!	┟╁┧!	┵!┶!
0.↲+	─│!!	═║!!	╶╴!!	╷╵!!	━┃!!	╻╹!!	╺╸!!	╼╾!!	╽╿!!	!!!!	!!!!	!!!!
#    Mnu	  Mnu+Ctrl	 AltGr+rCtrl	 AltGr+Mnu	 AltGr+Mnu+rCtrl
#   Base	    Bold	  Bbb=White	   Script	   Fraktur
↖↑↗÷	⇖⇑⇗∕	⬉⬆⬈➗	⏮⏫⏭!	⬁⇧⬀!	⬑⤊⬏!	⤣!⤤!	↜!↝╱	↰↥↱✘	⬑⤒⬏☐
←⎯→×	⇐⏐⇒⨯	⬅●⮕✖	⏪⏯⏩!	⇦○⇨!	⇚◯⇛!	↩!↪!	⇜╳⇝╲	↤!↦✔	⇤!⇥!
↙↓↘‒	⇙⇓⇘−	⬋⬇⬊➖	⇽⏬⇾!	⬃⇩⬂!	⬐⤋⬎!	⤦!⤥!	╱↯╲⌁	↲↧↳✗	⬐⤓⬎☒
↔⟷↕﬩	⇔⟺⇕∑	⬌➡⬍➕	⇿⦿!!	⬄⟾⇳!	!!!⧻	⥹⥻⨗!	⟿⬳⦚⍼	↹⟼↨✓	↹!↨☑
#    (All: 2[Shift] × 2→[Ctrl] × 2↓[Mnu];   out of 4 Shift-Groups, the base one is disabled)
#  Shapes on Greek=lAlt+lCtrl	Mathop on lCtrl=Bold↕-MathBizarre  Doubled/Crossed on lAlt=SS
⤎⇡⤏⋰	↻⥀↺⋱	▗▄▖!	▛▀▜!	⥀⟰⥁⨸	⤵⤸⤴!	⌈⊓⌉⧄	⌜∏⌝⧅	◴◚◷!	!◓◔!	⇱↟!!	↫⇈↬!
⇠◌⇢※	↜☺↝!	▐█▌!	▌▣▐!	⭅⦾⭆⊛	⤺!⤻!	⊏□⊐⊠	⊑◽⊒⧆	!⦾➲!	◐⦿◑!	↞!↠!	⇇!⇉!
⤌⇣⤍⋯	↶⥁↷⧿	▝▀▘!	▙▄▟!	↻⟱↺⊖	⤶⤹⤷⤼	⌊⊔⌋⊟	⌞∐⌟▫	◵◛◶!	!◒◕!	!↡⇲!	↩⇊↪!
⤑⬸⋮⁜	↭⤳!⧾	▞▚↵!	░▒▓!	➲⥰⊜⊕	⤳⤿⤾⤽	▭⊡▯⊞	■◾⧈◻	!⊚!!	!!!!	!!⥉!	⇄⇆⇅⧺
#
# These blocks = block on top + Mnu
◸△◹⨞	⌌▵⌍!	◤▲◥⍁	◭▴◮!	◜∩◝⊘	╭⋂╮⦸	◩⬒⬔⧄	◴⯊◷⧅	⤆⤉⤇!	↸⇞!!	⤲⤧⤱!	⦭⦬⦨!
◁◇▷⨻	◃⋄▹!	◀◆▶⍂	◂⬩▸⸋	⊂⥀⊃⊗	⊆⥁⊇⨂	◧▣◨⧅	◖⚪◗⧈	⇷!⇸!	⇺❍⇻!	⤪⤫⤨!	⦩⦽⦪!
◺▽◿⨺	⌎▿⌏▫	◣▼◢!	⧨▾⧩🞗	◟∪◞⊖	╰⋃╯⊜	⬕⬓◪▪	◵⯋◶◠	⤂⤈⤃!	↵⇟↴⧺	⤮⤩⤭!	⦫⦯⦮!
▭◬▯⨹	!⎊!◻	▬⟁▮⨨	!⬚!⬥	⊝⊙⦶⊕	⎉⨀⦷⨁	▬⸋▮◼	⌒⌓⧇◡	⇹⤄!!	⇼!!⧻	⤰⤬⤯!	∅⌀!!
# Elementary-school minus is FIGURE DASH; for arrow-angles, clockwise are H/V, ccw are diag.
# Usurp diagonals: dashed, Double/Triple arrows, Arrows with double-bar, Zigzag
# * is sometimes opposite of /, i.e., \.  We abuse .Del often…   ※ near ⁜???	☺
[visual -> KBD/Digits]
#
# For fractions, we look for fractions with minimal denominator/numerator which contain the given digit in numerator/denominator.  We take the first one and the second one from the list.
# Note that ⅗, ⅝, ⅞ do not appear in the lists via denominators; and ⅓, ¼, ⅕, ⅙, ⅛ do not appear in the lists via numerators.
# All Unicoded fractions appear in these lists.  So each one can be entered via a DeadKeyMap.
#
#
visual_rowcount=16
@visual_per_row_counts=1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1
visual_prefixes= <* *<> < +
in_key_separator=/
prefix_repeat=3
in_key_separator2=‼
#
# Note that we no longer use the tables for super/subscript, and generate them operatically
@layer_names=Zodiak,Numerators2,Numerators1,Digits,OverDigits,Denominators1,Denominators2
@layer_names=Super,SuperExtraLetters,Sub,SubExtraLetters,CyrPowersOfTen,cp437-Start,DashesEtc,FractionEmSpacesEtc
@layer_names=DashesEtc0,FractionEmSpacesEtc0
# ↉ 0/3  ⅐ 1/7 ⅑ 1/9
	♈	♉	♊	♋	♌	♍	♎	♏	♐	♑	♒	♓	--	--	--	--	--	--	--
<<<	½	⅖	⅗	--	⅝	--	--	--	--	--	--	--	--	--	--	--	--	--	--
***	⅟	⅔	¾	⅘	⅚	--	⅞	--	--	↉	--	--	--	--	--	--	--	--	--
	1/!	2/@	3/#	4/$	5/%	6/^	7/&	8/*	9/(	0/)	--	--	--	--	--	--	--	--	--
***	⅒	½	⅓	¼	⅕	⅙	⅐	⅛	⅑	⅒	--	--	--	--	--	--	--	--	--
<<<	--	--	⅔	¾	⅖	⅚	--	⅜	--	--	--	--	--	--	--	--	--	--	--
>>>	¹	²	³	⁴	⁵	⁶	⁷	⁸	⁹	⁰	⁲	⁳	ⁱ	⁺	⁻	⁼	⁽	⁾	ⁿ
	--	--	--	--	--	--	--	--	--	--	--	--	i	+	-	=	(	)	n
<<<	₁	₂	₃	₄	₅	₆	₇	₈	₉	₀	₋	₌	₊	₍	₎	₏	--	--	--
	--	--	--	--	--	--	--	--	--	--	-	=	+	(	)	ə	--	--	--
+++	--	--	҂	 ⃝	 ҈	 ҉	꙰	꙱	꙲	--	--	--	--	--	--	--	--	--	--
	☺	☻	♥	♦	♣	♠	•	◘	○	◙	--	--	--	--	--	--	--	--	--
	‐ 	–	—	― 	⸏	⸓	⸎	⁃	‑	­	‒	‾	--	--	--	--	--	--	--
	2003	2002	2004	2005	2009	2006	2001	200a	205f	200b	2007	2008	--	--	--	--	--	--	--
	‐ 	200a—200a‼	—	― 	⸏	⸓	⸎	⁃	‑	‒	‑	‾	--	--	--	--	--	--	--
	2003	‼2009—2009 2004	2005	2009	2006	2001	200a	205f	200b	2007	2008	--	--	--	--	--	--	--
#	‐ 	‼2009—2009 —	― 	⸏	⸓	⸎	⁃	‑	‒	‑	‾	--	--	--	--	--	--	--
#	2003	‼200a—200a 2004	2005	2009	2006	205f	200a	2001	200b	2008	2007	--	--	--	--	--	--	--
#	--	--	--	--	--	--	--	--	--	--	--	--	--	--	--	--	--	--	--
#	--	--	--	--	--	--	--	--	--	--	--	--	--	--	--	--	--	--	--
# 4/18 --> 1/7; EM QUAD --> 1/9
#
# Most of the above are very optional now: Super and Sup are obsoleted by Mutate[<super>] etc
# combined with Select[] clauses.  Register mapping is not done yet (2011) but can be easily done.
#
[Diacritics_Limits]
# For debugging purposes only, to check correct reading of tables below (0th entry is for 0..3 combined; 1 for 1..3, 2: 2,3; 4,5,6: combined)
@ALL=5,4,0,0,10,10,10,10
# 0:tilde, 1:grave,quote, 2: quote
[Diacritics]
# Surrogate + 8bit + Modifiers, Modifiers below-or-opposite, Vertical (or Comma-like or Doubled or Dotlike or Rotated or letter-like) Modifiers, 
# Prime-like or Centered modifiers, Combining, Combining below-or-opposite, Vertical/plus-like/arrows and dotlike Combining, Combining for symbols
# ⎖ in prime-like apostrophe??? - is currently obscured…
/APOSTROPHE=		'´ʼʾˀˊ΄/ˏˌ/ˈˌˡ/ʹˑ/ ́ ̉ ̛ ̷ ̸ ́ ͗  ᷎  ᷄ ᷇ ᷁/ ̗ ̩  ̦  ̹  ͅ / ̍ ̓  ̓ ̕ ̩  /  ⃬  ⃐  ⃫  ⃬
/QUOTATION_MARK=	"¨˝˸ː΅/˶˵/ˮ/ʺ/ ̈ ̋ ̏ ̈́ ᷉ ᷈  ゙  /  ̤  ͈ / ̎  ͛   ͈ /  ⃛  ⃜  ⃨
/GRAVE_ACCENT=		`ˋʿˁˤ/ˎ/ʻʽ/˴˵/ ̀ ̀  ͑  ᷆  ᷅  ᷀ / ̖  ̜   ᷂ / ̒ ̔ /  ⃑  ⃭  ⃠  ⃥
#  Stopgap measure to preserve many flavors of grave (we moved ˵):
/DBL_GRAVE_ACCENT=	`ˋʿˁˤ˵/ˎ/ʻʽ/˴/ ̀ ̀  ͑  ᷆  ᷅  ᷀ / ̖  ̜   ᷂ / ̒ ̔ /  ⃑  ⃭  ⃠  ⃥
/CIRCUMFLEX_ACCENT=	^ˆ˄˟/˰/˪˫ꜛʳʴʵʶˣ// ̂ ̑  ͒  ͡   ̽  ͆  ᷍ / ̭ ̯   ᷼  ͓  ̪  ̼  ͎  ᷊ /  ̘  ̙   ͉  ̘  ͉ /  ⃟   ⃤  ⃧  ⃩ ⃰  ⃟ 
/BREVE=			˘ˇ˅/ˬ˯˽˾/˱˲˿ˠʸꜜ/˂˃/ ̆ ̌ ̐ ͝  ᷓ  ᷾   ͐  ᷌  ᷋  ᷃ / ̮ ̬ ͜    ̺  ̫ ͔  ͕ ͖ ᷿   /  ͍  ͢  /   ⃞   ⃢   ⃣ 
/DEGREE_SIGN=		°˚˙/˳/˙ˠʰʱʲˢʷᵊᶣ/˓˒/ ̊  ̇ ̣  ᷒  ゚ / ̣ ̥ ̤  ̻   ͙   ͚ / ̇ ͘  ̣ ̤ ͘ /   ⃝  ⃘
/TILDE=			~ ˜/˷/ⸯꙿ/˞/ ̃  ̴ ͂ ͊ ͋ ͌ ͠   ᷑  / ̰  ̧  ̨  ̡  ̢  ᷏  ᷐  ᷽  ᷽ / ̾ ̾ /  ⃗  ⃖  ⃯  ⃮  ⃕  ⃔ ⃙ ⃚ ⃡
/CEDILLA=		¸˛ͺ/˷/ⸯꙿ/˞/  ̧  ̨  ̡  ̢  ̰  ᷏  ᷐  ᷽  ᷽ /  ᷎  ̃  ̴ ͂ ͊ ͋ ͌ ͠   ᷑  / ̾ ̾ /   ⃗  ⃖ ⃯  ⃮  ⃕ ⃔ ⃙ ⃚ ⃡
/MACRON=		¯ˉ˹˺/ˍ˻˼‗/˭/˔˕˖˗/ ̄ ̅ ̵ ̶ ̿ ͞   ̚  / ̱  ̲  ̳ ͇ ͟   ̠  /  ͍   ̝  ̞  ̟  ̠  ̘  ̙   ͉ /  ⃒ ⃓ ⃦  ⃪  ⃡  ⃡  ⃗  ⃖  ⃯  ⃮
/SLASH=			⁄÷∕ / ˈˌ / / /  ̸  ̷  ̶  ̵ / /  ⃒  ⃓ /  ̸  ̷  ⃒   ⃓ ̶   ̵
#
# These are from "main blocks" of the modifiers and combining; plus Greek standalone diacritics: ͺ΄΅
# One of ˠ is obscured by vertical line with middle dot...  The Macron-\ 29F7 obscures ˭.
# Circled \ and | with middle dot obscure ˙ˠ.  ˙ duplicated (forward) to make accessible.  Also:  ̅
#  ̾ ̘  ̙  ͘  ͉  ͉  ᷽  combining chars are also duplicated.  Also:  ⃡  ⃗  ⃖ ⃯ ⃮  ⃬  ⃟ (for symbols).
# ʰʱʲˡˢʷ - from IPA.  The rest (and ʳʴʵʶʸ) are v1.1 letter modifiers.  (ˠ is in front to unobscure the rest.)
#
# Combining for symbols: arrows and round arrows -> ~; rectangular around: to ˘ .
#`´¨˜ˆˇ°¯	Harpoons are ordered as →, ←
# perl -C31 -wlne "next if /^#/; s(^/\w+=\s+)() or die; @t = split m((?<=.)/); print q(<tr><td>), join(q(</td><td>), @t), q(</td></tr>)" a1 > a1.html
[face_shortcuts]
l=Latin
c=CyrillicPhonetic
g=GreekPoly
h=Hebrew
b=US-Base