diff --git a/functions/Invoke-Method.ps1 b/functions/Invoke-Method.ps1 index b9fc0cb..c4b9069 100644 --- a/functions/Invoke-Method.ps1 +++ b/functions/Invoke-Method.ps1 @@ -164,7 +164,11 @@ function Invoke-Method { if ($PSBoundParameters.ContainsKey('Body')) { if ($ContentType -eq 'application/json') { - $params.Body = $Body | ConvertTo-Json -Compress + if ($PSVersionTable.PSVersion -ge '6.2.0') { + $params.Body = $Body | ConvertTo-Json -Compress -EscapeHandling EscapeNonAscii + } else { + $params.Body = $Body | ConvertTo-Json -Compress | ConvertTo-UnicodeEscape + } } else { $params.Body = $Body } diff --git a/internal/ConvertTo-UnicodeEscape.ps1 b/internal/ConvertTo-UnicodeEscape.ps1 new file mode 100644 index 0000000..a810b04 --- /dev/null +++ b/internal/ConvertTo-UnicodeEscape.ps1 @@ -0,0 +1,46 @@ +function ConvertTo-UnicodeEscape { + <# + .SYNOPSIS + Escapes non-ascii characters in a given string + .DESCRIPTION + Escapes non-ascii characters in a given string + .EXAMPLE + PS C:\> 'A Náme' | ConvertTo-UnicodeEscape + + Escapes the `á` to json compliant `\u00E1` + .EXAMPLE + PS C:\> $data | ConvertTo-Json -Compress | ConvertTo-UnicodeEscape + + Converts `$data` to json and escapes any non ascii characters + #> + [CmdletBinding()] + Param ( + # String to escape + [Parameter(Mandatory = $true, ValueFromPipeline = $true)] + [String] + $InputObject + ) + + $output = '' + + foreach ($char in $InputObject.GetEnumerator()) { + $i = [int]$char + + if ($i -lt 128) { + Write-Debug -Message "$char ($i) does not need escaping." + $output += $char + } else { + Write-Debug -Message "$char ($i) needs escaping." + + $hex = '{0:X}' -f $i + Write-Debug -Message "Character as hex: $hex" + + $escape = '\u' + $hex.PadLeft(4, '0') + Write-Debug -Message "Full escape sequence: $escape" + + $output += $escape + } + } + + $output +} diff --git a/tests/ConvertTo-UnicodeEscape.tests.ps1 b/tests/ConvertTo-UnicodeEscape.tests.ps1 new file mode 100644 index 0000000..1040534 --- /dev/null +++ b/tests/ConvertTo-UnicodeEscape.tests.ps1 @@ -0,0 +1,1969 @@ +Import-Module "$PSScriptRoot/../PwshZendesk.psm1" -Force + +Describe 'ConvertTo-UnicodeEscape' { + + InModuleScope PwshZendesk { + + # Space to tilde includes most of ascii + $cases = ' '..'~' | ForEach-Object { @{ Char = $_ } } + + It 'Does not escape: ' -TestCases $cases { + Param ($Char) + + $Char | ConvertTo-UnicodeEscape | Should -Be $Char + } + + # cases snagged from: https://gist.github.com/ivandrofly/0fe20773bd712b303f78 + # $raw | % { if ($_ -match 'U\+([0-9A-F]{4})') { $a = $_.substring(0,1); $b = $Matches[1]; "@{ Char = '$a'; Escape = '\u$b' }" } } + $cases = @( + @{ Char = ' '; Escape = '\u00A0' } + @{ Char = '¡'; Escape = '\u00A1' } + @{ Char = '¢'; Escape = '\u00A2' } + @{ Char = '£'; Escape = '\u00A3' } + @{ Char = '¤'; Escape = '\u00A4' } + @{ Char = '¥'; Escape = '\u00A5' } + @{ Char = '¦'; Escape = '\u00A6' } + @{ Char = '§'; Escape = '\u00A7' } + @{ Char = '¨'; Escape = '\u00A8' } + @{ Char = '©'; Escape = '\u00A9' } + @{ Char = 'ª'; Escape = '\u00AA' } + @{ Char = '«'; Escape = '\u00AB' } + @{ Char = '¬'; Escape = '\u00AC' } + @{ Char = '­'; Escape = '\u00AD' } + @{ Char = '®'; Escape = '\u00AE' } + @{ Char = '¯'; Escape = '\u00AF' } + @{ Char = '°'; Escape = '\u00B0' } + @{ Char = '±'; Escape = '\u00B1' } + @{ Char = '²'; Escape = '\u00B2' } + @{ Char = '³'; Escape = '\u00B3' } + @{ Char = '´'; Escape = '\u00B4' } + @{ Char = 'µ'; Escape = '\u00B5' } + @{ Char = '¶'; Escape = '\u00B6' } + @{ Char = '·'; Escape = '\u00B7' } + @{ Char = '¸'; Escape = '\u00B8' } + @{ Char = '¹'; Escape = '\u00B9' } + @{ Char = 'º'; Escape = '\u00BA' } + @{ Char = '»'; Escape = '\u00BB' } + @{ Char = '¼'; Escape = '\u00BC' } + @{ Char = '½'; Escape = '\u00BD' } + @{ Char = '¾'; Escape = '\u00BE' } + @{ Char = '¿'; Escape = '\u00BF' } + @{ Char = 'À'; Escape = '\u00C0' } + @{ Char = 'Á'; Escape = '\u00C1' } + @{ Char = 'Â'; Escape = '\u00C2' } + @{ Char = 'Ã'; Escape = '\u00C3' } + @{ Char = 'Ä'; Escape = '\u00C4' } + @{ Char = 'Å'; Escape = '\u00C5' } + @{ Char = 'Æ'; Escape = '\u00C6' } + @{ Char = 'Ç'; Escape = '\u00C7' } + @{ Char = 'È'; Escape = '\u00C8' } + @{ Char = 'É'; Escape = '\u00C9' } + @{ Char = 'Ê'; Escape = '\u00CA' } + @{ Char = 'Ë'; Escape = '\u00CB' } + @{ Char = 'Ì'; Escape = '\u00CC' } + @{ Char = 'Í'; Escape = '\u00CD' } + @{ Char = 'Î'; Escape = '\u00CE' } + @{ Char = 'Ï'; Escape = '\u00CF' } + @{ Char = 'Ð'; Escape = '\u00D0' } + @{ Char = 'Ñ'; Escape = '\u00D1' } + @{ Char = 'Ò'; Escape = '\u00D2' } + @{ Char = 'Ó'; Escape = '\u00D3' } + @{ Char = 'Ô'; Escape = '\u00D4' } + @{ Char = 'Õ'; Escape = '\u00D5' } + @{ Char = 'Ö'; Escape = '\u00D6' } + @{ Char = '×'; Escape = '\u00D7' } + @{ Char = 'Ø'; Escape = '\u00D8' } + @{ Char = 'Ù'; Escape = '\u00D9' } + @{ Char = 'Ú'; Escape = '\u00DA' } + @{ Char = 'Û'; Escape = '\u00DB' } + @{ Char = 'Ü'; Escape = '\u00DC' } + @{ Char = 'Ý'; Escape = '\u00DD' } + @{ Char = 'Þ'; Escape = '\u00DE' } + @{ Char = 'ß'; Escape = '\u00DF' } + @{ Char = 'à'; Escape = '\u00E0' } + @{ Char = 'á'; Escape = '\u00E1' } + @{ Char = 'â'; Escape = '\u00E2' } + @{ Char = 'ã'; Escape = '\u00E3' } + @{ Char = 'ä'; Escape = '\u00E4' } + @{ Char = 'å'; Escape = '\u00E5' } + @{ Char = 'æ'; Escape = '\u00E6' } + @{ Char = 'ç'; Escape = '\u00E7' } + @{ Char = 'è'; Escape = '\u00E8' } + @{ Char = 'é'; Escape = '\u00E9' } + @{ Char = 'ê'; Escape = '\u00EA' } + @{ Char = 'ë'; Escape = '\u00EB' } + @{ Char = 'ì'; Escape = '\u00EC' } + @{ Char = 'í'; Escape = '\u00ED' } + @{ Char = 'î'; Escape = '\u00EE' } + @{ Char = 'ï'; Escape = '\u00EF' } + @{ Char = 'ð'; Escape = '\u00F0' } + @{ Char = 'ñ'; Escape = '\u00F1' } + @{ Char = 'ò'; Escape = '\u00F2' } + @{ Char = 'ó'; Escape = '\u00F3' } + @{ Char = 'ô'; Escape = '\u00F4' } + @{ Char = 'õ'; Escape = '\u00F5' } + @{ Char = 'ö'; Escape = '\u00F6' } + @{ Char = '÷'; Escape = '\u00F7' } + @{ Char = 'ø'; Escape = '\u00F8' } + @{ Char = 'ù'; Escape = '\u00F9' } + @{ Char = 'ú'; Escape = '\u00FA' } + @{ Char = 'û'; Escape = '\u00FB' } + @{ Char = 'ü'; Escape = '\u00FC' } + @{ Char = 'ý'; Escape = '\u00FD' } + @{ Char = 'þ'; Escape = '\u00FE' } + @{ Char = 'ÿ'; Escape = '\u00FF' } + @{ Char = 'Ł'; Escape = '\u0141' } + @{ Char = 'ł'; Escape = '\u0142' } + @{ Char = 'Ń'; Escape = '\u0143' } + @{ Char = 'ń'; Escape = '\u0144' } + @{ Char = 'Ņ'; Escape = '\u0145' } + @{ Char = 'ņ'; Escape = '\u0146' } + @{ Char = 'Ň'; Escape = '\u0147' } + @{ Char = 'ň'; Escape = '\u0148' } + @{ Char = 'Ŋ'; Escape = '\u014A' } + @{ Char = 'ŋ'; Escape = '\u014B' } + @{ Char = 'Ō'; Escape = '\u014C' } + @{ Char = 'ō'; Escape = '\u014D' } + @{ Char = 'Ŏ'; Escape = '\u014E' } + @{ Char = 'ŏ'; Escape = '\u014F' } + @{ Char = 'Ő'; Escape = '\u0150' } + @{ Char = 'ő'; Escape = '\u0151' } + @{ Char = 'Œ'; Escape = '\u0152' } + @{ Char = 'œ'; Escape = '\u0153' } + @{ Char = 'Ŕ'; Escape = '\u0154' } + @{ Char = 'ŕ'; Escape = '\u0155' } + @{ Char = 'Ŗ'; Escape = '\u0156' } + @{ Char = 'ŗ'; Escape = '\u0157' } + @{ Char = 'Ř'; Escape = '\u0158' } + @{ Char = 'ř'; Escape = '\u0159' } + @{ Char = 'Ś'; Escape = '\u015A' } + @{ Char = 'ś'; Escape = '\u015B' } + @{ Char = 'Ŝ'; Escape = '\u015C' } + @{ Char = 'ŝ'; Escape = '\u015D' } + @{ Char = 'Ş'; Escape = '\u015E' } + @{ Char = 'ş'; Escape = '\u015F' } + @{ Char = 'Š'; Escape = '\u0160' } + @{ Char = 'š'; Escape = '\u0161' } + @{ Char = 'Ţ'; Escape = '\u0162' } + @{ Char = 'ţ'; Escape = '\u0163' } + @{ Char = 'Ť'; Escape = '\u0164' } + @{ Char = 'ť'; Escape = '\u0165' } + @{ Char = 'Ŧ'; Escape = '\u0166' } + @{ Char = 'ŧ'; Escape = '\u0167' } + @{ Char = 'Ũ'; Escape = '\u0168' } + @{ Char = 'ũ'; Escape = '\u0169' } + @{ Char = 'Ū'; Escape = '\u016A' } + @{ Char = 'ū'; Escape = '\u016B' } + @{ Char = 'Ŭ'; Escape = '\u016C' } + @{ Char = 'ŭ'; Escape = '\u016D' } + @{ Char = 'Ů'; Escape = '\u016E' } + @{ Char = 'ů'; Escape = '\u016F' } + @{ Char = 'Ű'; Escape = '\u0170' } + @{ Char = 'ű'; Escape = '\u0171' } + @{ Char = 'Ŵ'; Escape = '\u0174' } + @{ Char = 'ŵ'; Escape = '\u0175' } + @{ Char = 'Ŷ'; Escape = '\u0176' } + @{ Char = 'ŷ'; Escape = '\u0177' } + @{ Char = 'Ÿ'; Escape = '\u0178' } + @{ Char = 'Ź'; Escape = '\u0179' } + @{ Char = 'ź'; Escape = '\u017A' } + @{ Char = 'Ż'; Escape = '\u017B' } + @{ Char = 'ż'; Escape = '\u017C' } + @{ Char = 'Ž'; Escape = '\u017D' } + @{ Char = 'ž'; Escape = '\u017E' } + @{ Char = 'ſ'; Escape = '\u017F' } + @{ Char = 'Ɔ'; Escape = '\u0186' } + @{ Char = 'Ǝ'; Escape = '\u018E' } + @{ Char = 'Ɯ'; Escape = '\u019C' } + @{ Char = 'ɐ'; Escape = '\u0250' } + @{ Char = 'ɑ'; Escape = '\u0251' } + @{ Char = 'ɒ'; Escape = '\u0252' } + @{ Char = 'ɔ'; Escape = '\u0254' } + @{ Char = 'ɘ'; Escape = '\u0258' } + @{ Char = 'ə'; Escape = '\u0259' } + @{ Char = 'ɛ'; Escape = '\u025B' } + @{ Char = 'ɜ'; Escape = '\u025C' } + @{ Char = 'ɞ'; Escape = '\u025E' } + @{ Char = 'ɟ'; Escape = '\u025F' } + @{ Char = 'ɡ'; Escape = '\u0261' } + @{ Char = 'ɢ'; Escape = '\u0262' } + @{ Char = 'ɣ'; Escape = '\u0263' } + @{ Char = 'ɤ'; Escape = '\u0264' } + @{ Char = 'ɥ'; Escape = '\u0265' } + @{ Char = 'ɨ'; Escape = '\u0268' } + @{ Char = 'ɪ'; Escape = '\u026A' } + @{ Char = 'ɬ'; Escape = '\u026C' } + @{ Char = 'ɮ'; Escape = '\u026E' } + @{ Char = 'ɯ'; Escape = '\u026F' } + @{ Char = 'ɰ'; Escape = '\u0270' } + @{ Char = 'ɴ'; Escape = '\u0274' } + @{ Char = 'ɵ'; Escape = '\u0275' } + @{ Char = 'ɶ'; Escape = '\u0276' } + @{ Char = 'ɷ'; Escape = '\u0277' } + @{ Char = 'ɸ'; Escape = '\u0278' } + @{ Char = 'ɹ'; Escape = '\u0279' } + @{ Char = 'ʁ'; Escape = '\u0281' } + @{ Char = 'ʇ'; Escape = '\u0287' } + @{ Char = 'ʌ'; Escape = '\u028C' } + @{ Char = 'ʍ'; Escape = '\u028D' } + @{ Char = 'ʎ'; Escape = '\u028E' } + @{ Char = 'ʞ'; Escape = '\u029E' } + @{ Char = 'Α'; Escape = '\u0391' } + @{ Char = 'Β'; Escape = '\u0392' } + @{ Char = 'Γ'; Escape = '\u0393' } + @{ Char = 'Δ'; Escape = '\u0394' } + @{ Char = 'Ε'; Escape = '\u0395' } + @{ Char = 'Ζ'; Escape = '\u0396' } + @{ Char = 'Η'; Escape = '\u0397' } + @{ Char = 'Θ'; Escape = '\u0398' } + @{ Char = 'Ι'; Escape = '\u0399' } + @{ Char = 'Κ'; Escape = '\u039A' } + @{ Char = 'Λ'; Escape = '\u039B' } + @{ Char = 'Μ'; Escape = '\u039C' } + @{ Char = 'Ν'; Escape = '\u039D' } + @{ Char = 'Ξ'; Escape = '\u039E' } + @{ Char = 'Ο'; Escape = '\u039F' } + @{ Char = 'Π'; Escape = '\u03A0' } + @{ Char = 'Ρ'; Escape = '\u03A1' } + @{ Char = 'Σ'; Escape = '\u03A3' } + @{ Char = 'Τ'; Escape = '\u03A4' } + @{ Char = 'Υ'; Escape = '\u03A5' } + @{ Char = 'Φ'; Escape = '\u03A6' } + @{ Char = 'Χ'; Escape = '\u03A7' } + @{ Char = 'Ψ'; Escape = '\u03A8' } + @{ Char = 'Ω'; Escape = '\u03A9' } + @{ Char = 'α'; Escape = '\u03B1' } + @{ Char = 'β'; Escape = '\u03B2' } + @{ Char = 'γ'; Escape = '\u03B3' } + @{ Char = 'δ'; Escape = '\u03B4' } + @{ Char = 'ε'; Escape = '\u03B5' } + @{ Char = 'ζ'; Escape = '\u03B6' } + @{ Char = 'η'; Escape = '\u03B7' } + @{ Char = 'θ'; Escape = '\u03B8' } + @{ Char = 'ι'; Escape = '\u03B9' } + @{ Char = 'κ'; Escape = '\u03BA' } + @{ Char = 'λ'; Escape = '\u03BB' } + @{ Char = 'μ'; Escape = '\u03BC' } + @{ Char = 'ν'; Escape = '\u03BD' } + @{ Char = 'ξ'; Escape = '\u03BE' } + @{ Char = 'ο'; Escape = '\u03BF' } + @{ Char = 'π'; Escape = '\u03C0' } + @{ Char = 'ρ'; Escape = '\u03C1' } + @{ Char = 'ς'; Escape = '\u03C2' } + @{ Char = 'σ'; Escape = '\u03C3' } + @{ Char = 'τ'; Escape = '\u03C4' } + @{ Char = 'υ'; Escape = '\u03C5' } + @{ Char = 'φ'; Escape = '\u03C6' } + @{ Char = 'χ'; Escape = '\u03C7' } + @{ Char = 'ψ'; Escape = '\u03C8' } + @{ Char = 'ω'; Escape = '\u03C9' } + @{ Char = 'А'; Escape = '\u0410' } + @{ Char = 'Б'; Escape = '\u0411' } + @{ Char = 'В'; Escape = '\u0412' } + @{ Char = 'Г'; Escape = '\u0413' } + @{ Char = 'Д'; Escape = '\u0414' } + @{ Char = 'Е'; Escape = '\u0415' } + @{ Char = 'Ж'; Escape = '\u0416' } + @{ Char = 'З'; Escape = '\u0417' } + @{ Char = 'И'; Escape = '\u0418' } + @{ Char = 'Й'; Escape = '\u0419' } + @{ Char = 'К'; Escape = '\u041A' } + @{ Char = 'Л'; Escape = '\u041B' } + @{ Char = 'М'; Escape = '\u041C' } + @{ Char = 'Н'; Escape = '\u041D' } + @{ Char = 'О'; Escape = '\u041E' } + @{ Char = 'П'; Escape = '\u041F' } + @{ Char = 'Р'; Escape = '\u0420' } + @{ Char = 'С'; Escape = '\u0421' } + @{ Char = 'Т'; Escape = '\u0422' } + @{ Char = 'У'; Escape = '\u0423' } + @{ Char = 'Ф'; Escape = '\u0424' } + @{ Char = 'Х'; Escape = '\u0425' } + @{ Char = 'Ц'; Escape = '\u0426' } + @{ Char = 'Ч'; Escape = '\u0427' } + @{ Char = 'Ш'; Escape = '\u0428' } + @{ Char = 'Щ'; Escape = '\u0429' } + @{ Char = 'Ъ'; Escape = '\u042A' } + @{ Char = 'Ы'; Escape = '\u042B' } + @{ Char = 'Ь'; Escape = '\u042C' } + @{ Char = 'Э'; Escape = '\u042D' } + @{ Char = 'Ю'; Escape = '\u042E' } + @{ Char = 'Я'; Escape = '\u042F' } + @{ Char = 'а'; Escape = '\u0430' } + @{ Char = 'б'; Escape = '\u0431' } + @{ Char = 'в'; Escape = '\u0432' } + @{ Char = 'г'; Escape = '\u0433' } + @{ Char = 'д'; Escape = '\u0434' } + @{ Char = 'е'; Escape = '\u0435' } + @{ Char = 'ж'; Escape = '\u0436' } + @{ Char = 'з'; Escape = '\u0437' } + @{ Char = 'и'; Escape = '\u0438' } + @{ Char = 'й'; Escape = '\u0439' } + @{ Char = 'к'; Escape = '\u043A' } + @{ Char = 'л'; Escape = '\u043B' } + @{ Char = 'м'; Escape = '\u043C' } + @{ Char = 'н'; Escape = '\u043D' } + @{ Char = 'о'; Escape = '\u043E' } + @{ Char = 'п'; Escape = '\u043F' } + @{ Char = 'р'; Escape = '\u0440' } + @{ Char = 'с'; Escape = '\u0441' } + @{ Char = 'т'; Escape = '\u0442' } + @{ Char = 'у'; Escape = '\u0443' } + @{ Char = 'ф'; Escape = '\u0444' } + @{ Char = 'х'; Escape = '\u0445' } + @{ Char = 'ц'; Escape = '\u0446' } + @{ Char = 'ч'; Escape = '\u0447' } + @{ Char = 'ш'; Escape = '\u0448' } + @{ Char = 'щ'; Escape = '\u0449' } + @{ Char = 'ъ'; Escape = '\u044A' } + @{ Char = 'ы'; Escape = '\u044B' } + @{ Char = 'ь'; Escape = '\u044C' } + @{ Char = 'э'; Escape = '\u044D' } + @{ Char = 'ю'; Escape = '\u044E' } + @{ Char = 'я'; Escape = '\u044F' } + @{ Char = 'ᴀ'; Escape = '\u1D00' } + @{ Char = 'ᴁ'; Escape = '\u1D01' } + @{ Char = 'ᴂ'; Escape = '\u1D02' } + @{ Char = 'ᴃ'; Escape = '\u1D03' } + @{ Char = 'ᴄ'; Escape = '\u1D04' } + @{ Char = 'ᴅ'; Escape = '\u1D05' } + @{ Char = 'ᴆ'; Escape = '\u1D06' } + @{ Char = 'ᴇ'; Escape = '\u1D07' } + @{ Char = 'ᴈ'; Escape = '\u1D08' } + @{ Char = 'ᴉ'; Escape = '\u1D09' } + @{ Char = 'ᴊ'; Escape = '\u1D0A' } + @{ Char = 'ᴋ'; Escape = '\u1D0B' } + @{ Char = 'ᴌ'; Escape = '\u1D0C' } + @{ Char = 'ᴍ'; Escape = '\u1D0D' } + @{ Char = 'ᴎ'; Escape = '\u1D0E' } + @{ Char = 'ᴏ'; Escape = '\u1D0F' } + @{ Char = 'ᴐ'; Escape = '\u1D10' } + @{ Char = 'ᴑ'; Escape = '\u1D11' } + @{ Char = 'ᴒ'; Escape = '\u1D12' } + @{ Char = 'ᴓ'; Escape = '\u1D13' } + @{ Char = 'ᴔ'; Escape = '\u1D14' } + @{ Char = 'ᴕ'; Escape = '\u1D15' } + @{ Char = 'ᴖ'; Escape = '\u1D16' } + @{ Char = 'ᴗ'; Escape = '\u1D17' } + @{ Char = 'ᴘ'; Escape = '\u1D18' } + @{ Char = 'ᴙ'; Escape = '\u1D19' } + @{ Char = 'ᴚ'; Escape = '\u1D1A' } + @{ Char = 'ᴛ'; Escape = '\u1D1B' } + @{ Char = 'ᴜ'; Escape = '\u1D1C' } + @{ Char = 'ᴝ'; Escape = '\u1D1D' } + @{ Char = 'ᴞ'; Escape = '\u1D1E' } + @{ Char = 'ᴟ'; Escape = '\u1D1F' } + @{ Char = 'ᴠ'; Escape = '\u1D20' } + @{ Char = 'ᴡ'; Escape = '\u1D21' } + @{ Char = 'ᴢ'; Escape = '\u1D22' } + @{ Char = 'ᴣ'; Escape = '\u1D23' } + @{ Char = 'ᴤ'; Escape = '\u1D24' } + @{ Char = 'ᴥ'; Escape = '\u1D25' } + @{ Char = 'ᴦ'; Escape = '\u1D26' } + @{ Char = 'ᴧ'; Escape = '\u1D27' } + @{ Char = 'ᴨ'; Escape = '\u1D28' } + @{ Char = 'ᴩ'; Escape = '\u1D29' } + @{ Char = 'ᴪ'; Escape = '\u1D2A' } + @{ Char = 'ẞ'; Escape = '\u1E9E' } + @{ Char = 'Ỳ'; Escape = '\u1EF2' } + @{ Char = 'ỳ'; Escape = '\u1EF3' } + @{ Char = 'Ỵ'; Escape = '\u1EF4' } + @{ Char = 'ỵ'; Escape = '\u1EF5' } + @{ Char = 'Ỹ'; Escape = '\u1EF8' } + @{ Char = 'ỹ'; Escape = '\u1EF9' } + @{ Char = '‐'; Escape = '\u2010' } + @{ Char = '‑'; Escape = '\u2011' } + @{ Char = '‒'; Escape = '\u2012' } + @{ Char = '–'; Escape = '\u2013' } + @{ Char = '—'; Escape = '\u2014' } + @{ Char = '―'; Escape = '\u2015' } + @{ Char = '‖'; Escape = '\u2016' } + @{ Char = '‗'; Escape = '\u2017' } + @{ Char = "‘"; Escape = '\u2018' } + @{ Char = "’"; Escape = '\u2019' } + @{ Char = "‚"; Escape = '\u201A' } + @{ Char = "‛"; Escape = '\u201B' } + @{ Char = '“'; Escape = '\u201C' } + @{ Char = '”'; Escape = '\u201D' } + @{ Char = '„'; Escape = '\u201E' } + @{ Char = '‟'; Escape = '\u201F' } + @{ Char = '†'; Escape = '\u2020' } + @{ Char = '‡'; Escape = '\u2021' } + @{ Char = '•'; Escape = '\u2022' } + @{ Char = '‣'; Escape = '\u2023' } + @{ Char = '․'; Escape = '\u2024' } + @{ Char = '‥'; Escape = '\u2025' } + @{ Char = '…'; Escape = '\u2026' } + @{ Char = '‧'; Escape = '\u2027' } + @{ Char = '‰'; Escape = '\u2030' } + @{ Char = '‱'; Escape = '\u2031' } + @{ Char = '′'; Escape = '\u2032' } + @{ Char = '″'; Escape = '\u2033' } + @{ Char = '‴'; Escape = '\u2034' } + @{ Char = '‵'; Escape = '\u2035' } + @{ Char = '‶'; Escape = '\u2036' } + @{ Char = '‷'; Escape = '\u2037' } + @{ Char = '‸'; Escape = '\u2038' } + @{ Char = '‹'; Escape = '\u2039' } + @{ Char = '›'; Escape = '\u203A' } + @{ Char = '※'; Escape = '\u203B' } + @{ Char = '‼'; Escape = '\u203C' } + @{ Char = '‽'; Escape = '\u203D' } + @{ Char = '‾'; Escape = '\u203E' } + @{ Char = '‿'; Escape = '\u203F' } + @{ Char = '⁀'; Escape = '\u2040' } + @{ Char = '⁁'; Escape = '\u2041' } + @{ Char = '⁂'; Escape = '\u2042' } + @{ Char = '⁃'; Escape = '\u2043' } + @{ Char = '⁄'; Escape = '\u2044' } + @{ Char = '⁅'; Escape = '\u2045' } + @{ Char = '⁆'; Escape = '\u2046' } + @{ Char = '⁇'; Escape = '\u2047' } + @{ Char = '⁈'; Escape = '\u2048' } + @{ Char = '⁉'; Escape = '\u2049' } + @{ Char = '⁊'; Escape = '\u204A' } + @{ Char = '⁋'; Escape = '\u204B' } + @{ Char = '⁌'; Escape = '\u204C' } + @{ Char = '⁍'; Escape = '\u204D' } + @{ Char = '⁎'; Escape = '\u204E' } + @{ Char = '⁏'; Escape = '\u204F' } + @{ Char = '⁐'; Escape = '\u2050' } + @{ Char = '⁑'; Escape = '\u2051' } + @{ Char = '⁒'; Escape = '\u2052' } + @{ Char = '⁓'; Escape = '\u2053' } + @{ Char = '⁔'; Escape = '\u2054' } + @{ Char = '⁕'; Escape = '\u2055' } + @{ Char = '⁗'; Escape = '\u2057' } + @{ Char = '⁰'; Escape = '\u2070' } + @{ Char = 'ⁱ'; Escape = '\u2071' } + @{ Char = '⁴'; Escape = '\u2074' } + @{ Char = '⁵'; Escape = '\u2075' } + @{ Char = '⁶'; Escape = '\u2076' } + @{ Char = '⁷'; Escape = '\u2077' } + @{ Char = '⁸'; Escape = '\u2078' } + @{ Char = '⁹'; Escape = '\u2079' } + @{ Char = '⁺'; Escape = '\u207A' } + @{ Char = '⁻'; Escape = '\u207B' } + @{ Char = '⁼'; Escape = '\u207C' } + @{ Char = '⁽'; Escape = '\u207D' } + @{ Char = '⁾'; Escape = '\u207E' } + @{ Char = 'ⁿ'; Escape = '\u207F' } + @{ Char = '₀'; Escape = '\u2080' } + @{ Char = '₁'; Escape = '\u2081' } + @{ Char = '₂'; Escape = '\u2082' } + @{ Char = '₃'; Escape = '\u2083' } + @{ Char = '₄'; Escape = '\u2084' } + @{ Char = '₅'; Escape = '\u2085' } + @{ Char = '₆'; Escape = '\u2086' } + @{ Char = '₇'; Escape = '\u2087' } + @{ Char = '₈'; Escape = '\u2088' } + @{ Char = '₉'; Escape = '\u2089' } + @{ Char = '₊'; Escape = '\u208A' } + @{ Char = '₋'; Escape = '\u208B' } + @{ Char = '₌'; Escape = '\u208C' } + @{ Char = '₍'; Escape = '\u208D' } + @{ Char = '₎'; Escape = '\u208E' } + @{ Char = '₠'; Escape = '\u20A0' } + @{ Char = '₡'; Escape = '\u20A1' } + @{ Char = '₢'; Escape = '\u20A2' } + @{ Char = '₣'; Escape = '\u20A3' } + @{ Char = '₤'; Escape = '\u20A4' } + @{ Char = '₥'; Escape = '\u20A5' } + @{ Char = '₦'; Escape = '\u20A6' } + @{ Char = '₧'; Escape = '\u20A7' } + @{ Char = '₨'; Escape = '\u20A8' } + @{ Char = '₩'; Escape = '\u20A9' } + @{ Char = '₪'; Escape = '\u20AA' } + @{ Char = '₫'; Escape = '\u20AB' } + @{ Char = '€'; Escape = '\u20AC' } + @{ Char = '₭'; Escape = '\u20AD' } + @{ Char = '₮'; Escape = '\u20AE' } + @{ Char = '₯'; Escape = '\u20AF' } + @{ Char = '₰'; Escape = '\u20B0' } + @{ Char = '₱'; Escape = '\u20B1' } + @{ Char = '₲'; Escape = '\u20B2' } + @{ Char = '₳'; Escape = '\u20B3' } + @{ Char = '₴'; Escape = '\u20B4' } + @{ Char = '₵'; Escape = '\u20B5' } + @{ Char = '₶'; Escape = '\u20B6' } + @{ Char = '₷'; Escape = '\u20B7' } + @{ Char = '₸'; Escape = '\u20B8' } + @{ Char = '₹'; Escape = '\u20B9' } + @{ Char = 'ᵀ'; Escape = '\u1D40' } + @{ Char = '℀'; Escape = '\u2100' } + @{ Char = '℁'; Escape = '\u2101' } + @{ Char = 'ℂ'; Escape = '\u2102' } + @{ Char = '℃'; Escape = '\u2103' } + @{ Char = '℄'; Escape = '\u2104' } + @{ Char = '℅'; Escape = '\u2105' } + @{ Char = '℆'; Escape = '\u2106' } + @{ Char = 'ℇ'; Escape = '\u2107' } + @{ Char = '℈'; Escape = '\u2108' } + @{ Char = '℉'; Escape = '\u2109' } + @{ Char = 'ℊ'; Escape = '\u210A' } + @{ Char = 'ℋ'; Escape = '\u210B' } + @{ Char = 'ℌ'; Escape = '\u210C' } + @{ Char = 'ℍ'; Escape = '\u210D' } + @{ Char = 'ℎ'; Escape = '\u210E' } + @{ Char = 'ℏ'; Escape = '\u210F' } + @{ Char = 'ℐ'; Escape = '\u2110' } + @{ Char = 'ℑ'; Escape = '\u2111' } + @{ Char = 'ℒ'; Escape = '\u2112' } + @{ Char = 'ℓ'; Escape = '\u2113' } + @{ Char = '℔'; Escape = '\u2114' } + @{ Char = 'ℕ'; Escape = '\u2115' } + @{ Char = '№'; Escape = '\u2116' } + @{ Char = '℗'; Escape = '\u2117' } + @{ Char = '℘'; Escape = '\u2118' } + @{ Char = 'ℙ'; Escape = '\u2119' } + @{ Char = 'ℚ'; Escape = '\u211A' } + @{ Char = 'ℛ'; Escape = '\u211B' } + @{ Char = 'ℜ'; Escape = '\u211C' } + @{ Char = 'ℝ'; Escape = '\u211D' } + @{ Char = '℞'; Escape = '\u211E' } + @{ Char = '℟'; Escape = '\u211F' } + @{ Char = '℠'; Escape = '\u2120' } + @{ Char = '℡'; Escape = '\u2121' } + @{ Char = '™'; Escape = '\u2122' } + @{ Char = '℣'; Escape = '\u2123' } + @{ Char = 'ℤ'; Escape = '\u2124' } + @{ Char = '℥'; Escape = '\u2125' } + @{ Char = 'Ω'; Escape = '\u2126' } + @{ Char = '℧'; Escape = '\u2127' } + @{ Char = 'ℨ'; Escape = '\u2128' } + @{ Char = '℩'; Escape = '\u2129' } + @{ Char = 'K'; Escape = '\u212A' } + @{ Char = 'Å'; Escape = '\u212B' } + @{ Char = 'ℬ'; Escape = '\u212C' } + @{ Char = 'ℭ'; Escape = '\u212D' } + @{ Char = '℮'; Escape = '\u212E' } + @{ Char = 'ℯ'; Escape = '\u212F' } + @{ Char = 'ℰ'; Escape = '\u2130' } + @{ Char = 'ℱ'; Escape = '\u2131' } + @{ Char = 'Ⅎ'; Escape = '\u2132' } + @{ Char = 'ℳ'; Escape = '\u2133' } + @{ Char = 'ℴ'; Escape = '\u2134' } + @{ Char = 'ℵ'; Escape = '\u2135' } + @{ Char = 'ℶ'; Escape = '\u2136' } + @{ Char = 'ℷ'; Escape = '\u2137' } + @{ Char = 'ℸ'; Escape = '\u2138' } + @{ Char = '⅁'; Escape = '\u2141' } + @{ Char = '⅂'; Escape = '\u2142' } + @{ Char = '⅃'; Escape = '\u2143' } + @{ Char = '⅄'; Escape = '\u2144' } + @{ Char = 'ⅅ'; Escape = '\u2145' } + @{ Char = 'ⅆ'; Escape = '\u2146' } + @{ Char = 'ⅇ'; Escape = '\u2147' } + @{ Char = 'ⅈ'; Escape = '\u2148' } + @{ Char = 'ⅉ'; Escape = '\u2149' } + @{ Char = '⅋'; Escape = '\u214B' } + @{ Char = 'ⅎ'; Escape = '\u214E' } + @{ Char = '⅐'; Escape = '\u2150' } + @{ Char = '⅑'; Escape = '\u2151' } + @{ Char = '⅒'; Escape = '\u2152' } + @{ Char = '⅓'; Escape = '\u2153' } + @{ Char = '⅔'; Escape = '\u2154' } + @{ Char = '⅕'; Escape = '\u2155' } + @{ Char = '⅖'; Escape = '\u2156' } + @{ Char = '⅗'; Escape = '\u2157' } + @{ Char = '⅘'; Escape = '\u2158' } + @{ Char = '⅙'; Escape = '\u2159' } + @{ Char = '⅚'; Escape = '\u215A' } + @{ Char = '⅛'; Escape = '\u215B' } + @{ Char = '⅜'; Escape = '\u215C' } + @{ Char = '⅝'; Escape = '\u215D' } + @{ Char = '⅞'; Escape = '\u215E' } + @{ Char = '⅟'; Escape = '\u215F' } + @{ Char = 'Ⅰ'; Escape = '\u2160' } + @{ Char = 'Ⅱ'; Escape = '\u2161' } + @{ Char = 'Ⅲ'; Escape = '\u2162' } + @{ Char = 'Ⅳ'; Escape = '\u2163' } + @{ Char = 'Ⅴ'; Escape = '\u2164' } + @{ Char = 'Ⅵ'; Escape = '\u2165' } + @{ Char = 'Ⅶ'; Escape = '\u2166' } + @{ Char = 'Ⅷ'; Escape = '\u2167' } + @{ Char = 'Ⅸ'; Escape = '\u2168' } + @{ Char = 'Ⅹ'; Escape = '\u2169' } + @{ Char = 'Ⅺ'; Escape = '\u216A' } + @{ Char = 'Ⅻ'; Escape = '\u216B' } + @{ Char = 'Ⅼ'; Escape = '\u216C' } + @{ Char = 'Ⅽ'; Escape = '\u216D' } + @{ Char = 'Ⅾ'; Escape = '\u216E' } + @{ Char = 'Ⅿ'; Escape = '\u216F' } + @{ Char = 'ⅰ'; Escape = '\u2170' } + @{ Char = 'ⅱ'; Escape = '\u2171' } + @{ Char = 'ⅲ'; Escape = '\u2172' } + @{ Char = 'ⅳ'; Escape = '\u2173' } + @{ Char = 'ⅴ'; Escape = '\u2174' } + @{ Char = 'ⅵ'; Escape = '\u2175' } + @{ Char = 'ⅶ'; Escape = '\u2176' } + @{ Char = 'ⅷ'; Escape = '\u2177' } + @{ Char = 'ⅸ'; Escape = '\u2178' } + @{ Char = 'ⅹ'; Escape = '\u2179' } + @{ Char = 'ⅺ'; Escape = '\u217A' } + @{ Char = 'ⅻ'; Escape = '\u217B' } + @{ Char = 'ⅼ'; Escape = '\u217C' } + @{ Char = 'ⅽ'; Escape = '\u217D' } + @{ Char = 'ⅾ'; Escape = '\u217E' } + @{ Char = 'ⅿ'; Escape = '\u217F' } + @{ Char = 'ↄ'; Escape = '\u2184' } + @{ Char = '←'; Escape = '\u2190' } + @{ Char = '↑'; Escape = '\u2191' } + @{ Char = '→'; Escape = '\u2192' } + @{ Char = '↓'; Escape = '\u2193' } + @{ Char = '↔'; Escape = '\u2194' } + @{ Char = '↕'; Escape = '\u2195' } + @{ Char = '↖'; Escape = '\u2196' } + @{ Char = '↗'; Escape = '\u2197' } + @{ Char = '↘'; Escape = '\u2198' } + @{ Char = '↙'; Escape = '\u2199' } + @{ Char = '↚'; Escape = '\u219A' } + @{ Char = '↛'; Escape = '\u219B' } + @{ Char = '↜'; Escape = '\u219C' } + @{ Char = '↝'; Escape = '\u219D' } + @{ Char = '↞'; Escape = '\u219E' } + @{ Char = '↟'; Escape = '\u219F' } + @{ Char = '↠'; Escape = '\u21A0' } + @{ Char = '↡'; Escape = '\u21A1' } + @{ Char = '↢'; Escape = '\u21A2' } + @{ Char = '↣'; Escape = '\u21A3' } + @{ Char = '↤'; Escape = '\u21A4' } + @{ Char = '↥'; Escape = '\u21A5' } + @{ Char = '↦'; Escape = '\u21A6' } + @{ Char = '↧'; Escape = '\u21A7' } + @{ Char = '↨'; Escape = '\u21A8' } + @{ Char = '↩'; Escape = '\u21A9' } + @{ Char = '↪'; Escape = '\u21AA' } + @{ Char = '↫'; Escape = '\u21AB' } + @{ Char = '↬'; Escape = '\u21AC' } + @{ Char = '↭'; Escape = '\u21AD' } + @{ Char = '↮'; Escape = '\u21AE' } + @{ Char = '↯'; Escape = '\u21AF' } + @{ Char = '↰'; Escape = '\u21B0' } + @{ Char = '↱'; Escape = '\u21B1' } + @{ Char = '↲'; Escape = '\u21B2' } + @{ Char = '↳'; Escape = '\u21B3' } + @{ Char = '↴'; Escape = '\u21B4' } + @{ Char = '↵'; Escape = '\u21B5' } + @{ Char = '↶'; Escape = '\u21B6' } + @{ Char = '↷'; Escape = '\u21B7' } + @{ Char = '↸'; Escape = '\u21B8' } + @{ Char = '↹'; Escape = '\u21B9' } + @{ Char = '↺'; Escape = '\u21BA' } + @{ Char = '↻'; Escape = '\u21BB' } + @{ Char = '↼'; Escape = '\u21BC' } + @{ Char = '↽'; Escape = '\u21BD' } + @{ Char = '↾'; Escape = '\u21BE' } + @{ Char = '↿'; Escape = '\u21BF' } + @{ Char = '⇀'; Escape = '\u21C0' } + @{ Char = '⇁'; Escape = '\u21C1' } + @{ Char = '⇂'; Escape = '\u21C2' } + @{ Char = '⇃'; Escape = '\u21C3' } + @{ Char = '⇄'; Escape = '\u21C4' } + @{ Char = '⇅'; Escape = '\u21C5' } + @{ Char = '⇆'; Escape = '\u21C6' } + @{ Char = '⇇'; Escape = '\u21C7' } + @{ Char = '⇈'; Escape = '\u21C8' } + @{ Char = '⇉'; Escape = '\u21C9' } + @{ Char = '⇊'; Escape = '\u21CA' } + @{ Char = '⇋'; Escape = '\u21CB' } + @{ Char = '⇌'; Escape = '\u21CC' } + @{ Char = '⇍'; Escape = '\u21CD' } + @{ Char = '⇎'; Escape = '\u21CE' } + @{ Char = '⇏'; Escape = '\u21CF' } + @{ Char = '⇐'; Escape = '\u21D0' } + @{ Char = '⇑'; Escape = '\u21D1' } + @{ Char = '⇒'; Escape = '\u21D2' } + @{ Char = '⇓'; Escape = '\u21D3' } + @{ Char = '⇔'; Escape = '\u21D4' } + @{ Char = '⇕'; Escape = '\u21D5' } + @{ Char = '⇖'; Escape = '\u21D6' } + @{ Char = '⇗'; Escape = '\u21D7' } + @{ Char = '⇘'; Escape = '\u21D8' } + @{ Char = '⇙'; Escape = '\u21D9' } + @{ Char = '⇚'; Escape = '\u21DA' } + @{ Char = '⇛'; Escape = '\u21DB' } + @{ Char = '⇜'; Escape = '\u21DC' } + @{ Char = '⇝'; Escape = '\u21DD' } + @{ Char = '⇞'; Escape = '\u21DE' } + @{ Char = '⇟'; Escape = '\u21DF' } + @{ Char = '⇠'; Escape = '\u21E0' } + @{ Char = '⇡'; Escape = '\u21E1' } + @{ Char = '⇢'; Escape = '\u21E2' } + @{ Char = '⇣'; Escape = '\u21E3' } + @{ Char = '⇤'; Escape = '\u21E4' } + @{ Char = '⇥'; Escape = '\u21E5' } + @{ Char = '⇦'; Escape = '\u21E6' } + @{ Char = '⇧'; Escape = '\u21E7' } + @{ Char = '⇨'; Escape = '\u21E8' } + @{ Char = '⇩'; Escape = '\u21E9' } + @{ Char = '⇪'; Escape = '\u21EA' } + @{ Char = '⇫'; Escape = '\u21EB' } + @{ Char = '⇬'; Escape = '\u21EC' } + @{ Char = '⇭'; Escape = '\u21ED' } + @{ Char = '⇮'; Escape = '\u21EE' } + @{ Char = '⇯'; Escape = '\u21EF' } + @{ Char = '⇰'; Escape = '\u21F0' } + @{ Char = '⇱'; Escape = '\u21F1' } + @{ Char = '⇲'; Escape = '\u21F2' } + @{ Char = '⇳'; Escape = '\u21F3' } + @{ Char = '⇴'; Escape = '\u21F4' } + @{ Char = '⇵'; Escape = '\u21F5' } + @{ Char = '⇶'; Escape = '\u21F6' } + @{ Char = '⇷'; Escape = '\u21F7' } + @{ Char = '⇸'; Escape = '\u21F8' } + @{ Char = '⇹'; Escape = '\u21F9' } + @{ Char = '⇺'; Escape = '\u21FA' } + @{ Char = '⇻'; Escape = '\u21FB' } + @{ Char = '⇼'; Escape = '\u21FC' } + @{ Char = '⇽'; Escape = '\u21FD' } + @{ Char = '⇾'; Escape = '\u21FE' } + @{ Char = '⇿'; Escape = '\u21FF' } + @{ Char = '∀'; Escape = '\u2200' } + @{ Char = '∁'; Escape = '\u2201' } + @{ Char = '∂'; Escape = '\u2202' } + @{ Char = '∃'; Escape = '\u2203' } + @{ Char = '∄'; Escape = '\u2204' } + @{ Char = '∅'; Escape = '\u2205' } + @{ Char = '∆'; Escape = '\u2206' } + @{ Char = '∇'; Escape = '\u2207' } + @{ Char = '∈'; Escape = '\u2208' } + @{ Char = '∉'; Escape = '\u2209' } + @{ Char = '∊'; Escape = '\u220A' } + @{ Char = '∋'; Escape = '\u220B' } + @{ Char = '∌'; Escape = '\u220C' } + @{ Char = '∍'; Escape = '\u220D' } + @{ Char = '∎'; Escape = '\u220E' } + @{ Char = '∏'; Escape = '\u220F' } + @{ Char = '∐'; Escape = '\u2210' } + @{ Char = '∑'; Escape = '\u2211' } + @{ Char = '−'; Escape = '\u2212' } + @{ Char = '∓'; Escape = '\u2213' } + @{ Char = '∔'; Escape = '\u2214' } + @{ Char = '∕'; Escape = '\u2215' } + @{ Char = '∖'; Escape = '\u2216' } + @{ Char = '∗'; Escape = '\u2217' } + @{ Char = '∘'; Escape = '\u2218' } + @{ Char = '∙'; Escape = '\u2219' } + @{ Char = '√'; Escape = '\u221A' } + @{ Char = '∛'; Escape = '\u221B' } + @{ Char = '∜'; Escape = '\u221C' } + @{ Char = '∝'; Escape = '\u221D' } + @{ Char = '∞'; Escape = '\u221E' } + @{ Char = '∟'; Escape = '\u221F' } + @{ Char = '∠'; Escape = '\u2220' } + @{ Char = '∡'; Escape = '\u2221' } + @{ Char = '∢'; Escape = '\u2222' } + @{ Char = '∣'; Escape = '\u2223' } + @{ Char = '∤'; Escape = '\u2224' } + @{ Char = '∥'; Escape = '\u2225' } + @{ Char = '∦'; Escape = '\u2226' } + @{ Char = '∧'; Escape = '\u2227' } + @{ Char = '∨'; Escape = '\u2228' } + @{ Char = '∩'; Escape = '\u2229' } + @{ Char = '∪'; Escape = '\u222A' } + @{ Char = '∫'; Escape = '\u222B' } + @{ Char = '∬'; Escape = '\u222C' } + @{ Char = '∭'; Escape = '\u222D' } + @{ Char = '∮'; Escape = '\u222E' } + @{ Char = '∯'; Escape = '\u222F' } + @{ Char = '∰'; Escape = '\u2230' } + @{ Char = '∱'; Escape = '\u2231' } + @{ Char = '∲'; Escape = '\u2232' } + @{ Char = '∳'; Escape = '\u2233' } + @{ Char = '∴'; Escape = '\u2234' } + @{ Char = '∵'; Escape = '\u2235' } + @{ Char = '∶'; Escape = '\u2236' } + @{ Char = '∷'; Escape = '\u2237' } + @{ Char = '∸'; Escape = '\u2238' } + @{ Char = '∹'; Escape = '\u2239' } + @{ Char = '∺'; Escape = '\u223A' } + @{ Char = '∻'; Escape = '\u223B' } + @{ Char = '∼'; Escape = '\u223C' } + @{ Char = '∽'; Escape = '\u223D' } + @{ Char = '∾'; Escape = '\u223E' } + @{ Char = '∿'; Escape = '\u223F' } + @{ Char = '≀'; Escape = '\u2240' } + @{ Char = '≁'; Escape = '\u2241' } + @{ Char = '≂'; Escape = '\u2242' } + @{ Char = '≃'; Escape = '\u2243' } + @{ Char = '≄'; Escape = '\u2244' } + @{ Char = '≅'; Escape = '\u2245' } + @{ Char = '≆'; Escape = '\u2246' } + @{ Char = '≇'; Escape = '\u2247' } + @{ Char = '≈'; Escape = '\u2248' } + @{ Char = '≉'; Escape = '\u2249' } + @{ Char = '≊'; Escape = '\u224A' } + @{ Char = '≋'; Escape = '\u224B' } + @{ Char = '≌'; Escape = '\u224C' } + @{ Char = '≍'; Escape = '\u224D' } + @{ Char = '≎'; Escape = '\u224E' } + @{ Char = '≏'; Escape = '\u224F' } + @{ Char = '≐'; Escape = '\u2250' } + @{ Char = '≑'; Escape = '\u2251' } + @{ Char = '≒'; Escape = '\u2252' } + @{ Char = '≓'; Escape = '\u2253' } + @{ Char = '≔'; Escape = '\u2254' } + @{ Char = '≕'; Escape = '\u2255' } + @{ Char = '≖'; Escape = '\u2256' } + @{ Char = '≗'; Escape = '\u2257' } + @{ Char = '≘'; Escape = '\u2258' } + @{ Char = '≙'; Escape = '\u2259' } + @{ Char = '≚'; Escape = '\u225A' } + @{ Char = '≛'; Escape = '\u225B' } + @{ Char = '≜'; Escape = '\u225C' } + @{ Char = '≝'; Escape = '\u225D' } + @{ Char = '≞'; Escape = '\u225E' } + @{ Char = '≟'; Escape = '\u225F' } + @{ Char = '≠'; Escape = '\u2260' } + @{ Char = '≡'; Escape = '\u2261' } + @{ Char = '≢'; Escape = '\u2262' } + @{ Char = '≣'; Escape = '\u2263' } + @{ Char = '≤'; Escape = '\u2264' } + @{ Char = '≥'; Escape = '\u2265' } + @{ Char = '≦'; Escape = '\u2266' } + @{ Char = '≧'; Escape = '\u2267' } + @{ Char = '≨'; Escape = '\u2268' } + @{ Char = '≩'; Escape = '\u2269' } + @{ Char = '≪'; Escape = '\u226A' } + @{ Char = '≫'; Escape = '\u226B' } + @{ Char = '≬'; Escape = '\u226C' } + @{ Char = '≭'; Escape = '\u226D' } + @{ Char = '≮'; Escape = '\u226E' } + @{ Char = '≯'; Escape = '\u226F' } + @{ Char = '≰'; Escape = '\u2270' } + @{ Char = '≱'; Escape = '\u2271' } + @{ Char = '≲'; Escape = '\u2272' } + @{ Char = '≳'; Escape = '\u2273' } + @{ Char = '≴'; Escape = '\u2274' } + @{ Char = '≵'; Escape = '\u2275' } + @{ Char = '≶'; Escape = '\u2276' } + @{ Char = '≷'; Escape = '\u2277' } + @{ Char = '≸'; Escape = '\u2278' } + @{ Char = '≹'; Escape = '\u2279' } + @{ Char = '≺'; Escape = '\u227A' } + @{ Char = '≻'; Escape = '\u227B' } + @{ Char = '≼'; Escape = '\u227C' } + @{ Char = '≽'; Escape = '\u227D' } + @{ Char = '≾'; Escape = '\u227E' } + @{ Char = '≿'; Escape = '\u227F' } + @{ Char = '⊀'; Escape = '\u2280' } + @{ Char = '⊁'; Escape = '\u2281' } + @{ Char = '⊂'; Escape = '\u2282' } + @{ Char = '⊃'; Escape = '\u2283' } + @{ Char = '⊄'; Escape = '\u2284' } + @{ Char = '⊅'; Escape = '\u2285' } + @{ Char = '⊆'; Escape = '\u2286' } + @{ Char = '⊇'; Escape = '\u2287' } + @{ Char = '⊈'; Escape = '\u2288' } + @{ Char = '⊉'; Escape = '\u2289' } + @{ Char = '⊊'; Escape = '\u228A' } + @{ Char = '⊋'; Escape = '\u228B' } + @{ Char = '⊌'; Escape = '\u228C' } + @{ Char = '⊍'; Escape = '\u228D' } + @{ Char = '⊎'; Escape = '\u228E' } + @{ Char = '⊏'; Escape = '\u228F' } + @{ Char = '⊐'; Escape = '\u2290' } + @{ Char = '⊑'; Escape = '\u2291' } + @{ Char = '⊒'; Escape = '\u2292' } + @{ Char = '⊓'; Escape = '\u2293' } + @{ Char = '⊔'; Escape = '\u2294' } + @{ Char = '⊕'; Escape = '\u2295' } + @{ Char = '⊖'; Escape = '\u2296' } + @{ Char = '⊗'; Escape = '\u2297' } + @{ Char = '⊘'; Escape = '\u2298' } + @{ Char = '⊙'; Escape = '\u2299' } + @{ Char = '⊚'; Escape = '\u229A' } + @{ Char = '⊛'; Escape = '\u229B' } + @{ Char = '⊜'; Escape = '\u229C' } + @{ Char = '⊝'; Escape = '\u229D' } + @{ Char = '⊞'; Escape = '\u229E' } + @{ Char = '⊟'; Escape = '\u229F' } + @{ Char = '⊠'; Escape = '\u22A0' } + @{ Char = '⊡'; Escape = '\u22A1' } + @{ Char = '⊢'; Escape = '\u22A2' } + @{ Char = '⊣'; Escape = '\u22A3' } + @{ Char = '⊤'; Escape = '\u22A4' } + @{ Char = '⊥'; Escape = '\u22A5' } + @{ Char = '⊦'; Escape = '\u22A6' } + @{ Char = '⊧'; Escape = '\u22A7' } + @{ Char = '⊨'; Escape = '\u22A8' } + @{ Char = '⊩'; Escape = '\u22A9' } + @{ Char = '⊪'; Escape = '\u22AA' } + @{ Char = '⊫'; Escape = '\u22AB' } + @{ Char = '⊬'; Escape = '\u22AC' } + @{ Char = '⊭'; Escape = '\u22AD' } + @{ Char = '⊮'; Escape = '\u22AE' } + @{ Char = '⊯'; Escape = '\u22AF' } + @{ Char = '⊰'; Escape = '\u22B0' } + @{ Char = '⊱'; Escape = '\u22B1' } + @{ Char = '⊲'; Escape = '\u22B2' } + @{ Char = '⊳'; Escape = '\u22B3' } + @{ Char = '⊴'; Escape = '\u22B4' } + @{ Char = '⊵'; Escape = '\u22B5' } + @{ Char = '⊶'; Escape = '\u22B6' } + @{ Char = '⊷'; Escape = '\u22B7' } + @{ Char = '⊸'; Escape = '\u22B8' } + @{ Char = '⊹'; Escape = '\u22B9' } + @{ Char = '⊺'; Escape = '\u22BA' } + @{ Char = '⊻'; Escape = '\u22BB' } + @{ Char = '⊼'; Escape = '\u22BC' } + @{ Char = '⊽'; Escape = '\u22BD' } + @{ Char = '⊾'; Escape = '\u22BE' } + @{ Char = '⊿'; Escape = '\u22BF' } + @{ Char = '⋀'; Escape = '\u22C0' } + @{ Char = '⋁'; Escape = '\u22C1' } + @{ Char = '⋂'; Escape = '\u22C2' } + @{ Char = '⋃'; Escape = '\u22C3' } + @{ Char = '⋄'; Escape = '\u22C4' } + @{ Char = '⋅'; Escape = '\u22C5' } + @{ Char = '⋆'; Escape = '\u22C6' } + @{ Char = '⋇'; Escape = '\u22C7' } + @{ Char = '⋈'; Escape = '\u22C8' } + @{ Char = '⋉'; Escape = '\u22C9' } + @{ Char = '⋊'; Escape = '\u22CA' } + @{ Char = '⋋'; Escape = '\u22CB' } + @{ Char = '⋌'; Escape = '\u22CC' } + @{ Char = '⋍'; Escape = '\u22CD' } + @{ Char = '⋎'; Escape = '\u22CE' } + @{ Char = '⋏'; Escape = '\u22CF' } + @{ Char = '⋐'; Escape = '\u22D0' } + @{ Char = '⋑'; Escape = '\u22D1' } + @{ Char = '⋒'; Escape = '\u22D2' } + @{ Char = '⋓'; Escape = '\u22D3' } + @{ Char = '⋔'; Escape = '\u22D4' } + @{ Char = '⋕'; Escape = '\u22D5' } + @{ Char = '⋖'; Escape = '\u22D6' } + @{ Char = '⋗'; Escape = '\u22D7' } + @{ Char = '⋘'; Escape = '\u22D8' } + @{ Char = '⋙'; Escape = '\u22D9' } + @{ Char = '⋚'; Escape = '\u22DA' } + @{ Char = '⋛'; Escape = '\u22DB' } + @{ Char = '⋜'; Escape = '\u22DC' } + @{ Char = '⋝'; Escape = '\u22DD' } + @{ Char = '⋞'; Escape = '\u22DE' } + @{ Char = '⋟'; Escape = '\u22DF' } + @{ Char = '⋠'; Escape = '\u22E0' } + @{ Char = '⋡'; Escape = '\u22E1' } + @{ Char = '⋢'; Escape = '\u22E2' } + @{ Char = '⋣'; Escape = '\u22E3' } + @{ Char = '⋤'; Escape = '\u22E4' } + @{ Char = '⋥'; Escape = '\u22E5' } + @{ Char = '⋦'; Escape = '\u22E6' } + @{ Char = '⋧'; Escape = '\u22E7' } + @{ Char = '⋨'; Escape = '\u22E8' } + @{ Char = '⋩'; Escape = '\u22E9' } + @{ Char = '⋪'; Escape = '\u22EA' } + @{ Char = '⋫'; Escape = '\u22EB' } + @{ Char = '⋬'; Escape = '\u22EC' } + @{ Char = '⋭'; Escape = '\u22ED' } + @{ Char = '⋮'; Escape = '\u22EE' } + @{ Char = '⋯'; Escape = '\u22EF' } + @{ Char = '⋰'; Escape = '\u22F0' } + @{ Char = '⋱'; Escape = '\u22F1' } + @{ Char = '⌀'; Escape = '\u2300' } + @{ Char = '⌁'; Escape = '\u2301' } + @{ Char = '⌂'; Escape = '\u2302' } + @{ Char = '⌃'; Escape = '\u2303' } + @{ Char = '⌄'; Escape = '\u2304' } + @{ Char = '⌅'; Escape = '\u2305' } + @{ Char = '⌆'; Escape = '\u2306' } + @{ Char = '⌇'; Escape = '\u2307' } + @{ Char = '⌈'; Escape = '\u2308' } + @{ Char = '⌉'; Escape = '\u2309' } + @{ Char = '⌊'; Escape = '\u230A' } + @{ Char = '⌋'; Escape = '\u230B' } + @{ Char = '⌐'; Escape = '\u2310' } + @{ Char = '⌑'; Escape = '\u2311' } + @{ Char = '⌒'; Escape = '\u2312' } + @{ Char = '⌓'; Escape = '\u2313' } + @{ Char = '⌔'; Escape = '\u2314' } + @{ Char = '⌕'; Escape = '\u2315' } + @{ Char = '⌖'; Escape = '\u2316' } + @{ Char = '⌗'; Escape = '\u2317' } + @{ Char = '⌘'; Escape = '\u2318' } + @{ Char = '⌙'; Escape = '\u2319' } + @{ Char = '⌚'; Escape = '\u231A' } + @{ Char = '⌛'; Escape = '\u231B' } + @{ Char = '⌠'; Escape = '\u2320' } + @{ Char = '⌡'; Escape = '\u2321' } + @{ Char = '⌢'; Escape = '\u2322' } + @{ Char = '⌣'; Escape = '\u2323' } + @{ Char = '⌤'; Escape = '\u2324' } + @{ Char = '⌥'; Escape = '\u2325' } + @{ Char = '⌦'; Escape = '\u2326' } + @{ Char = '⌧'; Escape = '\u2327' } + @{ Char = '⌨'; Escape = '\u2328' } + @{ Char = '⌫'; Escape = '\u232B' } + @{ Char = '⌬'; Escape = '\u232C' } + @{ Char = '⎛'; Escape = '\u239B' } + @{ Char = '⎜'; Escape = '\u239C' } + @{ Char = '⎝'; Escape = '\u239D' } + @{ Char = '⎞'; Escape = '\u239E' } + @{ Char = '⎟'; Escape = '\u239F' } + @{ Char = '⎠'; Escape = '\u23A0' } + @{ Char = '⎡'; Escape = '\u23A1' } + @{ Char = '⎢'; Escape = '\u23A2' } + @{ Char = '⎣'; Escape = '\u23A3' } + @{ Char = '⎤'; Escape = '\u23A4' } + @{ Char = '⎥'; Escape = '\u23A5' } + @{ Char = '⎦'; Escape = '\u23A6' } + @{ Char = '⎧'; Escape = '\u23A7' } + @{ Char = '⎨'; Escape = '\u23A8' } + @{ Char = '⎩'; Escape = '\u23A9' } + @{ Char = '⎪'; Escape = '\u23AA' } + @{ Char = '⎫'; Escape = '\u23AB' } + @{ Char = '⎬'; Escape = '\u23AC' } + @{ Char = '⎭'; Escape = '\u23AD' } + @{ Char = '⏎'; Escape = '\u23CE' } + @{ Char = '⏏'; Escape = '\u23CF' } + @{ Char = '⏚'; Escape = '\u23DA' } + @{ Char = '⏛'; Escape = '\u23DB' } + @{ Char = '⏰'; Escape = '\u23F0' } + @{ Char = '⏱'; Escape = '\u23F1' } + @{ Char = '⏲'; Escape = '\u23F2' } + @{ Char = '⏳'; Escape = '\u23F3' } + @{ Char = '␢'; Escape = '\u2422' } + @{ Char = '␣'; Escape = '\u2423' } + @{ Char = '─'; Escape = '\u2500' } + @{ Char = '━'; Escape = '\u2501' } + @{ Char = '│'; Escape = '\u2502' } + @{ Char = '┃'; Escape = '\u2503' } + @{ Char = '┄'; Escape = '\u2504' } + @{ Char = '┅'; Escape = '\u2505' } + @{ Char = '┆'; Escape = '\u2506' } + @{ Char = '┇'; Escape = '\u2507' } + @{ Char = '┈'; Escape = '\u2508' } + @{ Char = '┉'; Escape = '\u2509' } + @{ Char = '┊'; Escape = '\u250A' } + @{ Char = '┋'; Escape = '\u250B' } + @{ Char = '┌'; Escape = '\u250C' } + @{ Char = '┍'; Escape = '\u250D' } + @{ Char = '┎'; Escape = '\u250E' } + @{ Char = '┏'; Escape = '\u250F' } + @{ Char = '┐'; Escape = '\u2510' } + @{ Char = '┑'; Escape = '\u2511' } + @{ Char = '┒'; Escape = '\u2512' } + @{ Char = '┓'; Escape = '\u2513' } + @{ Char = '└'; Escape = '\u2514' } + @{ Char = '┕'; Escape = '\u2515' } + @{ Char = '┖'; Escape = '\u2516' } + @{ Char = '┗'; Escape = '\u2517' } + @{ Char = '┘'; Escape = '\u2518' } + @{ Char = '┙'; Escape = '\u2519' } + @{ Char = '┚'; Escape = '\u251A' } + @{ Char = '┛'; Escape = '\u251B' } + @{ Char = '├'; Escape = '\u251C' } + @{ Char = '┝'; Escape = '\u251D' } + @{ Char = '┞'; Escape = '\u251E' } + @{ Char = '┟'; Escape = '\u251F' } + @{ Char = '┠'; Escape = '\u2520' } + @{ Char = '┡'; Escape = '\u2521' } + @{ Char = '┢'; Escape = '\u2522' } + @{ Char = '┣'; Escape = '\u2523' } + @{ Char = '┤'; Escape = '\u2524' } + @{ Char = '┥'; Escape = '\u2525' } + @{ Char = '┦'; Escape = '\u2526' } + @{ Char = '┧'; Escape = '\u2527' } + @{ Char = '┨'; Escape = '\u2528' } + @{ Char = '┩'; Escape = '\u2529' } + @{ Char = '┪'; Escape = '\u252A' } + @{ Char = '┫'; Escape = '\u252B' } + @{ Char = '┬'; Escape = '\u252C' } + @{ Char = '┭'; Escape = '\u252D' } + @{ Char = '┮'; Escape = '\u252E' } + @{ Char = '┯'; Escape = '\u252F' } + @{ Char = '┰'; Escape = '\u2530' } + @{ Char = '┱'; Escape = '\u2531' } + @{ Char = '┲'; Escape = '\u2532' } + @{ Char = '┳'; Escape = '\u2533' } + @{ Char = '┴'; Escape = '\u2534' } + @{ Char = '┵'; Escape = '\u2535' } + @{ Char = '┶'; Escape = '\u2536' } + @{ Char = '┷'; Escape = '\u2537' } + @{ Char = '┸'; Escape = '\u2538' } + @{ Char = '┹'; Escape = '\u2539' } + @{ Char = '┺'; Escape = '\u253A' } + @{ Char = '┻'; Escape = '\u253B' } + @{ Char = '┼'; Escape = '\u253C' } + @{ Char = '┽'; Escape = '\u253D' } + @{ Char = '┾'; Escape = '\u253E' } + @{ Char = '┿'; Escape = '\u253F' } + @{ Char = '╀'; Escape = '\u2540' } + @{ Char = '╁'; Escape = '\u2541' } + @{ Char = '╂'; Escape = '\u2542' } + @{ Char = '╃'; Escape = '\u2543' } + @{ Char = '╄'; Escape = '\u2544' } + @{ Char = '╅'; Escape = '\u2545' } + @{ Char = '╆'; Escape = '\u2546' } + @{ Char = '╇'; Escape = '\u2547' } + @{ Char = '╈'; Escape = '\u2548' } + @{ Char = '╉'; Escape = '\u2549' } + @{ Char = '╊'; Escape = '\u254A' } + @{ Char = '╋'; Escape = '\u254B' } + @{ Char = '╌'; Escape = '\u254C' } + @{ Char = '╍'; Escape = '\u254D' } + @{ Char = '╎'; Escape = '\u254E' } + @{ Char = '╏'; Escape = '\u254F' } + @{ Char = '═'; Escape = '\u2550' } + @{ Char = '║'; Escape = '\u2551' } + @{ Char = '╒'; Escape = '\u2552' } + @{ Char = '╓'; Escape = '\u2553' } + @{ Char = '╔'; Escape = '\u2554' } + @{ Char = '╕'; Escape = '\u2555' } + @{ Char = '╖'; Escape = '\u2556' } + @{ Char = '╗'; Escape = '\u2557' } + @{ Char = '╘'; Escape = '\u2558' } + @{ Char = '╙'; Escape = '\u2559' } + @{ Char = '╚'; Escape = '\u255A' } + @{ Char = '╛'; Escape = '\u255B' } + @{ Char = '╜'; Escape = '\u255C' } + @{ Char = '╝'; Escape = '\u255D' } + @{ Char = '╞'; Escape = '\u255E' } + @{ Char = '╟'; Escape = '\u255F' } + @{ Char = '╠'; Escape = '\u2560' } + @{ Char = '╡'; Escape = '\u2561' } + @{ Char = '╢'; Escape = '\u2562' } + @{ Char = '╣'; Escape = '\u2563' } + @{ Char = '╤'; Escape = '\u2564' } + @{ Char = '╥'; Escape = '\u2565' } + @{ Char = '╦'; Escape = '\u2566' } + @{ Char = '╧'; Escape = '\u2567' } + @{ Char = '╨'; Escape = '\u2568' } + @{ Char = '╩'; Escape = '\u2569' } + @{ Char = '╪'; Escape = '\u256A' } + @{ Char = '╫'; Escape = '\u256B' } + @{ Char = '╬'; Escape = '\u256C' } + @{ Char = '╭'; Escape = '\u256D' } + @{ Char = '╮'; Escape = '\u256E' } + @{ Char = '╯'; Escape = '\u256F' } + @{ Char = '╰'; Escape = '\u2570' } + @{ Char = '╱'; Escape = '\u2571' } + @{ Char = '╲'; Escape = '\u2572' } + @{ Char = '╳'; Escape = '\u2573' } + @{ Char = '╴'; Escape = '\u2574' } + @{ Char = '╵'; Escape = '\u2575' } + @{ Char = '╶'; Escape = '\u2576' } + @{ Char = '╷'; Escape = '\u2577' } + @{ Char = '╸'; Escape = '\u2578' } + @{ Char = '╹'; Escape = '\u2579' } + @{ Char = '╺'; Escape = '\u257A' } + @{ Char = '╻'; Escape = '\u257B' } + @{ Char = '╼'; Escape = '\u257C' } + @{ Char = '╽'; Escape = '\u257D' } + @{ Char = '╾'; Escape = '\u257E' } + @{ Char = '╿'; Escape = '\u257F' } + @{ Char = '▀'; Escape = '\u2580' } + @{ Char = '▁'; Escape = '\u2581' } + @{ Char = '▂'; Escape = '\u2582' } + @{ Char = '▃'; Escape = '\u2583' } + @{ Char = '▄'; Escape = '\u2584' } + @{ Char = '▅'; Escape = '\u2585' } + @{ Char = '▆'; Escape = '\u2586' } + @{ Char = '▇'; Escape = '\u2587' } + @{ Char = '█'; Escape = '\u2588' } + @{ Char = '▉'; Escape = '\u2589' } + @{ Char = '▊'; Escape = '\u258A' } + @{ Char = '▋'; Escape = '\u258B' } + @{ Char = '▌'; Escape = '\u258C' } + @{ Char = '▍'; Escape = '\u258D' } + @{ Char = '▎'; Escape = '\u258E' } + @{ Char = '▏'; Escape = '\u258F' } + @{ Char = '▐'; Escape = '\u2590' } + @{ Char = '░'; Escape = '\u2591' } + @{ Char = '▒'; Escape = '\u2592' } + @{ Char = '▓'; Escape = '\u2593' } + @{ Char = '▔'; Escape = '\u2594' } + @{ Char = '▕'; Escape = '\u2595' } + @{ Char = '▖'; Escape = '\u2596' } + @{ Char = '▗'; Escape = '\u2597' } + @{ Char = '▘'; Escape = '\u2598' } + @{ Char = '▙'; Escape = '\u2599' } + @{ Char = '▚'; Escape = '\u259A' } + @{ Char = '▛'; Escape = '\u259B' } + @{ Char = '▜'; Escape = '\u259C' } + @{ Char = '▝'; Escape = '\u259D' } + @{ Char = '▞'; Escape = '\u259E' } + @{ Char = '▟'; Escape = '\u259F' } + @{ Char = '■'; Escape = '\u25A0' } + @{ Char = '□'; Escape = '\u25A1' } + @{ Char = '▢'; Escape = '\u25A2' } + @{ Char = '▣'; Escape = '\u25A3' } + @{ Char = '▤'; Escape = '\u25A4' } + @{ Char = '▥'; Escape = '\u25A5' } + @{ Char = '▦'; Escape = '\u25A6' } + @{ Char = '▧'; Escape = '\u25A7' } + @{ Char = '▨'; Escape = '\u25A8' } + @{ Char = '▩'; Escape = '\u25A9' } + @{ Char = '▪'; Escape = '\u25AA' } + @{ Char = '▫'; Escape = '\u25AB' } + @{ Char = '▬'; Escape = '\u25AC' } + @{ Char = '▭'; Escape = '\u25AD' } + @{ Char = '▮'; Escape = '\u25AE' } + @{ Char = '▯'; Escape = '\u25AF' } + @{ Char = '▰'; Escape = '\u25B0' } + @{ Char = '▱'; Escape = '\u25B1' } + @{ Char = '▲'; Escape = '\u25B2' } + @{ Char = '△'; Escape = '\u25B3' } + @{ Char = '▴'; Escape = '\u25B4' } + @{ Char = '▵'; Escape = '\u25B5' } + @{ Char = '▶'; Escape = '\u25B6' } + @{ Char = '▷'; Escape = '\u25B7' } + @{ Char = '▸'; Escape = '\u25B8' } + @{ Char = '▹'; Escape = '\u25B9' } + @{ Char = '►'; Escape = '\u25BA' } + @{ Char = '▻'; Escape = '\u25BB' } + @{ Char = '▼'; Escape = '\u25BC' } + @{ Char = '▽'; Escape = '\u25BD' } + @{ Char = '▾'; Escape = '\u25BE' } + @{ Char = '▿'; Escape = '\u25BF' } + @{ Char = '◀'; Escape = '\u25C0' } + @{ Char = '◁'; Escape = '\u25C1' } + @{ Char = '◂'; Escape = '\u25C2' } + @{ Char = '◃'; Escape = '\u25C3' } + @{ Char = '◄'; Escape = '\u25C4' } + @{ Char = '◅'; Escape = '\u25C5' } + @{ Char = '◆'; Escape = '\u25C6' } + @{ Char = '◇'; Escape = '\u25C7' } + @{ Char = '◈'; Escape = '\u25C8' } + @{ Char = '◉'; Escape = '\u25C9' } + @{ Char = '◊'; Escape = '\u25CA' } + @{ Char = '○'; Escape = '\u25CB' } + @{ Char = '◌'; Escape = '\u25CC' } + @{ Char = '◍'; Escape = '\u25CD' } + @{ Char = '◎'; Escape = '\u25CE' } + @{ Char = '●'; Escape = '\u25CF' } + @{ Char = '◐'; Escape = '\u25D0' } + @{ Char = '◑'; Escape = '\u25D1' } + @{ Char = '◒'; Escape = '\u25D2' } + @{ Char = '◓'; Escape = '\u25D3' } + @{ Char = '◔'; Escape = '\u25D4' } + @{ Char = '◕'; Escape = '\u25D5' } + @{ Char = '◖'; Escape = '\u25D6' } + @{ Char = '◗'; Escape = '\u25D7' } + @{ Char = '◘'; Escape = '\u25D8' } + @{ Char = '◙'; Escape = '\u25D9' } + @{ Char = '◚'; Escape = '\u25DA' } + @{ Char = '◛'; Escape = '\u25DB' } + @{ Char = '◜'; Escape = '\u25DC' } + @{ Char = '◝'; Escape = '\u25DD' } + @{ Char = '◞'; Escape = '\u25DE' } + @{ Char = '◟'; Escape = '\u25DF' } + @{ Char = '◠'; Escape = '\u25E0' } + @{ Char = '◡'; Escape = '\u25E1' } + @{ Char = '◢'; Escape = '\u25E2' } + @{ Char = '◣'; Escape = '\u25E3' } + @{ Char = '◤'; Escape = '\u25E4' } + @{ Char = '◥'; Escape = '\u25E5' } + @{ Char = '◦'; Escape = '\u25E6' } + @{ Char = '◧'; Escape = '\u25E7' } + @{ Char = '◨'; Escape = '\u25E8' } + @{ Char = '◩'; Escape = '\u25E9' } + @{ Char = '◪'; Escape = '\u25EA' } + @{ Char = '◫'; Escape = '\u25EB' } + @{ Char = '◬'; Escape = '\u25EC' } + @{ Char = '◭'; Escape = '\u25ED' } + @{ Char = '◮'; Escape = '\u25EE' } + @{ Char = '◯'; Escape = '\u25EF' } + @{ Char = '◰'; Escape = '\u25F0' } + @{ Char = '◱'; Escape = '\u25F1' } + @{ Char = '◲'; Escape = '\u25F2' } + @{ Char = '◳'; Escape = '\u25F3' } + @{ Char = '◴'; Escape = '\u25F4' } + @{ Char = '◵'; Escape = '\u25F5' } + @{ Char = '◶'; Escape = '\u25F6' } + @{ Char = '◷'; Escape = '\u25F7' } + @{ Char = '◸'; Escape = '\u25F8' } + @{ Char = '◹'; Escape = '\u25F9' } + @{ Char = '◺'; Escape = '\u25FA' } + @{ Char = '◻'; Escape = '\u25FB' } + @{ Char = '◼'; Escape = '\u25FC' } + @{ Char = '◽'; Escape = '\u25FD' } + @{ Char = '◾'; Escape = '\u25FE' } + @{ Char = '◿'; Escape = '\u25FF' } + @{ Char = '☀'; Escape = '\u2600' } + @{ Char = '☁'; Escape = '\u2601' } + @{ Char = '☂'; Escape = '\u2602' } + @{ Char = '☃'; Escape = '\u2603' } + @{ Char = '☄'; Escape = '\u2604' } + @{ Char = '★'; Escape = '\u2605' } + @{ Char = '☆'; Escape = '\u2606' } + @{ Char = '☇'; Escape = '\u2607' } + @{ Char = '☈'; Escape = '\u2608' } + @{ Char = '☉'; Escape = '\u2609' } + @{ Char = '☊'; Escape = '\u260A' } + @{ Char = '☋'; Escape = '\u260B' } + @{ Char = '☌'; Escape = '\u260C' } + @{ Char = '☍'; Escape = '\u260D' } + @{ Char = '☎'; Escape = '\u260E' } + @{ Char = '☏'; Escape = '\u260F' } + @{ Char = '☐'; Escape = '\u2610' } + @{ Char = '☑'; Escape = '\u2611' } + @{ Char = '☒'; Escape = '\u2612' } + @{ Char = '☓'; Escape = '\u2613' } + @{ Char = '☔'; Escape = '\u2614' } + @{ Char = '☕'; Escape = '\u2615' } + @{ Char = '☖'; Escape = '\u2616' } + @{ Char = '☗'; Escape = '\u2617' } + @{ Char = '☘'; Escape = '\u2618' } + @{ Char = '☙'; Escape = '\u2619' } + @{ Char = '☚'; Escape = '\u261A' } + @{ Char = '☛'; Escape = '\u261B' } + @{ Char = '☜'; Escape = '\u261C' } + @{ Char = '☝'; Escape = '\u261D' } + @{ Char = '☞'; Escape = '\u261E' } + @{ Char = '☟'; Escape = '\u261F' } + @{ Char = '☠'; Escape = '\u2620' } + @{ Char = '☡'; Escape = '\u2621' } + @{ Char = '☢'; Escape = '\u2622' } + @{ Char = '☣'; Escape = '\u2623' } + @{ Char = '☤'; Escape = '\u2624' } + @{ Char = '☥'; Escape = '\u2625' } + @{ Char = '☦'; Escape = '\u2626' } + @{ Char = '☧'; Escape = '\u2627' } + @{ Char = '☨'; Escape = '\u2628' } + @{ Char = '☩'; Escape = '\u2629' } + @{ Char = '☪'; Escape = '\u262A' } + @{ Char = '☫'; Escape = '\u262B' } + @{ Char = '☬'; Escape = '\u262C' } + @{ Char = '☭'; Escape = '\u262D' } + @{ Char = '☮'; Escape = '\u262E' } + @{ Char = '☯'; Escape = '\u262F' } + @{ Char = '☰'; Escape = '\u2630' } + @{ Char = '☱'; Escape = '\u2631' } + @{ Char = '☲'; Escape = '\u2632' } + @{ Char = '☳'; Escape = '\u2633' } + @{ Char = '☴'; Escape = '\u2634' } + @{ Char = '☵'; Escape = '\u2635' } + @{ Char = '☶'; Escape = '\u2636' } + @{ Char = '☷'; Escape = '\u2637' } + @{ Char = '☸'; Escape = '\u2638' } + @{ Char = 'ὠ'; Escape = '\u1F60' } + @{ Char = '☹'; Escape = '\u2639' } + @{ Char = '☺'; Escape = '\u263A' } + @{ Char = '☻'; Escape = '\u263B' } + @{ Char = '☼'; Escape = '\u263C' } + @{ Char = '☽'; Escape = '\u263D' } + @{ Char = '☾'; Escape = '\u263E' } + @{ Char = '☿'; Escape = '\u263F' } + @{ Char = '♀'; Escape = '\u2640' } + @{ Char = '♁'; Escape = '\u2641' } + @{ Char = '♂'; Escape = '\u2642' } + @{ Char = '♃'; Escape = '\u2643' } + @{ Char = '♄'; Escape = '\u2644' } + @{ Char = '♅'; Escape = '\u2645' } + @{ Char = '♆'; Escape = '\u2646' } + @{ Char = '♇'; Escape = '\u2647' } + @{ Char = '♈'; Escape = '\u2648' } + @{ Char = '♉'; Escape = '\u2649' } + @{ Char = '♊'; Escape = '\u264A' } + @{ Char = '♋'; Escape = '\u264B' } + @{ Char = '♌'; Escape = '\u264C' } + @{ Char = '♍'; Escape = '\u264D' } + @{ Char = '♎'; Escape = '\u264E' } + @{ Char = '♏'; Escape = '\u264F' } + @{ Char = '♐'; Escape = '\u2650' } + @{ Char = '♑'; Escape = '\u2651' } + @{ Char = '♒'; Escape = '\u2652' } + @{ Char = '♓'; Escape = '\u2653' } + @{ Char = '♔'; Escape = '\u2654' } + @{ Char = '♕'; Escape = '\u2655' } + @{ Char = '♖'; Escape = '\u2656' } + @{ Char = '♗'; Escape = '\u2657' } + @{ Char = '♘'; Escape = '\u2658' } + @{ Char = '♙'; Escape = '\u2659' } + @{ Char = '♚'; Escape = '\u265A' } + @{ Char = '♛'; Escape = '\u265B' } + @{ Char = '♜'; Escape = '\u265C' } + @{ Char = '♝'; Escape = '\u265D' } + @{ Char = '♞'; Escape = '\u265E' } + @{ Char = '♟'; Escape = '\u265F' } + @{ Char = '♠'; Escape = '\u2660' } + @{ Char = '♡'; Escape = '\u2661' } + @{ Char = '♢'; Escape = '\u2662' } + @{ Char = '♣'; Escape = '\u2663' } + @{ Char = '♤'; Escape = '\u2664' } + @{ Char = '♥'; Escape = '\u2665' } + @{ Char = '♦'; Escape = '\u2666' } + @{ Char = '♧'; Escape = '\u2667' } + @{ Char = '♨'; Escape = '\u2668' } + @{ Char = '♩'; Escape = '\u2669' } + @{ Char = '♪'; Escape = '\u266A' } + @{ Char = '♫'; Escape = '\u266B' } + @{ Char = '♬'; Escape = '\u266C' } + @{ Char = '♭'; Escape = '\u266D' } + @{ Char = '♮'; Escape = '\u266E' } + @{ Char = '♯'; Escape = '\u266F' } + @{ Char = '♲'; Escape = '\u2672' } + @{ Char = '♳'; Escape = '\u2673' } + @{ Char = '♴'; Escape = '\u2674' } + @{ Char = '♵'; Escape = '\u2675' } + @{ Char = '♶'; Escape = '\u2676' } + @{ Char = '♷'; Escape = '\u2677' } + @{ Char = '♸'; Escape = '\u2678' } + @{ Char = '♹'; Escape = '\u2679' } + @{ Char = '♺'; Escape = '\u267A' } + @{ Char = '♻'; Escape = '\u267B' } + @{ Char = '♼'; Escape = '\u267C' } + @{ Char = '♽'; Escape = '\u267D' } + @{ Char = '♾'; Escape = '\u267E' } + @{ Char = '♿'; Escape = '\u267F' } + @{ Char = '⚀'; Escape = '\u2680' } + @{ Char = '⚁'; Escape = '\u2681' } + @{ Char = '⚂'; Escape = '\u2682' } + @{ Char = '⚃'; Escape = '\u2683' } + @{ Char = '⚄'; Escape = '\u2684' } + @{ Char = '⚅'; Escape = '\u2685' } + @{ Char = '⚐'; Escape = '\u2690' } + @{ Char = '⚑'; Escape = '\u2691' } + @{ Char = '⚒'; Escape = '\u2692' } + @{ Char = '⚓'; Escape = '\u2693' } + @{ Char = '⚔'; Escape = '\u2694' } + @{ Char = '⚕'; Escape = '\u2695' } + @{ Char = '⚖'; Escape = '\u2696' } + @{ Char = '⚗'; Escape = '\u2697' } + @{ Char = '⚘'; Escape = '\u2698' } + @{ Char = '⚙'; Escape = '\u2699' } + @{ Char = '⚚'; Escape = '\u269A' } + @{ Char = '⚛'; Escape = '\u269B' } + @{ Char = '⚜'; Escape = '\u269C' } + @{ Char = '⚝'; Escape = '\u269D' } + @{ Char = '⚞'; Escape = '\u269E' } + @{ Char = '⚟'; Escape = '\u269F' } + @{ Char = '⚠'; Escape = '\u26A0' } + @{ Char = '⚡'; Escape = '\u26A1' } + @{ Char = '⚢'; Escape = '\u26A2' } + @{ Char = '⚣'; Escape = '\u26A3' } + @{ Char = '⚤'; Escape = '\u26A4' } + @{ Char = '⚥'; Escape = '\u26A5' } + @{ Char = '⚦'; Escape = '\u26A6' } + @{ Char = '⚧'; Escape = '\u26A7' } + @{ Char = '⚨'; Escape = '\u26A8' } + @{ Char = '⚩'; Escape = '\u26A9' } + @{ Char = '⚪'; Escape = '\u26AA' } + @{ Char = '⚫'; Escape = '\u26AB' } + @{ Char = '⚬'; Escape = '\u26AC' } + @{ Char = '⚭'; Escape = '\u26AD' } + @{ Char = '⚮'; Escape = '\u26AE' } + @{ Char = '⚯'; Escape = '\u26AF' } + @{ Char = '⚰'; Escape = '\u26B0' } + @{ Char = '⚱'; Escape = '\u26B1' } + @{ Char = '⚲'; Escape = '\u26B2' } + @{ Char = '⚳'; Escape = '\u26B3' } + @{ Char = '⚴'; Escape = '\u26B4' } + @{ Char = '⚵'; Escape = '\u26B5' } + @{ Char = '⚶'; Escape = '\u26B6' } + @{ Char = '⚷'; Escape = '\u26B7' } + @{ Char = '⚸'; Escape = '\u26B8' } + @{ Char = '⚹'; Escape = '\u26B9' } + @{ Char = '⚺'; Escape = '\u26BA' } + @{ Char = '⚻'; Escape = '\u26BB' } + @{ Char = '⚼'; Escape = '\u26BC' } + @{ Char = '⛀'; Escape = '\u26C0' } + @{ Char = '⛁'; Escape = '\u26C1' } + @{ Char = '⛂'; Escape = '\u26C2' } + @{ Char = '⛃'; Escape = '\u26C3' } + @{ Char = '⛢'; Escape = '\u26E2' } + @{ Char = '⛤'; Escape = '\u26E4' } + @{ Char = '⛥'; Escape = '\u26E5' } + @{ Char = '⛦'; Escape = '\u26E6' } + @{ Char = '⛧'; Escape = '\u26E7' } + @{ Char = '⛨'; Escape = '\u26E8' } + @{ Char = '⛩'; Escape = '\u26E9' } + @{ Char = '⛪'; Escape = '\u26EA' } + @{ Char = '⛫'; Escape = '\u26EB' } + @{ Char = '⛬'; Escape = '\u26EC' } + @{ Char = '⛭'; Escape = '\u26ED' } + @{ Char = '⛮'; Escape = '\u26EE' } + @{ Char = '⛯'; Escape = '\u26EF' } + @{ Char = '⛰'; Escape = '\u26F0' } + @{ Char = '⛱'; Escape = '\u26F1' } + @{ Char = '⛲'; Escape = '\u26F2' } + @{ Char = '⛳'; Escape = '\u26F3' } + @{ Char = '⛴'; Escape = '\u26F4' } + @{ Char = '⛵'; Escape = '\u26F5' } + @{ Char = '⛶'; Escape = '\u26F6' } + @{ Char = '⛷'; Escape = '\u26F7' } + @{ Char = '⛸'; Escape = '\u26F8' } + @{ Char = '⛹'; Escape = '\u26F9' } + @{ Char = '⛺'; Escape = '\u26FA' } + @{ Char = '⛻'; Escape = '\u26FB' } + @{ Char = '⛼'; Escape = '\u26FC' } + @{ Char = '⛽'; Escape = '\u26FD' } + @{ Char = '⛾'; Escape = '\u26FE' } + @{ Char = '⛿'; Escape = '\u26FF' } + @{ Char = '✁'; Escape = '\u2701' } + @{ Char = '✂'; Escape = '\u2702' } + @{ Char = '✃'; Escape = '\u2703' } + @{ Char = '✄'; Escape = '\u2704' } + @{ Char = '✅'; Escape = '\u2705' } + @{ Char = '✆'; Escape = '\u2706' } + @{ Char = '✇'; Escape = '\u2707' } + @{ Char = '✈'; Escape = '\u2708' } + @{ Char = '✉'; Escape = '\u2709' } + @{ Char = '✊'; Escape = '\u270A' } + @{ Char = '✋'; Escape = '\u270B' } + @{ Char = '✌'; Escape = '\u270C' } + @{ Char = '✍'; Escape = '\u270D' } + @{ Char = '✎'; Escape = '\u270E' } + @{ Char = '✏'; Escape = '\u270F' } + @{ Char = '✐'; Escape = '\u2710' } + @{ Char = '✑'; Escape = '\u2711' } + @{ Char = '✒'; Escape = '\u2712' } + @{ Char = '✓'; Escape = '\u2713' } + @{ Char = '✔'; Escape = '\u2714' } + @{ Char = '✕'; Escape = '\u2715' } + @{ Char = '✖'; Escape = '\u2716' } + @{ Char = '✗'; Escape = '\u2717' } + @{ Char = '✘'; Escape = '\u2718' } + @{ Char = '✙'; Escape = '\u2719' } + @{ Char = '✚'; Escape = '\u271A' } + @{ Char = '✛'; Escape = '\u271B' } + @{ Char = '✜'; Escape = '\u271C' } + @{ Char = '✝'; Escape = '\u271D' } + @{ Char = '✞'; Escape = '\u271E' } + @{ Char = '✟'; Escape = '\u271F' } + @{ Char = '✠'; Escape = '\u2720' } + @{ Char = '✡'; Escape = '\u2721' } + @{ Char = '✢'; Escape = '\u2722' } + @{ Char = '✣'; Escape = '\u2723' } + @{ Char = '✤'; Escape = '\u2724' } + @{ Char = '✥'; Escape = '\u2725' } + @{ Char = '✦'; Escape = '\u2726' } + @{ Char = '✧'; Escape = '\u2727' } + @{ Char = '✨'; Escape = '\u2728' } + @{ Char = '✩'; Escape = '\u2729' } + @{ Char = '✪'; Escape = '\u272A' } + @{ Char = '✫'; Escape = '\u272B' } + @{ Char = '✬'; Escape = '\u272C' } + @{ Char = '✭'; Escape = '\u272D' } + @{ Char = '✮'; Escape = '\u272E' } + @{ Char = '✯'; Escape = '\u272F' } + @{ Char = '✰'; Escape = '\u2730' } + @{ Char = '✱'; Escape = '\u2731' } + @{ Char = '✲'; Escape = '\u2732' } + @{ Char = '✳'; Escape = '\u2733' } + @{ Char = '✴'; Escape = '\u2734' } + @{ Char = '✵'; Escape = '\u2735' } + @{ Char = '✶'; Escape = '\u2736' } + @{ Char = '✷'; Escape = '\u2737' } + @{ Char = '✸'; Escape = '\u2738' } + @{ Char = '✹'; Escape = '\u2739' } + @{ Char = '✺'; Escape = '\u273A' } + @{ Char = '✻'; Escape = '\u273B' } + @{ Char = '✼'; Escape = '\u273C' } + @{ Char = '✽'; Escape = '\u273D' } + @{ Char = '✾'; Escape = '\u273E' } + @{ Char = '✿'; Escape = '\u273F' } + @{ Char = '❀'; Escape = '\u2740' } + @{ Char = '❁'; Escape = '\u2741' } + @{ Char = '❂'; Escape = '\u2742' } + @{ Char = '❃'; Escape = '\u2743' } + @{ Char = '❄'; Escape = '\u2744' } + @{ Char = '❅'; Escape = '\u2745' } + @{ Char = '❆'; Escape = '\u2746' } + @{ Char = '❇'; Escape = '\u2747' } + @{ Char = '❈'; Escape = '\u2748' } + @{ Char = '❉'; Escape = '\u2749' } + @{ Char = '❊'; Escape = '\u274A' } + @{ Char = '❋'; Escape = '\u274B' } + @{ Char = '❌'; Escape = '\u274C' } + @{ Char = '❍'; Escape = '\u274D' } + @{ Char = '❎'; Escape = '\u274E' } + @{ Char = '❏'; Escape = '\u274F' } + @{ Char = '❐'; Escape = '\u2750' } + @{ Char = '❑'; Escape = '\u2751' } + @{ Char = '❒'; Escape = '\u2752' } + @{ Char = '❓'; Escape = '\u2753' } + @{ Char = '❔'; Escape = '\u2754' } + @{ Char = '❕'; Escape = '\u2755' } + @{ Char = '❖'; Escape = '\u2756' } + @{ Char = '❗'; Escape = '\u2757' } + @{ Char = '❘'; Escape = '\u2758' } + @{ Char = '❙'; Escape = '\u2759' } + @{ Char = '❚'; Escape = '\u275A' } + @{ Char = '❛'; Escape = '\u275B' } + @{ Char = '❜'; Escape = '\u275C' } + @{ Char = '❝'; Escape = '\u275D' } + @{ Char = '❞'; Escape = '\u275E' } + @{ Char = '❟'; Escape = '\u275F' } + @{ Char = '❠'; Escape = '\u2760' } + @{ Char = '❡'; Escape = '\u2761' } + @{ Char = '❢'; Escape = '\u2762' } + @{ Char = '❣'; Escape = '\u2763' } + @{ Char = '❤'; Escape = '\u2764' } + @{ Char = '❥'; Escape = '\u2765' } + @{ Char = '❦'; Escape = '\u2766' } + @{ Char = '❧'; Escape = '\u2767' } + @{ Char = '➔'; Escape = '\u2794' } + @{ Char = '➘'; Escape = '\u2798' } + @{ Char = '➙'; Escape = '\u2799' } + @{ Char = '➚'; Escape = '\u279A' } + @{ Char = '➛'; Escape = '\u279B' } + @{ Char = '➜'; Escape = '\u279C' } + @{ Char = '➝'; Escape = '\u279D' } + @{ Char = '➞'; Escape = '\u279E' } + @{ Char = '➟'; Escape = '\u279F' } + @{ Char = '➠'; Escape = '\u27A0' } + @{ Char = '➡'; Escape = '\u27A1' } + @{ Char = '➢'; Escape = '\u27A2' } + @{ Char = '➣'; Escape = '\u27A3' } + @{ Char = '➤'; Escape = '\u27A4' } + @{ Char = '➥'; Escape = '\u27A5' } + @{ Char = '➦'; Escape = '\u27A6' } + @{ Char = '➧'; Escape = '\u27A7' } + @{ Char = '➨'; Escape = '\u27A8' } + @{ Char = '➩'; Escape = '\u27A9' } + @{ Char = '➪'; Escape = '\u27AA' } + @{ Char = '➫'; Escape = '\u27AB' } + @{ Char = '➬'; Escape = '\u27AC' } + @{ Char = '➭'; Escape = '\u27AD' } + @{ Char = '➮'; Escape = '\u27AE' } + @{ Char = '➯'; Escape = '\u27AF' } + @{ Char = '➱'; Escape = '\u27B1' } + @{ Char = '➲'; Escape = '\u27B2' } + @{ Char = '➳'; Escape = '\u27B3' } + @{ Char = '➴'; Escape = '\u27B4' } + @{ Char = '➵'; Escape = '\u27B5' } + @{ Char = '➶'; Escape = '\u27B6' } + @{ Char = '➷'; Escape = '\u27B7' } + @{ Char = '➸'; Escape = '\u27B8' } + @{ Char = '➹'; Escape = '\u27B9' } + @{ Char = '➺'; Escape = '\u27BA' } + @{ Char = '➻'; Escape = '\u27BB' } + @{ Char = '➼'; Escape = '\u27BC' } + @{ Char = '➽'; Escape = '\u27BD' } + @{ Char = '➾'; Escape = '\u27BE' } + @{ Char = '⟰'; Escape = '\u27F0' } + @{ Char = '⟱'; Escape = '\u27F1' } + @{ Char = '⟲'; Escape = '\u27F2' } + @{ Char = '⟳'; Escape = '\u27F3' } + @{ Char = '⟴'; Escape = '\u27F4' } + @{ Char = '⟵'; Escape = '\u27F5' } + @{ Char = '⟶'; Escape = '\u27F6' } + @{ Char = '⟷'; Escape = '\u27F7' } + @{ Char = '⟸'; Escape = '\u27F8' } + @{ Char = '⟹'; Escape = '\u27F9' } + @{ Char = '⟺'; Escape = '\u27FA' } + @{ Char = '⟻'; Escape = '\u27FB' } + @{ Char = '⟼'; Escape = '\u27FC' } + @{ Char = '⟽'; Escape = '\u27FD' } + @{ Char = '⟾'; Escape = '\u27FE' } + @{ Char = '⟿'; Escape = '\u27FF' } + @{ Char = '⤀'; Escape = '\u2900' } + @{ Char = '⤁'; Escape = '\u2901' } + @{ Char = '⤂'; Escape = '\u2902' } + @{ Char = '⤃'; Escape = '\u2903' } + @{ Char = '⤄'; Escape = '\u2904' } + @{ Char = '⤅'; Escape = '\u2905' } + @{ Char = '⤆'; Escape = '\u2906' } + @{ Char = '⤇'; Escape = '\u2907' } + @{ Char = '⤈'; Escape = '\u2908' } + @{ Char = '⤉'; Escape = '\u2909' } + @{ Char = '⤊'; Escape = '\u290A' } + @{ Char = '⤋'; Escape = '\u290B' } + @{ Char = '⤌'; Escape = '\u290C' } + @{ Char = '⤍'; Escape = '\u290D' } + @{ Char = '⤎'; Escape = '\u290E' } + @{ Char = '⤏'; Escape = '\u290F' } + @{ Char = '⤐'; Escape = '\u2910' } + @{ Char = '⤑'; Escape = '\u2911' } + @{ Char = '⤒'; Escape = '\u2912' } + @{ Char = '⤓'; Escape = '\u2913' } + @{ Char = '⤔'; Escape = '\u2914' } + @{ Char = '⤕'; Escape = '\u2915' } + @{ Char = '⤖'; Escape = '\u2916' } + @{ Char = '⤗'; Escape = '\u2917' } + @{ Char = '⤘'; Escape = '\u2918' } + @{ Char = '⤙'; Escape = '\u2919' } + @{ Char = '⤚'; Escape = '\u291A' } + @{ Char = '⤛'; Escape = '\u291B' } + @{ Char = '⤜'; Escape = '\u291C' } + @{ Char = '⤝'; Escape = '\u291D' } + @{ Char = '⤞'; Escape = '\u291E' } + @{ Char = '⤟'; Escape = '\u291F' } + @{ Char = '⤠'; Escape = '\u2920' } + @{ Char = '⤡'; Escape = '\u2921' } + @{ Char = '⤢'; Escape = '\u2922' } + @{ Char = '⤣'; Escape = '\u2923' } + @{ Char = '⤤'; Escape = '\u2924' } + @{ Char = '⤥'; Escape = '\u2925' } + @{ Char = '⤦'; Escape = '\u2926' } + @{ Char = '⤧'; Escape = '\u2927' } + @{ Char = '⤨'; Escape = '\u2928' } + @{ Char = '⤩'; Escape = '\u2929' } + @{ Char = '⤪'; Escape = '\u292A' } + @{ Char = '⤫'; Escape = '\u292B' } + @{ Char = '⤬'; Escape = '\u292C' } + @{ Char = '⤭'; Escape = '\u292D' } + @{ Char = '⤮'; Escape = '\u292E' } + @{ Char = '⤯'; Escape = '\u292F' } + @{ Char = '⤰'; Escape = '\u2930' } + @{ Char = '⤱'; Escape = '\u2931' } + @{ Char = '⤲'; Escape = '\u2932' } + @{ Char = '⤳'; Escape = '\u2933' } + @{ Char = '⤴'; Escape = '\u2934' } + @{ Char = '⤵'; Escape = '\u2935' } + @{ Char = '⤶'; Escape = '\u2936' } + @{ Char = '⤷'; Escape = '\u2937' } + @{ Char = '⤸'; Escape = '\u2938' } + @{ Char = '⤹'; Escape = '\u2939' } + @{ Char = '⤺'; Escape = '\u293A' } + @{ Char = '⤻'; Escape = '\u293B' } + @{ Char = '⤼'; Escape = '\u293C' } + @{ Char = '⤽'; Escape = '\u293D' } + @{ Char = '⤾'; Escape = '\u293E' } + @{ Char = '⤿'; Escape = '\u293F' } + @{ Char = '⥀'; Escape = '\u2940' } + @{ Char = '⥁'; Escape = '\u2941' } + @{ Char = '⥂'; Escape = '\u2942' } + @{ Char = '⥃'; Escape = '\u2943' } + @{ Char = '⥄'; Escape = '\u2944' } + @{ Char = '⥅'; Escape = '\u2945' } + @{ Char = '⥆'; Escape = '\u2946' } + @{ Char = '⥇'; Escape = '\u2947' } + @{ Char = '⥈'; Escape = '\u2948' } + @{ Char = '⥉'; Escape = '\u2949' } + @{ Char = '⥊'; Escape = '\u294A' } + @{ Char = '⥋'; Escape = '\u294B' } + @{ Char = '⥌'; Escape = '\u294C' } + @{ Char = '⥍'; Escape = '\u294D' } + @{ Char = '⥎'; Escape = '\u294E' } + @{ Char = '⥏'; Escape = '\u294F' } + @{ Char = '⥐'; Escape = '\u2950' } + @{ Char = '⥑'; Escape = '\u2951' } + @{ Char = '⬀'; Escape = '\u2B00' } + @{ Char = '⬁'; Escape = '\u2B01' } + @{ Char = '⬂'; Escape = '\u2B02' } + @{ Char = '⬃'; Escape = '\u2B03' } + @{ Char = '⬄'; Escape = '\u2B04' } + @{ Char = '⬅'; Escape = '\u2B05' } + @{ Char = '⬆'; Escape = '\u2B06' } + @{ Char = '⬇'; Escape = '\u2B07' } + @{ Char = '⬈'; Escape = '\u2B08' } + @{ Char = '⬉'; Escape = '\u2B09' } + @{ Char = '⬊'; Escape = '\u2B0A' } + @{ Char = '⬋'; Escape = '\u2B0B' } + @{ Char = '⬌'; Escape = '\u2B0C' } + @{ Char = '⬍'; Escape = '\u2B0D' } + @{ Char = '⬎'; Escape = '\u2B0E' } + @{ Char = '⬏'; Escape = '\u2B0F' } + @{ Char = '⬐'; Escape = '\u2B10' } + @{ Char = '⬑'; Escape = '\u2B11' } + @{ Char = '⬒'; Escape = '\u2B12' } + @{ Char = '⬓'; Escape = '\u2B13' } + @{ Char = '⬔'; Escape = '\u2B14' } + @{ Char = '⬕'; Escape = '\u2B15' } + @{ Char = '⬖'; Escape = '\u2B16' } + @{ Char = '⬗'; Escape = '\u2B17' } + @{ Char = '⬘'; Escape = '\u2B18' } + @{ Char = '⬙'; Escape = '\u2B19' } + @{ Char = '⬚'; Escape = '\u2B1A' } + @{ Char = 'Ⱡ'; Escape = '\u2C60' } + @{ Char = 'ⱡ'; Escape = '\u2C61' } + @{ Char = 'Ᵽ'; Escape = '\u2C63' } + @{ Char = 'ⱥ'; Escape = '\u2C65' } + @{ Char = 'ⱦ'; Escape = '\u2C66' } + @{ Char = 'Ɑ'; Escape = '\u2C6D' } + @{ Char = 'Ɐ'; Escape = '\u2C6F' } + @{ Char = 'Ɒ'; Escape = '\u2C70' } + @{ Char = '⸢'; Escape = '\u2E22' } + @{ Char = '⸣'; Escape = '\u2E23' } + @{ Char = '⸤'; Escape = '\u2E24' } + @{ Char = '⸥'; Escape = '\u2E25' } + @{ Char = '⸮'; Escape = '\u2E2E' } + @{ Char = '〃'; Escape = '\u3003' } + @{ Char = '〄'; Escape = '\u3004' } + @{ Char = 'ff'; Escape = '\uFB00' } + @{ Char = 'fi'; Escape = '\uFB01' } + @{ Char = 'fl'; Escape = '\uFB02' } + @{ Char = 'ffi'; Escape = '\uFB03' } + @{ Char = 'ffl'; Escape = '\uFB04' } + @{ Char = 'ſt'; Escape = '\uFB05' } + @{ Char = 'st'; Escape = '\uFB06' } + @{ Char = '﴾'; Escape = '\uFD3E' } + @{ Char = '﴿'; Escape = '\uFD3F' } + @{ Char = '﷼'; Escape = '\uFDFC' } + @{ Char = '︐'; Escape = '\uFE10' } + @{ Char = '︑'; Escape = '\uFE11' } + @{ Char = '︒'; Escape = '\uFE12' } + @{ Char = '︓'; Escape = '\uFE13' } + @{ Char = '︔'; Escape = '\uFE14' } + @{ Char = '︕'; Escape = '\uFE15' } + @{ Char = '︖'; Escape = '\uFE16' } + @{ Char = '︗'; Escape = '\uFE17' } + @{ Char = '︘'; Escape = '\uFE18' } + @{ Char = '︙'; Escape = '\uFE19' } + @{ Char = '︰'; Escape = '\uFE30' } + @{ Char = '︱'; Escape = '\uFE31' } + @{ Char = '︲'; Escape = '\uFE32' } + @{ Char = '︳'; Escape = '\uFE33' } + @{ Char = '︴'; Escape = '\uFE34' } + @{ Char = '︵'; Escape = '\uFE35' } + @{ Char = '︶'; Escape = '\uFE36' } + @{ Char = '︷'; Escape = '\uFE37' } + @{ Char = '︸'; Escape = '\uFE38' } + @{ Char = '︹'; Escape = '\uFE39' } + @{ Char = '︺'; Escape = '\uFE3A' } + @{ Char = '︻'; Escape = '\uFE3B' } + @{ Char = '︼'; Escape = '\uFE3C' } + @{ Char = '︽'; Escape = '\uFE3D' } + @{ Char = '︾'; Escape = '\uFE3E' } + @{ Char = '︿'; Escape = '\uFE3F' } + @{ Char = '﹀'; Escape = '\uFE40' } + @{ Char = '﹁'; Escape = '\uFE41' } + @{ Char = '﹂'; Escape = '\uFE42' } + @{ Char = '﹃'; Escape = '\uFE43' } + @{ Char = '﹄'; Escape = '\uFE44' } + @{ Char = '﹅'; Escape = '\uFE45' } + @{ Char = '﹆'; Escape = '\uFE46' } + @{ Char = '﹉'; Escape = '\uFE49' } + @{ Char = '﹊'; Escape = '\uFE4A' } + @{ Char = '﹋'; Escape = '\uFE4B' } + @{ Char = '﹌'; Escape = '\uFE4C' } + @{ Char = '﹍'; Escape = '\uFE4D' } + @{ Char = '﹎'; Escape = '\uFE4E' } + @{ Char = '﹏'; Escape = '\uFE4F' } + @{ Char = '﹐'; Escape = '\uFE50' } + @{ Char = '﹑'; Escape = '\uFE51' } + @{ Char = '﹒'; Escape = '\uFE52' } + @{ Char = '﹔'; Escape = '\uFE54' } + @{ Char = '﹕'; Escape = '\uFE55' } + @{ Char = '﹖'; Escape = '\uFE56' } + @{ Char = '﹗'; Escape = '\uFE57' } + @{ Char = '﹘'; Escape = '\uFE58' } + @{ Char = '﹙'; Escape = '\uFE59' } + @{ Char = '﹚'; Escape = '\uFE5A' } + @{ Char = '﹛'; Escape = '\uFE5B' } + @{ Char = '﹜'; Escape = '\uFE5C' } + @{ Char = '﹝'; Escape = '\uFE5D' } + @{ Char = '﹞'; Escape = '\uFE5E' } + @{ Char = '﹟'; Escape = '\uFE5F' } + @{ Char = '﹠'; Escape = '\uFE60' } + @{ Char = '﹡'; Escape = '\uFE61' } + @{ Char = '﹢'; Escape = '\uFE62' } + @{ Char = '﹣'; Escape = '\uFE63' } + @{ Char = '﹤'; Escape = '\uFE64' } + @{ Char = '﹥'; Escape = '\uFE65' } + @{ Char = '﹦'; Escape = '\uFE66' } + @{ Char = '﹨'; Escape = '\uFE68' } + @{ Char = '﹩'; Escape = '\uFE69' } + @{ Char = '﹪'; Escape = '\uFE6A' } + @{ Char = '﹫'; Escape = '\uFE6B' } + @{ Char = ''; Escape = '\uFEFF' } + @{ Char = '!'; Escape = '\uFF01' } + @{ Char = '"'; Escape = '\uFF02' } + @{ Char = '#'; Escape = '\uFF03' } + @{ Char = '$'; Escape = '\uFF04' } + @{ Char = '%'; Escape = '\uFF05' } + @{ Char = '&'; Escape = '\uFF06' } + @{ Char = '''; Escape = '\uFF07' } + @{ Char = '('; Escape = '\uFF08' } + @{ Char = ')'; Escape = '\uFF09' } + @{ Char = '*'; Escape = '\uFF0A' } + @{ Char = '+'; Escape = '\uFF0B' } + @{ Char = ','; Escape = '\uFF0C' } + @{ Char = '-'; Escape = '\uFF0D' } + @{ Char = '.'; Escape = '\uFF0E' } + @{ Char = '/'; Escape = '\uFF0F' } + @{ Char = '0'; Escape = '\uFF10' } + @{ Char = '1'; Escape = '\uFF11' } + @{ Char = '2'; Escape = '\uFF12' } + @{ Char = '3'; Escape = '\uFF13' } + @{ Char = '4'; Escape = '\uFF14' } + @{ Char = '5'; Escape = '\uFF15' } + @{ Char = '6'; Escape = '\uFF16' } + @{ Char = '7'; Escape = '\uFF17' } + @{ Char = '8'; Escape = '\uFF18' } + @{ Char = '9'; Escape = '\uFF19' } + @{ Char = ':'; Escape = '\uFF1A' } + @{ Char = ';'; Escape = '\uFF1B' } + @{ Char = '<'; Escape = '\uFF1C' } + @{ Char = '='; Escape = '\uFF1D' } + @{ Char = '>'; Escape = '\uFF1E' } + @{ Char = '?'; Escape = '\uFF1F' } + @{ Char = '@'; Escape = '\uFF20' } + @{ Char = 'A'; Escape = '\uFF21' } + @{ Char = 'B'; Escape = '\uFF22' } + @{ Char = 'C'; Escape = '\uFF23' } + @{ Char = 'D'; Escape = '\uFF24' } + @{ Char = 'E'; Escape = '\uFF25' } + @{ Char = 'F'; Escape = '\uFF26' } + @{ Char = 'G'; Escape = '\uFF27' } + @{ Char = 'H'; Escape = '\uFF28' } + @{ Char = 'I'; Escape = '\uFF29' } + @{ Char = 'J'; Escape = '\uFF2A' } + @{ Char = 'K'; Escape = '\uFF2B' } + @{ Char = 'L'; Escape = '\uFF2C' } + @{ Char = 'M'; Escape = '\uFF2D' } + @{ Char = 'N'; Escape = '\uFF2E' } + @{ Char = 'O'; Escape = '\uFF2F' } + @{ Char = 'P'; Escape = '\uFF30' } + @{ Char = 'Q'; Escape = '\uFF31' } + @{ Char = 'R'; Escape = '\uFF32' } + @{ Char = 'S'; Escape = '\uFF33' } + @{ Char = 'T'; Escape = '\uFF34' } + @{ Char = 'U'; Escape = '\uFF35' } + @{ Char = 'V'; Escape = '\uFF36' } + @{ Char = 'W'; Escape = '\uFF37' } + @{ Char = 'X'; Escape = '\uFF38' } + @{ Char = 'Y'; Escape = '\uFF39' } + @{ Char = 'Z'; Escape = '\uFF3A' } + @{ Char = '['; Escape = '\uFF3B' } + @{ Char = '\'; Escape = '\uFF3C' } + @{ Char = ']'; Escape = '\uFF3D' } + @{ Char = '^'; Escape = '\uFF3E' } + @{ Char = '_'; Escape = '\uFF3F' } + @{ Char = '`'; Escape = '\uFF40' } + @{ Char = 'a'; Escape = '\uFF41' } + @{ Char = 'b'; Escape = '\uFF42' } + @{ Char = 'c'; Escape = '\uFF43' } + @{ Char = 'd'; Escape = '\uFF44' } + @{ Char = 'e'; Escape = '\uFF45' } + @{ Char = 'f'; Escape = '\uFF46' } + @{ Char = 'g'; Escape = '\uFF47' } + @{ Char = 'h'; Escape = '\uFF48' } + @{ Char = 'i'; Escape = '\uFF49' } + @{ Char = 'j'; Escape = '\uFF4A' } + @{ Char = 'k'; Escape = '\uFF4B' } + @{ Char = 'l'; Escape = '\uFF4C' } + @{ Char = 'm'; Escape = '\uFF4D' } + @{ Char = 'n'; Escape = '\uFF4E' } + @{ Char = 'o'; Escape = '\uFF4F' } + @{ Char = 'p'; Escape = '\uFF50' } + @{ Char = 'q'; Escape = '\uFF51' } + @{ Char = 'r'; Escape = '\uFF52' } + @{ Char = 's'; Escape = '\uFF53' } + @{ Char = 't'; Escape = '\uFF54' } + @{ Char = 'u'; Escape = '\uFF55' } + @{ Char = 'v'; Escape = '\uFF56' } + @{ Char = 'w'; Escape = '\uFF57' } + @{ Char = 'x'; Escape = '\uFF58' } + @{ Char = 'y'; Escape = '\uFF59' } + @{ Char = 'z'; Escape = '\uFF5A' } + @{ Char = '{'; Escape = '\uFF5B' } + @{ Char = '|'; Escape = '\uFF5C' } + @{ Char = '}'; Escape = '\uFF5D' } + @{ Char = '~'; Escape = '\uFF5E' } + @{ Char = '⦅'; Escape = '\uFF5F' } + @{ Char = '⦆'; Escape = '\uFF60' } + @{ Char = '¢'; Escape = '\uFFE0' } + @{ Char = '£'; Escape = '\uFFE1' } + @{ Char = '¬'; Escape = '\uFFE2' } + @{ Char = ' ̄'; Escape = '\uFFE3' } + @{ Char = '¦'; Escape = '\uFFE4' } + @{ Char = '¥'; Escape = '\uFFE5' } + @{ Char = '₩'; Escape = '\uFFE6' } + @{ Char = ''; Escape = '\uFFFC' } + @{ Char = '�'; Escape = '\uFFFD' } + ) + + It ' => ' -TestCases $cases { + Param ($Char, $Escape) + + $Char | ConvertTo-UnicodeEscape | Should -Be $Escape + } + + } + +} diff --git a/tests/Invoke-Method.tests.ps1 b/tests/Invoke-Method.tests.ps1 index 41fb17a..1958496 100644 --- a/tests/Invoke-Method.tests.ps1 +++ b/tests/Invoke-Method.tests.ps1 @@ -77,11 +77,12 @@ Describe 'Invoke-Method' -Tags 'internet' { It 'Throws with no invalid connection type' { $block = { - Invoke-Method -Path '/' -Context [PSCustomObject]@{ + $context = [PSCustomObject]@{ Organization = 'company' - BaseUrl = 'https://company.testdesk.com' - Credential = $null + BaseUrl = 'https://company.testdesk.com' + Credential = $null } + Invoke-Method -Path '/' -Context $context } $block | Should -Throw } @@ -98,6 +99,11 @@ Describe 'Invoke-Method' -Tags 'internet' { Assert-MockCalled Invoke-RestMethod -Exactly 1 -ParameterFilter { $ContentType -eq 'text/plain' } -Scope It } + It 'Escapes non-ascii characters' { + Invoke-Method -Context $context -Method 'Post' -Path '/' -Body ([PSCustomObject]@{ user = @{ name = '(╯°□°)╯︵ ┻━┻' } }) + Assert-MockCalled Invoke-RestMethod -Exactly 1 -ParameterFilter { $Body -eq '{"user":{"name":"(\u256f\u00b0\u25a1\u00b0\uff09\u256f\ufe35 \u253b\u2501\u253b"}}' } -Scope It + } + It 'Sorts by created_at by default' { Invoke-Method -Context $context -Path '/' Assert-MockCalled Invoke-RestMethod -Exactly 1 -ParameterFilter { $Uri -match 'sort_by=created_at' } -Scope It