---
# Definitions for Vietnamese Math Braille. But most of theym are same as UEB.
# UEB characters
#
# Some chars that originally came from an Excel spreadsheet, converted to csv, and the greatly expanded
# 
# The UEB translation makes use of some non-braille chars as flags
#    L -- what follows is a letter
#    N -- what follows is a digit
#    C -- precedes L for capital letters
#    G -- precedes L for Greek Letters (after C for capitals)
#  Typeface Indicators ("typeforms")
#    B bold, I Italic, S Sans-serif, T script, D, Fraktur, 𝔹 blackboard-bold
#    the type face indicators can be combined with B (first) and I (second)
#  Standing alone chars:
#    Any character which acts as a standing alone character (e.g, "{") needs each braille symbol to be labeled
#    o -- opening/left side, c -- closing/right side, b -- both open and close (e.g, '"')

 
 - "=": [T: "⠐⠶"]               # 0x003D (Equals)
 - "≠": [T: "⠐⠾"]             # 0x2260 (Not equal)
 - "<": [T: "⠐⠪"]               # 0x003C (Less than)
 - "≤": [T: "⠐⠪⠶"]              # 0x2264 (Less than or equal to)
 - ">": [T: "⠐⠕"]               # 0x003E (Greater than)
 - "≥": [T: "⠐⠕⠶"]              # 0x2265 (Greater than or equal to)
 - "≪": [T: "⠐⠪⠪"]              # 0x226A (Much less than)
 - "≫": [T: "⠐⠕⠕"]              # 0x226B (Much greater than)
 - "≮": [T: "⠐⠪⠈"]             # 0x226E (Not less than)
 - "≯": [T: "⠐⠕⠈"]             # 0x226F (Not greater than)
 - "≰": [T: "⠸⠐⠪⠈⠐⠾"]            # 0x2270 (Neither less than nor equal to)
 - "≱": [T: "⠸⠐⠕⠈⠐⠾"]            # 0x2271 (Neither greater than nor equal to)
 - "∝": [t: "⠸⠐⠶"]              # 0x221D (Proportional to)
 - "≃": [T: "⠐⠢⠢"]               # 0x2243 (Approximately equal to (tilde over horizontal line))
 - "≅": [T: "⠐⠢⠢"]               # 0x2245 (Approximately equal to (tilde over equals sign))
 - "≈": [T: "⠐⠢⠢"]               # 0x2248 (Approximately equal (tilde over tilde))
 - "≏": [t: "⠘⠐⠶"]              # 0x224F (Equals with bump in top bar (difference between))
 - "≑": [t: "⠨⠐⠶"]              # 0x2251 (Geometrically equal to (equals dotted above and below))
 - "≡": [T: "⠐⠿"]               # 0x2261 (Equivalent to (three horizontal lines)) vi: trùng
 - "≢": [T: "⠐⠿⠈"]             # 0x2262 (Not identical to)
 - "∈": [T: "⠈⠑"]               # 0x2208 (Element of (member of))
 - "∉": [T: "⠈⠑⠈"]               # 0x2209 (Element of (not member of))
 - "+": [T: "⠐⠖"]               # 0x002B (Plus sign)
 - "∋": [t: "⠈⠘⠑"]              # 0x220B (Contains)
 - "⊂": [T: "⠘⠣"]              # 0x2282 (Subset of)
 - "⊃": [T: "⠘⠜"]              # 0x2283 (Superset of)
 - "⊆": [T: "⠘⠣⠐⠶"]             # 0x2286 (Subset of or equal)
 - "⊇": [T: "⠘⠜⠐⠶"]             # 0x2287 (Superset of or equal)
 - "⊊": [t: "⠨⠘⠣"]             # 0x228A (Subset of with not equal)
 - "⊋": [t: "⠨⠘⠜"]             # 0x228B (Superset of with not equal)
 - "⊲": [t: "⠈⠸⠣"]             # 0x22B2 (Normal subgroup of)
 - "⊳": [t: "⠈⠸⠜"]             # 0x22B3 (Contains as normal subgroup)
 - "⊴": [t: "⠸⠸⠣"]             # 0x22B4 (Normal subgroup of or equal)
 - "⊵": [t: "⠸⠸⠜"]             # 0x22B5 (Contains as normal subgroup or equal)
 - "⋬": [t: "⠨⠸⠣"]             # 0x22EC (not normal subgroup) -- this isn't the same as what is in GTM 10, but that similar has no Unicode equiv
 - "⋭": [t: "⠨⠸⠣"]             # 0x22ED (does not contain as normal subgroup) -- this isn't the same as what is in GTM 10, but that similar has no Unicode equiv
 - "−": [t: "⠐⠤"]               # 0x2212 (Minus sign)
 - "·": [T: "⠐⠦"]               # 0x00D7 (Multiplication dot (times))
 - "×": [T: "⠐⠦"]               # 0x00D7 (Multiplication sign (times))
 - "÷": [T: "⠐⠲"]               # 0x00F7 (Division sign (divided by))
 - "±": [T: "⠐⠖⠤"]               # 0x00B1 (Plus or minus)
 - "∓": [T: "⠐⠤⠖"]               # 0x2213 (Minus or plus)
 - "∗": [t: "⠐⠦"]               # 0x2217 (Asterisk operator)
 - "∘": [t: "⠐⠴"]               # 0x2218 (Ring operator)
 - "◦": [t: "⠐⠴"]               # 0x25E6 (White bullet)
 - "∼": [t: "⠈⠔"]               # 0x223C (Tilde operator)
 - "⋅": [t: "⠐⠦"]               # 0x22C5 (Dot operator)
 - "∧": [t: "⠈⠦"]               # 0x2227 (Logical and)
 - "∨": [t: "⠈⠖"]               # 0x2228 (Logical or)
 - "∩": [T: "⠨⠦"]               # 0x2229 (Intersection)
 - "∪": [T: "⠨⠖"]               # 0x222A (Union)
 - "∖": [T: "⠸⠡"]               # 0x2216 (Set minus)
 - "(": [T: "o⠈o⠣"]               # 0x0028 (Left parenthesis)
 - ")": [T: "c⠈c⠜"]               # 0x0029 (Right parenthesis)
 - "[": [T: "o⠨o⠣"]               # 0x005B (Left square bracket)
 - "]": [T: "c⠨c⠜"]               # 0x005D (Right square bracket)
 - "{": [T: "o⠸o⠣"]               # 0x007B (Left curly bracket)
 - "}": [T: "c⠸c⠜"]               # 0x007D (Right curly bracket)
 - "〈": [T: "o⠸⠣⠤"]               # 0x2329 (Left angle bracket)
 - "〉": [T: "c⠤⠸⠜"]               # 0x232A (Right angle bracket)
 - "|": [T: "⠸⠳"]                 # 0x007C (Vertical line)
    # - test:
    #     if: "preceding-sibling::* and following-sibling::*"
    #     then: [T: "W⠸⠳W"]        # comparison (e.g., such that -- rule 145)
    #     else: [T: "⠸⠳"]          # absolute value, others???
 - "!": [T: "c⠖"]                # 0x21 (Exclamation (factorial))
 - "#": [T: "⠼"]               # 0x23 (Number sign (hash))
 - "%": [T: "⠼⠚⠴"]                # 0x25 (Percent sign) No dots 46 before as in UEB
 - "&": [t: "⠈⠯"]               # 0x26 (Ampersand)
 - "*": [T: "⠐⠦"]               # 0x002A (Asterisk)
 - "/": [T: "⠐⠲"]               # 0x002F (Solidus (slash))
 - ";": [t: "c⠆"]               # 0x003B (Semicolon)
 - "?": [T: "c⠢"]               # 0x003F (Question mark)
 - "@": [T: "⠈⠁"]               # 0x0040 (Commercial at sign)
 - "\\": [t: "⠸⠡"]              # 0x005C (Backslash)
 - "^": [t: "⠈⠢"]               # 0x005E (Caret (hat, up arrow))
 - "_": [t: "⠨⠤"]               # 0x005F (Low line (underscore))
 - "~": [t: "⠈⠔"]               # 0x007E (Tilde (swung dash))
 - "¢": [t: "⠈⠉"]               # 0x00A2 (Cents sign)
 - "€": [t: "⠈⠑"]               # 0x20AC (Euro sign)
 - "₣": [t: "⠈⠋"]               # 0x20A3 (French franc sign)
 - "£": [t: "⠈⠇"]               # 0x00A3 (Pound sign)
 - "₦": [t: "⠈⠝"]               # 0x20A6 (Naira sign)
 - "$": [t: "⠈⠎"]               # 0x0024 (Dollar sign)
 - "¥": [t: "⠈⠽"]               # 0x00A5 (Yen sign)
 - "¦": [t: "⠨⠳"]               # 0x00A6 (Broken bar)
 - "¬": [t: "⠈⠹"]               # 0x00AC (Not sign)
 - "°": [T: "⠔⠚"]               # 0x00B0 (Degree sign)
 - "†": [t: "⠈⠠⠹"]              # 0x2020 (Dagger)
 - "‡": [t: "⠈⠠⠻"]              # 0x2021 (Double dagger)
 - "…": [T: "c⠄c⠄c⠄"]              # 0x2026 (Ellipsis)
 - "′": [T: "⠄"]                # 0x2032 (Prime sign)
 - "″": [T: "⠄⠄"]               # 0x2033 (Double prime sign)
 - "‴": [T: "⠄⠄⠄"]              # 0x2034 (Triple prime sign)
 - "Å": [t: "⠠⠘⠫⠁"]             # 0x212B (Angstrom symbol)
 - "Å": [t: "⠠⠘⠫⠁"]             # 0x00C5 (WIRIS uses this for Angstrom)
 - "∀": [t: "⠘⠁"]               # 0x2200 (For all)
 - "∂": [t: "⠈⠙"]               # 0x2202 (Partial differential)
 - "∃": [T: "⠘⠑"]               # 0x2203 (There exists)
 - "∄": [T: "⠘⠑⠈"]             # 0x2204 (There does not exist)
 - "∅": [T: "⠈⠚"]               # 0x2205 (Empty set)
 - "∇": [t: "⠘⠙"]               # 0x2207 (Nabla (del, inverted capital delta))
 - "∎": [t: "⠸⠫⠼⠙t"]            # 0x220E (End of proof)
 - "√": [T: "⠩"]               # 0x221A (Square root (radical) without vinculum)
 - "∞": [T: "⠼⠕"]               # 0x221E (Infinity)
 - "∠": [T: "⠫⠛"]               # 0x2220 (Angle)
 - "∡": [T: "⠨⠫⠛"]              # 0x2221 (Measured angle)
 - "⊾": [T: "⠼⠫⠛"]              # 0x22BE (Right angle with arc)
 - "∟": [T: "⠫⠧"]
 - "∫": [T: "⠾"]               # 0x222B (Integral)
 - "∮": [T: "⠐⠾"]               # 0x222E (Contour integral (closed line integral))
 - "∴": [t: "⠠⠡"]               # 0x2234 (Therefore)
 - "∵": [t: "⠈⠌"]               # 0x2235 (Because (since))
 - "∶": [t: "⠒"]               # 0x2236 (Ratio)
 - "∷": [T: "⠒⠒"]              # 0x2237 (Proportion)
 - "∣": [T: "⠣⠴⠜"]               # 0x2223 (Divides) ueb: ⠸⠳
 - "∤": [T: "⠣⠼⠜"]             # 0x2224 (Does not divide) ueb: ⠸⠳⠈⠱
 - "∥": [T: "⠫⠶"]               # 0x2225 (Parallel) VI: AB parallel to CD, should be: ⠫AB⠶CD
 - "∦": [T: "⠫⠾"]             # 0x2226 (Not parallel) Vi: AB not parallel to CD, should be: ⠫AB⠐⠾CD
 - "⟂": [T: "⠫⠧"]               # 0x27C2 (Perpendicular)
 - "⊢": [t: "⠸⠒"]               # 0x22a2 (Right tack)
 - "⊣": [t: "⠈⠸⠒"]              # 0x22a3 (Left tack)
 - "⊥": [T: "⠫⠧"]               # 0x22A5 (Up tack (perpendicular))
 - "⊦": [t: "⠸⠒"]               # 0x22A6 (Assertion (is a theorem))
 - "⊨": [t: "⠘⠸⠒"]              # 0x22A8 (TRUE (is valid))
 - "⊬": [t: "⠸⠒⠈⠱"]             # 0x22AC (Does not prove)
 - "⊭": [t: "⠘⠸⠒⠈⠱"]            # 0x22AD (Not TRUE)
 - "⫤": [t: "⠨⠸⠒"]              # 0x2AE4 (Vertical bar double left turnstile)
 - "✓": [t: "⠈⠩"]               # 0x2713 (Check mark (tick))
 - "⦵": [t: "⠨⠚"]               # 0x29B5 (Plimsoll sign (standard state))
 - "⮖": [t: "1⠐⠠⠤⠯⠫⠿"]         # 0x2B96 (MEDIUM SMALL WHITE CIRCLE WITH HORIZONTAL BAR (standard state))
 - "←": [t: "⠳⠪"]              # 0x2190 (Leftwards arrow)
 - "↑": [t: "⠳⠬"]              # 0x2191 (Upwards arrow)
 - "→": [t: "⠳⠕"]              # 0x2192 (Rightwards arrow)
 - "↓": [t: "⠳⠩"]              # 0x2193 (Downwards arrow)
 - "↔": [T: "⠳⠪⠶⠕"]            # 0x2194 (Left right arrow)
 - "↕": [t: "⠳⠺⠗⠬"]            # 0x2195 (Up down arrow)
 - "↖": [t: "⠳⠱"]              # 0x2196 (Northwest arrow)
 - "↗": [t: "⠳⠎"]              # 0x2197 (Northeast arrow)
 - "↘": [t: "⠳⠣"]              # 0x2198 (Southeast arrow)
 - "↙": [t: "⠳⠜"]              # 0x2199 (Southwest arrow)
 - "↚": [t: "⠳⠪⠈⠱"]            # 0x219A (Leftwards arrow with stroke)
 - "↛": [t: "⠳⠕⠈⠱"]            # 0x219B (Rightwards arrow with stroke)
 - "↜": [t: "⠳⠔⠢⠪"]            # 0x219C (Leftwards wave arrow)
 - "↝": [t: "⠳⠢⠔⠕"]            # 0x219D (Rightwards wave arrow)
 - "↞": [t: "⠳⠒⠗⠗⠪"]           # 0x219E (Leftwards two headed arrow)
 - "↟": [t: "⠳⠒⠗⠗⠬"]           # 0x219F (Upwards two headed arrow)
 - "↠": [t: "⠳⠒⠗⠗⠕"]           # 0x21A0 (Rightwards two headed arrow)
 - "↡": [t: "⠳⠒⠗⠗⠩"]           # 0x21A1 (Downwards two headed arrow)
 - "↢": [t: "⠳⠗⠗⠪"]            # 0x21A2 (Leftwards arrow with tail)
 - "↣": [t: "⠳⠗⠗⠕"]            # 0x21A3 (Rightwards arrow with tail)
 - "↤": [t: "⠳⠳⠗⠪"]            # 0x21A4 (Leftwards arrow from bar)
 - "↥": [t: "⠳⠳⠗⠬"]            # 0x21A5 (Upwards arrow from bar)
 - "↦": [t: "⠳⠳⠗⠕"]            # 0x21A6 (Rightwards arrow from bar)
 - "↧": [t: "⠳⠳⠗⠩"]            # 0x21A7 (Downwards arrow from bar)
 - "↭": [t: "⠳⠺⠔⠢⠗⠕"]          # 0x21AD (Left right wave arrow)
 - "↮": [t: "⠳⠺⠗⠕⠈⠱"]          # 0x21AE (Left right arrow with stroke)
 - "↰": [t: "⠳⠴⠬"]             # 0x21B0 (Upwards arrow with tip left)
 - "↱": [t: "⠳⠲⠬"]             # 0x21B1 (Upwards arrow with tip right)
 - "↲": [t: "⠳⠲⠩"]             # 0x21B2 (Downwards arrow with tip left)
 - "↳": [t: "⠳⠴⠩"]             # 0x21B3 (Downwards arrow with tip right)
 - "↶": [t: "⠳⠔⠔⠪"]            # 0x21B6 (Anticlockwise top semicircle arrow)
 - "↷": [t: "⠳⠢⠢⠕"]            # 0x21B7 (Clockwise top semicircle arrow)
 - "↼": [t: "⠳⠈⠗⠪"]            # 0x21BC (Leftwards harpoon with barb upwards)
 - "↽": [t: "⠳⠠⠗⠪"]            # 0x21BD (Leftwards harpoon with barb downwards)
 - "↾": [t: "⠳⠠⠗⠬"]            # 0x21BE (Upwards harpoon with barb rightwards)
 - "↿": [t: "⠳⠈⠗⠬"]            # 0x21BF (Upwards harpoon with barb leftwards)
 - "⇀": [t: "⠳⠈⠗⠕"]            # 0x21C0 (Rightwards harpoon with barb upwards)
 - "⇁": [t: "⠳⠠⠗⠕"]            # 0x21C1 (Rightwards harpoon with barb downwards)
 - "⇂": [t: "⠳⠈⠗⠩"]            # 0x21C2 (Downwards harpoon with barb rightwards)
 - "⇃": [t: "⠳⠠⠗⠩"]            # 0x21C3 (Downwards harpoon with barb leftwards)
 - "⇄": [t: "⠳⠕⠻⠳⠪"]           # 0x21C4 (Rightwards arrow over leftwards arrow)
 - "⇅": [t: "⠳⠬⠿⠳⠩"]           # 0x21C5 (Upwards arrow left of Downwards arrow)
 - "⇌": [T: "⠳⠪⠕"]              # 0x21CC (Rightwards harpoon over leftwards harpoon (equilibrium))
 - "⇐": [t: "⠳⠶⠪"]             # 0x21D0 (Leftwards double arrow)
 - "⇑": [t: "⠳⠶⠬"]             # 0x21D1 (Upwards double arrow)
 - "⇒": [t: "⠳⠶⠕"]             # 0x21D2 (Rightwards double arrow)
 - "⇓": [t: "⠳⠶⠩"]             # 0x21D3 (Downwards double arrow)
 - "⇔": [T: "⠳⠪⠶⠕"]           # 0x21D4 (Left right double arrow)
 - "⇕": [t: "⠳⠺⠶⠗⠬"]           # 0x21D5 (Up down double arrow)
 - "⇠": [t: "⠳⠂⠪"]             # 0x21E0 (Leftwards dashed arrow)
 - "⇡": [t: "⠳⠂⠬"]             # 0x21E1 (Upwards dashed arrow)
 - "⇢": [t: "⠳⠂⠕"]             # 0x21E2 (Rightwards dashed arrow)
 - "⇣": [t: "⠳⠂⠩"]             # 0x21E3 (Downwards dashed arrow)
 - "⟵": [t: "⠳⠪"]           # 0x27F5 (Long leftwards arrow)
 - "⟶": [t: "⠳⠕"]           # 0x27F6 (Long rightwards arrow)
 - "⥂": [t: "⠸⠶"]               # 0x2942 (Rightwards arrow above short leftwards arrow (equilibrium, trend to the right))
 - "⥄": [t: "⠈⠸⠶"]              # 0x2944 (Short rightwards arrow above leftwards arrow (equilibrium, trend to the left))

# Mappings for some new Unicode chemistry arrows/symbols
# These need to be verified -- 0x1f8d1, 0x1f8d2, and 0x1f8d3 conflict with GTM 16 (uses short arrow when really should be long)
 - "🣐": [t: "⠳⠒⠒⠒⠕⠻⠳⠒⠒⠒⠪"]           # 0x1F8D0 LONG RIGHTWARDS ARROW OVER LONG LEFTWARDS ARROW
 - "🣑": [t: "⠳⠪⠕"]               # 0x1f8d1 (Long rightwards harpoon over leftwards harpoon (equilibrium))
 - "🣒": [t: "⠸⠶"]                # 0x1f8d2 (Long rightwards harpoon over leftwards harpoon (equilibrium, trend to the right))
 - "🣓": [t: "⠈⠸⠶"]               # 0x1f8d3 (Long rightwards harpoon over leftwards harpoon (equilibrium, trend to the left))
#  - "🣑": [t: "⠳⠒⠒⠒⠈⠗⠕⠻⠳⠒⠒⠒⠠⠗⠪"]     # 0x1F8D1 LONG RIGHTWARDS HARPOON OVER LONG LEFTWARDS HARPOON
#  - "🣒": [t: "⠳⠒⠒⠒⠈⠗⠕⠻⠳⠒⠠⠗⠪"]         # 0x1F8D2 LONG RIGHTWARDS HARPOON ABOVESHORT LEFTWARDS HARPOON
#  - "🣓": [t: "⠳⠒⠈⠗⠕⠻⠳⠒⠒⠒⠠⠗⠪"]         # 0x1F8D3 SHORT RIGHTWARDS HARPOON ABOVELONG LEFTWARDS HARPOON
 - "🣔": [t: "⠳⠒⠒⠒⠈⠗⠪⠻⠳⠒⠠⠗⠕"]         # 0x1F8D4 LONG LEFTWARDS HARPOON ABOVESHORT RIGHTWARDS HARPOON
 - "🣕": [t: "⠳⠒⠈⠗⠪⠻⠳⠒⠒⠒⠠⠗⠕"]         # 0x1F8D5 SHORT LEFTWARDS HARPOON ABOVELONG RIGHTWARDS HARPOON
 - "🣖": [t: "⠳⠒⠒⠒⠕⠯⠠⠭"]                # 0x1F8D6 LONG RIGHTWARDS ARROW WITH THROUGH X
 - "🣗": [t: "⠐⠠⠤⠯⠫⠿"]                    # 0x1F8D7 LONG RIGHTWARDS ARROW WITH DOUBLE SLASH

 - "△": [T: "⠫⠼⠉"]            # 0x25B3 (Triangle)
 - "□": [T: "⠫⠼⠙"]            # 0x25A1 (Square)
 - "▤": [T: "⠨⠫⠼⠙"]            # 0x25A4 (Square with horizontal fill)
 - "▥": [T: "⠨⠫⠼⠙"]            # 0x25A5 (Square with vertical fill)
 - "▦": [T: "⠨⠫⠼⠙"]            # 0x25A6 (Square with orthogonal crosshatch fill)
 - "▧": [T: "⠨⠫⠼⠙"]            # 0x25A7 (Square with upper left to lower right fill)
 - "▨": [T: "⠨⠫⠼⠙"]            # 0x25A8 (Square with upper right to lower left fill)
 - "▩": [T: "⠨⠫⠼⠙"]            # 0x25A9 (Square with diagonal crosshatch fill)
 - "○": [t: "⠫⠿"]             # 0x25CB (Circle)
 - "◍": [T: "⠨⠫⠿"]             # 0x25CD (Circle with vertical fill)
 - "▱": [T: "⠫⠈⠼⠙"]           # 0x25B1 (Parallelogram)
 - "▲": [T: "⠸⠫⠼⠉"]            # 0x25B2 (Filled triangle)
 - "■": [T: "⠸⠫⠼⠙"]            # 0x25A0 (Filled square)
 - "≜": [T: "⠸⠙⠐⠶"]           # 0x225C (Delta equal to)
 - "≝": [t: "⠣⠙⠑⠋⠜⠻⠐⠶"]        # 0x225D (Equal to by definition)
 - "⊕": [t: "⠫⠿⠪⠐⠖t"]          # 0x2295 (Circled plus)
 - "⊖": [t: "⠫⠿⠪⠐⠤t"]          # 0x2296 (Circled minus)
 - "⊗": [t: "⠐⠦t"]          # 0x2297 (Circled times)
 - "⊛": [t: "⠐⠦t"]          # 0x229B (Circled asterisk operator)
 - "⊞": [t: "⠫⠼⠙⠪⠐⠖t"]         # 0x229E (Squared plus)
 - "⊟": [t: "⠫⠼⠙⠪⠐⠤t"]         # 0x229F (Squared minus)
 - "⊠": [t: "⠫⠼⠙⠪⠐⠦t"]         # 0x22A0 (Squared times)
 - "˙": [t: "⠲"]               # 0x02D9 ( Dot Above)
 - "¨": [t: "⠲⠲"]              # 0x00A8 ( Diaeresis/Double Dot Above)
 - "©": [t: "⠘⠉"]               # 0xa9 (Copyright)


 - "\"": [t: "b⠠b⠶"]
 - "'": [t: "b⠄"]
 - "“": [t: "o⠘o⠦"]
 - "”": [t: "c⠘c⠴"]
 - "‘": [t: "o⠠o⠦"]
 - "’": [t: "c⠠c⠴"]
 - "«": [t: "o⠸o⠦"]
 - "»": [t: "c⠸c⠴"]

 - " ":                        # 0x20 (Space)
     - test:
        if: "self::m:mn"
        then: [t: "N⠐"]
        else: [t: "W"]
 - " ":                        # 0xa0 (Non-breaking Space)
     - test:
        - if: "self::m:mn"
          then: [t: "N⠐"]
        - else_if: "following-sibling::*[1][@class='MathML-unit' or BaseNode(.)[@class='MathML-unit']]"
          then: [t: "𝐖"]
          else: [t: "W"]
 - ",":                        # 0x2c (Comma)
     - test:
        if: "self::m:mn"
        then: [t: "N⠂"]
        else: [t: ",W"]
 - ".":                        # 0x2e (Period)
     - test:
        if: "self::m:mn"
        then: [T: "N⠄"]
        else: [t: "."]
 - ":":                         # 0x003A (Colon)
        # Sometimes a colon is meant to be a ratio/mathord and sometimes a map/punct.
        # The latter has a space after it.
        # If in an mrow, guess it is infix and checks the operator. This is pretty weak!
        # Field extensions "[K:F]" and trilinear coordinates "a:b:c" don't want extra space
        # Time doesn't want an extra space -- the am/pm get wrapped in an mrow with the minutes after the colon
    - test:
        if:
        - "ancestor::*[2][IsBracketed(., '{', '}')] or "       # field extension
        - "preceding-sibling::*[2][.=':'] or following-sibling::*[2][.=':'] or"  # trilinear form
          # ratios tend to have similar left and right sides
        - "name(preceding-sibling::*[1]) = name(following-sibling::*[1]) or"
          # am/pm test
        - "(name(preceding-sibling::*[1]) = 'mn' and "
        - "  following-sibling::*[1][self::m:mrow and count(*)=3 and *[1][self::m:mn] and "
        - "     *[3][translate(., 'APM\u00A0', 'apm') = 'am' or translate(., 'APM\u00A0', 'apm') = 'pm']"
        - " ])"
        then: [t: "⠒"]
        else: [t: "⠒W"]

 - "-":                        # 0x2d (Minus sign or hyphen)
    - test:
        if: "self::m:mo"
        then: [t: "⠐⠤"]
        else: [t: "⠤"]

 - "⁡": [t: ""]                         # 0x2061⁡ (invisible function apply)
    #- test:
        #if:
        #- "preceding-sibling::*[1][self::m:mi and substring(., string-length(.), 1)!=' '] and " # avoid scripted function names and one that end with spaces
        #- "following-sibling::*[1][self::m:mi and translate(., 'abcdefghijklmnopqrstuvwxyz', '') = '']" # GTM 9.3.2
        #then: [t: "W"]
        #else: [t: ""]

 - "⁢": [t: ""]                        # 0x2062 (invisible times)
    #- test:
        #if: # GTM 9.3.3 (not very clear in rule, but the function name has to start with a lower case latin char ['no indicators'])
        #- "parent::m:mrow and "
        #- "preceding-sibling::*[1]["
        #- "           (self::m:mi and translate(., 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ', '') = '') or "
        #- "           (self::m:mrow and translate(*[last()], 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ', '') = '')] and"
        #- "  following::*[1][self::m:mrow and count(*)=3 and "   # look for function apply
        #- "     *[2][.='⁡'] and *[1][self::m:mi and translate(., 'abcdefghijklmnopqrstuvwxyz', '') = '']]" 
        #then: [t: "W"]
        #else: [t: ""]
 - "⁣": [t: ""]                 # 0x2063⁡ (invisible separator)
 - "⁤": [t: ""]                 # 0x2064 (invisible plus)
 - "0": [t: "N⠚"]               # 0x30 
 - "1": [t: "N⠁"]               # 0x31 
 - "2": [t: "N⠃"]               # 0x32 
 - "3": [t: "N⠉"]               # 0x33 
 - "4": [t: "N⠙"]               # 0x34 
 - "5": [t: "N⠑"]               # 0x35 
 - "6": [t: "N⠋"]               # 0x36 
 - "7": [t: "N⠛"]               # 0x37 
 - "8": [t: "N⠓"]               # 0x38 
 - "9": [t: "N⠊"]               # 0x39 

 # we stick the drop numbers into the private use area for consistency
 - "\ue000": [t: "N⠴"]               # 0 
 - "\ue001": [t: "N⠂"]               # 1 
 - "\ue002": [t: "N⠆"]               # 2 
 - "\ue003": [t: "N⠒"]               # 3 
 - "\ue004": [t: "N⠲"]               # 4 
 - "\ue005": [t: "N⠢"]               # 5 
 - "\ue006": [t: "N⠖"]               # 6 
 - "\ue007": [t: "N⠶"]               # 7 
 - "\ue008": [t: "N⠦"]               # 8 
 - "\ue009": [t: "N⠔"]               # 9 

 - "a": [t: "L⠁"]               # 0x61 
 - "b": [t: "L⠃"]               # 0x62 
 - "c": [t: "L⠉"]               # 0x63 
 - "d": [t: "L⠙"]               # 0x64 
 - "e": [t: "L⠑"]               # 0x65 
 - "f": [t: "L⠋"]               # 0x66 
 - "g": [t: "L⠛"]               # 0x67 
 - "h": [t: "L⠓"]               # 0x68 
 - "i": [t: "L⠊"]               # 0x69 
 - "j": [t: "L⠚"]               # 0x6a 
 - "k": [t: "L⠅"]               # 0x6b 
 - "l": [t: "L⠇"]               # 0x6c 
 - "m": [t: "L⠍"]               # 0x6d 
 - "n": [t: "L⠝"]               # 0x6e 
 - "o": [t: "L⠕"]               # 0x6f 
 - "p": [t: "L⠏"]               # 0x70 
 - "q": [t: "L⠟"]               # 0x71 
 - "r": [t: "L⠗"]               # 0x72 
 - "s": [t: "L⠎"]               # 0x73 
 - "t": [t: "L⠞"]               # 0x74 
 - "u": [t: "L⠥"]               # 0x75 
 - "v": [t: "L⠧"]               # 0x76 
 - "w": [t: "L⠺"]               # 0x77 
 - "x": [t: "L⠭"]               # 0x78 
 - "y": [t: "L⠽"]               # 0x79 
 - "z": [t: "L⠵"]               # 0x7a 

 - "đ": [t: "L⠮"]
 - "á": [t: "L⠔L⠁"]
 - "à": [t: "L⠰L⠁"]
 - "ả": [t: "L⠢L⠁"]
 - "ã": [t: "L⠤L⠁"]
 - "ạ": [t: "L⠠L⠁"]
 - "â": [t: "L⠡"]
 - "ấ": [t: "L⠔L⠡"]
 - "ầ": [t: "L⠰L⠡"]
 - "ẩ": [t: "L⠢L⠡"]
 - "ẫ": [t: "L⠤L⠡"]
 - "ậ": [t: "L⠠L⠡"]
 - "ă": [t: "L⠜"]
 - "ắ": [t: "L⠔L⠜"]
 - "ằ": [t: "L⠰L⠜"]
 - "ẳ": [t: "L⠢L⠜"]
 - "ẵ": [t: "L⠤L⠜"]
 - "ặ": [t: "L⠠L⠜"]
 - "é": [t: "L⠔L⠑"]
 - "è": [t: "L⠰L⠑"]
 - "ẻ": [t: "L⠢L⠑"]
 - "ẽ": [t: "L⠤L⠑"]
 - "ẹ": [t: "L⠠L⠑"]
 - "ê": [t: "L⠣"]
 - "ế": [t: "L⠔L⠣"]
 - "ề": [t: "L⠰L⠣"]
 - "ể": [t: "L⠢L⠣"]
 - "ễ": [t: "L⠤L⠣"]
 - "ệ": [t: "L⠠L⠣"]
 - "í": [t: "L⠔L⠊"]
 - "ì": [t: "L⠰L⠊"]
 - "ỉ": [t: "L⠢L⠊"]
 - "ĩ": [t: "L⠤L⠊"]
 - "ị": [t: "L⠠L⠊"]
 - "ó": [t: "L⠔L⠕"]
 - "ò": [t: "L⠰L⠕"]
 - "ỏ": [t: "L⠢L⠕"]
 - "õ": [t: "L⠤L⠕"]
 - "ọ": [t: "L⠠L⠕"]
 - "ô": [t: "L⠹"]
 - "ố": [t: "L⠔L⠹"]
 - "ồ": [t: "L⠰L⠹"]
 - "ổ": [t: "L⠢L⠹"]
 - "ỗ": [t: "L⠤L⠹"]
 - "ộ": [t: "L⠠L⠹"]
 - "ơ": [t: "L⠪"]
 - "ớ": [t: "L⠔L⠪"]
 - "ờ": [t: "L⠰L⠪"]
 - "ở": [t: "L⠢L⠪"]
 - "ỡ": [t: "L⠤L⠪"]
 - "ợ": [t: "L⠠L⠪"]
 - "ú": [t: "L⠔L⠥"]
 - "ù": [t: "L⠰L⠥"]
 - "ủ": [t: "L⠢L⠥"]
 - "ũ": [t: "L⠤L⠥"]
 - "ụ": [t: "L⠠L⠥"]
 - "ư": [t: "L⠳"]
 - "ứ": [t: "L⠔L⠳"]
 - "ừ": [t: "L⠰L⠳"]
 - "ử": [t: "L⠢L⠳"]
 - "ữ": [t: "L⠤L⠳"]
 - "ự": [t: "L⠠L⠳"]
 - "ý": [t: "L⠔L⠽"]
 - "ỳ": [t: "L⠰L⠽"]
 - "ỷ": [t: "L⠢L⠽"]
 - "ỹ": [t: "L⠤L⠽"]
 - "ỵ": [t: "L⠠L⠽"]

 - "Đ": [t: "CL⠮"]
 - "Á": [t: "CL⠔𝑐L⠁"]
 - "À": [t: "CL⠰𝑐L⠁"]
 - "Ả": [t: "CL⠢𝑐L⠁"]
 - "Ã": [t: "CL⠤𝑐L⠁"]
 - "Ạ": [t: "CL⠠𝑐L⠁"]
 - "Â": [t: "CL⠡"]
 - "Ấ": [t: "CL⠔𝑐L⠡"]
 - "Ầ": [t: "CL⠰𝑐L⠡"]
 - "Ẩ": [t: "CL⠢𝑐L⠡"]
 - "Ẫ": [t: "CL⠤𝑐L⠡"]
 - "Ậ": [t: "CL⠠𝑐L⠡"]
 - "Ă": [t: "CL⠜"]
 - "Ắ": [t: "CL⠔𝑐L⠜"]
 - "Ằ": [t: "CL⠰𝑐L⠜"]
 - "Ẳ": [t: "CL⠢𝑐L⠜"]
 - "Ẵ": [t: "CL⠤𝑐L⠜"]
 - "Ặ": [t: "CL⠠𝑐L⠜"]
 - "É": [t: "CL⠔𝑐L⠑"]
 - "È": [t: "CL⠰𝑐L⠑"]
 - "Ẻ": [t: "CL⠢𝑐L⠑"]
 - "Ẽ": [t: "CL⠤𝑐L⠑"]
 - "Ẹ": [t: "CL⠠𝑐L⠑"]
 - "Ê": [t: "CL⠣"]
 - "Ế": [t: "CL⠔𝑐L⠣"]
 - "Ề": [t: "CL⠰𝑐L⠣"]
 - "Ể": [t: "CL⠢𝑐L⠣"]
 - "Ễ": [t: "CL⠤𝑐L⠣"]
 - "Ệ": [t: "CL⠠𝑐L⠣"]
 - "Í": [t: "CL⠔𝑐L⠊"]
 - "Ì": [t: "CL⠰𝑐L⠊"]
 - "Ỉ": [t: "CL⠢𝑐L⠊"]
 - "Ĩ": [t: "CL⠤𝑐L⠊"]
 - "Ị": [t: "CL⠠𝑐L⠊"]
 - "Ó": [t: "CL⠔𝑐L⠕"]
 - "Ò": [t: "CL⠰𝑐L⠕"]
 - "Ỏ": [t: "CL⠢𝑐L⠕"]
 - "Õ": [t: "CL⠤𝑐L⠕"]
 - "Ọ": [t: "CL⠠𝑐L⠕"]
 - "Ô": [t: "CL⠹"]
 - "Ố": [t: "CL⠔𝑐L⠹"]
 - "Ồ": [t: "CL⠰𝑐L⠹"]
 - "Ổ": [t: "CL⠢𝑐L⠹"]
 - "Ỗ": [t: "CL⠤𝑐L⠹"]
 - "Ộ": [t: "CL⠠𝑐L⠹"]
 - "Ơ": [t: "CL⠪"]
 - "Ớ": [t: "CL⠔𝑐L⠪"]
 - "Ờ": [t: "CL⠰𝑐L⠪"]
 - "Ở": [t: "CL⠢𝑐L⠪"]
 - "Ỡ": [t: "CL⠤𝑐L⠪"]
 - "Ợ": [t: "CL⠠𝑐L⠪"]
 - "Ú": [t: "CL⠔𝑐L⠥"]
 - "Ù": [t: "CL⠰𝑐L⠥"]
 - "Ủ": [t: "CL⠢𝑐L⠥"]
 - "Ũ": [t: "CL⠤𝑐L⠥"]
 - "Ụ": [t: "CL⠠𝑐L⠥"]
 - "Ư": [t: "CL⠳"]
 - "Ứ": [t: "CL⠔𝑐L⠳"]
 - "Ừ": [t: "CL⠰𝑐L⠳"]
 - "Ử": [t: "CL⠢𝑐L⠳"]
 - "Ữ": [t: "CL⠤𝑐L⠳"]
 - "Ự": [t: "CL⠠𝑐L⠳"]
 - "Ý": [t: "CL⠔𝑐L⠽"]
 - "Ỳ": [t: "CL⠰𝑐L⠽"]
 - "Ỷ": [t: "CL⠢𝑐L⠽"]
 - "Ỹ": [t: "CL⠤𝑐L⠽"]
 - "Ỵ": [t: "CL⠠𝑐L⠽"]

 - "A": [t: "CL⠁"]              # 0x41 
 - "B": [t: "CL⠃"]              # 0x42
 - "C": [t: "CL⠉"]              # 0x43 
 - "D": [t: "CL⠙"]              # 0x44 
 - "E": [t: "CL⠑"]              # 0x45 
 - "F": [t: "CL⠋"]              # 0x46 
 - "G": [t: "CL⠛"]              # 0x47 
 - "H": [t: "CL⠓"]              # 0x48 
 - "I": [t: "CL⠊"]              # 0x49 
 - "J": [t: "CL⠚"]              # 0x4a 
 - "K": [t: "CL⠅"]              # 0x4b 
 - "L": [t: "CL⠇"]              # 0x4c 
 - "M": [t: "CL⠍"]              # 0x4d 
 - "N": [t: "CL⠝"]              # 0x4e 
 - "O": [t: "CL⠕"]              # 0x4f 
 - "P": [t: "CL⠏"]              # 0x50 
 - "Q": [t: "CL⠟"]              # 0x51 
 - "R": [t: "CL⠗"]              # 0x52 
 - "S": [t: "CL⠎"]              # 0x53 
 - "T": [t: "CL⠞"]              # 0x54 
 - "U": [t: "CL⠥"]              # 0x55 
 - "V": [t: "CL⠧"]              # 0x56 
 - "W": [t: "CL⠺"]              # 0x57 
 - "X": [t: "CL⠭"]              # 0x58 
 - "Y": [t: "CL⠽"]              # 0x59 
 - "Z": [t: "CL⠵"]              # 0x5a 

 - "α": [t: "GL⠁"]              # 0x3b1 
 - "β": [t: "GL⠃"]              # 0x3b2 
 - "γ": [t: "GL⠛"]              # 0x3b3 
 - "δ": [t: "GL⠙"]              # 0x3b4 
 - "ε": [t: "GL⠑"]              # 0x3b5 
 - "ζ": [t: "GL⠵"]              # 0x3b6 
 - "η": [t: "GL⠱"]             # 0x3b7 
 - "θ": [t: "GL⠹"]              # 0x3b8 
 - "ι": [t: "GL⠊"]              # 0x3b9 
 - "κ": [t: "GL⠅"]              # 0x3ba 
 - "λ": [t: "GL⠇"]              # 0x3bb 
 - "μ": [t: "GL⠍"]              # 0x3bc 
 - "ν": [t: "GL⠝"]              # 0x3bd 
 - "ξ": [t: "GL⠭"]              # 0x3be 
 - "ο": [t: "GL⠕"]              # 0x3bf 
 - "π": [t: "GL⠏"]              # 0x3c0 
 - "ρ": [t: "GL⠗"]              # 0x3c1 
 - "ς": [t: "GL⠎"]              # 0x3c2 
 - "σ": [t: "GL⠎"]              # 0x3c3 
 - "τ": [t: "GL⠞"]              # 0x3c4 
 - "υ": [t: "GL⠥"]              # 0x3c5 
 - "φ": [T: "GL⠋"]              # 0x3c6 
 - "ϕ": [T: "GL⠋"]              # 0x3c6 
 - "χ": [T: "GL⠯"]              # 0x3c7 
 - "ψ": [t: "GL⠽"]              # 0x3c8 
 - "ω": [t: "GL⠺"]             # 0x3c9

 - "Α": [t: "CGL⠁"]             # 0x391 
 - "Β": [t: "CGL⠃"]             # 0x392 
 - "Γ": [t: "CGL⠛"]             # 0x393 
 - "Δ": [t: "CGL⠙"]             # 0x394 
 - "Ε": [t: "CGL⠑"]             # 0x395 
 - "Ζ": [t: "CGL⠵"]             # 0x396 
 - "Η": [t: "CGL⠱ "]            # 0x397 
 - "Θ": [t: "CGL⠹"]             # 0x398 
 - "Ι": [t: "CGL⠊"]             # 0x399 
 - "Κ": [t: "CGL⠅"]             # 0x39a 
 - "Λ": [t: "CGL⠇"]             # 0x39b 
 - "Μ": [t: "CGL⠍"]             # 0x39c 
 - "Ν": [t: "CGL⠝"]             # 0x39d 
 - "Ξ": [t: "CGL⠭"]             # 0x39e 
 - "Ο": [t: "CGL⠕"]             # 0x39f 
 - "Π": [t: "CGL⠏"]             # 0x3a0 
 - "Ρ": [t: "CGL⠗"]             # 0x3a1 
 - "΢": [t: "CGL⠎"]             # 0x3a2 
 - "Σ": [t: "CGL⠎"]             # 0x3a3 
 - "Τ": [t: "CGL⠞"]             # 0x3a4 
 - "Υ": [t: "CGL⠥"]             # 0x3a5 
 - "Φ": [t: "CGL⠋"]             # 0x3a6 
 - "Χ": [t: "CGL⠯"]             # 0x3a7 
 - "Ψ": [t: "CGL⠽"]             # 0x3a8 
 - "Ω": [T: "CGL⠺"]             # 0x3a9

 - "µ": [t: "GL⠍"]              # 0x00B5 (Micro (Greek mu))
 - "Ω": [t: "CGL⠺"]             # 0x2126 (Ohm sign (capital Greek omega))
 - "∆": [t: "CGL⠙"]             # 0x2206 (Increment (capital Greek delta))
 - "∏": [t: "CGL⠏"]             # 0x220F (Product (capital Greek pi))
 - "∑": [t: "CGL⠎"]             # 0x2211 (Sum (capital Greek sigma))


# Not yet defined symbols
 - "‰": [T: "⠼⠚⠴⠴"]
 - "≊": [T: "⠐⠢⠢⠶"]
 - "⋮": [T: "⠣⠴⠜"]          # 0x22ee (vertical ellipsis used to indicate dividable)
 - "⧵": [T: "⠸⠡"]          
 - "∕": [T: "⠐⠲"]
 - "⊘": [T: "⠐⠲"]
 - "⁄": [T: "⠐⠲"]
 - "℃": [T: "⠔⠚⠀⠨⠉"]
 - "℉": [T: "⠔⠚⠀⠨⠋"]
