From 267a6fd221f50c66160e4fadef37593e8f151b61 Mon Sep 17 00:00:00 2001 From: Nikita Prokopov Date: Mon, 8 Jun 2020 01:53:13 +0200 Subject: [PATCH] Added `//=` `=//` `=//=` (closes #816) --- CHANGELOG.md | 3 +- FiraCode.glyphs | 268 ++++++++++++++++++++++++++++++++- clojure/fira_code/calt.clj | 5 + extras/showcases.txt | 1 + features/calt/equal_arrows.fea | 12 +- script/build_ttf | 8 +- 6 files changed, 285 insertions(+), 12 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index b6eedf5..9bca459 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,7 +11,8 @@ All notable changes to this project will be documented in this file. - Vertically-aligned colons, greater/less signs #980 #1061 - Make U+2388 Helm Symbol `⎈` single-width #1036 - Disable `=/` because of conflicts with paths `PATH=/...` #1056 -- Fixed STAT table in FiraCode-VF.ttf #1054 +- Fixed STAT table in FiraCode-VF.ttf #770 #1054 +- Added `//=` `=//` `=//=` #816 #### 4.0 (May 18, 2020) diff --git a/FiraCode.glyphs b/FiraCode.glyphs index e08154c..e5c4f27 100644 --- a/FiraCode.glyphs +++ b/FiraCode.glyphs @@ -1,11 +1,12 @@ { .appVersion = "1339"; DisplayStrings = ( -"/helmsymbol Cu" +"//=\012////=\012///slash_equal_start.seq \012/space/slash_slash_equal_start.seq \012/space/slash_slash_equal_end.seq \012/space/slash_slash_equal_middle.seq", +"/space/bar_bar_hyphen_start.seq \012/space/bar_hyphen_start.seq" ); classes = ( { -code = "A A-cy AE AEacute Aacute Abreve Abreve-cy Acircumflex Adieresis Adieresis-cy Agrave Aie-cy Aleutka-cy Alpha Alphadasia Alphadasiaoxia Alphadasiaoxiaprosgegrammeni Alphadasiaperispomeni Alphadasiaperispomeniprosgegrammeni Alphadasiaprosgegrammeni Alphadasiavaria Alphadasiavariaprosgegrammeni Alphamacron Alphaoxia Alphaprosgegrammeni Alphapsili Alphapsilioxia Alphapsilioxiaprosgegrammeni Alphapsiliperispomeni Alphapsiliperispomeniprosgegrammeni Alphapsiliprosgegrammeni Alphapsilivaria Alphapsilivariaprosgegrammeni Alphatonos Alphavaria Alphavrachy Amacron Aogonek Archaicsampi Aring Atilde B BdoubleStruck Be-cy Beta C CR Cacute Cacute.loclPLK Ccaron Ccedilla Ccircumflex Cdotaccent CdoubleStruck Che-cy Cheabkhasian-cy Chedescender-cy Chedescenderabkhasian-cy Chedieresis-cy Chekhakassian-cy Cheverticalstroke-cy Chi D Dcaron Dche-cy Dcroat De-cy Delta Digamma Dje-cy Dze-cy Dzeabkhasian-cy Dzhe-cy Dzzhe-cy E E-cy Eacute Ebreve Ecaron Ecircumflex Edieresis Edieresis-cy Edotaccent Ef-cy Egrave Eiotified-cy El-cy Eldescender-cy Elhook-cy Elmiddlehook-cy Eltail-cy Em-cy Emacron Emtail-cy En-cy EnLeftHook-cy Endescender-cy Eng Enghe-cy Enhook-cy Enmiddlehook-cy Entail-cy Eogonek Epsilon Epsilondasia Epsilondasiaoxia Epsilondasiavaria Epsilonoxia Epsilonpsili Epsilonpsilioxia Epsilonpsilivaria Epsilontonos Epsilonvaria Er-cy Ereversed-cy Ertick-cy Es-cy Esdescender-cy Eta Etadasia Etadasiaoxia Etadasiaoxiaprosgegrammeni Etadasiaperispomeni Etadasiaperispomeniprosgegrammeni Etadasiaprosgegrammeni Etadasiavaria Etadasiavariaprosgegrammeni Etaoxia Etaprosgegrammeni Etapsili Etapsilioxia Etapsilioxiaprosgegrammeni Etapsiliperispomeni Etapsiliperispomeniprosgegrammeni Etapsiliprosgegrammeni Etapsilivaria Etapsilivariaprosgegrammeni Etatonos Etavaria Eth F F.spacer Fita-cy G Gamma Gbreve Gcircumflex Gcommaaccent Gdotaccent Ge-cy Gedescender-cy Germandbls Gestrokehook-cy Ghemiddlehook-cy Ghestroke-cy Gheupturn-cy Gje-cy H H18543 H18551 H22073 Ha-cy Haabkhasian-cy Hadescender-cy Hahook-cy Hardsign-cy Hastroke-cy Hbar Hcircumflex HdoubleStruck Heta I I-cy IJ Ia-cy Iacute Ibreve Icircumflex Idieresis Idieresis-cy Idotaccent Ie-cy Iebreve-cy Iegrave-cy Igrave Ii-cy Iigrave-cy Iishort-cy Iishorttail-cy Imacron Imacron-cy Io-cy Iogonek Iota Iotadasia Iotadasiaoxia Iotadasiaperispomeni Iotadasiavaria Iotadieresis Iotamacron Iotaoxia Iotapsili Iotapsilioxia Iotapsiliperispomeni Iotapsilivaria Iotatonos Iotavaria Iotavrachy Itilde Iu-cy Izhitsa-cy Izhitsadblgrave-cy J Jcircumflex Je-cy K Ka-cy Kabashkir-cy Kadescender-cy Kahook-cy KaiSymbol Kappa Kastroke-cy Kaverticalstroke-cy Kcommaaccent Kje-cy Komide-cy Komidje-cy Komidzje-cy Komilje-cy Kominje-cy Komisje-cy Komitje-cy Komizje-cy Koppa KoppaArchaic Ksi-cy L LIG Lacute Lambda Lcaron Lcommaaccent Ldot Lha-cy Lje-cy Lslash M Mu N Nacute Nacute.loclPLK Ncaron Ncommaaccent NdoubleStruck Nje-cy Ntilde Nu O O-cy OE Oacute Oacute.loclPLK Obarred-cy Obarreddieresis-cy Obreve Ocircumflex Odieresis Odieresis-cy Ograve Ohungarumlaut Omacron Omega Omega-cy Omegadasia Omegadasiaoxia Omegadasiaoxiaprosgegrammeni Omegadasiaperispomeni Omegadasiaperispomeniprosgegrammeni Omegadasiaprosgegrammeni Omegadasiavaria Omegadasiavariaprosgegrammeni Omegaoxia Omegaprosgegrammeni Omegapsili Omegapsilioxia Omegapsilioxiaprosgegrammeni Omegapsiliperispomeni Omegapsiliperispomeniprosgegrammeni Omegapsiliprosgegrammeni Omegapsilivaria Omegapsilivariaprosgegrammeni Omegatonos Omegavaria Omicron Omicrondasia Omicrondasiaoxia Omicrondasiavaria Omicronoxia Omicronpsili Omicronpsilioxia Omicronpsilivaria Omicrontonos Omicronvaria Oslash Oslashacute Otilde P Palochka-cy Pamphyliandigamma PdoubleStruck Pe-cy Pedescender-cy Pemiddlehook-cy Phi Pi Psi Psi-cy Q Qa-cy QdoubleStruck R Racute Rcaron Rcommaaccent RdoubleStruck Reversedze-cy Rha-cy Rho Rhodasia S SF010000 SF020000 SF030000 SF040000 SF050000 SF060000 SF070000 SF080000 SF090000 SF100000 SF110000 SF190000 SF200000 SF210000 SF220000 SF230000 SF240000 SF250000 SF260000 SF270000 SF280000 SF360000 SF370000 SF380000 SF390000 SF400000 SF410000 SF420000 SF430000 SF440000 SF450000 SF460000 SF470000 SF480000 SF490000 SF500000 SF510000 SF520000 SF530000 SF540000 Sacute Sacute.loclPLK Sampi San Scaron Scedilla Schwa-cy Schwadieresis-cy Scircumflex Scommaaccent Semisoftsign-cy Sha-cy Shcha-cy Shha-cy Shhadescender-cy Sho Sigma SigmaLunateDottedReversedSymbol SigmaLunateDottedSymbol SigmaLunateReversedSymbol SigmaLunateSymbol Softsign-cy Stigma T T.spacer Tau Tbar Tcaron Tcedilla Tcommaaccent Te-cy Tedescender-cy Tetse-cy Theta ThetaSymbol Thorn Tse-cy Tshe-cy U U-cy Uacute Ubreve Ucircumflex Udieresis Udieresis-cy Ugrave Uhungarumlaut Uhungarumlaut-cy Uk-cy Umacron Umacron-cy Uogonek Upsilon UpsilonacutehookSymbol Upsilondasia Upsilondasiaoxia Upsilondasiaperispomeni Upsilondasiavaria Upsilondieresis UpsilondieresishookSymbol UpsilonhookSymbol Upsilonmacron Upsilonoxia Upsilontonos Upsilonvaria Upsilonvrachy Uring Ushort-cy Ustrait-cy Ustraitstroke-cy Utilde V Ve-cy W Wacute Wcircumflex Wdieresis We-cy Wgrave X Xi Y Yacute Yae-cy Yat-cy Ycircumflex Ydieresis Yeru-cy Yerudieresis-cy Ygrave Yi-cy Yot-greek Yusbig-cy Yusbigiotified-cy Yuslittle-cy Yuslittleiotified-cy Z Zacute Zacute.loclPLK Zcaron Zdotaccent ZdoubleStruck Ze-cy Zedescender-cy Zedieresis-cy Zeta Zhe-cy Zhebreve-cy Zhedescender-cy Zhedieresis-cy a a-cy aacute abreve abreve-cy acircumflex acknowledge-control acute acute.case acute.case.loclPLK acute.loclPLK acutecomb adieresis adieresis-cy ae aeacute afii00208 agrave aie-cy aleutka-cy alpha alphadasia alphadasiaoxia alphadasiaoxiaypogegrammeni alphadasiaperispomeni alphadasiaperispomeniypogegrammeni alphadasiavaria alphadasiavariaypogegrammeni alphadasiaypogegrammeni alphamacron alphaoxia alphaoxiaypogegrammeni alphaperispomeni alphaperispomeniypogegrammeni alphapsili alphapsilioxia alphapsilioxiaypogegrammeni alphapsiliperispomeni alphapsiliperispomeniypogegrammeni alphapsilivaria alphapsilivariaypogegrammeni alphapsiliypogegrammeni alphatonos alphavaria alphavariaypogegrammeni alphavrachy alphaypogegrammeni alternativekeysymbol amacron ampersand ampersand.before.ss03 ampersand.spacer ampersand.ss03 ampersand_ampersand.liga anoteleia anticlockwiseGappedCircleArrow aogonek apostrophemod approxequal archaicsampi aring arrowboth arrowdown arrowdownleft arrowdownright arrowdownwhite arrowleft arrowleftwhite arrowright arrowrightwhite arrowup arrowupdown arrowupleft arrowupright arrowupwhite asciicircum asciicircum.spacer asciicircum_equal.liga asciitilde asciitilde.spacer asciitilde_asciitilde.liga asciitilde_asciitilde_greater.liga asciitilde_at.liga asciitilde_greater.liga asciitilde_hyphen.liga assertion asterisk asterisk.lc asterisk.spacer asterisk_asterisk.liga asterisk_asterisk_asterisk.liga asterisk_greater.liga asterisk_slash.liga at at.spacer at.ss05 atilde b backslash backslash.spacer backslash.ss06 backslash.thick.ss06 backslash_slash.liga backspace-control ballotBox ballotBoxWithCheck ballotBoxWithX bar bar.spacer bar_bar.liga bar_bar_bar.liga bar_bar_bar_greater.liga bar_bar_equal_end.seq bar_bar_equal_middle.seq bar_bar_equal_start.seq bar_bar_greater.liga bar_bar_hyphen_end.seq bar_bar_hyphen_middle.seq bar_bar_hyphen_start.seq bar_braceright.liga bar_bracketright.liga bar_equal_end.seq bar_equal_middle.seq bar_equal_start.seq bar_greater.liga bar_hyphen_end.seq bar_hyphen_middle.seq bar_hyphen_start.seq bar_underscore_middle.seq be-cy because bell-control beta betaSymbol blackCircle blackDiamond blackLowerLeftTriangle blackLowerRightTriangle blackRightArrow blackUpperLeftTriangle blackUpperRightTriangle blackVerticalRect blank blankSymbol boxDownHeavyAndHorizontalLight boxDownHeavyAndLeftLight boxDownHeavyAndLeftUpLight boxDownHeavyAndRightLight boxDownHeavyAndRightUpLight boxDownHeavyAndUpHorizontalLight boxDownLightAndHorizontalHeavy boxDownLightAndLeftHeavy boxDownLightAndLeftUpHeavy boxDownLightAndRightHeavy boxDownLightAndRightUpHeavy boxDownLightAndUpHorizontalHeavy boxHeavyDoubleDashHorizontal boxHeavyDoubleDashVertical boxHeavyDown boxHeavyDownAndHorizontal boxHeavyDownAndLeft boxHeavyDownAndRight boxHeavyHorizontal boxHeavyLeft boxHeavyLeftAndLightRight boxHeavyQuadrupleDashHorizontal boxHeavyQuadrupleDashVertical boxHeavyRight boxHeavyTripleDashHorizontal boxHeavyTripleDashVertical boxHeavyUp boxHeavyUpAndHorizontal boxHeavyUpAndLeft boxHeavyUpAndLightDown boxHeavyUpAndRight boxHeavyVertical boxHeavyVerticalAndHorizontal boxHeavyVerticalAndLeft boxHeavyVerticalAndRight boxLeftDownHeavyAndRightUpLight boxLeftHeavyAndRightDownLight boxLeftHeavyAndRightUpLight boxLeftHeavyAndRightVerticalLight boxLeftLightAndRightDownHeavy boxLeftLightAndRightUpHeavy boxLeftLightAndRightVerticalHeavy boxLeftUpHeavyAndRightDownLight boxLightDiagonalCross boxLightDiagonalUpperLeftToLowerRight boxLightDiagonalUpperRightToLowerLeft boxLightDoubleDashHorizontal boxLightDoubleDashVertical boxLightDown boxLightLeft boxLightLeftAndHeavyRight boxLightQuadrupleDashHorizontal boxLightQuadrupleDashVertical boxLightRight boxLightTripleDashHorizontal boxLightTripleDashVertical boxLightUp boxLightUpAndHeavyDown boxRightDownHeavyAndLeftUpLight boxRightHeavyAndLeftDownLight boxRightHeavyAndLeftUpLight boxRightHeavyAndLeftVerticalLight boxRightLightAndLeftDownHeavy boxRightLightAndLeftUpHeavy boxRightLightAndLeftVerticalHeavy boxRightUpHeavyAndLeftDownLight boxUpHeavyAndDownHorizontalLight boxUpHeavyAndHorizontalLight boxUpHeavyAndLeftDownLight boxUpHeavyAndLeftLight boxUpHeavyAndRightDownLight boxUpHeavyAndRightLight boxUpLightAndDownHorizontalHeavy boxUpLightAndHorizontalHeavy boxUpLightAndLeftDownHeavy boxUpLightAndLeftHeavy boxUpLightAndRightDownHeavy boxUpLightAndRightHeavy boxVerticalHeavyAndHorizontalLight boxVerticalHeavyAndLeftLight boxVerticalHeavyAndRightLight boxVerticalLightAndHorizontalHeavy boxVerticalLightAndLeftHeavy boxVerticalLightAndRightHeavy braceleft braceleft.case braceleft.spacer braceleft_bar.liga braceright braceright.case braceright.spacer bracketleft bracketleft.case bracketleft.spacer bracketleft_bar.liga bracketright bracketright.case bracketright.spacer bracketright_numbersign.liga breve breve-cy breve-cy.case breve.case brevecomb brokenCircleNorthWestArrow brokenbar bullet bulletoperator bullseye c cacute cacute.loclPLK canadiansyllabicsa canadiansyllabicso cancel-control capslock caron caron.alt caron.case caroncomb carriageReturn-control ccaron ccedilla ccircumflex cdotaccent cedilla cedilla.case cedillacomb cent che-cy cheabkhasian-cy checkmark chedescender-cy chedescenderabkhasian-cy chedieresis-cy chekhakassian-cy cheverticalstroke-cy chi circumflex circumflex.case circumflexcomb clear clockwiseGappedCircleArrow club colon colon.center colon.spacer colon.uc colon_colon.liga colon_colon_colon.liga colon_colon_equal.liga colon_equal.liga colon_equal_middle.seq comma commaabovecomb commaaccent commaaccent.case commareversedabovecomb containsasmemberSmall control copyright cornerbracketleft cornerbracketleft.half cornerbracketright cornerbracketright.half crosshatchFillSquare curlybracketextension currency d dagger daggerdbl dasia dasiaoxia dasiaperispomeni dasiavaria dataLinkEscape-control dblgravecomb dblverticalbar dcaron dche-cy dcroat de-cy degree delete-control deleteFormTwo-control deleteLeftKey deleterightKey delta deviceControlFour-control deviceControlOne-control deviceControlThree-control deviceControlTwo-control diagonalcrosshatchFillSquare dialytikaoxia dialytikaperispomeni dialytikavaria diameterSign diamond dieresis dieresis.case dieresiscomb dieresistonos digamma divide divisionslash dje-cy dkshade doesnotforce doesnotprove dollar dollar.spacer dollar.ss04 dollar_greater.liga dollar_greater.liga.ss04 dotaccent dotaccent.case dotaccentcomb dotlessi dotlessj dottedlunatesigmasymbol doubleprimemod doubleverticalbardoublerightturnstile downArrowHead downBlackArrow downBlock downQuadrupleArrow drachma dze-cy dzeabkhasian-cy dzhe-cy dzzhe-cy e e-cy eacute earthTrigram ebreve ecaron ecircumflex edieresis edieresis-cy edotaccent ef-cy egrave eight eight.dnom eight.numr eight.tosf eightinferior eightsuperior eiotified-cy ejectsymbol el-cy eldescender-cy element elementSmall elhook-cy ellipsis elmiddlehook-cy eltail-cy em-cy emacron emdash emdash.case emptyset emtail-cy en-cy endOfMedium-control endOfText-control endOfTransmission-control endOfTransmissionBlock-control endash endash.case endescender-cy eng enghe-cy enhook-cy enlefthook-cy enmiddlehook-cy enquiry-control entail-cy eogonek epsilon epsilonLunateReversedSymbol epsilonLunateSymbol epsilondasia epsilondasiaoxia epsilondasiavaria epsilonoxia epsilonpsili epsilonpsilioxia epsilonpsilivaria epsilontonos epsilonvaria equal equal.dnom equal.numr equal.spacer equal_asciitilde.ss07 equal_end.seq equal_equal.liga equal_equal_equal.liga equal_middle.seq equal_start.seq equalsinferior equalsuperior equivalence er-cy ereversed-cy ertick-cy es-cy escape-control esdescender-cy estimated eta etadasia etadasiaoxia etadasiaoxiaypogegrammeni etadasiaperispomeni etadasiaperispomeniypogegrammeni etadasiavaria etadasiavariaypogegrammeni etadasiaypogegrammeni etaoxia etaoxiaypogegrammeni etaperispomeni etaperispomeniypogegrammeni etapsili etapsilioxia etapsilioxiaypogegrammeni etapsiliperispomeni etapsiliperispomeniypogegrammeni etapsilivaria etapsilivariaypogegrammeni etapsiliypogegrammeni etatonos etavaria etavariaypogegrammeni etaypogegrammeni eth euro exclam exclam.spacer exclam_asciitilde.ss07 exclam_equal.liga exclam_equal_equal.liga exclam_equal_middle.seq exclam_exclam.liga exclam_exclam_period.liga exclamdown exclamdown.case existential f f.spacer female figuredash fileSeparator-control filledRect filledbox fireTrigram firsttonechinese fisheye fita-cy five five.dnom five.numr five.tosf fiveeighths fiveinferior fivesixths fivesuperior florin forces formFeed-control four four.dnom four.numr four.tosf fourfifths fourinferior foursuperior fraction fullBlock g gamma gbreve gcircumflex gcommaaccent gdotaccent ge-cy gedescender-cy germandbls gestrokehook-cy ghemiddlehook-cy ghestroke-cy gheupturn-cy gje-cy globeWithMeridians gradient grave grave.case gravecomb greater greater.center greater.spacer greater_equal.liga greater_equal.ss02 greater_equal_end.seq greater_equal_middle.seq greater_equal_start.seq greater_greater.liga greater_greater_equal_end.seq greater_greater_equal_middle.seq greater_greater_equal_start.seq greater_greater_greater.liga greater_greater_hyphen_end.seq greater_greater_hyphen_middle.seq greater_greater_hyphen_start.seq greater_hyphen_end.seq greater_hyphen_middle.seq greater_hyphen_start.seq greaterequal groupSeparator-control guillemetleft guillemetleft.case guillemetright guillemetright.case guilsinglleft guilsinglleft.case guilsinglright guilsinglright.case h ha-cy haabkhasian-cy hadescender-cy hahook-cy hardsign-cy hastroke-cy hbar hcircumflex heart heavenTrigram helmsymbol heta horizontalFillSquare horizontalTabulation-control house hungarumlaut hungarumlaut.case hungarumlautcomb hyphen hyphen.case hyphen.lc hyphen.spacer hyphen_asciitilde.liga hyphen_end.seq hyphen_hyphen.liga hyphen_hyphen_hyphen.liga hyphen_middle.seq hyphen_start.seq i i-cy i.salt_low ia-cy iacute ibreve icircumflex idieresis idieresis-cy idotaccent ie-cy iebreve-cy iegrave-cy igrave ii-cy iigrave-cy iishort-cy iishorttail-cy ij imacron imacron-cy increment infinity infinity.case integral integralbt integraltp intersection inverseWhiteCircle invsmileface io-cy iogonek iota iotadasia iotadasiaoxia iotadasiaperispomeni iotadasiavaria iotadialytikaoxia iotadialytikaperispomeni iotadialytikavaria iotadieresis iotadieresistonos iotamacron iotaoxia iotaperispomeni iotapsili iotapsilioxia iotapsiliperispomeni iotapsilivaria iotatonos iotavaria iotavrachy itilde iu-cy izhitsa-cy izhitsadblgrave-cy j j.salt_low jcircumflex je-cy k ka-cy kabashkir-cy kadescender-cy kahook-cy kaiSymbol kappa kappaSymbol kastroke-cy kaverticalstroke-cy kcommaaccent keyboard kgreenlandic kje-cy komide-cy komidje-cy komidzje-cy komilje-cy kominje-cy komisje-cy komitje-cy komizje-cy koppa koppaArchaic koronis ksi-cy l l.salt_low l.spacer lacute lakeTrigram lambda largeCircle lcaron lcommaaccent ldot leftBlackArrow leftBlackTriangle leftBlock leftFiveEighthsBlock leftHalfBlackCircle leftHalfBlackSquare leftHalfBlackWhiteCircle leftHookArrow leftLongArrow leftLongDoubleArrow leftLongDoubleFromBarArrow leftLongFromBarArrow leftOneEighthBlock leftOneQuarterBlock leftRightLongArrow leftRightLongDoubleArrow leftSevenEighthsBlock leftTabArrow leftThreeEighthsBlock leftThreeQuartersBlock leftanglebracket-math leftcurlybracketlowerhook leftcurlybracketmiddlepiece leftcurlybracketupperhook leftsquarebracketextension leftsquarebracketlowercorner leftsquarebracketuppercorner less less.center less.spacer less_asciitilde.liga less_asciitilde_asciitilde.liga less_asciitilde_greater.liga less_asterisk.liga less_asterisk_greater.liga less_bar.liga less_bar_bar.liga less_bar_bar_bar.liga less_bar_greater.liga less_dollar.liga less_dollar.liga.ss04 less_dollar_greater.liga less_dollar_greater.liga.ss04 less_equal.liga less_equal.ss02 less_equal_end.seq less_equal_middle.seq less_equal_start.seq less_exclam_hyphen_hyphen.liga less_greater.liga less_hyphen_end.seq less_hyphen_middle.seq less_hyphen_start.seq less_less.liga less_less_equal_end.seq less_less_equal_middle.seq less_less_equal_start.seq less_less_hyphen_end.seq less_less_hyphen_middle.seq less_less_hyphen_start.seq less_less_less.liga less_plus.liga less_plus_greater.liga less_slash.liga less_slash_greater.liga lessequal lha-cy lineFeed-control liraTurkish literSign lje-cy logicaland logicalnot logicalor lowerFiveEighthsBlock lowerHalfArc lowerHalfBlackWhiteCircle lowerHalfInverseWhiteCircle lowerLeftArc lowerLeftQuadrantWhiteCircle lowerOneEighthBlock lowerOneQuarterBlock lowerRightArc lowerRightDiagonalHalfBlackSquare lowerRightQuadrantWhiteCircle lowerSevenEighthsBlock lowerThreeEighthsBlock lowerThreeQuartersBlock lowernumeral-greek lozenge lslash ltshade m macron macron.case macroncomb male micro minus minus.dnom minus.numr minusinferior minussuperior models mountainTrigram mu multiply musicalnote musicalnotedbl n nacute nacute.loclPLK napostrophe ncaron ncommaaccent negateddoubleverticalbardoublerightturnstile negativeAcknowledge-control neitherasubsetofnorequalto neitherasupersetofnorequalto newline-control nine nine.dnom nine.numr nine.tosf nineinferior ninesuperior nje-cy nmod notcontains notelement notequal notidentical notsubset notsuperset nottrue ntilde nu null null-control numbersign numbersign.spacer numbersign_braceleft.liga numbersign_bracketleft.liga numbersign_colon.liga numbersign_colon.liga_rem numbersign_end.seq numbersign_equal.liga numbersign_exclam.liga numbersign_middle.seq numbersign_parenleft.liga numbersign_question.liga numbersign_start.seq numbersign_underscore.liga numbersign_underscore_parenleft.liga numeral-greek numero o o-cy oacute oacute.loclPLK obarred-cy obarreddieresis-cy obreve ocircumflex odieresis odieresis-cy oe ogonek ograve ohungarumlaut omacron omega omega-cy omegadasia omegadasiaoxia omegadasiaoxiaypogegrammeni omegadasiaperispomeni omegadasiaperispomeniypogegrammeni omegadasiavaria omegadasiavariaypogegrammeni omegadasiaypogegrammeni omegaoxia omegaoxiaypogegrammeni omegaperispomeni omegaperispomeniypogegrammeni omegapsili omegapsilioxia omegapsilioxiaypogegrammeni omegapsiliperispomeni omegapsiliperispomeniypogegrammeni omegapsilivaria omegapsilivariaypogegrammeni omegapsiliypogegrammeni omegatonos omegavaria omegavariaypogegrammeni omegaypogegrammeni omicron omicrondasia omicrondasiaoxia omicrondasiavaria omicronoxia omicronpsili omicronpsilioxia omicronpsilivaria omicrontonos omicronvaria one one.dnom one.numr one.tosf oneeighth onefifth onefraction onehalf oneinferior onequarter onesixth onesuperior onethird optionKey ordfeminine ordmasculine oslash oslashacute otilde overlinecomb oxia oxia.case p pagedown pageup palochka-cy pamphyliandigamma paragraph parenleft parenleft.case parenleft.dnom parenleft.numr parenleft.spacer parenleftextension parenleftinferior parenleftlowerhook parenleftsuperior parenleftupperhook parenright parenright.case parenright.dnom parenright.numr parenrightextension parenrightinferior parenrightlowerhook parenrightsuperior parenrightupperhook partialdiff pe-cy pedescender-cy pemiddlehook-cy percent percent.spacer percent_percent.liga period period.spacer period_equal.liga period_hyphen.liga period_period.liga period_period_equal.liga period_period_less.liga period_period_period.liga period_question.liga periodcentered perispomeni perispomenicomb perspective perthousand phi phiSymbol pi piSymbol plus plus.dnom plus.lc plus.numr plus.spacer plus_greater.liga plus_plus.liga plus_plus_plus.liga plusinferior plusminus plussuperior primemod product projective propellor prosgegrammeni psi psi-cy psili psilioxia psiliperispomeni psilivaria q qa-cy quadrantLowerLeft quadrantLowerRight quadrantUpperLeft quadrantUpperLeftAndLowerLeftAndLowerRight quadrantUpperLeftAndLowerRight quadrantUpperLeftAndUpperRightAndLowerLeft quadrantUpperLeftAndUpperRightAndLowerRight quadrantUpperRight quadrantUpperRightAndLowerLeft quadrantUpperRightAndLowerLeftAndLowerRight question question.spacer question_equal.liga question_period.liga question_question.liga questiondown questiondown.case questiongreek quotedbl quotedblbase quotedblleft quotedblright quoteleft quoteright quotesinglbase quotesingle r r.ss01 racute radical ratio rcaron rcommaaccent recordSeparator-control reflexsubset reflexsuperset registered returnsymbol reverseddottedlunatesigmasymbol reversedlunatesigmasymbol reversedze-cy revlogicalnot rha-cy rho rhoStrokeSymbol rhoSymbol rhodasia rhopsili rightBlackTriangle rightBlock rightCircledPlusArrow rightHalfBlackCircle rightHalfBlackSquare rightHalfBlackWhiteCircle rightLongDoubleArrow rightLongDoubleFromBarArrow rightLongFromBarArrow rightLongSquiggleArrow rightOneEighthBlock rightTabArrow rightanglebracket-math rightcurlybracketlowerhook rightcurlybracketmiddlepiece rightcurlybracketupperhook rightlongArrow rightsquarebracketextension rightsquarebracketlowercorner rightsquarebracketuppercorner righttack ring ring.case ringcomb ruble rupeeIndian s sacute sacute.loclPLK sampi san scaron scedilla schwa-cy schwadieresis-cy scircumflex scommaaccent section semicolon semicolon.spacer semicolon_semicolon.liga semisoftsign-cy seven seven.dnom seven.numr seven.tosf seveneighths seveninferior sevensuperior sha-cy shade shcha-cy shha-cy shhadescender-cy shiftIn-control shiftOut-control sho sigma sigmaLunateSymbol sigmafinal six six.dnom six.numr six.tosf sixinferior sixsuperior skullAndCrossbones slash slash.spacer slash_asterisk.liga slash_backslash.liga slash_equal_end.seq slash_equal_middle.seq slash_equal_start.seq slash_greater.liga slash_slash.liga slash_slash_slash.liga smileface softhyphen softhyphen.case softsign-cy space-control spade squarewhitewithsmallblack startOfHeading-control startOfText-control sterling stigma strokelongoverlay strokeshortoverlay subset subsetnotequal substitute-control substituteFormTwo-control suchthat summation sun superset supersetnotequal synchronousIdle-control t tackdown tackleft tau tbar tcaron tcedilla tcommaaccent te-cy tedescender-cy tetse-cy theredoesnotexist therefore theta thetaSymbol thorn three three.dnom three.numr three.tosf threeTurned threeeighths threeemdash threefifths threeinferior threequarters threesuperior thunderTrigram tilde tilde.case tildecomb tironiansignet tonos tonos.case trademark triaglf triagupTriangle triangledown triangleright tripleverticalbarrightturnstile true tse-cy tshe-cy two two.dnom two.numr two.tosf twoTurned twoemdash twofifths twoinferior twosuperior twothirds u u-cy uacute ubreve ucircumflex udieresis udieresis-cy ugrave uhungarumlaut uhungarumlaut-cy uk-cy umacron umacron-cy underscore underscore.spacer underscore_end.seq underscore_middle.seq underscore_start.seq underscoredbl uni256D uni256E uni256F uni2570 uniE000 uniE001 uniE002 uniE003 uniE0A0 uniE0A1 uniE0A2 uniE0B0 uniE0B1 uniE0B2 uniE0B3 uniFEFF union unitSeparator-control universal uogonek upBetweenTwoHorizontalBarsArrowHead upBlackArrow upBlock upQuadrupleArrow upperHalfArc upperHalfBlackWhiteCircle upperHalfInverseWhiteCircle upperLeftArc upperLeftDiagonalHalfBlackSquare upperLeftQuadrantWhiteCircle upperLeftWhiteCircle upperOneEighthBlock upperRightArc upperRightQuadrantWhiteCircle upperlefttolowerrightFillSquare upperrighttolowerleftFillSquare upsilon upsilondasia upsilondasiaoxia upsilondasiaperispomeni upsilondasiavaria upsilondialytikaoxia upsilondialytikaperispomeni upsilondialytikavaria upsilondieresis upsilondieresistonos upsilonmacron upsilonoxia upsilonperispomeni upsilonpsili upsilonpsilioxia upsilonpsiliperispomeni upsilonpsilivaria upsilontonos upsilonvaria upsilonvrachy uptack uring ushort-cy ustrait-cy ustraitstroke-cy utilde v varia varia.case ve-cy verticalBisectingLineWhiteSquare verticalFillSquare verticalTabulation-control w w.spacer w_w_w.liga wacute waterTrigram wcircumflex wdieresis we-cy wgrave whiteCircle whiteDiamond whiteFrowningFace whiteRect whiteSquareWithLowerLeftQuadrant whiteSquareWithLowerRightQuadrant whiteSquareWithRoundedCorners whiteSquareWithUpperLeftQuadrant whiteSquareWithUpperRightQuadrant whiteVerticalRect windTrigram x x.multiply x.multiply.tosf xi y yacute yae-cy yat-cy ycircumflex ydieresis yen yeru-cy yerudieresis-cy ygrave yi-cy yot ypogegrammeni ypogegrammenicomb yusbig-cy yusbigiotified-cy yuslittle-cy yuslittleiotified-cy z zacute zacute.loclPLK zcaron zdotaccent ze-cy zedescender-cy zedieresis-cy zero zero.dnom zero.numr zero.tosf zero.tosf.zero zero.zero zero.zero.tosf zeroinferior zerosuperior zeta zhe-cy zhebreve-cy zhedescender-cy zhedieresis-cy"; +code = "A A-cy AE AEacute Aacute Abreve Abreve-cy Acircumflex Adieresis Adieresis-cy Agrave Aie-cy Aleutka-cy Alpha Alphadasia Alphadasiaoxia Alphadasiaoxiaprosgegrammeni Alphadasiaperispomeni Alphadasiaperispomeniprosgegrammeni Alphadasiaprosgegrammeni Alphadasiavaria Alphadasiavariaprosgegrammeni Alphamacron Alphaoxia Alphaprosgegrammeni Alphapsili Alphapsilioxia Alphapsilioxiaprosgegrammeni Alphapsiliperispomeni Alphapsiliperispomeniprosgegrammeni Alphapsiliprosgegrammeni Alphapsilivaria Alphapsilivariaprosgegrammeni Alphatonos Alphavaria Alphavrachy Amacron Aogonek Archaicsampi Aring Atilde B BdoubleStruck Be-cy Beta C CR Cacute Cacute.loclPLK Ccaron Ccedilla Ccircumflex Cdotaccent CdoubleStruck Che-cy Cheabkhasian-cy Chedescender-cy Chedescenderabkhasian-cy Chedieresis-cy Chekhakassian-cy Cheverticalstroke-cy Chi D Dcaron Dche-cy Dcroat De-cy Delta Digamma Dje-cy Dze-cy Dzeabkhasian-cy Dzhe-cy Dzzhe-cy E E-cy Eacute Ebreve Ecaron Ecircumflex Edieresis Edieresis-cy Edotaccent Ef-cy Egrave Eiotified-cy El-cy Eldescender-cy Elhook-cy Elmiddlehook-cy Eltail-cy Em-cy Emacron Emtail-cy En-cy EnLeftHook-cy Endescender-cy Eng Enghe-cy Enhook-cy Enmiddlehook-cy Entail-cy Eogonek Epsilon Epsilondasia Epsilondasiaoxia Epsilondasiavaria Epsilonoxia Epsilonpsili Epsilonpsilioxia Epsilonpsilivaria Epsilontonos Epsilonvaria Er-cy Ereversed-cy Ertick-cy Es-cy Esdescender-cy Eta Etadasia Etadasiaoxia Etadasiaoxiaprosgegrammeni Etadasiaperispomeni Etadasiaperispomeniprosgegrammeni Etadasiaprosgegrammeni Etadasiavaria Etadasiavariaprosgegrammeni Etaoxia Etaprosgegrammeni Etapsili Etapsilioxia Etapsilioxiaprosgegrammeni Etapsiliperispomeni Etapsiliperispomeniprosgegrammeni Etapsiliprosgegrammeni Etapsilivaria Etapsilivariaprosgegrammeni Etatonos Etavaria Eth F F.spacer Fita-cy G Gamma Gbreve Gcircumflex Gcommaaccent Gdotaccent Ge-cy Gedescender-cy Germandbls Gestrokehook-cy Ghemiddlehook-cy Ghestroke-cy Gheupturn-cy Gje-cy H H18543 H18551 H22073 Ha-cy Haabkhasian-cy Hadescender-cy Hahook-cy Hardsign-cy Hastroke-cy Hbar Hcircumflex HdoubleStruck Heta I I-cy IJ Ia-cy Iacute Ibreve Icircumflex Idieresis Idieresis-cy Idotaccent Ie-cy Iebreve-cy Iegrave-cy Igrave Ii-cy Iigrave-cy Iishort-cy Iishorttail-cy Imacron Imacron-cy Io-cy Iogonek Iota Iotadasia Iotadasiaoxia Iotadasiaperispomeni Iotadasiavaria Iotadieresis Iotamacron Iotaoxia Iotapsili Iotapsilioxia Iotapsiliperispomeni Iotapsilivaria Iotatonos Iotavaria Iotavrachy Itilde Iu-cy Izhitsa-cy Izhitsadblgrave-cy J Jcircumflex Je-cy K Ka-cy Kabashkir-cy Kadescender-cy Kahook-cy KaiSymbol Kappa Kastroke-cy Kaverticalstroke-cy Kcommaaccent Kje-cy Komide-cy Komidje-cy Komidzje-cy Komilje-cy Kominje-cy Komisje-cy Komitje-cy Komizje-cy Koppa KoppaArchaic Ksi-cy L LIG Lacute Lambda Lcaron Lcommaaccent Ldot Lha-cy Lje-cy Lslash M Mu N Nacute Nacute.loclPLK Ncaron Ncommaaccent NdoubleStruck Nje-cy Ntilde Nu O O-cy OE Oacute Oacute.loclPLK Obarred-cy Obarreddieresis-cy Obreve Ocircumflex Odieresis Odieresis-cy Ograve Ohungarumlaut Omacron Omega Omega-cy Omegadasia Omegadasiaoxia Omegadasiaoxiaprosgegrammeni Omegadasiaperispomeni Omegadasiaperispomeniprosgegrammeni Omegadasiaprosgegrammeni Omegadasiavaria Omegadasiavariaprosgegrammeni Omegaoxia Omegaprosgegrammeni Omegapsili Omegapsilioxia Omegapsilioxiaprosgegrammeni Omegapsiliperispomeni Omegapsiliperispomeniprosgegrammeni Omegapsiliprosgegrammeni Omegapsilivaria Omegapsilivariaprosgegrammeni Omegatonos Omegavaria Omicron Omicrondasia Omicrondasiaoxia Omicrondasiavaria Omicronoxia Omicronpsili Omicronpsilioxia Omicronpsilivaria Omicrontonos Omicronvaria Oslash Oslashacute Otilde P Palochka-cy Pamphyliandigamma PdoubleStruck Pe-cy Pedescender-cy Pemiddlehook-cy Phi Pi Psi Psi-cy Q Qa-cy QdoubleStruck R Racute Rcaron Rcommaaccent RdoubleStruck Reversedze-cy Rha-cy Rho Rhodasia S SF010000 SF020000 SF030000 SF040000 SF050000 SF060000 SF070000 SF080000 SF090000 SF100000 SF110000 SF190000 SF200000 SF210000 SF220000 SF230000 SF240000 SF250000 SF260000 SF270000 SF280000 SF360000 SF370000 SF380000 SF390000 SF400000 SF410000 SF420000 SF430000 SF440000 SF450000 SF460000 SF470000 SF480000 SF490000 SF500000 SF510000 SF520000 SF530000 SF540000 Sacute Sacute.loclPLK Sampi San Scaron Scedilla Schwa-cy Schwadieresis-cy Scircumflex Scommaaccent Semisoftsign-cy Sha-cy Shcha-cy Shha-cy Shhadescender-cy Sho Sigma SigmaLunateDottedReversedSymbol SigmaLunateDottedSymbol SigmaLunateReversedSymbol SigmaLunateSymbol Softsign-cy Stigma T T.spacer Tau Tbar Tcaron Tcedilla Tcommaaccent Te-cy Tedescender-cy Tetse-cy Theta ThetaSymbol Thorn Tse-cy Tshe-cy U U-cy Uacute Ubreve Ucircumflex Udieresis Udieresis-cy Ugrave Uhungarumlaut Uhungarumlaut-cy Uk-cy Umacron Umacron-cy Uogonek Upsilon UpsilonacutehookSymbol Upsilondasia Upsilondasiaoxia Upsilondasiaperispomeni Upsilondasiavaria Upsilondieresis UpsilondieresishookSymbol UpsilonhookSymbol Upsilonmacron Upsilonoxia Upsilontonos Upsilonvaria Upsilonvrachy Uring Ushort-cy Ustrait-cy Ustraitstroke-cy Utilde V Ve-cy W Wacute Wcircumflex Wdieresis We-cy Wgrave X Xi Y Yacute Yae-cy Yat-cy Ycircumflex Ydieresis Yeru-cy Yerudieresis-cy Ygrave Yi-cy Yot-greek Yusbig-cy Yusbigiotified-cy Yuslittle-cy Yuslittleiotified-cy Z Zacute Zacute.loclPLK Zcaron Zdotaccent ZdoubleStruck Ze-cy Zedescender-cy Zedieresis-cy Zeta Zhe-cy Zhebreve-cy Zhedescender-cy Zhedieresis-cy a a-cy aacute abreve abreve-cy acircumflex acknowledge-control acute acute.case acute.case.loclPLK acute.loclPLK acutecomb adieresis adieresis-cy ae aeacute afii00208 agrave aie-cy aleutka-cy alpha alphadasia alphadasiaoxia alphadasiaoxiaypogegrammeni alphadasiaperispomeni alphadasiaperispomeniypogegrammeni alphadasiavaria alphadasiavariaypogegrammeni alphadasiaypogegrammeni alphamacron alphaoxia alphaoxiaypogegrammeni alphaperispomeni alphaperispomeniypogegrammeni alphapsili alphapsilioxia alphapsilioxiaypogegrammeni alphapsiliperispomeni alphapsiliperispomeniypogegrammeni alphapsilivaria alphapsilivariaypogegrammeni alphapsiliypogegrammeni alphatonos alphavaria alphavariaypogegrammeni alphavrachy alphaypogegrammeni alternativekeysymbol amacron ampersand ampersand.before.ss03 ampersand.spacer ampersand.ss03 ampersand_ampersand.liga anoteleia anticlockwiseGappedCircleArrow aogonek apostrophemod approxequal archaicsampi aring arrowboth arrowdown arrowdownleft arrowdownright arrowdownwhite arrowleft arrowleftwhite arrowright arrowrightwhite arrowup arrowupdown arrowupleft arrowupright arrowupwhite asciicircum asciicircum.spacer asciicircum_equal.liga asciitilde asciitilde.spacer asciitilde_asciitilde.liga asciitilde_asciitilde_greater.liga asciitilde_at.liga asciitilde_greater.liga asciitilde_hyphen.liga assertion asterisk asterisk.lc asterisk.spacer asterisk_asterisk.liga asterisk_asterisk_asterisk.liga asterisk_greater.liga asterisk_slash.liga at at.spacer at.ss05 atilde b backslash backslash.spacer backslash.ss06 backslash.thick.ss06 backslash_slash.liga backspace-control ballotBox ballotBoxWithCheck ballotBoxWithX bar bar.spacer bar_bar.liga bar_bar_bar.liga bar_bar_bar_greater.liga bar_bar_equal_end.seq bar_bar_equal_middle.seq bar_bar_equal_start.seq bar_bar_greater.liga bar_bar_hyphen_end.seq bar_bar_hyphen_middle.seq bar_bar_hyphen_start.seq bar_braceright.liga bar_bracketright.liga bar_equal_end.seq bar_equal_middle.seq bar_equal_start.seq bar_greater.liga bar_hyphen_end.seq bar_hyphen_middle.seq bar_hyphen_start.seq bar_underscore_middle.seq be-cy because bell-control beta betaSymbol blackCircle blackDiamond blackLowerLeftTriangle blackLowerRightTriangle blackRightArrow blackUpperLeftTriangle blackUpperRightTriangle blackVerticalRect blank blankSymbol boxDownHeavyAndHorizontalLight boxDownHeavyAndLeftLight boxDownHeavyAndLeftUpLight boxDownHeavyAndRightLight boxDownHeavyAndRightUpLight boxDownHeavyAndUpHorizontalLight boxDownLightAndHorizontalHeavy boxDownLightAndLeftHeavy boxDownLightAndLeftUpHeavy boxDownLightAndRightHeavy boxDownLightAndRightUpHeavy boxDownLightAndUpHorizontalHeavy boxHeavyDoubleDashHorizontal boxHeavyDoubleDashVertical boxHeavyDown boxHeavyDownAndHorizontal boxHeavyDownAndLeft boxHeavyDownAndRight boxHeavyHorizontal boxHeavyLeft boxHeavyLeftAndLightRight boxHeavyQuadrupleDashHorizontal boxHeavyQuadrupleDashVertical boxHeavyRight boxHeavyTripleDashHorizontal boxHeavyTripleDashVertical boxHeavyUp boxHeavyUpAndHorizontal boxHeavyUpAndLeft boxHeavyUpAndLightDown boxHeavyUpAndRight boxHeavyVertical boxHeavyVerticalAndHorizontal boxHeavyVerticalAndLeft boxHeavyVerticalAndRight boxLeftDownHeavyAndRightUpLight boxLeftHeavyAndRightDownLight boxLeftHeavyAndRightUpLight boxLeftHeavyAndRightVerticalLight boxLeftLightAndRightDownHeavy boxLeftLightAndRightUpHeavy boxLeftLightAndRightVerticalHeavy boxLeftUpHeavyAndRightDownLight boxLightDiagonalCross boxLightDiagonalUpperLeftToLowerRight boxLightDiagonalUpperRightToLowerLeft boxLightDoubleDashHorizontal boxLightDoubleDashVertical boxLightDown boxLightLeft boxLightLeftAndHeavyRight boxLightQuadrupleDashHorizontal boxLightQuadrupleDashVertical boxLightRight boxLightTripleDashHorizontal boxLightTripleDashVertical boxLightUp boxLightUpAndHeavyDown boxRightDownHeavyAndLeftUpLight boxRightHeavyAndLeftDownLight boxRightHeavyAndLeftUpLight boxRightHeavyAndLeftVerticalLight boxRightLightAndLeftDownHeavy boxRightLightAndLeftUpHeavy boxRightLightAndLeftVerticalHeavy boxRightUpHeavyAndLeftDownLight boxUpHeavyAndDownHorizontalLight boxUpHeavyAndHorizontalLight boxUpHeavyAndLeftDownLight boxUpHeavyAndLeftLight boxUpHeavyAndRightDownLight boxUpHeavyAndRightLight boxUpLightAndDownHorizontalHeavy boxUpLightAndHorizontalHeavy boxUpLightAndLeftDownHeavy boxUpLightAndLeftHeavy boxUpLightAndRightDownHeavy boxUpLightAndRightHeavy boxVerticalHeavyAndHorizontalLight boxVerticalHeavyAndLeftLight boxVerticalHeavyAndRightLight boxVerticalLightAndHorizontalHeavy boxVerticalLightAndLeftHeavy boxVerticalLightAndRightHeavy braceleft braceleft.case braceleft.spacer braceleft_bar.liga braceright braceright.case braceright.spacer bracketleft bracketleft.case bracketleft.spacer bracketleft_bar.liga bracketright bracketright.case bracketright.spacer bracketright_numbersign.liga breve breve-cy breve-cy.case breve.case brevecomb brokenCircleNorthWestArrow brokenbar bullet bulletoperator bullseye c cacute cacute.loclPLK canadiansyllabicsa canadiansyllabicso cancel-control capslock caron caron.alt caron.case caroncomb carriageReturn-control ccaron ccedilla ccircumflex cdotaccent cedilla cedilla.case cedillacomb cent che-cy cheabkhasian-cy checkmark chedescender-cy chedescenderabkhasian-cy chedieresis-cy chekhakassian-cy cheverticalstroke-cy chi circumflex circumflex.case circumflexcomb clear clockwiseGappedCircleArrow club colon colon.center colon.spacer colon.uc colon_colon.liga colon_colon_colon.liga colon_colon_equal.liga colon_equal.liga colon_equal_middle.seq comma commaabovecomb commaaccent commaaccent.case commareversedabovecomb containsasmemberSmall control copyright cornerbracketleft cornerbracketleft.half cornerbracketright cornerbracketright.half crosshatchFillSquare curlybracketextension currency d dagger daggerdbl dasia dasiaoxia dasiaperispomeni dasiavaria dataLinkEscape-control dblgravecomb dblverticalbar dcaron dche-cy dcroat de-cy degree delete-control deleteFormTwo-control deleteLeftKey deleterightKey delta deviceControlFour-control deviceControlOne-control deviceControlThree-control deviceControlTwo-control diagonalcrosshatchFillSquare dialytikaoxia dialytikaperispomeni dialytikavaria diameterSign diamond dieresis dieresis.case dieresiscomb dieresistonos digamma divide divisionslash dje-cy dkshade doesnotforce doesnotprove dollar dollar.spacer dollar.ss04 dollar_greater.liga dollar_greater.liga.ss04 dotaccent dotaccent.case dotaccentcomb dotlessi dotlessj dottedlunatesigmasymbol doubleprimemod doubleverticalbardoublerightturnstile downArrowHead downBlackArrow downBlock downQuadrupleArrow drachma dze-cy dzeabkhasian-cy dzhe-cy dzzhe-cy e e-cy eacute earthTrigram ebreve ecaron ecircumflex edieresis edieresis-cy edotaccent ef-cy egrave eight eight.dnom eight.numr eight.tosf eightinferior eightsuperior eiotified-cy ejectsymbol el-cy eldescender-cy element elementSmall elhook-cy ellipsis elmiddlehook-cy eltail-cy em-cy emacron emdash emdash.case emptyset emtail-cy en-cy endOfMedium-control endOfText-control endOfTransmission-control endOfTransmissionBlock-control endash endash.case endescender-cy eng enghe-cy enhook-cy enlefthook-cy enmiddlehook-cy enquiry-control entail-cy eogonek epsilon epsilonLunateReversedSymbol epsilonLunateSymbol epsilondasia epsilondasiaoxia epsilondasiavaria epsilonoxia epsilonpsili epsilonpsilioxia epsilonpsilivaria epsilontonos epsilonvaria equal equal.dnom equal.numr equal.spacer equal_asciitilde.ss07 equal_end.seq equal_equal.liga equal_equal_equal.liga equal_middle.seq equal_start.seq equalsinferior equalsuperior equivalence er-cy ereversed-cy ertick-cy es-cy escape-control esdescender-cy estimated eta etadasia etadasiaoxia etadasiaoxiaypogegrammeni etadasiaperispomeni etadasiaperispomeniypogegrammeni etadasiavaria etadasiavariaypogegrammeni etadasiaypogegrammeni etaoxia etaoxiaypogegrammeni etaperispomeni etaperispomeniypogegrammeni etapsili etapsilioxia etapsilioxiaypogegrammeni etapsiliperispomeni etapsiliperispomeniypogegrammeni etapsilivaria etapsilivariaypogegrammeni etapsiliypogegrammeni etatonos etavaria etavariaypogegrammeni etaypogegrammeni eth euro exclam exclam.spacer exclam_asciitilde.ss07 exclam_equal.liga exclam_equal_equal.liga exclam_equal_middle.seq exclam_exclam.liga exclam_exclam_period.liga exclamdown exclamdown.case existential f f.spacer female figuredash fileSeparator-control filledRect filledbox fireTrigram firsttonechinese fisheye fita-cy five five.dnom five.numr five.tosf fiveeighths fiveinferior fivesixths fivesuperior florin forces formFeed-control four four.dnom four.numr four.tosf fourfifths fourinferior foursuperior fraction fullBlock g gamma gbreve gcircumflex gcommaaccent gdotaccent ge-cy gedescender-cy germandbls gestrokehook-cy ghemiddlehook-cy ghestroke-cy gheupturn-cy gje-cy globeWithMeridians gradient grave grave.case gravecomb greater greater.center greater.spacer greater_equal.liga greater_equal.ss02 greater_equal_end.seq greater_equal_middle.seq greater_equal_start.seq greater_greater.liga greater_greater_equal_end.seq greater_greater_equal_middle.seq greater_greater_equal_start.seq greater_greater_greater.liga greater_greater_hyphen_end.seq greater_greater_hyphen_middle.seq greater_greater_hyphen_start.seq greater_hyphen_end.seq greater_hyphen_middle.seq greater_hyphen_start.seq greaterequal groupSeparator-control guillemetleft guillemetleft.case guillemetright guillemetright.case guilsinglleft guilsinglleft.case guilsinglright guilsinglright.case h ha-cy haabkhasian-cy hadescender-cy hahook-cy hardsign-cy hastroke-cy hbar hcircumflex heart heavenTrigram helmsymbol heta horizontalFillSquare horizontalTabulation-control house hungarumlaut hungarumlaut.case hungarumlautcomb hyphen hyphen.case hyphen.lc hyphen.spacer hyphen_asciitilde.liga hyphen_end.seq hyphen_hyphen.liga hyphen_hyphen_hyphen.liga hyphen_middle.seq hyphen_start.seq i i-cy i.salt_low ia-cy iacute ibreve icircumflex idieresis idieresis-cy idotaccent ie-cy iebreve-cy iegrave-cy igrave ii-cy iigrave-cy iishort-cy iishorttail-cy ij imacron imacron-cy increment infinity infinity.case integral integralbt integraltp intersection inverseWhiteCircle invsmileface io-cy iogonek iota iotadasia iotadasiaoxia iotadasiaperispomeni iotadasiavaria iotadialytikaoxia iotadialytikaperispomeni iotadialytikavaria iotadieresis iotadieresistonos iotamacron iotaoxia iotaperispomeni iotapsili iotapsilioxia iotapsiliperispomeni iotapsilivaria iotatonos iotavaria iotavrachy itilde iu-cy izhitsa-cy izhitsadblgrave-cy j j.salt_low jcircumflex je-cy k ka-cy kabashkir-cy kadescender-cy kahook-cy kaiSymbol kappa kappaSymbol kastroke-cy kaverticalstroke-cy kcommaaccent keyboard kgreenlandic kje-cy komide-cy komidje-cy komidzje-cy komilje-cy kominje-cy komisje-cy komitje-cy komizje-cy koppa koppaArchaic koronis ksi-cy l l.salt_low l.spacer lacute lakeTrigram lambda largeCircle lcaron lcommaaccent ldot leftBlackArrow leftBlackTriangle leftBlock leftFiveEighthsBlock leftHalfBlackCircle leftHalfBlackSquare leftHalfBlackWhiteCircle leftHookArrow leftLongArrow leftLongDoubleArrow leftLongDoubleFromBarArrow leftLongFromBarArrow leftOneEighthBlock leftOneQuarterBlock leftRightLongArrow leftRightLongDoubleArrow leftSevenEighthsBlock leftTabArrow leftThreeEighthsBlock leftThreeQuartersBlock leftanglebracket-math leftcurlybracketlowerhook leftcurlybracketmiddlepiece leftcurlybracketupperhook leftsquarebracketextension leftsquarebracketlowercorner leftsquarebracketuppercorner less less.center less.spacer less_asciitilde.liga less_asciitilde_asciitilde.liga less_asciitilde_greater.liga less_asterisk.liga less_asterisk_greater.liga less_bar.liga less_bar_bar.liga less_bar_bar_bar.liga less_bar_greater.liga less_dollar.liga less_dollar.liga.ss04 less_dollar_greater.liga less_dollar_greater.liga.ss04 less_equal.liga less_equal.ss02 less_equal_end.seq less_equal_middle.seq less_equal_start.seq less_exclam_hyphen_hyphen.liga less_greater.liga less_hyphen_end.seq less_hyphen_middle.seq less_hyphen_start.seq less_less.liga less_less_equal_end.seq less_less_equal_middle.seq less_less_equal_start.seq less_less_hyphen_end.seq less_less_hyphen_middle.seq less_less_hyphen_start.seq less_less_less.liga less_plus.liga less_plus_greater.liga less_slash.liga less_slash_greater.liga lessequal lha-cy lineFeed-control liraTurkish literSign lje-cy logicaland logicalnot logicalor lowerFiveEighthsBlock lowerHalfArc lowerHalfBlackWhiteCircle lowerHalfInverseWhiteCircle lowerLeftArc lowerLeftQuadrantWhiteCircle lowerOneEighthBlock lowerOneQuarterBlock lowerRightArc lowerRightDiagonalHalfBlackSquare lowerRightQuadrantWhiteCircle lowerSevenEighthsBlock lowerThreeEighthsBlock lowerThreeQuartersBlock lowernumeral-greek lozenge lslash ltshade m macron macron.case macroncomb male micro minus minus.dnom minus.numr minusinferior minussuperior models mountainTrigram mu multiply musicalnote musicalnotedbl n nacute nacute.loclPLK napostrophe ncaron ncommaaccent negateddoubleverticalbardoublerightturnstile negativeAcknowledge-control neitherasubsetofnorequalto neitherasupersetofnorequalto newline-control nine nine.dnom nine.numr nine.tosf nineinferior ninesuperior nje-cy nmod notcontains notelement notequal notidentical notsubset notsuperset nottrue ntilde nu null null-control numbersign numbersign.spacer numbersign_braceleft.liga numbersign_bracketleft.liga numbersign_colon.liga numbersign_colon.liga_rem numbersign_end.seq numbersign_equal.liga numbersign_exclam.liga numbersign_middle.seq numbersign_parenleft.liga numbersign_question.liga numbersign_start.seq numbersign_underscore.liga numbersign_underscore_parenleft.liga numeral-greek numero o o-cy oacute oacute.loclPLK obarred-cy obarreddieresis-cy obreve ocircumflex odieresis odieresis-cy oe ogonek ograve ohungarumlaut omacron omega omega-cy omegadasia omegadasiaoxia omegadasiaoxiaypogegrammeni omegadasiaperispomeni omegadasiaperispomeniypogegrammeni omegadasiavaria omegadasiavariaypogegrammeni omegadasiaypogegrammeni omegaoxia omegaoxiaypogegrammeni omegaperispomeni omegaperispomeniypogegrammeni omegapsili omegapsilioxia omegapsilioxiaypogegrammeni omegapsiliperispomeni omegapsiliperispomeniypogegrammeni omegapsilivaria omegapsilivariaypogegrammeni omegapsiliypogegrammeni omegatonos omegavaria omegavariaypogegrammeni omegaypogegrammeni omicron omicrondasia omicrondasiaoxia omicrondasiavaria omicronoxia omicronpsili omicronpsilioxia omicronpsilivaria omicrontonos omicronvaria one one.dnom one.numr one.tosf oneeighth onefifth onefraction onehalf oneinferior onequarter onesixth onesuperior onethird optionKey ordfeminine ordmasculine oslash oslashacute otilde overlinecomb oxia oxia.case p pagedown pageup palochka-cy pamphyliandigamma paragraph parenleft parenleft.case parenleft.dnom parenleft.numr parenleft.spacer parenleftextension parenleftinferior parenleftlowerhook parenleftsuperior parenleftupperhook parenright parenright.case parenright.dnom parenright.numr parenrightextension parenrightinferior parenrightlowerhook parenrightsuperior parenrightupperhook partialdiff pe-cy pedescender-cy pemiddlehook-cy percent percent.spacer percent_percent.liga period period.spacer period_equal.liga period_hyphen.liga period_period.liga period_period_equal.liga period_period_less.liga period_period_period.liga period_question.liga periodcentered perispomeni perispomenicomb perspective perthousand phi phiSymbol pi piSymbol plus plus.dnom plus.lc plus.numr plus.spacer plus_greater.liga plus_plus.liga plus_plus_plus.liga plusinferior plusminus plussuperior primemod product projective propellor prosgegrammeni psi psi-cy psili psilioxia psiliperispomeni psilivaria q qa-cy quadrantLowerLeft quadrantLowerRight quadrantUpperLeft quadrantUpperLeftAndLowerLeftAndLowerRight quadrantUpperLeftAndLowerRight quadrantUpperLeftAndUpperRightAndLowerLeft quadrantUpperLeftAndUpperRightAndLowerRight quadrantUpperRight quadrantUpperRightAndLowerLeft quadrantUpperRightAndLowerLeftAndLowerRight question question.spacer question_equal.liga question_period.liga question_question.liga questiondown questiondown.case questiongreek quotedbl quotedblbase quotedblleft quotedblright quoteleft quoteright quotesinglbase quotesingle r r.ss01 racute radical ratio rcaron rcommaaccent recordSeparator-control reflexsubset reflexsuperset registered returnsymbol reverseddottedlunatesigmasymbol reversedlunatesigmasymbol reversedze-cy revlogicalnot rha-cy rho rhoStrokeSymbol rhoSymbol rhodasia rhopsili rightBlackTriangle rightBlock rightCircledPlusArrow rightHalfBlackCircle rightHalfBlackSquare rightHalfBlackWhiteCircle rightLongDoubleArrow rightLongDoubleFromBarArrow rightLongFromBarArrow rightLongSquiggleArrow rightOneEighthBlock rightTabArrow rightanglebracket-math rightcurlybracketlowerhook rightcurlybracketmiddlepiece rightcurlybracketupperhook rightlongArrow rightsquarebracketextension rightsquarebracketlowercorner rightsquarebracketuppercorner righttack ring ring.case ringcomb ruble rupeeIndian s sacute sacute.loclPLK sampi san scaron scedilla schwa-cy schwadieresis-cy scircumflex scommaaccent section semicolon semicolon.spacer semicolon_semicolon.liga semisoftsign-cy seven seven.dnom seven.numr seven.tosf seveneighths seveninferior sevensuperior sha-cy shade shcha-cy shha-cy shhadescender-cy shiftIn-control shiftOut-control sho sigma sigmaLunateSymbol sigmafinal six six.dnom six.numr six.tosf sixinferior sixsuperior skullAndCrossbones slash slash.spacer slash_asterisk.liga slash_backslash.liga slash_equal_end.seq slash_equal_middle.seq slash_equal_start.seq slash_greater.liga slash_slash.liga slash_slash_equal_end.seq slash_slash_equal_middle.seq slash_slash_equal_start.seq slash_slash_slash.liga smileface softhyphen softhyphen.case softsign-cy space-control spade squarewhitewithsmallblack startOfHeading-control startOfText-control sterling stigma strokelongoverlay strokeshortoverlay subset subsetnotequal substitute-control substituteFormTwo-control suchthat summation sun superset supersetnotequal synchronousIdle-control t tackdown tackleft tau tbar tcaron tcedilla tcommaaccent te-cy tedescender-cy tetse-cy theredoesnotexist therefore theta thetaSymbol thorn three three.dnom three.numr three.tosf threeTurned threeeighths threeemdash threefifths threeinferior threequarters threesuperior thunderTrigram tilde tilde.case tildecomb tironiansignet tonos tonos.case trademark triaglf triagupTriangle triangledown triangleright tripleverticalbarrightturnstile true tse-cy tshe-cy two two.dnom two.numr two.tosf twoTurned twoemdash twofifths twoinferior twosuperior twothirds u u-cy uacute ubreve ucircumflex udieresis udieresis-cy ugrave uhungarumlaut uhungarumlaut-cy uk-cy umacron umacron-cy underscore underscore.spacer underscore_end.seq underscore_middle.seq underscore_start.seq underscoredbl uni256D uni256E uni256F uni2570 uniE000 uniE001 uniE002 uniE003 uniE0A0 uniE0A1 uniE0A2 uniE0B0 uniE0B1 uniE0B2 uniE0B3 uniFEFF union unitSeparator-control universal uogonek upBetweenTwoHorizontalBarsArrowHead upBlackArrow upBlock upQuadrupleArrow upperHalfArc upperHalfBlackWhiteCircle upperHalfInverseWhiteCircle upperLeftArc upperLeftDiagonalHalfBlackSquare upperLeftQuadrantWhiteCircle upperLeftWhiteCircle upperOneEighthBlock upperRightArc upperRightQuadrantWhiteCircle upperlefttolowerrightFillSquare upperrighttolowerleftFillSquare upsilon upsilondasia upsilondasiaoxia upsilondasiaperispomeni upsilondasiavaria upsilondialytikaoxia upsilondialytikaperispomeni upsilondialytikavaria upsilondieresis upsilondieresistonos upsilonmacron upsilonoxia upsilonperispomeni upsilonpsili upsilonpsilioxia upsilonpsiliperispomeni upsilonpsilivaria upsilontonos upsilonvaria upsilonvrachy uptack uring ushort-cy ustrait-cy ustraitstroke-cy utilde v varia varia.case ve-cy verticalBisectingLineWhiteSquare verticalFillSquare verticalTabulation-control w w.spacer w_w_w.liga wacute waterTrigram wcircumflex wdieresis we-cy wgrave whiteCircle whiteDiamond whiteFrowningFace whiteRect whiteSquareWithLowerLeftQuadrant whiteSquareWithLowerRightQuadrant whiteSquareWithRoundedCorners whiteSquareWithUpperLeftQuadrant whiteSquareWithUpperRightQuadrant whiteVerticalRect windTrigram x x.multiply x.multiply.tosf xi y yacute yae-cy yat-cy ycircumflex ydieresis yen yeru-cy yerudieresis-cy ygrave yi-cy yot ypogegrammeni ypogegrammenicomb yusbig-cy yusbigiotified-cy yuslittle-cy yuslittleiotified-cy z zacute zacute.loclPLK zcaron zdotaccent ze-cy zedescender-cy zedieresis-cy zero zero.dnom zero.numr zero.tosf zero.tosf.zero zero.zero zero.zero.tosf zeroinferior zerosuperior zeta zhe-cy zhebreve-cy zhedescender-cy zhedieresis-cy"; name = NotSpace; }, { @@ -218,7 +219,7 @@ code = "pos @Uppercase <5 0 10 0>;\012"; name = cpsp; }, { -code = "lookup less_bar_greater {\012 ignore sub less less' bar greater;\012 ignore sub less' bar greater greater;\012 sub less.spacer bar.spacer greater' by less_bar_greater.liga;\012 sub less.spacer bar' greater by bar.spacer;\012 sub less' bar greater by less.spacer;\012} less_bar_greater;\012\012lookup bar_bar_bar_greater {\012 ignore sub bar bar' bar bar greater;\012 ignore sub bar' bar bar greater greater;\012 sub bar.spacer bar.spacer bar.spacer greater' by bar_bar_bar_greater.liga;\012 sub bar.spacer bar.spacer bar' greater by bar.spacer;\012 sub bar.spacer bar' bar greater by bar.spacer;\012 sub bar' bar bar greater by bar.spacer;\012} bar_bar_bar_greater;\012\012lookup less_bar_bar_bar {\012 ignore sub less less' bar bar bar;\012 ignore sub less' bar bar bar bar;\012 sub less.spacer bar.spacer bar.spacer bar' by less_bar_bar_bar.liga;\012 sub less.spacer bar.spacer bar' bar by bar.spacer;\012 sub less.spacer bar' bar bar by bar.spacer;\012 sub less' bar bar bar by less.spacer;\012} less_bar_bar_bar;\012\012lookup bar_bar_greater {\012 ignore sub bar bar' bar greater;\012 ignore sub bar' bar greater greater;\012 ignore sub less bar' bar greater;\012 sub bar.spacer bar.spacer greater' by bar_bar_greater.liga;\012 sub bar.spacer bar' greater by bar.spacer;\012 sub bar' bar greater by bar.spacer;\012} bar_bar_greater;\012\012lookup less_bar_bar {\012 ignore sub less less' bar bar;\012 ignore sub less' bar bar bar;\012 ignore sub less' bar bar greater;\012 sub less.spacer bar.spacer bar' by less_bar_bar.liga;\012 sub less.spacer bar' bar by bar.spacer;\012 sub less' bar bar by less.spacer;\012} less_bar_bar;\012\012lookup bar_greater {\012 ignore sub bar bar' greater;\012 ignore sub bar' greater greater;\012 sub bar.spacer greater' by bar_greater.liga;\012 sub bar' greater by bar.spacer;\012} bar_greater;\012\012lookup less_bar {\012 ignore sub less less' bar;\012 ignore sub less' bar bar;\012 sub less.spacer bar' by less_bar.liga;\012 sub less' bar by less.spacer;\012} less_bar;\012\012lookup bar_bar_bar {\012 ignore sub bar bar' bar bar;\012 ignore sub bar' bar bar bar;\012 sub bar.spacer bar.spacer bar' by bar_bar_bar.liga;\012 sub bar.spacer bar' bar by bar.spacer;\012 sub bar' bar bar by bar.spacer;\012} bar_bar_bar;\012\012lookup greater_greater_greater {\012 ignore sub greater greater' greater greater;\012 ignore sub greater' greater greater greater;\012 ignore sub [asterisk plus dollar] greater' greater greater;\012 sub greater.spacer greater.spacer greater' by greater_greater_greater.liga;\012 sub greater.spacer greater' greater by greater.spacer;\012 sub greater' greater greater by greater.spacer;\012} greater_greater_greater;\012\012lookup less_less_less {\012 ignore sub less less' less less;\012 ignore sub less' less less less;\012 ignore sub less' less less [asterisk plus dollar];\012 sub less.spacer less.spacer less' by less_less_less.liga;\012 sub less.spacer less' less by less.spacer;\012 sub less' less less by less.spacer;\012} less_less_less;\012\012lookup bar_bar {\012 ignore sub bar bar' bar;\012 ignore sub bar' bar bar;\012 ignore sub [hyphen equal] bar' bar;\012 ignore sub bar' bar [hyphen equal];\012 sub bar.spacer bar' by bar_bar.liga;\012 sub bar' bar by bar.spacer;\012} bar_bar;\012\012lookup greater_greater {\012 ignore sub greater greater' greater;\012 ignore sub greater' greater greater;\012 ignore sub [asterisk plus dollar] greater' greater;\012 ignore sub [hyphen equal] greater' greater;\012 ignore sub greater' greater [hyphen equal];\012 sub greater.spacer greater' by greater_greater.liga;\012 sub greater' greater by greater.spacer;\012} greater_greater;\012\012lookup less_less {\012 ignore sub less less' less;\012 ignore sub less' less less;\012 ignore sub less' less [asterisk plus dollar];\012 ignore sub [hyphen equal] less' less;\012 ignore sub less' less [hyphen equal];\012 sub less.spacer less' by less_less.liga;\012 sub less' less by less.spacer;\012} less_less;\012\012lookup less_exclam_hyphen_hyphen {\012 ignore sub less less' exclam hyphen hyphen;\012 ignore sub less' exclam hyphen hyphen hyphen;\012 ignore sub parenleft question less' exclam hyphen hyphen;\012 sub less.spacer exclam.spacer hyphen.spacer hyphen' by less_exclam_hyphen_hyphen.liga;\012 sub less.spacer exclam.spacer hyphen' hyphen by hyphen.spacer;\012 sub less.spacer exclam' hyphen hyphen by exclam.spacer;\012 sub less' exclam hyphen hyphen by less.spacer;\012} less_exclam_hyphen_hyphen;\012\012lookup asciitilde_asciitilde_greater {\012 ignore sub asciitilde asciitilde' asciitilde greater;\012 ignore sub asciitilde' asciitilde greater greater;\012 sub asciitilde.spacer asciitilde.spacer greater' by asciitilde_asciitilde_greater.liga;\012 sub asciitilde.spacer asciitilde' greater by asciitilde.spacer;\012 sub asciitilde' asciitilde greater by asciitilde.spacer;\012} asciitilde_asciitilde_greater;\012\012lookup asterisk_asterisk_asterisk {\012 ignore sub asterisk asterisk' asterisk asterisk;\012 ignore sub asterisk' asterisk asterisk asterisk;\012 ignore sub slash asterisk' asterisk asterisk;\012 ignore sub asterisk' asterisk asterisk slash;\012 sub asterisk.spacer asterisk.spacer asterisk' by asterisk_asterisk_asterisk.liga;\012 sub asterisk.spacer asterisk' asterisk by asterisk.spacer;\012 sub asterisk' asterisk asterisk by asterisk.spacer;\012} asterisk_asterisk_asterisk;\012\012lookup colon_colon_colon {\012 ignore sub colon colon' colon colon;\012 ignore sub colon' colon colon colon;\012 ignore sub parenleft question colon' colon colon;\012 ignore sub colon' colon colon [less greater];\012 ignore sub [less greater] colon' colon colon;\012 sub colon.spacer colon.spacer colon' by colon_colon_colon.liga;\012 sub colon.spacer colon' colon by colon.spacer;\012 sub colon' colon colon by colon.spacer;\012} colon_colon_colon;\012\012lookup colon_colon_equal {\012 ignore sub colon colon' colon equal;\012 ignore sub colon' colon equal equal;\012 ignore sub parenleft question colon' colon equal;\012 sub colon.spacer colon.spacer equal' by colon_colon_equal.liga;\012 sub colon.spacer colon' equal by colon.spacer;\012 sub colon' colon equal by colon.spacer;\012} colon_colon_equal;\012\012lookup equal_equal_equal {\012 ignore sub equal equal' equal equal;\012 ignore sub equal' equal equal equal;\012 ignore sub parenleft question equal' equal equal;\012 ignore sub parenleft question less equal' equal equal;\012 ignore sub less question equal' equal equal;\012 ignore sub bracketleft equal' equal equal;\012 ignore sub equal' equal equal bracketright;\012 ignore sub equal [colon exclam] equal' equal equal;\012 ignore sub [less greater bar slash] equal' equal equal;\012 ignore sub equal' equal equal [less greater bar slash];\012 ignore sub equal' equal equal [colon exclam] equal;\012 sub equal.spacer equal.spacer equal' by equal_equal_equal.liga;\012 sub equal.spacer equal' equal by equal.spacer;\012 sub equal' equal equal by equal.spacer;\012} equal_equal_equal;\012\012lookup exclam_equal_equal {\012 ignore sub exclam exclam' equal equal;\012 ignore sub exclam' equal equal equal;\012 ignore sub parenleft question exclam' equal equal;\012 ignore sub parenleft question less exclam' equal equal;\012 ignore sub equal exclam' equal equal;\012 sub exclam.spacer equal.spacer equal' by exclam_equal_equal.liga;\012 sub exclam.spacer equal' equal by equal.spacer;\012 sub exclam' equal equal by exclam.spacer;\012} exclam_equal_equal;\012\012lookup exclam_exclam_period {\012 ignore sub exclam exclam' exclam period;\012 ignore sub exclam' exclam period period;\012 ignore sub parenleft question exclam' exclam period;\012 ignore sub parenleft question less exclam' exclam period;\012 sub exclam.spacer exclam.spacer period' by exclam_exclam_period.liga;\012 sub exclam.spacer exclam' period by exclam.spacer;\012 sub exclam' exclam period by exclam.spacer;\012} exclam_exclam_period;\012\012lookup hyphen_hyphen_hyphen {\012 ignore sub hyphen hyphen' hyphen hyphen;\012 ignore sub hyphen' hyphen hyphen hyphen;\012 ignore sub [less greater bar] hyphen' hyphen hyphen;\012 ignore sub hyphen' hyphen hyphen [less greater bar];\012 sub hyphen.spacer hyphen.spacer hyphen' by hyphen_hyphen_hyphen.liga;\012 sub hyphen.spacer hyphen' hyphen by hyphen.spacer;\012 sub hyphen' hyphen hyphen by hyphen.spacer;\012} hyphen_hyphen_hyphen;\012\012lookup less_asciitilde_asciitilde {\012 ignore sub less less' asciitilde asciitilde;\012 ignore sub less' asciitilde asciitilde asciitilde;\012 sub less.spacer asciitilde.spacer asciitilde' by less_asciitilde_asciitilde.liga;\012 sub less.spacer asciitilde' asciitilde by asciitilde.spacer;\012 sub less' asciitilde asciitilde by less.spacer;\012} less_asciitilde_asciitilde;\012\012lookup less_asciitilde_greater {\012 ignore sub less less' asciitilde greater;\012 ignore sub less' asciitilde greater greater;\012 sub less.spacer asciitilde.spacer greater' by less_asciitilde_greater.liga;\012 sub less.spacer asciitilde' greater by asciitilde.spacer;\012 sub less' asciitilde greater by less.spacer;\012} less_asciitilde_greater;\012\012lookup less_asterisk_greater {\012 sub less.spacer asterisk.spacer greater' by less_asterisk_greater.liga;\012 sub less.spacer asterisk' greater by asterisk.spacer;\012 sub less' asterisk greater by less.spacer;\012} less_asterisk_greater;\012\012lookup less_dollar_greater {\012 sub less.spacer dollar.spacer greater' by less_dollar_greater.liga;\012 sub less.spacer dollar' greater by dollar.spacer;\012 sub less' dollar greater by less.spacer;\012} less_dollar_greater;\012\012lookup less_plus_greater {\012 sub less.spacer plus.spacer greater' by less_plus_greater.liga;\012 sub less.spacer plus' greater by plus.spacer;\012 sub less' plus greater by less.spacer;\012} less_plus_greater;\012\012lookup less_slash_greater {\012 ignore sub less less' slash greater;\012 ignore sub less' slash greater greater;\012 sub less.spacer slash.spacer greater' by less_slash_greater.liga;\012 sub less.spacer slash' greater by slash.spacer;\012 sub less' slash greater by less.spacer;\012} less_slash_greater;\012\012lookup numbersign_underscore_parenleft {\012 ignore sub numbersign numbersign' underscore parenleft;\012 ignore sub numbersign' underscore parenleft parenleft;\012 sub numbersign.spacer underscore.spacer parenleft' by numbersign_underscore_parenleft.liga;\012 sub numbersign.spacer underscore' parenleft by underscore.spacer;\012 sub numbersign' underscore parenleft by numbersign.spacer;\012} numbersign_underscore_parenleft;\012\012lookup period_period_equal {\012 ignore sub period period' period equal;\012 ignore sub period' period equal equal;\012 sub period.spacer period.spacer equal' by period_period_equal.liga;\012 sub period.spacer period' equal by period.spacer;\012 sub period' period equal by period.spacer;\012} period_period_equal;\012\012lookup period_period_less {\012 ignore sub period period' period less;\012 ignore sub period' period less less;\012 sub period.spacer period.spacer less' by period_period_less.liga;\012 sub period.spacer period' less by period.spacer;\012 sub period' period less by period.spacer;\012} period_period_less;\012\012lookup period_period_period {\012 ignore sub period period' period period;\012 ignore sub period' period period period;\012 sub period.spacer period.spacer period' by period_period_period.liga;\012 sub period.spacer period' period by period.spacer;\012 sub period' period period by period.spacer;\012} period_period_period;\012\012lookup plus_plus_plus {\012 ignore sub plus plus' plus plus;\012 ignore sub plus' plus plus plus;\012 sub plus.spacer plus.spacer plus' by plus_plus_plus.liga;\012 sub plus.spacer plus' plus by plus.spacer;\012 sub plus' plus plus by plus.spacer;\012} plus_plus_plus;\012\012lookup slash_slash_slash {\012 ignore sub slash slash' slash slash;\012 ignore sub slash' slash slash slash;\012 sub slash.spacer slash.spacer slash' by slash_slash_slash.liga;\012 sub slash.spacer slash' slash by slash.spacer;\012 sub slash' slash slash by slash.spacer;\012} slash_slash_slash;\012\012lookup w_w_w {\012 ignore sub w w' w w;\012 ignore sub w' w w w;\012 sub w.spacer w.spacer w' by w_w_w.liga;\012 sub w.spacer w' w by w.spacer;\012 sub w' w w by w.spacer;\012} w_w_w;\012\012lookup ampersand_ampersand {\012 ignore sub ampersand ampersand' ampersand;\012 ignore sub ampersand' ampersand ampersand;\012 sub ampersand.spacer ampersand' by ampersand_ampersand.liga;\012 sub ampersand' ampersand by ampersand.spacer;\012} ampersand_ampersand;\012\012lookup asciicircum_equal {\012 ignore sub asciicircum asciicircum' equal;\012 ignore sub asciicircum' equal equal;\012 sub asciicircum.spacer equal' by asciicircum_equal.liga;\012 sub asciicircum' equal by asciicircum.spacer;\012} asciicircum_equal;\012\012lookup asciitilde_asciitilde {\012 ignore sub asciitilde asciitilde' asciitilde;\012 ignore sub asciitilde' asciitilde asciitilde;\012 sub asciitilde.spacer asciitilde' by asciitilde_asciitilde.liga;\012 sub asciitilde' asciitilde by asciitilde.spacer;\012} asciitilde_asciitilde;\012\012lookup asciitilde_at {\012 ignore sub asciitilde asciitilde' at;\012 ignore sub asciitilde' at at;\012 sub asciitilde.spacer at' by asciitilde_at.liga;\012 sub asciitilde' at by asciitilde.spacer;\012} asciitilde_at;\012\012lookup asciitilde_greater {\012 ignore sub asciitilde asciitilde' greater;\012 ignore sub asciitilde' greater greater;\012 sub asciitilde.spacer greater' by asciitilde_greater.liga;\012 sub asciitilde' greater by asciitilde.spacer;\012} asciitilde_greater;\012\012lookup asciitilde_hyphen {\012 ignore sub asciitilde asciitilde' hyphen;\012 ignore sub asciitilde' hyphen hyphen;\012 sub asciitilde.spacer hyphen' by asciitilde_hyphen.liga;\012 sub asciitilde' hyphen by asciitilde.spacer;\012} asciitilde_hyphen;\012\012lookup asterisk_asterisk {\012 ignore sub asterisk asterisk' asterisk;\012 ignore sub asterisk' asterisk asterisk;\012 ignore sub slash asterisk' asterisk;\012 ignore sub asterisk' asterisk slash;\012 sub asterisk.spacer asterisk' by asterisk_asterisk.liga;\012 sub asterisk' asterisk by asterisk.spacer;\012} asterisk_asterisk;\012\012lookup asterisk_greater {\012 ignore sub asterisk asterisk' greater;\012 ignore sub asterisk' greater greater;\012 sub asterisk.spacer greater' by asterisk_greater.liga;\012 sub asterisk' greater by asterisk.spacer;\012} asterisk_greater;\012\012lookup asterisk_slash {\012 ignore sub asterisk asterisk' slash;\012 ignore sub asterisk' slash slash;\012 ignore sub slash asterisk' slash;\012 ignore sub asterisk' slash asterisk;\012 sub asterisk.spacer slash' by asterisk_slash.liga;\012 sub asterisk' slash by asterisk.spacer;\012} asterisk_slash;\012\012lookup bar_braceright {\012 ignore sub bar bar' braceright;\012 ignore sub bar' braceright braceright;\012 ignore sub braceleft bar' braceright;\012 sub bar.spacer braceright' by bar_braceright.liga;\012 sub bar' braceright by bar.spacer;\012} bar_braceright;\012\012lookup bar_bracketright {\012 ignore sub bar bar' bracketright;\012 ignore sub bar' bracketright bracketright;\012 ignore sub bracketleft bar' bracketright;\012 sub bar.spacer bracketright' by bar_bracketright.liga;\012 sub bar' bracketright by bar.spacer;\012} bar_bracketright;\012\012lookup braceleft_bar {\012 ignore sub braceleft braceleft' bar;\012 ignore sub braceleft' bar bar;\012 ignore sub braceleft' bar braceright;\012 sub braceleft.spacer bar' by braceleft_bar.liga;\012 sub braceleft' bar by braceleft.spacer;\012} braceleft_bar;\012\012lookup bracketleft_bar {\012 ignore sub bracketleft bracketleft' bar;\012 ignore sub bracketleft' bar bar;\012 ignore sub bracketleft' bar bracketright;\012 sub bracketleft.spacer bar' by bracketleft_bar.liga;\012 sub bracketleft' bar by bracketleft.spacer;\012} bracketleft_bar;\012\012lookup bracketright_numbersign {\012 ignore sub bracketright bracketright' numbersign;\012 ignore sub bracketright' numbersign numbersign;\012 sub bracketright.spacer numbersign' by bracketright_numbersign.liga;\012 sub bracketright' numbersign by bracketright.spacer;\012} bracketright_numbersign;\012\012lookup colon_colon {\012 ignore sub colon colon' colon;\012 ignore sub colon' colon colon;\012 ignore sub parenleft question colon' colon;\012 ignore sub colon' colon [less greater];\012 ignore sub [less greater] colon' colon;\012 sub colon.spacer colon' by colon_colon.liga;\012 sub colon' colon by colon.spacer;\012} colon_colon;\012\012lookup colon_equal {\012 ignore sub colon colon' equal;\012 ignore sub colon' equal equal;\012 ignore sub parenleft question colon' equal;\012 ignore sub equal colon' equal;\012 sub colon.spacer equal' by colon_equal.liga;\012 sub colon' equal by colon.spacer;\012} colon_equal;\012\012lookup dollar_greater {\012 ignore sub dollar dollar' greater;\012 ignore sub dollar' greater greater;\012 sub dollar.spacer greater' by dollar_greater.liga;\012 sub dollar' greater by dollar.spacer;\012} dollar_greater;\012\012lookup equal_equal {\012 ignore sub equal equal' equal;\012 ignore sub equal' equal equal;\012 ignore sub parenleft question equal' equal;\012 ignore sub parenleft question less equal' equal;\012 ignore sub less question equal' equal;\012 ignore sub bracketleft equal' equal;\012 ignore sub equal' equal bracketright;\012 ignore sub equal [colon exclam] equal' equal;\012 ignore sub [less greater bar slash] equal' equal;\012 ignore sub equal' equal [less greater bar slash] ;\012 ignore sub equal' equal [colon exclam] equal;\012 sub equal.spacer equal' by equal_equal.liga;\012 sub equal' equal by equal.spacer;\012} equal_equal;\012\012lookup exclam_equal {\012 ignore sub exclam exclam' equal;\012 ignore sub exclam' equal equal;\012 ignore sub parenleft question exclam' equal;\012 ignore sub parenleft question less exclam' equal;\012 ignore sub equal exclam' equal;\012 sub exclam.spacer equal' by exclam_equal.liga;\012 sub exclam' equal by exclam.spacer;\012} exclam_equal;\012\012lookup exclam_exclam {\012 ignore sub exclam exclam' exclam;\012 ignore sub exclam' exclam exclam;\012 ignore sub parenleft question exclam' exclam;\012 ignore sub parenleft question less exclam' exclam;\012 sub exclam.spacer exclam' by exclam_exclam.liga;\012 sub exclam' exclam by exclam.spacer;\012} exclam_exclam;\012\012lookup greater_equal {\012 ignore sub greater greater' equal;\012 ignore sub greater' equal equal;\012 ignore sub equal greater' equal;\012 ignore sub greater' equal [less greater bar colon exclam slash];\012 sub greater.spacer equal' by greater_equal.liga;\012 sub greater' equal by greater.spacer;\012} greater_equal;\012\012lookup hyphen_asciitilde {\012 ignore sub hyphen hyphen' asciitilde;\012 ignore sub hyphen' asciitilde asciitilde;\012 sub hyphen.spacer asciitilde' by hyphen_asciitilde.liga;\012 sub hyphen' asciitilde by hyphen.spacer;\012} hyphen_asciitilde;\012\012lookup hyphen_hyphen {\012 ignore sub hyphen hyphen' hyphen;\012 ignore sub hyphen' hyphen hyphen;\012 ignore sub [less greater bar] hyphen' hyphen;\012 ignore sub hyphen' hyphen [less greater bar];\012 sub hyphen.spacer hyphen' by hyphen_hyphen.liga;\012 sub hyphen' hyphen by hyphen.spacer;\012} hyphen_hyphen;\012\012lookup less_asciitilde {\012 ignore sub less less' asciitilde;\012 ignore sub less' asciitilde asciitilde;\012 sub less.spacer asciitilde' by less_asciitilde.liga;\012 sub less' asciitilde by less.spacer;\012} less_asciitilde;\012\012lookup less_asterisk {\012 ignore sub less less' asterisk;\012 ignore sub less' asterisk asterisk;\012 sub less.spacer asterisk' by less_asterisk.liga;\012 sub less' asterisk by less.spacer;\012} less_asterisk;\012\012lookup less_dollar {\012 ignore sub less less' dollar;\012 ignore sub less' dollar dollar;\012 sub less.spacer dollar' by less_dollar.liga;\012 sub less' dollar by less.spacer;\012} less_dollar;\012\012lookup less_equal {\012 ignore sub less less' equal;\012 ignore sub less' equal equal;\012 ignore sub parenleft question less' equal;\012 ignore sub equal less' equal;\012 ignore sub less' equal [less greater bar colon exclam slash];\012 sub less.spacer equal' by less_equal.liga;\012 sub less' equal by less.spacer;\012} less_equal;\012\012lookup less_greater {\012 ignore sub less less' greater;\012 ignore sub less' greater greater;\012 sub less.spacer greater' by less_greater.liga;\012 sub less' greater by less.spacer;\012} less_greater;\012\012lookup less_plus {\012 ignore sub less less' plus;\012 ignore sub less' plus plus;\012 sub less.spacer plus' by less_plus.liga;\012 sub less' plus by less.spacer;\012} less_plus;\012\012lookup less_slash {\012 ignore sub less less' slash;\012 ignore sub less' slash slash;\012 sub less.spacer slash' by less_slash.liga;\012 sub less' slash by less.spacer;\012} less_slash;\012\012lookup numbersign_braceleft {\012 ignore sub numbersign numbersign' braceleft;\012 ignore sub numbersign' braceleft braceleft;\012 sub numbersign.spacer braceleft' by numbersign_braceleft.liga;\012 sub numbersign' braceleft by numbersign.spacer;\012} numbersign_braceleft;\012\012lookup numbersign_bracketleft {\012 ignore sub numbersign numbersign' bracketleft;\012 ignore sub numbersign' bracketleft bracketleft;\012 sub numbersign.spacer bracketleft' by numbersign_bracketleft.liga;\012 sub numbersign' bracketleft by numbersign.spacer;\012} numbersign_bracketleft;\012\012lookup numbersign_colon {\012 ignore sub numbersign numbersign' colon;\012 ignore sub numbersign' colon colon;\012 sub numbersign.spacer colon' by numbersign_colon.liga;\012 sub numbersign' colon by numbersign.spacer;\012} numbersign_colon;\012\012lookup numbersign_equal {\012 ignore sub numbersign numbersign' equal;\012 ignore sub numbersign' equal equal;\012 sub numbersign.spacer equal' by numbersign_equal.liga;\012 sub numbersign' equal by numbersign.spacer;\012} numbersign_equal;\012\012lookup numbersign_exclam {\012 ignore sub numbersign numbersign' exclam;\012 ignore sub numbersign' exclam exclam;\012 sub numbersign.spacer exclam' by numbersign_exclam.liga;\012 sub numbersign' exclam by numbersign.spacer;\012} numbersign_exclam;\012\012lookup numbersign_parenleft {\012 ignore sub numbersign numbersign' parenleft;\012 ignore sub numbersign' parenleft parenleft;\012 sub numbersign.spacer parenleft' by numbersign_parenleft.liga;\012 sub numbersign' parenleft by numbersign.spacer;\012} numbersign_parenleft;\012\012lookup numbersign_question {\012 ignore sub numbersign numbersign' question;\012 ignore sub numbersign' question question;\012 sub numbersign.spacer question' by numbersign_question.liga;\012 sub numbersign' question by numbersign.spacer;\012} numbersign_question;\012\012lookup numbersign_underscore {\012 ignore sub numbersign numbersign' underscore;\012 ignore sub numbersign' underscore underscore;\012 sub numbersign.spacer underscore' by numbersign_underscore.liga;\012 sub numbersign' underscore by numbersign.spacer;\012} numbersign_underscore;\012\012lookup percent_percent {\012 ignore sub percent percent' percent;\012 ignore sub percent' percent percent;\012 sub percent.spacer percent' by percent_percent.liga;\012 sub percent' percent by percent.spacer;\012} percent_percent;\012\012lookup period_equal {\012 ignore sub period period' equal;\012 ignore sub period' equal equal;\012 sub period.spacer equal' by period_equal.liga;\012 sub period' equal by period.spacer;\012} period_equal;\012\012lookup period_hyphen {\012 ignore sub period period' hyphen;\012 ignore sub period' hyphen hyphen;\012 sub period.spacer hyphen' by period_hyphen.liga;\012 sub period' hyphen by period.spacer;\012} period_hyphen;\012\012lookup period_period {\012 ignore sub period period' period;\012 ignore sub period' period period;\012 sub period.spacer period' by period_period.liga;\012 sub period' period by period.spacer;\012} period_period;\012\012lookup period_question {\012 ignore sub period period' question;\012 ignore sub period' question question;\012 sub period.spacer question' by period_question.liga;\012 sub period' question by period.spacer;\012} period_question;\012\012lookup plus_greater {\012 ignore sub plus plus' greater;\012 ignore sub plus' greater greater;\012 sub plus.spacer greater' by plus_greater.liga;\012 sub plus' greater by plus.spacer;\012} plus_greater;\012\012lookup plus_plus {\012 ignore sub plus plus' plus;\012 ignore sub plus' plus plus;\012 sub plus.spacer plus' by plus_plus.liga;\012 sub plus' plus by plus.spacer;\012} plus_plus;\012\012lookup question_equal {\012 ignore sub question question' equal;\012 ignore sub question' equal equal;\012 ignore sub parenleft question' equal;\012 ignore sub less question' equal;\012 sub question.spacer equal' by question_equal.liga;\012 sub question' equal by question.spacer;\012} question_equal;\012\012lookup question_period {\012 ignore sub question question' period;\012 ignore sub question' period period;\012 sub question.spacer period' by question_period.liga;\012 sub question' period by question.spacer;\012} question_period;\012\012lookup question_question {\012 ignore sub question question' question;\012 ignore sub question' question question;\012 sub question.spacer question' by question_question.liga;\012 sub question' question by question.spacer;\012} question_question;\012\012lookup semicolon_semicolon {\012 ignore sub semicolon semicolon' semicolon;\012 ignore sub semicolon' semicolon semicolon;\012 sub semicolon.spacer semicolon' by semicolon_semicolon.liga;\012 sub semicolon' semicolon by semicolon.spacer;\012} semicolon_semicolon;\012\012lookup slash_asterisk {\012 ignore sub slash slash' asterisk;\012 ignore sub slash' asterisk asterisk;\012 ignore sub slash' asterisk slash;\012 ignore sub asterisk slash' asterisk;\012 sub slash.spacer asterisk' by slash_asterisk.liga;\012 sub slash' asterisk by slash.spacer;\012} slash_asterisk;\012\012lookup slash_greater {\012 ignore sub slash slash' greater;\012 ignore sub slash' greater greater;\012 sub slash.spacer greater' by slash_greater.liga;\012 sub slash' greater by slash.spacer;\012} slash_greater;\012\012lookup slash_slash {\012 ignore sub slash slash' slash;\012 ignore sub slash' slash slash;\012 sub slash.spacer slash' by slash_slash.liga;\012 sub slash' slash by slash.spacer;\012} slash_slash;\012\012### Vertical-align colon/greater/less\012\012# :> :< >: <:\012# :>: :<:\012# <:> >:< <:< >:>\012# <::> <::< >::< >::>\012# <:::> <:::< >:::< >:::>\012# <::::> <::::< >::::< >::::>\012\012lookup center {\012 #574 :>= :<=\012 ignore sub colon' [less greater] [equal hyphen];\012\012 # middles & ends\012 sub [less.center greater.center colon.center] colon' by colon.center;\012 sub colon.center [less greater]' by [less.center greater.center];\012\012 # starts\012 sub [less greater]' colon by [less.center greater.center];\012 sub colon' [less greater] by colon.center;\012} center;\012\012### Logical conjuntion/disjunction #738\012\012lookup slash_backslash {\012 ignore sub @NotSpace slash' backslash;\012 ignore sub slash' backslash @NotSpace;\012 sub slash.spacer backslash' by slash_backslash.liga;\012 sub slash' backslash by slash.spacer;\012} slash_backslash;\012\012lookup backslash_slash {\012 ignore sub @NotSpace backslash' slash;\012 ignore sub backslash' slash @NotSpace;\012 sub backslash.spacer slash' by backslash_slash.liga;\012 sub backslash' slash by backslash.spacer;\012} backslash_slash;\012\012### 0xFF\012sub [zero zero.zero] x' [@Digit @HexDigit] by x.multiply;\012sub [zero.tosf zero.zero.tosf zero.tosf.zero] x' [@DigitTosf @HexDigit] by x.multiply.tosf;\012\012### 800x600\012sub @Digit x' @Digit by x.multiply; \012sub @DigitTosf x' @DigitTosf by x.multiply.tosf;\012\012lookup equal_arrows {\012 # Disable |||\012 ignore sub bar bar' bar equal;\012 ignore sub bar bar' equal;\012 ignore sub [equal_start.seq equal_middle.seq] bar' bar bar;\012\012 # equal middle & end\012 sub [less_equal_start.seq less_less_equal_start.seq less_equal_middle.seq less_less_equal_middle.seq greater_equal_start.seq greater_greater_equal_start.seq greater_equal_middle.seq greater_greater_equal_middle.seq bar_equal_start.seq bar_bar_equal_start.seq bar_equal_middle.seq bar_bar_equal_middle.seq slash_equal_start.seq slash_equal_middle.seq colon_equal_middle.seq exclam_equal_middle.seq equal_start.seq equal_middle.seq] equal' [equal less greater bar slash colon exclam] by equal_middle.seq;\012\012 sub [less_equal_start.seq less_less_equal_start.seq less_equal_middle.seq less_less_equal_middle.seq greater_equal_start.seq greater_greater_equal_start.seq greater_equal_middle.seq greater_greater_equal_middle.seq bar_equal_start.seq bar_bar_equal_start.seq bar_equal_middle.seq bar_bar_equal_middle.seq slash_equal_start.seq slash_equal_middle.seq colon_equal_middle.seq exclam_equal_middle.seq equal_start.seq equal_middle.seq] equal' by equal_end.seq;\012\012 # double middles\012 sub [equal_start.seq equal_middle.seq] less.spacer less' equal by less_less_equal_middle.seq;\012 sub [equal_start.seq equal_middle.seq] less' less equal by less.spacer;\012 sub [equal_start.seq equal_middle.seq] greater.spacer greater' equal by greater_greater_equal_middle.seq;\012 sub [equal_start.seq equal_middle.seq] greater' greater equal by greater.spacer;\012 sub [equal_start.seq equal_middle.seq] bar.spacer bar' equal by bar_bar_equal_middle.seq;\012 sub [equal_start.seq equal_middle.seq] bar' bar equal by bar.spacer;\012\012 # single middles\012 sub [equal_start.seq equal_middle.seq] less' equal by less_equal_middle.seq;\012 sub [equal_start.seq equal_middle.seq] greater' equal by greater_equal_middle.seq;\012 sub [equal_start.seq equal_middle.seq] bar' equal by bar_equal_middle.seq;\012 sub [equal_start.seq equal_middle.seq] slash' equal by slash_equal_middle.seq;\012 sub [equal_start.seq equal_middle.seq] colon' equal by colon_equal_middle.seq;\012 sub [equal_start.seq equal_middle.seq] exclam' equal by exclam_equal_middle.seq;\012\012 # double ends\012 sub [equal_start.seq equal_middle.seq] less.spacer less' by less_less_equal_end.seq;\012 sub [equal_start.seq equal_middle.seq] less' less by less.spacer;\012 sub [equal_start.seq equal_middle.seq] greater.spacer greater' by greater_greater_equal_end.seq;\012 sub [equal_start.seq equal_middle.seq] greater' greater by greater.spacer;\012 sub [equal_start.seq equal_middle.seq] bar.spacer bar' by bar_bar_equal_end.seq;\012 sub [equal_start.seq equal_middle.seq] bar' bar by bar.spacer;\012\012 # single ends\012 sub [equal_start.seq equal_middle.seq] less' by less_equal_end.seq;\012 sub [equal_start.seq equal_middle.seq] greater' by greater_equal_end.seq;\012 sub [equal_start.seq equal_middle.seq] bar' by bar_equal_end.seq;\012 sub [equal_start.seq equal_middle.seq] slash' by slash_equal_end.seq;\012\012 # double beginnings\012 sub less.spacer less' equal by less_less_equal_start.seq;\012 sub less' less equal by less.spacer;\012 sub greater.spacer greater' equal by greater_greater_equal_start.seq;\012 sub greater' greater equal by greater.spacer;\012 sub bar.spacer bar' equal by bar_bar_equal_start.seq;\012 sub bar' bar equal by bar.spacer;\012\012 # Disable >=< #548\012 sub greater' equal less [equal less] by greater_equal_start.seq;\012 ignore sub greater' equal less;\012 \012 # Disable =< #479 #468 #424 #406 #355 #305\012 sub equal' less [equal less] by equal_start.seq;\012\012 # Disable =/ #1056\012 sub equal' slash equal by equal_start.seq; \012\012 # single beginnings\012 sub less' equal by less_equal_start.seq;\012 sub greater' equal by greater_equal_start.seq;\012 sub bar' equal by bar_equal_start.seq;\012 sub slash' equal by slash_equal_start.seq;\012 sub equal' [equal greater bar colon exclam] by equal_start.seq;\012\012} equal_arrows;\012\012### fi/fl #795\012\012sub [f i.salt_low j.salt_low] [i j]' by [i.salt_low j.salt_low];\012sub [F T I l.salt_low] l' by l.salt_low;\012\012### Greek\012\012lookup caltGreekUCdiph {\012 sub @GreekUCdiphIOTA Iota' by Iotadieresis;\012 sub @GreekUCdiphUPSILON Upsilon' by Upsilondieresis;\012} caltGreekUCdiph;\012\012lookup caltGreekUC {\012 sub @GreekUCAcc' @GreekUC by @GreekUCcalt;\012 sub @GreekUC @GreekUCAcc' by @GreekUCcalt;\012 sub @GreekUCAcc' space @GreekUC by @GreekUCcalt;\012 sub @GreekUC space @GreekUCAcc' by @GreekUCcalt;\012} caltGreekUC;\012\012### Arbitrary-length arrows #346\012\012lookup hyphen_arrows {\012 # Disable |||\012 ignore sub bar bar' bar hyphen;\012 ignore sub bar bar' hyphen;\012 ignore sub [hyphen_start.seq hyphen_middle.seq] bar' bar bar;\012\012 # hyphen middle & end\012 sub [less_hyphen_start.seq less_less_hyphen_start.seq less_hyphen_middle.seq less_less_hyphen_middle.seq greater_hyphen_start.seq greater_greater_hyphen_start.seq greater_hyphen_middle.seq greater_greater_hyphen_middle.seq bar_hyphen_start.seq bar_bar_hyphen_start.seq bar_hyphen_middle.seq bar_bar_hyphen_middle.seq hyphen_start.seq hyphen_middle.seq] hyphen' [hyphen less greater bar] by hyphen_middle.seq;\012\012 sub [less_hyphen_start.seq less_less_hyphen_start.seq less_hyphen_middle.seq less_less_hyphen_middle.seq greater_hyphen_start.seq greater_greater_hyphen_start.seq greater_hyphen_middle.seq greater_greater_hyphen_middle.seq bar_hyphen_start.seq bar_bar_hyphen_start.seq bar_hyphen_middle.seq bar_bar_hyphen_middle.seq hyphen_start.seq hyphen_middle.seq] hyphen' by hyphen_end.seq;\012\012 # double middles\012 sub [hyphen_start.seq hyphen_middle.seq] less.spacer less' hyphen by less_less_hyphen_middle.seq;\012 sub [hyphen_start.seq hyphen_middle.seq] less' less hyphen by less.spacer;\012 sub [hyphen_start.seq hyphen_middle.seq] greater.spacer greater' hyphen by greater_greater_hyphen_middle.seq;\012 sub [hyphen_start.seq hyphen_middle.seq] greater' greater hyphen by greater.spacer;\012 sub [hyphen_start.seq hyphen_middle.seq] bar.spacer bar' hyphen by bar_bar_hyphen_middle.seq;\012 sub [hyphen_start.seq hyphen_middle.seq] bar' bar hyphen by bar.spacer;\012\012 # single middles\012 sub [hyphen_start.seq hyphen_middle.seq] less' hyphen by less_hyphen_middle.seq;\012 sub [hyphen_start.seq hyphen_middle.seq] greater' hyphen by greater_hyphen_middle.seq;\012 sub [hyphen_start.seq hyphen_middle.seq] bar' hyphen by bar_hyphen_middle.seq;\012\012 # double ends\012 sub [hyphen_start.seq hyphen_middle.seq] less.spacer less' by less_less_hyphen_end.seq;\012 sub [hyphen_start.seq hyphen_middle.seq] less' less by less.spacer;\012 sub [hyphen_start.seq hyphen_middle.seq] greater.spacer greater' by greater_greater_hyphen_end.seq;\012 sub [hyphen_start.seq hyphen_middle.seq] greater' greater by greater.spacer;\012 sub [hyphen_start.seq hyphen_middle.seq] bar.spacer bar' by bar_bar_hyphen_end.seq;\012 sub [hyphen_start.seq hyphen_middle.seq] bar' bar by bar.spacer;\012\012 # single ends\012 sub [hyphen_start.seq hyphen_middle.seq] less' by less_hyphen_end.seq;\012 sub [hyphen_start.seq hyphen_middle.seq] greater' by greater_hyphen_end.seq;\012 sub [hyphen_start.seq hyphen_middle.seq] bar' by bar_hyphen_end.seq;\012\012 # double beginnings\012 sub less.spacer less' hyphen by less_less_hyphen_start.seq;\012 sub less' less hyphen by less.spacer;\012 sub greater.spacer greater' hyphen by greater_greater_hyphen_start.seq;\012 sub greater' greater hyphen by greater.spacer;\012 sub bar.spacer bar' hyphen by bar_bar_hyphen_start.seq;\012 sub bar' bar hyphen by bar.spacer;\012\012 # single beginnings\012 sub less' hyphen by less_hyphen_start.seq;\012 sub greater' hyphen by greater_hyphen_start.seq;\012 sub bar' hyphen by bar_hyphen_start.seq;\012 sub hyphen' [hyphen less greater bar] by hyphen_start.seq;\012} hyphen_arrows;\012\012### Lowercase/uppercase operators\012\012# Must go after hyphen_arrows.fea\012\012lookup lowercase_hyphen {\012 ignore sub @Tall \\hyphen' @Lowercase;\012 ignore sub @Lowercase \\hyphen' @Tall; \012 sub \\hyphen' @Lowercase by \\hyphen.lc;\012 sub @Lowercase \\hyphen' by \\hyphen.lc;\012} lowercase_hyphen;\012\012lookup lowercase_plus {\012 ignore sub @Tall \\plus' @Lowercase;\012 ignore sub @Lowercase \\plus' @Tall;\012 sub \\plus' @Lowercase by \\plus.lc;\012 sub @Lowercase \\plus' by \\plus.lc;\012} lowercase_plus;\012\012lookup lowercase_asterisk {\012 ignore sub @Tall \\asterisk' @Lowercase;\012 ignore sub @Lowercase \\asterisk' @Tall;\012 sub \\asterisk' @Lowercase by \\asterisk.lc;\012 sub @Lowercase \\asterisk' by \\asterisk.lc;\012} lowercase_asterisk;\012\012lookup uppercase_colon {\012 ignore sub @Tall \\colon' @Lowercase;\012 ignore sub @Lowercase \\colon' @Tall;\012 sub @Tall \\colon' by \\colon.uc;\012 sub \\colon' @Tall by \\colon.uc;\012# pos @Tall \\colon' <0 160 0 0>;\012# pos \\colon' @Tall <0 160 0 0>;\012} uppercase_colon;\012\012lookup numbersigns {\012 # middle parts\012 sub [numbersign_start.seq numbersign_middle.seq] numbersign' numbersign by numbersign_middle.seq;\012\012 # ends\012 sub [numbersign_start.seq numbersign_middle.seq] numbersign' by numbersign_end.seq;\012 \012 # beginnings\012 sub numbersign' numbersign by numbersign_start.seq; \012} numbersigns;\012\012lookup underscores {\012 # middle parts\012 sub [underscore_start.seq underscore_middle.seq] bar' underscore by bar_underscore_middle.seq;\012\012 sub [underscore_start.seq underscore_middle.seq bar_underscore_middle.seq] underscore' bar underscore by underscore_middle.seq;\012 sub [underscore_start.seq underscore_middle.seq bar_underscore_middle.seq] underscore' underscore by underscore_middle.seq;\012\012 # ends\012 sub [underscore_start.seq underscore_middle.seq bar_underscore_middle.seq] underscore' by underscore_end.seq;\012 \012 # beginnings\012 sub underscore' bar underscore by underscore_start.seq; \012 sub underscore' underscore by underscore_start.seq; \012} underscores;"; +code = "lookup less_bar_greater {\012 ignore sub less less' bar greater;\012 ignore sub less' bar greater greater;\012 sub less.spacer bar.spacer greater' by less_bar_greater.liga;\012 sub less.spacer bar' greater by bar.spacer;\012 sub less' bar greater by less.spacer;\012} less_bar_greater;\012\012lookup bar_bar_bar_greater {\012 ignore sub bar bar' bar bar greater;\012 ignore sub bar' bar bar greater greater;\012 sub bar.spacer bar.spacer bar.spacer greater' by bar_bar_bar_greater.liga;\012 sub bar.spacer bar.spacer bar' greater by bar.spacer;\012 sub bar.spacer bar' bar greater by bar.spacer;\012 sub bar' bar bar greater by bar.spacer;\012} bar_bar_bar_greater;\012\012lookup less_bar_bar_bar {\012 ignore sub less less' bar bar bar;\012 ignore sub less' bar bar bar bar;\012 sub less.spacer bar.spacer bar.spacer bar' by less_bar_bar_bar.liga;\012 sub less.spacer bar.spacer bar' bar by bar.spacer;\012 sub less.spacer bar' bar bar by bar.spacer;\012 sub less' bar bar bar by less.spacer;\012} less_bar_bar_bar;\012\012lookup bar_bar_greater {\012 ignore sub bar bar' bar greater;\012 ignore sub bar' bar greater greater;\012 ignore sub less bar' bar greater;\012 sub bar.spacer bar.spacer greater' by bar_bar_greater.liga;\012 sub bar.spacer bar' greater by bar.spacer;\012 sub bar' bar greater by bar.spacer;\012} bar_bar_greater;\012\012lookup less_bar_bar {\012 ignore sub less less' bar bar;\012 ignore sub less' bar bar bar;\012 ignore sub less' bar bar greater;\012 sub less.spacer bar.spacer bar' by less_bar_bar.liga;\012 sub less.spacer bar' bar by bar.spacer;\012 sub less' bar bar by less.spacer;\012} less_bar_bar;\012\012lookup bar_greater {\012 ignore sub bar bar' greater;\012 ignore sub bar' greater greater;\012 sub bar.spacer greater' by bar_greater.liga;\012 sub bar' greater by bar.spacer;\012} bar_greater;\012\012lookup less_bar {\012 ignore sub less less' bar;\012 ignore sub less' bar bar;\012 sub less.spacer bar' by less_bar.liga;\012 sub less' bar by less.spacer;\012} less_bar;\012\012lookup bar_bar_bar {\012 ignore sub bar bar' bar bar;\012 ignore sub bar' bar bar bar;\012 sub bar.spacer bar.spacer bar' by bar_bar_bar.liga;\012 sub bar.spacer bar' bar by bar.spacer;\012 sub bar' bar bar by bar.spacer;\012} bar_bar_bar;\012\012lookup greater_greater_greater {\012 ignore sub greater greater' greater greater;\012 ignore sub greater' greater greater greater;\012 ignore sub [asterisk plus dollar] greater' greater greater;\012 sub greater.spacer greater.spacer greater' by greater_greater_greater.liga;\012 sub greater.spacer greater' greater by greater.spacer;\012 sub greater' greater greater by greater.spacer;\012} greater_greater_greater;\012\012lookup less_less_less {\012 ignore sub less less' less less;\012 ignore sub less' less less less;\012 ignore sub less' less less [asterisk plus dollar];\012 sub less.spacer less.spacer less' by less_less_less.liga;\012 sub less.spacer less' less by less.spacer;\012 sub less' less less by less.spacer;\012} less_less_less;\012\012lookup bar_bar {\012 ignore sub bar bar' bar;\012 ignore sub bar' bar bar;\012 ignore sub [hyphen equal] bar' bar;\012 ignore sub bar' bar [hyphen equal];\012 sub bar.spacer bar' by bar_bar.liga;\012 sub bar' bar by bar.spacer;\012} bar_bar;\012\012lookup greater_greater {\012 ignore sub greater greater' greater;\012 ignore sub greater' greater greater;\012 ignore sub [asterisk plus dollar] greater' greater;\012 ignore sub [hyphen equal] greater' greater;\012 ignore sub greater' greater [hyphen equal];\012 sub greater.spacer greater' by greater_greater.liga;\012 sub greater' greater by greater.spacer;\012} greater_greater;\012\012lookup less_less {\012 ignore sub less less' less;\012 ignore sub less' less less;\012 ignore sub less' less [asterisk plus dollar];\012 ignore sub [hyphen equal] less' less;\012 ignore sub less' less [hyphen equal];\012 sub less.spacer less' by less_less.liga;\012 sub less' less by less.spacer;\012} less_less;\012\012lookup less_exclam_hyphen_hyphen {\012 ignore sub less less' exclam hyphen hyphen;\012 ignore sub less' exclam hyphen hyphen hyphen;\012 ignore sub parenleft question less' exclam hyphen hyphen;\012 sub less.spacer exclam.spacer hyphen.spacer hyphen' by less_exclam_hyphen_hyphen.liga;\012 sub less.spacer exclam.spacer hyphen' hyphen by hyphen.spacer;\012 sub less.spacer exclam' hyphen hyphen by exclam.spacer;\012 sub less' exclam hyphen hyphen by less.spacer;\012} less_exclam_hyphen_hyphen;\012\012lookup asciitilde_asciitilde_greater {\012 ignore sub asciitilde asciitilde' asciitilde greater;\012 ignore sub asciitilde' asciitilde greater greater;\012 sub asciitilde.spacer asciitilde.spacer greater' by asciitilde_asciitilde_greater.liga;\012 sub asciitilde.spacer asciitilde' greater by asciitilde.spacer;\012 sub asciitilde' asciitilde greater by asciitilde.spacer;\012} asciitilde_asciitilde_greater;\012\012lookup asterisk_asterisk_asterisk {\012 ignore sub asterisk asterisk' asterisk asterisk;\012 ignore sub asterisk' asterisk asterisk asterisk;\012 ignore sub slash asterisk' asterisk asterisk;\012 ignore sub asterisk' asterisk asterisk slash;\012 sub asterisk.spacer asterisk.spacer asterisk' by asterisk_asterisk_asterisk.liga;\012 sub asterisk.spacer asterisk' asterisk by asterisk.spacer;\012 sub asterisk' asterisk asterisk by asterisk.spacer;\012} asterisk_asterisk_asterisk;\012\012lookup colon_colon_colon {\012 ignore sub colon colon' colon colon;\012 ignore sub colon' colon colon colon;\012 ignore sub parenleft question colon' colon colon;\012 ignore sub colon' colon colon [less greater];\012 ignore sub [less greater] colon' colon colon;\012 sub colon.spacer colon.spacer colon' by colon_colon_colon.liga;\012 sub colon.spacer colon' colon by colon.spacer;\012 sub colon' colon colon by colon.spacer;\012} colon_colon_colon;\012\012lookup colon_colon_equal {\012 ignore sub colon colon' colon equal;\012 ignore sub colon' colon equal equal;\012 ignore sub parenleft question colon' colon equal;\012 sub colon.spacer colon.spacer equal' by colon_colon_equal.liga;\012 sub colon.spacer colon' equal by colon.spacer;\012 sub colon' colon equal by colon.spacer;\012} colon_colon_equal;\012\012lookup equal_equal_equal {\012 ignore sub equal equal' equal equal;\012 ignore sub equal' equal equal equal;\012 ignore sub parenleft question equal' equal equal;\012 ignore sub parenleft question less equal' equal equal;\012 ignore sub less question equal' equal equal;\012 ignore sub bracketleft equal' equal equal;\012 ignore sub equal' equal equal bracketright;\012 ignore sub equal [colon exclam] equal' equal equal;\012 ignore sub [less greater bar slash] equal' equal equal;\012 ignore sub equal' equal equal [less greater bar slash];\012 ignore sub equal' equal equal [colon exclam] equal;\012 sub equal.spacer equal.spacer equal' by equal_equal_equal.liga;\012 sub equal.spacer equal' equal by equal.spacer;\012 sub equal' equal equal by equal.spacer;\012} equal_equal_equal;\012\012lookup exclam_equal_equal {\012 ignore sub exclam exclam' equal equal;\012 ignore sub exclam' equal equal equal;\012 ignore sub parenleft question exclam' equal equal;\012 ignore sub parenleft question less exclam' equal equal;\012 ignore sub equal exclam' equal equal;\012 sub exclam.spacer equal.spacer equal' by exclam_equal_equal.liga;\012 sub exclam.spacer equal' equal by equal.spacer;\012 sub exclam' equal equal by exclam.spacer;\012} exclam_equal_equal;\012\012lookup exclam_exclam_period {\012 ignore sub exclam exclam' exclam period;\012 ignore sub exclam' exclam period period;\012 ignore sub parenleft question exclam' exclam period;\012 ignore sub parenleft question less exclam' exclam period;\012 sub exclam.spacer exclam.spacer period' by exclam_exclam_period.liga;\012 sub exclam.spacer exclam' period by exclam.spacer;\012 sub exclam' exclam period by exclam.spacer;\012} exclam_exclam_period;\012\012lookup hyphen_hyphen_hyphen {\012 ignore sub hyphen hyphen' hyphen hyphen;\012 ignore sub hyphen' hyphen hyphen hyphen;\012 ignore sub [less greater bar] hyphen' hyphen hyphen;\012 ignore sub hyphen' hyphen hyphen [less greater bar];\012 sub hyphen.spacer hyphen.spacer hyphen' by hyphen_hyphen_hyphen.liga;\012 sub hyphen.spacer hyphen' hyphen by hyphen.spacer;\012 sub hyphen' hyphen hyphen by hyphen.spacer;\012} hyphen_hyphen_hyphen;\012\012lookup less_asciitilde_asciitilde {\012 ignore sub less less' asciitilde asciitilde;\012 ignore sub less' asciitilde asciitilde asciitilde;\012 sub less.spacer asciitilde.spacer asciitilde' by less_asciitilde_asciitilde.liga;\012 sub less.spacer asciitilde' asciitilde by asciitilde.spacer;\012 sub less' asciitilde asciitilde by less.spacer;\012} less_asciitilde_asciitilde;\012\012lookup less_asciitilde_greater {\012 ignore sub less less' asciitilde greater;\012 ignore sub less' asciitilde greater greater;\012 sub less.spacer asciitilde.spacer greater' by less_asciitilde_greater.liga;\012 sub less.spacer asciitilde' greater by asciitilde.spacer;\012 sub less' asciitilde greater by less.spacer;\012} less_asciitilde_greater;\012\012lookup less_asterisk_greater {\012 sub less.spacer asterisk.spacer greater' by less_asterisk_greater.liga;\012 sub less.spacer asterisk' greater by asterisk.spacer;\012 sub less' asterisk greater by less.spacer;\012} less_asterisk_greater;\012\012lookup less_dollar_greater {\012 sub less.spacer dollar.spacer greater' by less_dollar_greater.liga;\012 sub less.spacer dollar' greater by dollar.spacer;\012 sub less' dollar greater by less.spacer;\012} less_dollar_greater;\012\012lookup less_plus_greater {\012 sub less.spacer plus.spacer greater' by less_plus_greater.liga;\012 sub less.spacer plus' greater by plus.spacer;\012 sub less' plus greater by less.spacer;\012} less_plus_greater;\012\012lookup less_slash_greater {\012 ignore sub less less' slash greater;\012 ignore sub less' slash greater greater;\012 sub less.spacer slash.spacer greater' by less_slash_greater.liga;\012 sub less.spacer slash' greater by slash.spacer;\012 sub less' slash greater by less.spacer;\012} less_slash_greater;\012\012lookup numbersign_underscore_parenleft {\012 ignore sub numbersign numbersign' underscore parenleft;\012 ignore sub numbersign' underscore parenleft parenleft;\012 sub numbersign.spacer underscore.spacer parenleft' by numbersign_underscore_parenleft.liga;\012 sub numbersign.spacer underscore' parenleft by underscore.spacer;\012 sub numbersign' underscore parenleft by numbersign.spacer;\012} numbersign_underscore_parenleft;\012\012lookup period_period_equal {\012 ignore sub period period' period equal;\012 ignore sub period' period equal equal;\012 sub period.spacer period.spacer equal' by period_period_equal.liga;\012 sub period.spacer period' equal by period.spacer;\012 sub period' period equal by period.spacer;\012} period_period_equal;\012\012lookup period_period_less {\012 ignore sub period period' period less;\012 ignore sub period' period less less;\012 sub period.spacer period.spacer less' by period_period_less.liga;\012 sub period.spacer period' less by period.spacer;\012 sub period' period less by period.spacer;\012} period_period_less;\012\012lookup period_period_period {\012 ignore sub period period' period period;\012 ignore sub period' period period period;\012 sub period.spacer period.spacer period' by period_period_period.liga;\012 sub period.spacer period' period by period.spacer;\012 sub period' period period by period.spacer;\012} period_period_period;\012\012lookup plus_plus_plus {\012 ignore sub plus plus' plus plus;\012 ignore sub plus' plus plus plus;\012 sub plus.spacer plus.spacer plus' by plus_plus_plus.liga;\012 sub plus.spacer plus' plus by plus.spacer;\012 sub plus' plus plus by plus.spacer;\012} plus_plus_plus;\012\012lookup slash_slash_slash {\012 ignore sub slash slash' slash slash;\012 ignore sub slash' slash slash slash;\012 sub slash.spacer slash.spacer slash' by slash_slash_slash.liga;\012 sub slash.spacer slash' slash by slash.spacer;\012 sub slash' slash slash by slash.spacer;\012} slash_slash_slash;\012\012lookup w_w_w {\012 ignore sub w w' w w;\012 ignore sub w' w w w;\012 sub w.spacer w.spacer w' by w_w_w.liga;\012 sub w.spacer w' w by w.spacer;\012 sub w' w w by w.spacer;\012} w_w_w;\012\012lookup ampersand_ampersand {\012 ignore sub ampersand ampersand' ampersand;\012 ignore sub ampersand' ampersand ampersand;\012 sub ampersand.spacer ampersand' by ampersand_ampersand.liga;\012 sub ampersand' ampersand by ampersand.spacer;\012} ampersand_ampersand;\012\012lookup asciicircum_equal {\012 ignore sub asciicircum asciicircum' equal;\012 ignore sub asciicircum' equal equal;\012 sub asciicircum.spacer equal' by asciicircum_equal.liga;\012 sub asciicircum' equal by asciicircum.spacer;\012} asciicircum_equal;\012\012lookup asciitilde_asciitilde {\012 ignore sub asciitilde asciitilde' asciitilde;\012 ignore sub asciitilde' asciitilde asciitilde;\012 sub asciitilde.spacer asciitilde' by asciitilde_asciitilde.liga;\012 sub asciitilde' asciitilde by asciitilde.spacer;\012} asciitilde_asciitilde;\012\012lookup asciitilde_at {\012 ignore sub asciitilde asciitilde' at;\012 ignore sub asciitilde' at at;\012 sub asciitilde.spacer at' by asciitilde_at.liga;\012 sub asciitilde' at by asciitilde.spacer;\012} asciitilde_at;\012\012lookup asciitilde_greater {\012 ignore sub asciitilde asciitilde' greater;\012 ignore sub asciitilde' greater greater;\012 sub asciitilde.spacer greater' by asciitilde_greater.liga;\012 sub asciitilde' greater by asciitilde.spacer;\012} asciitilde_greater;\012\012lookup asciitilde_hyphen {\012 ignore sub asciitilde asciitilde' hyphen;\012 ignore sub asciitilde' hyphen hyphen;\012 sub asciitilde.spacer hyphen' by asciitilde_hyphen.liga;\012 sub asciitilde' hyphen by asciitilde.spacer;\012} asciitilde_hyphen;\012\012lookup asterisk_asterisk {\012 ignore sub asterisk asterisk' asterisk;\012 ignore sub asterisk' asterisk asterisk;\012 ignore sub slash asterisk' asterisk;\012 ignore sub asterisk' asterisk slash;\012 sub asterisk.spacer asterisk' by asterisk_asterisk.liga;\012 sub asterisk' asterisk by asterisk.spacer;\012} asterisk_asterisk;\012\012lookup asterisk_greater {\012 ignore sub asterisk asterisk' greater;\012 ignore sub asterisk' greater greater;\012 sub asterisk.spacer greater' by asterisk_greater.liga;\012 sub asterisk' greater by asterisk.spacer;\012} asterisk_greater;\012\012lookup asterisk_slash {\012 ignore sub asterisk asterisk' slash;\012 ignore sub asterisk' slash slash;\012 ignore sub slash asterisk' slash;\012 ignore sub asterisk' slash asterisk;\012 sub asterisk.spacer slash' by asterisk_slash.liga;\012 sub asterisk' slash by asterisk.spacer;\012} asterisk_slash;\012\012lookup bar_braceright {\012 ignore sub bar bar' braceright;\012 ignore sub bar' braceright braceright;\012 ignore sub braceleft bar' braceright;\012 sub bar.spacer braceright' by bar_braceright.liga;\012 sub bar' braceright by bar.spacer;\012} bar_braceright;\012\012lookup bar_bracketright {\012 ignore sub bar bar' bracketright;\012 ignore sub bar' bracketright bracketright;\012 ignore sub bracketleft bar' bracketright;\012 sub bar.spacer bracketright' by bar_bracketright.liga;\012 sub bar' bracketright by bar.spacer;\012} bar_bracketright;\012\012lookup braceleft_bar {\012 ignore sub braceleft braceleft' bar;\012 ignore sub braceleft' bar bar;\012 ignore sub braceleft' bar braceright;\012 sub braceleft.spacer bar' by braceleft_bar.liga;\012 sub braceleft' bar by braceleft.spacer;\012} braceleft_bar;\012\012lookup bracketleft_bar {\012 ignore sub bracketleft bracketleft' bar;\012 ignore sub bracketleft' bar bar;\012 ignore sub bracketleft' bar bracketright;\012 sub bracketleft.spacer bar' by bracketleft_bar.liga;\012 sub bracketleft' bar by bracketleft.spacer;\012} bracketleft_bar;\012\012lookup bracketright_numbersign {\012 ignore sub bracketright bracketright' numbersign;\012 ignore sub bracketright' numbersign numbersign;\012 sub bracketright.spacer numbersign' by bracketright_numbersign.liga;\012 sub bracketright' numbersign by bracketright.spacer;\012} bracketright_numbersign;\012\012lookup colon_colon {\012 ignore sub colon colon' colon;\012 ignore sub colon' colon colon;\012 ignore sub parenleft question colon' colon;\012 ignore sub colon' colon [less greater];\012 ignore sub [less greater] colon' colon;\012 sub colon.spacer colon' by colon_colon.liga;\012 sub colon' colon by colon.spacer;\012} colon_colon;\012\012lookup colon_equal {\012 ignore sub colon colon' equal;\012 ignore sub colon' equal equal;\012 ignore sub parenleft question colon' equal;\012 ignore sub equal colon' equal;\012 sub colon.spacer equal' by colon_equal.liga;\012 sub colon' equal by colon.spacer;\012} colon_equal;\012\012lookup dollar_greater {\012 ignore sub dollar dollar' greater;\012 ignore sub dollar' greater greater;\012 sub dollar.spacer greater' by dollar_greater.liga;\012 sub dollar' greater by dollar.spacer;\012} dollar_greater;\012\012lookup equal_equal {\012 ignore sub equal equal' equal;\012 ignore sub equal' equal equal;\012 ignore sub parenleft question equal' equal;\012 ignore sub parenleft question less equal' equal;\012 ignore sub less question equal' equal;\012 ignore sub bracketleft equal' equal;\012 ignore sub equal' equal bracketright;\012 ignore sub equal [colon exclam] equal' equal;\012 ignore sub [less greater bar slash] equal' equal;\012 ignore sub equal' equal [less greater bar slash] ;\012 ignore sub equal' equal [colon exclam] equal;\012 sub equal.spacer equal' by equal_equal.liga;\012 sub equal' equal by equal.spacer;\012} equal_equal;\012\012lookup exclam_equal {\012 ignore sub exclam exclam' equal;\012 ignore sub exclam' equal equal;\012 ignore sub parenleft question exclam' equal;\012 ignore sub parenleft question less exclam' equal;\012 ignore sub equal exclam' equal;\012 sub exclam.spacer equal' by exclam_equal.liga;\012 sub exclam' equal by exclam.spacer;\012} exclam_equal;\012\012lookup exclam_exclam {\012 ignore sub exclam exclam' exclam;\012 ignore sub exclam' exclam exclam;\012 ignore sub parenleft question exclam' exclam;\012 ignore sub parenleft question less exclam' exclam;\012 sub exclam.spacer exclam' by exclam_exclam.liga;\012 sub exclam' exclam by exclam.spacer;\012} exclam_exclam;\012\012lookup greater_equal {\012 ignore sub greater greater' equal;\012 ignore sub greater' equal equal;\012 ignore sub equal greater' equal;\012 ignore sub greater' equal [less greater bar colon exclam slash];\012 sub greater.spacer equal' by greater_equal.liga;\012 sub greater' equal by greater.spacer;\012} greater_equal;\012\012lookup hyphen_asciitilde {\012 ignore sub hyphen hyphen' asciitilde;\012 ignore sub hyphen' asciitilde asciitilde;\012 sub hyphen.spacer asciitilde' by hyphen_asciitilde.liga;\012 sub hyphen' asciitilde by hyphen.spacer;\012} hyphen_asciitilde;\012\012lookup hyphen_hyphen {\012 ignore sub hyphen hyphen' hyphen;\012 ignore sub hyphen' hyphen hyphen;\012 ignore sub [less greater bar] hyphen' hyphen;\012 ignore sub hyphen' hyphen [less greater bar];\012 sub hyphen.spacer hyphen' by hyphen_hyphen.liga;\012 sub hyphen' hyphen by hyphen.spacer;\012} hyphen_hyphen;\012\012lookup less_asciitilde {\012 ignore sub less less' asciitilde;\012 ignore sub less' asciitilde asciitilde;\012 sub less.spacer asciitilde' by less_asciitilde.liga;\012 sub less' asciitilde by less.spacer;\012} less_asciitilde;\012\012lookup less_asterisk {\012 ignore sub less less' asterisk;\012 ignore sub less' asterisk asterisk;\012 sub less.spacer asterisk' by less_asterisk.liga;\012 sub less' asterisk by less.spacer;\012} less_asterisk;\012\012lookup less_dollar {\012 ignore sub less less' dollar;\012 ignore sub less' dollar dollar;\012 sub less.spacer dollar' by less_dollar.liga;\012 sub less' dollar by less.spacer;\012} less_dollar;\012\012lookup less_equal {\012 ignore sub less less' equal;\012 ignore sub less' equal equal;\012 ignore sub parenleft question less' equal;\012 ignore sub equal less' equal;\012 ignore sub less' equal [less greater bar colon exclam slash];\012 sub less.spacer equal' by less_equal.liga;\012 sub less' equal by less.spacer;\012} less_equal;\012\012lookup less_greater {\012 ignore sub less less' greater;\012 ignore sub less' greater greater;\012 sub less.spacer greater' by less_greater.liga;\012 sub less' greater by less.spacer;\012} less_greater;\012\012lookup less_plus {\012 ignore sub less less' plus;\012 ignore sub less' plus plus;\012 sub less.spacer plus' by less_plus.liga;\012 sub less' plus by less.spacer;\012} less_plus;\012\012lookup less_slash {\012 ignore sub less less' slash;\012 ignore sub less' slash slash;\012 sub less.spacer slash' by less_slash.liga;\012 sub less' slash by less.spacer;\012} less_slash;\012\012lookup numbersign_braceleft {\012 ignore sub numbersign numbersign' braceleft;\012 ignore sub numbersign' braceleft braceleft;\012 sub numbersign.spacer braceleft' by numbersign_braceleft.liga;\012 sub numbersign' braceleft by numbersign.spacer;\012} numbersign_braceleft;\012\012lookup numbersign_bracketleft {\012 ignore sub numbersign numbersign' bracketleft;\012 ignore sub numbersign' bracketleft bracketleft;\012 sub numbersign.spacer bracketleft' by numbersign_bracketleft.liga;\012 sub numbersign' bracketleft by numbersign.spacer;\012} numbersign_bracketleft;\012\012lookup numbersign_colon {\012 ignore sub numbersign numbersign' colon;\012 ignore sub numbersign' colon colon;\012 sub numbersign.spacer colon' by numbersign_colon.liga;\012 sub numbersign' colon by numbersign.spacer;\012} numbersign_colon;\012\012lookup numbersign_equal {\012 ignore sub numbersign numbersign' equal;\012 ignore sub numbersign' equal equal;\012 sub numbersign.spacer equal' by numbersign_equal.liga;\012 sub numbersign' equal by numbersign.spacer;\012} numbersign_equal;\012\012lookup numbersign_exclam {\012 ignore sub numbersign numbersign' exclam;\012 ignore sub numbersign' exclam exclam;\012 sub numbersign.spacer exclam' by numbersign_exclam.liga;\012 sub numbersign' exclam by numbersign.spacer;\012} numbersign_exclam;\012\012lookup numbersign_parenleft {\012 ignore sub numbersign numbersign' parenleft;\012 ignore sub numbersign' parenleft parenleft;\012 sub numbersign.spacer parenleft' by numbersign_parenleft.liga;\012 sub numbersign' parenleft by numbersign.spacer;\012} numbersign_parenleft;\012\012lookup numbersign_question {\012 ignore sub numbersign numbersign' question;\012 ignore sub numbersign' question question;\012 sub numbersign.spacer question' by numbersign_question.liga;\012 sub numbersign' question by numbersign.spacer;\012} numbersign_question;\012\012lookup numbersign_underscore {\012 ignore sub numbersign numbersign' underscore;\012 ignore sub numbersign' underscore underscore;\012 sub numbersign.spacer underscore' by numbersign_underscore.liga;\012 sub numbersign' underscore by numbersign.spacer;\012} numbersign_underscore;\012\012lookup percent_percent {\012 ignore sub percent percent' percent;\012 ignore sub percent' percent percent;\012 sub percent.spacer percent' by percent_percent.liga;\012 sub percent' percent by percent.spacer;\012} percent_percent;\012\012lookup period_equal {\012 ignore sub period period' equal;\012 ignore sub period' equal equal;\012 sub period.spacer equal' by period_equal.liga;\012 sub period' equal by period.spacer;\012} period_equal;\012\012lookup period_hyphen {\012 ignore sub period period' hyphen;\012 ignore sub period' hyphen hyphen;\012 sub period.spacer hyphen' by period_hyphen.liga;\012 sub period' hyphen by period.spacer;\012} period_hyphen;\012\012lookup period_period {\012 ignore sub period period' period;\012 ignore sub period' period period;\012 sub period.spacer period' by period_period.liga;\012 sub period' period by period.spacer;\012} period_period;\012\012lookup period_question {\012 ignore sub period period' question;\012 ignore sub period' question question;\012 sub period.spacer question' by period_question.liga;\012 sub period' question by period.spacer;\012} period_question;\012\012lookup plus_greater {\012 ignore sub plus plus' greater;\012 ignore sub plus' greater greater;\012 sub plus.spacer greater' by plus_greater.liga;\012 sub plus' greater by plus.spacer;\012} plus_greater;\012\012lookup plus_plus {\012 ignore sub plus plus' plus;\012 ignore sub plus' plus plus;\012 sub plus.spacer plus' by plus_plus.liga;\012 sub plus' plus by plus.spacer;\012} plus_plus;\012\012lookup question_equal {\012 ignore sub question question' equal;\012 ignore sub question' equal equal;\012 ignore sub parenleft question' equal;\012 ignore sub less question' equal;\012 sub question.spacer equal' by question_equal.liga;\012 sub question' equal by question.spacer;\012} question_equal;\012\012lookup question_period {\012 ignore sub question question' period;\012 ignore sub question' period period;\012 sub question.spacer period' by question_period.liga;\012 sub question' period by question.spacer;\012} question_period;\012\012lookup question_question {\012 ignore sub question question' question;\012 ignore sub question' question question;\012 sub question.spacer question' by question_question.liga;\012 sub question' question by question.spacer;\012} question_question;\012\012lookup semicolon_semicolon {\012 ignore sub semicolon semicolon' semicolon;\012 ignore sub semicolon' semicolon semicolon;\012 sub semicolon.spacer semicolon' by semicolon_semicolon.liga;\012 sub semicolon' semicolon by semicolon.spacer;\012} semicolon_semicolon;\012\012lookup slash_asterisk {\012 ignore sub slash slash' asterisk;\012 ignore sub slash' asterisk asterisk;\012 ignore sub slash' asterisk slash;\012 ignore sub asterisk slash' asterisk;\012 sub slash.spacer asterisk' by slash_asterisk.liga;\012 sub slash' asterisk by slash.spacer;\012} slash_asterisk;\012\012lookup slash_greater {\012 ignore sub slash slash' greater;\012 ignore sub slash' greater greater;\012 sub slash.spacer greater' by slash_greater.liga;\012 sub slash' greater by slash.spacer;\012} slash_greater;\012\012lookup slash_slash {\012 ignore sub slash slash' slash;\012 ignore sub slash' slash slash;\012 ignore sub equal slash' slash;\012 ignore sub slash' slash equal;\012 sub slash.spacer slash' by slash_slash.liga;\012 sub slash' slash by slash.spacer;\012} slash_slash;\012\012### Vertical-align colon/greater/less\012\012# :> :< >: <:\012# :>: :<:\012# <:> >:< <:< >:>\012# <::> <::< >::< >::>\012# <:::> <:::< >:::< >:::>\012# <::::> <::::< >::::< >::::>\012\012lookup center {\012 #574 :>= :<=\012 ignore sub colon' [less greater] [equal hyphen];\012\012 # middles & ends\012 sub [less.center greater.center colon.center] colon' by colon.center;\012 sub colon.center [less greater]' by [less.center greater.center];\012\012 # starts\012 sub [less greater]' colon by [less.center greater.center];\012 sub colon' [less greater] by colon.center;\012} center;\012\012### Logical conjuntion/disjunction #738\012\012lookup slash_backslash {\012 ignore sub @NotSpace slash' backslash;\012 ignore sub slash' backslash @NotSpace;\012 sub slash.spacer backslash' by slash_backslash.liga;\012 sub slash' backslash by slash.spacer;\012} slash_backslash;\012\012lookup backslash_slash {\012 ignore sub @NotSpace backslash' slash;\012 ignore sub backslash' slash @NotSpace;\012 sub backslash.spacer slash' by backslash_slash.liga;\012 sub backslash' slash by backslash.spacer;\012} backslash_slash;\012\012### 0xFF\012sub [zero zero.zero] x' [@Digit @HexDigit] by x.multiply;\012sub [zero.tosf zero.zero.tosf zero.tosf.zero] x' [@DigitTosf @HexDigit] by x.multiply.tosf;\012\012### 800x600\012sub @Digit x' @Digit by x.multiply; \012sub @DigitTosf x' @DigitTosf by x.multiply.tosf;\012\012lookup equal_arrows {\012 # Disable |||\012 ignore sub bar bar' bar equal;\012 ignore sub bar bar' equal;\012 ignore sub [equal_start.seq equal_middle.seq] bar' bar bar;\012\012 # equal middle & end\012 sub [less_equal_start.seq less_less_equal_start.seq less_equal_middle.seq less_less_equal_middle.seq greater_equal_start.seq greater_greater_equal_start.seq greater_equal_middle.seq greater_greater_equal_middle.seq bar_equal_start.seq bar_bar_equal_start.seq bar_equal_middle.seq bar_bar_equal_middle.seq slash_equal_start.seq slash_slash_equal_start.seq slash_equal_middle.seq slash_slash_equal_middle.seq colon_equal_middle.seq exclam_equal_middle.seq equal_start.seq equal_middle.seq] equal' [equal less greater bar slash colon exclam] by equal_middle.seq;\012\012 sub [less_equal_start.seq less_less_equal_start.seq less_equal_middle.seq less_less_equal_middle.seq greater_equal_start.seq greater_greater_equal_start.seq greater_equal_middle.seq greater_greater_equal_middle.seq bar_equal_start.seq bar_bar_equal_start.seq bar_equal_middle.seq bar_bar_equal_middle.seq slash_equal_start.seq slash_slash_equal_start.seq slash_equal_middle.seq slash_slash_equal_middle.seq colon_equal_middle.seq exclam_equal_middle.seq equal_start.seq equal_middle.seq] equal' by equal_end.seq;\012\012 # double middles\012 sub [equal_start.seq equal_middle.seq] less.spacer less' equal by less_less_equal_middle.seq;\012 sub [equal_start.seq equal_middle.seq] less' less equal by less.spacer;\012 sub [equal_start.seq equal_middle.seq] greater.spacer greater' equal by greater_greater_equal_middle.seq;\012 sub [equal_start.seq equal_middle.seq] greater' greater equal by greater.spacer;\012 sub [equal_start.seq equal_middle.seq] bar.spacer bar' equal by bar_bar_equal_middle.seq;\012 sub [equal_start.seq equal_middle.seq] bar' bar equal by bar.spacer;\012 sub [equal_start.seq equal_middle.seq] slash.spacer slash' equal by slash_slash_equal_middle.seq;\012 sub [equal_start.seq equal_middle.seq] slash' slash equal by slash.spacer;\012\012 # single middles\012 sub [equal_start.seq equal_middle.seq] less' equal by less_equal_middle.seq;\012 sub [equal_start.seq equal_middle.seq] greater' equal by greater_equal_middle.seq;\012 sub [equal_start.seq equal_middle.seq] bar' equal by bar_equal_middle.seq;\012 sub [equal_start.seq equal_middle.seq] slash' equal by slash_equal_middle.seq;\012 sub [equal_start.seq equal_middle.seq] colon' equal by colon_equal_middle.seq;\012 sub [equal_start.seq equal_middle.seq] exclam' equal by exclam_equal_middle.seq;\012\012 # double ends\012 sub [equal_start.seq equal_middle.seq] less.spacer less' by less_less_equal_end.seq;\012 sub [equal_start.seq equal_middle.seq] less' less by less.spacer;\012 sub [equal_start.seq equal_middle.seq] greater.spacer greater' by greater_greater_equal_end.seq;\012 sub [equal_start.seq equal_middle.seq] greater' greater by greater.spacer;\012 sub [equal_start.seq equal_middle.seq] bar.spacer bar' by bar_bar_equal_end.seq;\012 sub [equal_start.seq equal_middle.seq] bar' bar by bar.spacer;\012 sub [equal_start.seq equal_middle.seq] slash.spacer slash' by slash_slash_equal_end.seq;\012 sub [equal_start.seq equal_middle.seq] slash' slash by slash.spacer;\012\012 # single ends\012 sub [equal_start.seq equal_middle.seq] less' by less_equal_end.seq;\012 sub [equal_start.seq equal_middle.seq] greater' by greater_equal_end.seq;\012 sub [equal_start.seq equal_middle.seq] bar' by bar_equal_end.seq;\012 sub [equal_start.seq equal_middle.seq] slash' by slash_equal_end.seq;\012\012 # double beginnings\012 sub less.spacer less' equal by less_less_equal_start.seq;\012 sub less' less equal by less.spacer;\012 sub greater.spacer greater' equal by greater_greater_equal_start.seq;\012 sub greater' greater equal by greater.spacer;\012 sub bar.spacer bar' equal by bar_bar_equal_start.seq;\012 sub bar' bar equal by bar.spacer;\012 sub slash.spacer slash' equal by slash_slash_equal_start.seq;\012 sub slash' slash equal by slash.spacer;\012\012 # Disable >=< #548\012 sub greater' equal less [equal less] by greater_equal_start.seq;\012 ignore sub greater' equal less;\012 \012 # Disable =< #479 #468 #424 #406 #355 #305\012 sub equal' less [equal less] by equal_start.seq;\012\012 # Disable =/ #1056\012 sub equal' slash [equal slash] by equal_start.seq; \012\012 # single beginnings\012 sub less' equal by less_equal_start.seq;\012 sub greater' equal by greater_equal_start.seq;\012 sub bar' equal by bar_equal_start.seq;\012 sub slash' equal by slash_equal_start.seq;\012 sub equal' [equal greater bar colon exclam] by equal_start.seq;\012\012} equal_arrows;\012\012### fi/fl #795\012\012sub [f i.salt_low j.salt_low] [i j]' by [i.salt_low j.salt_low];\012sub [F T I l.salt_low] l' by l.salt_low;\012\012### Greek\012\012lookup caltGreekUCdiph {\012 sub @GreekUCdiphIOTA Iota' by Iotadieresis;\012 sub @GreekUCdiphUPSILON Upsilon' by Upsilondieresis;\012} caltGreekUCdiph;\012\012lookup caltGreekUC {\012 sub @GreekUCAcc' @GreekUC by @GreekUCcalt;\012 sub @GreekUC @GreekUCAcc' by @GreekUCcalt;\012 sub @GreekUCAcc' space @GreekUC by @GreekUCcalt;\012 sub @GreekUC space @GreekUCAcc' by @GreekUCcalt;\012} caltGreekUC;\012\012### Arbitrary-length arrows #346\012\012lookup hyphen_arrows {\012 # Disable |||\012 ignore sub bar bar' bar hyphen;\012 ignore sub bar bar' hyphen;\012 ignore sub [hyphen_start.seq hyphen_middle.seq] bar' bar bar;\012\012 # hyphen middle & end\012 sub [less_hyphen_start.seq less_less_hyphen_start.seq less_hyphen_middle.seq less_less_hyphen_middle.seq greater_hyphen_start.seq greater_greater_hyphen_start.seq greater_hyphen_middle.seq greater_greater_hyphen_middle.seq bar_hyphen_start.seq bar_bar_hyphen_start.seq bar_hyphen_middle.seq bar_bar_hyphen_middle.seq hyphen_start.seq hyphen_middle.seq] hyphen' [hyphen less greater bar] by hyphen_middle.seq;\012\012 sub [less_hyphen_start.seq less_less_hyphen_start.seq less_hyphen_middle.seq less_less_hyphen_middle.seq greater_hyphen_start.seq greater_greater_hyphen_start.seq greater_hyphen_middle.seq greater_greater_hyphen_middle.seq bar_hyphen_start.seq bar_bar_hyphen_start.seq bar_hyphen_middle.seq bar_bar_hyphen_middle.seq hyphen_start.seq hyphen_middle.seq] hyphen' by hyphen_end.seq;\012\012 # double middles\012 sub [hyphen_start.seq hyphen_middle.seq] less.spacer less' hyphen by less_less_hyphen_middle.seq;\012 sub [hyphen_start.seq hyphen_middle.seq] less' less hyphen by less.spacer;\012 sub [hyphen_start.seq hyphen_middle.seq] greater.spacer greater' hyphen by greater_greater_hyphen_middle.seq;\012 sub [hyphen_start.seq hyphen_middle.seq] greater' greater hyphen by greater.spacer;\012 sub [hyphen_start.seq hyphen_middle.seq] bar.spacer bar' hyphen by bar_bar_hyphen_middle.seq;\012 sub [hyphen_start.seq hyphen_middle.seq] bar' bar hyphen by bar.spacer;\012\012 # single middles\012 sub [hyphen_start.seq hyphen_middle.seq] less' hyphen by less_hyphen_middle.seq;\012 sub [hyphen_start.seq hyphen_middle.seq] greater' hyphen by greater_hyphen_middle.seq;\012 sub [hyphen_start.seq hyphen_middle.seq] bar' hyphen by bar_hyphen_middle.seq;\012\012 # double ends\012 sub [hyphen_start.seq hyphen_middle.seq] less.spacer less' by less_less_hyphen_end.seq;\012 sub [hyphen_start.seq hyphen_middle.seq] less' less by less.spacer;\012 sub [hyphen_start.seq hyphen_middle.seq] greater.spacer greater' by greater_greater_hyphen_end.seq;\012 sub [hyphen_start.seq hyphen_middle.seq] greater' greater by greater.spacer;\012 sub [hyphen_start.seq hyphen_middle.seq] bar.spacer bar' by bar_bar_hyphen_end.seq;\012 sub [hyphen_start.seq hyphen_middle.seq] bar' bar by bar.spacer;\012\012 # single ends\012 sub [hyphen_start.seq hyphen_middle.seq] less' by less_hyphen_end.seq;\012 sub [hyphen_start.seq hyphen_middle.seq] greater' by greater_hyphen_end.seq;\012 sub [hyphen_start.seq hyphen_middle.seq] bar' by bar_hyphen_end.seq;\012\012 # double beginnings\012 sub less.spacer less' hyphen by less_less_hyphen_start.seq;\012 sub less' less hyphen by less.spacer;\012 sub greater.spacer greater' hyphen by greater_greater_hyphen_start.seq;\012 sub greater' greater hyphen by greater.spacer;\012 sub bar.spacer bar' hyphen by bar_bar_hyphen_start.seq;\012 sub bar' bar hyphen by bar.spacer;\012\012 # single beginnings\012 sub less' hyphen by less_hyphen_start.seq;\012 sub greater' hyphen by greater_hyphen_start.seq;\012 sub bar' hyphen by bar_hyphen_start.seq;\012 sub hyphen' [hyphen less greater bar] by hyphen_start.seq;\012} hyphen_arrows;\012\012### Lowercase/uppercase operators\012\012# Must go after hyphen_arrows.fea\012\012lookup lowercase_hyphen {\012 ignore sub @Tall \\hyphen' @Lowercase;\012 ignore sub @Lowercase \\hyphen' @Tall; \012 sub \\hyphen' @Lowercase by \\hyphen.lc;\012 sub @Lowercase \\hyphen' by \\hyphen.lc;\012} lowercase_hyphen;\012\012lookup lowercase_plus {\012 ignore sub @Tall \\plus' @Lowercase;\012 ignore sub @Lowercase \\plus' @Tall;\012 sub \\plus' @Lowercase by \\plus.lc;\012 sub @Lowercase \\plus' by \\plus.lc;\012} lowercase_plus;\012\012lookup lowercase_asterisk {\012 ignore sub @Tall \\asterisk' @Lowercase;\012 ignore sub @Lowercase \\asterisk' @Tall;\012 sub \\asterisk' @Lowercase by \\asterisk.lc;\012 sub @Lowercase \\asterisk' by \\asterisk.lc;\012} lowercase_asterisk;\012\012lookup uppercase_colon {\012 ignore sub @Tall \\colon' @Lowercase;\012 ignore sub @Lowercase \\colon' @Tall;\012 sub @Tall \\colon' by \\colon.uc;\012 sub \\colon' @Tall by \\colon.uc;\012# pos @Tall \\colon' <0 160 0 0>;\012# pos \\colon' @Tall <0 160 0 0>;\012} uppercase_colon;\012\012lookup numbersigns {\012 # middle parts\012 sub [numbersign_start.seq numbersign_middle.seq] numbersign' numbersign by numbersign_middle.seq;\012\012 # ends\012 sub [numbersign_start.seq numbersign_middle.seq] numbersign' by numbersign_end.seq;\012 \012 # beginnings\012 sub numbersign' numbersign by numbersign_start.seq; \012} numbersigns;\012\012lookup underscores {\012 # middle parts\012 sub [underscore_start.seq underscore_middle.seq] bar' underscore by bar_underscore_middle.seq;\012\012 sub [underscore_start.seq underscore_middle.seq bar_underscore_middle.seq] underscore' bar underscore by underscore_middle.seq;\012 sub [underscore_start.seq underscore_middle.seq bar_underscore_middle.seq] underscore' underscore by underscore_middle.seq;\012\012 # ends\012 sub [underscore_start.seq underscore_middle.seq bar_underscore_middle.seq] underscore' by underscore_end.seq;\012 \012 # beginnings\012 sub underscore' bar underscore by underscore_start.seq; \012 sub underscore' underscore by underscore_start.seq; \012} underscores;"; name = calt; }, { @@ -66793,6 +66794,267 @@ width = 1200; ); }, { +color = 6; +glyphname = slash_slash_equal_end.seq; +lastChange = "2020-06-07 23:35:24 +0000"; +layers = ( +{ +components = ( +{ +name = _part.not_equal; +transform = "{1, 0, 0, 1, -950, 0}"; +}, +{ +name = _part.not_equal; +transform = "{1, 0, 0, 1, -250, 0}"; +} +); +layerId = "B67F0F2D-EC95-4CB8-966E-23AE86958A69"; +paths = ( +{ +closed = 1; +nodes = ( +"-247 752 LINE", +"-247 868 LINE", +"-1220 868 LINE", +"-1220 752 LINE" +); +}, +{ +closed = 1; +nodes = ( +"-470 384 LINE", +"-470 500 LINE", +"-1220 500 LINE", +"-1220 384 LINE" +); +} +); +width = 1200; +}, +{ +components = ( +{ +name = _part.not_equal; +transform = "{1, 0, 0, 1, -1000, 0}"; +}, +{ +name = _part.not_equal; +transform = "{1, 0, 0, 1, -200, 0}"; +} +); +layerId = "4B7A3BAF-EAD8-4024-9BEA-BB1DE86CFCFA"; +paths = ( +{ +closed = 1; +nodes = ( +"-297 714 LINE", +"-297 960 LINE", +"-1220 960 LINE", +"-1220 714 LINE" +); +}, +{ +closed = 1; +nodes = ( +"-520 292 LINE", +"-520 538 LINE", +"-1220 538 LINE", +"-1220 292 LINE" +); +} +); +width = 1200; +} +); +}, +{ +color = 6; +glyphname = slash_slash_equal_middle.seq; +lastChange = "2020-06-07 23:50:44 +0000"; +layers = ( +{ +components = ( +{ +name = _part.not_equal; +transform = "{1, 0, 0, 1, -950, 0}"; +}, +{ +name = _part.not_equal; +transform = "{1, 0, 0, 1, -250, 0}"; +} +); +layerId = "B67F0F2D-EC95-4CB8-966E-23AE86958A69"; +paths = ( +{ +closed = 1; +nodes = ( +"-247 752 LINE", +"-247 868 LINE", +"-1220 868 LINE", +"-1220 752 LINE" +); +}, +{ +closed = 1; +nodes = ( +"-470 384 LINE", +"-470 500 LINE", +"-1220 500 LINE", +"-1220 384 LINE" +); +}, +{ +closed = 1; +nodes = ( +"1220 752 LINE", +"1220 868 LINE", +"456 868 LINE", +"456 752 LINE" +); +}, +{ +closed = 1; +nodes = ( +"1220 384 LINE", +"1220 500 LINE", +"234 500 LINE", +"234 384 LINE" +); +} +); +width = 1200; +}, +{ +components = ( +{ +name = _part.not_equal; +transform = "{1, 0, 0, 1, -1000, 0}"; +}, +{ +name = _part.not_equal; +transform = "{1, 0, 0, 1, -200, 0}"; +} +); +layerId = "4B7A3BAF-EAD8-4024-9BEA-BB1DE86CFCFA"; +paths = ( +{ +closed = 1; +nodes = ( +"-297 714 LINE", +"-297 960 LINE", +"-1220 960 LINE", +"-1220 714 LINE" +); +}, +{ +closed = 1; +nodes = ( +"-520 292 LINE", +"-520 538 LINE", +"-1220 538 LINE", +"-1220 292 LINE" +); +}, +{ +closed = 1; +nodes = ( +"1220 714 LINE", +"1220 960 LINE", +"528 960 LINE", +"528 714 LINE" +); +}, +{ +closed = 1; +nodes = ( +"1220 292 LINE", +"1220 538 LINE", +"269 538 LINE", +"269 292 LINE" +); +} +); +width = 1200; +} +); +}, +{ +color = 6; +glyphname = slash_slash_equal_start.seq; +lastChange = "2020-06-07 23:32:27 +0000"; +layers = ( +{ +components = ( +{ +name = _part.not_equal; +transform = "{1, 0, 0, 1, -250, 0}"; +}, +{ +name = _part.not_equal; +transform = "{1, 0, 0, 1, -950, 0}"; +} +); +layerId = "B67F0F2D-EC95-4CB8-966E-23AE86958A69"; +paths = ( +{ +closed = 1; +nodes = ( +"1220 752 LINE", +"1220 868 LINE", +"456 868 LINE", +"456 752 LINE" +); +}, +{ +closed = 1; +nodes = ( +"1220 384 LINE", +"1220 500 LINE", +"234 500 LINE", +"234 384 LINE" +); +} +); +width = 1200; +}, +{ +components = ( +{ +name = _part.not_equal; +transform = "{1, 0, 0, 1, -200, 0}"; +}, +{ +name = _part.not_equal; +transform = "{1, 0, 0, 1, -1000, 0}"; +} +); +layerId = "4B7A3BAF-EAD8-4024-9BEA-BB1DE86CFCFA"; +paths = ( +{ +closed = 1; +nodes = ( +"1220 714 LINE", +"1220 960 LINE", +"528 960 LINE", +"528 714 LINE" +); +}, +{ +closed = 1; +nodes = ( +"1220 292 LINE", +"1220 538 LINE", +"269 538 LINE", +"269 292 LINE" +); +} +); +width = 1200; +} +); +}, +{ color = 3; glyphname = underscore_end.seq; lastChange = "2020-06-05 14:23:03 +0000"; diff --git a/clojure/fira_code/calt.clj b/clojure/fira_code/calt.clj index 693a54b..6c6f431 100755 --- a/clojure/fira_code/calt.clj +++ b/clojure/fira_code/calt.clj @@ -172,6 +172,11 @@ (str " ignore sub [hyphen equal] bar' bar;\n" " ignore sub bar' bar [hyphen equal];\n") + ;; #816 //= + ["slash" "slash"] + (str " ignore sub equal slash' slash;\n" + " ignore sub slash' slash equal;\n") + ;; #346 <--> >--< |--| ["hyphen" "hyphen"] (str " ignore sub [less greater bar] hyphen' hyphen;\n" diff --git a/extras/showcases.txt b/extras/showcases.txt index c889853..a3b411c 100644 --- a/extras/showcases.txt +++ b/extras/showcases.txt @@ -330,3 +330,4 @@ _| |_ _||_ __| ___| |__ |___ #479 #468 #424 #406 #355 #305 =< ==< =<< |=< #574 :>= #621 <||> +#1056 =/ diff --git a/features/calt/equal_arrows.fea b/features/calt/equal_arrows.fea index 8e4d138..debb8fd 100644 --- a/features/calt/equal_arrows.fea +++ b/features/calt/equal_arrows.fea @@ -5,9 +5,9 @@ lookup equal_arrows { ignore sub [equal_start.seq equal_middle.seq] bar' bar bar; # equal middle & end - sub [less_equal_start.seq less_less_equal_start.seq less_equal_middle.seq less_less_equal_middle.seq greater_equal_start.seq greater_greater_equal_start.seq greater_equal_middle.seq greater_greater_equal_middle.seq bar_equal_start.seq bar_bar_equal_start.seq bar_equal_middle.seq bar_bar_equal_middle.seq slash_equal_start.seq slash_equal_middle.seq colon_equal_middle.seq exclam_equal_middle.seq equal_start.seq equal_middle.seq] equal' [equal less greater bar slash colon exclam] by equal_middle.seq; + sub [less_equal_start.seq less_less_equal_start.seq less_equal_middle.seq less_less_equal_middle.seq greater_equal_start.seq greater_greater_equal_start.seq greater_equal_middle.seq greater_greater_equal_middle.seq bar_equal_start.seq bar_bar_equal_start.seq bar_equal_middle.seq bar_bar_equal_middle.seq slash_equal_start.seq slash_slash_equal_start.seq slash_equal_middle.seq slash_slash_equal_middle.seq colon_equal_middle.seq exclam_equal_middle.seq equal_start.seq equal_middle.seq] equal' [equal less greater bar slash colon exclam] by equal_middle.seq; - sub [less_equal_start.seq less_less_equal_start.seq less_equal_middle.seq less_less_equal_middle.seq greater_equal_start.seq greater_greater_equal_start.seq greater_equal_middle.seq greater_greater_equal_middle.seq bar_equal_start.seq bar_bar_equal_start.seq bar_equal_middle.seq bar_bar_equal_middle.seq slash_equal_start.seq slash_equal_middle.seq colon_equal_middle.seq exclam_equal_middle.seq equal_start.seq equal_middle.seq] equal' by equal_end.seq; + sub [less_equal_start.seq less_less_equal_start.seq less_equal_middle.seq less_less_equal_middle.seq greater_equal_start.seq greater_greater_equal_start.seq greater_equal_middle.seq greater_greater_equal_middle.seq bar_equal_start.seq bar_bar_equal_start.seq bar_equal_middle.seq bar_bar_equal_middle.seq slash_equal_start.seq slash_slash_equal_start.seq slash_equal_middle.seq slash_slash_equal_middle.seq colon_equal_middle.seq exclam_equal_middle.seq equal_start.seq equal_middle.seq] equal' by equal_end.seq; # double middles sub [equal_start.seq equal_middle.seq] less.spacer less' equal by less_less_equal_middle.seq; @@ -16,6 +16,8 @@ lookup equal_arrows { sub [equal_start.seq equal_middle.seq] greater' greater equal by greater.spacer; sub [equal_start.seq equal_middle.seq] bar.spacer bar' equal by bar_bar_equal_middle.seq; sub [equal_start.seq equal_middle.seq] bar' bar equal by bar.spacer; + sub [equal_start.seq equal_middle.seq] slash.spacer slash' equal by slash_slash_equal_middle.seq; + sub [equal_start.seq equal_middle.seq] slash' slash equal by slash.spacer; # single middles sub [equal_start.seq equal_middle.seq] less' equal by less_equal_middle.seq; @@ -32,6 +34,8 @@ lookup equal_arrows { sub [equal_start.seq equal_middle.seq] greater' greater by greater.spacer; sub [equal_start.seq equal_middle.seq] bar.spacer bar' by bar_bar_equal_end.seq; sub [equal_start.seq equal_middle.seq] bar' bar by bar.spacer; + sub [equal_start.seq equal_middle.seq] slash.spacer slash' by slash_slash_equal_end.seq; + sub [equal_start.seq equal_middle.seq] slash' slash by slash.spacer; # single ends sub [equal_start.seq equal_middle.seq] less' by less_equal_end.seq; @@ -46,6 +50,8 @@ lookup equal_arrows { sub greater' greater equal by greater.spacer; sub bar.spacer bar' equal by bar_bar_equal_start.seq; sub bar' bar equal by bar.spacer; + sub slash.spacer slash' equal by slash_slash_equal_start.seq; + sub slash' slash equal by slash.spacer; # Disable >=< #548 sub greater' equal less [equal less] by greater_equal_start.seq; @@ -55,7 +61,7 @@ lookup equal_arrows { sub equal' less [equal less] by equal_start.seq; # Disable =/ #1056 - sub equal' slash equal by equal_start.seq; + sub equal' slash [equal slash] by equal_start.seq; # single beginnings sub less' equal by less_equal_start.seq; diff --git a/script/build_ttf b/script/build_ttf index aeff1f8..2b7d777 100755 --- a/script/build_ttf +++ b/script/build_ttf @@ -1,4 +1,4 @@ -#!/bin/bash -e +#!/bin/bash -euo pipefail source venv/bin/activate @@ -17,8 +17,6 @@ for weight in "${weights[@]}"; do gftools fix-dsig --autofix ${file} echo "TTFautohint " ${file} - hintedFile=${file/".ttf"/"-hinted.ttf"} - ttfautohint -I ${file} ${hintedFile} --stem-width-mode nnn --composites - # --windows-compatibility - mv ${hintedFile} ${file} + ttfautohint -I ${file} ${file}.hinted --stem-width-mode nnn --composites --windows-compatibility + mv ${file}.hinted ${file} done \ No newline at end of file