diff --git a/.gitattributes b/.gitattributes
index 349f6a0..030aa16 100644
--- a/.gitattributes
+++ b/.gitattributes
@@ -2,4 +2,4 @@ tests/ export-ignore
phpunit.xml export-ignore
.gitattributes export-ignore
.gitignore export-ignore
-.travis.yml export-ignore
+.github export-ignore
diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml
new file mode 100644
index 0000000..a7c1473
--- /dev/null
+++ b/.github/workflows/tests.yml
@@ -0,0 +1,35 @@
+name: "Tests"
+on:
+ push:
+ paths-ignore:
+ - '**.md'
+ pull_request:
+ paths-ignore:
+ - '**.md'
+jobs:
+ tests:
+ runs-on: ubuntu-latest
+ strategy:
+ fail-fast: true
+ matrix:
+ php: [7.4, 8.0, 8.1, 8.2, 8.3, 8.4, 8.5]
+
+ name: PHP ${{ matrix.php }}
+
+ steps:
+ - name: Checkout code
+ uses: actions/checkout@v2
+
+ - name: Setup PHP
+ uses: shivammathur/setup-php@v2
+ with:
+ php-version: ${{ matrix.php }}
+ extensions: json, iconv
+ tools: composer:v2
+ coverage: none
+
+ - name: Install dependencies
+ run: composer update --no-interaction --no-progress
+
+ - name: Execute tests
+ run: composer run tests
diff --git a/.gitignore b/.gitignore
index 8635faf..4188f39 100644
--- a/.gitignore
+++ b/.gitignore
@@ -4,3 +4,4 @@ _site/
shared/
Gemfile.lock
composer.lock
+.phpunit.result.cache
diff --git a/.travis.yml b/.travis.yml
deleted file mode 100644
index ca4c2fa..0000000
--- a/.travis.yml
+++ /dev/null
@@ -1,22 +0,0 @@
-language: php
-
-matrix:
- include:
- - php: 5.3
- dist: precise
- - php: 5.4
- - php: 5.5
- - php: 5.6
- - php: 7.0
- - php: 7.1
- - php: 7.2
- - php: hhvm
- fast_finish: true
-
-sudo: false
-
-install:
- - travis_retry composer self-update
- - travis_wait composer install --no-interaction --prefer-source
-
-script: ./vendor/bin/phpunit
diff --git a/CHANGELOG.md b/CHANGELOG.md
index df93ce9..88a33dc 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,69 +1,10 @@
-## v1.4.0 - 2016.08.10
-### Added
-- `ensurePrefix` and `ensureSuffix` methods
+CHANGELOG
+-------------
-### Removed
-- Nothing
+### v2.1.0, 2025.10.17
-### Changed
-- Nothing
+* Added static `getStringLength()`
-### Fixed
-- Nothing
+### v2.0.0, 2021.04.13
-## v1.3.0 - 2016.08.10
-### Added
-- `insert` method
-- `remove` method
-- `padLeft` and `padRight` methods
-
-### Removed
-- Nothing
-
-### Changed
-- Nothing
-
-### Fixed
-- Nothing
-
-## v1.2.0 - 2016.08.08
-### Added
-- `repeat` method
-
-### Removed
-- Nothing
-
-### Changed
-- Improved `equals` method
-- Improved `indexOf` and `lastIndexOf` methods
-
-### Fixed
-- Nothing
-
-## v1.1.1 - 2016.08.08
-### Added
-- Nothing
-
-### Removed
-- Nothing
-
-### Changed
-- UTF-8 parsing algorithm inside `Opis\String\UnicodeString::from` method
-
-### Fixed
-- Nothing
-
-## v1.1.0 - 2016.08.08
-### Added
-- Support for multiple encodings.
-- The `Opis\String\UnicodeString::from` method takes now an optional
-`$encoding` argument.
-
-### Removed
-- Nothing
-
-### Changed
-- Nothing
-
-### Fixed
-- Nothing
+* The library was fully refactored
diff --git a/NOTICE b/NOTICE
index 4020c96..d63600e 100644
--- a/NOTICE
+++ b/NOTICE
@@ -1,5 +1,5 @@
Opis String
-Copyright 2018 Zindex Software
+Copyright 2018-2021 Zindex Software
This product includes software developed at
Zindex Software (http://zindex.software).
diff --git a/README.md b/README.md
index 098bdcc..4059919 100644
--- a/README.md
+++ b/README.md
@@ -1,37 +1,51 @@
Opis String
===========
-[](https://travis-ci.org/opis/string)
-[](https://packagist.org/packages/opis/string)
-[](//packagist.org/packages/opis/string)
-[](https://packagist.org/packages/opis/string)
+[](https://github.com/opis/string/actions)
+[](https://packagist.org/packages/opis/string)
+[](https://packagist.org/packages/opis/string)
+[](https://packagist.org/packages/opis/string)
-Manipulate multibyte strings
+
+Multibyte strings
----------------------------
-This tiny library allows you to manipulate multibyte encoded strings,
-using an object-oriented paradigm. The library has **no dependencies** to
-*mbstring* or similar PHP extensions and is compatible with PHP 5.3+, PHP 7.0 and HHVM.
+**Opis String** is a tiny library that allows you to work with multibyte encoded strings in an object-oriented manner.
+The library has no dependencies to *mb_string* or similar PHP extensions.
+
+## Documentation
-### Documentation
+The full documentation for this library can be found [here][documentation].
-Documentation and examples can be found [here](https://www.opis.io/string).
+## License
-### License
+**Opis String** is licensed under the [Apache License, Version 2.0][license].
-**Opis String** is licensed under the [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0).
+## Requirements
-### Requirements
+* PHP ^7.4 || ^8.0
+* ext-json
+* ext-iconv
-* PHP 5.3.* or higher
+## Installation
-### Installation
+**Opis String** is available on [Packagist], and it can be installed from a
+command line interface by using [Composer].
-This library is available on [Packagist](https://packagist.org/packages/opis/string) and can be installed using [Composer](http://getcomposer.org).
+```bash
+composer require opis/string
+```
+
+Or you could directly reference it into your `composer.json` file as a dependency
```json
{
"require": {
- "opis/string": "^1.4.0"
+ "opis/string": "^2.1"
}
}
```
+
+[documentation]: https://opis.io/string
+[license]: https://www.apache.org/licenses/LICENSE-2.0 "Apache License"
+[Packagist]: https://packagist.org/packages/opis/string "Packagist"
+[Composer]: https://getcomposer.org "Composer"
diff --git a/composer.json b/composer.json
index 8c1d93f..e5040ab 100644
--- a/composer.json
+++ b/composer.json
@@ -1,20 +1,26 @@
{
"name": "opis/string",
- "description": "A standalone library for manipulating multibyte strings",
+ "description": "Multibyte strings as objects",
"keywords": ["opis", "string", "utf-8", "multi-byte", "string manipulation"],
- "homepage": "http://opis.io",
+ "homepage": "https://opis.io/string",
"license": "Apache-2.0",
"authors": [
{
"name": "Marius Sarca",
"email": "marius.sarca@gmail.com"
+ },
+ {
+ "name": "Sorin Sarca",
+ "email": "sarca_sorin@hotmail.com"
}
],
"require": {
- "php": ">=5.3.0"
+ "php": "^7.4 || ^8.0",
+ "ext-json": "*",
+ "ext-iconv": "*"
},
"require-dev": {
- "phpunit/phpunit": "^4.8"
+ "phpunit/phpunit": "^9.0"
},
"autoload": {
"psr-4": {
@@ -26,9 +32,12 @@
"Opis\\String\\Test\\": "tests/"
}
},
+ "scripts": {
+ "tests": "./vendor/bin/phpunit --verbose --color"
+ },
"extra": {
"branch-alias": {
- "dev-master": "1.4.x-dev"
+ "dev-master": "2.x-dev"
}
}
}
diff --git a/phpunit.xml b/phpunit.xml
index da46aa0..c239f02 100644
--- a/phpunit.xml
+++ b/phpunit.xml
@@ -6,9 +6,4 @@
./tests
-
-
- src/
-
-
diff --git a/res/ascii.php b/res/ascii.php
index d5cef4d..000a19f 100644
--- a/res/ascii.php
+++ b/res/ascii.php
@@ -1,753 +1,751 @@
48,
- 8320 => 48,
- 1776 => 48,
- 185 => 49,
- 8321 => 49,
- 1777 => 49,
- 178 => 50,
- 8322 => 50,
- 1778 => 50,
- 179 => 51,
- 8323 => 51,
- 1779 => 51,
- 8308 => 52,
- 8324 => 52,
- 1780 => 52,
- 1636 => 52,
- 8309 => 53,
- 8325 => 53,
- 1781 => 53,
- 1637 => 53,
- 8310 => 54,
- 8326 => 54,
- 1782 => 54,
- 1638 => 54,
- 8311 => 55,
- 8327 => 55,
- 1783 => 55,
- 8312 => 56,
- 8328 => 56,
- 1784 => 56,
- 8313 => 57,
- 8329 => 57,
- 1785 => 57,
- 224 => 97,
- 225 => 97,
- 7843 => 97,
- 227 => 97,
- 7841 => 97,
- 259 => 97,
- 7855 => 97,
- 7857 => 97,
- 7859 => 97,
- 7861 => 97,
- 7863 => 97,
- 226 => 97,
- 7845 => 97,
- 7847 => 97,
- 7849 => 97,
- 7851 => 97,
- 7853 => 97,
- 257 => 97,
- 261 => 97,
- 229 => 97,
- 945 => 97,
- 940 => 97,
- 7936 => 97,
- 7937 => 97,
- 7938 => 97,
- 7939 => 97,
- 7940 => 97,
- 7941 => 97,
- 7942 => 97,
- 7943 => 97,
- 8064 => 97,
- 8065 => 97,
- 8066 => 97,
- 8067 => 97,
- 8068 => 97,
- 8069 => 97,
- 8070 => 97,
- 8071 => 97,
- 8048 => 97,
- 8112 => 97,
- 8113 => 97,
- 8114 => 97,
- 8115 => 97,
- 8116 => 97,
- 8118 => 97,
- 8119 => 97,
- 1072 => 97,
- 1571 => 97,
- 4129 => 97,
- 4140 => 97,
- 4139 => 97,
- 507 => 97,
- 462 => 97,
- 170 => 97,
- 4304 => 97,
- 2309 => 97,
- 1575 => 97,
- 1073 => 98,
- 946 => 98,
- 1066 => 98,
- 1068 => 98,
- 1576 => 98,
- 4119 => 98,
- 4305 => 98,
- 231 => 99,
- 263 => 99,
- 269 => 99,
- 265 => 99,
- 267 => 99,
- 271 => 100,
- 240 => 100,
- 273 => 100,
- 396 => 100,
- 545 => 100,
- 598 => 100,
- 599 => 100,
- 7533 => 100,
- 7553 => 100,
- 7569 => 100,
- 1076 => 100,
- 948 => 100,
- 1583 => 100,
- 1590 => 100,
- 4109 => 100,
- 4114 => 100,
- 4307 => 100,
- 233 => 101,
- 232 => 101,
- 7867 => 101,
- 7869 => 101,
- 7865 => 101,
- 234 => 101,
- 7871 => 101,
- 7873 => 101,
- 7875 => 101,
- 7877 => 101,
- 7879 => 101,
- 235 => 101,
- 275 => 101,
- 281 => 101,
- 283 => 101,
- 277 => 101,
- 279 => 101,
- 949 => 101,
- 941 => 101,
- 7952 => 101,
- 7953 => 101,
- 7954 => 101,
- 7955 => 101,
- 7956 => 101,
- 7957 => 101,
- 8050 => 101,
- 1077 => 101,
- 1105 => 101,
- 1101 => 101,
- 1108 => 101,
- 601 => 101,
- 4135 => 101,
- 4145 => 101,
- 4146 => 101,
- 4308 => 101,
- 2319 => 101,
- 1573 => 101,
- 1574 => 101,
- 1092 => 102,
- 966 => 102,
- 1601 => 102,
- 402 => 102,
- 4324 => 102,
- 285 => 103,
- 287 => 103,
- 289 => 103,
- 291 => 103,
- 1075 => 103,
- 1169 => 103,
- 947 => 103,
- 4098 => 103,
- 4306 => 103,
- 1711 => 103,
- 293 => 104,
- 295 => 104,
- 951 => 104,
- 942 => 104,
- 1581 => 104,
- 1607 => 104,
- 4127 => 104,
- 4158 => 104,
- 4336 => 104,
- 237 => 105,
- 236 => 105,
- 7881 => 105,
- 297 => 105,
- 7883 => 105,
- 238 => 105,
- 239 => 105,
- 299 => 105,
- 301 => 105,
- 303 => 105,
- 305 => 105,
- 953 => 105,
- 943 => 105,
- 970 => 105,
- 912 => 105,
- 7984 => 105,
- 7985 => 105,
- 7986 => 105,
- 7987 => 105,
- 7988 => 105,
- 7989 => 105,
- 7990 => 105,
- 7991 => 105,
- 8054 => 105,
- 8144 => 105,
- 8145 => 105,
- 8146 => 105,
- 8150 => 105,
- 8151 => 105,
- 1110 => 105,
- 1111 => 105,
- 1080 => 105,
- 4131 => 105,
- 4141 => 111,
- 4142 => 105,
- 4106 => 105,
- 464 => 105,
- 4312 => 105,
- 2311 => 105,
- 1740 => 105,
- 309 => 106,
- 1112 => 106,
- 1032 => 106,
- 4335 => 106,
- 1580 => 106,
- 311 => 107,
- 312 => 107,
- 1082 => 107,
- 954 => 107,
- 310 => 107,
- 1602 => 107,
- 1603 => 107,
- 4096 => 107,
- 4313 => 107,
- 4325 => 107,
- 1705 => 107,
- 322 => 108,
- 318 => 108,
- 314 => 108,
- 316 => 108,
- 320 => 108,
- 1083 => 108,
- 955 => 108,
- 1604 => 108,
- 4124 => 108,
- 4314 => 108,
- 1084 => 109,
- 956 => 109,
- 1605 => 109,
- 4121 => 109,
- 4315 => 109,
- 241 => 110,
- 324 => 110,
- 328 => 110,
- 326 => 110,
- 329 => 110,
- 331 => 110,
- 957 => 110,
- 1085 => 110,
- 1606 => 110,
- 4116 => 110,
- 4316 => 110,
- 243 => 111,
- 242 => 111,
- 7887 => 111,
- 245 => 111,
- 7885 => 111,
- 244 => 111,
- 7889 => 111,
- 7891 => 111,
- 7893 => 111,
- 7895 => 111,
- 7897 => 111,
- 417 => 111,
- 7899 => 111,
- 7901 => 111,
- 7903 => 111,
- 7905 => 111,
- 7907 => 111,
- 248 => 111,
- 333 => 111,
- 337 => 111,
- 335 => 111,
- 959 => 111,
- 8000 => 111,
- 8001 => 111,
- 8002 => 111,
- 8003 => 111,
- 8004 => 111,
- 8005 => 111,
- 8056 => 111,
- 972 => 111,
- 1086 => 111,
- 1608 => 111,
- 952 => 111,
- 466 => 111,
- 511 => 111,
- 186 => 111,
- 4317 => 111,
- 2323 => 111,
- 1087 => 112,
- 960 => 112,
- 4117 => 112,
- 4318 => 112,
- 1662 => 112,
- 4327 => 113,
- 341 => 114,
- 345 => 114,
- 343 => 114,
- 1088 => 114,
- 961 => 114,
- 1585 => 114,
- 4320 => 114,
- 347 => 115,
- 353 => 115,
- 351 => 115,
- 1089 => 115,
- 963 => 115,
- 537 => 115,
- 962 => 115,
- 1587 => 115,
- 1589 => 115,
- 4101 => 115,
- 383 => 115,
- 4321 => 115,
- 357 => 116,
- 355 => 116,
- 1090 => 116,
- 964 => 116,
- 539 => 116,
- 1578 => 116,
- 1591 => 116,
- 4107 => 116,
- 4112 => 116,
- 359 => 116,
- 4311 => 116,
- 4322 => 116,
- 250 => 117,
- 249 => 117,
- 7911 => 117,
- 361 => 117,
- 7909 => 117,
- 432 => 117,
- 7913 => 117,
- 7915 => 117,
- 7917 => 117,
- 7919 => 117,
- 7921 => 117,
- 251 => 117,
- 363 => 117,
- 367 => 117,
- 369 => 117,
- 365 => 117,
- 371 => 117,
- 181 => 117,
- 1091 => 117,
- 4105 => 117,
- 4143 => 117,
- 4144 => 117,
- 468 => 117,
- 470 => 117,
- 472 => 117,
- 474 => 117,
- 476 => 117,
- 4323 => 117,
- 2313 => 117,
- 1074 => 118,
- 4309 => 118,
- 976 => 118,
- 373 => 119,
- 969 => 119,
- 974 => 119,
- 4125 => 119,
- 4157 => 119,
- 967 => 120,
- 958 => 120,
- 253 => 121,
- 7923 => 121,
- 7927 => 121,
- 7929 => 121,
- 7925 => 121,
- 255 => 121,
- 375 => 121,
- 1081 => 121,
- 1099 => 121,
- 965 => 121,
- 971 => 121,
- 973 => 121,
- 944 => 121,
- 1610 => 121,
- 4122 => 121,
- 378 => 122,
- 382 => 122,
- 380 => 122,
- 1079 => 122,
- 950 => 122,
- 1586 => 122,
- 4103 => 122,
- 4310 => 122,
- 1593 => 97,
- 2310 => 97,
- 1570 => 97,
- 228 => 97,
- 230 => 97,
- 509 => 97,
- 2320 => 97,
- 64 => 97,
- 1095 => 99,
- 4329 => 99,
- 4333 => 99,
- 1670 => 99,
- 1106 => 100,
- 1119 => 100,
- 4331 => 100,
- 2317 => 101,
- 1594 => 103,
- 4326 => 103,
- 2312 => 105,
- 307 => 105,
- 1093 => 107,
- 1582 => 107,
- 4334 => 107,
- 1113 => 108,
- 1114 => 110,
- 246 => 111,
- 339 => 111,
- 1572 => 111,
- 2321 => 111,
- 2322 => 111,
- 968 => 112,
- 1096 => 115,
- 4328 => 115,
- 1588 => 115,
- 1097 => 115,
- 223 => 115,
- 349 => 115,
- 254 => 116,
- 977 => 116,
- 1579 => 116,
- 1584 => 116,
- 1592 => 116,
- 1094 => 116,
- 4330 => 116,
- 4332 => 116,
- 252 => 117,
- 2314 => 117,
- 1103 => 121,
- 1102 => 121,
- 1078 => 122,
- 4319 => 122,
- 1688 => 122,
- 169 => 40,
- 193 => 65,
- 192 => 65,
- 7842 => 65,
- 195 => 65,
- 7840 => 65,
- 258 => 65,
- 7854 => 65,
- 7856 => 65,
- 7858 => 65,
- 7860 => 65,
- 7862 => 65,
- 194 => 65,
- 7844 => 65,
- 7846 => 65,
- 7848 => 65,
- 7850 => 65,
- 7852 => 65,
- 197 => 65,
- 256 => 65,
- 260 => 65,
- 913 => 65,
- 902 => 65,
- 7944 => 65,
- 7945 => 65,
- 7946 => 65,
- 7947 => 65,
- 7948 => 65,
- 7949 => 65,
- 7950 => 65,
- 7951 => 65,
- 8072 => 65,
- 8073 => 65,
- 8074 => 65,
- 8075 => 65,
- 8076 => 65,
- 8077 => 65,
- 8078 => 65,
- 8079 => 65,
- 8120 => 65,
- 8121 => 65,
- 8122 => 65,
- 8124 => 65,
- 1040 => 65,
- 506 => 65,
- 461 => 65,
- 1041 => 66,
- 914 => 66,
- 2348 => 66,
- 199 => 67,
- 262 => 67,
- 268 => 67,
- 264 => 67,
- 266 => 67,
- 270 => 68,
- 208 => 68,
- 272 => 68,
- 393 => 68,
- 394 => 68,
- 395 => 68,
- 7429 => 68,
- 7430 => 68,
- 1044 => 68,
- 916 => 68,
- 201 => 69,
- 200 => 69,
- 7866 => 69,
- 7868 => 69,
- 7864 => 69,
- 202 => 69,
- 7870 => 69,
- 7872 => 69,
- 7874 => 69,
- 7876 => 69,
- 7878 => 69,
- 203 => 69,
- 274 => 69,
- 280 => 69,
- 282 => 69,
- 276 => 69,
- 278 => 69,
- 917 => 69,
- 904 => 69,
- 7960 => 69,
- 7961 => 69,
- 7962 => 69,
- 7963 => 69,
- 7964 => 69,
- 7965 => 69,
- 8136 => 69,
- 1045 => 69,
- 1025 => 69,
- 1069 => 69,
- 1028 => 69,
- 399 => 69,
- 1060 => 70,
- 934 => 70,
- 286 => 71,
- 288 => 71,
- 290 => 71,
- 1043 => 71,
- 1168 => 71,
- 915 => 71,
- 919 => 72,
- 905 => 72,
- 294 => 72,
- 205 => 73,
- 204 => 73,
- 7880 => 73,
- 296 => 73,
- 7882 => 73,
- 206 => 73,
- 207 => 73,
- 298 => 73,
- 300 => 73,
- 302 => 73,
- 304 => 73,
- 921 => 73,
- 906 => 73,
- 938 => 73,
- 7992 => 73,
- 7993 => 73,
- 7995 => 73,
- 7996 => 73,
- 7997 => 73,
- 7998 => 73,
- 7999 => 73,
- 8152 => 73,
- 8153 => 73,
- 8154 => 73,
- 1048 => 73,
- 1030 => 73,
- 1031 => 73,
- 463 => 73,
- 978 => 73,
- 1050 => 75,
- 922 => 75,
- 313 => 76,
- 321 => 76,
- 1051 => 76,
- 923 => 76,
- 315 => 76,
- 317 => 76,
- 319 => 76,
- 2354 => 76,
- 1052 => 77,
- 924 => 77,
- 323 => 78,
- 209 => 78,
- 327 => 78,
- 325 => 78,
- 330 => 78,
- 1053 => 78,
- 925 => 78,
- 211 => 79,
- 210 => 79,
- 7886 => 79,
- 213 => 79,
- 7884 => 79,
- 212 => 79,
- 7888 => 79,
- 7890 => 79,
- 7892 => 79,
- 7894 => 79,
- 7896 => 79,
- 416 => 79,
- 7898 => 79,
- 7900 => 79,
- 7902 => 79,
- 7904 => 79,
- 7906 => 79,
- 216 => 79,
- 332 => 79,
- 336 => 79,
- 334 => 79,
- 927 => 79,
- 908 => 79,
- 8008 => 79,
- 8009 => 79,
- 8010 => 79,
- 8011 => 79,
- 8012 => 79,
- 8013 => 79,
- 8184 => 79,
- 1054 => 79,
- 920 => 79,
- 1256 => 79,
- 465 => 79,
- 510 => 79,
- 1055 => 80,
- 928 => 80,
- 344 => 82,
- 340 => 82,
- 1056 => 82,
- 929 => 82,
- 342 => 82,
- 350 => 83,
- 348 => 83,
- 536 => 83,
- 352 => 83,
- 346 => 83,
- 1057 => 83,
- 931 => 83,
- 356 => 84,
- 354 => 84,
- 358 => 84,
- 538 => 84,
- 1058 => 84,
- 932 => 84,
- 218 => 85,
- 217 => 85,
- 7910 => 85,
- 360 => 85,
- 7908 => 85,
- 431 => 85,
- 7912 => 85,
- 7914 => 85,
- 7916 => 85,
- 7918 => 85,
- 7920 => 85,
- 219 => 85,
- 362 => 85,
- 366 => 85,
- 368 => 85,
- 364 => 85,
- 370 => 85,
- 1059 => 85,
- 467 => 85,
- 469 => 85,
- 471 => 85,
- 473 => 85,
- 475 => 85,
- 1042 => 86,
- 937 => 87,
- 911 => 87,
- 372 => 87,
- 935 => 88,
- 926 => 88,
- 221 => 89,
- 7922 => 89,
- 7926 => 89,
- 7928 => 89,
- 7924 => 89,
- 376 => 89,
- 8168 => 89,
- 8169 => 89,
- 8170 => 89,
- 910 => 89,
- 1067 => 89,
- 1049 => 89,
- 933 => 89,
- 939 => 89,
- 374 => 89,
- 377 => 90,
- 381 => 90,
- 379 => 90,
- 1047 => 90,
- 918 => 90,
- 196 => 65,
- 198 => 65,
- 508 => 65,
- 1063 => 67,
- 1026 => 68,
- 1039 => 68,
- 284 => 71,
- 292 => 72,
- 306 => 73,
- 308 => 74,
- 1061 => 75,
- 1033 => 76,
- 1034 => 78,
- 214 => 79,
- 338 => 79,
- 936 => 80,
- 1064 => 83,
- 1065 => 83,
- 7838 => 83,
- 222 => 84,
- 1062 => 84,
- 220 => 85,
- 1071 => 89,
- 1070 => 89,
- 1046 => 90,
- 160 => 32,
- 8192 => 32,
- 8193 => 32,
- 8194 => 32,
- 8195 => 32,
- 8196 => 32,
- 8197 => 32,
- 8198 => 32,
- 8199 => 32,
- 8200 => 32,
- 8201 => 32,
- 8202 => 32,
- 8239 => 32,
- 8287 => 32,
- 12288 => 32,
-);
+return [
+0xA9 => 0x28,
+0xAA => 0x61,
+0xB0 => 0x30,
+0xB2 => 0x32,
+0xB3 => 0x33,
+0xB5 => 0x75,
+0xB9 => 0x31,
+0xBA => 0x6F,
+0xC0 => 0x41,
+0xC1 => 0x41,
+0xC2 => 0x41,
+0xC3 => 0x41,
+0xC4 => 0x41,
+0xC5 => 0x41,
+0xC6 => 0x41,
+0xC7 => 0x43,
+0xC8 => 0x45,
+0xC9 => 0x45,
+0xCA => 0x45,
+0xCB => 0x45,
+0xCC => 0x49,
+0xCD => 0x49,
+0xCE => 0x49,
+0xCF => 0x49,
+0xD0 => 0x44,
+0xD1 => 0x4E,
+0xD2 => 0x4F,
+0xD3 => 0x4F,
+0xD4 => 0x4F,
+0xD5 => 0x4F,
+0xD6 => 0x4F,
+0xD8 => 0x4F,
+0xD9 => 0x55,
+0xDA => 0x55,
+0xDB => 0x55,
+0xDC => 0x55,
+0xDD => 0x59,
+0xDE => 0x54,
+0xDF => 0x73,
+0xE0 => 0x61,
+0xE1 => 0x61,
+0xE2 => 0x61,
+0xE3 => 0x61,
+0xE4 => 0x61,
+0xE5 => 0x61,
+0xE6 => 0x61,
+0xE7 => 0x63,
+0xE8 => 0x65,
+0xE9 => 0x65,
+0xEA => 0x65,
+0xEB => 0x65,
+0xEC => 0x69,
+0xED => 0x69,
+0xEE => 0x69,
+0xEF => 0x69,
+0xF0 => 0x64,
+0xF1 => 0x6E,
+0xF2 => 0x6F,
+0xF3 => 0x6F,
+0xF4 => 0x6F,
+0xF5 => 0x6F,
+0xF6 => 0x6F,
+0xF8 => 0x6F,
+0xF9 => 0x75,
+0xFA => 0x75,
+0xFB => 0x75,
+0xFC => 0x75,
+0xFD => 0x79,
+0xFE => 0x74,
+0xFF => 0x79,
+0x100 => 0x41,
+0x101 => 0x61,
+0x102 => 0x41,
+0x103 => 0x61,
+0x104 => 0x41,
+0x105 => 0x61,
+0x106 => 0x43,
+0x107 => 0x63,
+0x108 => 0x43,
+0x109 => 0x63,
+0x10A => 0x43,
+0x10B => 0x63,
+0x10C => 0x43,
+0x10D => 0x63,
+0x10E => 0x44,
+0x10F => 0x64,
+0x110 => 0x44,
+0x111 => 0x64,
+0x112 => 0x45,
+0x113 => 0x65,
+0x114 => 0x45,
+0x115 => 0x65,
+0x116 => 0x45,
+0x117 => 0x65,
+0x118 => 0x45,
+0x119 => 0x65,
+0x11A => 0x45,
+0x11B => 0x65,
+0x11C => 0x47,
+0x11D => 0x67,
+0x11E => 0x47,
+0x11F => 0x67,
+0x120 => 0x47,
+0x121 => 0x67,
+0x122 => 0x47,
+0x123 => 0x67,
+0x124 => 0x48,
+0x125 => 0x68,
+0x126 => 0x48,
+0x127 => 0x68,
+0x128 => 0x49,
+0x129 => 0x69,
+0x12A => 0x49,
+0x12B => 0x69,
+0x12C => 0x49,
+0x12D => 0x69,
+0x12E => 0x49,
+0x12F => 0x69,
+0x130 => 0x49,
+0x131 => 0x69,
+0x132 => 0x49,
+0x133 => 0x69,
+0x134 => 0x4A,
+0x135 => 0x6A,
+0x136 => 0x6B,
+0x137 => 0x6B,
+0x138 => 0x6B,
+0x139 => 0x4C,
+0x13A => 0x6C,
+0x13B => 0x4C,
+0x13C => 0x6C,
+0x13D => 0x4C,
+0x13E => 0x6C,
+0x13F => 0x4C,
+0x140 => 0x6C,
+0x141 => 0x4C,
+0x142 => 0x6C,
+0x143 => 0x4E,
+0x144 => 0x6E,
+0x145 => 0x4E,
+0x146 => 0x6E,
+0x147 => 0x4E,
+0x148 => 0x6E,
+0x149 => 0x6E,
+0x14A => 0x4E,
+0x14B => 0x6E,
+0x14C => 0x4F,
+0x14D => 0x6F,
+0x14E => 0x4F,
+0x14F => 0x6F,
+0x150 => 0x4F,
+0x151 => 0x6F,
+0x152 => 0x4F,
+0x153 => 0x6F,
+0x154 => 0x52,
+0x155 => 0x72,
+0x156 => 0x52,
+0x157 => 0x72,
+0x158 => 0x52,
+0x159 => 0x72,
+0x15A => 0x53,
+0x15B => 0x73,
+0x15C => 0x53,
+0x15D => 0x73,
+0x15E => 0x53,
+0x15F => 0x73,
+0x160 => 0x53,
+0x161 => 0x73,
+0x162 => 0x54,
+0x163 => 0x74,
+0x164 => 0x54,
+0x165 => 0x74,
+0x166 => 0x54,
+0x167 => 0x74,
+0x168 => 0x55,
+0x169 => 0x75,
+0x16A => 0x55,
+0x16B => 0x75,
+0x16C => 0x55,
+0x16D => 0x75,
+0x16E => 0x55,
+0x16F => 0x75,
+0x170 => 0x55,
+0x171 => 0x75,
+0x172 => 0x55,
+0x173 => 0x75,
+0x174 => 0x57,
+0x175 => 0x77,
+0x176 => 0x59,
+0x177 => 0x79,
+0x178 => 0x59,
+0x179 => 0x5A,
+0x17A => 0x7A,
+0x17B => 0x5A,
+0x17C => 0x7A,
+0x17D => 0x5A,
+0x17E => 0x7A,
+0x17F => 0x73,
+0x189 => 0x44,
+0x18A => 0x44,
+0x18B => 0x44,
+0x18C => 0x64,
+0x18F => 0x45,
+0x192 => 0x66,
+0x1A0 => 0x4F,
+0x1A1 => 0x6F,
+0x1AF => 0x55,
+0x1B0 => 0x75,
+0x1CD => 0x41,
+0x1CE => 0x61,
+0x1CF => 0x49,
+0x1D0 => 0x69,
+0x1D1 => 0x4F,
+0x1D2 => 0x6F,
+0x1D3 => 0x55,
+0x1D4 => 0x75,
+0x1D5 => 0x55,
+0x1D6 => 0x75,
+0x1D7 => 0x55,
+0x1D8 => 0x75,
+0x1D9 => 0x55,
+0x1DA => 0x75,
+0x1DB => 0x55,
+0x1DC => 0x75,
+0x1FA => 0x41,
+0x1FB => 0x61,
+0x1FC => 0x41,
+0x1FD => 0x61,
+0x1FE => 0x4F,
+0x1FF => 0x6F,
+0x218 => 0x53,
+0x219 => 0x73,
+0x21A => 0x54,
+0x21B => 0x74,
+0x221 => 0x64,
+0x256 => 0x64,
+0x257 => 0x64,
+0x259 => 0x65,
+0x386 => 0x41,
+0x388 => 0x45,
+0x389 => 0x48,
+0x38A => 0x49,
+0x38C => 0x4F,
+0x38E => 0x59,
+0x38F => 0x57,
+0x390 => 0x69,
+0x391 => 0x41,
+0x392 => 0x42,
+0x393 => 0x47,
+0x394 => 0x44,
+0x395 => 0x45,
+0x396 => 0x5A,
+0x397 => 0x48,
+0x398 => 0x4F,
+0x399 => 0x49,
+0x39A => 0x4B,
+0x39B => 0x4C,
+0x39C => 0x4D,
+0x39D => 0x4E,
+0x39E => 0x58,
+0x39F => 0x4F,
+0x3A0 => 0x50,
+0x3A1 => 0x52,
+0x3A3 => 0x53,
+0x3A4 => 0x54,
+0x3A5 => 0x59,
+0x3A6 => 0x46,
+0x3A7 => 0x58,
+0x3A8 => 0x50,
+0x3A9 => 0x57,
+0x3AA => 0x49,
+0x3AB => 0x59,
+0x3AC => 0x61,
+0x3AD => 0x65,
+0x3AE => 0x68,
+0x3AF => 0x69,
+0x3B0 => 0x79,
+0x3B1 => 0x61,
+0x3B2 => 0x62,
+0x3B3 => 0x67,
+0x3B4 => 0x64,
+0x3B5 => 0x65,
+0x3B6 => 0x7A,
+0x3B7 => 0x68,
+0x3B8 => 0x6F,
+0x3B9 => 0x69,
+0x3BA => 0x6B,
+0x3BB => 0x6C,
+0x3BC => 0x6D,
+0x3BD => 0x6E,
+0x3BE => 0x78,
+0x3BF => 0x6F,
+0x3C0 => 0x70,
+0x3C1 => 0x72,
+0x3C2 => 0x73,
+0x3C3 => 0x73,
+0x3C4 => 0x74,
+0x3C5 => 0x79,
+0x3C6 => 0x66,
+0x3C7 => 0x78,
+0x3C8 => 0x70,
+0x3C9 => 0x77,
+0x3CA => 0x69,
+0x3CB => 0x79,
+0x3CC => 0x6F,
+0x3CD => 0x79,
+0x3CE => 0x77,
+0x3D0 => 0x76,
+0x3D1 => 0x74,
+0x3D2 => 0x49,
+0x401 => 0x45,
+0x402 => 0x44,
+0x404 => 0x45,
+0x406 => 0x49,
+0x407 => 0x49,
+0x408 => 0x6A,
+0x409 => 0x4C,
+0x40A => 0x4E,
+0x40F => 0x44,
+0x410 => 0x41,
+0x411 => 0x42,
+0x412 => 0x56,
+0x413 => 0x47,
+0x414 => 0x44,
+0x415 => 0x45,
+0x416 => 0x5A,
+0x417 => 0x5A,
+0x418 => 0x49,
+0x419 => 0x59,
+0x41A => 0x4B,
+0x41B => 0x4C,
+0x41C => 0x4D,
+0x41D => 0x4E,
+0x41E => 0x4F,
+0x41F => 0x50,
+0x420 => 0x52,
+0x421 => 0x53,
+0x422 => 0x54,
+0x423 => 0x55,
+0x424 => 0x46,
+0x425 => 0x4B,
+0x426 => 0x54,
+0x427 => 0x43,
+0x428 => 0x53,
+0x429 => 0x53,
+0x42A => 0x62,
+0x42B => 0x59,
+0x42C => 0x62,
+0x42D => 0x45,
+0x42E => 0x59,
+0x42F => 0x59,
+0x430 => 0x61,
+0x431 => 0x62,
+0x432 => 0x76,
+0x433 => 0x67,
+0x434 => 0x64,
+0x435 => 0x65,
+0x436 => 0x7A,
+0x437 => 0x7A,
+0x438 => 0x69,
+0x439 => 0x79,
+0x43A => 0x6B,
+0x43B => 0x6C,
+0x43C => 0x6D,
+0x43D => 0x6E,
+0x43E => 0x6F,
+0x43F => 0x70,
+0x440 => 0x72,
+0x441 => 0x73,
+0x442 => 0x74,
+0x443 => 0x75,
+0x444 => 0x66,
+0x445 => 0x6B,
+0x446 => 0x74,
+0x447 => 0x63,
+0x448 => 0x73,
+0x449 => 0x73,
+0x44B => 0x79,
+0x44D => 0x65,
+0x44E => 0x79,
+0x44F => 0x79,
+0x451 => 0x65,
+0x452 => 0x64,
+0x454 => 0x65,
+0x456 => 0x69,
+0x457 => 0x69,
+0x458 => 0x6A,
+0x459 => 0x6C,
+0x45A => 0x6E,
+0x45F => 0x64,
+0x490 => 0x47,
+0x491 => 0x67,
+0x4E8 => 0x4F,
+0x622 => 0x61,
+0x623 => 0x61,
+0x624 => 0x6F,
+0x625 => 0x65,
+0x626 => 0x65,
+0x627 => 0x61,
+0x628 => 0x62,
+0x62A => 0x74,
+0x62B => 0x74,
+0x62C => 0x6A,
+0x62D => 0x68,
+0x62E => 0x6B,
+0x62F => 0x64,
+0x630 => 0x74,
+0x631 => 0x72,
+0x632 => 0x7A,
+0x633 => 0x73,
+0x634 => 0x73,
+0x635 => 0x73,
+0x636 => 0x64,
+0x637 => 0x74,
+0x638 => 0x74,
+0x639 => 0x61,
+0x63A => 0x67,
+0x641 => 0x66,
+0x642 => 0x6B,
+0x643 => 0x6B,
+0x644 => 0x6C,
+0x645 => 0x6D,
+0x646 => 0x6E,
+0x647 => 0x68,
+0x648 => 0x6F,
+0x64A => 0x79,
+0x664 => 0x34,
+0x665 => 0x35,
+0x666 => 0x36,
+0x67E => 0x70,
+0x686 => 0x63,
+0x698 => 0x7A,
+0x6A9 => 0x6B,
+0x6AF => 0x67,
+0x6CC => 0x69,
+0x6F0 => 0x30,
+0x6F1 => 0x31,
+0x6F2 => 0x32,
+0x6F3 => 0x33,
+0x6F4 => 0x34,
+0x6F5 => 0x35,
+0x6F6 => 0x36,
+0x6F7 => 0x37,
+0x6F8 => 0x38,
+0x6F9 => 0x39,
+0x905 => 0x61,
+0x906 => 0x61,
+0x907 => 0x69,
+0x908 => 0x69,
+0x909 => 0x75,
+0x90A => 0x75,
+0x90D => 0x65,
+0x90F => 0x65,
+0x910 => 0x61,
+0x911 => 0x6F,
+0x912 => 0x6F,
+0x913 => 0x6F,
+0x92C => 0x42,
+0x932 => 0x4C,
+0x1000 => 0x6B,
+0x1002 => 0x67,
+0x1005 => 0x73,
+0x1007 => 0x7A,
+0x1009 => 0x75,
+0x100A => 0x69,
+0x100B => 0x74,
+0x100D => 0x64,
+0x1010 => 0x74,
+0x1012 => 0x64,
+0x1014 => 0x6E,
+0x1015 => 0x70,
+0x1017 => 0x62,
+0x1019 => 0x6D,
+0x101A => 0x79,
+0x101C => 0x6C,
+0x101D => 0x77,
+0x101F => 0x68,
+0x1021 => 0x61,
+0x1023 => 0x69,
+0x1027 => 0x65,
+0x102B => 0x61,
+0x102C => 0x61,
+0x102D => 0x6F,
+0x102E => 0x69,
+0x102F => 0x75,
+0x1030 => 0x75,
+0x1031 => 0x65,
+0x1032 => 0x65,
+0x103D => 0x77,
+0x103E => 0x68,
+0x10D0 => 0x61,
+0x10D1 => 0x62,
+0x10D2 => 0x67,
+0x10D3 => 0x64,
+0x10D4 => 0x65,
+0x10D5 => 0x76,
+0x10D6 => 0x7A,
+0x10D7 => 0x74,
+0x10D8 => 0x69,
+0x10D9 => 0x6B,
+0x10DA => 0x6C,
+0x10DB => 0x6D,
+0x10DC => 0x6E,
+0x10DD => 0x6F,
+0x10DE => 0x70,
+0x10DF => 0x7A,
+0x10E0 => 0x72,
+0x10E1 => 0x73,
+0x10E2 => 0x74,
+0x10E3 => 0x75,
+0x10E4 => 0x66,
+0x10E5 => 0x6B,
+0x10E6 => 0x67,
+0x10E7 => 0x71,
+0x10E8 => 0x73,
+0x10E9 => 0x63,
+0x10EA => 0x74,
+0x10EB => 0x64,
+0x10EC => 0x74,
+0x10ED => 0x63,
+0x10EE => 0x6B,
+0x10EF => 0x6A,
+0x10F0 => 0x68,
+0x1D05 => 0x44,
+0x1D06 => 0x44,
+0x1D6D => 0x64,
+0x1D81 => 0x64,
+0x1D91 => 0x64,
+0x1E9E => 0x53,
+0x1EA0 => 0x41,
+0x1EA1 => 0x61,
+0x1EA2 => 0x41,
+0x1EA3 => 0x61,
+0x1EA4 => 0x41,
+0x1EA5 => 0x61,
+0x1EA6 => 0x41,
+0x1EA7 => 0x61,
+0x1EA8 => 0x41,
+0x1EA9 => 0x61,
+0x1EAA => 0x41,
+0x1EAB => 0x61,
+0x1EAC => 0x41,
+0x1EAD => 0x61,
+0x1EAE => 0x41,
+0x1EAF => 0x61,
+0x1EB0 => 0x41,
+0x1EB1 => 0x61,
+0x1EB2 => 0x41,
+0x1EB3 => 0x61,
+0x1EB4 => 0x41,
+0x1EB5 => 0x61,
+0x1EB6 => 0x41,
+0x1EB7 => 0x61,
+0x1EB8 => 0x45,
+0x1EB9 => 0x65,
+0x1EBA => 0x45,
+0x1EBB => 0x65,
+0x1EBC => 0x45,
+0x1EBD => 0x65,
+0x1EBE => 0x45,
+0x1EBF => 0x65,
+0x1EC0 => 0x45,
+0x1EC1 => 0x65,
+0x1EC2 => 0x45,
+0x1EC3 => 0x65,
+0x1EC4 => 0x45,
+0x1EC5 => 0x65,
+0x1EC6 => 0x45,
+0x1EC7 => 0x65,
+0x1EC8 => 0x49,
+0x1EC9 => 0x69,
+0x1ECA => 0x49,
+0x1ECB => 0x69,
+0x1ECC => 0x4F,
+0x1ECD => 0x6F,
+0x1ECE => 0x4F,
+0x1ECF => 0x6F,
+0x1ED0 => 0x4F,
+0x1ED1 => 0x6F,
+0x1ED2 => 0x4F,
+0x1ED3 => 0x6F,
+0x1ED4 => 0x4F,
+0x1ED5 => 0x6F,
+0x1ED6 => 0x4F,
+0x1ED7 => 0x6F,
+0x1ED8 => 0x4F,
+0x1ED9 => 0x6F,
+0x1EDA => 0x4F,
+0x1EDB => 0x6F,
+0x1EDC => 0x4F,
+0x1EDD => 0x6F,
+0x1EDE => 0x4F,
+0x1EDF => 0x6F,
+0x1EE0 => 0x4F,
+0x1EE1 => 0x6F,
+0x1EE2 => 0x4F,
+0x1EE3 => 0x6F,
+0x1EE4 => 0x55,
+0x1EE5 => 0x75,
+0x1EE6 => 0x55,
+0x1EE7 => 0x75,
+0x1EE8 => 0x55,
+0x1EE9 => 0x75,
+0x1EEA => 0x55,
+0x1EEB => 0x75,
+0x1EEC => 0x55,
+0x1EED => 0x75,
+0x1EEE => 0x55,
+0x1EEF => 0x75,
+0x1EF0 => 0x55,
+0x1EF1 => 0x75,
+0x1EF2 => 0x59,
+0x1EF3 => 0x79,
+0x1EF4 => 0x59,
+0x1EF5 => 0x79,
+0x1EF6 => 0x59,
+0x1EF7 => 0x79,
+0x1EF8 => 0x59,
+0x1EF9 => 0x79,
+0x1F00 => 0x61,
+0x1F01 => 0x61,
+0x1F02 => 0x61,
+0x1F03 => 0x61,
+0x1F04 => 0x61,
+0x1F05 => 0x61,
+0x1F06 => 0x61,
+0x1F07 => 0x61,
+0x1F08 => 0x41,
+0x1F09 => 0x41,
+0x1F0A => 0x41,
+0x1F0B => 0x41,
+0x1F0C => 0x41,
+0x1F0D => 0x41,
+0x1F0E => 0x41,
+0x1F0F => 0x41,
+0x1F10 => 0x65,
+0x1F11 => 0x65,
+0x1F12 => 0x65,
+0x1F13 => 0x65,
+0x1F14 => 0x65,
+0x1F15 => 0x65,
+0x1F18 => 0x45,
+0x1F19 => 0x45,
+0x1F1A => 0x45,
+0x1F1B => 0x45,
+0x1F1C => 0x45,
+0x1F1D => 0x45,
+0x1F30 => 0x69,
+0x1F31 => 0x69,
+0x1F32 => 0x69,
+0x1F33 => 0x69,
+0x1F34 => 0x69,
+0x1F35 => 0x69,
+0x1F36 => 0x69,
+0x1F37 => 0x69,
+0x1F38 => 0x49,
+0x1F39 => 0x49,
+0x1F3B => 0x49,
+0x1F3C => 0x49,
+0x1F3D => 0x49,
+0x1F3E => 0x49,
+0x1F3F => 0x49,
+0x1F40 => 0x6F,
+0x1F41 => 0x6F,
+0x1F42 => 0x6F,
+0x1F43 => 0x6F,
+0x1F44 => 0x6F,
+0x1F45 => 0x6F,
+0x1F48 => 0x4F,
+0x1F49 => 0x4F,
+0x1F4A => 0x4F,
+0x1F4B => 0x4F,
+0x1F4C => 0x4F,
+0x1F4D => 0x4F,
+0x1F70 => 0x61,
+0x1F72 => 0x65,
+0x1F76 => 0x69,
+0x1F78 => 0x6F,
+0x1F80 => 0x61,
+0x1F81 => 0x61,
+0x1F82 => 0x61,
+0x1F83 => 0x61,
+0x1F84 => 0x61,
+0x1F85 => 0x61,
+0x1F86 => 0x61,
+0x1F87 => 0x61,
+0x1F88 => 0x41,
+0x1F89 => 0x41,
+0x1F8A => 0x41,
+0x1F8B => 0x41,
+0x1F8C => 0x41,
+0x1F8D => 0x41,
+0x1F8E => 0x41,
+0x1F8F => 0x41,
+0x1FB0 => 0x61,
+0x1FB1 => 0x61,
+0x1FB2 => 0x61,
+0x1FB3 => 0x61,
+0x1FB4 => 0x61,
+0x1FB6 => 0x61,
+0x1FB7 => 0x61,
+0x1FB8 => 0x41,
+0x1FB9 => 0x41,
+0x1FBA => 0x41,
+0x1FBC => 0x41,
+0x1FC8 => 0x45,
+0x1FD0 => 0x69,
+0x1FD1 => 0x69,
+0x1FD2 => 0x69,
+0x1FD6 => 0x69,
+0x1FD7 => 0x69,
+0x1FD8 => 0x49,
+0x1FD9 => 0x49,
+0x1FDA => 0x49,
+0x1FE8 => 0x59,
+0x1FE9 => 0x59,
+0x1FEA => 0x59,
+0x1FF8 => 0x4F,
+0x2000 => 0x20,
+0x2001 => 0x20,
+0x2002 => 0x20,
+0x2003 => 0x20,
+0x2004 => 0x20,
+0x2005 => 0x20,
+0x2006 => 0x20,
+0x2007 => 0x20,
+0x2008 => 0x20,
+0x2009 => 0x20,
+0x200A => 0x20,
+0x202F => 0x20,
+0x205F => 0x20,
+0x2074 => 0x34,
+0x2075 => 0x35,
+0x2076 => 0x36,
+0x2077 => 0x37,
+0x2078 => 0x38,
+0x2079 => 0x39,
+0x2080 => 0x30,
+0x2081 => 0x31,
+0x2082 => 0x32,
+0x2083 => 0x33,
+0x2084 => 0x34,
+0x2085 => 0x35,
+0x2086 => 0x36,
+0x2087 => 0x37,
+0x2088 => 0x38,
+0x2089 => 0x39,
+0x3000 => 0x20,
+];
diff --git a/res/char.php b/res/char.php
deleted file mode 100644
index 2aa41a3..0000000
--- a/res/char.php
+++ /dev/null
@@ -1,259 +0,0 @@
- "\x00",
- 1 => "\x01",
- 2 => "\x02",
- 3 => "\x03",
- 4 => "\x04",
- 5 => "\x05",
- 6 => "\x06",
- 7 => "\x07",
- 8 => "\x08",
- 9 => "\x09",
- 10 => "\x0A",
- 11 => "\x0B",
- 12 => "\x0C",
- 13 => "\x0D",
- 14 => "\x0E",
- 15 => "\x0F",
- 16 => "\x10",
- 17 => "\x11",
- 18 => "\x12",
- 19 => "\x13",
- 20 => "\x14",
- 21 => "\x15",
- 22 => "\x16",
- 23 => "\x17",
- 24 => "\x18",
- 25 => "\x19",
- 26 => "\x1A",
- 27 => "\x1B",
- 28 => "\x1C",
- 29 => "\x1D",
- 30 => "\x1E",
- 31 => "\x1F",
- 32 => "\x20",
- 33 => "\x21",
- 34 => "\x22",
- 35 => "\x23",
- 36 => "\x24",
- 37 => "\x25",
- 38 => "\x26",
- 39 => "\x27",
- 40 => "\x28",
- 41 => "\x29",
- 42 => "\x2A",
- 43 => "\x2B",
- 44 => "\x2C",
- 45 => "\x2D",
- 46 => "\x2E",
- 47 => "\x2F",
- 48 => "\x30",
- 49 => "\x31",
- 50 => "\x32",
- 51 => "\x33",
- 52 => "\x34",
- 53 => "\x35",
- 54 => "\x36",
- 55 => "\x37",
- 56 => "\x38",
- 57 => "\x39",
- 58 => "\x3A",
- 59 => "\x3B",
- 60 => "\x3C",
- 61 => "\x3D",
- 62 => "\x3E",
- 63 => "\x3F",
- 64 => "\x40",
- 65 => "\x41",
- 66 => "\x42",
- 67 => "\x43",
- 68 => "\x44",
- 69 => "\x45",
- 70 => "\x46",
- 71 => "\x47",
- 72 => "\x48",
- 73 => "\x49",
- 74 => "\x4A",
- 75 => "\x4B",
- 76 => "\x4C",
- 77 => "\x4D",
- 78 => "\x4E",
- 79 => "\x4F",
- 80 => "\x50",
- 81 => "\x51",
- 82 => "\x52",
- 83 => "\x53",
- 84 => "\x54",
- 85 => "\x55",
- 86 => "\x56",
- 87 => "\x57",
- 88 => "\x58",
- 89 => "\x59",
- 90 => "\x5A",
- 91 => "\x5B",
- 92 => "\x5C",
- 93 => "\x5D",
- 94 => "\x5E",
- 95 => "\x5F",
- 96 => "\x60",
- 97 => "\x61",
- 98 => "\x62",
- 99 => "\x63",
- 100 => "\x64",
- 101 => "\x65",
- 102 => "\x66",
- 103 => "\x67",
- 104 => "\x68",
- 105 => "\x69",
- 106 => "\x6A",
- 107 => "\x6B",
- 108 => "\x6C",
- 109 => "\x6D",
- 110 => "\x6E",
- 111 => "\x6F",
- 112 => "\x70",
- 113 => "\x71",
- 114 => "\x72",
- 115 => "\x73",
- 116 => "\x74",
- 117 => "\x75",
- 118 => "\x76",
- 119 => "\x77",
- 120 => "\x78",
- 121 => "\x79",
- 122 => "\x7A",
- 123 => "\x7B",
- 124 => "\x7C",
- 125 => "\x7D",
- 126 => "\x7E",
- 127 => "\x7F",
- 128 => "\x80",
- 129 => "\x81",
- 130 => "\x82",
- 131 => "\x83",
- 132 => "\x84",
- 133 => "\x85",
- 134 => "\x86",
- 135 => "\x87",
- 136 => "\x88",
- 137 => "\x89",
- 138 => "\x8A",
- 139 => "\x8B",
- 140 => "\x8C",
- 141 => "\x8D",
- 142 => "\x8E",
- 143 => "\x8F",
- 144 => "\x90",
- 145 => "\x91",
- 146 => "\x92",
- 147 => "\x93",
- 148 => "\x94",
- 149 => "\x95",
- 150 => "\x96",
- 151 => "\x97",
- 152 => "\x98",
- 153 => "\x99",
- 154 => "\x9A",
- 155 => "\x9B",
- 156 => "\x9C",
- 157 => "\x9D",
- 158 => "\x9E",
- 159 => "\x9F",
- 160 => "\xA0",
- 161 => "\xA1",
- 162 => "\xA2",
- 163 => "\xA3",
- 164 => "\xA4",
- 165 => "\xA5",
- 166 => "\xA6",
- 167 => "\xA7",
- 168 => "\xA8",
- 169 => "\xA9",
- 170 => "\xAA",
- 171 => "\xAB",
- 172 => "\xAC",
- 173 => "\xAD",
- 174 => "\xAE",
- 175 => "\xAF",
- 176 => "\xB0",
- 177 => "\xB1",
- 178 => "\xB2",
- 179 => "\xB3",
- 180 => "\xB4",
- 181 => "\xB5",
- 182 => "\xB6",
- 183 => "\xB7",
- 184 => "\xB8",
- 185 => "\xB9",
- 186 => "\xBA",
- 187 => "\xBB",
- 188 => "\xBC",
- 189 => "\xBD",
- 190 => "\xBE",
- 191 => "\xBF",
- 192 => "\xC0",
- 193 => "\xC1",
- 194 => "\xC2",
- 195 => "\xC3",
- 196 => "\xC4",
- 197 => "\xC5",
- 198 => "\xC6",
- 199 => "\xC7",
- 200 => "\xC8",
- 201 => "\xC9",
- 202 => "\xCA",
- 203 => "\xCB",
- 204 => "\xCC",
- 205 => "\xCD",
- 206 => "\xCE",
- 207 => "\xCF",
- 208 => "\xD0",
- 209 => "\xD1",
- 210 => "\xD2",
- 211 => "\xD3",
- 212 => "\xD4",
- 213 => "\xD5",
- 214 => "\xD6",
- 215 => "\xD7",
- 216 => "\xD8",
- 217 => "\xD9",
- 218 => "\xDA",
- 219 => "\xDB",
- 220 => "\xDC",
- 221 => "\xDD",
- 222 => "\xDE",
- 223 => "\xDF",
- 224 => "\xE0",
- 225 => "\xE1",
- 226 => "\xE2",
- 227 => "\xE3",
- 228 => "\xE4",
- 229 => "\xE5",
- 230 => "\xE6",
- 231 => "\xE7",
- 232 => "\xE8",
- 233 => "\xE9",
- 234 => "\xEA",
- 235 => "\xEB",
- 236 => "\xEC",
- 237 => "\xED",
- 238 => "\xEE",
- 239 => "\xEF",
- 240 => "\xF0",
- 241 => "\xF1",
- 242 => "\xF2",
- 243 => "\xF3",
- 244 => "\xF4",
- 245 => "\xF5",
- 246 => "\xF6",
- 247 => "\xF7",
- 248 => "\xF8",
- 249 => "\xF9",
- 250 => "\xFA",
- 251 => "\xFB",
- 252 => "\xFC",
- 253 => "\xFD",
- 254 => "\xFE",
- 255 => "\xFF",
-);
diff --git a/res/fold.php b/res/fold.php
new file mode 100644
index 0000000..e93f981
--- /dev/null
+++ b/res/fold.php
@@ -0,0 +1,1417 @@
+ 0x61,
+0x42 => 0x62,
+0x43 => 0x63,
+0x44 => 0x64,
+0x45 => 0x65,
+0x46 => 0x66,
+0x47 => 0x67,
+0x48 => 0x68,
+0x49 => 0x69,
+0x4A => 0x6A,
+0x4B => 0x6B,
+0x4C => 0x6C,
+0x4D => 0x6D,
+0x4E => 0x6E,
+0x4F => 0x6F,
+0x50 => 0x70,
+0x51 => 0x71,
+0x52 => 0x72,
+0x53 => 0x73,
+0x54 => 0x74,
+0x55 => 0x75,
+0x56 => 0x76,
+0x57 => 0x77,
+0x58 => 0x78,
+0x59 => 0x79,
+0x5A => 0x7A,
+0xB5 => 0x3BC,
+0xC0 => 0xE0,
+0xC1 => 0xE1,
+0xC2 => 0xE2,
+0xC3 => 0xE3,
+0xC4 => 0xE4,
+0xC5 => 0xE5,
+0xC6 => 0xE6,
+0xC7 => 0xE7,
+0xC8 => 0xE8,
+0xC9 => 0xE9,
+0xCA => 0xEA,
+0xCB => 0xEB,
+0xCC => 0xEC,
+0xCD => 0xED,
+0xCE => 0xEE,
+0xCF => 0xEF,
+0xD0 => 0xF0,
+0xD1 => 0xF1,
+0xD2 => 0xF2,
+0xD3 => 0xF3,
+0xD4 => 0xF4,
+0xD5 => 0xF5,
+0xD6 => 0xF6,
+0xD8 => 0xF8,
+0xD9 => 0xF9,
+0xDA => 0xFA,
+0xDB => 0xFB,
+0xDC => 0xFC,
+0xDD => 0xFD,
+0xDE => 0xFE,
+0x100 => 0x101,
+0x102 => 0x103,
+0x104 => 0x105,
+0x106 => 0x107,
+0x108 => 0x109,
+0x10A => 0x10B,
+0x10C => 0x10D,
+0x10E => 0x10F,
+0x110 => 0x111,
+0x112 => 0x113,
+0x114 => 0x115,
+0x116 => 0x117,
+0x118 => 0x119,
+0x11A => 0x11B,
+0x11C => 0x11D,
+0x11E => 0x11F,
+0x120 => 0x121,
+0x122 => 0x123,
+0x124 => 0x125,
+0x126 => 0x127,
+0x128 => 0x129,
+0x12A => 0x12B,
+0x12C => 0x12D,
+0x12E => 0x12F,
+0x132 => 0x133,
+0x134 => 0x135,
+0x136 => 0x137,
+0x139 => 0x13A,
+0x13B => 0x13C,
+0x13D => 0x13E,
+0x13F => 0x140,
+0x141 => 0x142,
+0x143 => 0x144,
+0x145 => 0x146,
+0x147 => 0x148,
+0x14A => 0x14B,
+0x14C => 0x14D,
+0x14E => 0x14F,
+0x150 => 0x151,
+0x152 => 0x153,
+0x154 => 0x155,
+0x156 => 0x157,
+0x158 => 0x159,
+0x15A => 0x15B,
+0x15C => 0x15D,
+0x15E => 0x15F,
+0x160 => 0x161,
+0x162 => 0x163,
+0x164 => 0x165,
+0x166 => 0x167,
+0x168 => 0x169,
+0x16A => 0x16B,
+0x16C => 0x16D,
+0x16E => 0x16F,
+0x170 => 0x171,
+0x172 => 0x173,
+0x174 => 0x175,
+0x176 => 0x177,
+0x178 => 0xFF,
+0x179 => 0x17A,
+0x17B => 0x17C,
+0x17D => 0x17E,
+0x17F => 0x73,
+0x181 => 0x253,
+0x182 => 0x183,
+0x184 => 0x185,
+0x186 => 0x254,
+0x187 => 0x188,
+0x189 => 0x256,
+0x18A => 0x257,
+0x18B => 0x18C,
+0x18E => 0x1DD,
+0x18F => 0x259,
+0x190 => 0x25B,
+0x191 => 0x192,
+0x193 => 0x260,
+0x194 => 0x263,
+0x196 => 0x269,
+0x197 => 0x268,
+0x198 => 0x199,
+0x19C => 0x26F,
+0x19D => 0x272,
+0x19F => 0x275,
+0x1A0 => 0x1A1,
+0x1A2 => 0x1A3,
+0x1A4 => 0x1A5,
+0x1A6 => 0x280,
+0x1A7 => 0x1A8,
+0x1A9 => 0x283,
+0x1AC => 0x1AD,
+0x1AE => 0x288,
+0x1AF => 0x1B0,
+0x1B1 => 0x28A,
+0x1B2 => 0x28B,
+0x1B3 => 0x1B4,
+0x1B5 => 0x1B6,
+0x1B7 => 0x292,
+0x1B8 => 0x1B9,
+0x1BC => 0x1BD,
+0x1C4 => 0x1C6,
+0x1C5 => 0x1C6,
+0x1C7 => 0x1C9,
+0x1C8 => 0x1C9,
+0x1CA => 0x1CC,
+0x1CB => 0x1CC,
+0x1CD => 0x1CE,
+0x1CF => 0x1D0,
+0x1D1 => 0x1D2,
+0x1D3 => 0x1D4,
+0x1D5 => 0x1D6,
+0x1D7 => 0x1D8,
+0x1D9 => 0x1DA,
+0x1DB => 0x1DC,
+0x1DE => 0x1DF,
+0x1E0 => 0x1E1,
+0x1E2 => 0x1E3,
+0x1E4 => 0x1E5,
+0x1E6 => 0x1E7,
+0x1E8 => 0x1E9,
+0x1EA => 0x1EB,
+0x1EC => 0x1ED,
+0x1EE => 0x1EF,
+0x1F1 => 0x1F3,
+0x1F2 => 0x1F3,
+0x1F4 => 0x1F5,
+0x1F6 => 0x195,
+0x1F7 => 0x1BF,
+0x1F8 => 0x1F9,
+0x1FA => 0x1FB,
+0x1FC => 0x1FD,
+0x1FE => 0x1FF,
+0x200 => 0x201,
+0x202 => 0x203,
+0x204 => 0x205,
+0x206 => 0x207,
+0x208 => 0x209,
+0x20A => 0x20B,
+0x20C => 0x20D,
+0x20E => 0x20F,
+0x210 => 0x211,
+0x212 => 0x213,
+0x214 => 0x215,
+0x216 => 0x217,
+0x218 => 0x219,
+0x21A => 0x21B,
+0x21C => 0x21D,
+0x21E => 0x21F,
+0x220 => 0x19E,
+0x222 => 0x223,
+0x224 => 0x225,
+0x226 => 0x227,
+0x228 => 0x229,
+0x22A => 0x22B,
+0x22C => 0x22D,
+0x22E => 0x22F,
+0x230 => 0x231,
+0x232 => 0x233,
+0x23A => 0x2C65,
+0x23B => 0x23C,
+0x23D => 0x19A,
+0x23E => 0x2C66,
+0x241 => 0x242,
+0x243 => 0x180,
+0x244 => 0x289,
+0x245 => 0x28C,
+0x246 => 0x247,
+0x248 => 0x249,
+0x24A => 0x24B,
+0x24C => 0x24D,
+0x24E => 0x24F,
+0x345 => 0x3B9,
+0x370 => 0x371,
+0x372 => 0x373,
+0x376 => 0x377,
+0x37F => 0x3F3,
+0x386 => 0x3AC,
+0x388 => 0x3AD,
+0x389 => 0x3AE,
+0x38A => 0x3AF,
+0x38C => 0x3CC,
+0x38E => 0x3CD,
+0x38F => 0x3CE,
+0x391 => 0x3B1,
+0x392 => 0x3B2,
+0x393 => 0x3B3,
+0x394 => 0x3B4,
+0x395 => 0x3B5,
+0x396 => 0x3B6,
+0x397 => 0x3B7,
+0x398 => 0x3B8,
+0x399 => 0x3B9,
+0x39A => 0x3BA,
+0x39B => 0x3BB,
+0x39C => 0x3BC,
+0x39D => 0x3BD,
+0x39E => 0x3BE,
+0x39F => 0x3BF,
+0x3A0 => 0x3C0,
+0x3A1 => 0x3C1,
+0x3A3 => 0x3C3,
+0x3A4 => 0x3C4,
+0x3A5 => 0x3C5,
+0x3A6 => 0x3C6,
+0x3A7 => 0x3C7,
+0x3A8 => 0x3C8,
+0x3A9 => 0x3C9,
+0x3AA => 0x3CA,
+0x3AB => 0x3CB,
+0x3C2 => 0x3C3,
+0x3CF => 0x3D7,
+0x3D0 => 0x3B2,
+0x3D1 => 0x3B8,
+0x3D5 => 0x3C6,
+0x3D6 => 0x3C0,
+0x3D8 => 0x3D9,
+0x3DA => 0x3DB,
+0x3DC => 0x3DD,
+0x3DE => 0x3DF,
+0x3E0 => 0x3E1,
+0x3E2 => 0x3E3,
+0x3E4 => 0x3E5,
+0x3E6 => 0x3E7,
+0x3E8 => 0x3E9,
+0x3EA => 0x3EB,
+0x3EC => 0x3ED,
+0x3EE => 0x3EF,
+0x3F0 => 0x3BA,
+0x3F1 => 0x3C1,
+0x3F4 => 0x3B8,
+0x3F5 => 0x3B5,
+0x3F7 => 0x3F8,
+0x3F9 => 0x3F2,
+0x3FA => 0x3FB,
+0x3FD => 0x37B,
+0x3FE => 0x37C,
+0x3FF => 0x37D,
+0x400 => 0x450,
+0x401 => 0x451,
+0x402 => 0x452,
+0x403 => 0x453,
+0x404 => 0x454,
+0x405 => 0x455,
+0x406 => 0x456,
+0x407 => 0x457,
+0x408 => 0x458,
+0x409 => 0x459,
+0x40A => 0x45A,
+0x40B => 0x45B,
+0x40C => 0x45C,
+0x40D => 0x45D,
+0x40E => 0x45E,
+0x40F => 0x45F,
+0x410 => 0x430,
+0x411 => 0x431,
+0x412 => 0x432,
+0x413 => 0x433,
+0x414 => 0x434,
+0x415 => 0x435,
+0x416 => 0x436,
+0x417 => 0x437,
+0x418 => 0x438,
+0x419 => 0x439,
+0x41A => 0x43A,
+0x41B => 0x43B,
+0x41C => 0x43C,
+0x41D => 0x43D,
+0x41E => 0x43E,
+0x41F => 0x43F,
+0x420 => 0x440,
+0x421 => 0x441,
+0x422 => 0x442,
+0x423 => 0x443,
+0x424 => 0x444,
+0x425 => 0x445,
+0x426 => 0x446,
+0x427 => 0x447,
+0x428 => 0x448,
+0x429 => 0x449,
+0x42A => 0x44A,
+0x42B => 0x44B,
+0x42C => 0x44C,
+0x42D => 0x44D,
+0x42E => 0x44E,
+0x42F => 0x44F,
+0x460 => 0x461,
+0x462 => 0x463,
+0x464 => 0x465,
+0x466 => 0x467,
+0x468 => 0x469,
+0x46A => 0x46B,
+0x46C => 0x46D,
+0x46E => 0x46F,
+0x470 => 0x471,
+0x472 => 0x473,
+0x474 => 0x475,
+0x476 => 0x477,
+0x478 => 0x479,
+0x47A => 0x47B,
+0x47C => 0x47D,
+0x47E => 0x47F,
+0x480 => 0x481,
+0x48A => 0x48B,
+0x48C => 0x48D,
+0x48E => 0x48F,
+0x490 => 0x491,
+0x492 => 0x493,
+0x494 => 0x495,
+0x496 => 0x497,
+0x498 => 0x499,
+0x49A => 0x49B,
+0x49C => 0x49D,
+0x49E => 0x49F,
+0x4A0 => 0x4A1,
+0x4A2 => 0x4A3,
+0x4A4 => 0x4A5,
+0x4A6 => 0x4A7,
+0x4A8 => 0x4A9,
+0x4AA => 0x4AB,
+0x4AC => 0x4AD,
+0x4AE => 0x4AF,
+0x4B0 => 0x4B1,
+0x4B2 => 0x4B3,
+0x4B4 => 0x4B5,
+0x4B6 => 0x4B7,
+0x4B8 => 0x4B9,
+0x4BA => 0x4BB,
+0x4BC => 0x4BD,
+0x4BE => 0x4BF,
+0x4C0 => 0x4CF,
+0x4C1 => 0x4C2,
+0x4C3 => 0x4C4,
+0x4C5 => 0x4C6,
+0x4C7 => 0x4C8,
+0x4C9 => 0x4CA,
+0x4CB => 0x4CC,
+0x4CD => 0x4CE,
+0x4D0 => 0x4D1,
+0x4D2 => 0x4D3,
+0x4D4 => 0x4D5,
+0x4D6 => 0x4D7,
+0x4D8 => 0x4D9,
+0x4DA => 0x4DB,
+0x4DC => 0x4DD,
+0x4DE => 0x4DF,
+0x4E0 => 0x4E1,
+0x4E2 => 0x4E3,
+0x4E4 => 0x4E5,
+0x4E6 => 0x4E7,
+0x4E8 => 0x4E9,
+0x4EA => 0x4EB,
+0x4EC => 0x4ED,
+0x4EE => 0x4EF,
+0x4F0 => 0x4F1,
+0x4F2 => 0x4F3,
+0x4F4 => 0x4F5,
+0x4F6 => 0x4F7,
+0x4F8 => 0x4F9,
+0x4FA => 0x4FB,
+0x4FC => 0x4FD,
+0x4FE => 0x4FF,
+0x500 => 0x501,
+0x502 => 0x503,
+0x504 => 0x505,
+0x506 => 0x507,
+0x508 => 0x509,
+0x50A => 0x50B,
+0x50C => 0x50D,
+0x50E => 0x50F,
+0x510 => 0x511,
+0x512 => 0x513,
+0x514 => 0x515,
+0x516 => 0x517,
+0x518 => 0x519,
+0x51A => 0x51B,
+0x51C => 0x51D,
+0x51E => 0x51F,
+0x520 => 0x521,
+0x522 => 0x523,
+0x524 => 0x525,
+0x526 => 0x527,
+0x528 => 0x529,
+0x52A => 0x52B,
+0x52C => 0x52D,
+0x52E => 0x52F,
+0x531 => 0x561,
+0x532 => 0x562,
+0x533 => 0x563,
+0x534 => 0x564,
+0x535 => 0x565,
+0x536 => 0x566,
+0x537 => 0x567,
+0x538 => 0x568,
+0x539 => 0x569,
+0x53A => 0x56A,
+0x53B => 0x56B,
+0x53C => 0x56C,
+0x53D => 0x56D,
+0x53E => 0x56E,
+0x53F => 0x56F,
+0x540 => 0x570,
+0x541 => 0x571,
+0x542 => 0x572,
+0x543 => 0x573,
+0x544 => 0x574,
+0x545 => 0x575,
+0x546 => 0x576,
+0x547 => 0x577,
+0x548 => 0x578,
+0x549 => 0x579,
+0x54A => 0x57A,
+0x54B => 0x57B,
+0x54C => 0x57C,
+0x54D => 0x57D,
+0x54E => 0x57E,
+0x54F => 0x57F,
+0x550 => 0x580,
+0x551 => 0x581,
+0x552 => 0x582,
+0x553 => 0x583,
+0x554 => 0x584,
+0x555 => 0x585,
+0x556 => 0x586,
+0x10A0 => 0x2D00,
+0x10A1 => 0x2D01,
+0x10A2 => 0x2D02,
+0x10A3 => 0x2D03,
+0x10A4 => 0x2D04,
+0x10A5 => 0x2D05,
+0x10A6 => 0x2D06,
+0x10A7 => 0x2D07,
+0x10A8 => 0x2D08,
+0x10A9 => 0x2D09,
+0x10AA => 0x2D0A,
+0x10AB => 0x2D0B,
+0x10AC => 0x2D0C,
+0x10AD => 0x2D0D,
+0x10AE => 0x2D0E,
+0x10AF => 0x2D0F,
+0x10B0 => 0x2D10,
+0x10B1 => 0x2D11,
+0x10B2 => 0x2D12,
+0x10B3 => 0x2D13,
+0x10B4 => 0x2D14,
+0x10B5 => 0x2D15,
+0x10B6 => 0x2D16,
+0x10B7 => 0x2D17,
+0x10B8 => 0x2D18,
+0x10B9 => 0x2D19,
+0x10BA => 0x2D1A,
+0x10BB => 0x2D1B,
+0x10BC => 0x2D1C,
+0x10BD => 0x2D1D,
+0x10BE => 0x2D1E,
+0x10BF => 0x2D1F,
+0x10C0 => 0x2D20,
+0x10C1 => 0x2D21,
+0x10C2 => 0x2D22,
+0x10C3 => 0x2D23,
+0x10C4 => 0x2D24,
+0x10C5 => 0x2D25,
+0x10C7 => 0x2D27,
+0x10CD => 0x2D2D,
+0x13F8 => 0x13F0,
+0x13F9 => 0x13F1,
+0x13FA => 0x13F2,
+0x13FB => 0x13F3,
+0x13FC => 0x13F4,
+0x13FD => 0x13F5,
+0x1C80 => 0x432,
+0x1C81 => 0x434,
+0x1C82 => 0x43E,
+0x1C83 => 0x441,
+0x1C84 => 0x442,
+0x1C85 => 0x442,
+0x1C86 => 0x44A,
+0x1C87 => 0x463,
+0x1C88 => 0xA64B,
+0x1C90 => 0x10D0,
+0x1C91 => 0x10D1,
+0x1C92 => 0x10D2,
+0x1C93 => 0x10D3,
+0x1C94 => 0x10D4,
+0x1C95 => 0x10D5,
+0x1C96 => 0x10D6,
+0x1C97 => 0x10D7,
+0x1C98 => 0x10D8,
+0x1C99 => 0x10D9,
+0x1C9A => 0x10DA,
+0x1C9B => 0x10DB,
+0x1C9C => 0x10DC,
+0x1C9D => 0x10DD,
+0x1C9E => 0x10DE,
+0x1C9F => 0x10DF,
+0x1CA0 => 0x10E0,
+0x1CA1 => 0x10E1,
+0x1CA2 => 0x10E2,
+0x1CA3 => 0x10E3,
+0x1CA4 => 0x10E4,
+0x1CA5 => 0x10E5,
+0x1CA6 => 0x10E6,
+0x1CA7 => 0x10E7,
+0x1CA8 => 0x10E8,
+0x1CA9 => 0x10E9,
+0x1CAA => 0x10EA,
+0x1CAB => 0x10EB,
+0x1CAC => 0x10EC,
+0x1CAD => 0x10ED,
+0x1CAE => 0x10EE,
+0x1CAF => 0x10EF,
+0x1CB0 => 0x10F0,
+0x1CB1 => 0x10F1,
+0x1CB2 => 0x10F2,
+0x1CB3 => 0x10F3,
+0x1CB4 => 0x10F4,
+0x1CB5 => 0x10F5,
+0x1CB6 => 0x10F6,
+0x1CB7 => 0x10F7,
+0x1CB8 => 0x10F8,
+0x1CB9 => 0x10F9,
+0x1CBA => 0x10FA,
+0x1CBD => 0x10FD,
+0x1CBE => 0x10FE,
+0x1CBF => 0x10FF,
+0x1E00 => 0x1E01,
+0x1E02 => 0x1E03,
+0x1E04 => 0x1E05,
+0x1E06 => 0x1E07,
+0x1E08 => 0x1E09,
+0x1E0A => 0x1E0B,
+0x1E0C => 0x1E0D,
+0x1E0E => 0x1E0F,
+0x1E10 => 0x1E11,
+0x1E12 => 0x1E13,
+0x1E14 => 0x1E15,
+0x1E16 => 0x1E17,
+0x1E18 => 0x1E19,
+0x1E1A => 0x1E1B,
+0x1E1C => 0x1E1D,
+0x1E1E => 0x1E1F,
+0x1E20 => 0x1E21,
+0x1E22 => 0x1E23,
+0x1E24 => 0x1E25,
+0x1E26 => 0x1E27,
+0x1E28 => 0x1E29,
+0x1E2A => 0x1E2B,
+0x1E2C => 0x1E2D,
+0x1E2E => 0x1E2F,
+0x1E30 => 0x1E31,
+0x1E32 => 0x1E33,
+0x1E34 => 0x1E35,
+0x1E36 => 0x1E37,
+0x1E38 => 0x1E39,
+0x1E3A => 0x1E3B,
+0x1E3C => 0x1E3D,
+0x1E3E => 0x1E3F,
+0x1E40 => 0x1E41,
+0x1E42 => 0x1E43,
+0x1E44 => 0x1E45,
+0x1E46 => 0x1E47,
+0x1E48 => 0x1E49,
+0x1E4A => 0x1E4B,
+0x1E4C => 0x1E4D,
+0x1E4E => 0x1E4F,
+0x1E50 => 0x1E51,
+0x1E52 => 0x1E53,
+0x1E54 => 0x1E55,
+0x1E56 => 0x1E57,
+0x1E58 => 0x1E59,
+0x1E5A => 0x1E5B,
+0x1E5C => 0x1E5D,
+0x1E5E => 0x1E5F,
+0x1E60 => 0x1E61,
+0x1E62 => 0x1E63,
+0x1E64 => 0x1E65,
+0x1E66 => 0x1E67,
+0x1E68 => 0x1E69,
+0x1E6A => 0x1E6B,
+0x1E6C => 0x1E6D,
+0x1E6E => 0x1E6F,
+0x1E70 => 0x1E71,
+0x1E72 => 0x1E73,
+0x1E74 => 0x1E75,
+0x1E76 => 0x1E77,
+0x1E78 => 0x1E79,
+0x1E7A => 0x1E7B,
+0x1E7C => 0x1E7D,
+0x1E7E => 0x1E7F,
+0x1E80 => 0x1E81,
+0x1E82 => 0x1E83,
+0x1E84 => 0x1E85,
+0x1E86 => 0x1E87,
+0x1E88 => 0x1E89,
+0x1E8A => 0x1E8B,
+0x1E8C => 0x1E8D,
+0x1E8E => 0x1E8F,
+0x1E90 => 0x1E91,
+0x1E92 => 0x1E93,
+0x1E94 => 0x1E95,
+0x1E9B => 0x1E61,
+0x1E9E => 0xDF,
+0x1EA0 => 0x1EA1,
+0x1EA2 => 0x1EA3,
+0x1EA4 => 0x1EA5,
+0x1EA6 => 0x1EA7,
+0x1EA8 => 0x1EA9,
+0x1EAA => 0x1EAB,
+0x1EAC => 0x1EAD,
+0x1EAE => 0x1EAF,
+0x1EB0 => 0x1EB1,
+0x1EB2 => 0x1EB3,
+0x1EB4 => 0x1EB5,
+0x1EB6 => 0x1EB7,
+0x1EB8 => 0x1EB9,
+0x1EBA => 0x1EBB,
+0x1EBC => 0x1EBD,
+0x1EBE => 0x1EBF,
+0x1EC0 => 0x1EC1,
+0x1EC2 => 0x1EC3,
+0x1EC4 => 0x1EC5,
+0x1EC6 => 0x1EC7,
+0x1EC8 => 0x1EC9,
+0x1ECA => 0x1ECB,
+0x1ECC => 0x1ECD,
+0x1ECE => 0x1ECF,
+0x1ED0 => 0x1ED1,
+0x1ED2 => 0x1ED3,
+0x1ED4 => 0x1ED5,
+0x1ED6 => 0x1ED7,
+0x1ED8 => 0x1ED9,
+0x1EDA => 0x1EDB,
+0x1EDC => 0x1EDD,
+0x1EDE => 0x1EDF,
+0x1EE0 => 0x1EE1,
+0x1EE2 => 0x1EE3,
+0x1EE4 => 0x1EE5,
+0x1EE6 => 0x1EE7,
+0x1EE8 => 0x1EE9,
+0x1EEA => 0x1EEB,
+0x1EEC => 0x1EED,
+0x1EEE => 0x1EEF,
+0x1EF0 => 0x1EF1,
+0x1EF2 => 0x1EF3,
+0x1EF4 => 0x1EF5,
+0x1EF6 => 0x1EF7,
+0x1EF8 => 0x1EF9,
+0x1EFA => 0x1EFB,
+0x1EFC => 0x1EFD,
+0x1EFE => 0x1EFF,
+0x1F08 => 0x1F00,
+0x1F09 => 0x1F01,
+0x1F0A => 0x1F02,
+0x1F0B => 0x1F03,
+0x1F0C => 0x1F04,
+0x1F0D => 0x1F05,
+0x1F0E => 0x1F06,
+0x1F0F => 0x1F07,
+0x1F18 => 0x1F10,
+0x1F19 => 0x1F11,
+0x1F1A => 0x1F12,
+0x1F1B => 0x1F13,
+0x1F1C => 0x1F14,
+0x1F1D => 0x1F15,
+0x1F28 => 0x1F20,
+0x1F29 => 0x1F21,
+0x1F2A => 0x1F22,
+0x1F2B => 0x1F23,
+0x1F2C => 0x1F24,
+0x1F2D => 0x1F25,
+0x1F2E => 0x1F26,
+0x1F2F => 0x1F27,
+0x1F38 => 0x1F30,
+0x1F39 => 0x1F31,
+0x1F3A => 0x1F32,
+0x1F3B => 0x1F33,
+0x1F3C => 0x1F34,
+0x1F3D => 0x1F35,
+0x1F3E => 0x1F36,
+0x1F3F => 0x1F37,
+0x1F48 => 0x1F40,
+0x1F49 => 0x1F41,
+0x1F4A => 0x1F42,
+0x1F4B => 0x1F43,
+0x1F4C => 0x1F44,
+0x1F4D => 0x1F45,
+0x1F59 => 0x1F51,
+0x1F5B => 0x1F53,
+0x1F5D => 0x1F55,
+0x1F5F => 0x1F57,
+0x1F68 => 0x1F60,
+0x1F69 => 0x1F61,
+0x1F6A => 0x1F62,
+0x1F6B => 0x1F63,
+0x1F6C => 0x1F64,
+0x1F6D => 0x1F65,
+0x1F6E => 0x1F66,
+0x1F6F => 0x1F67,
+0x1F88 => 0x1F80,
+0x1F89 => 0x1F81,
+0x1F8A => 0x1F82,
+0x1F8B => 0x1F83,
+0x1F8C => 0x1F84,
+0x1F8D => 0x1F85,
+0x1F8E => 0x1F86,
+0x1F8F => 0x1F87,
+0x1F98 => 0x1F90,
+0x1F99 => 0x1F91,
+0x1F9A => 0x1F92,
+0x1F9B => 0x1F93,
+0x1F9C => 0x1F94,
+0x1F9D => 0x1F95,
+0x1F9E => 0x1F96,
+0x1F9F => 0x1F97,
+0x1FA8 => 0x1FA0,
+0x1FA9 => 0x1FA1,
+0x1FAA => 0x1FA2,
+0x1FAB => 0x1FA3,
+0x1FAC => 0x1FA4,
+0x1FAD => 0x1FA5,
+0x1FAE => 0x1FA6,
+0x1FAF => 0x1FA7,
+0x1FB8 => 0x1FB0,
+0x1FB9 => 0x1FB1,
+0x1FBA => 0x1F70,
+0x1FBB => 0x1F71,
+0x1FBC => 0x1FB3,
+0x1FBE => 0x3B9,
+0x1FC8 => 0x1F72,
+0x1FC9 => 0x1F73,
+0x1FCA => 0x1F74,
+0x1FCB => 0x1F75,
+0x1FCC => 0x1FC3,
+0x1FD8 => 0x1FD0,
+0x1FD9 => 0x1FD1,
+0x1FDA => 0x1F76,
+0x1FDB => 0x1F77,
+0x1FE8 => 0x1FE0,
+0x1FE9 => 0x1FE1,
+0x1FEA => 0x1F7A,
+0x1FEB => 0x1F7B,
+0x1FEC => 0x1FE5,
+0x1FF8 => 0x1F78,
+0x1FF9 => 0x1F79,
+0x1FFA => 0x1F7C,
+0x1FFB => 0x1F7D,
+0x1FFC => 0x1FF3,
+0x2126 => 0x3C9,
+0x212A => 0x6B,
+0x212B => 0xE5,
+0x2132 => 0x214E,
+0x2160 => 0x2170,
+0x2161 => 0x2171,
+0x2162 => 0x2172,
+0x2163 => 0x2173,
+0x2164 => 0x2174,
+0x2165 => 0x2175,
+0x2166 => 0x2176,
+0x2167 => 0x2177,
+0x2168 => 0x2178,
+0x2169 => 0x2179,
+0x216A => 0x217A,
+0x216B => 0x217B,
+0x216C => 0x217C,
+0x216D => 0x217D,
+0x216E => 0x217E,
+0x216F => 0x217F,
+0x2183 => 0x2184,
+0x24B6 => 0x24D0,
+0x24B7 => 0x24D1,
+0x24B8 => 0x24D2,
+0x24B9 => 0x24D3,
+0x24BA => 0x24D4,
+0x24BB => 0x24D5,
+0x24BC => 0x24D6,
+0x24BD => 0x24D7,
+0x24BE => 0x24D8,
+0x24BF => 0x24D9,
+0x24C0 => 0x24DA,
+0x24C1 => 0x24DB,
+0x24C2 => 0x24DC,
+0x24C3 => 0x24DD,
+0x24C4 => 0x24DE,
+0x24C5 => 0x24DF,
+0x24C6 => 0x24E0,
+0x24C7 => 0x24E1,
+0x24C8 => 0x24E2,
+0x24C9 => 0x24E3,
+0x24CA => 0x24E4,
+0x24CB => 0x24E5,
+0x24CC => 0x24E6,
+0x24CD => 0x24E7,
+0x24CE => 0x24E8,
+0x24CF => 0x24E9,
+0x2C00 => 0x2C30,
+0x2C01 => 0x2C31,
+0x2C02 => 0x2C32,
+0x2C03 => 0x2C33,
+0x2C04 => 0x2C34,
+0x2C05 => 0x2C35,
+0x2C06 => 0x2C36,
+0x2C07 => 0x2C37,
+0x2C08 => 0x2C38,
+0x2C09 => 0x2C39,
+0x2C0A => 0x2C3A,
+0x2C0B => 0x2C3B,
+0x2C0C => 0x2C3C,
+0x2C0D => 0x2C3D,
+0x2C0E => 0x2C3E,
+0x2C0F => 0x2C3F,
+0x2C10 => 0x2C40,
+0x2C11 => 0x2C41,
+0x2C12 => 0x2C42,
+0x2C13 => 0x2C43,
+0x2C14 => 0x2C44,
+0x2C15 => 0x2C45,
+0x2C16 => 0x2C46,
+0x2C17 => 0x2C47,
+0x2C18 => 0x2C48,
+0x2C19 => 0x2C49,
+0x2C1A => 0x2C4A,
+0x2C1B => 0x2C4B,
+0x2C1C => 0x2C4C,
+0x2C1D => 0x2C4D,
+0x2C1E => 0x2C4E,
+0x2C1F => 0x2C4F,
+0x2C20 => 0x2C50,
+0x2C21 => 0x2C51,
+0x2C22 => 0x2C52,
+0x2C23 => 0x2C53,
+0x2C24 => 0x2C54,
+0x2C25 => 0x2C55,
+0x2C26 => 0x2C56,
+0x2C27 => 0x2C57,
+0x2C28 => 0x2C58,
+0x2C29 => 0x2C59,
+0x2C2A => 0x2C5A,
+0x2C2B => 0x2C5B,
+0x2C2C => 0x2C5C,
+0x2C2D => 0x2C5D,
+0x2C2E => 0x2C5E,
+0x2C60 => 0x2C61,
+0x2C62 => 0x26B,
+0x2C63 => 0x1D7D,
+0x2C64 => 0x27D,
+0x2C67 => 0x2C68,
+0x2C69 => 0x2C6A,
+0x2C6B => 0x2C6C,
+0x2C6D => 0x251,
+0x2C6E => 0x271,
+0x2C6F => 0x250,
+0x2C70 => 0x252,
+0x2C72 => 0x2C73,
+0x2C75 => 0x2C76,
+0x2C7E => 0x23F,
+0x2C7F => 0x240,
+0x2C80 => 0x2C81,
+0x2C82 => 0x2C83,
+0x2C84 => 0x2C85,
+0x2C86 => 0x2C87,
+0x2C88 => 0x2C89,
+0x2C8A => 0x2C8B,
+0x2C8C => 0x2C8D,
+0x2C8E => 0x2C8F,
+0x2C90 => 0x2C91,
+0x2C92 => 0x2C93,
+0x2C94 => 0x2C95,
+0x2C96 => 0x2C97,
+0x2C98 => 0x2C99,
+0x2C9A => 0x2C9B,
+0x2C9C => 0x2C9D,
+0x2C9E => 0x2C9F,
+0x2CA0 => 0x2CA1,
+0x2CA2 => 0x2CA3,
+0x2CA4 => 0x2CA5,
+0x2CA6 => 0x2CA7,
+0x2CA8 => 0x2CA9,
+0x2CAA => 0x2CAB,
+0x2CAC => 0x2CAD,
+0x2CAE => 0x2CAF,
+0x2CB0 => 0x2CB1,
+0x2CB2 => 0x2CB3,
+0x2CB4 => 0x2CB5,
+0x2CB6 => 0x2CB7,
+0x2CB8 => 0x2CB9,
+0x2CBA => 0x2CBB,
+0x2CBC => 0x2CBD,
+0x2CBE => 0x2CBF,
+0x2CC0 => 0x2CC1,
+0x2CC2 => 0x2CC3,
+0x2CC4 => 0x2CC5,
+0x2CC6 => 0x2CC7,
+0x2CC8 => 0x2CC9,
+0x2CCA => 0x2CCB,
+0x2CCC => 0x2CCD,
+0x2CCE => 0x2CCF,
+0x2CD0 => 0x2CD1,
+0x2CD2 => 0x2CD3,
+0x2CD4 => 0x2CD5,
+0x2CD6 => 0x2CD7,
+0x2CD8 => 0x2CD9,
+0x2CDA => 0x2CDB,
+0x2CDC => 0x2CDD,
+0x2CDE => 0x2CDF,
+0x2CE0 => 0x2CE1,
+0x2CE2 => 0x2CE3,
+0x2CEB => 0x2CEC,
+0x2CED => 0x2CEE,
+0x2CF2 => 0x2CF3,
+0xA640 => 0xA641,
+0xA642 => 0xA643,
+0xA644 => 0xA645,
+0xA646 => 0xA647,
+0xA648 => 0xA649,
+0xA64A => 0xA64B,
+0xA64C => 0xA64D,
+0xA64E => 0xA64F,
+0xA650 => 0xA651,
+0xA652 => 0xA653,
+0xA654 => 0xA655,
+0xA656 => 0xA657,
+0xA658 => 0xA659,
+0xA65A => 0xA65B,
+0xA65C => 0xA65D,
+0xA65E => 0xA65F,
+0xA660 => 0xA661,
+0xA662 => 0xA663,
+0xA664 => 0xA665,
+0xA666 => 0xA667,
+0xA668 => 0xA669,
+0xA66A => 0xA66B,
+0xA66C => 0xA66D,
+0xA680 => 0xA681,
+0xA682 => 0xA683,
+0xA684 => 0xA685,
+0xA686 => 0xA687,
+0xA688 => 0xA689,
+0xA68A => 0xA68B,
+0xA68C => 0xA68D,
+0xA68E => 0xA68F,
+0xA690 => 0xA691,
+0xA692 => 0xA693,
+0xA694 => 0xA695,
+0xA696 => 0xA697,
+0xA698 => 0xA699,
+0xA69A => 0xA69B,
+0xA722 => 0xA723,
+0xA724 => 0xA725,
+0xA726 => 0xA727,
+0xA728 => 0xA729,
+0xA72A => 0xA72B,
+0xA72C => 0xA72D,
+0xA72E => 0xA72F,
+0xA732 => 0xA733,
+0xA734 => 0xA735,
+0xA736 => 0xA737,
+0xA738 => 0xA739,
+0xA73A => 0xA73B,
+0xA73C => 0xA73D,
+0xA73E => 0xA73F,
+0xA740 => 0xA741,
+0xA742 => 0xA743,
+0xA744 => 0xA745,
+0xA746 => 0xA747,
+0xA748 => 0xA749,
+0xA74A => 0xA74B,
+0xA74C => 0xA74D,
+0xA74E => 0xA74F,
+0xA750 => 0xA751,
+0xA752 => 0xA753,
+0xA754 => 0xA755,
+0xA756 => 0xA757,
+0xA758 => 0xA759,
+0xA75A => 0xA75B,
+0xA75C => 0xA75D,
+0xA75E => 0xA75F,
+0xA760 => 0xA761,
+0xA762 => 0xA763,
+0xA764 => 0xA765,
+0xA766 => 0xA767,
+0xA768 => 0xA769,
+0xA76A => 0xA76B,
+0xA76C => 0xA76D,
+0xA76E => 0xA76F,
+0xA779 => 0xA77A,
+0xA77B => 0xA77C,
+0xA77D => 0x1D79,
+0xA77E => 0xA77F,
+0xA780 => 0xA781,
+0xA782 => 0xA783,
+0xA784 => 0xA785,
+0xA786 => 0xA787,
+0xA78B => 0xA78C,
+0xA78D => 0x265,
+0xA790 => 0xA791,
+0xA792 => 0xA793,
+0xA796 => 0xA797,
+0xA798 => 0xA799,
+0xA79A => 0xA79B,
+0xA79C => 0xA79D,
+0xA79E => 0xA79F,
+0xA7A0 => 0xA7A1,
+0xA7A2 => 0xA7A3,
+0xA7A4 => 0xA7A5,
+0xA7A6 => 0xA7A7,
+0xA7A8 => 0xA7A9,
+0xA7AA => 0x266,
+0xA7AB => 0x25C,
+0xA7AC => 0x261,
+0xA7AD => 0x26C,
+0xA7AE => 0x26A,
+0xA7B0 => 0x29E,
+0xA7B1 => 0x287,
+0xA7B2 => 0x29D,
+0xA7B3 => 0xAB53,
+0xA7B4 => 0xA7B5,
+0xA7B6 => 0xA7B7,
+0xA7B8 => 0xA7B9,
+0xA7BA => 0xA7BB,
+0xA7BC => 0xA7BD,
+0xA7BE => 0xA7BF,
+0xA7C2 => 0xA7C3,
+0xA7C4 => 0xA794,
+0xA7C5 => 0x282,
+0xA7C6 => 0x1D8E,
+0xA7C7 => 0xA7C8,
+0xA7C9 => 0xA7CA,
+0xA7F5 => 0xA7F6,
+0xAB70 => 0x13A0,
+0xAB71 => 0x13A1,
+0xAB72 => 0x13A2,
+0xAB73 => 0x13A3,
+0xAB74 => 0x13A4,
+0xAB75 => 0x13A5,
+0xAB76 => 0x13A6,
+0xAB77 => 0x13A7,
+0xAB78 => 0x13A8,
+0xAB79 => 0x13A9,
+0xAB7A => 0x13AA,
+0xAB7B => 0x13AB,
+0xAB7C => 0x13AC,
+0xAB7D => 0x13AD,
+0xAB7E => 0x13AE,
+0xAB7F => 0x13AF,
+0xAB80 => 0x13B0,
+0xAB81 => 0x13B1,
+0xAB82 => 0x13B2,
+0xAB83 => 0x13B3,
+0xAB84 => 0x13B4,
+0xAB85 => 0x13B5,
+0xAB86 => 0x13B6,
+0xAB87 => 0x13B7,
+0xAB88 => 0x13B8,
+0xAB89 => 0x13B9,
+0xAB8A => 0x13BA,
+0xAB8B => 0x13BB,
+0xAB8C => 0x13BC,
+0xAB8D => 0x13BD,
+0xAB8E => 0x13BE,
+0xAB8F => 0x13BF,
+0xAB90 => 0x13C0,
+0xAB91 => 0x13C1,
+0xAB92 => 0x13C2,
+0xAB93 => 0x13C3,
+0xAB94 => 0x13C4,
+0xAB95 => 0x13C5,
+0xAB96 => 0x13C6,
+0xAB97 => 0x13C7,
+0xAB98 => 0x13C8,
+0xAB99 => 0x13C9,
+0xAB9A => 0x13CA,
+0xAB9B => 0x13CB,
+0xAB9C => 0x13CC,
+0xAB9D => 0x13CD,
+0xAB9E => 0x13CE,
+0xAB9F => 0x13CF,
+0xABA0 => 0x13D0,
+0xABA1 => 0x13D1,
+0xABA2 => 0x13D2,
+0xABA3 => 0x13D3,
+0xABA4 => 0x13D4,
+0xABA5 => 0x13D5,
+0xABA6 => 0x13D6,
+0xABA7 => 0x13D7,
+0xABA8 => 0x13D8,
+0xABA9 => 0x13D9,
+0xABAA => 0x13DA,
+0xABAB => 0x13DB,
+0xABAC => 0x13DC,
+0xABAD => 0x13DD,
+0xABAE => 0x13DE,
+0xABAF => 0x13DF,
+0xABB0 => 0x13E0,
+0xABB1 => 0x13E1,
+0xABB2 => 0x13E2,
+0xABB3 => 0x13E3,
+0xABB4 => 0x13E4,
+0xABB5 => 0x13E5,
+0xABB6 => 0x13E6,
+0xABB7 => 0x13E7,
+0xABB8 => 0x13E8,
+0xABB9 => 0x13E9,
+0xABBA => 0x13EA,
+0xABBB => 0x13EB,
+0xABBC => 0x13EC,
+0xABBD => 0x13ED,
+0xABBE => 0x13EE,
+0xABBF => 0x13EF,
+0xFF21 => 0xFF41,
+0xFF22 => 0xFF42,
+0xFF23 => 0xFF43,
+0xFF24 => 0xFF44,
+0xFF25 => 0xFF45,
+0xFF26 => 0xFF46,
+0xFF27 => 0xFF47,
+0xFF28 => 0xFF48,
+0xFF29 => 0xFF49,
+0xFF2A => 0xFF4A,
+0xFF2B => 0xFF4B,
+0xFF2C => 0xFF4C,
+0xFF2D => 0xFF4D,
+0xFF2E => 0xFF4E,
+0xFF2F => 0xFF4F,
+0xFF30 => 0xFF50,
+0xFF31 => 0xFF51,
+0xFF32 => 0xFF52,
+0xFF33 => 0xFF53,
+0xFF34 => 0xFF54,
+0xFF35 => 0xFF55,
+0xFF36 => 0xFF56,
+0xFF37 => 0xFF57,
+0xFF38 => 0xFF58,
+0xFF39 => 0xFF59,
+0xFF3A => 0xFF5A,
+0x10400 => 0x10428,
+0x10401 => 0x10429,
+0x10402 => 0x1042A,
+0x10403 => 0x1042B,
+0x10404 => 0x1042C,
+0x10405 => 0x1042D,
+0x10406 => 0x1042E,
+0x10407 => 0x1042F,
+0x10408 => 0x10430,
+0x10409 => 0x10431,
+0x1040A => 0x10432,
+0x1040B => 0x10433,
+0x1040C => 0x10434,
+0x1040D => 0x10435,
+0x1040E => 0x10436,
+0x1040F => 0x10437,
+0x10410 => 0x10438,
+0x10411 => 0x10439,
+0x10412 => 0x1043A,
+0x10413 => 0x1043B,
+0x10414 => 0x1043C,
+0x10415 => 0x1043D,
+0x10416 => 0x1043E,
+0x10417 => 0x1043F,
+0x10418 => 0x10440,
+0x10419 => 0x10441,
+0x1041A => 0x10442,
+0x1041B => 0x10443,
+0x1041C => 0x10444,
+0x1041D => 0x10445,
+0x1041E => 0x10446,
+0x1041F => 0x10447,
+0x10420 => 0x10448,
+0x10421 => 0x10449,
+0x10422 => 0x1044A,
+0x10423 => 0x1044B,
+0x10424 => 0x1044C,
+0x10425 => 0x1044D,
+0x10426 => 0x1044E,
+0x10427 => 0x1044F,
+0x104B0 => 0x104D8,
+0x104B1 => 0x104D9,
+0x104B2 => 0x104DA,
+0x104B3 => 0x104DB,
+0x104B4 => 0x104DC,
+0x104B5 => 0x104DD,
+0x104B6 => 0x104DE,
+0x104B7 => 0x104DF,
+0x104B8 => 0x104E0,
+0x104B9 => 0x104E1,
+0x104BA => 0x104E2,
+0x104BB => 0x104E3,
+0x104BC => 0x104E4,
+0x104BD => 0x104E5,
+0x104BE => 0x104E6,
+0x104BF => 0x104E7,
+0x104C0 => 0x104E8,
+0x104C1 => 0x104E9,
+0x104C2 => 0x104EA,
+0x104C3 => 0x104EB,
+0x104C4 => 0x104EC,
+0x104C5 => 0x104ED,
+0x104C6 => 0x104EE,
+0x104C7 => 0x104EF,
+0x104C8 => 0x104F0,
+0x104C9 => 0x104F1,
+0x104CA => 0x104F2,
+0x104CB => 0x104F3,
+0x104CC => 0x104F4,
+0x104CD => 0x104F5,
+0x104CE => 0x104F6,
+0x104CF => 0x104F7,
+0x104D0 => 0x104F8,
+0x104D1 => 0x104F9,
+0x104D2 => 0x104FA,
+0x104D3 => 0x104FB,
+0x10C80 => 0x10CC0,
+0x10C81 => 0x10CC1,
+0x10C82 => 0x10CC2,
+0x10C83 => 0x10CC3,
+0x10C84 => 0x10CC4,
+0x10C85 => 0x10CC5,
+0x10C86 => 0x10CC6,
+0x10C87 => 0x10CC7,
+0x10C88 => 0x10CC8,
+0x10C89 => 0x10CC9,
+0x10C8A => 0x10CCA,
+0x10C8B => 0x10CCB,
+0x10C8C => 0x10CCC,
+0x10C8D => 0x10CCD,
+0x10C8E => 0x10CCE,
+0x10C8F => 0x10CCF,
+0x10C90 => 0x10CD0,
+0x10C91 => 0x10CD1,
+0x10C92 => 0x10CD2,
+0x10C93 => 0x10CD3,
+0x10C94 => 0x10CD4,
+0x10C95 => 0x10CD5,
+0x10C96 => 0x10CD6,
+0x10C97 => 0x10CD7,
+0x10C98 => 0x10CD8,
+0x10C99 => 0x10CD9,
+0x10C9A => 0x10CDA,
+0x10C9B => 0x10CDB,
+0x10C9C => 0x10CDC,
+0x10C9D => 0x10CDD,
+0x10C9E => 0x10CDE,
+0x10C9F => 0x10CDF,
+0x10CA0 => 0x10CE0,
+0x10CA1 => 0x10CE1,
+0x10CA2 => 0x10CE2,
+0x10CA3 => 0x10CE3,
+0x10CA4 => 0x10CE4,
+0x10CA5 => 0x10CE5,
+0x10CA6 => 0x10CE6,
+0x10CA7 => 0x10CE7,
+0x10CA8 => 0x10CE8,
+0x10CA9 => 0x10CE9,
+0x10CAA => 0x10CEA,
+0x10CAB => 0x10CEB,
+0x10CAC => 0x10CEC,
+0x10CAD => 0x10CED,
+0x10CAE => 0x10CEE,
+0x10CAF => 0x10CEF,
+0x10CB0 => 0x10CF0,
+0x10CB1 => 0x10CF1,
+0x10CB2 => 0x10CF2,
+0x118A0 => 0x118C0,
+0x118A1 => 0x118C1,
+0x118A2 => 0x118C2,
+0x118A3 => 0x118C3,
+0x118A4 => 0x118C4,
+0x118A5 => 0x118C5,
+0x118A6 => 0x118C6,
+0x118A7 => 0x118C7,
+0x118A8 => 0x118C8,
+0x118A9 => 0x118C9,
+0x118AA => 0x118CA,
+0x118AB => 0x118CB,
+0x118AC => 0x118CC,
+0x118AD => 0x118CD,
+0x118AE => 0x118CE,
+0x118AF => 0x118CF,
+0x118B0 => 0x118D0,
+0x118B1 => 0x118D1,
+0x118B2 => 0x118D2,
+0x118B3 => 0x118D3,
+0x118B4 => 0x118D4,
+0x118B5 => 0x118D5,
+0x118B6 => 0x118D6,
+0x118B7 => 0x118D7,
+0x118B8 => 0x118D8,
+0x118B9 => 0x118D9,
+0x118BA => 0x118DA,
+0x118BB => 0x118DB,
+0x118BC => 0x118DC,
+0x118BD => 0x118DD,
+0x118BE => 0x118DE,
+0x118BF => 0x118DF,
+0x16E40 => 0x16E60,
+0x16E41 => 0x16E61,
+0x16E42 => 0x16E62,
+0x16E43 => 0x16E63,
+0x16E44 => 0x16E64,
+0x16E45 => 0x16E65,
+0x16E46 => 0x16E66,
+0x16E47 => 0x16E67,
+0x16E48 => 0x16E68,
+0x16E49 => 0x16E69,
+0x16E4A => 0x16E6A,
+0x16E4B => 0x16E6B,
+0x16E4C => 0x16E6C,
+0x16E4D => 0x16E6D,
+0x16E4E => 0x16E6E,
+0x16E4F => 0x16E6F,
+0x16E50 => 0x16E70,
+0x16E51 => 0x16E71,
+0x16E52 => 0x16E72,
+0x16E53 => 0x16E73,
+0x16E54 => 0x16E74,
+0x16E55 => 0x16E75,
+0x16E56 => 0x16E76,
+0x16E57 => 0x16E77,
+0x16E58 => 0x16E78,
+0x16E59 => 0x16E79,
+0x16E5A => 0x16E7A,
+0x16E5B => 0x16E7B,
+0x16E5C => 0x16E7C,
+0x16E5D => 0x16E7D,
+0x16E5E => 0x16E7E,
+0x16E5F => 0x16E7F,
+0x1E900 => 0x1E922,
+0x1E901 => 0x1E923,
+0x1E902 => 0x1E924,
+0x1E903 => 0x1E925,
+0x1E904 => 0x1E926,
+0x1E905 => 0x1E927,
+0x1E906 => 0x1E928,
+0x1E907 => 0x1E929,
+0x1E908 => 0x1E92A,
+0x1E909 => 0x1E92B,
+0x1E90A => 0x1E92C,
+0x1E90B => 0x1E92D,
+0x1E90C => 0x1E92E,
+0x1E90D => 0x1E92F,
+0x1E90E => 0x1E930,
+0x1E90F => 0x1E931,
+0x1E910 => 0x1E932,
+0x1E911 => 0x1E933,
+0x1E912 => 0x1E934,
+0x1E913 => 0x1E935,
+0x1E914 => 0x1E936,
+0x1E915 => 0x1E937,
+0x1E916 => 0x1E938,
+0x1E917 => 0x1E939,
+0x1E918 => 0x1E93A,
+0x1E919 => 0x1E93B,
+0x1E91A => 0x1E93C,
+0x1E91B => 0x1E93D,
+0x1E91C => 0x1E93E,
+0x1E91D => 0x1E93F,
+0x1E91E => 0x1E940,
+0x1E91F => 0x1E941,
+0x1E920 => 0x1E942,
+0x1E921 => 0x1E943,
+];
diff --git a/res/lower.php b/res/lower.php
index 32efe87..b5697d1 100644
--- a/res/lower.php
+++ b/res/lower.php
@@ -1,6628 +1,1396 @@
- array (
- 0 => 97,
- 1 => 'a',
- ),
- 66 =>
- array (
- 0 => 98,
- 1 => 'b',
- ),
- 67 =>
- array (
- 0 => 99,
- 1 => 'c',
- ),
- 68 =>
- array (
- 0 => 100,
- 1 => 'd',
- ),
- 69 =>
- array (
- 0 => 101,
- 1 => 'e',
- ),
- 70 =>
- array (
- 0 => 102,
- 1 => 'f',
- ),
- 71 =>
- array (
- 0 => 103,
- 1 => 'g',
- ),
- 72 =>
- array (
- 0 => 104,
- 1 => 'h',
- ),
- 73 =>
- array (
- 0 => 105,
- 1 => 'i',
- ),
- 74 =>
- array (
- 0 => 106,
- 1 => 'j',
- ),
- 75 =>
- array (
- 0 => 107,
- 1 => 'k',
- ),
- 76 =>
- array (
- 0 => 108,
- 1 => 'l',
- ),
- 77 =>
- array (
- 0 => 109,
- 1 => 'm',
- ),
- 78 =>
- array (
- 0 => 110,
- 1 => 'n',
- ),
- 79 =>
- array (
- 0 => 111,
- 1 => 'o',
- ),
- 80 =>
- array (
- 0 => 112,
- 1 => 'p',
- ),
- 81 =>
- array (
- 0 => 113,
- 1 => 'q',
- ),
- 82 =>
- array (
- 0 => 114,
- 1 => 'r',
- ),
- 83 =>
- array (
- 0 => 115,
- 1 => 's',
- ),
- 84 =>
- array (
- 0 => 116,
- 1 => 't',
- ),
- 85 =>
- array (
- 0 => 117,
- 1 => 'u',
- ),
- 86 =>
- array (
- 0 => 118,
- 1 => 'v',
- ),
- 87 =>
- array (
- 0 => 119,
- 1 => 'w',
- ),
- 88 =>
- array (
- 0 => 120,
- 1 => 'x',
- ),
- 89 =>
- array (
- 0 => 121,
- 1 => 'y',
- ),
- 90 =>
- array (
- 0 => 122,
- 1 => 'z',
- ),
- 181 =>
- array (
- 0 => 956,
- 1 => 'μ',
- ),
- 192 =>
- array (
- 0 => 224,
- 1 => 'à',
- ),
- 193 =>
- array (
- 0 => 225,
- 1 => 'á',
- ),
- 194 =>
- array (
- 0 => 226,
- 1 => 'â',
- ),
- 195 =>
- array (
- 0 => 227,
- 1 => 'ã',
- ),
- 196 =>
- array (
- 0 => 228,
- 1 => 'ä',
- ),
- 197 =>
- array (
- 0 => 229,
- 1 => 'å',
- ),
- 198 =>
- array (
- 0 => 230,
- 1 => 'æ',
- ),
- 199 =>
- array (
- 0 => 231,
- 1 => 'ç',
- ),
- 200 =>
- array (
- 0 => 232,
- 1 => 'è',
- ),
- 201 =>
- array (
- 0 => 233,
- 1 => 'é',
- ),
- 202 =>
- array (
- 0 => 234,
- 1 => 'ê',
- ),
- 203 =>
- array (
- 0 => 235,
- 1 => 'ë',
- ),
- 204 =>
- array (
- 0 => 236,
- 1 => 'ì',
- ),
- 205 =>
- array (
- 0 => 237,
- 1 => 'í',
- ),
- 206 =>
- array (
- 0 => 238,
- 1 => 'î',
- ),
- 207 =>
- array (
- 0 => 239,
- 1 => 'ï',
- ),
- 208 =>
- array (
- 0 => 240,
- 1 => 'ð',
- ),
- 209 =>
- array (
- 0 => 241,
- 1 => 'ñ',
- ),
- 210 =>
- array (
- 0 => 242,
- 1 => 'ò',
- ),
- 211 =>
- array (
- 0 => 243,
- 1 => 'ó',
- ),
- 212 =>
- array (
- 0 => 244,
- 1 => 'ô',
- ),
- 213 =>
- array (
- 0 => 245,
- 1 => 'õ',
- ),
- 214 =>
- array (
- 0 => 246,
- 1 => 'ö',
- ),
- 216 =>
- array (
- 0 => 248,
- 1 => 'ø',
- ),
- 217 =>
- array (
- 0 => 249,
- 1 => 'ù',
- ),
- 218 =>
- array (
- 0 => 250,
- 1 => 'ú',
- ),
- 219 =>
- array (
- 0 => 251,
- 1 => 'û',
- ),
- 220 =>
- array (
- 0 => 252,
- 1 => 'ü',
- ),
- 221 =>
- array (
- 0 => 253,
- 1 => 'ý',
- ),
- 222 =>
- array (
- 0 => 254,
- 1 => 'þ',
- ),
- 256 =>
- array (
- 0 => 257,
- 1 => 'ā',
- ),
- 258 =>
- array (
- 0 => 259,
- 1 => 'ă',
- ),
- 260 =>
- array (
- 0 => 261,
- 1 => 'ą',
- ),
- 262 =>
- array (
- 0 => 263,
- 1 => 'ć',
- ),
- 264 =>
- array (
- 0 => 265,
- 1 => 'ĉ',
- ),
- 266 =>
- array (
- 0 => 267,
- 1 => 'ċ',
- ),
- 268 =>
- array (
- 0 => 269,
- 1 => 'č',
- ),
- 270 =>
- array (
- 0 => 271,
- 1 => 'ď',
- ),
- 272 =>
- array (
- 0 => 273,
- 1 => 'đ',
- ),
- 274 =>
- array (
- 0 => 275,
- 1 => 'ē',
- ),
- 276 =>
- array (
- 0 => 277,
- 1 => 'ĕ',
- ),
- 278 =>
- array (
- 0 => 279,
- 1 => 'ė',
- ),
- 280 =>
- array (
- 0 => 281,
- 1 => 'ę',
- ),
- 282 =>
- array (
- 0 => 283,
- 1 => 'ě',
- ),
- 284 =>
- array (
- 0 => 285,
- 1 => 'ĝ',
- ),
- 286 =>
- array (
- 0 => 287,
- 1 => 'ğ',
- ),
- 288 =>
- array (
- 0 => 289,
- 1 => 'ġ',
- ),
- 290 =>
- array (
- 0 => 291,
- 1 => 'ģ',
- ),
- 292 =>
- array (
- 0 => 293,
- 1 => 'ĥ',
- ),
- 294 =>
- array (
- 0 => 295,
- 1 => 'ħ',
- ),
- 296 =>
- array (
- 0 => 297,
- 1 => 'ĩ',
- ),
- 298 =>
- array (
- 0 => 299,
- 1 => 'ī',
- ),
- 300 =>
- array (
- 0 => 301,
- 1 => 'ĭ',
- ),
- 302 =>
- array (
- 0 => 303,
- 1 => 'į',
- ),
- 306 =>
- array (
- 0 => 307,
- 1 => 'ij',
- ),
- 308 =>
- array (
- 0 => 309,
- 1 => 'ĵ',
- ),
- 310 =>
- array (
- 0 => 311,
- 1 => 'ķ',
- ),
- 313 =>
- array (
- 0 => 314,
- 1 => 'ĺ',
- ),
- 315 =>
- array (
- 0 => 316,
- 1 => 'ļ',
- ),
- 317 =>
- array (
- 0 => 318,
- 1 => 'ľ',
- ),
- 319 =>
- array (
- 0 => 320,
- 1 => 'ŀ',
- ),
- 321 =>
- array (
- 0 => 322,
- 1 => 'ł',
- ),
- 323 =>
- array (
- 0 => 324,
- 1 => 'ń',
- ),
- 325 =>
- array (
- 0 => 326,
- 1 => 'ņ',
- ),
- 327 =>
- array (
- 0 => 328,
- 1 => 'ň',
- ),
- 330 =>
- array (
- 0 => 331,
- 1 => 'ŋ',
- ),
- 332 =>
- array (
- 0 => 333,
- 1 => 'ō',
- ),
- 334 =>
- array (
- 0 => 335,
- 1 => 'ŏ',
- ),
- 336 =>
- array (
- 0 => 337,
- 1 => 'ő',
- ),
- 338 =>
- array (
- 0 => 339,
- 1 => 'œ',
- ),
- 340 =>
- array (
- 0 => 341,
- 1 => 'ŕ',
- ),
- 342 =>
- array (
- 0 => 343,
- 1 => 'ŗ',
- ),
- 344 =>
- array (
- 0 => 345,
- 1 => 'ř',
- ),
- 346 =>
- array (
- 0 => 347,
- 1 => 'ś',
- ),
- 348 =>
- array (
- 0 => 349,
- 1 => 'ŝ',
- ),
- 350 =>
- array (
- 0 => 351,
- 1 => 'ş',
- ),
- 352 =>
- array (
- 0 => 353,
- 1 => 'š',
- ),
- 354 =>
- array (
- 0 => 355,
- 1 => 'ţ',
- ),
- 356 =>
- array (
- 0 => 357,
- 1 => 'ť',
- ),
- 358 =>
- array (
- 0 => 359,
- 1 => 'ŧ',
- ),
- 360 =>
- array (
- 0 => 361,
- 1 => 'ũ',
- ),
- 362 =>
- array (
- 0 => 363,
- 1 => 'ū',
- ),
- 364 =>
- array (
- 0 => 365,
- 1 => 'ŭ',
- ),
- 366 =>
- array (
- 0 => 367,
- 1 => 'ů',
- ),
- 368 =>
- array (
- 0 => 369,
- 1 => 'ű',
- ),
- 370 =>
- array (
- 0 => 371,
- 1 => 'ų',
- ),
- 372 =>
- array (
- 0 => 373,
- 1 => 'ŵ',
- ),
- 374 =>
- array (
- 0 => 375,
- 1 => 'ŷ',
- ),
- 376 =>
- array (
- 0 => 255,
- 1 => 'ÿ',
- ),
- 377 =>
- array (
- 0 => 378,
- 1 => 'ź',
- ),
- 379 =>
- array (
- 0 => 380,
- 1 => 'ż',
- ),
- 381 =>
- array (
- 0 => 382,
- 1 => 'ž',
- ),
- 383 =>
- array (
- 0 => 115,
- 1 => 's',
- ),
- 385 =>
- array (
- 0 => 595,
- 1 => 'ɓ',
- ),
- 386 =>
- array (
- 0 => 387,
- 1 => 'ƃ',
- ),
- 388 =>
- array (
- 0 => 389,
- 1 => 'ƅ',
- ),
- 390 =>
- array (
- 0 => 596,
- 1 => 'ɔ',
- ),
- 391 =>
- array (
- 0 => 392,
- 1 => 'ƈ',
- ),
- 393 =>
- array (
- 0 => 598,
- 1 => 'ɖ',
- ),
- 394 =>
- array (
- 0 => 599,
- 1 => 'ɗ',
- ),
- 395 =>
- array (
- 0 => 396,
- 1 => 'ƌ',
- ),
- 398 =>
- array (
- 0 => 477,
- 1 => 'ǝ',
- ),
- 399 =>
- array (
- 0 => 601,
- 1 => 'ə',
- ),
- 400 =>
- array (
- 0 => 603,
- 1 => 'ɛ',
- ),
- 401 =>
- array (
- 0 => 402,
- 1 => 'ƒ',
- ),
- 403 =>
- array (
- 0 => 608,
- 1 => 'ɠ',
- ),
- 404 =>
- array (
- 0 => 611,
- 1 => 'ɣ',
- ),
- 406 =>
- array (
- 0 => 617,
- 1 => 'ɩ',
- ),
- 407 =>
- array (
- 0 => 616,
- 1 => 'ɨ',
- ),
- 408 =>
- array (
- 0 => 409,
- 1 => 'ƙ',
- ),
- 412 =>
- array (
- 0 => 623,
- 1 => 'ɯ',
- ),
- 413 =>
- array (
- 0 => 626,
- 1 => 'ɲ',
- ),
- 415 =>
- array (
- 0 => 629,
- 1 => 'ɵ',
- ),
- 416 =>
- array (
- 0 => 417,
- 1 => 'ơ',
- ),
- 418 =>
- array (
- 0 => 419,
- 1 => 'ƣ',
- ),
- 420 =>
- array (
- 0 => 421,
- 1 => 'ƥ',
- ),
- 422 =>
- array (
- 0 => 640,
- 1 => 'ʀ',
- ),
- 423 =>
- array (
- 0 => 424,
- 1 => 'ƨ',
- ),
- 425 =>
- array (
- 0 => 643,
- 1 => 'ʃ',
- ),
- 428 =>
- array (
- 0 => 429,
- 1 => 'ƭ',
- ),
- 430 =>
- array (
- 0 => 648,
- 1 => 'ʈ',
- ),
- 431 =>
- array (
- 0 => 432,
- 1 => 'ư',
- ),
- 433 =>
- array (
- 0 => 650,
- 1 => 'ʊ',
- ),
- 434 =>
- array (
- 0 => 651,
- 1 => 'ʋ',
- ),
- 435 =>
- array (
- 0 => 436,
- 1 => 'ƴ',
- ),
- 437 =>
- array (
- 0 => 438,
- 1 => 'ƶ',
- ),
- 439 =>
- array (
- 0 => 658,
- 1 => 'ʒ',
- ),
- 440 =>
- array (
- 0 => 441,
- 1 => 'ƹ',
- ),
- 444 =>
- array (
- 0 => 445,
- 1 => 'ƽ',
- ),
- 452 =>
- array (
- 0 => 454,
- 1 => 'dž',
- ),
- 453 =>
- array (
- 0 => 454,
- 1 => 'dž',
- ),
- 455 =>
- array (
- 0 => 457,
- 1 => 'lj',
- ),
- 456 =>
- array (
- 0 => 457,
- 1 => 'lj',
- ),
- 458 =>
- array (
- 0 => 460,
- 1 => 'nj',
- ),
- 459 =>
- array (
- 0 => 460,
- 1 => 'nj',
- ),
- 461 =>
- array (
- 0 => 462,
- 1 => 'ǎ',
- ),
- 463 =>
- array (
- 0 => 464,
- 1 => 'ǐ',
- ),
- 465 =>
- array (
- 0 => 466,
- 1 => 'ǒ',
- ),
- 467 =>
- array (
- 0 => 468,
- 1 => 'ǔ',
- ),
- 469 =>
- array (
- 0 => 470,
- 1 => 'ǖ',
- ),
- 471 =>
- array (
- 0 => 472,
- 1 => 'ǘ',
- ),
- 473 =>
- array (
- 0 => 474,
- 1 => 'ǚ',
- ),
- 475 =>
- array (
- 0 => 476,
- 1 => 'ǜ',
- ),
- 478 =>
- array (
- 0 => 479,
- 1 => 'ǟ',
- ),
- 480 =>
- array (
- 0 => 481,
- 1 => 'ǡ',
- ),
- 482 =>
- array (
- 0 => 483,
- 1 => 'ǣ',
- ),
- 484 =>
- array (
- 0 => 485,
- 1 => 'ǥ',
- ),
- 486 =>
- array (
- 0 => 487,
- 1 => 'ǧ',
- ),
- 488 =>
- array (
- 0 => 489,
- 1 => 'ǩ',
- ),
- 490 =>
- array (
- 0 => 491,
- 1 => 'ǫ',
- ),
- 492 =>
- array (
- 0 => 493,
- 1 => 'ǭ',
- ),
- 494 =>
- array (
- 0 => 495,
- 1 => 'ǯ',
- ),
- 497 =>
- array (
- 0 => 499,
- 1 => 'dz',
- ),
- 498 =>
- array (
- 0 => 499,
- 1 => 'dz',
- ),
- 500 =>
- array (
- 0 => 501,
- 1 => 'ǵ',
- ),
- 502 =>
- array (
- 0 => 405,
- 1 => 'ƕ',
- ),
- 503 =>
- array (
- 0 => 447,
- 1 => 'ƿ',
- ),
- 504 =>
- array (
- 0 => 505,
- 1 => 'ǹ',
- ),
- 506 =>
- array (
- 0 => 507,
- 1 => 'ǻ',
- ),
- 508 =>
- array (
- 0 => 509,
- 1 => 'ǽ',
- ),
- 510 =>
- array (
- 0 => 511,
- 1 => 'ǿ',
- ),
- 512 =>
- array (
- 0 => 513,
- 1 => 'ȁ',
- ),
- 514 =>
- array (
- 0 => 515,
- 1 => 'ȃ',
- ),
- 516 =>
- array (
- 0 => 517,
- 1 => 'ȅ',
- ),
- 518 =>
- array (
- 0 => 519,
- 1 => 'ȇ',
- ),
- 520 =>
- array (
- 0 => 521,
- 1 => 'ȉ',
- ),
- 522 =>
- array (
- 0 => 523,
- 1 => 'ȋ',
- ),
- 524 =>
- array (
- 0 => 525,
- 1 => 'ȍ',
- ),
- 526 =>
- array (
- 0 => 527,
- 1 => 'ȏ',
- ),
- 528 =>
- array (
- 0 => 529,
- 1 => 'ȑ',
- ),
- 530 =>
- array (
- 0 => 531,
- 1 => 'ȓ',
- ),
- 532 =>
- array (
- 0 => 533,
- 1 => 'ȕ',
- ),
- 534 =>
- array (
- 0 => 535,
- 1 => 'ȗ',
- ),
- 536 =>
- array (
- 0 => 537,
- 1 => 'ș',
- ),
- 538 =>
- array (
- 0 => 539,
- 1 => 'ț',
- ),
- 540 =>
- array (
- 0 => 541,
- 1 => 'ȝ',
- ),
- 542 =>
- array (
- 0 => 543,
- 1 => 'ȟ',
- ),
- 544 =>
- array (
- 0 => 414,
- 1 => 'ƞ',
- ),
- 546 =>
- array (
- 0 => 547,
- 1 => 'ȣ',
- ),
- 548 =>
- array (
- 0 => 549,
- 1 => 'ȥ',
- ),
- 550 =>
- array (
- 0 => 551,
- 1 => 'ȧ',
- ),
- 552 =>
- array (
- 0 => 553,
- 1 => 'ȩ',
- ),
- 554 =>
- array (
- 0 => 555,
- 1 => 'ȫ',
- ),
- 556 =>
- array (
- 0 => 557,
- 1 => 'ȭ',
- ),
- 558 =>
- array (
- 0 => 559,
- 1 => 'ȯ',
- ),
- 560 =>
- array (
- 0 => 561,
- 1 => 'ȱ',
- ),
- 562 =>
- array (
- 0 => 563,
- 1 => 'ȳ',
- ),
- 570 =>
- array (
- 0 => 11365,
- 1 => 'ⱥ',
- ),
- 571 =>
- array (
- 0 => 572,
- 1 => 'ȼ',
- ),
- 573 =>
- array (
- 0 => 410,
- 1 => 'ƚ',
- ),
- 574 =>
- array (
- 0 => 11366,
- 1 => 'ⱦ',
- ),
- 577 =>
- array (
- 0 => 578,
- 1 => 'ɂ',
- ),
- 579 =>
- array (
- 0 => 384,
- 1 => 'ƀ',
- ),
- 580 =>
- array (
- 0 => 649,
- 1 => 'ʉ',
- ),
- 581 =>
- array (
- 0 => 652,
- 1 => 'ʌ',
- ),
- 582 =>
- array (
- 0 => 583,
- 1 => 'ɇ',
- ),
- 584 =>
- array (
- 0 => 585,
- 1 => 'ɉ',
- ),
- 586 =>
- array (
- 0 => 587,
- 1 => 'ɋ',
- ),
- 588 =>
- array (
- 0 => 589,
- 1 => 'ɍ',
- ),
- 590 =>
- array (
- 0 => 591,
- 1 => 'ɏ',
- ),
- 837 =>
- array (
- 0 => 953,
- 1 => 'ι',
- ),
- 880 =>
- array (
- 0 => 881,
- 1 => 'ͱ',
- ),
- 882 =>
- array (
- 0 => 883,
- 1 => 'ͳ',
- ),
- 886 =>
- array (
- 0 => 887,
- 1 => 'ͷ',
- ),
- 895 =>
- array (
- 0 => 1011,
- 1 => 'ϳ',
- ),
- 902 =>
- array (
- 0 => 940,
- 1 => 'ά',
- ),
- 904 =>
- array (
- 0 => 941,
- 1 => 'έ',
- ),
- 905 =>
- array (
- 0 => 942,
- 1 => 'ή',
- ),
- 906 =>
- array (
- 0 => 943,
- 1 => 'ί',
- ),
- 908 =>
- array (
- 0 => 972,
- 1 => 'ό',
- ),
- 910 =>
- array (
- 0 => 973,
- 1 => 'ύ',
- ),
- 911 =>
- array (
- 0 => 974,
- 1 => 'ώ',
- ),
- 913 =>
- array (
- 0 => 945,
- 1 => 'α',
- ),
- 914 =>
- array (
- 0 => 946,
- 1 => 'β',
- ),
- 915 =>
- array (
- 0 => 947,
- 1 => 'γ',
- ),
- 916 =>
- array (
- 0 => 948,
- 1 => 'δ',
- ),
- 917 =>
- array (
- 0 => 949,
- 1 => 'ε',
- ),
- 918 =>
- array (
- 0 => 950,
- 1 => 'ζ',
- ),
- 919 =>
- array (
- 0 => 951,
- 1 => 'η',
- ),
- 920 =>
- array (
- 0 => 952,
- 1 => 'θ',
- ),
- 921 =>
- array (
- 0 => 953,
- 1 => 'ι',
- ),
- 922 =>
- array (
- 0 => 954,
- 1 => 'κ',
- ),
- 923 =>
- array (
- 0 => 955,
- 1 => 'λ',
- ),
- 924 =>
- array (
- 0 => 956,
- 1 => 'μ',
- ),
- 925 =>
- array (
- 0 => 957,
- 1 => 'ν',
- ),
- 926 =>
- array (
- 0 => 958,
- 1 => 'ξ',
- ),
- 927 =>
- array (
- 0 => 959,
- 1 => 'ο',
- ),
- 928 =>
- array (
- 0 => 960,
- 1 => 'π',
- ),
- 929 =>
- array (
- 0 => 961,
- 1 => 'ρ',
- ),
- 931 =>
- array (
- 0 => 963,
- 1 => 'σ',
- ),
- 932 =>
- array (
- 0 => 964,
- 1 => 'τ',
- ),
- 933 =>
- array (
- 0 => 965,
- 1 => 'υ',
- ),
- 934 =>
- array (
- 0 => 966,
- 1 => 'φ',
- ),
- 935 =>
- array (
- 0 => 967,
- 1 => 'χ',
- ),
- 936 =>
- array (
- 0 => 968,
- 1 => 'ψ',
- ),
- 937 =>
- array (
- 0 => 969,
- 1 => 'ω',
- ),
- 938 =>
- array (
- 0 => 970,
- 1 => 'ϊ',
- ),
- 939 =>
- array (
- 0 => 971,
- 1 => 'ϋ',
- ),
- 962 =>
- array (
- 0 => 963,
- 1 => 'σ',
- ),
- 975 =>
- array (
- 0 => 983,
- 1 => 'ϗ',
- ),
- 976 =>
- array (
- 0 => 946,
- 1 => 'β',
- ),
- 977 =>
- array (
- 0 => 952,
- 1 => 'θ',
- ),
- 981 =>
- array (
- 0 => 966,
- 1 => 'φ',
- ),
- 982 =>
- array (
- 0 => 960,
- 1 => 'π',
- ),
- 984 =>
- array (
- 0 => 985,
- 1 => 'ϙ',
- ),
- 986 =>
- array (
- 0 => 987,
- 1 => 'ϛ',
- ),
- 988 =>
- array (
- 0 => 989,
- 1 => 'ϝ',
- ),
- 990 =>
- array (
- 0 => 991,
- 1 => 'ϟ',
- ),
- 992 =>
- array (
- 0 => 993,
- 1 => 'ϡ',
- ),
- 994 =>
- array (
- 0 => 995,
- 1 => 'ϣ',
- ),
- 996 =>
- array (
- 0 => 997,
- 1 => 'ϥ',
- ),
- 998 =>
- array (
- 0 => 999,
- 1 => 'ϧ',
- ),
- 1000 =>
- array (
- 0 => 1001,
- 1 => 'ϩ',
- ),
- 1002 =>
- array (
- 0 => 1003,
- 1 => 'ϫ',
- ),
- 1004 =>
- array (
- 0 => 1005,
- 1 => 'ϭ',
- ),
- 1006 =>
- array (
- 0 => 1007,
- 1 => 'ϯ',
- ),
- 1008 =>
- array (
- 0 => 954,
- 1 => 'κ',
- ),
- 1009 =>
- array (
- 0 => 961,
- 1 => 'ρ',
- ),
- 1012 =>
- array (
- 0 => 952,
- 1 => 'θ',
- ),
- 1013 =>
- array (
- 0 => 949,
- 1 => 'ε',
- ),
- 1015 =>
- array (
- 0 => 1016,
- 1 => 'ϸ',
- ),
- 1017 =>
- array (
- 0 => 1010,
- 1 => 'ϲ',
- ),
- 1018 =>
- array (
- 0 => 1019,
- 1 => 'ϻ',
- ),
- 1021 =>
- array (
- 0 => 891,
- 1 => 'ͻ',
- ),
- 1022 =>
- array (
- 0 => 892,
- 1 => 'ͼ',
- ),
- 1023 =>
- array (
- 0 => 893,
- 1 => 'ͽ',
- ),
- 1024 =>
- array (
- 0 => 1104,
- 1 => 'ѐ',
- ),
- 1025 =>
- array (
- 0 => 1105,
- 1 => 'ё',
- ),
- 1026 =>
- array (
- 0 => 1106,
- 1 => 'ђ',
- ),
- 1027 =>
- array (
- 0 => 1107,
- 1 => 'ѓ',
- ),
- 1028 =>
- array (
- 0 => 1108,
- 1 => 'є',
- ),
- 1029 =>
- array (
- 0 => 1109,
- 1 => 'ѕ',
- ),
- 1030 =>
- array (
- 0 => 1110,
- 1 => 'і',
- ),
- 1031 =>
- array (
- 0 => 1111,
- 1 => 'ї',
- ),
- 1032 =>
- array (
- 0 => 1112,
- 1 => 'ј',
- ),
- 1033 =>
- array (
- 0 => 1113,
- 1 => 'љ',
- ),
- 1034 =>
- array (
- 0 => 1114,
- 1 => 'њ',
- ),
- 1035 =>
- array (
- 0 => 1115,
- 1 => 'ћ',
- ),
- 1036 =>
- array (
- 0 => 1116,
- 1 => 'ќ',
- ),
- 1037 =>
- array (
- 0 => 1117,
- 1 => 'ѝ',
- ),
- 1038 =>
- array (
- 0 => 1118,
- 1 => 'ў',
- ),
- 1039 =>
- array (
- 0 => 1119,
- 1 => 'џ',
- ),
- 1040 =>
- array (
- 0 => 1072,
- 1 => 'а',
- ),
- 1041 =>
- array (
- 0 => 1073,
- 1 => 'б',
- ),
- 1042 =>
- array (
- 0 => 1074,
- 1 => 'в',
- ),
- 1043 =>
- array (
- 0 => 1075,
- 1 => 'г',
- ),
- 1044 =>
- array (
- 0 => 1076,
- 1 => 'д',
- ),
- 1045 =>
- array (
- 0 => 1077,
- 1 => 'е',
- ),
- 1046 =>
- array (
- 0 => 1078,
- 1 => 'ж',
- ),
- 1047 =>
- array (
- 0 => 1079,
- 1 => 'з',
- ),
- 1048 =>
- array (
- 0 => 1080,
- 1 => 'и',
- ),
- 1049 =>
- array (
- 0 => 1081,
- 1 => 'й',
- ),
- 1050 =>
- array (
- 0 => 1082,
- 1 => 'к',
- ),
- 1051 =>
- array (
- 0 => 1083,
- 1 => 'л',
- ),
- 1052 =>
- array (
- 0 => 1084,
- 1 => 'м',
- ),
- 1053 =>
- array (
- 0 => 1085,
- 1 => 'н',
- ),
- 1054 =>
- array (
- 0 => 1086,
- 1 => 'о',
- ),
- 1055 =>
- array (
- 0 => 1087,
- 1 => 'п',
- ),
- 1056 =>
- array (
- 0 => 1088,
- 1 => 'р',
- ),
- 1057 =>
- array (
- 0 => 1089,
- 1 => 'с',
- ),
- 1058 =>
- array (
- 0 => 1090,
- 1 => 'т',
- ),
- 1059 =>
- array (
- 0 => 1091,
- 1 => 'у',
- ),
- 1060 =>
- array (
- 0 => 1092,
- 1 => 'ф',
- ),
- 1061 =>
- array (
- 0 => 1093,
- 1 => 'х',
- ),
- 1062 =>
- array (
- 0 => 1094,
- 1 => 'ц',
- ),
- 1063 =>
- array (
- 0 => 1095,
- 1 => 'ч',
- ),
- 1064 =>
- array (
- 0 => 1096,
- 1 => 'ш',
- ),
- 1065 =>
- array (
- 0 => 1097,
- 1 => 'щ',
- ),
- 1066 =>
- array (
- 0 => 1098,
- 1 => 'ъ',
- ),
- 1067 =>
- array (
- 0 => 1099,
- 1 => 'ы',
- ),
- 1068 =>
- array (
- 0 => 1100,
- 1 => 'ь',
- ),
- 1069 =>
- array (
- 0 => 1101,
- 1 => 'э',
- ),
- 1070 =>
- array (
- 0 => 1102,
- 1 => 'ю',
- ),
- 1071 =>
- array (
- 0 => 1103,
- 1 => 'я',
- ),
- 1120 =>
- array (
- 0 => 1121,
- 1 => 'ѡ',
- ),
- 1122 =>
- array (
- 0 => 1123,
- 1 => 'ѣ',
- ),
- 1124 =>
- array (
- 0 => 1125,
- 1 => 'ѥ',
- ),
- 1126 =>
- array (
- 0 => 1127,
- 1 => 'ѧ',
- ),
- 1128 =>
- array (
- 0 => 1129,
- 1 => 'ѩ',
- ),
- 1130 =>
- array (
- 0 => 1131,
- 1 => 'ѫ',
- ),
- 1132 =>
- array (
- 0 => 1133,
- 1 => 'ѭ',
- ),
- 1134 =>
- array (
- 0 => 1135,
- 1 => 'ѯ',
- ),
- 1136 =>
- array (
- 0 => 1137,
- 1 => 'ѱ',
- ),
- 1138 =>
- array (
- 0 => 1139,
- 1 => 'ѳ',
- ),
- 1140 =>
- array (
- 0 => 1141,
- 1 => 'ѵ',
- ),
- 1142 =>
- array (
- 0 => 1143,
- 1 => 'ѷ',
- ),
- 1144 =>
- array (
- 0 => 1145,
- 1 => 'ѹ',
- ),
- 1146 =>
- array (
- 0 => 1147,
- 1 => 'ѻ',
- ),
- 1148 =>
- array (
- 0 => 1149,
- 1 => 'ѽ',
- ),
- 1150 =>
- array (
- 0 => 1151,
- 1 => 'ѿ',
- ),
- 1152 =>
- array (
- 0 => 1153,
- 1 => 'ҁ',
- ),
- 1162 =>
- array (
- 0 => 1163,
- 1 => 'ҋ',
- ),
- 1164 =>
- array (
- 0 => 1165,
- 1 => 'ҍ',
- ),
- 1166 =>
- array (
- 0 => 1167,
- 1 => 'ҏ',
- ),
- 1168 =>
- array (
- 0 => 1169,
- 1 => 'ґ',
- ),
- 1170 =>
- array (
- 0 => 1171,
- 1 => 'ғ',
- ),
- 1172 =>
- array (
- 0 => 1173,
- 1 => 'ҕ',
- ),
- 1174 =>
- array (
- 0 => 1175,
- 1 => 'җ',
- ),
- 1176 =>
- array (
- 0 => 1177,
- 1 => 'ҙ',
- ),
- 1178 =>
- array (
- 0 => 1179,
- 1 => 'қ',
- ),
- 1180 =>
- array (
- 0 => 1181,
- 1 => 'ҝ',
- ),
- 1182 =>
- array (
- 0 => 1183,
- 1 => 'ҟ',
- ),
- 1184 =>
- array (
- 0 => 1185,
- 1 => 'ҡ',
- ),
- 1186 =>
- array (
- 0 => 1187,
- 1 => 'ң',
- ),
- 1188 =>
- array (
- 0 => 1189,
- 1 => 'ҥ',
- ),
- 1190 =>
- array (
- 0 => 1191,
- 1 => 'ҧ',
- ),
- 1192 =>
- array (
- 0 => 1193,
- 1 => 'ҩ',
- ),
- 1194 =>
- array (
- 0 => 1195,
- 1 => 'ҫ',
- ),
- 1196 =>
- array (
- 0 => 1197,
- 1 => 'ҭ',
- ),
- 1198 =>
- array (
- 0 => 1199,
- 1 => 'ү',
- ),
- 1200 =>
- array (
- 0 => 1201,
- 1 => 'ұ',
- ),
- 1202 =>
- array (
- 0 => 1203,
- 1 => 'ҳ',
- ),
- 1204 =>
- array (
- 0 => 1205,
- 1 => 'ҵ',
- ),
- 1206 =>
- array (
- 0 => 1207,
- 1 => 'ҷ',
- ),
- 1208 =>
- array (
- 0 => 1209,
- 1 => 'ҹ',
- ),
- 1210 =>
- array (
- 0 => 1211,
- 1 => 'һ',
- ),
- 1212 =>
- array (
- 0 => 1213,
- 1 => 'ҽ',
- ),
- 1214 =>
- array (
- 0 => 1215,
- 1 => 'ҿ',
- ),
- 1216 =>
- array (
- 0 => 1231,
- 1 => 'ӏ',
- ),
- 1217 =>
- array (
- 0 => 1218,
- 1 => 'ӂ',
- ),
- 1219 =>
- array (
- 0 => 1220,
- 1 => 'ӄ',
- ),
- 1221 =>
- array (
- 0 => 1222,
- 1 => 'ӆ',
- ),
- 1223 =>
- array (
- 0 => 1224,
- 1 => 'ӈ',
- ),
- 1225 =>
- array (
- 0 => 1226,
- 1 => 'ӊ',
- ),
- 1227 =>
- array (
- 0 => 1228,
- 1 => 'ӌ',
- ),
- 1229 =>
- array (
- 0 => 1230,
- 1 => 'ӎ',
- ),
- 1232 =>
- array (
- 0 => 1233,
- 1 => 'ӑ',
- ),
- 1234 =>
- array (
- 0 => 1235,
- 1 => 'ӓ',
- ),
- 1236 =>
- array (
- 0 => 1237,
- 1 => 'ӕ',
- ),
- 1238 =>
- array (
- 0 => 1239,
- 1 => 'ӗ',
- ),
- 1240 =>
- array (
- 0 => 1241,
- 1 => 'ә',
- ),
- 1242 =>
- array (
- 0 => 1243,
- 1 => 'ӛ',
- ),
- 1244 =>
- array (
- 0 => 1245,
- 1 => 'ӝ',
- ),
- 1246 =>
- array (
- 0 => 1247,
- 1 => 'ӟ',
- ),
- 1248 =>
- array (
- 0 => 1249,
- 1 => 'ӡ',
- ),
- 1250 =>
- array (
- 0 => 1251,
- 1 => 'ӣ',
- ),
- 1252 =>
- array (
- 0 => 1253,
- 1 => 'ӥ',
- ),
- 1254 =>
- array (
- 0 => 1255,
- 1 => 'ӧ',
- ),
- 1256 =>
- array (
- 0 => 1257,
- 1 => 'ө',
- ),
- 1258 =>
- array (
- 0 => 1259,
- 1 => 'ӫ',
- ),
- 1260 =>
- array (
- 0 => 1261,
- 1 => 'ӭ',
- ),
- 1262 =>
- array (
- 0 => 1263,
- 1 => 'ӯ',
- ),
- 1264 =>
- array (
- 0 => 1265,
- 1 => 'ӱ',
- ),
- 1266 =>
- array (
- 0 => 1267,
- 1 => 'ӳ',
- ),
- 1268 =>
- array (
- 0 => 1269,
- 1 => 'ӵ',
- ),
- 1270 =>
- array (
- 0 => 1271,
- 1 => 'ӷ',
- ),
- 1272 =>
- array (
- 0 => 1273,
- 1 => 'ӹ',
- ),
- 1274 =>
- array (
- 0 => 1275,
- 1 => 'ӻ',
- ),
- 1276 =>
- array (
- 0 => 1277,
- 1 => 'ӽ',
- ),
- 1278 =>
- array (
- 0 => 1279,
- 1 => 'ӿ',
- ),
- 1280 =>
- array (
- 0 => 1281,
- 1 => 'ԁ',
- ),
- 1282 =>
- array (
- 0 => 1283,
- 1 => 'ԃ',
- ),
- 1284 =>
- array (
- 0 => 1285,
- 1 => 'ԅ',
- ),
- 1286 =>
- array (
- 0 => 1287,
- 1 => 'ԇ',
- ),
- 1288 =>
- array (
- 0 => 1289,
- 1 => 'ԉ',
- ),
- 1290 =>
- array (
- 0 => 1291,
- 1 => 'ԋ',
- ),
- 1292 =>
- array (
- 0 => 1293,
- 1 => 'ԍ',
- ),
- 1294 =>
- array (
- 0 => 1295,
- 1 => 'ԏ',
- ),
- 1296 =>
- array (
- 0 => 1297,
- 1 => 'ԑ',
- ),
- 1298 =>
- array (
- 0 => 1299,
- 1 => 'ԓ',
- ),
- 1300 =>
- array (
- 0 => 1301,
- 1 => 'ԕ',
- ),
- 1302 =>
- array (
- 0 => 1303,
- 1 => 'ԗ',
- ),
- 1304 =>
- array (
- 0 => 1305,
- 1 => 'ԙ',
- ),
- 1306 =>
- array (
- 0 => 1307,
- 1 => 'ԛ',
- ),
- 1308 =>
- array (
- 0 => 1309,
- 1 => 'ԝ',
- ),
- 1310 =>
- array (
- 0 => 1311,
- 1 => 'ԟ',
- ),
- 1312 =>
- array (
- 0 => 1313,
- 1 => 'ԡ',
- ),
- 1314 =>
- array (
- 0 => 1315,
- 1 => 'ԣ',
- ),
- 1316 =>
- array (
- 0 => 1317,
- 1 => 'ԥ',
- ),
- 1318 =>
- array (
- 0 => 1319,
- 1 => 'ԧ',
- ),
- 1320 =>
- array (
- 0 => 1321,
- 1 => 'ԩ',
- ),
- 1322 =>
- array (
- 0 => 1323,
- 1 => 'ԫ',
- ),
- 1324 =>
- array (
- 0 => 1325,
- 1 => 'ԭ',
- ),
- 1326 =>
- array (
- 0 => 1327,
- 1 => 'ԯ',
- ),
- 1329 =>
- array (
- 0 => 1377,
- 1 => 'ա',
- ),
- 1330 =>
- array (
- 0 => 1378,
- 1 => 'բ',
- ),
- 1331 =>
- array (
- 0 => 1379,
- 1 => 'գ',
- ),
- 1332 =>
- array (
- 0 => 1380,
- 1 => 'դ',
- ),
- 1333 =>
- array (
- 0 => 1381,
- 1 => 'ե',
- ),
- 1334 =>
- array (
- 0 => 1382,
- 1 => 'զ',
- ),
- 1335 =>
- array (
- 0 => 1383,
- 1 => 'է',
- ),
- 1336 =>
- array (
- 0 => 1384,
- 1 => 'ը',
- ),
- 1337 =>
- array (
- 0 => 1385,
- 1 => 'թ',
- ),
- 1338 =>
- array (
- 0 => 1386,
- 1 => 'ժ',
- ),
- 1339 =>
- array (
- 0 => 1387,
- 1 => 'ի',
- ),
- 1340 =>
- array (
- 0 => 1388,
- 1 => 'լ',
- ),
- 1341 =>
- array (
- 0 => 1389,
- 1 => 'խ',
- ),
- 1342 =>
- array (
- 0 => 1390,
- 1 => 'ծ',
- ),
- 1343 =>
- array (
- 0 => 1391,
- 1 => 'կ',
- ),
- 1344 =>
- array (
- 0 => 1392,
- 1 => 'հ',
- ),
- 1345 =>
- array (
- 0 => 1393,
- 1 => 'ձ',
- ),
- 1346 =>
- array (
- 0 => 1394,
- 1 => 'ղ',
- ),
- 1347 =>
- array (
- 0 => 1395,
- 1 => 'ճ',
- ),
- 1348 =>
- array (
- 0 => 1396,
- 1 => 'մ',
- ),
- 1349 =>
- array (
- 0 => 1397,
- 1 => 'յ',
- ),
- 1350 =>
- array (
- 0 => 1398,
- 1 => 'ն',
- ),
- 1351 =>
- array (
- 0 => 1399,
- 1 => 'շ',
- ),
- 1352 =>
- array (
- 0 => 1400,
- 1 => 'ո',
- ),
- 1353 =>
- array (
- 0 => 1401,
- 1 => 'չ',
- ),
- 1354 =>
- array (
- 0 => 1402,
- 1 => 'պ',
- ),
- 1355 =>
- array (
- 0 => 1403,
- 1 => 'ջ',
- ),
- 1356 =>
- array (
- 0 => 1404,
- 1 => 'ռ',
- ),
- 1357 =>
- array (
- 0 => 1405,
- 1 => 'ս',
- ),
- 1358 =>
- array (
- 0 => 1406,
- 1 => 'վ',
- ),
- 1359 =>
- array (
- 0 => 1407,
- 1 => 'տ',
- ),
- 1360 =>
- array (
- 0 => 1408,
- 1 => 'ր',
- ),
- 1361 =>
- array (
- 0 => 1409,
- 1 => 'ց',
- ),
- 1362 =>
- array (
- 0 => 1410,
- 1 => 'ւ',
- ),
- 1363 =>
- array (
- 0 => 1411,
- 1 => 'փ',
- ),
- 1364 =>
- array (
- 0 => 1412,
- 1 => 'ք',
- ),
- 1365 =>
- array (
- 0 => 1413,
- 1 => 'օ',
- ),
- 1366 =>
- array (
- 0 => 1414,
- 1 => 'ֆ',
- ),
- 4256 =>
- array (
- 0 => 11520,
- 1 => 'ⴀ',
- ),
- 4257 =>
- array (
- 0 => 11521,
- 1 => 'ⴁ',
- ),
- 4258 =>
- array (
- 0 => 11522,
- 1 => 'ⴂ',
- ),
- 4259 =>
- array (
- 0 => 11523,
- 1 => 'ⴃ',
- ),
- 4260 =>
- array (
- 0 => 11524,
- 1 => 'ⴄ',
- ),
- 4261 =>
- array (
- 0 => 11525,
- 1 => 'ⴅ',
- ),
- 4262 =>
- array (
- 0 => 11526,
- 1 => 'ⴆ',
- ),
- 4263 =>
- array (
- 0 => 11527,
- 1 => 'ⴇ',
- ),
- 4264 =>
- array (
- 0 => 11528,
- 1 => 'ⴈ',
- ),
- 4265 =>
- array (
- 0 => 11529,
- 1 => 'ⴉ',
- ),
- 4266 =>
- array (
- 0 => 11530,
- 1 => 'ⴊ',
- ),
- 4267 =>
- array (
- 0 => 11531,
- 1 => 'ⴋ',
- ),
- 4268 =>
- array (
- 0 => 11532,
- 1 => 'ⴌ',
- ),
- 4269 =>
- array (
- 0 => 11533,
- 1 => 'ⴍ',
- ),
- 4270 =>
- array (
- 0 => 11534,
- 1 => 'ⴎ',
- ),
- 4271 =>
- array (
- 0 => 11535,
- 1 => 'ⴏ',
- ),
- 4272 =>
- array (
- 0 => 11536,
- 1 => 'ⴐ',
- ),
- 4273 =>
- array (
- 0 => 11537,
- 1 => 'ⴑ',
- ),
- 4274 =>
- array (
- 0 => 11538,
- 1 => 'ⴒ',
- ),
- 4275 =>
- array (
- 0 => 11539,
- 1 => 'ⴓ',
- ),
- 4276 =>
- array (
- 0 => 11540,
- 1 => 'ⴔ',
- ),
- 4277 =>
- array (
- 0 => 11541,
- 1 => 'ⴕ',
- ),
- 4278 =>
- array (
- 0 => 11542,
- 1 => 'ⴖ',
- ),
- 4279 =>
- array (
- 0 => 11543,
- 1 => 'ⴗ',
- ),
- 4280 =>
- array (
- 0 => 11544,
- 1 => 'ⴘ',
- ),
- 4281 =>
- array (
- 0 => 11545,
- 1 => 'ⴙ',
- ),
- 4282 =>
- array (
- 0 => 11546,
- 1 => 'ⴚ',
- ),
- 4283 =>
- array (
- 0 => 11547,
- 1 => 'ⴛ',
- ),
- 4284 =>
- array (
- 0 => 11548,
- 1 => 'ⴜ',
- ),
- 4285 =>
- array (
- 0 => 11549,
- 1 => 'ⴝ',
- ),
- 4286 =>
- array (
- 0 => 11550,
- 1 => 'ⴞ',
- ),
- 4287 =>
- array (
- 0 => 11551,
- 1 => 'ⴟ',
- ),
- 4288 =>
- array (
- 0 => 11552,
- 1 => 'ⴠ',
- ),
- 4289 =>
- array (
- 0 => 11553,
- 1 => 'ⴡ',
- ),
- 4290 =>
- array (
- 0 => 11554,
- 1 => 'ⴢ',
- ),
- 4291 =>
- array (
- 0 => 11555,
- 1 => 'ⴣ',
- ),
- 4292 =>
- array (
- 0 => 11556,
- 1 => 'ⴤ',
- ),
- 4293 =>
- array (
- 0 => 11557,
- 1 => 'ⴥ',
- ),
- 4295 =>
- array (
- 0 => 11559,
- 1 => 'ⴧ',
- ),
- 4301 =>
- array (
- 0 => 11565,
- 1 => 'ⴭ',
- ),
- 5112 =>
- array (
- 0 => 5104,
- 1 => 'Ᏸ',
- ),
- 5113 =>
- array (
- 0 => 5105,
- 1 => 'Ᏹ',
- ),
- 5114 =>
- array (
- 0 => 5106,
- 1 => 'Ᏺ',
- ),
- 5115 =>
- array (
- 0 => 5107,
- 1 => 'Ᏻ',
- ),
- 5116 =>
- array (
- 0 => 5108,
- 1 => 'Ᏼ',
- ),
- 5117 =>
- array (
- 0 => 5109,
- 1 => 'Ᏽ',
- ),
- 7296 =>
- array (
- 0 => 1074,
- 1 => 'в',
- ),
- 7297 =>
- array (
- 0 => 1076,
- 1 => 'д',
- ),
- 7298 =>
- array (
- 0 => 1086,
- 1 => 'о',
- ),
- 7299 =>
- array (
- 0 => 1089,
- 1 => 'с',
- ),
- 7300 =>
- array (
- 0 => 1090,
- 1 => 'т',
- ),
- 7301 =>
- array (
- 0 => 1090,
- 1 => 'т',
- ),
- 7302 =>
- array (
- 0 => 1098,
- 1 => 'ъ',
- ),
- 7303 =>
- array (
- 0 => 1123,
- 1 => 'ѣ',
- ),
- 7304 =>
- array (
- 0 => 42571,
- 1 => 'ꙋ',
- ),
- 7680 =>
- array (
- 0 => 7681,
- 1 => 'ḁ',
- ),
- 7682 =>
- array (
- 0 => 7683,
- 1 => 'ḃ',
- ),
- 7684 =>
- array (
- 0 => 7685,
- 1 => 'ḅ',
- ),
- 7686 =>
- array (
- 0 => 7687,
- 1 => 'ḇ',
- ),
- 7688 =>
- array (
- 0 => 7689,
- 1 => 'ḉ',
- ),
- 7690 =>
- array (
- 0 => 7691,
- 1 => 'ḋ',
- ),
- 7692 =>
- array (
- 0 => 7693,
- 1 => 'ḍ',
- ),
- 7694 =>
- array (
- 0 => 7695,
- 1 => 'ḏ',
- ),
- 7696 =>
- array (
- 0 => 7697,
- 1 => 'ḑ',
- ),
- 7698 =>
- array (
- 0 => 7699,
- 1 => 'ḓ',
- ),
- 7700 =>
- array (
- 0 => 7701,
- 1 => 'ḕ',
- ),
- 7702 =>
- array (
- 0 => 7703,
- 1 => 'ḗ',
- ),
- 7704 =>
- array (
- 0 => 7705,
- 1 => 'ḙ',
- ),
- 7706 =>
- array (
- 0 => 7707,
- 1 => 'ḛ',
- ),
- 7708 =>
- array (
- 0 => 7709,
- 1 => 'ḝ',
- ),
- 7710 =>
- array (
- 0 => 7711,
- 1 => 'ḟ',
- ),
- 7712 =>
- array (
- 0 => 7713,
- 1 => 'ḡ',
- ),
- 7714 =>
- array (
- 0 => 7715,
- 1 => 'ḣ',
- ),
- 7716 =>
- array (
- 0 => 7717,
- 1 => 'ḥ',
- ),
- 7718 =>
- array (
- 0 => 7719,
- 1 => 'ḧ',
- ),
- 7720 =>
- array (
- 0 => 7721,
- 1 => 'ḩ',
- ),
- 7722 =>
- array (
- 0 => 7723,
- 1 => 'ḫ',
- ),
- 7724 =>
- array (
- 0 => 7725,
- 1 => 'ḭ',
- ),
- 7726 =>
- array (
- 0 => 7727,
- 1 => 'ḯ',
- ),
- 7728 =>
- array (
- 0 => 7729,
- 1 => 'ḱ',
- ),
- 7730 =>
- array (
- 0 => 7731,
- 1 => 'ḳ',
- ),
- 7732 =>
- array (
- 0 => 7733,
- 1 => 'ḵ',
- ),
- 7734 =>
- array (
- 0 => 7735,
- 1 => 'ḷ',
- ),
- 7736 =>
- array (
- 0 => 7737,
- 1 => 'ḹ',
- ),
- 7738 =>
- array (
- 0 => 7739,
- 1 => 'ḻ',
- ),
- 7740 =>
- array (
- 0 => 7741,
- 1 => 'ḽ',
- ),
- 7742 =>
- array (
- 0 => 7743,
- 1 => 'ḿ',
- ),
- 7744 =>
- array (
- 0 => 7745,
- 1 => 'ṁ',
- ),
- 7746 =>
- array (
- 0 => 7747,
- 1 => 'ṃ',
- ),
- 7748 =>
- array (
- 0 => 7749,
- 1 => 'ṅ',
- ),
- 7750 =>
- array (
- 0 => 7751,
- 1 => 'ṇ',
- ),
- 7752 =>
- array (
- 0 => 7753,
- 1 => 'ṉ',
- ),
- 7754 =>
- array (
- 0 => 7755,
- 1 => 'ṋ',
- ),
- 7756 =>
- array (
- 0 => 7757,
- 1 => 'ṍ',
- ),
- 7758 =>
- array (
- 0 => 7759,
- 1 => 'ṏ',
- ),
- 7760 =>
- array (
- 0 => 7761,
- 1 => 'ṑ',
- ),
- 7762 =>
- array (
- 0 => 7763,
- 1 => 'ṓ',
- ),
- 7764 =>
- array (
- 0 => 7765,
- 1 => 'ṕ',
- ),
- 7766 =>
- array (
- 0 => 7767,
- 1 => 'ṗ',
- ),
- 7768 =>
- array (
- 0 => 7769,
- 1 => 'ṙ',
- ),
- 7770 =>
- array (
- 0 => 7771,
- 1 => 'ṛ',
- ),
- 7772 =>
- array (
- 0 => 7773,
- 1 => 'ṝ',
- ),
- 7774 =>
- array (
- 0 => 7775,
- 1 => 'ṟ',
- ),
- 7776 =>
- array (
- 0 => 7777,
- 1 => 'ṡ',
- ),
- 7778 =>
- array (
- 0 => 7779,
- 1 => 'ṣ',
- ),
- 7780 =>
- array (
- 0 => 7781,
- 1 => 'ṥ',
- ),
- 7782 =>
- array (
- 0 => 7783,
- 1 => 'ṧ',
- ),
- 7784 =>
- array (
- 0 => 7785,
- 1 => 'ṩ',
- ),
- 7786 =>
- array (
- 0 => 7787,
- 1 => 'ṫ',
- ),
- 7788 =>
- array (
- 0 => 7789,
- 1 => 'ṭ',
- ),
- 7790 =>
- array (
- 0 => 7791,
- 1 => 'ṯ',
- ),
- 7792 =>
- array (
- 0 => 7793,
- 1 => 'ṱ',
- ),
- 7794 =>
- array (
- 0 => 7795,
- 1 => 'ṳ',
- ),
- 7796 =>
- array (
- 0 => 7797,
- 1 => 'ṵ',
- ),
- 7798 =>
- array (
- 0 => 7799,
- 1 => 'ṷ',
- ),
- 7800 =>
- array (
- 0 => 7801,
- 1 => 'ṹ',
- ),
- 7802 =>
- array (
- 0 => 7803,
- 1 => 'ṻ',
- ),
- 7804 =>
- array (
- 0 => 7805,
- 1 => 'ṽ',
- ),
- 7806 =>
- array (
- 0 => 7807,
- 1 => 'ṿ',
- ),
- 7808 =>
- array (
- 0 => 7809,
- 1 => 'ẁ',
- ),
- 7810 =>
- array (
- 0 => 7811,
- 1 => 'ẃ',
- ),
- 7812 =>
- array (
- 0 => 7813,
- 1 => 'ẅ',
- ),
- 7814 =>
- array (
- 0 => 7815,
- 1 => 'ẇ',
- ),
- 7816 =>
- array (
- 0 => 7817,
- 1 => 'ẉ',
- ),
- 7818 =>
- array (
- 0 => 7819,
- 1 => 'ẋ',
- ),
- 7820 =>
- array (
- 0 => 7821,
- 1 => 'ẍ',
- ),
- 7822 =>
- array (
- 0 => 7823,
- 1 => 'ẏ',
- ),
- 7824 =>
- array (
- 0 => 7825,
- 1 => 'ẑ',
- ),
- 7826 =>
- array (
- 0 => 7827,
- 1 => 'ẓ',
- ),
- 7828 =>
- array (
- 0 => 7829,
- 1 => 'ẕ',
- ),
- 7835 =>
- array (
- 0 => 7777,
- 1 => 'ṡ',
- ),
- 7838 =>
- array (
- 0 => 223,
- 1 => 'ß',
- ),
- 7840 =>
- array (
- 0 => 7841,
- 1 => 'ạ',
- ),
- 7842 =>
- array (
- 0 => 7843,
- 1 => 'ả',
- ),
- 7844 =>
- array (
- 0 => 7845,
- 1 => 'ấ',
- ),
- 7846 =>
- array (
- 0 => 7847,
- 1 => 'ầ',
- ),
- 7848 =>
- array (
- 0 => 7849,
- 1 => 'ẩ',
- ),
- 7850 =>
- array (
- 0 => 7851,
- 1 => 'ẫ',
- ),
- 7852 =>
- array (
- 0 => 7853,
- 1 => 'ậ',
- ),
- 7854 =>
- array (
- 0 => 7855,
- 1 => 'ắ',
- ),
- 7856 =>
- array (
- 0 => 7857,
- 1 => 'ằ',
- ),
- 7858 =>
- array (
- 0 => 7859,
- 1 => 'ẳ',
- ),
- 7860 =>
- array (
- 0 => 7861,
- 1 => 'ẵ',
- ),
- 7862 =>
- array (
- 0 => 7863,
- 1 => 'ặ',
- ),
- 7864 =>
- array (
- 0 => 7865,
- 1 => 'ẹ',
- ),
- 7866 =>
- array (
- 0 => 7867,
- 1 => 'ẻ',
- ),
- 7868 =>
- array (
- 0 => 7869,
- 1 => 'ẽ',
- ),
- 7870 =>
- array (
- 0 => 7871,
- 1 => 'ế',
- ),
- 7872 =>
- array (
- 0 => 7873,
- 1 => 'ề',
- ),
- 7874 =>
- array (
- 0 => 7875,
- 1 => 'ể',
- ),
- 7876 =>
- array (
- 0 => 7877,
- 1 => 'ễ',
- ),
- 7878 =>
- array (
- 0 => 7879,
- 1 => 'ệ',
- ),
- 7880 =>
- array (
- 0 => 7881,
- 1 => 'ỉ',
- ),
- 7882 =>
- array (
- 0 => 7883,
- 1 => 'ị',
- ),
- 7884 =>
- array (
- 0 => 7885,
- 1 => 'ọ',
- ),
- 7886 =>
- array (
- 0 => 7887,
- 1 => 'ỏ',
- ),
- 7888 =>
- array (
- 0 => 7889,
- 1 => 'ố',
- ),
- 7890 =>
- array (
- 0 => 7891,
- 1 => 'ồ',
- ),
- 7892 =>
- array (
- 0 => 7893,
- 1 => 'ổ',
- ),
- 7894 =>
- array (
- 0 => 7895,
- 1 => 'ỗ',
- ),
- 7896 =>
- array (
- 0 => 7897,
- 1 => 'ộ',
- ),
- 7898 =>
- array (
- 0 => 7899,
- 1 => 'ớ',
- ),
- 7900 =>
- array (
- 0 => 7901,
- 1 => 'ờ',
- ),
- 7902 =>
- array (
- 0 => 7903,
- 1 => 'ở',
- ),
- 7904 =>
- array (
- 0 => 7905,
- 1 => 'ỡ',
- ),
- 7906 =>
- array (
- 0 => 7907,
- 1 => 'ợ',
- ),
- 7908 =>
- array (
- 0 => 7909,
- 1 => 'ụ',
- ),
- 7910 =>
- array (
- 0 => 7911,
- 1 => 'ủ',
- ),
- 7912 =>
- array (
- 0 => 7913,
- 1 => 'ứ',
- ),
- 7914 =>
- array (
- 0 => 7915,
- 1 => 'ừ',
- ),
- 7916 =>
- array (
- 0 => 7917,
- 1 => 'ử',
- ),
- 7918 =>
- array (
- 0 => 7919,
- 1 => 'ữ',
- ),
- 7920 =>
- array (
- 0 => 7921,
- 1 => 'ự',
- ),
- 7922 =>
- array (
- 0 => 7923,
- 1 => 'ỳ',
- ),
- 7924 =>
- array (
- 0 => 7925,
- 1 => 'ỵ',
- ),
- 7926 =>
- array (
- 0 => 7927,
- 1 => 'ỷ',
- ),
- 7928 =>
- array (
- 0 => 7929,
- 1 => 'ỹ',
- ),
- 7930 =>
- array (
- 0 => 7931,
- 1 => 'ỻ',
- ),
- 7932 =>
- array (
- 0 => 7933,
- 1 => 'ỽ',
- ),
- 7934 =>
- array (
- 0 => 7935,
- 1 => 'ỿ',
- ),
- 7944 =>
- array (
- 0 => 7936,
- 1 => 'ἀ',
- ),
- 7945 =>
- array (
- 0 => 7937,
- 1 => 'ἁ',
- ),
- 7946 =>
- array (
- 0 => 7938,
- 1 => 'ἂ',
- ),
- 7947 =>
- array (
- 0 => 7939,
- 1 => 'ἃ',
- ),
- 7948 =>
- array (
- 0 => 7940,
- 1 => 'ἄ',
- ),
- 7949 =>
- array (
- 0 => 7941,
- 1 => 'ἅ',
- ),
- 7950 =>
- array (
- 0 => 7942,
- 1 => 'ἆ',
- ),
- 7951 =>
- array (
- 0 => 7943,
- 1 => 'ἇ',
- ),
- 7960 =>
- array (
- 0 => 7952,
- 1 => 'ἐ',
- ),
- 7961 =>
- array (
- 0 => 7953,
- 1 => 'ἑ',
- ),
- 7962 =>
- array (
- 0 => 7954,
- 1 => 'ἒ',
- ),
- 7963 =>
- array (
- 0 => 7955,
- 1 => 'ἓ',
- ),
- 7964 =>
- array (
- 0 => 7956,
- 1 => 'ἔ',
- ),
- 7965 =>
- array (
- 0 => 7957,
- 1 => 'ἕ',
- ),
- 7976 =>
- array (
- 0 => 7968,
- 1 => 'ἠ',
- ),
- 7977 =>
- array (
- 0 => 7969,
- 1 => 'ἡ',
- ),
- 7978 =>
- array (
- 0 => 7970,
- 1 => 'ἢ',
- ),
- 7979 =>
- array (
- 0 => 7971,
- 1 => 'ἣ',
- ),
- 7980 =>
- array (
- 0 => 7972,
- 1 => 'ἤ',
- ),
- 7981 =>
- array (
- 0 => 7973,
- 1 => 'ἥ',
- ),
- 7982 =>
- array (
- 0 => 7974,
- 1 => 'ἦ',
- ),
- 7983 =>
- array (
- 0 => 7975,
- 1 => 'ἧ',
- ),
- 7992 =>
- array (
- 0 => 7984,
- 1 => 'ἰ',
- ),
- 7993 =>
- array (
- 0 => 7985,
- 1 => 'ἱ',
- ),
- 7994 =>
- array (
- 0 => 7986,
- 1 => 'ἲ',
- ),
- 7995 =>
- array (
- 0 => 7987,
- 1 => 'ἳ',
- ),
- 7996 =>
- array (
- 0 => 7988,
- 1 => 'ἴ',
- ),
- 7997 =>
- array (
- 0 => 7989,
- 1 => 'ἵ',
- ),
- 7998 =>
- array (
- 0 => 7990,
- 1 => 'ἶ',
- ),
- 7999 =>
- array (
- 0 => 7991,
- 1 => 'ἷ',
- ),
- 8008 =>
- array (
- 0 => 8000,
- 1 => 'ὀ',
- ),
- 8009 =>
- array (
- 0 => 8001,
- 1 => 'ὁ',
- ),
- 8010 =>
- array (
- 0 => 8002,
- 1 => 'ὂ',
- ),
- 8011 =>
- array (
- 0 => 8003,
- 1 => 'ὃ',
- ),
- 8012 =>
- array (
- 0 => 8004,
- 1 => 'ὄ',
- ),
- 8013 =>
- array (
- 0 => 8005,
- 1 => 'ὅ',
- ),
- 8025 =>
- array (
- 0 => 8017,
- 1 => 'ὑ',
- ),
- 8027 =>
- array (
- 0 => 8019,
- 1 => 'ὓ',
- ),
- 8029 =>
- array (
- 0 => 8021,
- 1 => 'ὕ',
- ),
- 8031 =>
- array (
- 0 => 8023,
- 1 => 'ὗ',
- ),
- 8040 =>
- array (
- 0 => 8032,
- 1 => 'ὠ',
- ),
- 8041 =>
- array (
- 0 => 8033,
- 1 => 'ὡ',
- ),
- 8042 =>
- array (
- 0 => 8034,
- 1 => 'ὢ',
- ),
- 8043 =>
- array (
- 0 => 8035,
- 1 => 'ὣ',
- ),
- 8044 =>
- array (
- 0 => 8036,
- 1 => 'ὤ',
- ),
- 8045 =>
- array (
- 0 => 8037,
- 1 => 'ὥ',
- ),
- 8046 =>
- array (
- 0 => 8038,
- 1 => 'ὦ',
- ),
- 8047 =>
- array (
- 0 => 8039,
- 1 => 'ὧ',
- ),
- 8072 =>
- array (
- 0 => 8064,
- 1 => 'ᾀ',
- ),
- 8073 =>
- array (
- 0 => 8065,
- 1 => 'ᾁ',
- ),
- 8074 =>
- array (
- 0 => 8066,
- 1 => 'ᾂ',
- ),
- 8075 =>
- array (
- 0 => 8067,
- 1 => 'ᾃ',
- ),
- 8076 =>
- array (
- 0 => 8068,
- 1 => 'ᾄ',
- ),
- 8077 =>
- array (
- 0 => 8069,
- 1 => 'ᾅ',
- ),
- 8078 =>
- array (
- 0 => 8070,
- 1 => 'ᾆ',
- ),
- 8079 =>
- array (
- 0 => 8071,
- 1 => 'ᾇ',
- ),
- 8088 =>
- array (
- 0 => 8080,
- 1 => 'ᾐ',
- ),
- 8089 =>
- array (
- 0 => 8081,
- 1 => 'ᾑ',
- ),
- 8090 =>
- array (
- 0 => 8082,
- 1 => 'ᾒ',
- ),
- 8091 =>
- array (
- 0 => 8083,
- 1 => 'ᾓ',
- ),
- 8092 =>
- array (
- 0 => 8084,
- 1 => 'ᾔ',
- ),
- 8093 =>
- array (
- 0 => 8085,
- 1 => 'ᾕ',
- ),
- 8094 =>
- array (
- 0 => 8086,
- 1 => 'ᾖ',
- ),
- 8095 =>
- array (
- 0 => 8087,
- 1 => 'ᾗ',
- ),
- 8104 =>
- array (
- 0 => 8096,
- 1 => 'ᾠ',
- ),
- 8105 =>
- array (
- 0 => 8097,
- 1 => 'ᾡ',
- ),
- 8106 =>
- array (
- 0 => 8098,
- 1 => 'ᾢ',
- ),
- 8107 =>
- array (
- 0 => 8099,
- 1 => 'ᾣ',
- ),
- 8108 =>
- array (
- 0 => 8100,
- 1 => 'ᾤ',
- ),
- 8109 =>
- array (
- 0 => 8101,
- 1 => 'ᾥ',
- ),
- 8110 =>
- array (
- 0 => 8102,
- 1 => 'ᾦ',
- ),
- 8111 =>
- array (
- 0 => 8103,
- 1 => 'ᾧ',
- ),
- 8120 =>
- array (
- 0 => 8112,
- 1 => 'ᾰ',
- ),
- 8121 =>
- array (
- 0 => 8113,
- 1 => 'ᾱ',
- ),
- 8122 =>
- array (
- 0 => 8048,
- 1 => 'ὰ',
- ),
- 8123 =>
- array (
- 0 => 8049,
- 1 => 'ά',
- ),
- 8124 =>
- array (
- 0 => 8115,
- 1 => 'ᾳ',
- ),
- 8126 =>
- array (
- 0 => 953,
- 1 => 'ι',
- ),
- 8136 =>
- array (
- 0 => 8050,
- 1 => 'ὲ',
- ),
- 8137 =>
- array (
- 0 => 8051,
- 1 => 'έ',
- ),
- 8138 =>
- array (
- 0 => 8052,
- 1 => 'ὴ',
- ),
- 8139 =>
- array (
- 0 => 8053,
- 1 => 'ή',
- ),
- 8140 =>
- array (
- 0 => 8131,
- 1 => 'ῃ',
- ),
- 8152 =>
- array (
- 0 => 8144,
- 1 => 'ῐ',
- ),
- 8153 =>
- array (
- 0 => 8145,
- 1 => 'ῑ',
- ),
- 8154 =>
- array (
- 0 => 8054,
- 1 => 'ὶ',
- ),
- 8155 =>
- array (
- 0 => 8055,
- 1 => 'ί',
- ),
- 8168 =>
- array (
- 0 => 8160,
- 1 => 'ῠ',
- ),
- 8169 =>
- array (
- 0 => 8161,
- 1 => 'ῡ',
- ),
- 8170 =>
- array (
- 0 => 8058,
- 1 => 'ὺ',
- ),
- 8171 =>
- array (
- 0 => 8059,
- 1 => 'ύ',
- ),
- 8172 =>
- array (
- 0 => 8165,
- 1 => 'ῥ',
- ),
- 8184 =>
- array (
- 0 => 8056,
- 1 => 'ὸ',
- ),
- 8185 =>
- array (
- 0 => 8057,
- 1 => 'ό',
- ),
- 8186 =>
- array (
- 0 => 8060,
- 1 => 'ὼ',
- ),
- 8187 =>
- array (
- 0 => 8061,
- 1 => 'ώ',
- ),
- 8188 =>
- array (
- 0 => 8179,
- 1 => 'ῳ',
- ),
- 8486 =>
- array (
- 0 => 969,
- 1 => 'ω',
- ),
- 8490 =>
- array (
- 0 => 107,
- 1 => 'k',
- ),
- 8491 =>
- array (
- 0 => 229,
- 1 => 'å',
- ),
- 8498 =>
- array (
- 0 => 8526,
- 1 => 'ⅎ',
- ),
- 8544 =>
- array (
- 0 => 8560,
- 1 => 'ⅰ',
- ),
- 8545 =>
- array (
- 0 => 8561,
- 1 => 'ⅱ',
- ),
- 8546 =>
- array (
- 0 => 8562,
- 1 => 'ⅲ',
- ),
- 8547 =>
- array (
- 0 => 8563,
- 1 => 'ⅳ',
- ),
- 8548 =>
- array (
- 0 => 8564,
- 1 => 'ⅴ',
- ),
- 8549 =>
- array (
- 0 => 8565,
- 1 => 'ⅵ',
- ),
- 8550 =>
- array (
- 0 => 8566,
- 1 => 'ⅶ',
- ),
- 8551 =>
- array (
- 0 => 8567,
- 1 => 'ⅷ',
- ),
- 8552 =>
- array (
- 0 => 8568,
- 1 => 'ⅸ',
- ),
- 8553 =>
- array (
- 0 => 8569,
- 1 => 'ⅹ',
- ),
- 8554 =>
- array (
- 0 => 8570,
- 1 => 'ⅺ',
- ),
- 8555 =>
- array (
- 0 => 8571,
- 1 => 'ⅻ',
- ),
- 8556 =>
- array (
- 0 => 8572,
- 1 => 'ⅼ',
- ),
- 8557 =>
- array (
- 0 => 8573,
- 1 => 'ⅽ',
- ),
- 8558 =>
- array (
- 0 => 8574,
- 1 => 'ⅾ',
- ),
- 8559 =>
- array (
- 0 => 8575,
- 1 => 'ⅿ',
- ),
- 8579 =>
- array (
- 0 => 8580,
- 1 => 'ↄ',
- ),
- 9398 =>
- array (
- 0 => 9424,
- 1 => 'ⓐ',
- ),
- 9399 =>
- array (
- 0 => 9425,
- 1 => 'ⓑ',
- ),
- 9400 =>
- array (
- 0 => 9426,
- 1 => 'ⓒ',
- ),
- 9401 =>
- array (
- 0 => 9427,
- 1 => 'ⓓ',
- ),
- 9402 =>
- array (
- 0 => 9428,
- 1 => 'ⓔ',
- ),
- 9403 =>
- array (
- 0 => 9429,
- 1 => 'ⓕ',
- ),
- 9404 =>
- array (
- 0 => 9430,
- 1 => 'ⓖ',
- ),
- 9405 =>
- array (
- 0 => 9431,
- 1 => 'ⓗ',
- ),
- 9406 =>
- array (
- 0 => 9432,
- 1 => 'ⓘ',
- ),
- 9407 =>
- array (
- 0 => 9433,
- 1 => 'ⓙ',
- ),
- 9408 =>
- array (
- 0 => 9434,
- 1 => 'ⓚ',
- ),
- 9409 =>
- array (
- 0 => 9435,
- 1 => 'ⓛ',
- ),
- 9410 =>
- array (
- 0 => 9436,
- 1 => 'ⓜ',
- ),
- 9411 =>
- array (
- 0 => 9437,
- 1 => 'ⓝ',
- ),
- 9412 =>
- array (
- 0 => 9438,
- 1 => 'ⓞ',
- ),
- 9413 =>
- array (
- 0 => 9439,
- 1 => 'ⓟ',
- ),
- 9414 =>
- array (
- 0 => 9440,
- 1 => 'ⓠ',
- ),
- 9415 =>
- array (
- 0 => 9441,
- 1 => 'ⓡ',
- ),
- 9416 =>
- array (
- 0 => 9442,
- 1 => 'ⓢ',
- ),
- 9417 =>
- array (
- 0 => 9443,
- 1 => 'ⓣ',
- ),
- 9418 =>
- array (
- 0 => 9444,
- 1 => 'ⓤ',
- ),
- 9419 =>
- array (
- 0 => 9445,
- 1 => 'ⓥ',
- ),
- 9420 =>
- array (
- 0 => 9446,
- 1 => 'ⓦ',
- ),
- 9421 =>
- array (
- 0 => 9447,
- 1 => 'ⓧ',
- ),
- 9422 =>
- array (
- 0 => 9448,
- 1 => 'ⓨ',
- ),
- 9423 =>
- array (
- 0 => 9449,
- 1 => 'ⓩ',
- ),
- 11264 =>
- array (
- 0 => 11312,
- 1 => 'ⰰ',
- ),
- 11265 =>
- array (
- 0 => 11313,
- 1 => 'ⰱ',
- ),
- 11266 =>
- array (
- 0 => 11314,
- 1 => 'ⰲ',
- ),
- 11267 =>
- array (
- 0 => 11315,
- 1 => 'ⰳ',
- ),
- 11268 =>
- array (
- 0 => 11316,
- 1 => 'ⰴ',
- ),
- 11269 =>
- array (
- 0 => 11317,
- 1 => 'ⰵ',
- ),
- 11270 =>
- array (
- 0 => 11318,
- 1 => 'ⰶ',
- ),
- 11271 =>
- array (
- 0 => 11319,
- 1 => 'ⰷ',
- ),
- 11272 =>
- array (
- 0 => 11320,
- 1 => 'ⰸ',
- ),
- 11273 =>
- array (
- 0 => 11321,
- 1 => 'ⰹ',
- ),
- 11274 =>
- array (
- 0 => 11322,
- 1 => 'ⰺ',
- ),
- 11275 =>
- array (
- 0 => 11323,
- 1 => 'ⰻ',
- ),
- 11276 =>
- array (
- 0 => 11324,
- 1 => 'ⰼ',
- ),
- 11277 =>
- array (
- 0 => 11325,
- 1 => 'ⰽ',
- ),
- 11278 =>
- array (
- 0 => 11326,
- 1 => 'ⰾ',
- ),
- 11279 =>
- array (
- 0 => 11327,
- 1 => 'ⰿ',
- ),
- 11280 =>
- array (
- 0 => 11328,
- 1 => 'ⱀ',
- ),
- 11281 =>
- array (
- 0 => 11329,
- 1 => 'ⱁ',
- ),
- 11282 =>
- array (
- 0 => 11330,
- 1 => 'ⱂ',
- ),
- 11283 =>
- array (
- 0 => 11331,
- 1 => 'ⱃ',
- ),
- 11284 =>
- array (
- 0 => 11332,
- 1 => 'ⱄ',
- ),
- 11285 =>
- array (
- 0 => 11333,
- 1 => 'ⱅ',
- ),
- 11286 =>
- array (
- 0 => 11334,
- 1 => 'ⱆ',
- ),
- 11287 =>
- array (
- 0 => 11335,
- 1 => 'ⱇ',
- ),
- 11288 =>
- array (
- 0 => 11336,
- 1 => 'ⱈ',
- ),
- 11289 =>
- array (
- 0 => 11337,
- 1 => 'ⱉ',
- ),
- 11290 =>
- array (
- 0 => 11338,
- 1 => 'ⱊ',
- ),
- 11291 =>
- array (
- 0 => 11339,
- 1 => 'ⱋ',
- ),
- 11292 =>
- array (
- 0 => 11340,
- 1 => 'ⱌ',
- ),
- 11293 =>
- array (
- 0 => 11341,
- 1 => 'ⱍ',
- ),
- 11294 =>
- array (
- 0 => 11342,
- 1 => 'ⱎ',
- ),
- 11295 =>
- array (
- 0 => 11343,
- 1 => 'ⱏ',
- ),
- 11296 =>
- array (
- 0 => 11344,
- 1 => 'ⱐ',
- ),
- 11297 =>
- array (
- 0 => 11345,
- 1 => 'ⱑ',
- ),
- 11298 =>
- array (
- 0 => 11346,
- 1 => 'ⱒ',
- ),
- 11299 =>
- array (
- 0 => 11347,
- 1 => 'ⱓ',
- ),
- 11300 =>
- array (
- 0 => 11348,
- 1 => 'ⱔ',
- ),
- 11301 =>
- array (
- 0 => 11349,
- 1 => 'ⱕ',
- ),
- 11302 =>
- array (
- 0 => 11350,
- 1 => 'ⱖ',
- ),
- 11303 =>
- array (
- 0 => 11351,
- 1 => 'ⱗ',
- ),
- 11304 =>
- array (
- 0 => 11352,
- 1 => 'ⱘ',
- ),
- 11305 =>
- array (
- 0 => 11353,
- 1 => 'ⱙ',
- ),
- 11306 =>
- array (
- 0 => 11354,
- 1 => 'ⱚ',
- ),
- 11307 =>
- array (
- 0 => 11355,
- 1 => 'ⱛ',
- ),
- 11308 =>
- array (
- 0 => 11356,
- 1 => 'ⱜ',
- ),
- 11309 =>
- array (
- 0 => 11357,
- 1 => 'ⱝ',
- ),
- 11310 =>
- array (
- 0 => 11358,
- 1 => 'ⱞ',
- ),
- 11360 =>
- array (
- 0 => 11361,
- 1 => 'ⱡ',
- ),
- 11362 =>
- array (
- 0 => 619,
- 1 => 'ɫ',
- ),
- 11363 =>
- array (
- 0 => 7549,
- 1 => 'ᵽ',
- ),
- 11364 =>
- array (
- 0 => 637,
- 1 => 'ɽ',
- ),
- 11367 =>
- array (
- 0 => 11368,
- 1 => 'ⱨ',
- ),
- 11369 =>
- array (
- 0 => 11370,
- 1 => 'ⱪ',
- ),
- 11371 =>
- array (
- 0 => 11372,
- 1 => 'ⱬ',
- ),
- 11373 =>
- array (
- 0 => 593,
- 1 => 'ɑ',
- ),
- 11374 =>
- array (
- 0 => 625,
- 1 => 'ɱ',
- ),
- 11375 =>
- array (
- 0 => 592,
- 1 => 'ɐ',
- ),
- 11376 =>
- array (
- 0 => 594,
- 1 => 'ɒ',
- ),
- 11378 =>
- array (
- 0 => 11379,
- 1 => 'ⱳ',
- ),
- 11381 =>
- array (
- 0 => 11382,
- 1 => 'ⱶ',
- ),
- 11390 =>
- array (
- 0 => 575,
- 1 => 'ȿ',
- ),
- 11391 =>
- array (
- 0 => 576,
- 1 => 'ɀ',
- ),
- 11392 =>
- array (
- 0 => 11393,
- 1 => 'ⲁ',
- ),
- 11394 =>
- array (
- 0 => 11395,
- 1 => 'ⲃ',
- ),
- 11396 =>
- array (
- 0 => 11397,
- 1 => 'ⲅ',
- ),
- 11398 =>
- array (
- 0 => 11399,
- 1 => 'ⲇ',
- ),
- 11400 =>
- array (
- 0 => 11401,
- 1 => 'ⲉ',
- ),
- 11402 =>
- array (
- 0 => 11403,
- 1 => 'ⲋ',
- ),
- 11404 =>
- array (
- 0 => 11405,
- 1 => 'ⲍ',
- ),
- 11406 =>
- array (
- 0 => 11407,
- 1 => 'ⲏ',
- ),
- 11408 =>
- array (
- 0 => 11409,
- 1 => 'ⲑ',
- ),
- 11410 =>
- array (
- 0 => 11411,
- 1 => 'ⲓ',
- ),
- 11412 =>
- array (
- 0 => 11413,
- 1 => 'ⲕ',
- ),
- 11414 =>
- array (
- 0 => 11415,
- 1 => 'ⲗ',
- ),
- 11416 =>
- array (
- 0 => 11417,
- 1 => 'ⲙ',
- ),
- 11418 =>
- array (
- 0 => 11419,
- 1 => 'ⲛ',
- ),
- 11420 =>
- array (
- 0 => 11421,
- 1 => 'ⲝ',
- ),
- 11422 =>
- array (
- 0 => 11423,
- 1 => 'ⲟ',
- ),
- 11424 =>
- array (
- 0 => 11425,
- 1 => 'ⲡ',
- ),
- 11426 =>
- array (
- 0 => 11427,
- 1 => 'ⲣ',
- ),
- 11428 =>
- array (
- 0 => 11429,
- 1 => 'ⲥ',
- ),
- 11430 =>
- array (
- 0 => 11431,
- 1 => 'ⲧ',
- ),
- 11432 =>
- array (
- 0 => 11433,
- 1 => 'ⲩ',
- ),
- 11434 =>
- array (
- 0 => 11435,
- 1 => 'ⲫ',
- ),
- 11436 =>
- array (
- 0 => 11437,
- 1 => 'ⲭ',
- ),
- 11438 =>
- array (
- 0 => 11439,
- 1 => 'ⲯ',
- ),
- 11440 =>
- array (
- 0 => 11441,
- 1 => 'ⲱ',
- ),
- 11442 =>
- array (
- 0 => 11443,
- 1 => 'ⲳ',
- ),
- 11444 =>
- array (
- 0 => 11445,
- 1 => 'ⲵ',
- ),
- 11446 =>
- array (
- 0 => 11447,
- 1 => 'ⲷ',
- ),
- 11448 =>
- array (
- 0 => 11449,
- 1 => 'ⲹ',
- ),
- 11450 =>
- array (
- 0 => 11451,
- 1 => 'ⲻ',
- ),
- 11452 =>
- array (
- 0 => 11453,
- 1 => 'ⲽ',
- ),
- 11454 =>
- array (
- 0 => 11455,
- 1 => 'ⲿ',
- ),
- 11456 =>
- array (
- 0 => 11457,
- 1 => 'ⳁ',
- ),
- 11458 =>
- array (
- 0 => 11459,
- 1 => 'ⳃ',
- ),
- 11460 =>
- array (
- 0 => 11461,
- 1 => 'ⳅ',
- ),
- 11462 =>
- array (
- 0 => 11463,
- 1 => 'ⳇ',
- ),
- 11464 =>
- array (
- 0 => 11465,
- 1 => 'ⳉ',
- ),
- 11466 =>
- array (
- 0 => 11467,
- 1 => 'ⳋ',
- ),
- 11468 =>
- array (
- 0 => 11469,
- 1 => 'ⳍ',
- ),
- 11470 =>
- array (
- 0 => 11471,
- 1 => 'ⳏ',
- ),
- 11472 =>
- array (
- 0 => 11473,
- 1 => 'ⳑ',
- ),
- 11474 =>
- array (
- 0 => 11475,
- 1 => 'ⳓ',
- ),
- 11476 =>
- array (
- 0 => 11477,
- 1 => 'ⳕ',
- ),
- 11478 =>
- array (
- 0 => 11479,
- 1 => 'ⳗ',
- ),
- 11480 =>
- array (
- 0 => 11481,
- 1 => 'ⳙ',
- ),
- 11482 =>
- array (
- 0 => 11483,
- 1 => 'ⳛ',
- ),
- 11484 =>
- array (
- 0 => 11485,
- 1 => 'ⳝ',
- ),
- 11486 =>
- array (
- 0 => 11487,
- 1 => 'ⳟ',
- ),
- 11488 =>
- array (
- 0 => 11489,
- 1 => 'ⳡ',
- ),
- 11490 =>
- array (
- 0 => 11491,
- 1 => 'ⳣ',
- ),
- 11499 =>
- array (
- 0 => 11500,
- 1 => 'ⳬ',
- ),
- 11501 =>
- array (
- 0 => 11502,
- 1 => 'ⳮ',
- ),
- 11506 =>
- array (
- 0 => 11507,
- 1 => 'ⳳ',
- ),
- 42560 =>
- array (
- 0 => 42561,
- 1 => 'ꙁ',
- ),
- 42562 =>
- array (
- 0 => 42563,
- 1 => 'ꙃ',
- ),
- 42564 =>
- array (
- 0 => 42565,
- 1 => 'ꙅ',
- ),
- 42566 =>
- array (
- 0 => 42567,
- 1 => 'ꙇ',
- ),
- 42568 =>
- array (
- 0 => 42569,
- 1 => 'ꙉ',
- ),
- 42570 =>
- array (
- 0 => 42571,
- 1 => 'ꙋ',
- ),
- 42572 =>
- array (
- 0 => 42573,
- 1 => 'ꙍ',
- ),
- 42574 =>
- array (
- 0 => 42575,
- 1 => 'ꙏ',
- ),
- 42576 =>
- array (
- 0 => 42577,
- 1 => 'ꙑ',
- ),
- 42578 =>
- array (
- 0 => 42579,
- 1 => 'ꙓ',
- ),
- 42580 =>
- array (
- 0 => 42581,
- 1 => 'ꙕ',
- ),
- 42582 =>
- array (
- 0 => 42583,
- 1 => 'ꙗ',
- ),
- 42584 =>
- array (
- 0 => 42585,
- 1 => 'ꙙ',
- ),
- 42586 =>
- array (
- 0 => 42587,
- 1 => 'ꙛ',
- ),
- 42588 =>
- array (
- 0 => 42589,
- 1 => 'ꙝ',
- ),
- 42590 =>
- array (
- 0 => 42591,
- 1 => 'ꙟ',
- ),
- 42592 =>
- array (
- 0 => 42593,
- 1 => 'ꙡ',
- ),
- 42594 =>
- array (
- 0 => 42595,
- 1 => 'ꙣ',
- ),
- 42596 =>
- array (
- 0 => 42597,
- 1 => 'ꙥ',
- ),
- 42598 =>
- array (
- 0 => 42599,
- 1 => 'ꙧ',
- ),
- 42600 =>
- array (
- 0 => 42601,
- 1 => 'ꙩ',
- ),
- 42602 =>
- array (
- 0 => 42603,
- 1 => 'ꙫ',
- ),
- 42604 =>
- array (
- 0 => 42605,
- 1 => 'ꙭ',
- ),
- 42624 =>
- array (
- 0 => 42625,
- 1 => 'ꚁ',
- ),
- 42626 =>
- array (
- 0 => 42627,
- 1 => 'ꚃ',
- ),
- 42628 =>
- array (
- 0 => 42629,
- 1 => 'ꚅ',
- ),
- 42630 =>
- array (
- 0 => 42631,
- 1 => 'ꚇ',
- ),
- 42632 =>
- array (
- 0 => 42633,
- 1 => 'ꚉ',
- ),
- 42634 =>
- array (
- 0 => 42635,
- 1 => 'ꚋ',
- ),
- 42636 =>
- array (
- 0 => 42637,
- 1 => 'ꚍ',
- ),
- 42638 =>
- array (
- 0 => 42639,
- 1 => 'ꚏ',
- ),
- 42640 =>
- array (
- 0 => 42641,
- 1 => 'ꚑ',
- ),
- 42642 =>
- array (
- 0 => 42643,
- 1 => 'ꚓ',
- ),
- 42644 =>
- array (
- 0 => 42645,
- 1 => 'ꚕ',
- ),
- 42646 =>
- array (
- 0 => 42647,
- 1 => 'ꚗ',
- ),
- 42648 =>
- array (
- 0 => 42649,
- 1 => 'ꚙ',
- ),
- 42650 =>
- array (
- 0 => 42651,
- 1 => 'ꚛ',
- ),
- 42786 =>
- array (
- 0 => 42787,
- 1 => 'ꜣ',
- ),
- 42788 =>
- array (
- 0 => 42789,
- 1 => 'ꜥ',
- ),
- 42790 =>
- array (
- 0 => 42791,
- 1 => 'ꜧ',
- ),
- 42792 =>
- array (
- 0 => 42793,
- 1 => 'ꜩ',
- ),
- 42794 =>
- array (
- 0 => 42795,
- 1 => 'ꜫ',
- ),
- 42796 =>
- array (
- 0 => 42797,
- 1 => 'ꜭ',
- ),
- 42798 =>
- array (
- 0 => 42799,
- 1 => 'ꜯ',
- ),
- 42802 =>
- array (
- 0 => 42803,
- 1 => 'ꜳ',
- ),
- 42804 =>
- array (
- 0 => 42805,
- 1 => 'ꜵ',
- ),
- 42806 =>
- array (
- 0 => 42807,
- 1 => 'ꜷ',
- ),
- 42808 =>
- array (
- 0 => 42809,
- 1 => 'ꜹ',
- ),
- 42810 =>
- array (
- 0 => 42811,
- 1 => 'ꜻ',
- ),
- 42812 =>
- array (
- 0 => 42813,
- 1 => 'ꜽ',
- ),
- 42814 =>
- array (
- 0 => 42815,
- 1 => 'ꜿ',
- ),
- 42816 =>
- array (
- 0 => 42817,
- 1 => 'ꝁ',
- ),
- 42818 =>
- array (
- 0 => 42819,
- 1 => 'ꝃ',
- ),
- 42820 =>
- array (
- 0 => 42821,
- 1 => 'ꝅ',
- ),
- 42822 =>
- array (
- 0 => 42823,
- 1 => 'ꝇ',
- ),
- 42824 =>
- array (
- 0 => 42825,
- 1 => 'ꝉ',
- ),
- 42826 =>
- array (
- 0 => 42827,
- 1 => 'ꝋ',
- ),
- 42828 =>
- array (
- 0 => 42829,
- 1 => 'ꝍ',
- ),
- 42830 =>
- array (
- 0 => 42831,
- 1 => 'ꝏ',
- ),
- 42832 =>
- array (
- 0 => 42833,
- 1 => 'ꝑ',
- ),
- 42834 =>
- array (
- 0 => 42835,
- 1 => 'ꝓ',
- ),
- 42836 =>
- array (
- 0 => 42837,
- 1 => 'ꝕ',
- ),
- 42838 =>
- array (
- 0 => 42839,
- 1 => 'ꝗ',
- ),
- 42840 =>
- array (
- 0 => 42841,
- 1 => 'ꝙ',
- ),
- 42842 =>
- array (
- 0 => 42843,
- 1 => 'ꝛ',
- ),
- 42844 =>
- array (
- 0 => 42845,
- 1 => 'ꝝ',
- ),
- 42846 =>
- array (
- 0 => 42847,
- 1 => 'ꝟ',
- ),
- 42848 =>
- array (
- 0 => 42849,
- 1 => 'ꝡ',
- ),
- 42850 =>
- array (
- 0 => 42851,
- 1 => 'ꝣ',
- ),
- 42852 =>
- array (
- 0 => 42853,
- 1 => 'ꝥ',
- ),
- 42854 =>
- array (
- 0 => 42855,
- 1 => 'ꝧ',
- ),
- 42856 =>
- array (
- 0 => 42857,
- 1 => 'ꝩ',
- ),
- 42858 =>
- array (
- 0 => 42859,
- 1 => 'ꝫ',
- ),
- 42860 =>
- array (
- 0 => 42861,
- 1 => 'ꝭ',
- ),
- 42862 =>
- array (
- 0 => 42863,
- 1 => 'ꝯ',
- ),
- 42873 =>
- array (
- 0 => 42874,
- 1 => 'ꝺ',
- ),
- 42875 =>
- array (
- 0 => 42876,
- 1 => 'ꝼ',
- ),
- 42877 =>
- array (
- 0 => 7545,
- 1 => 'ᵹ',
- ),
- 42878 =>
- array (
- 0 => 42879,
- 1 => 'ꝿ',
- ),
- 42880 =>
- array (
- 0 => 42881,
- 1 => 'ꞁ',
- ),
- 42882 =>
- array (
- 0 => 42883,
- 1 => 'ꞃ',
- ),
- 42884 =>
- array (
- 0 => 42885,
- 1 => 'ꞅ',
- ),
- 42886 =>
- array (
- 0 => 42887,
- 1 => 'ꞇ',
- ),
- 42891 =>
- array (
- 0 => 42892,
- 1 => 'ꞌ',
- ),
- 42893 =>
- array (
- 0 => 613,
- 1 => 'ɥ',
- ),
- 42896 =>
- array (
- 0 => 42897,
- 1 => 'ꞑ',
- ),
- 42898 =>
- array (
- 0 => 42899,
- 1 => 'ꞓ',
- ),
- 42902 =>
- array (
- 0 => 42903,
- 1 => 'ꞗ',
- ),
- 42904 =>
- array (
- 0 => 42905,
- 1 => 'ꞙ',
- ),
- 42906 =>
- array (
- 0 => 42907,
- 1 => 'ꞛ',
- ),
- 42908 =>
- array (
- 0 => 42909,
- 1 => 'ꞝ',
- ),
- 42910 =>
- array (
- 0 => 42911,
- 1 => 'ꞟ',
- ),
- 42912 =>
- array (
- 0 => 42913,
- 1 => 'ꞡ',
- ),
- 42914 =>
- array (
- 0 => 42915,
- 1 => 'ꞣ',
- ),
- 42916 =>
- array (
- 0 => 42917,
- 1 => 'ꞥ',
- ),
- 42918 =>
- array (
- 0 => 42919,
- 1 => 'ꞧ',
- ),
- 42920 =>
- array (
- 0 => 42921,
- 1 => 'ꞩ',
- ),
- 42922 =>
- array (
- 0 => 614,
- 1 => 'ɦ',
- ),
- 42923 =>
- array (
- 0 => 604,
- 1 => 'ɜ',
- ),
- 42924 =>
- array (
- 0 => 609,
- 1 => 'ɡ',
- ),
- 42925 =>
- array (
- 0 => 620,
- 1 => 'ɬ',
- ),
- 42926 =>
- array (
- 0 => 618,
- 1 => 'ɪ',
- ),
- 42928 =>
- array (
- 0 => 670,
- 1 => 'ʞ',
- ),
- 42929 =>
- array (
- 0 => 647,
- 1 => 'ʇ',
- ),
- 42930 =>
- array (
- 0 => 669,
- 1 => 'ʝ',
- ),
- 42931 =>
- array (
- 0 => 43859,
- 1 => 'ꭓ',
- ),
- 42932 =>
- array (
- 0 => 42933,
- 1 => 'ꞵ',
- ),
- 42934 =>
- array (
- 0 => 42935,
- 1 => 'ꞷ',
- ),
- 43888 =>
- array (
- 0 => 5024,
- 1 => 'Ꭰ',
- ),
- 43889 =>
- array (
- 0 => 5025,
- 1 => 'Ꭱ',
- ),
- 43890 =>
- array (
- 0 => 5026,
- 1 => 'Ꭲ',
- ),
- 43891 =>
- array (
- 0 => 5027,
- 1 => 'Ꭳ',
- ),
- 43892 =>
- array (
- 0 => 5028,
- 1 => 'Ꭴ',
- ),
- 43893 =>
- array (
- 0 => 5029,
- 1 => 'Ꭵ',
- ),
- 43894 =>
- array (
- 0 => 5030,
- 1 => 'Ꭶ',
- ),
- 43895 =>
- array (
- 0 => 5031,
- 1 => 'Ꭷ',
- ),
- 43896 =>
- array (
- 0 => 5032,
- 1 => 'Ꭸ',
- ),
- 43897 =>
- array (
- 0 => 5033,
- 1 => 'Ꭹ',
- ),
- 43898 =>
- array (
- 0 => 5034,
- 1 => 'Ꭺ',
- ),
- 43899 =>
- array (
- 0 => 5035,
- 1 => 'Ꭻ',
- ),
- 43900 =>
- array (
- 0 => 5036,
- 1 => 'Ꭼ',
- ),
- 43901 =>
- array (
- 0 => 5037,
- 1 => 'Ꭽ',
- ),
- 43902 =>
- array (
- 0 => 5038,
- 1 => 'Ꭾ',
- ),
- 43903 =>
- array (
- 0 => 5039,
- 1 => 'Ꭿ',
- ),
- 43904 =>
- array (
- 0 => 5040,
- 1 => 'Ꮀ',
- ),
- 43905 =>
- array (
- 0 => 5041,
- 1 => 'Ꮁ',
- ),
- 43906 =>
- array (
- 0 => 5042,
- 1 => 'Ꮂ',
- ),
- 43907 =>
- array (
- 0 => 5043,
- 1 => 'Ꮃ',
- ),
- 43908 =>
- array (
- 0 => 5044,
- 1 => 'Ꮄ',
- ),
- 43909 =>
- array (
- 0 => 5045,
- 1 => 'Ꮅ',
- ),
- 43910 =>
- array (
- 0 => 5046,
- 1 => 'Ꮆ',
- ),
- 43911 =>
- array (
- 0 => 5047,
- 1 => 'Ꮇ',
- ),
- 43912 =>
- array (
- 0 => 5048,
- 1 => 'Ꮈ',
- ),
- 43913 =>
- array (
- 0 => 5049,
- 1 => 'Ꮉ',
- ),
- 43914 =>
- array (
- 0 => 5050,
- 1 => 'Ꮊ',
- ),
- 43915 =>
- array (
- 0 => 5051,
- 1 => 'Ꮋ',
- ),
- 43916 =>
- array (
- 0 => 5052,
- 1 => 'Ꮌ',
- ),
- 43917 =>
- array (
- 0 => 5053,
- 1 => 'Ꮍ',
- ),
- 43918 =>
- array (
- 0 => 5054,
- 1 => 'Ꮎ',
- ),
- 43919 =>
- array (
- 0 => 5055,
- 1 => 'Ꮏ',
- ),
- 43920 =>
- array (
- 0 => 5056,
- 1 => 'Ꮐ',
- ),
- 43921 =>
- array (
- 0 => 5057,
- 1 => 'Ꮑ',
- ),
- 43922 =>
- array (
- 0 => 5058,
- 1 => 'Ꮒ',
- ),
- 43923 =>
- array (
- 0 => 5059,
- 1 => 'Ꮓ',
- ),
- 43924 =>
- array (
- 0 => 5060,
- 1 => 'Ꮔ',
- ),
- 43925 =>
- array (
- 0 => 5061,
- 1 => 'Ꮕ',
- ),
- 43926 =>
- array (
- 0 => 5062,
- 1 => 'Ꮖ',
- ),
- 43927 =>
- array (
- 0 => 5063,
- 1 => 'Ꮗ',
- ),
- 43928 =>
- array (
- 0 => 5064,
- 1 => 'Ꮘ',
- ),
- 43929 =>
- array (
- 0 => 5065,
- 1 => 'Ꮙ',
- ),
- 43930 =>
- array (
- 0 => 5066,
- 1 => 'Ꮚ',
- ),
- 43931 =>
- array (
- 0 => 5067,
- 1 => 'Ꮛ',
- ),
- 43932 =>
- array (
- 0 => 5068,
- 1 => 'Ꮜ',
- ),
- 43933 =>
- array (
- 0 => 5069,
- 1 => 'Ꮝ',
- ),
- 43934 =>
- array (
- 0 => 5070,
- 1 => 'Ꮞ',
- ),
- 43935 =>
- array (
- 0 => 5071,
- 1 => 'Ꮟ',
- ),
- 43936 =>
- array (
- 0 => 5072,
- 1 => 'Ꮠ',
- ),
- 43937 =>
- array (
- 0 => 5073,
- 1 => 'Ꮡ',
- ),
- 43938 =>
- array (
- 0 => 5074,
- 1 => 'Ꮢ',
- ),
- 43939 =>
- array (
- 0 => 5075,
- 1 => 'Ꮣ',
- ),
- 43940 =>
- array (
- 0 => 5076,
- 1 => 'Ꮤ',
- ),
- 43941 =>
- array (
- 0 => 5077,
- 1 => 'Ꮥ',
- ),
- 43942 =>
- array (
- 0 => 5078,
- 1 => 'Ꮦ',
- ),
- 43943 =>
- array (
- 0 => 5079,
- 1 => 'Ꮧ',
- ),
- 43944 =>
- array (
- 0 => 5080,
- 1 => 'Ꮨ',
- ),
- 43945 =>
- array (
- 0 => 5081,
- 1 => 'Ꮩ',
- ),
- 43946 =>
- array (
- 0 => 5082,
- 1 => 'Ꮪ',
- ),
- 43947 =>
- array (
- 0 => 5083,
- 1 => 'Ꮫ',
- ),
- 43948 =>
- array (
- 0 => 5084,
- 1 => 'Ꮬ',
- ),
- 43949 =>
- array (
- 0 => 5085,
- 1 => 'Ꮭ',
- ),
- 43950 =>
- array (
- 0 => 5086,
- 1 => 'Ꮮ',
- ),
- 43951 =>
- array (
- 0 => 5087,
- 1 => 'Ꮯ',
- ),
- 43952 =>
- array (
- 0 => 5088,
- 1 => 'Ꮰ',
- ),
- 43953 =>
- array (
- 0 => 5089,
- 1 => 'Ꮱ',
- ),
- 43954 =>
- array (
- 0 => 5090,
- 1 => 'Ꮲ',
- ),
- 43955 =>
- array (
- 0 => 5091,
- 1 => 'Ꮳ',
- ),
- 43956 =>
- array (
- 0 => 5092,
- 1 => 'Ꮴ',
- ),
- 43957 =>
- array (
- 0 => 5093,
- 1 => 'Ꮵ',
- ),
- 43958 =>
- array (
- 0 => 5094,
- 1 => 'Ꮶ',
- ),
- 43959 =>
- array (
- 0 => 5095,
- 1 => 'Ꮷ',
- ),
- 43960 =>
- array (
- 0 => 5096,
- 1 => 'Ꮸ',
- ),
- 43961 =>
- array (
- 0 => 5097,
- 1 => 'Ꮹ',
- ),
- 43962 =>
- array (
- 0 => 5098,
- 1 => 'Ꮺ',
- ),
- 43963 =>
- array (
- 0 => 5099,
- 1 => 'Ꮻ',
- ),
- 43964 =>
- array (
- 0 => 5100,
- 1 => 'Ꮼ',
- ),
- 43965 =>
- array (
- 0 => 5101,
- 1 => 'Ꮽ',
- ),
- 43966 =>
- array (
- 0 => 5102,
- 1 => 'Ꮾ',
- ),
- 43967 =>
- array (
- 0 => 5103,
- 1 => 'Ꮿ',
- ),
- 65313 =>
- array (
- 0 => 65345,
- 1 => 'a',
- ),
- 65314 =>
- array (
- 0 => 65346,
- 1 => 'b',
- ),
- 65315 =>
- array (
- 0 => 65347,
- 1 => 'c',
- ),
- 65316 =>
- array (
- 0 => 65348,
- 1 => 'd',
- ),
- 65317 =>
- array (
- 0 => 65349,
- 1 => 'e',
- ),
- 65318 =>
- array (
- 0 => 65350,
- 1 => 'f',
- ),
- 65319 =>
- array (
- 0 => 65351,
- 1 => 'g',
- ),
- 65320 =>
- array (
- 0 => 65352,
- 1 => 'h',
- ),
- 65321 =>
- array (
- 0 => 65353,
- 1 => 'i',
- ),
- 65322 =>
- array (
- 0 => 65354,
- 1 => 'j',
- ),
- 65323 =>
- array (
- 0 => 65355,
- 1 => 'k',
- ),
- 65324 =>
- array (
- 0 => 65356,
- 1 => 'l',
- ),
- 65325 =>
- array (
- 0 => 65357,
- 1 => 'm',
- ),
- 65326 =>
- array (
- 0 => 65358,
- 1 => 'n',
- ),
- 65327 =>
- array (
- 0 => 65359,
- 1 => 'o',
- ),
- 65328 =>
- array (
- 0 => 65360,
- 1 => 'p',
- ),
- 65329 =>
- array (
- 0 => 65361,
- 1 => 'q',
- ),
- 65330 =>
- array (
- 0 => 65362,
- 1 => 'r',
- ),
- 65331 =>
- array (
- 0 => 65363,
- 1 => 's',
- ),
- 65332 =>
- array (
- 0 => 65364,
- 1 => 't',
- ),
- 65333 =>
- array (
- 0 => 65365,
- 1 => 'u',
- ),
- 65334 =>
- array (
- 0 => 65366,
- 1 => 'v',
- ),
- 65335 =>
- array (
- 0 => 65367,
- 1 => 'w',
- ),
- 65336 =>
- array (
- 0 => 65368,
- 1 => 'x',
- ),
- 65337 =>
- array (
- 0 => 65369,
- 1 => 'y',
- ),
- 65338 =>
- array (
- 0 => 65370,
- 1 => 'z',
- ),
- 66560 =>
- array (
- 0 => 66600,
- 1 => '𐐨',
- ),
- 66561 =>
- array (
- 0 => 66601,
- 1 => '𐐩',
- ),
- 66562 =>
- array (
- 0 => 66602,
- 1 => '𐐪',
- ),
- 66563 =>
- array (
- 0 => 66603,
- 1 => '𐐫',
- ),
- 66564 =>
- array (
- 0 => 66604,
- 1 => '𐐬',
- ),
- 66565 =>
- array (
- 0 => 66605,
- 1 => '𐐭',
- ),
- 66566 =>
- array (
- 0 => 66606,
- 1 => '𐐮',
- ),
- 66567 =>
- array (
- 0 => 66607,
- 1 => '𐐯',
- ),
- 66568 =>
- array (
- 0 => 66608,
- 1 => '𐐰',
- ),
- 66569 =>
- array (
- 0 => 66609,
- 1 => '𐐱',
- ),
- 66570 =>
- array (
- 0 => 66610,
- 1 => '𐐲',
- ),
- 66571 =>
- array (
- 0 => 66611,
- 1 => '𐐳',
- ),
- 66572 =>
- array (
- 0 => 66612,
- 1 => '𐐴',
- ),
- 66573 =>
- array (
- 0 => 66613,
- 1 => '𐐵',
- ),
- 66574 =>
- array (
- 0 => 66614,
- 1 => '𐐶',
- ),
- 66575 =>
- array (
- 0 => 66615,
- 1 => '𐐷',
- ),
- 66576 =>
- array (
- 0 => 66616,
- 1 => '𐐸',
- ),
- 66577 =>
- array (
- 0 => 66617,
- 1 => '𐐹',
- ),
- 66578 =>
- array (
- 0 => 66618,
- 1 => '𐐺',
- ),
- 66579 =>
- array (
- 0 => 66619,
- 1 => '𐐻',
- ),
- 66580 =>
- array (
- 0 => 66620,
- 1 => '𐐼',
- ),
- 66581 =>
- array (
- 0 => 66621,
- 1 => '𐐽',
- ),
- 66582 =>
- array (
- 0 => 66622,
- 1 => '𐐾',
- ),
- 66583 =>
- array (
- 0 => 66623,
- 1 => '𐐿',
- ),
- 66584 =>
- array (
- 0 => 66624,
- 1 => '𐑀',
- ),
- 66585 =>
- array (
- 0 => 66625,
- 1 => '𐑁',
- ),
- 66586 =>
- array (
- 0 => 66626,
- 1 => '𐑂',
- ),
- 66587 =>
- array (
- 0 => 66627,
- 1 => '𐑃',
- ),
- 66588 =>
- array (
- 0 => 66628,
- 1 => '𐑄',
- ),
- 66589 =>
- array (
- 0 => 66629,
- 1 => '𐑅',
- ),
- 66590 =>
- array (
- 0 => 66630,
- 1 => '𐑆',
- ),
- 66591 =>
- array (
- 0 => 66631,
- 1 => '𐑇',
- ),
- 66592 =>
- array (
- 0 => 66632,
- 1 => '𐑈',
- ),
- 66593 =>
- array (
- 0 => 66633,
- 1 => '𐑉',
- ),
- 66594 =>
- array (
- 0 => 66634,
- 1 => '𐑊',
- ),
- 66595 =>
- array (
- 0 => 66635,
- 1 => '𐑋',
- ),
- 66596 =>
- array (
- 0 => 66636,
- 1 => '𐑌',
- ),
- 66597 =>
- array (
- 0 => 66637,
- 1 => '𐑍',
- ),
- 66598 =>
- array (
- 0 => 66638,
- 1 => '𐑎',
- ),
- 66599 =>
- array (
- 0 => 66639,
- 1 => '𐑏',
- ),
- 66736 =>
- array (
- 0 => 66776,
- 1 => '𐓘',
- ),
- 66737 =>
- array (
- 0 => 66777,
- 1 => '𐓙',
- ),
- 66738 =>
- array (
- 0 => 66778,
- 1 => '𐓚',
- ),
- 66739 =>
- array (
- 0 => 66779,
- 1 => '𐓛',
- ),
- 66740 =>
- array (
- 0 => 66780,
- 1 => '𐓜',
- ),
- 66741 =>
- array (
- 0 => 66781,
- 1 => '𐓝',
- ),
- 66742 =>
- array (
- 0 => 66782,
- 1 => '𐓞',
- ),
- 66743 =>
- array (
- 0 => 66783,
- 1 => '𐓟',
- ),
- 66744 =>
- array (
- 0 => 66784,
- 1 => '𐓠',
- ),
- 66745 =>
- array (
- 0 => 66785,
- 1 => '𐓡',
- ),
- 66746 =>
- array (
- 0 => 66786,
- 1 => '𐓢',
- ),
- 66747 =>
- array (
- 0 => 66787,
- 1 => '𐓣',
- ),
- 66748 =>
- array (
- 0 => 66788,
- 1 => '𐓤',
- ),
- 66749 =>
- array (
- 0 => 66789,
- 1 => '𐓥',
- ),
- 66750 =>
- array (
- 0 => 66790,
- 1 => '𐓦',
- ),
- 66751 =>
- array (
- 0 => 66791,
- 1 => '𐓧',
- ),
- 66752 =>
- array (
- 0 => 66792,
- 1 => '𐓨',
- ),
- 66753 =>
- array (
- 0 => 66793,
- 1 => '𐓩',
- ),
- 66754 =>
- array (
- 0 => 66794,
- 1 => '𐓪',
- ),
- 66755 =>
- array (
- 0 => 66795,
- 1 => '𐓫',
- ),
- 66756 =>
- array (
- 0 => 66796,
- 1 => '𐓬',
- ),
- 66757 =>
- array (
- 0 => 66797,
- 1 => '𐓭',
- ),
- 66758 =>
- array (
- 0 => 66798,
- 1 => '𐓮',
- ),
- 66759 =>
- array (
- 0 => 66799,
- 1 => '𐓯',
- ),
- 66760 =>
- array (
- 0 => 66800,
- 1 => '𐓰',
- ),
- 66761 =>
- array (
- 0 => 66801,
- 1 => '𐓱',
- ),
- 66762 =>
- array (
- 0 => 66802,
- 1 => '𐓲',
- ),
- 66763 =>
- array (
- 0 => 66803,
- 1 => '𐓳',
- ),
- 66764 =>
- array (
- 0 => 66804,
- 1 => '𐓴',
- ),
- 66765 =>
- array (
- 0 => 66805,
- 1 => '𐓵',
- ),
- 66766 =>
- array (
- 0 => 66806,
- 1 => '𐓶',
- ),
- 66767 =>
- array (
- 0 => 66807,
- 1 => '𐓷',
- ),
- 66768 =>
- array (
- 0 => 66808,
- 1 => '𐓸',
- ),
- 66769 =>
- array (
- 0 => 66809,
- 1 => '𐓹',
- ),
- 66770 =>
- array (
- 0 => 66810,
- 1 => '𐓺',
- ),
- 66771 =>
- array (
- 0 => 66811,
- 1 => '𐓻',
- ),
- 68736 =>
- array (
- 0 => 68800,
- 1 => '𐳀',
- ),
- 68737 =>
- array (
- 0 => 68801,
- 1 => '𐳁',
- ),
- 68738 =>
- array (
- 0 => 68802,
- 1 => '𐳂',
- ),
- 68739 =>
- array (
- 0 => 68803,
- 1 => '𐳃',
- ),
- 68740 =>
- array (
- 0 => 68804,
- 1 => '𐳄',
- ),
- 68741 =>
- array (
- 0 => 68805,
- 1 => '𐳅',
- ),
- 68742 =>
- array (
- 0 => 68806,
- 1 => '𐳆',
- ),
- 68743 =>
- array (
- 0 => 68807,
- 1 => '𐳇',
- ),
- 68744 =>
- array (
- 0 => 68808,
- 1 => '𐳈',
- ),
- 68745 =>
- array (
- 0 => 68809,
- 1 => '𐳉',
- ),
- 68746 =>
- array (
- 0 => 68810,
- 1 => '𐳊',
- ),
- 68747 =>
- array (
- 0 => 68811,
- 1 => '𐳋',
- ),
- 68748 =>
- array (
- 0 => 68812,
- 1 => '𐳌',
- ),
- 68749 =>
- array (
- 0 => 68813,
- 1 => '𐳍',
- ),
- 68750 =>
- array (
- 0 => 68814,
- 1 => '𐳎',
- ),
- 68751 =>
- array (
- 0 => 68815,
- 1 => '𐳏',
- ),
- 68752 =>
- array (
- 0 => 68816,
- 1 => '𐳐',
- ),
- 68753 =>
- array (
- 0 => 68817,
- 1 => '𐳑',
- ),
- 68754 =>
- array (
- 0 => 68818,
- 1 => '𐳒',
- ),
- 68755 =>
- array (
- 0 => 68819,
- 1 => '𐳓',
- ),
- 68756 =>
- array (
- 0 => 68820,
- 1 => '𐳔',
- ),
- 68757 =>
- array (
- 0 => 68821,
- 1 => '𐳕',
- ),
- 68758 =>
- array (
- 0 => 68822,
- 1 => '𐳖',
- ),
- 68759 =>
- array (
- 0 => 68823,
- 1 => '𐳗',
- ),
- 68760 =>
- array (
- 0 => 68824,
- 1 => '𐳘',
- ),
- 68761 =>
- array (
- 0 => 68825,
- 1 => '𐳙',
- ),
- 68762 =>
- array (
- 0 => 68826,
- 1 => '𐳚',
- ),
- 68763 =>
- array (
- 0 => 68827,
- 1 => '𐳛',
- ),
- 68764 =>
- array (
- 0 => 68828,
- 1 => '𐳜',
- ),
- 68765 =>
- array (
- 0 => 68829,
- 1 => '𐳝',
- ),
- 68766 =>
- array (
- 0 => 68830,
- 1 => '𐳞',
- ),
- 68767 =>
- array (
- 0 => 68831,
- 1 => '𐳟',
- ),
- 68768 =>
- array (
- 0 => 68832,
- 1 => '𐳠',
- ),
- 68769 =>
- array (
- 0 => 68833,
- 1 => '𐳡',
- ),
- 68770 =>
- array (
- 0 => 68834,
- 1 => '𐳢',
- ),
- 68771 =>
- array (
- 0 => 68835,
- 1 => '𐳣',
- ),
- 68772 =>
- array (
- 0 => 68836,
- 1 => '𐳤',
- ),
- 68773 =>
- array (
- 0 => 68837,
- 1 => '𐳥',
- ),
- 68774 =>
- array (
- 0 => 68838,
- 1 => '𐳦',
- ),
- 68775 =>
- array (
- 0 => 68839,
- 1 => '𐳧',
- ),
- 68776 =>
- array (
- 0 => 68840,
- 1 => '𐳨',
- ),
- 68777 =>
- array (
- 0 => 68841,
- 1 => '𐳩',
- ),
- 68778 =>
- array (
- 0 => 68842,
- 1 => '𐳪',
- ),
- 68779 =>
- array (
- 0 => 68843,
- 1 => '𐳫',
- ),
- 68780 =>
- array (
- 0 => 68844,
- 1 => '𐳬',
- ),
- 68781 =>
- array (
- 0 => 68845,
- 1 => '𐳭',
- ),
- 68782 =>
- array (
- 0 => 68846,
- 1 => '𐳮',
- ),
- 68783 =>
- array (
- 0 => 68847,
- 1 => '𐳯',
- ),
- 68784 =>
- array (
- 0 => 68848,
- 1 => '𐳰',
- ),
- 68785 =>
- array (
- 0 => 68849,
- 1 => '𐳱',
- ),
- 68786 =>
- array (
- 0 => 68850,
- 1 => '𐳲',
- ),
- 71840 =>
- array (
- 0 => 71872,
- 1 => '𑣀',
- ),
- 71841 =>
- array (
- 0 => 71873,
- 1 => '𑣁',
- ),
- 71842 =>
- array (
- 0 => 71874,
- 1 => '𑣂',
- ),
- 71843 =>
- array (
- 0 => 71875,
- 1 => '𑣃',
- ),
- 71844 =>
- array (
- 0 => 71876,
- 1 => '𑣄',
- ),
- 71845 =>
- array (
- 0 => 71877,
- 1 => '𑣅',
- ),
- 71846 =>
- array (
- 0 => 71878,
- 1 => '𑣆',
- ),
- 71847 =>
- array (
- 0 => 71879,
- 1 => '𑣇',
- ),
- 71848 =>
- array (
- 0 => 71880,
- 1 => '𑣈',
- ),
- 71849 =>
- array (
- 0 => 71881,
- 1 => '𑣉',
- ),
- 71850 =>
- array (
- 0 => 71882,
- 1 => '𑣊',
- ),
- 71851 =>
- array (
- 0 => 71883,
- 1 => '𑣋',
- ),
- 71852 =>
- array (
- 0 => 71884,
- 1 => '𑣌',
- ),
- 71853 =>
- array (
- 0 => 71885,
- 1 => '𑣍',
- ),
- 71854 =>
- array (
- 0 => 71886,
- 1 => '𑣎',
- ),
- 71855 =>
- array (
- 0 => 71887,
- 1 => '𑣏',
- ),
- 71856 =>
- array (
- 0 => 71888,
- 1 => '𑣐',
- ),
- 71857 =>
- array (
- 0 => 71889,
- 1 => '𑣑',
- ),
- 71858 =>
- array (
- 0 => 71890,
- 1 => '𑣒',
- ),
- 71859 =>
- array (
- 0 => 71891,
- 1 => '𑣓',
- ),
- 71860 =>
- array (
- 0 => 71892,
- 1 => '𑣔',
- ),
- 71861 =>
- array (
- 0 => 71893,
- 1 => '𑣕',
- ),
- 71862 =>
- array (
- 0 => 71894,
- 1 => '𑣖',
- ),
- 71863 =>
- array (
- 0 => 71895,
- 1 => '𑣗',
- ),
- 71864 =>
- array (
- 0 => 71896,
- 1 => '𑣘',
- ),
- 71865 =>
- array (
- 0 => 71897,
- 1 => '𑣙',
- ),
- 71866 =>
- array (
- 0 => 71898,
- 1 => '𑣚',
- ),
- 71867 =>
- array (
- 0 => 71899,
- 1 => '𑣛',
- ),
- 71868 =>
- array (
- 0 => 71900,
- 1 => '𑣜',
- ),
- 71869 =>
- array (
- 0 => 71901,
- 1 => '𑣝',
- ),
- 71870 =>
- array (
- 0 => 71902,
- 1 => '𑣞',
- ),
- 71871 =>
- array (
- 0 => 71903,
- 1 => '𑣟',
- ),
- 125184 =>
- array (
- 0 => 125218,
- 1 => '𞤢',
- ),
- 125185 =>
- array (
- 0 => 125219,
- 1 => '𞤣',
- ),
- 125186 =>
- array (
- 0 => 125220,
- 1 => '𞤤',
- ),
- 125187 =>
- array (
- 0 => 125221,
- 1 => '𞤥',
- ),
- 125188 =>
- array (
- 0 => 125222,
- 1 => '𞤦',
- ),
- 125189 =>
- array (
- 0 => 125223,
- 1 => '𞤧',
- ),
- 125190 =>
- array (
- 0 => 125224,
- 1 => '𞤨',
- ),
- 125191 =>
- array (
- 0 => 125225,
- 1 => '𞤩',
- ),
- 125192 =>
- array (
- 0 => 125226,
- 1 => '𞤪',
- ),
- 125193 =>
- array (
- 0 => 125227,
- 1 => '𞤫',
- ),
- 125194 =>
- array (
- 0 => 125228,
- 1 => '𞤬',
- ),
- 125195 =>
- array (
- 0 => 125229,
- 1 => '𞤭',
- ),
- 125196 =>
- array (
- 0 => 125230,
- 1 => '𞤮',
- ),
- 125197 =>
- array (
- 0 => 125231,
- 1 => '𞤯',
- ),
- 125198 =>
- array (
- 0 => 125232,
- 1 => '𞤰',
- ),
- 125199 =>
- array (
- 0 => 125233,
- 1 => '𞤱',
- ),
- 125200 =>
- array (
- 0 => 125234,
- 1 => '𞤲',
- ),
- 125201 =>
- array (
- 0 => 125235,
- 1 => '𞤳',
- ),
- 125202 =>
- array (
- 0 => 125236,
- 1 => '𞤴',
- ),
- 125203 =>
- array (
- 0 => 125237,
- 1 => '𞤵',
- ),
- 125204 =>
- array (
- 0 => 125238,
- 1 => '𞤶',
- ),
- 125205 =>
- array (
- 0 => 125239,
- 1 => '𞤷',
- ),
- 125206 =>
- array (
- 0 => 125240,
- 1 => '𞤸',
- ),
- 125207 =>
- array (
- 0 => 125241,
- 1 => '𞤹',
- ),
- 125208 =>
- array (
- 0 => 125242,
- 1 => '𞤺',
- ),
- 125209 =>
- array (
- 0 => 125243,
- 1 => '𞤻',
- ),
- 125210 =>
- array (
- 0 => 125244,
- 1 => '𞤼',
- ),
- 125211 =>
- array (
- 0 => 125245,
- 1 => '𞤽',
- ),
- 125212 =>
- array (
- 0 => 125246,
- 1 => '𞤾',
- ),
- 125213 =>
- array (
- 0 => 125247,
- 1 => '𞤿',
- ),
- 125214 =>
- array (
- 0 => 125248,
- 1 => '𞥀',
- ),
- 125215 =>
- array (
- 0 => 125249,
- 1 => '𞥁',
- ),
- 125216 =>
- array (
- 0 => 125250,
- 1 => '𞥂',
- ),
- 125217 =>
- array (
- 0 => 125251,
- 1 => '𞥃',
- ),
-);
+return [
+0x41 => 0x61,
+0x42 => 0x62,
+0x43 => 0x63,
+0x44 => 0x64,
+0x45 => 0x65,
+0x46 => 0x66,
+0x47 => 0x67,
+0x48 => 0x68,
+0x49 => 0x69,
+0x4A => 0x6A,
+0x4B => 0x6B,
+0x4C => 0x6C,
+0x4D => 0x6D,
+0x4E => 0x6E,
+0x4F => 0x6F,
+0x50 => 0x70,
+0x51 => 0x71,
+0x52 => 0x72,
+0x53 => 0x73,
+0x54 => 0x74,
+0x55 => 0x75,
+0x56 => 0x76,
+0x57 => 0x77,
+0x58 => 0x78,
+0x59 => 0x79,
+0x5A => 0x7A,
+0xC0 => 0xE0,
+0xC1 => 0xE1,
+0xC2 => 0xE2,
+0xC3 => 0xE3,
+0xC4 => 0xE4,
+0xC5 => 0xE5,
+0xC6 => 0xE6,
+0xC7 => 0xE7,
+0xC8 => 0xE8,
+0xC9 => 0xE9,
+0xCA => 0xEA,
+0xCB => 0xEB,
+0xCC => 0xEC,
+0xCD => 0xED,
+0xCE => 0xEE,
+0xCF => 0xEF,
+0xD0 => 0xF0,
+0xD1 => 0xF1,
+0xD2 => 0xF2,
+0xD3 => 0xF3,
+0xD4 => 0xF4,
+0xD5 => 0xF5,
+0xD6 => 0xF6,
+0xD8 => 0xF8,
+0xD9 => 0xF9,
+0xDA => 0xFA,
+0xDB => 0xFB,
+0xDC => 0xFC,
+0xDD => 0xFD,
+0xDE => 0xFE,
+0x100 => 0x101,
+0x102 => 0x103,
+0x104 => 0x105,
+0x106 => 0x107,
+0x108 => 0x109,
+0x10A => 0x10B,
+0x10C => 0x10D,
+0x10E => 0x10F,
+0x110 => 0x111,
+0x112 => 0x113,
+0x114 => 0x115,
+0x116 => 0x117,
+0x118 => 0x119,
+0x11A => 0x11B,
+0x11C => 0x11D,
+0x11E => 0x11F,
+0x120 => 0x121,
+0x122 => 0x123,
+0x124 => 0x125,
+0x126 => 0x127,
+0x128 => 0x129,
+0x12A => 0x12B,
+0x12C => 0x12D,
+0x12E => 0x12F,
+0x130 => 0x69,
+0x132 => 0x133,
+0x134 => 0x135,
+0x136 => 0x137,
+0x139 => 0x13A,
+0x13B => 0x13C,
+0x13D => 0x13E,
+0x13F => 0x140,
+0x141 => 0x142,
+0x143 => 0x144,
+0x145 => 0x146,
+0x147 => 0x148,
+0x14A => 0x14B,
+0x14C => 0x14D,
+0x14E => 0x14F,
+0x150 => 0x151,
+0x152 => 0x153,
+0x154 => 0x155,
+0x156 => 0x157,
+0x158 => 0x159,
+0x15A => 0x15B,
+0x15C => 0x15D,
+0x15E => 0x15F,
+0x160 => 0x161,
+0x162 => 0x163,
+0x164 => 0x165,
+0x166 => 0x167,
+0x168 => 0x169,
+0x16A => 0x16B,
+0x16C => 0x16D,
+0x16E => 0x16F,
+0x170 => 0x171,
+0x172 => 0x173,
+0x174 => 0x175,
+0x176 => 0x177,
+0x178 => 0xFF,
+0x179 => 0x17A,
+0x17B => 0x17C,
+0x17D => 0x17E,
+0x181 => 0x253,
+0x182 => 0x183,
+0x184 => 0x185,
+0x186 => 0x254,
+0x187 => 0x188,
+0x189 => 0x256,
+0x18A => 0x257,
+0x18B => 0x18C,
+0x18E => 0x1DD,
+0x18F => 0x259,
+0x190 => 0x25B,
+0x191 => 0x192,
+0x193 => 0x260,
+0x194 => 0x263,
+0x196 => 0x269,
+0x197 => 0x268,
+0x198 => 0x199,
+0x19C => 0x26F,
+0x19D => 0x272,
+0x19F => 0x275,
+0x1A0 => 0x1A1,
+0x1A2 => 0x1A3,
+0x1A4 => 0x1A5,
+0x1A6 => 0x280,
+0x1A7 => 0x1A8,
+0x1A9 => 0x283,
+0x1AC => 0x1AD,
+0x1AE => 0x288,
+0x1AF => 0x1B0,
+0x1B1 => 0x28A,
+0x1B2 => 0x28B,
+0x1B3 => 0x1B4,
+0x1B5 => 0x1B6,
+0x1B7 => 0x292,
+0x1B8 => 0x1B9,
+0x1BC => 0x1BD,
+0x1C4 => 0x1C6,
+0x1C5 => 0x1C6,
+0x1C7 => 0x1C9,
+0x1C8 => 0x1C9,
+0x1CA => 0x1CC,
+0x1CB => 0x1CC,
+0x1CD => 0x1CE,
+0x1CF => 0x1D0,
+0x1D1 => 0x1D2,
+0x1D3 => 0x1D4,
+0x1D5 => 0x1D6,
+0x1D7 => 0x1D8,
+0x1D9 => 0x1DA,
+0x1DB => 0x1DC,
+0x1DE => 0x1DF,
+0x1E0 => 0x1E1,
+0x1E2 => 0x1E3,
+0x1E4 => 0x1E5,
+0x1E6 => 0x1E7,
+0x1E8 => 0x1E9,
+0x1EA => 0x1EB,
+0x1EC => 0x1ED,
+0x1EE => 0x1EF,
+0x1F1 => 0x1F3,
+0x1F2 => 0x1F3,
+0x1F4 => 0x1F5,
+0x1F6 => 0x195,
+0x1F7 => 0x1BF,
+0x1F8 => 0x1F9,
+0x1FA => 0x1FB,
+0x1FC => 0x1FD,
+0x1FE => 0x1FF,
+0x200 => 0x201,
+0x202 => 0x203,
+0x204 => 0x205,
+0x206 => 0x207,
+0x208 => 0x209,
+0x20A => 0x20B,
+0x20C => 0x20D,
+0x20E => 0x20F,
+0x210 => 0x211,
+0x212 => 0x213,
+0x214 => 0x215,
+0x216 => 0x217,
+0x218 => 0x219,
+0x21A => 0x21B,
+0x21C => 0x21D,
+0x21E => 0x21F,
+0x220 => 0x19E,
+0x222 => 0x223,
+0x224 => 0x225,
+0x226 => 0x227,
+0x228 => 0x229,
+0x22A => 0x22B,
+0x22C => 0x22D,
+0x22E => 0x22F,
+0x230 => 0x231,
+0x232 => 0x233,
+0x23A => 0x2C65,
+0x23B => 0x23C,
+0x23D => 0x19A,
+0x23E => 0x2C66,
+0x241 => 0x242,
+0x243 => 0x180,
+0x244 => 0x289,
+0x245 => 0x28C,
+0x246 => 0x247,
+0x248 => 0x249,
+0x24A => 0x24B,
+0x24C => 0x24D,
+0x24E => 0x24F,
+0x370 => 0x371,
+0x372 => 0x373,
+0x376 => 0x377,
+0x37F => 0x3F3,
+0x386 => 0x3AC,
+0x388 => 0x3AD,
+0x389 => 0x3AE,
+0x38A => 0x3AF,
+0x38C => 0x3CC,
+0x38E => 0x3CD,
+0x38F => 0x3CE,
+0x391 => 0x3B1,
+0x392 => 0x3B2,
+0x393 => 0x3B3,
+0x394 => 0x3B4,
+0x395 => 0x3B5,
+0x396 => 0x3B6,
+0x397 => 0x3B7,
+0x398 => 0x3B8,
+0x399 => 0x3B9,
+0x39A => 0x3BA,
+0x39B => 0x3BB,
+0x39C => 0x3BC,
+0x39D => 0x3BD,
+0x39E => 0x3BE,
+0x39F => 0x3BF,
+0x3A0 => 0x3C0,
+0x3A1 => 0x3C1,
+0x3A3 => 0x3C3,
+0x3A4 => 0x3C4,
+0x3A5 => 0x3C5,
+0x3A6 => 0x3C6,
+0x3A7 => 0x3C7,
+0x3A8 => 0x3C8,
+0x3A9 => 0x3C9,
+0x3AA => 0x3CA,
+0x3AB => 0x3CB,
+0x3CF => 0x3D7,
+0x3D8 => 0x3D9,
+0x3DA => 0x3DB,
+0x3DC => 0x3DD,
+0x3DE => 0x3DF,
+0x3E0 => 0x3E1,
+0x3E2 => 0x3E3,
+0x3E4 => 0x3E5,
+0x3E6 => 0x3E7,
+0x3E8 => 0x3E9,
+0x3EA => 0x3EB,
+0x3EC => 0x3ED,
+0x3EE => 0x3EF,
+0x3F4 => 0x3B8,
+0x3F7 => 0x3F8,
+0x3F9 => 0x3F2,
+0x3FA => 0x3FB,
+0x3FD => 0x37B,
+0x3FE => 0x37C,
+0x3FF => 0x37D,
+0x400 => 0x450,
+0x401 => 0x451,
+0x402 => 0x452,
+0x403 => 0x453,
+0x404 => 0x454,
+0x405 => 0x455,
+0x406 => 0x456,
+0x407 => 0x457,
+0x408 => 0x458,
+0x409 => 0x459,
+0x40A => 0x45A,
+0x40B => 0x45B,
+0x40C => 0x45C,
+0x40D => 0x45D,
+0x40E => 0x45E,
+0x40F => 0x45F,
+0x410 => 0x430,
+0x411 => 0x431,
+0x412 => 0x432,
+0x413 => 0x433,
+0x414 => 0x434,
+0x415 => 0x435,
+0x416 => 0x436,
+0x417 => 0x437,
+0x418 => 0x438,
+0x419 => 0x439,
+0x41A => 0x43A,
+0x41B => 0x43B,
+0x41C => 0x43C,
+0x41D => 0x43D,
+0x41E => 0x43E,
+0x41F => 0x43F,
+0x420 => 0x440,
+0x421 => 0x441,
+0x422 => 0x442,
+0x423 => 0x443,
+0x424 => 0x444,
+0x425 => 0x445,
+0x426 => 0x446,
+0x427 => 0x447,
+0x428 => 0x448,
+0x429 => 0x449,
+0x42A => 0x44A,
+0x42B => 0x44B,
+0x42C => 0x44C,
+0x42D => 0x44D,
+0x42E => 0x44E,
+0x42F => 0x44F,
+0x460 => 0x461,
+0x462 => 0x463,
+0x464 => 0x465,
+0x466 => 0x467,
+0x468 => 0x469,
+0x46A => 0x46B,
+0x46C => 0x46D,
+0x46E => 0x46F,
+0x470 => 0x471,
+0x472 => 0x473,
+0x474 => 0x475,
+0x476 => 0x477,
+0x478 => 0x479,
+0x47A => 0x47B,
+0x47C => 0x47D,
+0x47E => 0x47F,
+0x480 => 0x481,
+0x48A => 0x48B,
+0x48C => 0x48D,
+0x48E => 0x48F,
+0x490 => 0x491,
+0x492 => 0x493,
+0x494 => 0x495,
+0x496 => 0x497,
+0x498 => 0x499,
+0x49A => 0x49B,
+0x49C => 0x49D,
+0x49E => 0x49F,
+0x4A0 => 0x4A1,
+0x4A2 => 0x4A3,
+0x4A4 => 0x4A5,
+0x4A6 => 0x4A7,
+0x4A8 => 0x4A9,
+0x4AA => 0x4AB,
+0x4AC => 0x4AD,
+0x4AE => 0x4AF,
+0x4B0 => 0x4B1,
+0x4B2 => 0x4B3,
+0x4B4 => 0x4B5,
+0x4B6 => 0x4B7,
+0x4B8 => 0x4B9,
+0x4BA => 0x4BB,
+0x4BC => 0x4BD,
+0x4BE => 0x4BF,
+0x4C0 => 0x4CF,
+0x4C1 => 0x4C2,
+0x4C3 => 0x4C4,
+0x4C5 => 0x4C6,
+0x4C7 => 0x4C8,
+0x4C9 => 0x4CA,
+0x4CB => 0x4CC,
+0x4CD => 0x4CE,
+0x4D0 => 0x4D1,
+0x4D2 => 0x4D3,
+0x4D4 => 0x4D5,
+0x4D6 => 0x4D7,
+0x4D8 => 0x4D9,
+0x4DA => 0x4DB,
+0x4DC => 0x4DD,
+0x4DE => 0x4DF,
+0x4E0 => 0x4E1,
+0x4E2 => 0x4E3,
+0x4E4 => 0x4E5,
+0x4E6 => 0x4E7,
+0x4E8 => 0x4E9,
+0x4EA => 0x4EB,
+0x4EC => 0x4ED,
+0x4EE => 0x4EF,
+0x4F0 => 0x4F1,
+0x4F2 => 0x4F3,
+0x4F4 => 0x4F5,
+0x4F6 => 0x4F7,
+0x4F8 => 0x4F9,
+0x4FA => 0x4FB,
+0x4FC => 0x4FD,
+0x4FE => 0x4FF,
+0x500 => 0x501,
+0x502 => 0x503,
+0x504 => 0x505,
+0x506 => 0x507,
+0x508 => 0x509,
+0x50A => 0x50B,
+0x50C => 0x50D,
+0x50E => 0x50F,
+0x510 => 0x511,
+0x512 => 0x513,
+0x514 => 0x515,
+0x516 => 0x517,
+0x518 => 0x519,
+0x51A => 0x51B,
+0x51C => 0x51D,
+0x51E => 0x51F,
+0x520 => 0x521,
+0x522 => 0x523,
+0x524 => 0x525,
+0x526 => 0x527,
+0x528 => 0x529,
+0x52A => 0x52B,
+0x52C => 0x52D,
+0x52E => 0x52F,
+0x531 => 0x561,
+0x532 => 0x562,
+0x533 => 0x563,
+0x534 => 0x564,
+0x535 => 0x565,
+0x536 => 0x566,
+0x537 => 0x567,
+0x538 => 0x568,
+0x539 => 0x569,
+0x53A => 0x56A,
+0x53B => 0x56B,
+0x53C => 0x56C,
+0x53D => 0x56D,
+0x53E => 0x56E,
+0x53F => 0x56F,
+0x540 => 0x570,
+0x541 => 0x571,
+0x542 => 0x572,
+0x543 => 0x573,
+0x544 => 0x574,
+0x545 => 0x575,
+0x546 => 0x576,
+0x547 => 0x577,
+0x548 => 0x578,
+0x549 => 0x579,
+0x54A => 0x57A,
+0x54B => 0x57B,
+0x54C => 0x57C,
+0x54D => 0x57D,
+0x54E => 0x57E,
+0x54F => 0x57F,
+0x550 => 0x580,
+0x551 => 0x581,
+0x552 => 0x582,
+0x553 => 0x583,
+0x554 => 0x584,
+0x555 => 0x585,
+0x556 => 0x586,
+0x10A0 => 0x2D00,
+0x10A1 => 0x2D01,
+0x10A2 => 0x2D02,
+0x10A3 => 0x2D03,
+0x10A4 => 0x2D04,
+0x10A5 => 0x2D05,
+0x10A6 => 0x2D06,
+0x10A7 => 0x2D07,
+0x10A8 => 0x2D08,
+0x10A9 => 0x2D09,
+0x10AA => 0x2D0A,
+0x10AB => 0x2D0B,
+0x10AC => 0x2D0C,
+0x10AD => 0x2D0D,
+0x10AE => 0x2D0E,
+0x10AF => 0x2D0F,
+0x10B0 => 0x2D10,
+0x10B1 => 0x2D11,
+0x10B2 => 0x2D12,
+0x10B3 => 0x2D13,
+0x10B4 => 0x2D14,
+0x10B5 => 0x2D15,
+0x10B6 => 0x2D16,
+0x10B7 => 0x2D17,
+0x10B8 => 0x2D18,
+0x10B9 => 0x2D19,
+0x10BA => 0x2D1A,
+0x10BB => 0x2D1B,
+0x10BC => 0x2D1C,
+0x10BD => 0x2D1D,
+0x10BE => 0x2D1E,
+0x10BF => 0x2D1F,
+0x10C0 => 0x2D20,
+0x10C1 => 0x2D21,
+0x10C2 => 0x2D22,
+0x10C3 => 0x2D23,
+0x10C4 => 0x2D24,
+0x10C5 => 0x2D25,
+0x10C7 => 0x2D27,
+0x10CD => 0x2D2D,
+0x13A0 => 0xAB70,
+0x13A1 => 0xAB71,
+0x13A2 => 0xAB72,
+0x13A3 => 0xAB73,
+0x13A4 => 0xAB74,
+0x13A5 => 0xAB75,
+0x13A6 => 0xAB76,
+0x13A7 => 0xAB77,
+0x13A8 => 0xAB78,
+0x13A9 => 0xAB79,
+0x13AA => 0xAB7A,
+0x13AB => 0xAB7B,
+0x13AC => 0xAB7C,
+0x13AD => 0xAB7D,
+0x13AE => 0xAB7E,
+0x13AF => 0xAB7F,
+0x13B0 => 0xAB80,
+0x13B1 => 0xAB81,
+0x13B2 => 0xAB82,
+0x13B3 => 0xAB83,
+0x13B4 => 0xAB84,
+0x13B5 => 0xAB85,
+0x13B6 => 0xAB86,
+0x13B7 => 0xAB87,
+0x13B8 => 0xAB88,
+0x13B9 => 0xAB89,
+0x13BA => 0xAB8A,
+0x13BB => 0xAB8B,
+0x13BC => 0xAB8C,
+0x13BD => 0xAB8D,
+0x13BE => 0xAB8E,
+0x13BF => 0xAB8F,
+0x13C0 => 0xAB90,
+0x13C1 => 0xAB91,
+0x13C2 => 0xAB92,
+0x13C3 => 0xAB93,
+0x13C4 => 0xAB94,
+0x13C5 => 0xAB95,
+0x13C6 => 0xAB96,
+0x13C7 => 0xAB97,
+0x13C8 => 0xAB98,
+0x13C9 => 0xAB99,
+0x13CA => 0xAB9A,
+0x13CB => 0xAB9B,
+0x13CC => 0xAB9C,
+0x13CD => 0xAB9D,
+0x13CE => 0xAB9E,
+0x13CF => 0xAB9F,
+0x13D0 => 0xABA0,
+0x13D1 => 0xABA1,
+0x13D2 => 0xABA2,
+0x13D3 => 0xABA3,
+0x13D4 => 0xABA4,
+0x13D5 => 0xABA5,
+0x13D6 => 0xABA6,
+0x13D7 => 0xABA7,
+0x13D8 => 0xABA8,
+0x13D9 => 0xABA9,
+0x13DA => 0xABAA,
+0x13DB => 0xABAB,
+0x13DC => 0xABAC,
+0x13DD => 0xABAD,
+0x13DE => 0xABAE,
+0x13DF => 0xABAF,
+0x13E0 => 0xABB0,
+0x13E1 => 0xABB1,
+0x13E2 => 0xABB2,
+0x13E3 => 0xABB3,
+0x13E4 => 0xABB4,
+0x13E5 => 0xABB5,
+0x13E6 => 0xABB6,
+0x13E7 => 0xABB7,
+0x13E8 => 0xABB8,
+0x13E9 => 0xABB9,
+0x13EA => 0xABBA,
+0x13EB => 0xABBB,
+0x13EC => 0xABBC,
+0x13ED => 0xABBD,
+0x13EE => 0xABBE,
+0x13EF => 0xABBF,
+0x13F0 => 0x13F8,
+0x13F1 => 0x13F9,
+0x13F2 => 0x13FA,
+0x13F3 => 0x13FB,
+0x13F4 => 0x13FC,
+0x13F5 => 0x13FD,
+0x1C90 => 0x10D0,
+0x1C91 => 0x10D1,
+0x1C92 => 0x10D2,
+0x1C93 => 0x10D3,
+0x1C94 => 0x10D4,
+0x1C95 => 0x10D5,
+0x1C96 => 0x10D6,
+0x1C97 => 0x10D7,
+0x1C98 => 0x10D8,
+0x1C99 => 0x10D9,
+0x1C9A => 0x10DA,
+0x1C9B => 0x10DB,
+0x1C9C => 0x10DC,
+0x1C9D => 0x10DD,
+0x1C9E => 0x10DE,
+0x1C9F => 0x10DF,
+0x1CA0 => 0x10E0,
+0x1CA1 => 0x10E1,
+0x1CA2 => 0x10E2,
+0x1CA3 => 0x10E3,
+0x1CA4 => 0x10E4,
+0x1CA5 => 0x10E5,
+0x1CA6 => 0x10E6,
+0x1CA7 => 0x10E7,
+0x1CA8 => 0x10E8,
+0x1CA9 => 0x10E9,
+0x1CAA => 0x10EA,
+0x1CAB => 0x10EB,
+0x1CAC => 0x10EC,
+0x1CAD => 0x10ED,
+0x1CAE => 0x10EE,
+0x1CAF => 0x10EF,
+0x1CB0 => 0x10F0,
+0x1CB1 => 0x10F1,
+0x1CB2 => 0x10F2,
+0x1CB3 => 0x10F3,
+0x1CB4 => 0x10F4,
+0x1CB5 => 0x10F5,
+0x1CB6 => 0x10F6,
+0x1CB7 => 0x10F7,
+0x1CB8 => 0x10F8,
+0x1CB9 => 0x10F9,
+0x1CBA => 0x10FA,
+0x1CBD => 0x10FD,
+0x1CBE => 0x10FE,
+0x1CBF => 0x10FF,
+0x1E00 => 0x1E01,
+0x1E02 => 0x1E03,
+0x1E04 => 0x1E05,
+0x1E06 => 0x1E07,
+0x1E08 => 0x1E09,
+0x1E0A => 0x1E0B,
+0x1E0C => 0x1E0D,
+0x1E0E => 0x1E0F,
+0x1E10 => 0x1E11,
+0x1E12 => 0x1E13,
+0x1E14 => 0x1E15,
+0x1E16 => 0x1E17,
+0x1E18 => 0x1E19,
+0x1E1A => 0x1E1B,
+0x1E1C => 0x1E1D,
+0x1E1E => 0x1E1F,
+0x1E20 => 0x1E21,
+0x1E22 => 0x1E23,
+0x1E24 => 0x1E25,
+0x1E26 => 0x1E27,
+0x1E28 => 0x1E29,
+0x1E2A => 0x1E2B,
+0x1E2C => 0x1E2D,
+0x1E2E => 0x1E2F,
+0x1E30 => 0x1E31,
+0x1E32 => 0x1E33,
+0x1E34 => 0x1E35,
+0x1E36 => 0x1E37,
+0x1E38 => 0x1E39,
+0x1E3A => 0x1E3B,
+0x1E3C => 0x1E3D,
+0x1E3E => 0x1E3F,
+0x1E40 => 0x1E41,
+0x1E42 => 0x1E43,
+0x1E44 => 0x1E45,
+0x1E46 => 0x1E47,
+0x1E48 => 0x1E49,
+0x1E4A => 0x1E4B,
+0x1E4C => 0x1E4D,
+0x1E4E => 0x1E4F,
+0x1E50 => 0x1E51,
+0x1E52 => 0x1E53,
+0x1E54 => 0x1E55,
+0x1E56 => 0x1E57,
+0x1E58 => 0x1E59,
+0x1E5A => 0x1E5B,
+0x1E5C => 0x1E5D,
+0x1E5E => 0x1E5F,
+0x1E60 => 0x1E61,
+0x1E62 => 0x1E63,
+0x1E64 => 0x1E65,
+0x1E66 => 0x1E67,
+0x1E68 => 0x1E69,
+0x1E6A => 0x1E6B,
+0x1E6C => 0x1E6D,
+0x1E6E => 0x1E6F,
+0x1E70 => 0x1E71,
+0x1E72 => 0x1E73,
+0x1E74 => 0x1E75,
+0x1E76 => 0x1E77,
+0x1E78 => 0x1E79,
+0x1E7A => 0x1E7B,
+0x1E7C => 0x1E7D,
+0x1E7E => 0x1E7F,
+0x1E80 => 0x1E81,
+0x1E82 => 0x1E83,
+0x1E84 => 0x1E85,
+0x1E86 => 0x1E87,
+0x1E88 => 0x1E89,
+0x1E8A => 0x1E8B,
+0x1E8C => 0x1E8D,
+0x1E8E => 0x1E8F,
+0x1E90 => 0x1E91,
+0x1E92 => 0x1E93,
+0x1E94 => 0x1E95,
+0x1E9E => 0xDF,
+0x1EA0 => 0x1EA1,
+0x1EA2 => 0x1EA3,
+0x1EA4 => 0x1EA5,
+0x1EA6 => 0x1EA7,
+0x1EA8 => 0x1EA9,
+0x1EAA => 0x1EAB,
+0x1EAC => 0x1EAD,
+0x1EAE => 0x1EAF,
+0x1EB0 => 0x1EB1,
+0x1EB2 => 0x1EB3,
+0x1EB4 => 0x1EB5,
+0x1EB6 => 0x1EB7,
+0x1EB8 => 0x1EB9,
+0x1EBA => 0x1EBB,
+0x1EBC => 0x1EBD,
+0x1EBE => 0x1EBF,
+0x1EC0 => 0x1EC1,
+0x1EC2 => 0x1EC3,
+0x1EC4 => 0x1EC5,
+0x1EC6 => 0x1EC7,
+0x1EC8 => 0x1EC9,
+0x1ECA => 0x1ECB,
+0x1ECC => 0x1ECD,
+0x1ECE => 0x1ECF,
+0x1ED0 => 0x1ED1,
+0x1ED2 => 0x1ED3,
+0x1ED4 => 0x1ED5,
+0x1ED6 => 0x1ED7,
+0x1ED8 => 0x1ED9,
+0x1EDA => 0x1EDB,
+0x1EDC => 0x1EDD,
+0x1EDE => 0x1EDF,
+0x1EE0 => 0x1EE1,
+0x1EE2 => 0x1EE3,
+0x1EE4 => 0x1EE5,
+0x1EE6 => 0x1EE7,
+0x1EE8 => 0x1EE9,
+0x1EEA => 0x1EEB,
+0x1EEC => 0x1EED,
+0x1EEE => 0x1EEF,
+0x1EF0 => 0x1EF1,
+0x1EF2 => 0x1EF3,
+0x1EF4 => 0x1EF5,
+0x1EF6 => 0x1EF7,
+0x1EF8 => 0x1EF9,
+0x1EFA => 0x1EFB,
+0x1EFC => 0x1EFD,
+0x1EFE => 0x1EFF,
+0x1F08 => 0x1F00,
+0x1F09 => 0x1F01,
+0x1F0A => 0x1F02,
+0x1F0B => 0x1F03,
+0x1F0C => 0x1F04,
+0x1F0D => 0x1F05,
+0x1F0E => 0x1F06,
+0x1F0F => 0x1F07,
+0x1F18 => 0x1F10,
+0x1F19 => 0x1F11,
+0x1F1A => 0x1F12,
+0x1F1B => 0x1F13,
+0x1F1C => 0x1F14,
+0x1F1D => 0x1F15,
+0x1F28 => 0x1F20,
+0x1F29 => 0x1F21,
+0x1F2A => 0x1F22,
+0x1F2B => 0x1F23,
+0x1F2C => 0x1F24,
+0x1F2D => 0x1F25,
+0x1F2E => 0x1F26,
+0x1F2F => 0x1F27,
+0x1F38 => 0x1F30,
+0x1F39 => 0x1F31,
+0x1F3A => 0x1F32,
+0x1F3B => 0x1F33,
+0x1F3C => 0x1F34,
+0x1F3D => 0x1F35,
+0x1F3E => 0x1F36,
+0x1F3F => 0x1F37,
+0x1F48 => 0x1F40,
+0x1F49 => 0x1F41,
+0x1F4A => 0x1F42,
+0x1F4B => 0x1F43,
+0x1F4C => 0x1F44,
+0x1F4D => 0x1F45,
+0x1F59 => 0x1F51,
+0x1F5B => 0x1F53,
+0x1F5D => 0x1F55,
+0x1F5F => 0x1F57,
+0x1F68 => 0x1F60,
+0x1F69 => 0x1F61,
+0x1F6A => 0x1F62,
+0x1F6B => 0x1F63,
+0x1F6C => 0x1F64,
+0x1F6D => 0x1F65,
+0x1F6E => 0x1F66,
+0x1F6F => 0x1F67,
+0x1F88 => 0x1F80,
+0x1F89 => 0x1F81,
+0x1F8A => 0x1F82,
+0x1F8B => 0x1F83,
+0x1F8C => 0x1F84,
+0x1F8D => 0x1F85,
+0x1F8E => 0x1F86,
+0x1F8F => 0x1F87,
+0x1F98 => 0x1F90,
+0x1F99 => 0x1F91,
+0x1F9A => 0x1F92,
+0x1F9B => 0x1F93,
+0x1F9C => 0x1F94,
+0x1F9D => 0x1F95,
+0x1F9E => 0x1F96,
+0x1F9F => 0x1F97,
+0x1FA8 => 0x1FA0,
+0x1FA9 => 0x1FA1,
+0x1FAA => 0x1FA2,
+0x1FAB => 0x1FA3,
+0x1FAC => 0x1FA4,
+0x1FAD => 0x1FA5,
+0x1FAE => 0x1FA6,
+0x1FAF => 0x1FA7,
+0x1FB8 => 0x1FB0,
+0x1FB9 => 0x1FB1,
+0x1FBA => 0x1F70,
+0x1FBB => 0x1F71,
+0x1FBC => 0x1FB3,
+0x1FC8 => 0x1F72,
+0x1FC9 => 0x1F73,
+0x1FCA => 0x1F74,
+0x1FCB => 0x1F75,
+0x1FCC => 0x1FC3,
+0x1FD8 => 0x1FD0,
+0x1FD9 => 0x1FD1,
+0x1FDA => 0x1F76,
+0x1FDB => 0x1F77,
+0x1FE8 => 0x1FE0,
+0x1FE9 => 0x1FE1,
+0x1FEA => 0x1F7A,
+0x1FEB => 0x1F7B,
+0x1FEC => 0x1FE5,
+0x1FF8 => 0x1F78,
+0x1FF9 => 0x1F79,
+0x1FFA => 0x1F7C,
+0x1FFB => 0x1F7D,
+0x1FFC => 0x1FF3,
+0x2126 => 0x3C9,
+0x212A => 0x6B,
+0x212B => 0xE5,
+0x2132 => 0x214E,
+0x2160 => 0x2170,
+0x2161 => 0x2171,
+0x2162 => 0x2172,
+0x2163 => 0x2173,
+0x2164 => 0x2174,
+0x2165 => 0x2175,
+0x2166 => 0x2176,
+0x2167 => 0x2177,
+0x2168 => 0x2178,
+0x2169 => 0x2179,
+0x216A => 0x217A,
+0x216B => 0x217B,
+0x216C => 0x217C,
+0x216D => 0x217D,
+0x216E => 0x217E,
+0x216F => 0x217F,
+0x2183 => 0x2184,
+0x24B6 => 0x24D0,
+0x24B7 => 0x24D1,
+0x24B8 => 0x24D2,
+0x24B9 => 0x24D3,
+0x24BA => 0x24D4,
+0x24BB => 0x24D5,
+0x24BC => 0x24D6,
+0x24BD => 0x24D7,
+0x24BE => 0x24D8,
+0x24BF => 0x24D9,
+0x24C0 => 0x24DA,
+0x24C1 => 0x24DB,
+0x24C2 => 0x24DC,
+0x24C3 => 0x24DD,
+0x24C4 => 0x24DE,
+0x24C5 => 0x24DF,
+0x24C6 => 0x24E0,
+0x24C7 => 0x24E1,
+0x24C8 => 0x24E2,
+0x24C9 => 0x24E3,
+0x24CA => 0x24E4,
+0x24CB => 0x24E5,
+0x24CC => 0x24E6,
+0x24CD => 0x24E7,
+0x24CE => 0x24E8,
+0x24CF => 0x24E9,
+0x2C00 => 0x2C30,
+0x2C01 => 0x2C31,
+0x2C02 => 0x2C32,
+0x2C03 => 0x2C33,
+0x2C04 => 0x2C34,
+0x2C05 => 0x2C35,
+0x2C06 => 0x2C36,
+0x2C07 => 0x2C37,
+0x2C08 => 0x2C38,
+0x2C09 => 0x2C39,
+0x2C0A => 0x2C3A,
+0x2C0B => 0x2C3B,
+0x2C0C => 0x2C3C,
+0x2C0D => 0x2C3D,
+0x2C0E => 0x2C3E,
+0x2C0F => 0x2C3F,
+0x2C10 => 0x2C40,
+0x2C11 => 0x2C41,
+0x2C12 => 0x2C42,
+0x2C13 => 0x2C43,
+0x2C14 => 0x2C44,
+0x2C15 => 0x2C45,
+0x2C16 => 0x2C46,
+0x2C17 => 0x2C47,
+0x2C18 => 0x2C48,
+0x2C19 => 0x2C49,
+0x2C1A => 0x2C4A,
+0x2C1B => 0x2C4B,
+0x2C1C => 0x2C4C,
+0x2C1D => 0x2C4D,
+0x2C1E => 0x2C4E,
+0x2C1F => 0x2C4F,
+0x2C20 => 0x2C50,
+0x2C21 => 0x2C51,
+0x2C22 => 0x2C52,
+0x2C23 => 0x2C53,
+0x2C24 => 0x2C54,
+0x2C25 => 0x2C55,
+0x2C26 => 0x2C56,
+0x2C27 => 0x2C57,
+0x2C28 => 0x2C58,
+0x2C29 => 0x2C59,
+0x2C2A => 0x2C5A,
+0x2C2B => 0x2C5B,
+0x2C2C => 0x2C5C,
+0x2C2D => 0x2C5D,
+0x2C2E => 0x2C5E,
+0x2C60 => 0x2C61,
+0x2C62 => 0x26B,
+0x2C63 => 0x1D7D,
+0x2C64 => 0x27D,
+0x2C67 => 0x2C68,
+0x2C69 => 0x2C6A,
+0x2C6B => 0x2C6C,
+0x2C6D => 0x251,
+0x2C6E => 0x271,
+0x2C6F => 0x250,
+0x2C70 => 0x252,
+0x2C72 => 0x2C73,
+0x2C75 => 0x2C76,
+0x2C7E => 0x23F,
+0x2C7F => 0x240,
+0x2C80 => 0x2C81,
+0x2C82 => 0x2C83,
+0x2C84 => 0x2C85,
+0x2C86 => 0x2C87,
+0x2C88 => 0x2C89,
+0x2C8A => 0x2C8B,
+0x2C8C => 0x2C8D,
+0x2C8E => 0x2C8F,
+0x2C90 => 0x2C91,
+0x2C92 => 0x2C93,
+0x2C94 => 0x2C95,
+0x2C96 => 0x2C97,
+0x2C98 => 0x2C99,
+0x2C9A => 0x2C9B,
+0x2C9C => 0x2C9D,
+0x2C9E => 0x2C9F,
+0x2CA0 => 0x2CA1,
+0x2CA2 => 0x2CA3,
+0x2CA4 => 0x2CA5,
+0x2CA6 => 0x2CA7,
+0x2CA8 => 0x2CA9,
+0x2CAA => 0x2CAB,
+0x2CAC => 0x2CAD,
+0x2CAE => 0x2CAF,
+0x2CB0 => 0x2CB1,
+0x2CB2 => 0x2CB3,
+0x2CB4 => 0x2CB5,
+0x2CB6 => 0x2CB7,
+0x2CB8 => 0x2CB9,
+0x2CBA => 0x2CBB,
+0x2CBC => 0x2CBD,
+0x2CBE => 0x2CBF,
+0x2CC0 => 0x2CC1,
+0x2CC2 => 0x2CC3,
+0x2CC4 => 0x2CC5,
+0x2CC6 => 0x2CC7,
+0x2CC8 => 0x2CC9,
+0x2CCA => 0x2CCB,
+0x2CCC => 0x2CCD,
+0x2CCE => 0x2CCF,
+0x2CD0 => 0x2CD1,
+0x2CD2 => 0x2CD3,
+0x2CD4 => 0x2CD5,
+0x2CD6 => 0x2CD7,
+0x2CD8 => 0x2CD9,
+0x2CDA => 0x2CDB,
+0x2CDC => 0x2CDD,
+0x2CDE => 0x2CDF,
+0x2CE0 => 0x2CE1,
+0x2CE2 => 0x2CE3,
+0x2CEB => 0x2CEC,
+0x2CED => 0x2CEE,
+0x2CF2 => 0x2CF3,
+0xA640 => 0xA641,
+0xA642 => 0xA643,
+0xA644 => 0xA645,
+0xA646 => 0xA647,
+0xA648 => 0xA649,
+0xA64A => 0xA64B,
+0xA64C => 0xA64D,
+0xA64E => 0xA64F,
+0xA650 => 0xA651,
+0xA652 => 0xA653,
+0xA654 => 0xA655,
+0xA656 => 0xA657,
+0xA658 => 0xA659,
+0xA65A => 0xA65B,
+0xA65C => 0xA65D,
+0xA65E => 0xA65F,
+0xA660 => 0xA661,
+0xA662 => 0xA663,
+0xA664 => 0xA665,
+0xA666 => 0xA667,
+0xA668 => 0xA669,
+0xA66A => 0xA66B,
+0xA66C => 0xA66D,
+0xA680 => 0xA681,
+0xA682 => 0xA683,
+0xA684 => 0xA685,
+0xA686 => 0xA687,
+0xA688 => 0xA689,
+0xA68A => 0xA68B,
+0xA68C => 0xA68D,
+0xA68E => 0xA68F,
+0xA690 => 0xA691,
+0xA692 => 0xA693,
+0xA694 => 0xA695,
+0xA696 => 0xA697,
+0xA698 => 0xA699,
+0xA69A => 0xA69B,
+0xA722 => 0xA723,
+0xA724 => 0xA725,
+0xA726 => 0xA727,
+0xA728 => 0xA729,
+0xA72A => 0xA72B,
+0xA72C => 0xA72D,
+0xA72E => 0xA72F,
+0xA732 => 0xA733,
+0xA734 => 0xA735,
+0xA736 => 0xA737,
+0xA738 => 0xA739,
+0xA73A => 0xA73B,
+0xA73C => 0xA73D,
+0xA73E => 0xA73F,
+0xA740 => 0xA741,
+0xA742 => 0xA743,
+0xA744 => 0xA745,
+0xA746 => 0xA747,
+0xA748 => 0xA749,
+0xA74A => 0xA74B,
+0xA74C => 0xA74D,
+0xA74E => 0xA74F,
+0xA750 => 0xA751,
+0xA752 => 0xA753,
+0xA754 => 0xA755,
+0xA756 => 0xA757,
+0xA758 => 0xA759,
+0xA75A => 0xA75B,
+0xA75C => 0xA75D,
+0xA75E => 0xA75F,
+0xA760 => 0xA761,
+0xA762 => 0xA763,
+0xA764 => 0xA765,
+0xA766 => 0xA767,
+0xA768 => 0xA769,
+0xA76A => 0xA76B,
+0xA76C => 0xA76D,
+0xA76E => 0xA76F,
+0xA779 => 0xA77A,
+0xA77B => 0xA77C,
+0xA77D => 0x1D79,
+0xA77E => 0xA77F,
+0xA780 => 0xA781,
+0xA782 => 0xA783,
+0xA784 => 0xA785,
+0xA786 => 0xA787,
+0xA78B => 0xA78C,
+0xA78D => 0x265,
+0xA790 => 0xA791,
+0xA792 => 0xA793,
+0xA796 => 0xA797,
+0xA798 => 0xA799,
+0xA79A => 0xA79B,
+0xA79C => 0xA79D,
+0xA79E => 0xA79F,
+0xA7A0 => 0xA7A1,
+0xA7A2 => 0xA7A3,
+0xA7A4 => 0xA7A5,
+0xA7A6 => 0xA7A7,
+0xA7A8 => 0xA7A9,
+0xA7AA => 0x266,
+0xA7AB => 0x25C,
+0xA7AC => 0x261,
+0xA7AD => 0x26C,
+0xA7AE => 0x26A,
+0xA7B0 => 0x29E,
+0xA7B1 => 0x287,
+0xA7B2 => 0x29D,
+0xA7B3 => 0xAB53,
+0xA7B4 => 0xA7B5,
+0xA7B6 => 0xA7B7,
+0xA7B8 => 0xA7B9,
+0xA7BA => 0xA7BB,
+0xA7BC => 0xA7BD,
+0xA7BE => 0xA7BF,
+0xA7C2 => 0xA7C3,
+0xA7C4 => 0xA794,
+0xA7C5 => 0x282,
+0xA7C6 => 0x1D8E,
+0xA7C7 => 0xA7C8,
+0xA7C9 => 0xA7CA,
+0xA7F5 => 0xA7F6,
+0xFF21 => 0xFF41,
+0xFF22 => 0xFF42,
+0xFF23 => 0xFF43,
+0xFF24 => 0xFF44,
+0xFF25 => 0xFF45,
+0xFF26 => 0xFF46,
+0xFF27 => 0xFF47,
+0xFF28 => 0xFF48,
+0xFF29 => 0xFF49,
+0xFF2A => 0xFF4A,
+0xFF2B => 0xFF4B,
+0xFF2C => 0xFF4C,
+0xFF2D => 0xFF4D,
+0xFF2E => 0xFF4E,
+0xFF2F => 0xFF4F,
+0xFF30 => 0xFF50,
+0xFF31 => 0xFF51,
+0xFF32 => 0xFF52,
+0xFF33 => 0xFF53,
+0xFF34 => 0xFF54,
+0xFF35 => 0xFF55,
+0xFF36 => 0xFF56,
+0xFF37 => 0xFF57,
+0xFF38 => 0xFF58,
+0xFF39 => 0xFF59,
+0xFF3A => 0xFF5A,
+0x10400 => 0x10428,
+0x10401 => 0x10429,
+0x10402 => 0x1042A,
+0x10403 => 0x1042B,
+0x10404 => 0x1042C,
+0x10405 => 0x1042D,
+0x10406 => 0x1042E,
+0x10407 => 0x1042F,
+0x10408 => 0x10430,
+0x10409 => 0x10431,
+0x1040A => 0x10432,
+0x1040B => 0x10433,
+0x1040C => 0x10434,
+0x1040D => 0x10435,
+0x1040E => 0x10436,
+0x1040F => 0x10437,
+0x10410 => 0x10438,
+0x10411 => 0x10439,
+0x10412 => 0x1043A,
+0x10413 => 0x1043B,
+0x10414 => 0x1043C,
+0x10415 => 0x1043D,
+0x10416 => 0x1043E,
+0x10417 => 0x1043F,
+0x10418 => 0x10440,
+0x10419 => 0x10441,
+0x1041A => 0x10442,
+0x1041B => 0x10443,
+0x1041C => 0x10444,
+0x1041D => 0x10445,
+0x1041E => 0x10446,
+0x1041F => 0x10447,
+0x10420 => 0x10448,
+0x10421 => 0x10449,
+0x10422 => 0x1044A,
+0x10423 => 0x1044B,
+0x10424 => 0x1044C,
+0x10425 => 0x1044D,
+0x10426 => 0x1044E,
+0x10427 => 0x1044F,
+0x104B0 => 0x104D8,
+0x104B1 => 0x104D9,
+0x104B2 => 0x104DA,
+0x104B3 => 0x104DB,
+0x104B4 => 0x104DC,
+0x104B5 => 0x104DD,
+0x104B6 => 0x104DE,
+0x104B7 => 0x104DF,
+0x104B8 => 0x104E0,
+0x104B9 => 0x104E1,
+0x104BA => 0x104E2,
+0x104BB => 0x104E3,
+0x104BC => 0x104E4,
+0x104BD => 0x104E5,
+0x104BE => 0x104E6,
+0x104BF => 0x104E7,
+0x104C0 => 0x104E8,
+0x104C1 => 0x104E9,
+0x104C2 => 0x104EA,
+0x104C3 => 0x104EB,
+0x104C4 => 0x104EC,
+0x104C5 => 0x104ED,
+0x104C6 => 0x104EE,
+0x104C7 => 0x104EF,
+0x104C8 => 0x104F0,
+0x104C9 => 0x104F1,
+0x104CA => 0x104F2,
+0x104CB => 0x104F3,
+0x104CC => 0x104F4,
+0x104CD => 0x104F5,
+0x104CE => 0x104F6,
+0x104CF => 0x104F7,
+0x104D0 => 0x104F8,
+0x104D1 => 0x104F9,
+0x104D2 => 0x104FA,
+0x104D3 => 0x104FB,
+0x10C80 => 0x10CC0,
+0x10C81 => 0x10CC1,
+0x10C82 => 0x10CC2,
+0x10C83 => 0x10CC3,
+0x10C84 => 0x10CC4,
+0x10C85 => 0x10CC5,
+0x10C86 => 0x10CC6,
+0x10C87 => 0x10CC7,
+0x10C88 => 0x10CC8,
+0x10C89 => 0x10CC9,
+0x10C8A => 0x10CCA,
+0x10C8B => 0x10CCB,
+0x10C8C => 0x10CCC,
+0x10C8D => 0x10CCD,
+0x10C8E => 0x10CCE,
+0x10C8F => 0x10CCF,
+0x10C90 => 0x10CD0,
+0x10C91 => 0x10CD1,
+0x10C92 => 0x10CD2,
+0x10C93 => 0x10CD3,
+0x10C94 => 0x10CD4,
+0x10C95 => 0x10CD5,
+0x10C96 => 0x10CD6,
+0x10C97 => 0x10CD7,
+0x10C98 => 0x10CD8,
+0x10C99 => 0x10CD9,
+0x10C9A => 0x10CDA,
+0x10C9B => 0x10CDB,
+0x10C9C => 0x10CDC,
+0x10C9D => 0x10CDD,
+0x10C9E => 0x10CDE,
+0x10C9F => 0x10CDF,
+0x10CA0 => 0x10CE0,
+0x10CA1 => 0x10CE1,
+0x10CA2 => 0x10CE2,
+0x10CA3 => 0x10CE3,
+0x10CA4 => 0x10CE4,
+0x10CA5 => 0x10CE5,
+0x10CA6 => 0x10CE6,
+0x10CA7 => 0x10CE7,
+0x10CA8 => 0x10CE8,
+0x10CA9 => 0x10CE9,
+0x10CAA => 0x10CEA,
+0x10CAB => 0x10CEB,
+0x10CAC => 0x10CEC,
+0x10CAD => 0x10CED,
+0x10CAE => 0x10CEE,
+0x10CAF => 0x10CEF,
+0x10CB0 => 0x10CF0,
+0x10CB1 => 0x10CF1,
+0x10CB2 => 0x10CF2,
+0x118A0 => 0x118C0,
+0x118A1 => 0x118C1,
+0x118A2 => 0x118C2,
+0x118A3 => 0x118C3,
+0x118A4 => 0x118C4,
+0x118A5 => 0x118C5,
+0x118A6 => 0x118C6,
+0x118A7 => 0x118C7,
+0x118A8 => 0x118C8,
+0x118A9 => 0x118C9,
+0x118AA => 0x118CA,
+0x118AB => 0x118CB,
+0x118AC => 0x118CC,
+0x118AD => 0x118CD,
+0x118AE => 0x118CE,
+0x118AF => 0x118CF,
+0x118B0 => 0x118D0,
+0x118B1 => 0x118D1,
+0x118B2 => 0x118D2,
+0x118B3 => 0x118D3,
+0x118B4 => 0x118D4,
+0x118B5 => 0x118D5,
+0x118B6 => 0x118D6,
+0x118B7 => 0x118D7,
+0x118B8 => 0x118D8,
+0x118B9 => 0x118D9,
+0x118BA => 0x118DA,
+0x118BB => 0x118DB,
+0x118BC => 0x118DC,
+0x118BD => 0x118DD,
+0x118BE => 0x118DE,
+0x118BF => 0x118DF,
+0x16E40 => 0x16E60,
+0x16E41 => 0x16E61,
+0x16E42 => 0x16E62,
+0x16E43 => 0x16E63,
+0x16E44 => 0x16E64,
+0x16E45 => 0x16E65,
+0x16E46 => 0x16E66,
+0x16E47 => 0x16E67,
+0x16E48 => 0x16E68,
+0x16E49 => 0x16E69,
+0x16E4A => 0x16E6A,
+0x16E4B => 0x16E6B,
+0x16E4C => 0x16E6C,
+0x16E4D => 0x16E6D,
+0x16E4E => 0x16E6E,
+0x16E4F => 0x16E6F,
+0x16E50 => 0x16E70,
+0x16E51 => 0x16E71,
+0x16E52 => 0x16E72,
+0x16E53 => 0x16E73,
+0x16E54 => 0x16E74,
+0x16E55 => 0x16E75,
+0x16E56 => 0x16E76,
+0x16E57 => 0x16E77,
+0x16E58 => 0x16E78,
+0x16E59 => 0x16E79,
+0x16E5A => 0x16E7A,
+0x16E5B => 0x16E7B,
+0x16E5C => 0x16E7C,
+0x16E5D => 0x16E7D,
+0x16E5E => 0x16E7E,
+0x16E5F => 0x16E7F,
+0x1E900 => 0x1E922,
+0x1E901 => 0x1E923,
+0x1E902 => 0x1E924,
+0x1E903 => 0x1E925,
+0x1E904 => 0x1E926,
+0x1E905 => 0x1E927,
+0x1E906 => 0x1E928,
+0x1E907 => 0x1E929,
+0x1E908 => 0x1E92A,
+0x1E909 => 0x1E92B,
+0x1E90A => 0x1E92C,
+0x1E90B => 0x1E92D,
+0x1E90C => 0x1E92E,
+0x1E90D => 0x1E92F,
+0x1E90E => 0x1E930,
+0x1E90F => 0x1E931,
+0x1E910 => 0x1E932,
+0x1E911 => 0x1E933,
+0x1E912 => 0x1E934,
+0x1E913 => 0x1E935,
+0x1E914 => 0x1E936,
+0x1E915 => 0x1E937,
+0x1E916 => 0x1E938,
+0x1E917 => 0x1E939,
+0x1E918 => 0x1E93A,
+0x1E919 => 0x1E93B,
+0x1E91A => 0x1E93C,
+0x1E91B => 0x1E93D,
+0x1E91C => 0x1E93E,
+0x1E91D => 0x1E93F,
+0x1E91E => 0x1E940,
+0x1E91F => 0x1E941,
+0x1E920 => 0x1E942,
+0x1E921 => 0x1E943,
+];
diff --git a/res/ord.php b/res/ord.php
deleted file mode 100644
index a48ec1b..0000000
--- a/res/ord.php
+++ /dev/null
@@ -1,259 +0,0 @@
- 0,
- "\x01" => 1,
- "\x02" => 2,
- "\x03" => 3,
- "\x04" => 4,
- "\x05" => 5,
- "\x06" => 6,
- "\x07" => 7,
- "\x08" => 8,
- "\x09" => 9,
- "\x0A" => 10,
- "\x0B" => 11,
- "\x0C" => 12,
- "\x0D" => 13,
- "\x0E" => 14,
- "\x0F" => 15,
- "\x10" => 16,
- "\x11" => 17,
- "\x12" => 18,
- "\x13" => 19,
- "\x14" => 20,
- "\x15" => 21,
- "\x16" => 22,
- "\x17" => 23,
- "\x18" => 24,
- "\x19" => 25,
- "\x1A" => 26,
- "\x1B" => 27,
- "\x1C" => 28,
- "\x1D" => 29,
- "\x1E" => 30,
- "\x1F" => 31,
- "\x20" => 32,
- "\x21" => 33,
- "\x22" => 34,
- "\x23" => 35,
- "\x24" => 36,
- "\x25" => 37,
- "\x26" => 38,
- "\x27" => 39,
- "\x28" => 40,
- "\x29" => 41,
- "\x2A" => 42,
- "\x2B" => 43,
- "\x2C" => 44,
- "\x2D" => 45,
- "\x2E" => 46,
- "\x2F" => 47,
- "\x30" => 48,
- "\x31" => 49,
- "\x32" => 50,
- "\x33" => 51,
- "\x34" => 52,
- "\x35" => 53,
- "\x36" => 54,
- "\x37" => 55,
- "\x38" => 56,
- "\x39" => 57,
- "\x3A" => 58,
- "\x3B" => 59,
- "\x3C" => 60,
- "\x3D" => 61,
- "\x3E" => 62,
- "\x3F" => 63,
- "\x40" => 64,
- "\x41" => 65,
- "\x42" => 66,
- "\x43" => 67,
- "\x44" => 68,
- "\x45" => 69,
- "\x46" => 70,
- "\x47" => 71,
- "\x48" => 72,
- "\x49" => 73,
- "\x4A" => 74,
- "\x4B" => 75,
- "\x4C" => 76,
- "\x4D" => 77,
- "\x4E" => 78,
- "\x4F" => 79,
- "\x50" => 80,
- "\x51" => 81,
- "\x52" => 82,
- "\x53" => 83,
- "\x54" => 84,
- "\x55" => 85,
- "\x56" => 86,
- "\x57" => 87,
- "\x58" => 88,
- "\x59" => 89,
- "\x5A" => 90,
- "\x5B" => 91,
- "\x5C" => 92,
- "\x5D" => 93,
- "\x5E" => 94,
- "\x5F" => 95,
- "\x60" => 96,
- "\x61" => 97,
- "\x62" => 98,
- "\x63" => 99,
- "\x64" => 100,
- "\x65" => 101,
- "\x66" => 102,
- "\x67" => 103,
- "\x68" => 104,
- "\x69" => 105,
- "\x6A" => 106,
- "\x6B" => 107,
- "\x6C" => 108,
- "\x6D" => 109,
- "\x6E" => 110,
- "\x6F" => 111,
- "\x70" => 112,
- "\x71" => 113,
- "\x72" => 114,
- "\x73" => 115,
- "\x74" => 116,
- "\x75" => 117,
- "\x76" => 118,
- "\x77" => 119,
- "\x78" => 120,
- "\x79" => 121,
- "\x7A" => 122,
- "\x7B" => 123,
- "\x7C" => 124,
- "\x7D" => 125,
- "\x7E" => 126,
- "\x7F" => 127,
- "\x80" => 128,
- "\x81" => 129,
- "\x82" => 130,
- "\x83" => 131,
- "\x84" => 132,
- "\x85" => 133,
- "\x86" => 134,
- "\x87" => 135,
- "\x88" => 136,
- "\x89" => 137,
- "\x8A" => 138,
- "\x8B" => 139,
- "\x8C" => 140,
- "\x8D" => 141,
- "\x8E" => 142,
- "\x8F" => 143,
- "\x90" => 144,
- "\x91" => 145,
- "\x92" => 146,
- "\x93" => 147,
- "\x94" => 148,
- "\x95" => 149,
- "\x96" => 150,
- "\x97" => 151,
- "\x98" => 152,
- "\x99" => 153,
- "\x9A" => 154,
- "\x9B" => 155,
- "\x9C" => 156,
- "\x9D" => 157,
- "\x9E" => 158,
- "\x9F" => 159,
- "\xA0" => 160,
- "\xA1" => 161,
- "\xA2" => 162,
- "\xA3" => 163,
- "\xA4" => 164,
- "\xA5" => 165,
- "\xA6" => 166,
- "\xA7" => 167,
- "\xA8" => 168,
- "\xA9" => 169,
- "\xAA" => 170,
- "\xAB" => 171,
- "\xAC" => 172,
- "\xAD" => 173,
- "\xAE" => 174,
- "\xAF" => 175,
- "\xB0" => 176,
- "\xB1" => 177,
- "\xB2" => 178,
- "\xB3" => 179,
- "\xB4" => 180,
- "\xB5" => 181,
- "\xB6" => 182,
- "\xB7" => 183,
- "\xB8" => 184,
- "\xB9" => 185,
- "\xBA" => 186,
- "\xBB" => 187,
- "\xBC" => 188,
- "\xBD" => 189,
- "\xBE" => 190,
- "\xBF" => 191,
- "\xC0" => 192,
- "\xC1" => 193,
- "\xC2" => 194,
- "\xC3" => 195,
- "\xC4" => 196,
- "\xC5" => 197,
- "\xC6" => 198,
- "\xC7" => 199,
- "\xC8" => 200,
- "\xC9" => 201,
- "\xCA" => 202,
- "\xCB" => 203,
- "\xCC" => 204,
- "\xCD" => 205,
- "\xCE" => 206,
- "\xCF" => 207,
- "\xD0" => 208,
- "\xD1" => 209,
- "\xD2" => 210,
- "\xD3" => 211,
- "\xD4" => 212,
- "\xD5" => 213,
- "\xD6" => 214,
- "\xD7" => 215,
- "\xD8" => 216,
- "\xD9" => 217,
- "\xDA" => 218,
- "\xDB" => 219,
- "\xDC" => 220,
- "\xDD" => 221,
- "\xDE" => 222,
- "\xDF" => 223,
- "\xE0" => 224,
- "\xE1" => 225,
- "\xE2" => 226,
- "\xE3" => 227,
- "\xE4" => 228,
- "\xE5" => 229,
- "\xE6" => 230,
- "\xE7" => 231,
- "\xE8" => 232,
- "\xE9" => 233,
- "\xEA" => 234,
- "\xEB" => 235,
- "\xEC" => 236,
- "\xED" => 237,
- "\xEE" => 238,
- "\xEF" => 239,
- "\xF0" => 240,
- "\xF1" => 241,
- "\xF2" => 242,
- "\xF3" => 243,
- "\xF4" => 244,
- "\xF5" => 245,
- "\xF6" => 246,
- "\xF7" => 247,
- "\xF8" => 248,
- "\xF9" => 249,
- "\xFA" => 250,
- "\xFB" => 251,
- "\xFC" => 252,
- "\xFD" => 253,
- "\xFE" => 254,
- "\xFF" => 255,
-);
diff --git a/res/upper.php b/res/upper.php
index 92a8142..376ce6e 100644
--- a/res/upper.php
+++ b/res/upper.php
@@ -1,6478 +1,1413 @@
- array (
- 0 => 65,
- 1 => 'A',
- ),
- 98 =>
- array (
- 0 => 66,
- 1 => 'B',
- ),
- 99 =>
- array (
- 0 => 67,
- 1 => 'C',
- ),
- 100 =>
- array (
- 0 => 68,
- 1 => 'D',
- ),
- 101 =>
- array (
- 0 => 69,
- 1 => 'E',
- ),
- 102 =>
- array (
- 0 => 70,
- 1 => 'F',
- ),
- 103 =>
- array (
- 0 => 71,
- 1 => 'G',
- ),
- 104 =>
- array (
- 0 => 72,
- 1 => 'H',
- ),
- 105 =>
- array (
- 0 => 73,
- 1 => 'I',
- ),
- 106 =>
- array (
- 0 => 74,
- 1 => 'J',
- ),
- 107 =>
- array (
- 0 => 8490,
- 1 => 'K',
- ),
- 108 =>
- array (
- 0 => 76,
- 1 => 'L',
- ),
- 109 =>
- array (
- 0 => 77,
- 1 => 'M',
- ),
- 110 =>
- array (
- 0 => 78,
- 1 => 'N',
- ),
- 111 =>
- array (
- 0 => 79,
- 1 => 'O',
- ),
- 112 =>
- array (
- 0 => 80,
- 1 => 'P',
- ),
- 113 =>
- array (
- 0 => 81,
- 1 => 'Q',
- ),
- 114 =>
- array (
- 0 => 82,
- 1 => 'R',
- ),
- 115 =>
- array (
- 0 => 383,
- 1 => 'ſ',
- ),
- 116 =>
- array (
- 0 => 84,
- 1 => 'T',
- ),
- 117 =>
- array (
- 0 => 85,
- 1 => 'U',
- ),
- 118 =>
- array (
- 0 => 86,
- 1 => 'V',
- ),
- 119 =>
- array (
- 0 => 87,
- 1 => 'W',
- ),
- 120 =>
- array (
- 0 => 88,
- 1 => 'X',
- ),
- 121 =>
- array (
- 0 => 89,
- 1 => 'Y',
- ),
- 122 =>
- array (
- 0 => 90,
- 1 => 'Z',
- ),
- 956 =>
- array (
- 0 => 924,
- 1 => 'Μ',
- ),
- 224 =>
- array (
- 0 => 192,
- 1 => 'À',
- ),
- 225 =>
- array (
- 0 => 193,
- 1 => 'Á',
- ),
- 226 =>
- array (
- 0 => 194,
- 1 => 'Â',
- ),
- 227 =>
- array (
- 0 => 195,
- 1 => 'Ã',
- ),
- 228 =>
- array (
- 0 => 196,
- 1 => 'Ä',
- ),
- 229 =>
- array (
- 0 => 8491,
- 1 => 'Å',
- ),
- 230 =>
- array (
- 0 => 198,
- 1 => 'Æ',
- ),
- 231 =>
- array (
- 0 => 199,
- 1 => 'Ç',
- ),
- 232 =>
- array (
- 0 => 200,
- 1 => 'È',
- ),
- 233 =>
- array (
- 0 => 201,
- 1 => 'É',
- ),
- 234 =>
- array (
- 0 => 202,
- 1 => 'Ê',
- ),
- 235 =>
- array (
- 0 => 203,
- 1 => 'Ë',
- ),
- 236 =>
- array (
- 0 => 204,
- 1 => 'Ì',
- ),
- 237 =>
- array (
- 0 => 205,
- 1 => 'Í',
- ),
- 238 =>
- array (
- 0 => 206,
- 1 => 'Î',
- ),
- 239 =>
- array (
- 0 => 207,
- 1 => 'Ï',
- ),
- 240 =>
- array (
- 0 => 208,
- 1 => 'Ð',
- ),
- 241 =>
- array (
- 0 => 209,
- 1 => 'Ñ',
- ),
- 242 =>
- array (
- 0 => 210,
- 1 => 'Ò',
- ),
- 243 =>
- array (
- 0 => 211,
- 1 => 'Ó',
- ),
- 244 =>
- array (
- 0 => 212,
- 1 => 'Ô',
- ),
- 245 =>
- array (
- 0 => 213,
- 1 => 'Õ',
- ),
- 246 =>
- array (
- 0 => 214,
- 1 => 'Ö',
- ),
- 248 =>
- array (
- 0 => 216,
- 1 => 'Ø',
- ),
- 249 =>
- array (
- 0 => 217,
- 1 => 'Ù',
- ),
- 250 =>
- array (
- 0 => 218,
- 1 => 'Ú',
- ),
- 251 =>
- array (
- 0 => 219,
- 1 => 'Û',
- ),
- 252 =>
- array (
- 0 => 220,
- 1 => 'Ü',
- ),
- 253 =>
- array (
- 0 => 221,
- 1 => 'Ý',
- ),
- 254 =>
- array (
- 0 => 222,
- 1 => 'Þ',
- ),
- 257 =>
- array (
- 0 => 256,
- 1 => 'Ā',
- ),
- 259 =>
- array (
- 0 => 258,
- 1 => 'Ă',
- ),
- 261 =>
- array (
- 0 => 260,
- 1 => 'Ą',
- ),
- 263 =>
- array (
- 0 => 262,
- 1 => 'Ć',
- ),
- 265 =>
- array (
- 0 => 264,
- 1 => 'Ĉ',
- ),
- 267 =>
- array (
- 0 => 266,
- 1 => 'Ċ',
- ),
- 269 =>
- array (
- 0 => 268,
- 1 => 'Č',
- ),
- 271 =>
- array (
- 0 => 270,
- 1 => 'Ď',
- ),
- 273 =>
- array (
- 0 => 272,
- 1 => 'Đ',
- ),
- 275 =>
- array (
- 0 => 274,
- 1 => 'Ē',
- ),
- 277 =>
- array (
- 0 => 276,
- 1 => 'Ĕ',
- ),
- 279 =>
- array (
- 0 => 278,
- 1 => 'Ė',
- ),
- 281 =>
- array (
- 0 => 280,
- 1 => 'Ę',
- ),
- 283 =>
- array (
- 0 => 282,
- 1 => 'Ě',
- ),
- 285 =>
- array (
- 0 => 284,
- 1 => 'Ĝ',
- ),
- 287 =>
- array (
- 0 => 286,
- 1 => 'Ğ',
- ),
- 289 =>
- array (
- 0 => 288,
- 1 => 'Ġ',
- ),
- 291 =>
- array (
- 0 => 290,
- 1 => 'Ģ',
- ),
- 293 =>
- array (
- 0 => 292,
- 1 => 'Ĥ',
- ),
- 295 =>
- array (
- 0 => 294,
- 1 => 'Ħ',
- ),
- 297 =>
- array (
- 0 => 296,
- 1 => 'Ĩ',
- ),
- 299 =>
- array (
- 0 => 298,
- 1 => 'Ī',
- ),
- 301 =>
- array (
- 0 => 300,
- 1 => 'Ĭ',
- ),
- 303 =>
- array (
- 0 => 302,
- 1 => 'Į',
- ),
- 307 =>
- array (
- 0 => 306,
- 1 => 'IJ',
- ),
- 309 =>
- array (
- 0 => 308,
- 1 => 'Ĵ',
- ),
- 311 =>
- array (
- 0 => 310,
- 1 => 'Ķ',
- ),
- 314 =>
- array (
- 0 => 313,
- 1 => 'Ĺ',
- ),
- 316 =>
- array (
- 0 => 315,
- 1 => 'Ļ',
- ),
- 318 =>
- array (
- 0 => 317,
- 1 => 'Ľ',
- ),
- 320 =>
- array (
- 0 => 319,
- 1 => 'Ŀ',
- ),
- 322 =>
- array (
- 0 => 321,
- 1 => 'Ł',
- ),
- 324 =>
- array (
- 0 => 323,
- 1 => 'Ń',
- ),
- 326 =>
- array (
- 0 => 325,
- 1 => 'Ņ',
- ),
- 328 =>
- array (
- 0 => 327,
- 1 => 'Ň',
- ),
- 331 =>
- array (
- 0 => 330,
- 1 => 'Ŋ',
- ),
- 333 =>
- array (
- 0 => 332,
- 1 => 'Ō',
- ),
- 335 =>
- array (
- 0 => 334,
- 1 => 'Ŏ',
- ),
- 337 =>
- array (
- 0 => 336,
- 1 => 'Ő',
- ),
- 339 =>
- array (
- 0 => 338,
- 1 => 'Œ',
- ),
- 341 =>
- array (
- 0 => 340,
- 1 => 'Ŕ',
- ),
- 343 =>
- array (
- 0 => 342,
- 1 => 'Ŗ',
- ),
- 345 =>
- array (
- 0 => 344,
- 1 => 'Ř',
- ),
- 347 =>
- array (
- 0 => 346,
- 1 => 'Ś',
- ),
- 349 =>
- array (
- 0 => 348,
- 1 => 'Ŝ',
- ),
- 351 =>
- array (
- 0 => 350,
- 1 => 'Ş',
- ),
- 353 =>
- array (
- 0 => 352,
- 1 => 'Š',
- ),
- 355 =>
- array (
- 0 => 354,
- 1 => 'Ţ',
- ),
- 357 =>
- array (
- 0 => 356,
- 1 => 'Ť',
- ),
- 359 =>
- array (
- 0 => 358,
- 1 => 'Ŧ',
- ),
- 361 =>
- array (
- 0 => 360,
- 1 => 'Ũ',
- ),
- 363 =>
- array (
- 0 => 362,
- 1 => 'Ū',
- ),
- 365 =>
- array (
- 0 => 364,
- 1 => 'Ŭ',
- ),
- 367 =>
- array (
- 0 => 366,
- 1 => 'Ů',
- ),
- 369 =>
- array (
- 0 => 368,
- 1 => 'Ű',
- ),
- 371 =>
- array (
- 0 => 370,
- 1 => 'Ų',
- ),
- 373 =>
- array (
- 0 => 372,
- 1 => 'Ŵ',
- ),
- 375 =>
- array (
- 0 => 374,
- 1 => 'Ŷ',
- ),
- 255 =>
- array (
- 0 => 376,
- 1 => 'Ÿ',
- ),
- 378 =>
- array (
- 0 => 377,
- 1 => 'Ź',
- ),
- 380 =>
- array (
- 0 => 379,
- 1 => 'Ż',
- ),
- 382 =>
- array (
- 0 => 381,
- 1 => 'Ž',
- ),
- 595 =>
- array (
- 0 => 385,
- 1 => 'Ɓ',
- ),
- 387 =>
- array (
- 0 => 386,
- 1 => 'Ƃ',
- ),
- 389 =>
- array (
- 0 => 388,
- 1 => 'Ƅ',
- ),
- 596 =>
- array (
- 0 => 390,
- 1 => 'Ɔ',
- ),
- 392 =>
- array (
- 0 => 391,
- 1 => 'Ƈ',
- ),
- 598 =>
- array (
- 0 => 393,
- 1 => 'Ɖ',
- ),
- 599 =>
- array (
- 0 => 394,
- 1 => 'Ɗ',
- ),
- 396 =>
- array (
- 0 => 395,
- 1 => 'Ƌ',
- ),
- 477 =>
- array (
- 0 => 398,
- 1 => 'Ǝ',
- ),
- 601 =>
- array (
- 0 => 399,
- 1 => 'Ə',
- ),
- 603 =>
- array (
- 0 => 400,
- 1 => 'Ɛ',
- ),
- 402 =>
- array (
- 0 => 401,
- 1 => 'Ƒ',
- ),
- 608 =>
- array (
- 0 => 403,
- 1 => 'Ɠ',
- ),
- 611 =>
- array (
- 0 => 404,
- 1 => 'Ɣ',
- ),
- 617 =>
- array (
- 0 => 406,
- 1 => 'Ɩ',
- ),
- 616 =>
- array (
- 0 => 407,
- 1 => 'Ɨ',
- ),
- 409 =>
- array (
- 0 => 408,
- 1 => 'Ƙ',
- ),
- 623 =>
- array (
- 0 => 412,
- 1 => 'Ɯ',
- ),
- 626 =>
- array (
- 0 => 413,
- 1 => 'Ɲ',
- ),
- 629 =>
- array (
- 0 => 415,
- 1 => 'Ɵ',
- ),
- 417 =>
- array (
- 0 => 416,
- 1 => 'Ơ',
- ),
- 419 =>
- array (
- 0 => 418,
- 1 => 'Ƣ',
- ),
- 421 =>
- array (
- 0 => 420,
- 1 => 'Ƥ',
- ),
- 640 =>
- array (
- 0 => 422,
- 1 => 'Ʀ',
- ),
- 424 =>
- array (
- 0 => 423,
- 1 => 'Ƨ',
- ),
- 643 =>
- array (
- 0 => 425,
- 1 => 'Ʃ',
- ),
- 429 =>
- array (
- 0 => 428,
- 1 => 'Ƭ',
- ),
- 648 =>
- array (
- 0 => 430,
- 1 => 'Ʈ',
- ),
- 432 =>
- array (
- 0 => 431,
- 1 => 'Ư',
- ),
- 650 =>
- array (
- 0 => 433,
- 1 => 'Ʊ',
- ),
- 651 =>
- array (
- 0 => 434,
- 1 => 'Ʋ',
- ),
- 436 =>
- array (
- 0 => 435,
- 1 => 'Ƴ',
- ),
- 438 =>
- array (
- 0 => 437,
- 1 => 'Ƶ',
- ),
- 658 =>
- array (
- 0 => 439,
- 1 => 'Ʒ',
- ),
- 441 =>
- array (
- 0 => 440,
- 1 => 'Ƹ',
- ),
- 445 =>
- array (
- 0 => 444,
- 1 => 'Ƽ',
- ),
- 454 =>
- array (
- 0 => 453,
- 1 => 'Dž',
- ),
- 457 =>
- array (
- 0 => 456,
- 1 => 'Lj',
- ),
- 460 =>
- array (
- 0 => 459,
- 1 => 'Nj',
- ),
- 462 =>
- array (
- 0 => 461,
- 1 => 'Ǎ',
- ),
- 464 =>
- array (
- 0 => 463,
- 1 => 'Ǐ',
- ),
- 466 =>
- array (
- 0 => 465,
- 1 => 'Ǒ',
- ),
- 468 =>
- array (
- 0 => 467,
- 1 => 'Ǔ',
- ),
- 470 =>
- array (
- 0 => 469,
- 1 => 'Ǖ',
- ),
- 472 =>
- array (
- 0 => 471,
- 1 => 'Ǘ',
- ),
- 474 =>
- array (
- 0 => 473,
- 1 => 'Ǚ',
- ),
- 476 =>
- array (
- 0 => 475,
- 1 => 'Ǜ',
- ),
- 479 =>
- array (
- 0 => 478,
- 1 => 'Ǟ',
- ),
- 481 =>
- array (
- 0 => 480,
- 1 => 'Ǡ',
- ),
- 483 =>
- array (
- 0 => 482,
- 1 => 'Ǣ',
- ),
- 485 =>
- array (
- 0 => 484,
- 1 => 'Ǥ',
- ),
- 487 =>
- array (
- 0 => 486,
- 1 => 'Ǧ',
- ),
- 489 =>
- array (
- 0 => 488,
- 1 => 'Ǩ',
- ),
- 491 =>
- array (
- 0 => 490,
- 1 => 'Ǫ',
- ),
- 493 =>
- array (
- 0 => 492,
- 1 => 'Ǭ',
- ),
- 495 =>
- array (
- 0 => 494,
- 1 => 'Ǯ',
- ),
- 499 =>
- array (
- 0 => 498,
- 1 => 'Dz',
- ),
- 501 =>
- array (
- 0 => 500,
- 1 => 'Ǵ',
- ),
- 405 =>
- array (
- 0 => 502,
- 1 => 'Ƕ',
- ),
- 447 =>
- array (
- 0 => 503,
- 1 => 'Ƿ',
- ),
- 505 =>
- array (
- 0 => 504,
- 1 => 'Ǹ',
- ),
- 507 =>
- array (
- 0 => 506,
- 1 => 'Ǻ',
- ),
- 509 =>
- array (
- 0 => 508,
- 1 => 'Ǽ',
- ),
- 511 =>
- array (
- 0 => 510,
- 1 => 'Ǿ',
- ),
- 513 =>
- array (
- 0 => 512,
- 1 => 'Ȁ',
- ),
- 515 =>
- array (
- 0 => 514,
- 1 => 'Ȃ',
- ),
- 517 =>
- array (
- 0 => 516,
- 1 => 'Ȅ',
- ),
- 519 =>
- array (
- 0 => 518,
- 1 => 'Ȇ',
- ),
- 521 =>
- array (
- 0 => 520,
- 1 => 'Ȉ',
- ),
- 523 =>
- array (
- 0 => 522,
- 1 => 'Ȋ',
- ),
- 525 =>
- array (
- 0 => 524,
- 1 => 'Ȍ',
- ),
- 527 =>
- array (
- 0 => 526,
- 1 => 'Ȏ',
- ),
- 529 =>
- array (
- 0 => 528,
- 1 => 'Ȑ',
- ),
- 531 =>
- array (
- 0 => 530,
- 1 => 'Ȓ',
- ),
- 533 =>
- array (
- 0 => 532,
- 1 => 'Ȕ',
- ),
- 535 =>
- array (
- 0 => 534,
- 1 => 'Ȗ',
- ),
- 537 =>
- array (
- 0 => 536,
- 1 => 'Ș',
- ),
- 539 =>
- array (
- 0 => 538,
- 1 => 'Ț',
- ),
- 541 =>
- array (
- 0 => 540,
- 1 => 'Ȝ',
- ),
- 543 =>
- array (
- 0 => 542,
- 1 => 'Ȟ',
- ),
- 414 =>
- array (
- 0 => 544,
- 1 => 'Ƞ',
- ),
- 547 =>
- array (
- 0 => 546,
- 1 => 'Ȣ',
- ),
- 549 =>
- array (
- 0 => 548,
- 1 => 'Ȥ',
- ),
- 551 =>
- array (
- 0 => 550,
- 1 => 'Ȧ',
- ),
- 553 =>
- array (
- 0 => 552,
- 1 => 'Ȩ',
- ),
- 555 =>
- array (
- 0 => 554,
- 1 => 'Ȫ',
- ),
- 557 =>
- array (
- 0 => 556,
- 1 => 'Ȭ',
- ),
- 559 =>
- array (
- 0 => 558,
- 1 => 'Ȯ',
- ),
- 561 =>
- array (
- 0 => 560,
- 1 => 'Ȱ',
- ),
- 563 =>
- array (
- 0 => 562,
- 1 => 'Ȳ',
- ),
- 11365 =>
- array (
- 0 => 570,
- 1 => 'Ⱥ',
- ),
- 572 =>
- array (
- 0 => 571,
- 1 => 'Ȼ',
- ),
- 410 =>
- array (
- 0 => 573,
- 1 => 'Ƚ',
- ),
- 11366 =>
- array (
- 0 => 574,
- 1 => 'Ⱦ',
- ),
- 578 =>
- array (
- 0 => 577,
- 1 => 'Ɂ',
- ),
- 384 =>
- array (
- 0 => 579,
- 1 => 'Ƀ',
- ),
- 649 =>
- array (
- 0 => 580,
- 1 => 'Ʉ',
- ),
- 652 =>
- array (
- 0 => 581,
- 1 => 'Ʌ',
- ),
- 583 =>
- array (
- 0 => 582,
- 1 => 'Ɇ',
- ),
- 585 =>
- array (
- 0 => 584,
- 1 => 'Ɉ',
- ),
- 587 =>
- array (
- 0 => 586,
- 1 => 'Ɋ',
- ),
- 589 =>
- array (
- 0 => 588,
- 1 => 'Ɍ',
- ),
- 591 =>
- array (
- 0 => 590,
- 1 => 'Ɏ',
- ),
- 953 =>
- array (
- 0 => 8126,
- 1 => 'ι',
- ),
- 881 =>
- array (
- 0 => 880,
- 1 => 'Ͱ',
- ),
- 883 =>
- array (
- 0 => 882,
- 1 => 'Ͳ',
- ),
- 887 =>
- array (
- 0 => 886,
- 1 => 'Ͷ',
- ),
- 1011 =>
- array (
- 0 => 895,
- 1 => 'Ϳ',
- ),
- 940 =>
- array (
- 0 => 902,
- 1 => 'Ά',
- ),
- 941 =>
- array (
- 0 => 904,
- 1 => 'Έ',
- ),
- 942 =>
- array (
- 0 => 905,
- 1 => 'Ή',
- ),
- 943 =>
- array (
- 0 => 906,
- 1 => 'Ί',
- ),
- 972 =>
- array (
- 0 => 908,
- 1 => 'Ό',
- ),
- 973 =>
- array (
- 0 => 910,
- 1 => 'Ύ',
- ),
- 974 =>
- array (
- 0 => 911,
- 1 => 'Ώ',
- ),
- 945 =>
- array (
- 0 => 913,
- 1 => 'Α',
- ),
- 946 =>
- array (
- 0 => 976,
- 1 => 'ϐ',
- ),
- 947 =>
- array (
- 0 => 915,
- 1 => 'Γ',
- ),
- 948 =>
- array (
- 0 => 916,
- 1 => 'Δ',
- ),
- 949 =>
- array (
- 0 => 1013,
- 1 => 'ϵ',
- ),
- 950 =>
- array (
- 0 => 918,
- 1 => 'Ζ',
- ),
- 951 =>
- array (
- 0 => 919,
- 1 => 'Η',
- ),
- 952 =>
- array (
- 0 => 1012,
- 1 => 'ϴ',
- ),
- 954 =>
- array (
- 0 => 1008,
- 1 => 'ϰ',
- ),
- 955 =>
- array (
- 0 => 923,
- 1 => 'Λ',
- ),
- 957 =>
- array (
- 0 => 925,
- 1 => 'Ν',
- ),
- 958 =>
- array (
- 0 => 926,
- 1 => 'Ξ',
- ),
- 959 =>
- array (
- 0 => 927,
- 1 => 'Ο',
- ),
- 960 =>
- array (
- 0 => 982,
- 1 => 'ϖ',
- ),
- 961 =>
- array (
- 0 => 1009,
- 1 => 'ϱ',
- ),
- 963 =>
- array (
- 0 => 962,
- 1 => 'ς',
- ),
- 964 =>
- array (
- 0 => 932,
- 1 => 'Τ',
- ),
- 965 =>
- array (
- 0 => 933,
- 1 => 'Υ',
- ),
- 966 =>
- array (
- 0 => 981,
- 1 => 'ϕ',
- ),
- 967 =>
- array (
- 0 => 935,
- 1 => 'Χ',
- ),
- 968 =>
- array (
- 0 => 936,
- 1 => 'Ψ',
- ),
- 969 =>
- array (
- 0 => 8486,
- 1 => 'Ω',
- ),
- 970 =>
- array (
- 0 => 938,
- 1 => 'Ϊ',
- ),
- 971 =>
- array (
- 0 => 939,
- 1 => 'Ϋ',
- ),
- 983 =>
- array (
- 0 => 975,
- 1 => 'Ϗ',
- ),
- 985 =>
- array (
- 0 => 984,
- 1 => 'Ϙ',
- ),
- 987 =>
- array (
- 0 => 986,
- 1 => 'Ϛ',
- ),
- 989 =>
- array (
- 0 => 988,
- 1 => 'Ϝ',
- ),
- 991 =>
- array (
- 0 => 990,
- 1 => 'Ϟ',
- ),
- 993 =>
- array (
- 0 => 992,
- 1 => 'Ϡ',
- ),
- 995 =>
- array (
- 0 => 994,
- 1 => 'Ϣ',
- ),
- 997 =>
- array (
- 0 => 996,
- 1 => 'Ϥ',
- ),
- 999 =>
- array (
- 0 => 998,
- 1 => 'Ϧ',
- ),
- 1001 =>
- array (
- 0 => 1000,
- 1 => 'Ϩ',
- ),
- 1003 =>
- array (
- 0 => 1002,
- 1 => 'Ϫ',
- ),
- 1005 =>
- array (
- 0 => 1004,
- 1 => 'Ϭ',
- ),
- 1007 =>
- array (
- 0 => 1006,
- 1 => 'Ϯ',
- ),
- 1016 =>
- array (
- 0 => 1015,
- 1 => 'Ϸ',
- ),
- 1010 =>
- array (
- 0 => 1017,
- 1 => 'Ϲ',
- ),
- 1019 =>
- array (
- 0 => 1018,
- 1 => 'Ϻ',
- ),
- 891 =>
- array (
- 0 => 1021,
- 1 => 'Ͻ',
- ),
- 892 =>
- array (
- 0 => 1022,
- 1 => 'Ͼ',
- ),
- 893 =>
- array (
- 0 => 1023,
- 1 => 'Ͽ',
- ),
- 1104 =>
- array (
- 0 => 1024,
- 1 => 'Ѐ',
- ),
- 1105 =>
- array (
- 0 => 1025,
- 1 => 'Ё',
- ),
- 1106 =>
- array (
- 0 => 1026,
- 1 => 'Ђ',
- ),
- 1107 =>
- array (
- 0 => 1027,
- 1 => 'Ѓ',
- ),
- 1108 =>
- array (
- 0 => 1028,
- 1 => 'Є',
- ),
- 1109 =>
- array (
- 0 => 1029,
- 1 => 'Ѕ',
- ),
- 1110 =>
- array (
- 0 => 1030,
- 1 => 'І',
- ),
- 1111 =>
- array (
- 0 => 1031,
- 1 => 'Ї',
- ),
- 1112 =>
- array (
- 0 => 1032,
- 1 => 'Ј',
- ),
- 1113 =>
- array (
- 0 => 1033,
- 1 => 'Љ',
- ),
- 1114 =>
- array (
- 0 => 1034,
- 1 => 'Њ',
- ),
- 1115 =>
- array (
- 0 => 1035,
- 1 => 'Ћ',
- ),
- 1116 =>
- array (
- 0 => 1036,
- 1 => 'Ќ',
- ),
- 1117 =>
- array (
- 0 => 1037,
- 1 => 'Ѝ',
- ),
- 1118 =>
- array (
- 0 => 1038,
- 1 => 'Ў',
- ),
- 1119 =>
- array (
- 0 => 1039,
- 1 => 'Џ',
- ),
- 1072 =>
- array (
- 0 => 1040,
- 1 => 'А',
- ),
- 1073 =>
- array (
- 0 => 1041,
- 1 => 'Б',
- ),
- 1074 =>
- array (
- 0 => 7296,
- 1 => 'ᲀ',
- ),
- 1075 =>
- array (
- 0 => 1043,
- 1 => 'Г',
- ),
- 1076 =>
- array (
- 0 => 7297,
- 1 => 'ᲁ',
- ),
- 1077 =>
- array (
- 0 => 1045,
- 1 => 'Е',
- ),
- 1078 =>
- array (
- 0 => 1046,
- 1 => 'Ж',
- ),
- 1079 =>
- array (
- 0 => 1047,
- 1 => 'З',
- ),
- 1080 =>
- array (
- 0 => 1048,
- 1 => 'И',
- ),
- 1081 =>
- array (
- 0 => 1049,
- 1 => 'Й',
- ),
- 1082 =>
- array (
- 0 => 1050,
- 1 => 'К',
- ),
- 1083 =>
- array (
- 0 => 1051,
- 1 => 'Л',
- ),
- 1084 =>
- array (
- 0 => 1052,
- 1 => 'М',
- ),
- 1085 =>
- array (
- 0 => 1053,
- 1 => 'Н',
- ),
- 1086 =>
- array (
- 0 => 7298,
- 1 => 'ᲂ',
- ),
- 1087 =>
- array (
- 0 => 1055,
- 1 => 'П',
- ),
- 1088 =>
- array (
- 0 => 1056,
- 1 => 'Р',
- ),
- 1089 =>
- array (
- 0 => 7299,
- 1 => 'ᲃ',
- ),
- 1090 =>
- array (
- 0 => 7301,
- 1 => 'ᲅ',
- ),
- 1091 =>
- array (
- 0 => 1059,
- 1 => 'У',
- ),
- 1092 =>
- array (
- 0 => 1060,
- 1 => 'Ф',
- ),
- 1093 =>
- array (
- 0 => 1061,
- 1 => 'Х',
- ),
- 1094 =>
- array (
- 0 => 1062,
- 1 => 'Ц',
- ),
- 1095 =>
- array (
- 0 => 1063,
- 1 => 'Ч',
- ),
- 1096 =>
- array (
- 0 => 1064,
- 1 => 'Ш',
- ),
- 1097 =>
- array (
- 0 => 1065,
- 1 => 'Щ',
- ),
- 1098 =>
- array (
- 0 => 7302,
- 1 => 'ᲆ',
- ),
- 1099 =>
- array (
- 0 => 1067,
- 1 => 'Ы',
- ),
- 1100 =>
- array (
- 0 => 1068,
- 1 => 'Ь',
- ),
- 1101 =>
- array (
- 0 => 1069,
- 1 => 'Э',
- ),
- 1102 =>
- array (
- 0 => 1070,
- 1 => 'Ю',
- ),
- 1103 =>
- array (
- 0 => 1071,
- 1 => 'Я',
- ),
- 1121 =>
- array (
- 0 => 1120,
- 1 => 'Ѡ',
- ),
- 1123 =>
- array (
- 0 => 7303,
- 1 => 'ᲇ',
- ),
- 1125 =>
- array (
- 0 => 1124,
- 1 => 'Ѥ',
- ),
- 1127 =>
- array (
- 0 => 1126,
- 1 => 'Ѧ',
- ),
- 1129 =>
- array (
- 0 => 1128,
- 1 => 'Ѩ',
- ),
- 1131 =>
- array (
- 0 => 1130,
- 1 => 'Ѫ',
- ),
- 1133 =>
- array (
- 0 => 1132,
- 1 => 'Ѭ',
- ),
- 1135 =>
- array (
- 0 => 1134,
- 1 => 'Ѯ',
- ),
- 1137 =>
- array (
- 0 => 1136,
- 1 => 'Ѱ',
- ),
- 1139 =>
- array (
- 0 => 1138,
- 1 => 'Ѳ',
- ),
- 1141 =>
- array (
- 0 => 1140,
- 1 => 'Ѵ',
- ),
- 1143 =>
- array (
- 0 => 1142,
- 1 => 'Ѷ',
- ),
- 1145 =>
- array (
- 0 => 1144,
- 1 => 'Ѹ',
- ),
- 1147 =>
- array (
- 0 => 1146,
- 1 => 'Ѻ',
- ),
- 1149 =>
- array (
- 0 => 1148,
- 1 => 'Ѽ',
- ),
- 1151 =>
- array (
- 0 => 1150,
- 1 => 'Ѿ',
- ),
- 1153 =>
- array (
- 0 => 1152,
- 1 => 'Ҁ',
- ),
- 1163 =>
- array (
- 0 => 1162,
- 1 => 'Ҋ',
- ),
- 1165 =>
- array (
- 0 => 1164,
- 1 => 'Ҍ',
- ),
- 1167 =>
- array (
- 0 => 1166,
- 1 => 'Ҏ',
- ),
- 1169 =>
- array (
- 0 => 1168,
- 1 => 'Ґ',
- ),
- 1171 =>
- array (
- 0 => 1170,
- 1 => 'Ғ',
- ),
- 1173 =>
- array (
- 0 => 1172,
- 1 => 'Ҕ',
- ),
- 1175 =>
- array (
- 0 => 1174,
- 1 => 'Җ',
- ),
- 1177 =>
- array (
- 0 => 1176,
- 1 => 'Ҙ',
- ),
- 1179 =>
- array (
- 0 => 1178,
- 1 => 'Қ',
- ),
- 1181 =>
- array (
- 0 => 1180,
- 1 => 'Ҝ',
- ),
- 1183 =>
- array (
- 0 => 1182,
- 1 => 'Ҟ',
- ),
- 1185 =>
- array (
- 0 => 1184,
- 1 => 'Ҡ',
- ),
- 1187 =>
- array (
- 0 => 1186,
- 1 => 'Ң',
- ),
- 1189 =>
- array (
- 0 => 1188,
- 1 => 'Ҥ',
- ),
- 1191 =>
- array (
- 0 => 1190,
- 1 => 'Ҧ',
- ),
- 1193 =>
- array (
- 0 => 1192,
- 1 => 'Ҩ',
- ),
- 1195 =>
- array (
- 0 => 1194,
- 1 => 'Ҫ',
- ),
- 1197 =>
- array (
- 0 => 1196,
- 1 => 'Ҭ',
- ),
- 1199 =>
- array (
- 0 => 1198,
- 1 => 'Ү',
- ),
- 1201 =>
- array (
- 0 => 1200,
- 1 => 'Ұ',
- ),
- 1203 =>
- array (
- 0 => 1202,
- 1 => 'Ҳ',
- ),
- 1205 =>
- array (
- 0 => 1204,
- 1 => 'Ҵ',
- ),
- 1207 =>
- array (
- 0 => 1206,
- 1 => 'Ҷ',
- ),
- 1209 =>
- array (
- 0 => 1208,
- 1 => 'Ҹ',
- ),
- 1211 =>
- array (
- 0 => 1210,
- 1 => 'Һ',
- ),
- 1213 =>
- array (
- 0 => 1212,
- 1 => 'Ҽ',
- ),
- 1215 =>
- array (
- 0 => 1214,
- 1 => 'Ҿ',
- ),
- 1231 =>
- array (
- 0 => 1216,
- 1 => 'Ӏ',
- ),
- 1218 =>
- array (
- 0 => 1217,
- 1 => 'Ӂ',
- ),
- 1220 =>
- array (
- 0 => 1219,
- 1 => 'Ӄ',
- ),
- 1222 =>
- array (
- 0 => 1221,
- 1 => 'Ӆ',
- ),
- 1224 =>
- array (
- 0 => 1223,
- 1 => 'Ӈ',
- ),
- 1226 =>
- array (
- 0 => 1225,
- 1 => 'Ӊ',
- ),
- 1228 =>
- array (
- 0 => 1227,
- 1 => 'Ӌ',
- ),
- 1230 =>
- array (
- 0 => 1229,
- 1 => 'Ӎ',
- ),
- 1233 =>
- array (
- 0 => 1232,
- 1 => 'Ӑ',
- ),
- 1235 =>
- array (
- 0 => 1234,
- 1 => 'Ӓ',
- ),
- 1237 =>
- array (
- 0 => 1236,
- 1 => 'Ӕ',
- ),
- 1239 =>
- array (
- 0 => 1238,
- 1 => 'Ӗ',
- ),
- 1241 =>
- array (
- 0 => 1240,
- 1 => 'Ә',
- ),
- 1243 =>
- array (
- 0 => 1242,
- 1 => 'Ӛ',
- ),
- 1245 =>
- array (
- 0 => 1244,
- 1 => 'Ӝ',
- ),
- 1247 =>
- array (
- 0 => 1246,
- 1 => 'Ӟ',
- ),
- 1249 =>
- array (
- 0 => 1248,
- 1 => 'Ӡ',
- ),
- 1251 =>
- array (
- 0 => 1250,
- 1 => 'Ӣ',
- ),
- 1253 =>
- array (
- 0 => 1252,
- 1 => 'Ӥ',
- ),
- 1255 =>
- array (
- 0 => 1254,
- 1 => 'Ӧ',
- ),
- 1257 =>
- array (
- 0 => 1256,
- 1 => 'Ө',
- ),
- 1259 =>
- array (
- 0 => 1258,
- 1 => 'Ӫ',
- ),
- 1261 =>
- array (
- 0 => 1260,
- 1 => 'Ӭ',
- ),
- 1263 =>
- array (
- 0 => 1262,
- 1 => 'Ӯ',
- ),
- 1265 =>
- array (
- 0 => 1264,
- 1 => 'Ӱ',
- ),
- 1267 =>
- array (
- 0 => 1266,
- 1 => 'Ӳ',
- ),
- 1269 =>
- array (
- 0 => 1268,
- 1 => 'Ӵ',
- ),
- 1271 =>
- array (
- 0 => 1270,
- 1 => 'Ӷ',
- ),
- 1273 =>
- array (
- 0 => 1272,
- 1 => 'Ӹ',
- ),
- 1275 =>
- array (
- 0 => 1274,
- 1 => 'Ӻ',
- ),
- 1277 =>
- array (
- 0 => 1276,
- 1 => 'Ӽ',
- ),
- 1279 =>
- array (
- 0 => 1278,
- 1 => 'Ӿ',
- ),
- 1281 =>
- array (
- 0 => 1280,
- 1 => 'Ԁ',
- ),
- 1283 =>
- array (
- 0 => 1282,
- 1 => 'Ԃ',
- ),
- 1285 =>
- array (
- 0 => 1284,
- 1 => 'Ԅ',
- ),
- 1287 =>
- array (
- 0 => 1286,
- 1 => 'Ԇ',
- ),
- 1289 =>
- array (
- 0 => 1288,
- 1 => 'Ԉ',
- ),
- 1291 =>
- array (
- 0 => 1290,
- 1 => 'Ԋ',
- ),
- 1293 =>
- array (
- 0 => 1292,
- 1 => 'Ԍ',
- ),
- 1295 =>
- array (
- 0 => 1294,
- 1 => 'Ԏ',
- ),
- 1297 =>
- array (
- 0 => 1296,
- 1 => 'Ԑ',
- ),
- 1299 =>
- array (
- 0 => 1298,
- 1 => 'Ԓ',
- ),
- 1301 =>
- array (
- 0 => 1300,
- 1 => 'Ԕ',
- ),
- 1303 =>
- array (
- 0 => 1302,
- 1 => 'Ԗ',
- ),
- 1305 =>
- array (
- 0 => 1304,
- 1 => 'Ԙ',
- ),
- 1307 =>
- array (
- 0 => 1306,
- 1 => 'Ԛ',
- ),
- 1309 =>
- array (
- 0 => 1308,
- 1 => 'Ԝ',
- ),
- 1311 =>
- array (
- 0 => 1310,
- 1 => 'Ԟ',
- ),
- 1313 =>
- array (
- 0 => 1312,
- 1 => 'Ԡ',
- ),
- 1315 =>
- array (
- 0 => 1314,
- 1 => 'Ԣ',
- ),
- 1317 =>
- array (
- 0 => 1316,
- 1 => 'Ԥ',
- ),
- 1319 =>
- array (
- 0 => 1318,
- 1 => 'Ԧ',
- ),
- 1321 =>
- array (
- 0 => 1320,
- 1 => 'Ԩ',
- ),
- 1323 =>
- array (
- 0 => 1322,
- 1 => 'Ԫ',
- ),
- 1325 =>
- array (
- 0 => 1324,
- 1 => 'Ԭ',
- ),
- 1327 =>
- array (
- 0 => 1326,
- 1 => 'Ԯ',
- ),
- 1377 =>
- array (
- 0 => 1329,
- 1 => 'Ա',
- ),
- 1378 =>
- array (
- 0 => 1330,
- 1 => 'Բ',
- ),
- 1379 =>
- array (
- 0 => 1331,
- 1 => 'Գ',
- ),
- 1380 =>
- array (
- 0 => 1332,
- 1 => 'Դ',
- ),
- 1381 =>
- array (
- 0 => 1333,
- 1 => 'Ե',
- ),
- 1382 =>
- array (
- 0 => 1334,
- 1 => 'Զ',
- ),
- 1383 =>
- array (
- 0 => 1335,
- 1 => 'Է',
- ),
- 1384 =>
- array (
- 0 => 1336,
- 1 => 'Ը',
- ),
- 1385 =>
- array (
- 0 => 1337,
- 1 => 'Թ',
- ),
- 1386 =>
- array (
- 0 => 1338,
- 1 => 'Ժ',
- ),
- 1387 =>
- array (
- 0 => 1339,
- 1 => 'Ի',
- ),
- 1388 =>
- array (
- 0 => 1340,
- 1 => 'Լ',
- ),
- 1389 =>
- array (
- 0 => 1341,
- 1 => 'Խ',
- ),
- 1390 =>
- array (
- 0 => 1342,
- 1 => 'Ծ',
- ),
- 1391 =>
- array (
- 0 => 1343,
- 1 => 'Կ',
- ),
- 1392 =>
- array (
- 0 => 1344,
- 1 => 'Հ',
- ),
- 1393 =>
- array (
- 0 => 1345,
- 1 => 'Ձ',
- ),
- 1394 =>
- array (
- 0 => 1346,
- 1 => 'Ղ',
- ),
- 1395 =>
- array (
- 0 => 1347,
- 1 => 'Ճ',
- ),
- 1396 =>
- array (
- 0 => 1348,
- 1 => 'Մ',
- ),
- 1397 =>
- array (
- 0 => 1349,
- 1 => 'Յ',
- ),
- 1398 =>
- array (
- 0 => 1350,
- 1 => 'Ն',
- ),
- 1399 =>
- array (
- 0 => 1351,
- 1 => 'Շ',
- ),
- 1400 =>
- array (
- 0 => 1352,
- 1 => 'Ո',
- ),
- 1401 =>
- array (
- 0 => 1353,
- 1 => 'Չ',
- ),
- 1402 =>
- array (
- 0 => 1354,
- 1 => 'Պ',
- ),
- 1403 =>
- array (
- 0 => 1355,
- 1 => 'Ջ',
- ),
- 1404 =>
- array (
- 0 => 1356,
- 1 => 'Ռ',
- ),
- 1405 =>
- array (
- 0 => 1357,
- 1 => 'Ս',
- ),
- 1406 =>
- array (
- 0 => 1358,
- 1 => 'Վ',
- ),
- 1407 =>
- array (
- 0 => 1359,
- 1 => 'Տ',
- ),
- 1408 =>
- array (
- 0 => 1360,
- 1 => 'Ր',
- ),
- 1409 =>
- array (
- 0 => 1361,
- 1 => 'Ց',
- ),
- 1410 =>
- array (
- 0 => 1362,
- 1 => 'Ւ',
- ),
- 1411 =>
- array (
- 0 => 1363,
- 1 => 'Փ',
- ),
- 1412 =>
- array (
- 0 => 1364,
- 1 => 'Ք',
- ),
- 1413 =>
- array (
- 0 => 1365,
- 1 => 'Օ',
- ),
- 1414 =>
- array (
- 0 => 1366,
- 1 => 'Ֆ',
- ),
- 11520 =>
- array (
- 0 => 4256,
- 1 => 'Ⴀ',
- ),
- 11521 =>
- array (
- 0 => 4257,
- 1 => 'Ⴁ',
- ),
- 11522 =>
- array (
- 0 => 4258,
- 1 => 'Ⴂ',
- ),
- 11523 =>
- array (
- 0 => 4259,
- 1 => 'Ⴃ',
- ),
- 11524 =>
- array (
- 0 => 4260,
- 1 => 'Ⴄ',
- ),
- 11525 =>
- array (
- 0 => 4261,
- 1 => 'Ⴅ',
- ),
- 11526 =>
- array (
- 0 => 4262,
- 1 => 'Ⴆ',
- ),
- 11527 =>
- array (
- 0 => 4263,
- 1 => 'Ⴇ',
- ),
- 11528 =>
- array (
- 0 => 4264,
- 1 => 'Ⴈ',
- ),
- 11529 =>
- array (
- 0 => 4265,
- 1 => 'Ⴉ',
- ),
- 11530 =>
- array (
- 0 => 4266,
- 1 => 'Ⴊ',
- ),
- 11531 =>
- array (
- 0 => 4267,
- 1 => 'Ⴋ',
- ),
- 11532 =>
- array (
- 0 => 4268,
- 1 => 'Ⴌ',
- ),
- 11533 =>
- array (
- 0 => 4269,
- 1 => 'Ⴍ',
- ),
- 11534 =>
- array (
- 0 => 4270,
- 1 => 'Ⴎ',
- ),
- 11535 =>
- array (
- 0 => 4271,
- 1 => 'Ⴏ',
- ),
- 11536 =>
- array (
- 0 => 4272,
- 1 => 'Ⴐ',
- ),
- 11537 =>
- array (
- 0 => 4273,
- 1 => 'Ⴑ',
- ),
- 11538 =>
- array (
- 0 => 4274,
- 1 => 'Ⴒ',
- ),
- 11539 =>
- array (
- 0 => 4275,
- 1 => 'Ⴓ',
- ),
- 11540 =>
- array (
- 0 => 4276,
- 1 => 'Ⴔ',
- ),
- 11541 =>
- array (
- 0 => 4277,
- 1 => 'Ⴕ',
- ),
- 11542 =>
- array (
- 0 => 4278,
- 1 => 'Ⴖ',
- ),
- 11543 =>
- array (
- 0 => 4279,
- 1 => 'Ⴗ',
- ),
- 11544 =>
- array (
- 0 => 4280,
- 1 => 'Ⴘ',
- ),
- 11545 =>
- array (
- 0 => 4281,
- 1 => 'Ⴙ',
- ),
- 11546 =>
- array (
- 0 => 4282,
- 1 => 'Ⴚ',
- ),
- 11547 =>
- array (
- 0 => 4283,
- 1 => 'Ⴛ',
- ),
- 11548 =>
- array (
- 0 => 4284,
- 1 => 'Ⴜ',
- ),
- 11549 =>
- array (
- 0 => 4285,
- 1 => 'Ⴝ',
- ),
- 11550 =>
- array (
- 0 => 4286,
- 1 => 'Ⴞ',
- ),
- 11551 =>
- array (
- 0 => 4287,
- 1 => 'Ⴟ',
- ),
- 11552 =>
- array (
- 0 => 4288,
- 1 => 'Ⴠ',
- ),
- 11553 =>
- array (
- 0 => 4289,
- 1 => 'Ⴡ',
- ),
- 11554 =>
- array (
- 0 => 4290,
- 1 => 'Ⴢ',
- ),
- 11555 =>
- array (
- 0 => 4291,
- 1 => 'Ⴣ',
- ),
- 11556 =>
- array (
- 0 => 4292,
- 1 => 'Ⴤ',
- ),
- 11557 =>
- array (
- 0 => 4293,
- 1 => 'Ⴥ',
- ),
- 11559 =>
- array (
- 0 => 4295,
- 1 => 'Ⴧ',
- ),
- 11565 =>
- array (
- 0 => 4301,
- 1 => 'Ⴭ',
- ),
- 5104 =>
- array (
- 0 => 5112,
- 1 => 'ᏸ',
- ),
- 5105 =>
- array (
- 0 => 5113,
- 1 => 'ᏹ',
- ),
- 5106 =>
- array (
- 0 => 5114,
- 1 => 'ᏺ',
- ),
- 5107 =>
- array (
- 0 => 5115,
- 1 => 'ᏻ',
- ),
- 5108 =>
- array (
- 0 => 5116,
- 1 => 'ᏼ',
- ),
- 5109 =>
- array (
- 0 => 5117,
- 1 => 'ᏽ',
- ),
- 42571 =>
- array (
- 0 => 42570,
- 1 => 'Ꙋ',
- ),
- 7681 =>
- array (
- 0 => 7680,
- 1 => 'Ḁ',
- ),
- 7683 =>
- array (
- 0 => 7682,
- 1 => 'Ḃ',
- ),
- 7685 =>
- array (
- 0 => 7684,
- 1 => 'Ḅ',
- ),
- 7687 =>
- array (
- 0 => 7686,
- 1 => 'Ḇ',
- ),
- 7689 =>
- array (
- 0 => 7688,
- 1 => 'Ḉ',
- ),
- 7691 =>
- array (
- 0 => 7690,
- 1 => 'Ḋ',
- ),
- 7693 =>
- array (
- 0 => 7692,
- 1 => 'Ḍ',
- ),
- 7695 =>
- array (
- 0 => 7694,
- 1 => 'Ḏ',
- ),
- 7697 =>
- array (
- 0 => 7696,
- 1 => 'Ḑ',
- ),
- 7699 =>
- array (
- 0 => 7698,
- 1 => 'Ḓ',
- ),
- 7701 =>
- array (
- 0 => 7700,
- 1 => 'Ḕ',
- ),
- 7703 =>
- array (
- 0 => 7702,
- 1 => 'Ḗ',
- ),
- 7705 =>
- array (
- 0 => 7704,
- 1 => 'Ḙ',
- ),
- 7707 =>
- array (
- 0 => 7706,
- 1 => 'Ḛ',
- ),
- 7709 =>
- array (
- 0 => 7708,
- 1 => 'Ḝ',
- ),
- 7711 =>
- array (
- 0 => 7710,
- 1 => 'Ḟ',
- ),
- 7713 =>
- array (
- 0 => 7712,
- 1 => 'Ḡ',
- ),
- 7715 =>
- array (
- 0 => 7714,
- 1 => 'Ḣ',
- ),
- 7717 =>
- array (
- 0 => 7716,
- 1 => 'Ḥ',
- ),
- 7719 =>
- array (
- 0 => 7718,
- 1 => 'Ḧ',
- ),
- 7721 =>
- array (
- 0 => 7720,
- 1 => 'Ḩ',
- ),
- 7723 =>
- array (
- 0 => 7722,
- 1 => 'Ḫ',
- ),
- 7725 =>
- array (
- 0 => 7724,
- 1 => 'Ḭ',
- ),
- 7727 =>
- array (
- 0 => 7726,
- 1 => 'Ḯ',
- ),
- 7729 =>
- array (
- 0 => 7728,
- 1 => 'Ḱ',
- ),
- 7731 =>
- array (
- 0 => 7730,
- 1 => 'Ḳ',
- ),
- 7733 =>
- array (
- 0 => 7732,
- 1 => 'Ḵ',
- ),
- 7735 =>
- array (
- 0 => 7734,
- 1 => 'Ḷ',
- ),
- 7737 =>
- array (
- 0 => 7736,
- 1 => 'Ḹ',
- ),
- 7739 =>
- array (
- 0 => 7738,
- 1 => 'Ḻ',
- ),
- 7741 =>
- array (
- 0 => 7740,
- 1 => 'Ḽ',
- ),
- 7743 =>
- array (
- 0 => 7742,
- 1 => 'Ḿ',
- ),
- 7745 =>
- array (
- 0 => 7744,
- 1 => 'Ṁ',
- ),
- 7747 =>
- array (
- 0 => 7746,
- 1 => 'Ṃ',
- ),
- 7749 =>
- array (
- 0 => 7748,
- 1 => 'Ṅ',
- ),
- 7751 =>
- array (
- 0 => 7750,
- 1 => 'Ṇ',
- ),
- 7753 =>
- array (
- 0 => 7752,
- 1 => 'Ṉ',
- ),
- 7755 =>
- array (
- 0 => 7754,
- 1 => 'Ṋ',
- ),
- 7757 =>
- array (
- 0 => 7756,
- 1 => 'Ṍ',
- ),
- 7759 =>
- array (
- 0 => 7758,
- 1 => 'Ṏ',
- ),
- 7761 =>
- array (
- 0 => 7760,
- 1 => 'Ṑ',
- ),
- 7763 =>
- array (
- 0 => 7762,
- 1 => 'Ṓ',
- ),
- 7765 =>
- array (
- 0 => 7764,
- 1 => 'Ṕ',
- ),
- 7767 =>
- array (
- 0 => 7766,
- 1 => 'Ṗ',
- ),
- 7769 =>
- array (
- 0 => 7768,
- 1 => 'Ṙ',
- ),
- 7771 =>
- array (
- 0 => 7770,
- 1 => 'Ṛ',
- ),
- 7773 =>
- array (
- 0 => 7772,
- 1 => 'Ṝ',
- ),
- 7775 =>
- array (
- 0 => 7774,
- 1 => 'Ṟ',
- ),
- 7777 =>
- array (
- 0 => 7835,
- 1 => 'ẛ',
- ),
- 7779 =>
- array (
- 0 => 7778,
- 1 => 'Ṣ',
- ),
- 7781 =>
- array (
- 0 => 7780,
- 1 => 'Ṥ',
- ),
- 7783 =>
- array (
- 0 => 7782,
- 1 => 'Ṧ',
- ),
- 7785 =>
- array (
- 0 => 7784,
- 1 => 'Ṩ',
- ),
- 7787 =>
- array (
- 0 => 7786,
- 1 => 'Ṫ',
- ),
- 7789 =>
- array (
- 0 => 7788,
- 1 => 'Ṭ',
- ),
- 7791 =>
- array (
- 0 => 7790,
- 1 => 'Ṯ',
- ),
- 7793 =>
- array (
- 0 => 7792,
- 1 => 'Ṱ',
- ),
- 7795 =>
- array (
- 0 => 7794,
- 1 => 'Ṳ',
- ),
- 7797 =>
- array (
- 0 => 7796,
- 1 => 'Ṵ',
- ),
- 7799 =>
- array (
- 0 => 7798,
- 1 => 'Ṷ',
- ),
- 7801 =>
- array (
- 0 => 7800,
- 1 => 'Ṹ',
- ),
- 7803 =>
- array (
- 0 => 7802,
- 1 => 'Ṻ',
- ),
- 7805 =>
- array (
- 0 => 7804,
- 1 => 'Ṽ',
- ),
- 7807 =>
- array (
- 0 => 7806,
- 1 => 'Ṿ',
- ),
- 7809 =>
- array (
- 0 => 7808,
- 1 => 'Ẁ',
- ),
- 7811 =>
- array (
- 0 => 7810,
- 1 => 'Ẃ',
- ),
- 7813 =>
- array (
- 0 => 7812,
- 1 => 'Ẅ',
- ),
- 7815 =>
- array (
- 0 => 7814,
- 1 => 'Ẇ',
- ),
- 7817 =>
- array (
- 0 => 7816,
- 1 => 'Ẉ',
- ),
- 7819 =>
- array (
- 0 => 7818,
- 1 => 'Ẋ',
- ),
- 7821 =>
- array (
- 0 => 7820,
- 1 => 'Ẍ',
- ),
- 7823 =>
- array (
- 0 => 7822,
- 1 => 'Ẏ',
- ),
- 7825 =>
- array (
- 0 => 7824,
- 1 => 'Ẑ',
- ),
- 7827 =>
- array (
- 0 => 7826,
- 1 => 'Ẓ',
- ),
- 7829 =>
- array (
- 0 => 7828,
- 1 => 'Ẕ',
- ),
- 223 =>
- array (
- 0 => 7838,
- 1 => 'ẞ',
- ),
- 7841 =>
- array (
- 0 => 7840,
- 1 => 'Ạ',
- ),
- 7843 =>
- array (
- 0 => 7842,
- 1 => 'Ả',
- ),
- 7845 =>
- array (
- 0 => 7844,
- 1 => 'Ấ',
- ),
- 7847 =>
- array (
- 0 => 7846,
- 1 => 'Ầ',
- ),
- 7849 =>
- array (
- 0 => 7848,
- 1 => 'Ẩ',
- ),
- 7851 =>
- array (
- 0 => 7850,
- 1 => 'Ẫ',
- ),
- 7853 =>
- array (
- 0 => 7852,
- 1 => 'Ậ',
- ),
- 7855 =>
- array (
- 0 => 7854,
- 1 => 'Ắ',
- ),
- 7857 =>
- array (
- 0 => 7856,
- 1 => 'Ằ',
- ),
- 7859 =>
- array (
- 0 => 7858,
- 1 => 'Ẳ',
- ),
- 7861 =>
- array (
- 0 => 7860,
- 1 => 'Ẵ',
- ),
- 7863 =>
- array (
- 0 => 7862,
- 1 => 'Ặ',
- ),
- 7865 =>
- array (
- 0 => 7864,
- 1 => 'Ẹ',
- ),
- 7867 =>
- array (
- 0 => 7866,
- 1 => 'Ẻ',
- ),
- 7869 =>
- array (
- 0 => 7868,
- 1 => 'Ẽ',
- ),
- 7871 =>
- array (
- 0 => 7870,
- 1 => 'Ế',
- ),
- 7873 =>
- array (
- 0 => 7872,
- 1 => 'Ề',
- ),
- 7875 =>
- array (
- 0 => 7874,
- 1 => 'Ể',
- ),
- 7877 =>
- array (
- 0 => 7876,
- 1 => 'Ễ',
- ),
- 7879 =>
- array (
- 0 => 7878,
- 1 => 'Ệ',
- ),
- 7881 =>
- array (
- 0 => 7880,
- 1 => 'Ỉ',
- ),
- 7883 =>
- array (
- 0 => 7882,
- 1 => 'Ị',
- ),
- 7885 =>
- array (
- 0 => 7884,
- 1 => 'Ọ',
- ),
- 7887 =>
- array (
- 0 => 7886,
- 1 => 'Ỏ',
- ),
- 7889 =>
- array (
- 0 => 7888,
- 1 => 'Ố',
- ),
- 7891 =>
- array (
- 0 => 7890,
- 1 => 'Ồ',
- ),
- 7893 =>
- array (
- 0 => 7892,
- 1 => 'Ổ',
- ),
- 7895 =>
- array (
- 0 => 7894,
- 1 => 'Ỗ',
- ),
- 7897 =>
- array (
- 0 => 7896,
- 1 => 'Ộ',
- ),
- 7899 =>
- array (
- 0 => 7898,
- 1 => 'Ớ',
- ),
- 7901 =>
- array (
- 0 => 7900,
- 1 => 'Ờ',
- ),
- 7903 =>
- array (
- 0 => 7902,
- 1 => 'Ở',
- ),
- 7905 =>
- array (
- 0 => 7904,
- 1 => 'Ỡ',
- ),
- 7907 =>
- array (
- 0 => 7906,
- 1 => 'Ợ',
- ),
- 7909 =>
- array (
- 0 => 7908,
- 1 => 'Ụ',
- ),
- 7911 =>
- array (
- 0 => 7910,
- 1 => 'Ủ',
- ),
- 7913 =>
- array (
- 0 => 7912,
- 1 => 'Ứ',
- ),
- 7915 =>
- array (
- 0 => 7914,
- 1 => 'Ừ',
- ),
- 7917 =>
- array (
- 0 => 7916,
- 1 => 'Ử',
- ),
- 7919 =>
- array (
- 0 => 7918,
- 1 => 'Ữ',
- ),
- 7921 =>
- array (
- 0 => 7920,
- 1 => 'Ự',
- ),
- 7923 =>
- array (
- 0 => 7922,
- 1 => 'Ỳ',
- ),
- 7925 =>
- array (
- 0 => 7924,
- 1 => 'Ỵ',
- ),
- 7927 =>
- array (
- 0 => 7926,
- 1 => 'Ỷ',
- ),
- 7929 =>
- array (
- 0 => 7928,
- 1 => 'Ỹ',
- ),
- 7931 =>
- array (
- 0 => 7930,
- 1 => 'Ỻ',
- ),
- 7933 =>
- array (
- 0 => 7932,
- 1 => 'Ỽ',
- ),
- 7935 =>
- array (
- 0 => 7934,
- 1 => 'Ỿ',
- ),
- 7936 =>
- array (
- 0 => 7944,
- 1 => 'Ἀ',
- ),
- 7937 =>
- array (
- 0 => 7945,
- 1 => 'Ἁ',
- ),
- 7938 =>
- array (
- 0 => 7946,
- 1 => 'Ἂ',
- ),
- 7939 =>
- array (
- 0 => 7947,
- 1 => 'Ἃ',
- ),
- 7940 =>
- array (
- 0 => 7948,
- 1 => 'Ἄ',
- ),
- 7941 =>
- array (
- 0 => 7949,
- 1 => 'Ἅ',
- ),
- 7942 =>
- array (
- 0 => 7950,
- 1 => 'Ἆ',
- ),
- 7943 =>
- array (
- 0 => 7951,
- 1 => 'Ἇ',
- ),
- 7952 =>
- array (
- 0 => 7960,
- 1 => 'Ἐ',
- ),
- 7953 =>
- array (
- 0 => 7961,
- 1 => 'Ἑ',
- ),
- 7954 =>
- array (
- 0 => 7962,
- 1 => 'Ἒ',
- ),
- 7955 =>
- array (
- 0 => 7963,
- 1 => 'Ἓ',
- ),
- 7956 =>
- array (
- 0 => 7964,
- 1 => 'Ἔ',
- ),
- 7957 =>
- array (
- 0 => 7965,
- 1 => 'Ἕ',
- ),
- 7968 =>
- array (
- 0 => 7976,
- 1 => 'Ἠ',
- ),
- 7969 =>
- array (
- 0 => 7977,
- 1 => 'Ἡ',
- ),
- 7970 =>
- array (
- 0 => 7978,
- 1 => 'Ἢ',
- ),
- 7971 =>
- array (
- 0 => 7979,
- 1 => 'Ἣ',
- ),
- 7972 =>
- array (
- 0 => 7980,
- 1 => 'Ἤ',
- ),
- 7973 =>
- array (
- 0 => 7981,
- 1 => 'Ἥ',
- ),
- 7974 =>
- array (
- 0 => 7982,
- 1 => 'Ἦ',
- ),
- 7975 =>
- array (
- 0 => 7983,
- 1 => 'Ἧ',
- ),
- 7984 =>
- array (
- 0 => 7992,
- 1 => 'Ἰ',
- ),
- 7985 =>
- array (
- 0 => 7993,
- 1 => 'Ἱ',
- ),
- 7986 =>
- array (
- 0 => 7994,
- 1 => 'Ἲ',
- ),
- 7987 =>
- array (
- 0 => 7995,
- 1 => 'Ἳ',
- ),
- 7988 =>
- array (
- 0 => 7996,
- 1 => 'Ἴ',
- ),
- 7989 =>
- array (
- 0 => 7997,
- 1 => 'Ἵ',
- ),
- 7990 =>
- array (
- 0 => 7998,
- 1 => 'Ἶ',
- ),
- 7991 =>
- array (
- 0 => 7999,
- 1 => 'Ἷ',
- ),
- 8000 =>
- array (
- 0 => 8008,
- 1 => 'Ὀ',
- ),
- 8001 =>
- array (
- 0 => 8009,
- 1 => 'Ὁ',
- ),
- 8002 =>
- array (
- 0 => 8010,
- 1 => 'Ὂ',
- ),
- 8003 =>
- array (
- 0 => 8011,
- 1 => 'Ὃ',
- ),
- 8004 =>
- array (
- 0 => 8012,
- 1 => 'Ὄ',
- ),
- 8005 =>
- array (
- 0 => 8013,
- 1 => 'Ὅ',
- ),
- 8017 =>
- array (
- 0 => 8025,
- 1 => 'Ὑ',
- ),
- 8019 =>
- array (
- 0 => 8027,
- 1 => 'Ὓ',
- ),
- 8021 =>
- array (
- 0 => 8029,
- 1 => 'Ὕ',
- ),
- 8023 =>
- array (
- 0 => 8031,
- 1 => 'Ὗ',
- ),
- 8032 =>
- array (
- 0 => 8040,
- 1 => 'Ὠ',
- ),
- 8033 =>
- array (
- 0 => 8041,
- 1 => 'Ὡ',
- ),
- 8034 =>
- array (
- 0 => 8042,
- 1 => 'Ὢ',
- ),
- 8035 =>
- array (
- 0 => 8043,
- 1 => 'Ὣ',
- ),
- 8036 =>
- array (
- 0 => 8044,
- 1 => 'Ὤ',
- ),
- 8037 =>
- array (
- 0 => 8045,
- 1 => 'Ὥ',
- ),
- 8038 =>
- array (
- 0 => 8046,
- 1 => 'Ὦ',
- ),
- 8039 =>
- array (
- 0 => 8047,
- 1 => 'Ὧ',
- ),
- 8064 =>
- array (
- 0 => 8072,
- 1 => 'ᾈ',
- ),
- 8065 =>
- array (
- 0 => 8073,
- 1 => 'ᾉ',
- ),
- 8066 =>
- array (
- 0 => 8074,
- 1 => 'ᾊ',
- ),
- 8067 =>
- array (
- 0 => 8075,
- 1 => 'ᾋ',
- ),
- 8068 =>
- array (
- 0 => 8076,
- 1 => 'ᾌ',
- ),
- 8069 =>
- array (
- 0 => 8077,
- 1 => 'ᾍ',
- ),
- 8070 =>
- array (
- 0 => 8078,
- 1 => 'ᾎ',
- ),
- 8071 =>
- array (
- 0 => 8079,
- 1 => 'ᾏ',
- ),
- 8080 =>
- array (
- 0 => 8088,
- 1 => 'ᾘ',
- ),
- 8081 =>
- array (
- 0 => 8089,
- 1 => 'ᾙ',
- ),
- 8082 =>
- array (
- 0 => 8090,
- 1 => 'ᾚ',
- ),
- 8083 =>
- array (
- 0 => 8091,
- 1 => 'ᾛ',
- ),
- 8084 =>
- array (
- 0 => 8092,
- 1 => 'ᾜ',
- ),
- 8085 =>
- array (
- 0 => 8093,
- 1 => 'ᾝ',
- ),
- 8086 =>
- array (
- 0 => 8094,
- 1 => 'ᾞ',
- ),
- 8087 =>
- array (
- 0 => 8095,
- 1 => 'ᾟ',
- ),
- 8096 =>
- array (
- 0 => 8104,
- 1 => 'ᾨ',
- ),
- 8097 =>
- array (
- 0 => 8105,
- 1 => 'ᾩ',
- ),
- 8098 =>
- array (
- 0 => 8106,
- 1 => 'ᾪ',
- ),
- 8099 =>
- array (
- 0 => 8107,
- 1 => 'ᾫ',
- ),
- 8100 =>
- array (
- 0 => 8108,
- 1 => 'ᾬ',
- ),
- 8101 =>
- array (
- 0 => 8109,
- 1 => 'ᾭ',
- ),
- 8102 =>
- array (
- 0 => 8110,
- 1 => 'ᾮ',
- ),
- 8103 =>
- array (
- 0 => 8111,
- 1 => 'ᾯ',
- ),
- 8112 =>
- array (
- 0 => 8120,
- 1 => 'Ᾰ',
- ),
- 8113 =>
- array (
- 0 => 8121,
- 1 => 'Ᾱ',
- ),
- 8048 =>
- array (
- 0 => 8122,
- 1 => 'Ὰ',
- ),
- 8049 =>
- array (
- 0 => 8123,
- 1 => 'Ά',
- ),
- 8115 =>
- array (
- 0 => 8124,
- 1 => 'ᾼ',
- ),
- 8050 =>
- array (
- 0 => 8136,
- 1 => 'Ὲ',
- ),
- 8051 =>
- array (
- 0 => 8137,
- 1 => 'Έ',
- ),
- 8052 =>
- array (
- 0 => 8138,
- 1 => 'Ὴ',
- ),
- 8053 =>
- array (
- 0 => 8139,
- 1 => 'Ή',
- ),
- 8131 =>
- array (
- 0 => 8140,
- 1 => 'ῌ',
- ),
- 8144 =>
- array (
- 0 => 8152,
- 1 => 'Ῐ',
- ),
- 8145 =>
- array (
- 0 => 8153,
- 1 => 'Ῑ',
- ),
- 8054 =>
- array (
- 0 => 8154,
- 1 => 'Ὶ',
- ),
- 8055 =>
- array (
- 0 => 8155,
- 1 => 'Ί',
- ),
- 8160 =>
- array (
- 0 => 8168,
- 1 => 'Ῠ',
- ),
- 8161 =>
- array (
- 0 => 8169,
- 1 => 'Ῡ',
- ),
- 8058 =>
- array (
- 0 => 8170,
- 1 => 'Ὺ',
- ),
- 8059 =>
- array (
- 0 => 8171,
- 1 => 'Ύ',
- ),
- 8165 =>
- array (
- 0 => 8172,
- 1 => 'Ῥ',
- ),
- 8056 =>
- array (
- 0 => 8184,
- 1 => 'Ὸ',
- ),
- 8057 =>
- array (
- 0 => 8185,
- 1 => 'Ό',
- ),
- 8060 =>
- array (
- 0 => 8186,
- 1 => 'Ὼ',
- ),
- 8061 =>
- array (
- 0 => 8187,
- 1 => 'Ώ',
- ),
- 8179 =>
- array (
- 0 => 8188,
- 1 => 'ῼ',
- ),
- 8526 =>
- array (
- 0 => 8498,
- 1 => 'Ⅎ',
- ),
- 8560 =>
- array (
- 0 => 8544,
- 1 => 'Ⅰ',
- ),
- 8561 =>
- array (
- 0 => 8545,
- 1 => 'Ⅱ',
- ),
- 8562 =>
- array (
- 0 => 8546,
- 1 => 'Ⅲ',
- ),
- 8563 =>
- array (
- 0 => 8547,
- 1 => 'Ⅳ',
- ),
- 8564 =>
- array (
- 0 => 8548,
- 1 => 'Ⅴ',
- ),
- 8565 =>
- array (
- 0 => 8549,
- 1 => 'Ⅵ',
- ),
- 8566 =>
- array (
- 0 => 8550,
- 1 => 'Ⅶ',
- ),
- 8567 =>
- array (
- 0 => 8551,
- 1 => 'Ⅷ',
- ),
- 8568 =>
- array (
- 0 => 8552,
- 1 => 'Ⅸ',
- ),
- 8569 =>
- array (
- 0 => 8553,
- 1 => 'Ⅹ',
- ),
- 8570 =>
- array (
- 0 => 8554,
- 1 => 'Ⅺ',
- ),
- 8571 =>
- array (
- 0 => 8555,
- 1 => 'Ⅻ',
- ),
- 8572 =>
- array (
- 0 => 8556,
- 1 => 'Ⅼ',
- ),
- 8573 =>
- array (
- 0 => 8557,
- 1 => 'Ⅽ',
- ),
- 8574 =>
- array (
- 0 => 8558,
- 1 => 'Ⅾ',
- ),
- 8575 =>
- array (
- 0 => 8559,
- 1 => 'Ⅿ',
- ),
- 8580 =>
- array (
- 0 => 8579,
- 1 => 'Ↄ',
- ),
- 9424 =>
- array (
- 0 => 9398,
- 1 => 'Ⓐ',
- ),
- 9425 =>
- array (
- 0 => 9399,
- 1 => 'Ⓑ',
- ),
- 9426 =>
- array (
- 0 => 9400,
- 1 => 'Ⓒ',
- ),
- 9427 =>
- array (
- 0 => 9401,
- 1 => 'Ⓓ',
- ),
- 9428 =>
- array (
- 0 => 9402,
- 1 => 'Ⓔ',
- ),
- 9429 =>
- array (
- 0 => 9403,
- 1 => 'Ⓕ',
- ),
- 9430 =>
- array (
- 0 => 9404,
- 1 => 'Ⓖ',
- ),
- 9431 =>
- array (
- 0 => 9405,
- 1 => 'Ⓗ',
- ),
- 9432 =>
- array (
- 0 => 9406,
- 1 => 'Ⓘ',
- ),
- 9433 =>
- array (
- 0 => 9407,
- 1 => 'Ⓙ',
- ),
- 9434 =>
- array (
- 0 => 9408,
- 1 => 'Ⓚ',
- ),
- 9435 =>
- array (
- 0 => 9409,
- 1 => 'Ⓛ',
- ),
- 9436 =>
- array (
- 0 => 9410,
- 1 => 'Ⓜ',
- ),
- 9437 =>
- array (
- 0 => 9411,
- 1 => 'Ⓝ',
- ),
- 9438 =>
- array (
- 0 => 9412,
- 1 => 'Ⓞ',
- ),
- 9439 =>
- array (
- 0 => 9413,
- 1 => 'Ⓟ',
- ),
- 9440 =>
- array (
- 0 => 9414,
- 1 => 'Ⓠ',
- ),
- 9441 =>
- array (
- 0 => 9415,
- 1 => 'Ⓡ',
- ),
- 9442 =>
- array (
- 0 => 9416,
- 1 => 'Ⓢ',
- ),
- 9443 =>
- array (
- 0 => 9417,
- 1 => 'Ⓣ',
- ),
- 9444 =>
- array (
- 0 => 9418,
- 1 => 'Ⓤ',
- ),
- 9445 =>
- array (
- 0 => 9419,
- 1 => 'Ⓥ',
- ),
- 9446 =>
- array (
- 0 => 9420,
- 1 => 'Ⓦ',
- ),
- 9447 =>
- array (
- 0 => 9421,
- 1 => 'Ⓧ',
- ),
- 9448 =>
- array (
- 0 => 9422,
- 1 => 'Ⓨ',
- ),
- 9449 =>
- array (
- 0 => 9423,
- 1 => 'Ⓩ',
- ),
- 11312 =>
- array (
- 0 => 11264,
- 1 => 'Ⰰ',
- ),
- 11313 =>
- array (
- 0 => 11265,
- 1 => 'Ⰱ',
- ),
- 11314 =>
- array (
- 0 => 11266,
- 1 => 'Ⰲ',
- ),
- 11315 =>
- array (
- 0 => 11267,
- 1 => 'Ⰳ',
- ),
- 11316 =>
- array (
- 0 => 11268,
- 1 => 'Ⰴ',
- ),
- 11317 =>
- array (
- 0 => 11269,
- 1 => 'Ⰵ',
- ),
- 11318 =>
- array (
- 0 => 11270,
- 1 => 'Ⰶ',
- ),
- 11319 =>
- array (
- 0 => 11271,
- 1 => 'Ⰷ',
- ),
- 11320 =>
- array (
- 0 => 11272,
- 1 => 'Ⰸ',
- ),
- 11321 =>
- array (
- 0 => 11273,
- 1 => 'Ⰹ',
- ),
- 11322 =>
- array (
- 0 => 11274,
- 1 => 'Ⰺ',
- ),
- 11323 =>
- array (
- 0 => 11275,
- 1 => 'Ⰻ',
- ),
- 11324 =>
- array (
- 0 => 11276,
- 1 => 'Ⰼ',
- ),
- 11325 =>
- array (
- 0 => 11277,
- 1 => 'Ⰽ',
- ),
- 11326 =>
- array (
- 0 => 11278,
- 1 => 'Ⰾ',
- ),
- 11327 =>
- array (
- 0 => 11279,
- 1 => 'Ⰿ',
- ),
- 11328 =>
- array (
- 0 => 11280,
- 1 => 'Ⱀ',
- ),
- 11329 =>
- array (
- 0 => 11281,
- 1 => 'Ⱁ',
- ),
- 11330 =>
- array (
- 0 => 11282,
- 1 => 'Ⱂ',
- ),
- 11331 =>
- array (
- 0 => 11283,
- 1 => 'Ⱃ',
- ),
- 11332 =>
- array (
- 0 => 11284,
- 1 => 'Ⱄ',
- ),
- 11333 =>
- array (
- 0 => 11285,
- 1 => 'Ⱅ',
- ),
- 11334 =>
- array (
- 0 => 11286,
- 1 => 'Ⱆ',
- ),
- 11335 =>
- array (
- 0 => 11287,
- 1 => 'Ⱇ',
- ),
- 11336 =>
- array (
- 0 => 11288,
- 1 => 'Ⱈ',
- ),
- 11337 =>
- array (
- 0 => 11289,
- 1 => 'Ⱉ',
- ),
- 11338 =>
- array (
- 0 => 11290,
- 1 => 'Ⱊ',
- ),
- 11339 =>
- array (
- 0 => 11291,
- 1 => 'Ⱋ',
- ),
- 11340 =>
- array (
- 0 => 11292,
- 1 => 'Ⱌ',
- ),
- 11341 =>
- array (
- 0 => 11293,
- 1 => 'Ⱍ',
- ),
- 11342 =>
- array (
- 0 => 11294,
- 1 => 'Ⱎ',
- ),
- 11343 =>
- array (
- 0 => 11295,
- 1 => 'Ⱏ',
- ),
- 11344 =>
- array (
- 0 => 11296,
- 1 => 'Ⱐ',
- ),
- 11345 =>
- array (
- 0 => 11297,
- 1 => 'Ⱑ',
- ),
- 11346 =>
- array (
- 0 => 11298,
- 1 => 'Ⱒ',
- ),
- 11347 =>
- array (
- 0 => 11299,
- 1 => 'Ⱓ',
- ),
- 11348 =>
- array (
- 0 => 11300,
- 1 => 'Ⱔ',
- ),
- 11349 =>
- array (
- 0 => 11301,
- 1 => 'Ⱕ',
- ),
- 11350 =>
- array (
- 0 => 11302,
- 1 => 'Ⱖ',
- ),
- 11351 =>
- array (
- 0 => 11303,
- 1 => 'Ⱗ',
- ),
- 11352 =>
- array (
- 0 => 11304,
- 1 => 'Ⱘ',
- ),
- 11353 =>
- array (
- 0 => 11305,
- 1 => 'Ⱙ',
- ),
- 11354 =>
- array (
- 0 => 11306,
- 1 => 'Ⱚ',
- ),
- 11355 =>
- array (
- 0 => 11307,
- 1 => 'Ⱛ',
- ),
- 11356 =>
- array (
- 0 => 11308,
- 1 => 'Ⱜ',
- ),
- 11357 =>
- array (
- 0 => 11309,
- 1 => 'Ⱝ',
- ),
- 11358 =>
- array (
- 0 => 11310,
- 1 => 'Ⱞ',
- ),
- 11361 =>
- array (
- 0 => 11360,
- 1 => 'Ⱡ',
- ),
- 619 =>
- array (
- 0 => 11362,
- 1 => 'Ɫ',
- ),
- 7549 =>
- array (
- 0 => 11363,
- 1 => 'Ᵽ',
- ),
- 637 =>
- array (
- 0 => 11364,
- 1 => 'Ɽ',
- ),
- 11368 =>
- array (
- 0 => 11367,
- 1 => 'Ⱨ',
- ),
- 11370 =>
- array (
- 0 => 11369,
- 1 => 'Ⱪ',
- ),
- 11372 =>
- array (
- 0 => 11371,
- 1 => 'Ⱬ',
- ),
- 593 =>
- array (
- 0 => 11373,
- 1 => 'Ɑ',
- ),
- 625 =>
- array (
- 0 => 11374,
- 1 => 'Ɱ',
- ),
- 592 =>
- array (
- 0 => 11375,
- 1 => 'Ɐ',
- ),
- 594 =>
- array (
- 0 => 11376,
- 1 => 'Ɒ',
- ),
- 11379 =>
- array (
- 0 => 11378,
- 1 => 'Ⱳ',
- ),
- 11382 =>
- array (
- 0 => 11381,
- 1 => 'Ⱶ',
- ),
- 575 =>
- array (
- 0 => 11390,
- 1 => 'Ȿ',
- ),
- 576 =>
- array (
- 0 => 11391,
- 1 => 'Ɀ',
- ),
- 11393 =>
- array (
- 0 => 11392,
- 1 => 'Ⲁ',
- ),
- 11395 =>
- array (
- 0 => 11394,
- 1 => 'Ⲃ',
- ),
- 11397 =>
- array (
- 0 => 11396,
- 1 => 'Ⲅ',
- ),
- 11399 =>
- array (
- 0 => 11398,
- 1 => 'Ⲇ',
- ),
- 11401 =>
- array (
- 0 => 11400,
- 1 => 'Ⲉ',
- ),
- 11403 =>
- array (
- 0 => 11402,
- 1 => 'Ⲋ',
- ),
- 11405 =>
- array (
- 0 => 11404,
- 1 => 'Ⲍ',
- ),
- 11407 =>
- array (
- 0 => 11406,
- 1 => 'Ⲏ',
- ),
- 11409 =>
- array (
- 0 => 11408,
- 1 => 'Ⲑ',
- ),
- 11411 =>
- array (
- 0 => 11410,
- 1 => 'Ⲓ',
- ),
- 11413 =>
- array (
- 0 => 11412,
- 1 => 'Ⲕ',
- ),
- 11415 =>
- array (
- 0 => 11414,
- 1 => 'Ⲗ',
- ),
- 11417 =>
- array (
- 0 => 11416,
- 1 => 'Ⲙ',
- ),
- 11419 =>
- array (
- 0 => 11418,
- 1 => 'Ⲛ',
- ),
- 11421 =>
- array (
- 0 => 11420,
- 1 => 'Ⲝ',
- ),
- 11423 =>
- array (
- 0 => 11422,
- 1 => 'Ⲟ',
- ),
- 11425 =>
- array (
- 0 => 11424,
- 1 => 'Ⲡ',
- ),
- 11427 =>
- array (
- 0 => 11426,
- 1 => 'Ⲣ',
- ),
- 11429 =>
- array (
- 0 => 11428,
- 1 => 'Ⲥ',
- ),
- 11431 =>
- array (
- 0 => 11430,
- 1 => 'Ⲧ',
- ),
- 11433 =>
- array (
- 0 => 11432,
- 1 => 'Ⲩ',
- ),
- 11435 =>
- array (
- 0 => 11434,
- 1 => 'Ⲫ',
- ),
- 11437 =>
- array (
- 0 => 11436,
- 1 => 'Ⲭ',
- ),
- 11439 =>
- array (
- 0 => 11438,
- 1 => 'Ⲯ',
- ),
- 11441 =>
- array (
- 0 => 11440,
- 1 => 'Ⲱ',
- ),
- 11443 =>
- array (
- 0 => 11442,
- 1 => 'Ⲳ',
- ),
- 11445 =>
- array (
- 0 => 11444,
- 1 => 'Ⲵ',
- ),
- 11447 =>
- array (
- 0 => 11446,
- 1 => 'Ⲷ',
- ),
- 11449 =>
- array (
- 0 => 11448,
- 1 => 'Ⲹ',
- ),
- 11451 =>
- array (
- 0 => 11450,
- 1 => 'Ⲻ',
- ),
- 11453 =>
- array (
- 0 => 11452,
- 1 => 'Ⲽ',
- ),
- 11455 =>
- array (
- 0 => 11454,
- 1 => 'Ⲿ',
- ),
- 11457 =>
- array (
- 0 => 11456,
- 1 => 'Ⳁ',
- ),
- 11459 =>
- array (
- 0 => 11458,
- 1 => 'Ⳃ',
- ),
- 11461 =>
- array (
- 0 => 11460,
- 1 => 'Ⳅ',
- ),
- 11463 =>
- array (
- 0 => 11462,
- 1 => 'Ⳇ',
- ),
- 11465 =>
- array (
- 0 => 11464,
- 1 => 'Ⳉ',
- ),
- 11467 =>
- array (
- 0 => 11466,
- 1 => 'Ⳋ',
- ),
- 11469 =>
- array (
- 0 => 11468,
- 1 => 'Ⳍ',
- ),
- 11471 =>
- array (
- 0 => 11470,
- 1 => 'Ⳏ',
- ),
- 11473 =>
- array (
- 0 => 11472,
- 1 => 'Ⳑ',
- ),
- 11475 =>
- array (
- 0 => 11474,
- 1 => 'Ⳓ',
- ),
- 11477 =>
- array (
- 0 => 11476,
- 1 => 'Ⳕ',
- ),
- 11479 =>
- array (
- 0 => 11478,
- 1 => 'Ⳗ',
- ),
- 11481 =>
- array (
- 0 => 11480,
- 1 => 'Ⳙ',
- ),
- 11483 =>
- array (
- 0 => 11482,
- 1 => 'Ⳛ',
- ),
- 11485 =>
- array (
- 0 => 11484,
- 1 => 'Ⳝ',
- ),
- 11487 =>
- array (
- 0 => 11486,
- 1 => 'Ⳟ',
- ),
- 11489 =>
- array (
- 0 => 11488,
- 1 => 'Ⳡ',
- ),
- 11491 =>
- array (
- 0 => 11490,
- 1 => 'Ⳣ',
- ),
- 11500 =>
- array (
- 0 => 11499,
- 1 => 'Ⳬ',
- ),
- 11502 =>
- array (
- 0 => 11501,
- 1 => 'Ⳮ',
- ),
- 11507 =>
- array (
- 0 => 11506,
- 1 => 'Ⳳ',
- ),
- 42561 =>
- array (
- 0 => 42560,
- 1 => 'Ꙁ',
- ),
- 42563 =>
- array (
- 0 => 42562,
- 1 => 'Ꙃ',
- ),
- 42565 =>
- array (
- 0 => 42564,
- 1 => 'Ꙅ',
- ),
- 42567 =>
- array (
- 0 => 42566,
- 1 => 'Ꙇ',
- ),
- 42569 =>
- array (
- 0 => 42568,
- 1 => 'Ꙉ',
- ),
- 42573 =>
- array (
- 0 => 42572,
- 1 => 'Ꙍ',
- ),
- 42575 =>
- array (
- 0 => 42574,
- 1 => 'Ꙏ',
- ),
- 42577 =>
- array (
- 0 => 42576,
- 1 => 'Ꙑ',
- ),
- 42579 =>
- array (
- 0 => 42578,
- 1 => 'Ꙓ',
- ),
- 42581 =>
- array (
- 0 => 42580,
- 1 => 'Ꙕ',
- ),
- 42583 =>
- array (
- 0 => 42582,
- 1 => 'Ꙗ',
- ),
- 42585 =>
- array (
- 0 => 42584,
- 1 => 'Ꙙ',
- ),
- 42587 =>
- array (
- 0 => 42586,
- 1 => 'Ꙛ',
- ),
- 42589 =>
- array (
- 0 => 42588,
- 1 => 'Ꙝ',
- ),
- 42591 =>
- array (
- 0 => 42590,
- 1 => 'Ꙟ',
- ),
- 42593 =>
- array (
- 0 => 42592,
- 1 => 'Ꙡ',
- ),
- 42595 =>
- array (
- 0 => 42594,
- 1 => 'Ꙣ',
- ),
- 42597 =>
- array (
- 0 => 42596,
- 1 => 'Ꙥ',
- ),
- 42599 =>
- array (
- 0 => 42598,
- 1 => 'Ꙧ',
- ),
- 42601 =>
- array (
- 0 => 42600,
- 1 => 'Ꙩ',
- ),
- 42603 =>
- array (
- 0 => 42602,
- 1 => 'Ꙫ',
- ),
- 42605 =>
- array (
- 0 => 42604,
- 1 => 'Ꙭ',
- ),
- 42625 =>
- array (
- 0 => 42624,
- 1 => 'Ꚁ',
- ),
- 42627 =>
- array (
- 0 => 42626,
- 1 => 'Ꚃ',
- ),
- 42629 =>
- array (
- 0 => 42628,
- 1 => 'Ꚅ',
- ),
- 42631 =>
- array (
- 0 => 42630,
- 1 => 'Ꚇ',
- ),
- 42633 =>
- array (
- 0 => 42632,
- 1 => 'Ꚉ',
- ),
- 42635 =>
- array (
- 0 => 42634,
- 1 => 'Ꚋ',
- ),
- 42637 =>
- array (
- 0 => 42636,
- 1 => 'Ꚍ',
- ),
- 42639 =>
- array (
- 0 => 42638,
- 1 => 'Ꚏ',
- ),
- 42641 =>
- array (
- 0 => 42640,
- 1 => 'Ꚑ',
- ),
- 42643 =>
- array (
- 0 => 42642,
- 1 => 'Ꚓ',
- ),
- 42645 =>
- array (
- 0 => 42644,
- 1 => 'Ꚕ',
- ),
- 42647 =>
- array (
- 0 => 42646,
- 1 => 'Ꚗ',
- ),
- 42649 =>
- array (
- 0 => 42648,
- 1 => 'Ꚙ',
- ),
- 42651 =>
- array (
- 0 => 42650,
- 1 => 'Ꚛ',
- ),
- 42787 =>
- array (
- 0 => 42786,
- 1 => 'Ꜣ',
- ),
- 42789 =>
- array (
- 0 => 42788,
- 1 => 'Ꜥ',
- ),
- 42791 =>
- array (
- 0 => 42790,
- 1 => 'Ꜧ',
- ),
- 42793 =>
- array (
- 0 => 42792,
- 1 => 'Ꜩ',
- ),
- 42795 =>
- array (
- 0 => 42794,
- 1 => 'Ꜫ',
- ),
- 42797 =>
- array (
- 0 => 42796,
- 1 => 'Ꜭ',
- ),
- 42799 =>
- array (
- 0 => 42798,
- 1 => 'Ꜯ',
- ),
- 42803 =>
- array (
- 0 => 42802,
- 1 => 'Ꜳ',
- ),
- 42805 =>
- array (
- 0 => 42804,
- 1 => 'Ꜵ',
- ),
- 42807 =>
- array (
- 0 => 42806,
- 1 => 'Ꜷ',
- ),
- 42809 =>
- array (
- 0 => 42808,
- 1 => 'Ꜹ',
- ),
- 42811 =>
- array (
- 0 => 42810,
- 1 => 'Ꜻ',
- ),
- 42813 =>
- array (
- 0 => 42812,
- 1 => 'Ꜽ',
- ),
- 42815 =>
- array (
- 0 => 42814,
- 1 => 'Ꜿ',
- ),
- 42817 =>
- array (
- 0 => 42816,
- 1 => 'Ꝁ',
- ),
- 42819 =>
- array (
- 0 => 42818,
- 1 => 'Ꝃ',
- ),
- 42821 =>
- array (
- 0 => 42820,
- 1 => 'Ꝅ',
- ),
- 42823 =>
- array (
- 0 => 42822,
- 1 => 'Ꝇ',
- ),
- 42825 =>
- array (
- 0 => 42824,
- 1 => 'Ꝉ',
- ),
- 42827 =>
- array (
- 0 => 42826,
- 1 => 'Ꝋ',
- ),
- 42829 =>
- array (
- 0 => 42828,
- 1 => 'Ꝍ',
- ),
- 42831 =>
- array (
- 0 => 42830,
- 1 => 'Ꝏ',
- ),
- 42833 =>
- array (
- 0 => 42832,
- 1 => 'Ꝑ',
- ),
- 42835 =>
- array (
- 0 => 42834,
- 1 => 'Ꝓ',
- ),
- 42837 =>
- array (
- 0 => 42836,
- 1 => 'Ꝕ',
- ),
- 42839 =>
- array (
- 0 => 42838,
- 1 => 'Ꝗ',
- ),
- 42841 =>
- array (
- 0 => 42840,
- 1 => 'Ꝙ',
- ),
- 42843 =>
- array (
- 0 => 42842,
- 1 => 'Ꝛ',
- ),
- 42845 =>
- array (
- 0 => 42844,
- 1 => 'Ꝝ',
- ),
- 42847 =>
- array (
- 0 => 42846,
- 1 => 'Ꝟ',
- ),
- 42849 =>
- array (
- 0 => 42848,
- 1 => 'Ꝡ',
- ),
- 42851 =>
- array (
- 0 => 42850,
- 1 => 'Ꝣ',
- ),
- 42853 =>
- array (
- 0 => 42852,
- 1 => 'Ꝥ',
- ),
- 42855 =>
- array (
- 0 => 42854,
- 1 => 'Ꝧ',
- ),
- 42857 =>
- array (
- 0 => 42856,
- 1 => 'Ꝩ',
- ),
- 42859 =>
- array (
- 0 => 42858,
- 1 => 'Ꝫ',
- ),
- 42861 =>
- array (
- 0 => 42860,
- 1 => 'Ꝭ',
- ),
- 42863 =>
- array (
- 0 => 42862,
- 1 => 'Ꝯ',
- ),
- 42874 =>
- array (
- 0 => 42873,
- 1 => 'Ꝺ',
- ),
- 42876 =>
- array (
- 0 => 42875,
- 1 => 'Ꝼ',
- ),
- 7545 =>
- array (
- 0 => 42877,
- 1 => 'Ᵹ',
- ),
- 42879 =>
- array (
- 0 => 42878,
- 1 => 'Ꝿ',
- ),
- 42881 =>
- array (
- 0 => 42880,
- 1 => 'Ꞁ',
- ),
- 42883 =>
- array (
- 0 => 42882,
- 1 => 'Ꞃ',
- ),
- 42885 =>
- array (
- 0 => 42884,
- 1 => 'Ꞅ',
- ),
- 42887 =>
- array (
- 0 => 42886,
- 1 => 'Ꞇ',
- ),
- 42892 =>
- array (
- 0 => 42891,
- 1 => 'Ꞌ',
- ),
- 613 =>
- array (
- 0 => 42893,
- 1 => 'Ɥ',
- ),
- 42897 =>
- array (
- 0 => 42896,
- 1 => 'Ꞑ',
- ),
- 42899 =>
- array (
- 0 => 42898,
- 1 => 'Ꞓ',
- ),
- 42903 =>
- array (
- 0 => 42902,
- 1 => 'Ꞗ',
- ),
- 42905 =>
- array (
- 0 => 42904,
- 1 => 'Ꞙ',
- ),
- 42907 =>
- array (
- 0 => 42906,
- 1 => 'Ꞛ',
- ),
- 42909 =>
- array (
- 0 => 42908,
- 1 => 'Ꞝ',
- ),
- 42911 =>
- array (
- 0 => 42910,
- 1 => 'Ꞟ',
- ),
- 42913 =>
- array (
- 0 => 42912,
- 1 => 'Ꞡ',
- ),
- 42915 =>
- array (
- 0 => 42914,
- 1 => 'Ꞣ',
- ),
- 42917 =>
- array (
- 0 => 42916,
- 1 => 'Ꞥ',
- ),
- 42919 =>
- array (
- 0 => 42918,
- 1 => 'Ꞧ',
- ),
- 42921 =>
- array (
- 0 => 42920,
- 1 => 'Ꞩ',
- ),
- 614 =>
- array (
- 0 => 42922,
- 1 => 'Ɦ',
- ),
- 604 =>
- array (
- 0 => 42923,
- 1 => 'Ɜ',
- ),
- 609 =>
- array (
- 0 => 42924,
- 1 => 'Ɡ',
- ),
- 620 =>
- array (
- 0 => 42925,
- 1 => 'Ɬ',
- ),
- 618 =>
- array (
- 0 => 42926,
- 1 => 'Ɪ',
- ),
- 670 =>
- array (
- 0 => 42928,
- 1 => 'Ʞ',
- ),
- 647 =>
- array (
- 0 => 42929,
- 1 => 'Ʇ',
- ),
- 669 =>
- array (
- 0 => 42930,
- 1 => 'Ʝ',
- ),
- 43859 =>
- array (
- 0 => 42931,
- 1 => 'Ꭓ',
- ),
- 42933 =>
- array (
- 0 => 42932,
- 1 => 'Ꞵ',
- ),
- 42935 =>
- array (
- 0 => 42934,
- 1 => 'Ꞷ',
- ),
- 5024 =>
- array (
- 0 => 43888,
- 1 => 'ꭰ',
- ),
- 5025 =>
- array (
- 0 => 43889,
- 1 => 'ꭱ',
- ),
- 5026 =>
- array (
- 0 => 43890,
- 1 => 'ꭲ',
- ),
- 5027 =>
- array (
- 0 => 43891,
- 1 => 'ꭳ',
- ),
- 5028 =>
- array (
- 0 => 43892,
- 1 => 'ꭴ',
- ),
- 5029 =>
- array (
- 0 => 43893,
- 1 => 'ꭵ',
- ),
- 5030 =>
- array (
- 0 => 43894,
- 1 => 'ꭶ',
- ),
- 5031 =>
- array (
- 0 => 43895,
- 1 => 'ꭷ',
- ),
- 5032 =>
- array (
- 0 => 43896,
- 1 => 'ꭸ',
- ),
- 5033 =>
- array (
- 0 => 43897,
- 1 => 'ꭹ',
- ),
- 5034 =>
- array (
- 0 => 43898,
- 1 => 'ꭺ',
- ),
- 5035 =>
- array (
- 0 => 43899,
- 1 => 'ꭻ',
- ),
- 5036 =>
- array (
- 0 => 43900,
- 1 => 'ꭼ',
- ),
- 5037 =>
- array (
- 0 => 43901,
- 1 => 'ꭽ',
- ),
- 5038 =>
- array (
- 0 => 43902,
- 1 => 'ꭾ',
- ),
- 5039 =>
- array (
- 0 => 43903,
- 1 => 'ꭿ',
- ),
- 5040 =>
- array (
- 0 => 43904,
- 1 => 'ꮀ',
- ),
- 5041 =>
- array (
- 0 => 43905,
- 1 => 'ꮁ',
- ),
- 5042 =>
- array (
- 0 => 43906,
- 1 => 'ꮂ',
- ),
- 5043 =>
- array (
- 0 => 43907,
- 1 => 'ꮃ',
- ),
- 5044 =>
- array (
- 0 => 43908,
- 1 => 'ꮄ',
- ),
- 5045 =>
- array (
- 0 => 43909,
- 1 => 'ꮅ',
- ),
- 5046 =>
- array (
- 0 => 43910,
- 1 => 'ꮆ',
- ),
- 5047 =>
- array (
- 0 => 43911,
- 1 => 'ꮇ',
- ),
- 5048 =>
- array (
- 0 => 43912,
- 1 => 'ꮈ',
- ),
- 5049 =>
- array (
- 0 => 43913,
- 1 => 'ꮉ',
- ),
- 5050 =>
- array (
- 0 => 43914,
- 1 => 'ꮊ',
- ),
- 5051 =>
- array (
- 0 => 43915,
- 1 => 'ꮋ',
- ),
- 5052 =>
- array (
- 0 => 43916,
- 1 => 'ꮌ',
- ),
- 5053 =>
- array (
- 0 => 43917,
- 1 => 'ꮍ',
- ),
- 5054 =>
- array (
- 0 => 43918,
- 1 => 'ꮎ',
- ),
- 5055 =>
- array (
- 0 => 43919,
- 1 => 'ꮏ',
- ),
- 5056 =>
- array (
- 0 => 43920,
- 1 => 'ꮐ',
- ),
- 5057 =>
- array (
- 0 => 43921,
- 1 => 'ꮑ',
- ),
- 5058 =>
- array (
- 0 => 43922,
- 1 => 'ꮒ',
- ),
- 5059 =>
- array (
- 0 => 43923,
- 1 => 'ꮓ',
- ),
- 5060 =>
- array (
- 0 => 43924,
- 1 => 'ꮔ',
- ),
- 5061 =>
- array (
- 0 => 43925,
- 1 => 'ꮕ',
- ),
- 5062 =>
- array (
- 0 => 43926,
- 1 => 'ꮖ',
- ),
- 5063 =>
- array (
- 0 => 43927,
- 1 => 'ꮗ',
- ),
- 5064 =>
- array (
- 0 => 43928,
- 1 => 'ꮘ',
- ),
- 5065 =>
- array (
- 0 => 43929,
- 1 => 'ꮙ',
- ),
- 5066 =>
- array (
- 0 => 43930,
- 1 => 'ꮚ',
- ),
- 5067 =>
- array (
- 0 => 43931,
- 1 => 'ꮛ',
- ),
- 5068 =>
- array (
- 0 => 43932,
- 1 => 'ꮜ',
- ),
- 5069 =>
- array (
- 0 => 43933,
- 1 => 'ꮝ',
- ),
- 5070 =>
- array (
- 0 => 43934,
- 1 => 'ꮞ',
- ),
- 5071 =>
- array (
- 0 => 43935,
- 1 => 'ꮟ',
- ),
- 5072 =>
- array (
- 0 => 43936,
- 1 => 'ꮠ',
- ),
- 5073 =>
- array (
- 0 => 43937,
- 1 => 'ꮡ',
- ),
- 5074 =>
- array (
- 0 => 43938,
- 1 => 'ꮢ',
- ),
- 5075 =>
- array (
- 0 => 43939,
- 1 => 'ꮣ',
- ),
- 5076 =>
- array (
- 0 => 43940,
- 1 => 'ꮤ',
- ),
- 5077 =>
- array (
- 0 => 43941,
- 1 => 'ꮥ',
- ),
- 5078 =>
- array (
- 0 => 43942,
- 1 => 'ꮦ',
- ),
- 5079 =>
- array (
- 0 => 43943,
- 1 => 'ꮧ',
- ),
- 5080 =>
- array (
- 0 => 43944,
- 1 => 'ꮨ',
- ),
- 5081 =>
- array (
- 0 => 43945,
- 1 => 'ꮩ',
- ),
- 5082 =>
- array (
- 0 => 43946,
- 1 => 'ꮪ',
- ),
- 5083 =>
- array (
- 0 => 43947,
- 1 => 'ꮫ',
- ),
- 5084 =>
- array (
- 0 => 43948,
- 1 => 'ꮬ',
- ),
- 5085 =>
- array (
- 0 => 43949,
- 1 => 'ꮭ',
- ),
- 5086 =>
- array (
- 0 => 43950,
- 1 => 'ꮮ',
- ),
- 5087 =>
- array (
- 0 => 43951,
- 1 => 'ꮯ',
- ),
- 5088 =>
- array (
- 0 => 43952,
- 1 => 'ꮰ',
- ),
- 5089 =>
- array (
- 0 => 43953,
- 1 => 'ꮱ',
- ),
- 5090 =>
- array (
- 0 => 43954,
- 1 => 'ꮲ',
- ),
- 5091 =>
- array (
- 0 => 43955,
- 1 => 'ꮳ',
- ),
- 5092 =>
- array (
- 0 => 43956,
- 1 => 'ꮴ',
- ),
- 5093 =>
- array (
- 0 => 43957,
- 1 => 'ꮵ',
- ),
- 5094 =>
- array (
- 0 => 43958,
- 1 => 'ꮶ',
- ),
- 5095 =>
- array (
- 0 => 43959,
- 1 => 'ꮷ',
- ),
- 5096 =>
- array (
- 0 => 43960,
- 1 => 'ꮸ',
- ),
- 5097 =>
- array (
- 0 => 43961,
- 1 => 'ꮹ',
- ),
- 5098 =>
- array (
- 0 => 43962,
- 1 => 'ꮺ',
- ),
- 5099 =>
- array (
- 0 => 43963,
- 1 => 'ꮻ',
- ),
- 5100 =>
- array (
- 0 => 43964,
- 1 => 'ꮼ',
- ),
- 5101 =>
- array (
- 0 => 43965,
- 1 => 'ꮽ',
- ),
- 5102 =>
- array (
- 0 => 43966,
- 1 => 'ꮾ',
- ),
- 5103 =>
- array (
- 0 => 43967,
- 1 => 'ꮿ',
- ),
- 65345 =>
- array (
- 0 => 65313,
- 1 => 'A',
- ),
- 65346 =>
- array (
- 0 => 65314,
- 1 => 'B',
- ),
- 65347 =>
- array (
- 0 => 65315,
- 1 => 'C',
- ),
- 65348 =>
- array (
- 0 => 65316,
- 1 => 'D',
- ),
- 65349 =>
- array (
- 0 => 65317,
- 1 => 'E',
- ),
- 65350 =>
- array (
- 0 => 65318,
- 1 => 'F',
- ),
- 65351 =>
- array (
- 0 => 65319,
- 1 => 'G',
- ),
- 65352 =>
- array (
- 0 => 65320,
- 1 => 'H',
- ),
- 65353 =>
- array (
- 0 => 65321,
- 1 => 'I',
- ),
- 65354 =>
- array (
- 0 => 65322,
- 1 => 'J',
- ),
- 65355 =>
- array (
- 0 => 65323,
- 1 => 'K',
- ),
- 65356 =>
- array (
- 0 => 65324,
- 1 => 'L',
- ),
- 65357 =>
- array (
- 0 => 65325,
- 1 => 'M',
- ),
- 65358 =>
- array (
- 0 => 65326,
- 1 => 'N',
- ),
- 65359 =>
- array (
- 0 => 65327,
- 1 => 'O',
- ),
- 65360 =>
- array (
- 0 => 65328,
- 1 => 'P',
- ),
- 65361 =>
- array (
- 0 => 65329,
- 1 => 'Q',
- ),
- 65362 =>
- array (
- 0 => 65330,
- 1 => 'R',
- ),
- 65363 =>
- array (
- 0 => 65331,
- 1 => 'S',
- ),
- 65364 =>
- array (
- 0 => 65332,
- 1 => 'T',
- ),
- 65365 =>
- array (
- 0 => 65333,
- 1 => 'U',
- ),
- 65366 =>
- array (
- 0 => 65334,
- 1 => 'V',
- ),
- 65367 =>
- array (
- 0 => 65335,
- 1 => 'W',
- ),
- 65368 =>
- array (
- 0 => 65336,
- 1 => 'X',
- ),
- 65369 =>
- array (
- 0 => 65337,
- 1 => 'Y',
- ),
- 65370 =>
- array (
- 0 => 65338,
- 1 => 'Z',
- ),
- 66600 =>
- array (
- 0 => 66560,
- 1 => '𐐀',
- ),
- 66601 =>
- array (
- 0 => 66561,
- 1 => '𐐁',
- ),
- 66602 =>
- array (
- 0 => 66562,
- 1 => '𐐂',
- ),
- 66603 =>
- array (
- 0 => 66563,
- 1 => '𐐃',
- ),
- 66604 =>
- array (
- 0 => 66564,
- 1 => '𐐄',
- ),
- 66605 =>
- array (
- 0 => 66565,
- 1 => '𐐅',
- ),
- 66606 =>
- array (
- 0 => 66566,
- 1 => '𐐆',
- ),
- 66607 =>
- array (
- 0 => 66567,
- 1 => '𐐇',
- ),
- 66608 =>
- array (
- 0 => 66568,
- 1 => '𐐈',
- ),
- 66609 =>
- array (
- 0 => 66569,
- 1 => '𐐉',
- ),
- 66610 =>
- array (
- 0 => 66570,
- 1 => '𐐊',
- ),
- 66611 =>
- array (
- 0 => 66571,
- 1 => '𐐋',
- ),
- 66612 =>
- array (
- 0 => 66572,
- 1 => '𐐌',
- ),
- 66613 =>
- array (
- 0 => 66573,
- 1 => '𐐍',
- ),
- 66614 =>
- array (
- 0 => 66574,
- 1 => '𐐎',
- ),
- 66615 =>
- array (
- 0 => 66575,
- 1 => '𐐏',
- ),
- 66616 =>
- array (
- 0 => 66576,
- 1 => '𐐐',
- ),
- 66617 =>
- array (
- 0 => 66577,
- 1 => '𐐑',
- ),
- 66618 =>
- array (
- 0 => 66578,
- 1 => '𐐒',
- ),
- 66619 =>
- array (
- 0 => 66579,
- 1 => '𐐓',
- ),
- 66620 =>
- array (
- 0 => 66580,
- 1 => '𐐔',
- ),
- 66621 =>
- array (
- 0 => 66581,
- 1 => '𐐕',
- ),
- 66622 =>
- array (
- 0 => 66582,
- 1 => '𐐖',
- ),
- 66623 =>
- array (
- 0 => 66583,
- 1 => '𐐗',
- ),
- 66624 =>
- array (
- 0 => 66584,
- 1 => '𐐘',
- ),
- 66625 =>
- array (
- 0 => 66585,
- 1 => '𐐙',
- ),
- 66626 =>
- array (
- 0 => 66586,
- 1 => '𐐚',
- ),
- 66627 =>
- array (
- 0 => 66587,
- 1 => '𐐛',
- ),
- 66628 =>
- array (
- 0 => 66588,
- 1 => '𐐜',
- ),
- 66629 =>
- array (
- 0 => 66589,
- 1 => '𐐝',
- ),
- 66630 =>
- array (
- 0 => 66590,
- 1 => '𐐞',
- ),
- 66631 =>
- array (
- 0 => 66591,
- 1 => '𐐟',
- ),
- 66632 =>
- array (
- 0 => 66592,
- 1 => '𐐠',
- ),
- 66633 =>
- array (
- 0 => 66593,
- 1 => '𐐡',
- ),
- 66634 =>
- array (
- 0 => 66594,
- 1 => '𐐢',
- ),
- 66635 =>
- array (
- 0 => 66595,
- 1 => '𐐣',
- ),
- 66636 =>
- array (
- 0 => 66596,
- 1 => '𐐤',
- ),
- 66637 =>
- array (
- 0 => 66597,
- 1 => '𐐥',
- ),
- 66638 =>
- array (
- 0 => 66598,
- 1 => '𐐦',
- ),
- 66639 =>
- array (
- 0 => 66599,
- 1 => '𐐧',
- ),
- 66776 =>
- array (
- 0 => 66736,
- 1 => '𐒰',
- ),
- 66777 =>
- array (
- 0 => 66737,
- 1 => '𐒱',
- ),
- 66778 =>
- array (
- 0 => 66738,
- 1 => '𐒲',
- ),
- 66779 =>
- array (
- 0 => 66739,
- 1 => '𐒳',
- ),
- 66780 =>
- array (
- 0 => 66740,
- 1 => '𐒴',
- ),
- 66781 =>
- array (
- 0 => 66741,
- 1 => '𐒵',
- ),
- 66782 =>
- array (
- 0 => 66742,
- 1 => '𐒶',
- ),
- 66783 =>
- array (
- 0 => 66743,
- 1 => '𐒷',
- ),
- 66784 =>
- array (
- 0 => 66744,
- 1 => '𐒸',
- ),
- 66785 =>
- array (
- 0 => 66745,
- 1 => '𐒹',
- ),
- 66786 =>
- array (
- 0 => 66746,
- 1 => '𐒺',
- ),
- 66787 =>
- array (
- 0 => 66747,
- 1 => '𐒻',
- ),
- 66788 =>
- array (
- 0 => 66748,
- 1 => '𐒼',
- ),
- 66789 =>
- array (
- 0 => 66749,
- 1 => '𐒽',
- ),
- 66790 =>
- array (
- 0 => 66750,
- 1 => '𐒾',
- ),
- 66791 =>
- array (
- 0 => 66751,
- 1 => '𐒿',
- ),
- 66792 =>
- array (
- 0 => 66752,
- 1 => '𐓀',
- ),
- 66793 =>
- array (
- 0 => 66753,
- 1 => '𐓁',
- ),
- 66794 =>
- array (
- 0 => 66754,
- 1 => '𐓂',
- ),
- 66795 =>
- array (
- 0 => 66755,
- 1 => '𐓃',
- ),
- 66796 =>
- array (
- 0 => 66756,
- 1 => '𐓄',
- ),
- 66797 =>
- array (
- 0 => 66757,
- 1 => '𐓅',
- ),
- 66798 =>
- array (
- 0 => 66758,
- 1 => '𐓆',
- ),
- 66799 =>
- array (
- 0 => 66759,
- 1 => '𐓇',
- ),
- 66800 =>
- array (
- 0 => 66760,
- 1 => '𐓈',
- ),
- 66801 =>
- array (
- 0 => 66761,
- 1 => '𐓉',
- ),
- 66802 =>
- array (
- 0 => 66762,
- 1 => '𐓊',
- ),
- 66803 =>
- array (
- 0 => 66763,
- 1 => '𐓋',
- ),
- 66804 =>
- array (
- 0 => 66764,
- 1 => '𐓌',
- ),
- 66805 =>
- array (
- 0 => 66765,
- 1 => '𐓍',
- ),
- 66806 =>
- array (
- 0 => 66766,
- 1 => '𐓎',
- ),
- 66807 =>
- array (
- 0 => 66767,
- 1 => '𐓏',
- ),
- 66808 =>
- array (
- 0 => 66768,
- 1 => '𐓐',
- ),
- 66809 =>
- array (
- 0 => 66769,
- 1 => '𐓑',
- ),
- 66810 =>
- array (
- 0 => 66770,
- 1 => '𐓒',
- ),
- 66811 =>
- array (
- 0 => 66771,
- 1 => '𐓓',
- ),
- 68800 =>
- array (
- 0 => 68736,
- 1 => '𐲀',
- ),
- 68801 =>
- array (
- 0 => 68737,
- 1 => '𐲁',
- ),
- 68802 =>
- array (
- 0 => 68738,
- 1 => '𐲂',
- ),
- 68803 =>
- array (
- 0 => 68739,
- 1 => '𐲃',
- ),
- 68804 =>
- array (
- 0 => 68740,
- 1 => '𐲄',
- ),
- 68805 =>
- array (
- 0 => 68741,
- 1 => '𐲅',
- ),
- 68806 =>
- array (
- 0 => 68742,
- 1 => '𐲆',
- ),
- 68807 =>
- array (
- 0 => 68743,
- 1 => '𐲇',
- ),
- 68808 =>
- array (
- 0 => 68744,
- 1 => '𐲈',
- ),
- 68809 =>
- array (
- 0 => 68745,
- 1 => '𐲉',
- ),
- 68810 =>
- array (
- 0 => 68746,
- 1 => '𐲊',
- ),
- 68811 =>
- array (
- 0 => 68747,
- 1 => '𐲋',
- ),
- 68812 =>
- array (
- 0 => 68748,
- 1 => '𐲌',
- ),
- 68813 =>
- array (
- 0 => 68749,
- 1 => '𐲍',
- ),
- 68814 =>
- array (
- 0 => 68750,
- 1 => '𐲎',
- ),
- 68815 =>
- array (
- 0 => 68751,
- 1 => '𐲏',
- ),
- 68816 =>
- array (
- 0 => 68752,
- 1 => '𐲐',
- ),
- 68817 =>
- array (
- 0 => 68753,
- 1 => '𐲑',
- ),
- 68818 =>
- array (
- 0 => 68754,
- 1 => '𐲒',
- ),
- 68819 =>
- array (
- 0 => 68755,
- 1 => '𐲓',
- ),
- 68820 =>
- array (
- 0 => 68756,
- 1 => '𐲔',
- ),
- 68821 =>
- array (
- 0 => 68757,
- 1 => '𐲕',
- ),
- 68822 =>
- array (
- 0 => 68758,
- 1 => '𐲖',
- ),
- 68823 =>
- array (
- 0 => 68759,
- 1 => '𐲗',
- ),
- 68824 =>
- array (
- 0 => 68760,
- 1 => '𐲘',
- ),
- 68825 =>
- array (
- 0 => 68761,
- 1 => '𐲙',
- ),
- 68826 =>
- array (
- 0 => 68762,
- 1 => '𐲚',
- ),
- 68827 =>
- array (
- 0 => 68763,
- 1 => '𐲛',
- ),
- 68828 =>
- array (
- 0 => 68764,
- 1 => '𐲜',
- ),
- 68829 =>
- array (
- 0 => 68765,
- 1 => '𐲝',
- ),
- 68830 =>
- array (
- 0 => 68766,
- 1 => '𐲞',
- ),
- 68831 =>
- array (
- 0 => 68767,
- 1 => '𐲟',
- ),
- 68832 =>
- array (
- 0 => 68768,
- 1 => '𐲠',
- ),
- 68833 =>
- array (
- 0 => 68769,
- 1 => '𐲡',
- ),
- 68834 =>
- array (
- 0 => 68770,
- 1 => '𐲢',
- ),
- 68835 =>
- array (
- 0 => 68771,
- 1 => '𐲣',
- ),
- 68836 =>
- array (
- 0 => 68772,
- 1 => '𐲤',
- ),
- 68837 =>
- array (
- 0 => 68773,
- 1 => '𐲥',
- ),
- 68838 =>
- array (
- 0 => 68774,
- 1 => '𐲦',
- ),
- 68839 =>
- array (
- 0 => 68775,
- 1 => '𐲧',
- ),
- 68840 =>
- array (
- 0 => 68776,
- 1 => '𐲨',
- ),
- 68841 =>
- array (
- 0 => 68777,
- 1 => '𐲩',
- ),
- 68842 =>
- array (
- 0 => 68778,
- 1 => '𐲪',
- ),
- 68843 =>
- array (
- 0 => 68779,
- 1 => '𐲫',
- ),
- 68844 =>
- array (
- 0 => 68780,
- 1 => '𐲬',
- ),
- 68845 =>
- array (
- 0 => 68781,
- 1 => '𐲭',
- ),
- 68846 =>
- array (
- 0 => 68782,
- 1 => '𐲮',
- ),
- 68847 =>
- array (
- 0 => 68783,
- 1 => '𐲯',
- ),
- 68848 =>
- array (
- 0 => 68784,
- 1 => '𐲰',
- ),
- 68849 =>
- array (
- 0 => 68785,
- 1 => '𐲱',
- ),
- 68850 =>
- array (
- 0 => 68786,
- 1 => '𐲲',
- ),
- 71872 =>
- array (
- 0 => 71840,
- 1 => '𑢠',
- ),
- 71873 =>
- array (
- 0 => 71841,
- 1 => '𑢡',
- ),
- 71874 =>
- array (
- 0 => 71842,
- 1 => '𑢢',
- ),
- 71875 =>
- array (
- 0 => 71843,
- 1 => '𑢣',
- ),
- 71876 =>
- array (
- 0 => 71844,
- 1 => '𑢤',
- ),
- 71877 =>
- array (
- 0 => 71845,
- 1 => '𑢥',
- ),
- 71878 =>
- array (
- 0 => 71846,
- 1 => '𑢦',
- ),
- 71879 =>
- array (
- 0 => 71847,
- 1 => '𑢧',
- ),
- 71880 =>
- array (
- 0 => 71848,
- 1 => '𑢨',
- ),
- 71881 =>
- array (
- 0 => 71849,
- 1 => '𑢩',
- ),
- 71882 =>
- array (
- 0 => 71850,
- 1 => '𑢪',
- ),
- 71883 =>
- array (
- 0 => 71851,
- 1 => '𑢫',
- ),
- 71884 =>
- array (
- 0 => 71852,
- 1 => '𑢬',
- ),
- 71885 =>
- array (
- 0 => 71853,
- 1 => '𑢭',
- ),
- 71886 =>
- array (
- 0 => 71854,
- 1 => '𑢮',
- ),
- 71887 =>
- array (
- 0 => 71855,
- 1 => '𑢯',
- ),
- 71888 =>
- array (
- 0 => 71856,
- 1 => '𑢰',
- ),
- 71889 =>
- array (
- 0 => 71857,
- 1 => '𑢱',
- ),
- 71890 =>
- array (
- 0 => 71858,
- 1 => '𑢲',
- ),
- 71891 =>
- array (
- 0 => 71859,
- 1 => '𑢳',
- ),
- 71892 =>
- array (
- 0 => 71860,
- 1 => '𑢴',
- ),
- 71893 =>
- array (
- 0 => 71861,
- 1 => '𑢵',
- ),
- 71894 =>
- array (
- 0 => 71862,
- 1 => '𑢶',
- ),
- 71895 =>
- array (
- 0 => 71863,
- 1 => '𑢷',
- ),
- 71896 =>
- array (
- 0 => 71864,
- 1 => '𑢸',
- ),
- 71897 =>
- array (
- 0 => 71865,
- 1 => '𑢹',
- ),
- 71898 =>
- array (
- 0 => 71866,
- 1 => '𑢺',
- ),
- 71899 =>
- array (
- 0 => 71867,
- 1 => '𑢻',
- ),
- 71900 =>
- array (
- 0 => 71868,
- 1 => '𑢼',
- ),
- 71901 =>
- array (
- 0 => 71869,
- 1 => '𑢽',
- ),
- 71902 =>
- array (
- 0 => 71870,
- 1 => '𑢾',
- ),
- 71903 =>
- array (
- 0 => 71871,
- 1 => '𑢿',
- ),
- 125218 =>
- array (
- 0 => 125184,
- 1 => '𞤀',
- ),
- 125219 =>
- array (
- 0 => 125185,
- 1 => '𞤁',
- ),
- 125220 =>
- array (
- 0 => 125186,
- 1 => '𞤂',
- ),
- 125221 =>
- array (
- 0 => 125187,
- 1 => '𞤃',
- ),
- 125222 =>
- array (
- 0 => 125188,
- 1 => '𞤄',
- ),
- 125223 =>
- array (
- 0 => 125189,
- 1 => '𞤅',
- ),
- 125224 =>
- array (
- 0 => 125190,
- 1 => '𞤆',
- ),
- 125225 =>
- array (
- 0 => 125191,
- 1 => '𞤇',
- ),
- 125226 =>
- array (
- 0 => 125192,
- 1 => '𞤈',
- ),
- 125227 =>
- array (
- 0 => 125193,
- 1 => '𞤉',
- ),
- 125228 =>
- array (
- 0 => 125194,
- 1 => '𞤊',
- ),
- 125229 =>
- array (
- 0 => 125195,
- 1 => '𞤋',
- ),
- 125230 =>
- array (
- 0 => 125196,
- 1 => '𞤌',
- ),
- 125231 =>
- array (
- 0 => 125197,
- 1 => '𞤍',
- ),
- 125232 =>
- array (
- 0 => 125198,
- 1 => '𞤎',
- ),
- 125233 =>
- array (
- 0 => 125199,
- 1 => '𞤏',
- ),
- 125234 =>
- array (
- 0 => 125200,
- 1 => '𞤐',
- ),
- 125235 =>
- array (
- 0 => 125201,
- 1 => '𞤑',
- ),
- 125236 =>
- array (
- 0 => 125202,
- 1 => '𞤒',
- ),
- 125237 =>
- array (
- 0 => 125203,
- 1 => '𞤓',
- ),
- 125238 =>
- array (
- 0 => 125204,
- 1 => '𞤔',
- ),
- 125239 =>
- array (
- 0 => 125205,
- 1 => '𞤕',
- ),
- 125240 =>
- array (
- 0 => 125206,
- 1 => '𞤖',
- ),
- 125241 =>
- array (
- 0 => 125207,
- 1 => '𞤗',
- ),
- 125242 =>
- array (
- 0 => 125208,
- 1 => '𞤘',
- ),
- 125243 =>
- array (
- 0 => 125209,
- 1 => '𞤙',
- ),
- 125244 =>
- array (
- 0 => 125210,
- 1 => '𞤚',
- ),
- 125245 =>
- array (
- 0 => 125211,
- 1 => '𞤛',
- ),
- 125246 =>
- array (
- 0 => 125212,
- 1 => '𞤜',
- ),
- 125247 =>
- array (
- 0 => 125213,
- 1 => '𞤝',
- ),
- 125248 =>
- array (
- 0 => 125214,
- 1 => '𞤞',
- ),
- 125249 =>
- array (
- 0 => 125215,
- 1 => '𞤟',
- ),
- 125250 =>
- array (
- 0 => 125216,
- 1 => '𞤠',
- ),
- 125251 =>
- array (
- 0 => 125217,
- 1 => '𞤡',
- ),
-);
+return [
+0x61 => 0x41,
+0x62 => 0x42,
+0x63 => 0x43,
+0x64 => 0x44,
+0x65 => 0x45,
+0x66 => 0x46,
+0x67 => 0x47,
+0x68 => 0x48,
+0x69 => 0x49,
+0x6A => 0x4A,
+0x6B => 0x4B,
+0x6C => 0x4C,
+0x6D => 0x4D,
+0x6E => 0x4E,
+0x6F => 0x4F,
+0x70 => 0x50,
+0x71 => 0x51,
+0x72 => 0x52,
+0x73 => 0x53,
+0x74 => 0x54,
+0x75 => 0x55,
+0x76 => 0x56,
+0x77 => 0x57,
+0x78 => 0x58,
+0x79 => 0x59,
+0x7A => 0x5A,
+0xB5 => 0x39C,
+0xE0 => 0xC0,
+0xE1 => 0xC1,
+0xE2 => 0xC2,
+0xE3 => 0xC3,
+0xE4 => 0xC4,
+0xE5 => 0xC5,
+0xE6 => 0xC6,
+0xE7 => 0xC7,
+0xE8 => 0xC8,
+0xE9 => 0xC9,
+0xEA => 0xCA,
+0xEB => 0xCB,
+0xEC => 0xCC,
+0xED => 0xCD,
+0xEE => 0xCE,
+0xEF => 0xCF,
+0xF0 => 0xD0,
+0xF1 => 0xD1,
+0xF2 => 0xD2,
+0xF3 => 0xD3,
+0xF4 => 0xD4,
+0xF5 => 0xD5,
+0xF6 => 0xD6,
+0xF8 => 0xD8,
+0xF9 => 0xD9,
+0xFA => 0xDA,
+0xFB => 0xDB,
+0xFC => 0xDC,
+0xFD => 0xDD,
+0xFE => 0xDE,
+0xFF => 0x178,
+0x101 => 0x100,
+0x103 => 0x102,
+0x105 => 0x104,
+0x107 => 0x106,
+0x109 => 0x108,
+0x10B => 0x10A,
+0x10D => 0x10C,
+0x10F => 0x10E,
+0x111 => 0x110,
+0x113 => 0x112,
+0x115 => 0x114,
+0x117 => 0x116,
+0x119 => 0x118,
+0x11B => 0x11A,
+0x11D => 0x11C,
+0x11F => 0x11E,
+0x121 => 0x120,
+0x123 => 0x122,
+0x125 => 0x124,
+0x127 => 0x126,
+0x129 => 0x128,
+0x12B => 0x12A,
+0x12D => 0x12C,
+0x12F => 0x12E,
+0x131 => 0x49,
+0x133 => 0x132,
+0x135 => 0x134,
+0x137 => 0x136,
+0x13A => 0x139,
+0x13C => 0x13B,
+0x13E => 0x13D,
+0x140 => 0x13F,
+0x142 => 0x141,
+0x144 => 0x143,
+0x146 => 0x145,
+0x148 => 0x147,
+0x14B => 0x14A,
+0x14D => 0x14C,
+0x14F => 0x14E,
+0x151 => 0x150,
+0x153 => 0x152,
+0x155 => 0x154,
+0x157 => 0x156,
+0x159 => 0x158,
+0x15B => 0x15A,
+0x15D => 0x15C,
+0x15F => 0x15E,
+0x161 => 0x160,
+0x163 => 0x162,
+0x165 => 0x164,
+0x167 => 0x166,
+0x169 => 0x168,
+0x16B => 0x16A,
+0x16D => 0x16C,
+0x16F => 0x16E,
+0x171 => 0x170,
+0x173 => 0x172,
+0x175 => 0x174,
+0x177 => 0x176,
+0x17A => 0x179,
+0x17C => 0x17B,
+0x17E => 0x17D,
+0x17F => 0x53,
+0x180 => 0x243,
+0x183 => 0x182,
+0x185 => 0x184,
+0x188 => 0x187,
+0x18C => 0x18B,
+0x192 => 0x191,
+0x195 => 0x1F6,
+0x199 => 0x198,
+0x19A => 0x23D,
+0x19E => 0x220,
+0x1A1 => 0x1A0,
+0x1A3 => 0x1A2,
+0x1A5 => 0x1A4,
+0x1A8 => 0x1A7,
+0x1AD => 0x1AC,
+0x1B0 => 0x1AF,
+0x1B4 => 0x1B3,
+0x1B6 => 0x1B5,
+0x1B9 => 0x1B8,
+0x1BD => 0x1BC,
+0x1BF => 0x1F7,
+0x1C5 => 0x1C4,
+0x1C6 => 0x1C4,
+0x1C8 => 0x1C7,
+0x1C9 => 0x1C7,
+0x1CB => 0x1CA,
+0x1CC => 0x1CA,
+0x1CE => 0x1CD,
+0x1D0 => 0x1CF,
+0x1D2 => 0x1D1,
+0x1D4 => 0x1D3,
+0x1D6 => 0x1D5,
+0x1D8 => 0x1D7,
+0x1DA => 0x1D9,
+0x1DC => 0x1DB,
+0x1DD => 0x18E,
+0x1DF => 0x1DE,
+0x1E1 => 0x1E0,
+0x1E3 => 0x1E2,
+0x1E5 => 0x1E4,
+0x1E7 => 0x1E6,
+0x1E9 => 0x1E8,
+0x1EB => 0x1EA,
+0x1ED => 0x1EC,
+0x1EF => 0x1EE,
+0x1F2 => 0x1F1,
+0x1F3 => 0x1F1,
+0x1F5 => 0x1F4,
+0x1F9 => 0x1F8,
+0x1FB => 0x1FA,
+0x1FD => 0x1FC,
+0x1FF => 0x1FE,
+0x201 => 0x200,
+0x203 => 0x202,
+0x205 => 0x204,
+0x207 => 0x206,
+0x209 => 0x208,
+0x20B => 0x20A,
+0x20D => 0x20C,
+0x20F => 0x20E,
+0x211 => 0x210,
+0x213 => 0x212,
+0x215 => 0x214,
+0x217 => 0x216,
+0x219 => 0x218,
+0x21B => 0x21A,
+0x21D => 0x21C,
+0x21F => 0x21E,
+0x223 => 0x222,
+0x225 => 0x224,
+0x227 => 0x226,
+0x229 => 0x228,
+0x22B => 0x22A,
+0x22D => 0x22C,
+0x22F => 0x22E,
+0x231 => 0x230,
+0x233 => 0x232,
+0x23C => 0x23B,
+0x23F => 0x2C7E,
+0x240 => 0x2C7F,
+0x242 => 0x241,
+0x247 => 0x246,
+0x249 => 0x248,
+0x24B => 0x24A,
+0x24D => 0x24C,
+0x24F => 0x24E,
+0x250 => 0x2C6F,
+0x251 => 0x2C6D,
+0x252 => 0x2C70,
+0x253 => 0x181,
+0x254 => 0x186,
+0x256 => 0x189,
+0x257 => 0x18A,
+0x259 => 0x18F,
+0x25B => 0x190,
+0x25C => 0xA7AB,
+0x260 => 0x193,
+0x261 => 0xA7AC,
+0x263 => 0x194,
+0x265 => 0xA78D,
+0x266 => 0xA7AA,
+0x268 => 0x197,
+0x269 => 0x196,
+0x26A => 0xA7AE,
+0x26B => 0x2C62,
+0x26C => 0xA7AD,
+0x26F => 0x19C,
+0x271 => 0x2C6E,
+0x272 => 0x19D,
+0x275 => 0x19F,
+0x27D => 0x2C64,
+0x280 => 0x1A6,
+0x282 => 0xA7C5,
+0x283 => 0x1A9,
+0x287 => 0xA7B1,
+0x288 => 0x1AE,
+0x289 => 0x244,
+0x28A => 0x1B1,
+0x28B => 0x1B2,
+0x28C => 0x245,
+0x292 => 0x1B7,
+0x29D => 0xA7B2,
+0x29E => 0xA7B0,
+0x345 => 0x399,
+0x371 => 0x370,
+0x373 => 0x372,
+0x377 => 0x376,
+0x37B => 0x3FD,
+0x37C => 0x3FE,
+0x37D => 0x3FF,
+0x3AC => 0x386,
+0x3AD => 0x388,
+0x3AE => 0x389,
+0x3AF => 0x38A,
+0x3B1 => 0x391,
+0x3B2 => 0x392,
+0x3B3 => 0x393,
+0x3B4 => 0x394,
+0x3B5 => 0x395,
+0x3B6 => 0x396,
+0x3B7 => 0x397,
+0x3B8 => 0x398,
+0x3B9 => 0x399,
+0x3BA => 0x39A,
+0x3BB => 0x39B,
+0x3BC => 0x39C,
+0x3BD => 0x39D,
+0x3BE => 0x39E,
+0x3BF => 0x39F,
+0x3C0 => 0x3A0,
+0x3C1 => 0x3A1,
+0x3C2 => 0x3A3,
+0x3C3 => 0x3A3,
+0x3C4 => 0x3A4,
+0x3C5 => 0x3A5,
+0x3C6 => 0x3A6,
+0x3C7 => 0x3A7,
+0x3C8 => 0x3A8,
+0x3C9 => 0x3A9,
+0x3CA => 0x3AA,
+0x3CB => 0x3AB,
+0x3CC => 0x38C,
+0x3CD => 0x38E,
+0x3CE => 0x38F,
+0x3D0 => 0x392,
+0x3D1 => 0x398,
+0x3D5 => 0x3A6,
+0x3D6 => 0x3A0,
+0x3D7 => 0x3CF,
+0x3D9 => 0x3D8,
+0x3DB => 0x3DA,
+0x3DD => 0x3DC,
+0x3DF => 0x3DE,
+0x3E1 => 0x3E0,
+0x3E3 => 0x3E2,
+0x3E5 => 0x3E4,
+0x3E7 => 0x3E6,
+0x3E9 => 0x3E8,
+0x3EB => 0x3EA,
+0x3ED => 0x3EC,
+0x3EF => 0x3EE,
+0x3F0 => 0x39A,
+0x3F1 => 0x3A1,
+0x3F2 => 0x3F9,
+0x3F3 => 0x37F,
+0x3F5 => 0x395,
+0x3F8 => 0x3F7,
+0x3FB => 0x3FA,
+0x430 => 0x410,
+0x431 => 0x411,
+0x432 => 0x412,
+0x433 => 0x413,
+0x434 => 0x414,
+0x435 => 0x415,
+0x436 => 0x416,
+0x437 => 0x417,
+0x438 => 0x418,
+0x439 => 0x419,
+0x43A => 0x41A,
+0x43B => 0x41B,
+0x43C => 0x41C,
+0x43D => 0x41D,
+0x43E => 0x41E,
+0x43F => 0x41F,
+0x440 => 0x420,
+0x441 => 0x421,
+0x442 => 0x422,
+0x443 => 0x423,
+0x444 => 0x424,
+0x445 => 0x425,
+0x446 => 0x426,
+0x447 => 0x427,
+0x448 => 0x428,
+0x449 => 0x429,
+0x44A => 0x42A,
+0x44B => 0x42B,
+0x44C => 0x42C,
+0x44D => 0x42D,
+0x44E => 0x42E,
+0x44F => 0x42F,
+0x450 => 0x400,
+0x451 => 0x401,
+0x452 => 0x402,
+0x453 => 0x403,
+0x454 => 0x404,
+0x455 => 0x405,
+0x456 => 0x406,
+0x457 => 0x407,
+0x458 => 0x408,
+0x459 => 0x409,
+0x45A => 0x40A,
+0x45B => 0x40B,
+0x45C => 0x40C,
+0x45D => 0x40D,
+0x45E => 0x40E,
+0x45F => 0x40F,
+0x461 => 0x460,
+0x463 => 0x462,
+0x465 => 0x464,
+0x467 => 0x466,
+0x469 => 0x468,
+0x46B => 0x46A,
+0x46D => 0x46C,
+0x46F => 0x46E,
+0x471 => 0x470,
+0x473 => 0x472,
+0x475 => 0x474,
+0x477 => 0x476,
+0x479 => 0x478,
+0x47B => 0x47A,
+0x47D => 0x47C,
+0x47F => 0x47E,
+0x481 => 0x480,
+0x48B => 0x48A,
+0x48D => 0x48C,
+0x48F => 0x48E,
+0x491 => 0x490,
+0x493 => 0x492,
+0x495 => 0x494,
+0x497 => 0x496,
+0x499 => 0x498,
+0x49B => 0x49A,
+0x49D => 0x49C,
+0x49F => 0x49E,
+0x4A1 => 0x4A0,
+0x4A3 => 0x4A2,
+0x4A5 => 0x4A4,
+0x4A7 => 0x4A6,
+0x4A9 => 0x4A8,
+0x4AB => 0x4AA,
+0x4AD => 0x4AC,
+0x4AF => 0x4AE,
+0x4B1 => 0x4B0,
+0x4B3 => 0x4B2,
+0x4B5 => 0x4B4,
+0x4B7 => 0x4B6,
+0x4B9 => 0x4B8,
+0x4BB => 0x4BA,
+0x4BD => 0x4BC,
+0x4BF => 0x4BE,
+0x4C2 => 0x4C1,
+0x4C4 => 0x4C3,
+0x4C6 => 0x4C5,
+0x4C8 => 0x4C7,
+0x4CA => 0x4C9,
+0x4CC => 0x4CB,
+0x4CE => 0x4CD,
+0x4CF => 0x4C0,
+0x4D1 => 0x4D0,
+0x4D3 => 0x4D2,
+0x4D5 => 0x4D4,
+0x4D7 => 0x4D6,
+0x4D9 => 0x4D8,
+0x4DB => 0x4DA,
+0x4DD => 0x4DC,
+0x4DF => 0x4DE,
+0x4E1 => 0x4E0,
+0x4E3 => 0x4E2,
+0x4E5 => 0x4E4,
+0x4E7 => 0x4E6,
+0x4E9 => 0x4E8,
+0x4EB => 0x4EA,
+0x4ED => 0x4EC,
+0x4EF => 0x4EE,
+0x4F1 => 0x4F0,
+0x4F3 => 0x4F2,
+0x4F5 => 0x4F4,
+0x4F7 => 0x4F6,
+0x4F9 => 0x4F8,
+0x4FB => 0x4FA,
+0x4FD => 0x4FC,
+0x4FF => 0x4FE,
+0x501 => 0x500,
+0x503 => 0x502,
+0x505 => 0x504,
+0x507 => 0x506,
+0x509 => 0x508,
+0x50B => 0x50A,
+0x50D => 0x50C,
+0x50F => 0x50E,
+0x511 => 0x510,
+0x513 => 0x512,
+0x515 => 0x514,
+0x517 => 0x516,
+0x519 => 0x518,
+0x51B => 0x51A,
+0x51D => 0x51C,
+0x51F => 0x51E,
+0x521 => 0x520,
+0x523 => 0x522,
+0x525 => 0x524,
+0x527 => 0x526,
+0x529 => 0x528,
+0x52B => 0x52A,
+0x52D => 0x52C,
+0x52F => 0x52E,
+0x561 => 0x531,
+0x562 => 0x532,
+0x563 => 0x533,
+0x564 => 0x534,
+0x565 => 0x535,
+0x566 => 0x536,
+0x567 => 0x537,
+0x568 => 0x538,
+0x569 => 0x539,
+0x56A => 0x53A,
+0x56B => 0x53B,
+0x56C => 0x53C,
+0x56D => 0x53D,
+0x56E => 0x53E,
+0x56F => 0x53F,
+0x570 => 0x540,
+0x571 => 0x541,
+0x572 => 0x542,
+0x573 => 0x543,
+0x574 => 0x544,
+0x575 => 0x545,
+0x576 => 0x546,
+0x577 => 0x547,
+0x578 => 0x548,
+0x579 => 0x549,
+0x57A => 0x54A,
+0x57B => 0x54B,
+0x57C => 0x54C,
+0x57D => 0x54D,
+0x57E => 0x54E,
+0x57F => 0x54F,
+0x580 => 0x550,
+0x581 => 0x551,
+0x582 => 0x552,
+0x583 => 0x553,
+0x584 => 0x554,
+0x585 => 0x555,
+0x586 => 0x556,
+0x10D0 => 0x1C90,
+0x10D1 => 0x1C91,
+0x10D2 => 0x1C92,
+0x10D3 => 0x1C93,
+0x10D4 => 0x1C94,
+0x10D5 => 0x1C95,
+0x10D6 => 0x1C96,
+0x10D7 => 0x1C97,
+0x10D8 => 0x1C98,
+0x10D9 => 0x1C99,
+0x10DA => 0x1C9A,
+0x10DB => 0x1C9B,
+0x10DC => 0x1C9C,
+0x10DD => 0x1C9D,
+0x10DE => 0x1C9E,
+0x10DF => 0x1C9F,
+0x10E0 => 0x1CA0,
+0x10E1 => 0x1CA1,
+0x10E2 => 0x1CA2,
+0x10E3 => 0x1CA3,
+0x10E4 => 0x1CA4,
+0x10E5 => 0x1CA5,
+0x10E6 => 0x1CA6,
+0x10E7 => 0x1CA7,
+0x10E8 => 0x1CA8,
+0x10E9 => 0x1CA9,
+0x10EA => 0x1CAA,
+0x10EB => 0x1CAB,
+0x10EC => 0x1CAC,
+0x10ED => 0x1CAD,
+0x10EE => 0x1CAE,
+0x10EF => 0x1CAF,
+0x10F0 => 0x1CB0,
+0x10F1 => 0x1CB1,
+0x10F2 => 0x1CB2,
+0x10F3 => 0x1CB3,
+0x10F4 => 0x1CB4,
+0x10F5 => 0x1CB5,
+0x10F6 => 0x1CB6,
+0x10F7 => 0x1CB7,
+0x10F8 => 0x1CB8,
+0x10F9 => 0x1CB9,
+0x10FA => 0x1CBA,
+0x10FD => 0x1CBD,
+0x10FE => 0x1CBE,
+0x10FF => 0x1CBF,
+0x13F8 => 0x13F0,
+0x13F9 => 0x13F1,
+0x13FA => 0x13F2,
+0x13FB => 0x13F3,
+0x13FC => 0x13F4,
+0x13FD => 0x13F5,
+0x1C80 => 0x412,
+0x1C81 => 0x414,
+0x1C82 => 0x41E,
+0x1C83 => 0x421,
+0x1C84 => 0x422,
+0x1C85 => 0x422,
+0x1C86 => 0x42A,
+0x1C87 => 0x462,
+0x1C88 => 0xA64A,
+0x1D79 => 0xA77D,
+0x1D7D => 0x2C63,
+0x1D8E => 0xA7C6,
+0x1E01 => 0x1E00,
+0x1E03 => 0x1E02,
+0x1E05 => 0x1E04,
+0x1E07 => 0x1E06,
+0x1E09 => 0x1E08,
+0x1E0B => 0x1E0A,
+0x1E0D => 0x1E0C,
+0x1E0F => 0x1E0E,
+0x1E11 => 0x1E10,
+0x1E13 => 0x1E12,
+0x1E15 => 0x1E14,
+0x1E17 => 0x1E16,
+0x1E19 => 0x1E18,
+0x1E1B => 0x1E1A,
+0x1E1D => 0x1E1C,
+0x1E1F => 0x1E1E,
+0x1E21 => 0x1E20,
+0x1E23 => 0x1E22,
+0x1E25 => 0x1E24,
+0x1E27 => 0x1E26,
+0x1E29 => 0x1E28,
+0x1E2B => 0x1E2A,
+0x1E2D => 0x1E2C,
+0x1E2F => 0x1E2E,
+0x1E31 => 0x1E30,
+0x1E33 => 0x1E32,
+0x1E35 => 0x1E34,
+0x1E37 => 0x1E36,
+0x1E39 => 0x1E38,
+0x1E3B => 0x1E3A,
+0x1E3D => 0x1E3C,
+0x1E3F => 0x1E3E,
+0x1E41 => 0x1E40,
+0x1E43 => 0x1E42,
+0x1E45 => 0x1E44,
+0x1E47 => 0x1E46,
+0x1E49 => 0x1E48,
+0x1E4B => 0x1E4A,
+0x1E4D => 0x1E4C,
+0x1E4F => 0x1E4E,
+0x1E51 => 0x1E50,
+0x1E53 => 0x1E52,
+0x1E55 => 0x1E54,
+0x1E57 => 0x1E56,
+0x1E59 => 0x1E58,
+0x1E5B => 0x1E5A,
+0x1E5D => 0x1E5C,
+0x1E5F => 0x1E5E,
+0x1E61 => 0x1E60,
+0x1E63 => 0x1E62,
+0x1E65 => 0x1E64,
+0x1E67 => 0x1E66,
+0x1E69 => 0x1E68,
+0x1E6B => 0x1E6A,
+0x1E6D => 0x1E6C,
+0x1E6F => 0x1E6E,
+0x1E71 => 0x1E70,
+0x1E73 => 0x1E72,
+0x1E75 => 0x1E74,
+0x1E77 => 0x1E76,
+0x1E79 => 0x1E78,
+0x1E7B => 0x1E7A,
+0x1E7D => 0x1E7C,
+0x1E7F => 0x1E7E,
+0x1E81 => 0x1E80,
+0x1E83 => 0x1E82,
+0x1E85 => 0x1E84,
+0x1E87 => 0x1E86,
+0x1E89 => 0x1E88,
+0x1E8B => 0x1E8A,
+0x1E8D => 0x1E8C,
+0x1E8F => 0x1E8E,
+0x1E91 => 0x1E90,
+0x1E93 => 0x1E92,
+0x1E95 => 0x1E94,
+0x1E9B => 0x1E60,
+0x1EA1 => 0x1EA0,
+0x1EA3 => 0x1EA2,
+0x1EA5 => 0x1EA4,
+0x1EA7 => 0x1EA6,
+0x1EA9 => 0x1EA8,
+0x1EAB => 0x1EAA,
+0x1EAD => 0x1EAC,
+0x1EAF => 0x1EAE,
+0x1EB1 => 0x1EB0,
+0x1EB3 => 0x1EB2,
+0x1EB5 => 0x1EB4,
+0x1EB7 => 0x1EB6,
+0x1EB9 => 0x1EB8,
+0x1EBB => 0x1EBA,
+0x1EBD => 0x1EBC,
+0x1EBF => 0x1EBE,
+0x1EC1 => 0x1EC0,
+0x1EC3 => 0x1EC2,
+0x1EC5 => 0x1EC4,
+0x1EC7 => 0x1EC6,
+0x1EC9 => 0x1EC8,
+0x1ECB => 0x1ECA,
+0x1ECD => 0x1ECC,
+0x1ECF => 0x1ECE,
+0x1ED1 => 0x1ED0,
+0x1ED3 => 0x1ED2,
+0x1ED5 => 0x1ED4,
+0x1ED7 => 0x1ED6,
+0x1ED9 => 0x1ED8,
+0x1EDB => 0x1EDA,
+0x1EDD => 0x1EDC,
+0x1EDF => 0x1EDE,
+0x1EE1 => 0x1EE0,
+0x1EE3 => 0x1EE2,
+0x1EE5 => 0x1EE4,
+0x1EE7 => 0x1EE6,
+0x1EE9 => 0x1EE8,
+0x1EEB => 0x1EEA,
+0x1EED => 0x1EEC,
+0x1EEF => 0x1EEE,
+0x1EF1 => 0x1EF0,
+0x1EF3 => 0x1EF2,
+0x1EF5 => 0x1EF4,
+0x1EF7 => 0x1EF6,
+0x1EF9 => 0x1EF8,
+0x1EFB => 0x1EFA,
+0x1EFD => 0x1EFC,
+0x1EFF => 0x1EFE,
+0x1F00 => 0x1F08,
+0x1F01 => 0x1F09,
+0x1F02 => 0x1F0A,
+0x1F03 => 0x1F0B,
+0x1F04 => 0x1F0C,
+0x1F05 => 0x1F0D,
+0x1F06 => 0x1F0E,
+0x1F07 => 0x1F0F,
+0x1F10 => 0x1F18,
+0x1F11 => 0x1F19,
+0x1F12 => 0x1F1A,
+0x1F13 => 0x1F1B,
+0x1F14 => 0x1F1C,
+0x1F15 => 0x1F1D,
+0x1F20 => 0x1F28,
+0x1F21 => 0x1F29,
+0x1F22 => 0x1F2A,
+0x1F23 => 0x1F2B,
+0x1F24 => 0x1F2C,
+0x1F25 => 0x1F2D,
+0x1F26 => 0x1F2E,
+0x1F27 => 0x1F2F,
+0x1F30 => 0x1F38,
+0x1F31 => 0x1F39,
+0x1F32 => 0x1F3A,
+0x1F33 => 0x1F3B,
+0x1F34 => 0x1F3C,
+0x1F35 => 0x1F3D,
+0x1F36 => 0x1F3E,
+0x1F37 => 0x1F3F,
+0x1F40 => 0x1F48,
+0x1F41 => 0x1F49,
+0x1F42 => 0x1F4A,
+0x1F43 => 0x1F4B,
+0x1F44 => 0x1F4C,
+0x1F45 => 0x1F4D,
+0x1F51 => 0x1F59,
+0x1F53 => 0x1F5B,
+0x1F55 => 0x1F5D,
+0x1F57 => 0x1F5F,
+0x1F60 => 0x1F68,
+0x1F61 => 0x1F69,
+0x1F62 => 0x1F6A,
+0x1F63 => 0x1F6B,
+0x1F64 => 0x1F6C,
+0x1F65 => 0x1F6D,
+0x1F66 => 0x1F6E,
+0x1F67 => 0x1F6F,
+0x1F70 => 0x1FBA,
+0x1F71 => 0x1FBB,
+0x1F72 => 0x1FC8,
+0x1F73 => 0x1FC9,
+0x1F74 => 0x1FCA,
+0x1F75 => 0x1FCB,
+0x1F76 => 0x1FDA,
+0x1F77 => 0x1FDB,
+0x1F78 => 0x1FF8,
+0x1F79 => 0x1FF9,
+0x1F7A => 0x1FEA,
+0x1F7B => 0x1FEB,
+0x1F7C => 0x1FFA,
+0x1F7D => 0x1FFB,
+0x1F80 => 0x1F88,
+0x1F81 => 0x1F89,
+0x1F82 => 0x1F8A,
+0x1F83 => 0x1F8B,
+0x1F84 => 0x1F8C,
+0x1F85 => 0x1F8D,
+0x1F86 => 0x1F8E,
+0x1F87 => 0x1F8F,
+0x1F90 => 0x1F98,
+0x1F91 => 0x1F99,
+0x1F92 => 0x1F9A,
+0x1F93 => 0x1F9B,
+0x1F94 => 0x1F9C,
+0x1F95 => 0x1F9D,
+0x1F96 => 0x1F9E,
+0x1F97 => 0x1F9F,
+0x1FA0 => 0x1FA8,
+0x1FA1 => 0x1FA9,
+0x1FA2 => 0x1FAA,
+0x1FA3 => 0x1FAB,
+0x1FA4 => 0x1FAC,
+0x1FA5 => 0x1FAD,
+0x1FA6 => 0x1FAE,
+0x1FA7 => 0x1FAF,
+0x1FB0 => 0x1FB8,
+0x1FB1 => 0x1FB9,
+0x1FB3 => 0x1FBC,
+0x1FBE => 0x399,
+0x1FC3 => 0x1FCC,
+0x1FD0 => 0x1FD8,
+0x1FD1 => 0x1FD9,
+0x1FE0 => 0x1FE8,
+0x1FE1 => 0x1FE9,
+0x1FE5 => 0x1FEC,
+0x1FF3 => 0x1FFC,
+0x214E => 0x2132,
+0x2170 => 0x2160,
+0x2171 => 0x2161,
+0x2172 => 0x2162,
+0x2173 => 0x2163,
+0x2174 => 0x2164,
+0x2175 => 0x2165,
+0x2176 => 0x2166,
+0x2177 => 0x2167,
+0x2178 => 0x2168,
+0x2179 => 0x2169,
+0x217A => 0x216A,
+0x217B => 0x216B,
+0x217C => 0x216C,
+0x217D => 0x216D,
+0x217E => 0x216E,
+0x217F => 0x216F,
+0x2184 => 0x2183,
+0x24D0 => 0x24B6,
+0x24D1 => 0x24B7,
+0x24D2 => 0x24B8,
+0x24D3 => 0x24B9,
+0x24D4 => 0x24BA,
+0x24D5 => 0x24BB,
+0x24D6 => 0x24BC,
+0x24D7 => 0x24BD,
+0x24D8 => 0x24BE,
+0x24D9 => 0x24BF,
+0x24DA => 0x24C0,
+0x24DB => 0x24C1,
+0x24DC => 0x24C2,
+0x24DD => 0x24C3,
+0x24DE => 0x24C4,
+0x24DF => 0x24C5,
+0x24E0 => 0x24C6,
+0x24E1 => 0x24C7,
+0x24E2 => 0x24C8,
+0x24E3 => 0x24C9,
+0x24E4 => 0x24CA,
+0x24E5 => 0x24CB,
+0x24E6 => 0x24CC,
+0x24E7 => 0x24CD,
+0x24E8 => 0x24CE,
+0x24E9 => 0x24CF,
+0x2C30 => 0x2C00,
+0x2C31 => 0x2C01,
+0x2C32 => 0x2C02,
+0x2C33 => 0x2C03,
+0x2C34 => 0x2C04,
+0x2C35 => 0x2C05,
+0x2C36 => 0x2C06,
+0x2C37 => 0x2C07,
+0x2C38 => 0x2C08,
+0x2C39 => 0x2C09,
+0x2C3A => 0x2C0A,
+0x2C3B => 0x2C0B,
+0x2C3C => 0x2C0C,
+0x2C3D => 0x2C0D,
+0x2C3E => 0x2C0E,
+0x2C3F => 0x2C0F,
+0x2C40 => 0x2C10,
+0x2C41 => 0x2C11,
+0x2C42 => 0x2C12,
+0x2C43 => 0x2C13,
+0x2C44 => 0x2C14,
+0x2C45 => 0x2C15,
+0x2C46 => 0x2C16,
+0x2C47 => 0x2C17,
+0x2C48 => 0x2C18,
+0x2C49 => 0x2C19,
+0x2C4A => 0x2C1A,
+0x2C4B => 0x2C1B,
+0x2C4C => 0x2C1C,
+0x2C4D => 0x2C1D,
+0x2C4E => 0x2C1E,
+0x2C4F => 0x2C1F,
+0x2C50 => 0x2C20,
+0x2C51 => 0x2C21,
+0x2C52 => 0x2C22,
+0x2C53 => 0x2C23,
+0x2C54 => 0x2C24,
+0x2C55 => 0x2C25,
+0x2C56 => 0x2C26,
+0x2C57 => 0x2C27,
+0x2C58 => 0x2C28,
+0x2C59 => 0x2C29,
+0x2C5A => 0x2C2A,
+0x2C5B => 0x2C2B,
+0x2C5C => 0x2C2C,
+0x2C5D => 0x2C2D,
+0x2C5E => 0x2C2E,
+0x2C61 => 0x2C60,
+0x2C65 => 0x23A,
+0x2C66 => 0x23E,
+0x2C68 => 0x2C67,
+0x2C6A => 0x2C69,
+0x2C6C => 0x2C6B,
+0x2C73 => 0x2C72,
+0x2C76 => 0x2C75,
+0x2C81 => 0x2C80,
+0x2C83 => 0x2C82,
+0x2C85 => 0x2C84,
+0x2C87 => 0x2C86,
+0x2C89 => 0x2C88,
+0x2C8B => 0x2C8A,
+0x2C8D => 0x2C8C,
+0x2C8F => 0x2C8E,
+0x2C91 => 0x2C90,
+0x2C93 => 0x2C92,
+0x2C95 => 0x2C94,
+0x2C97 => 0x2C96,
+0x2C99 => 0x2C98,
+0x2C9B => 0x2C9A,
+0x2C9D => 0x2C9C,
+0x2C9F => 0x2C9E,
+0x2CA1 => 0x2CA0,
+0x2CA3 => 0x2CA2,
+0x2CA5 => 0x2CA4,
+0x2CA7 => 0x2CA6,
+0x2CA9 => 0x2CA8,
+0x2CAB => 0x2CAA,
+0x2CAD => 0x2CAC,
+0x2CAF => 0x2CAE,
+0x2CB1 => 0x2CB0,
+0x2CB3 => 0x2CB2,
+0x2CB5 => 0x2CB4,
+0x2CB7 => 0x2CB6,
+0x2CB9 => 0x2CB8,
+0x2CBB => 0x2CBA,
+0x2CBD => 0x2CBC,
+0x2CBF => 0x2CBE,
+0x2CC1 => 0x2CC0,
+0x2CC3 => 0x2CC2,
+0x2CC5 => 0x2CC4,
+0x2CC7 => 0x2CC6,
+0x2CC9 => 0x2CC8,
+0x2CCB => 0x2CCA,
+0x2CCD => 0x2CCC,
+0x2CCF => 0x2CCE,
+0x2CD1 => 0x2CD0,
+0x2CD3 => 0x2CD2,
+0x2CD5 => 0x2CD4,
+0x2CD7 => 0x2CD6,
+0x2CD9 => 0x2CD8,
+0x2CDB => 0x2CDA,
+0x2CDD => 0x2CDC,
+0x2CDF => 0x2CDE,
+0x2CE1 => 0x2CE0,
+0x2CE3 => 0x2CE2,
+0x2CEC => 0x2CEB,
+0x2CEE => 0x2CED,
+0x2CF3 => 0x2CF2,
+0x2D00 => 0x10A0,
+0x2D01 => 0x10A1,
+0x2D02 => 0x10A2,
+0x2D03 => 0x10A3,
+0x2D04 => 0x10A4,
+0x2D05 => 0x10A5,
+0x2D06 => 0x10A6,
+0x2D07 => 0x10A7,
+0x2D08 => 0x10A8,
+0x2D09 => 0x10A9,
+0x2D0A => 0x10AA,
+0x2D0B => 0x10AB,
+0x2D0C => 0x10AC,
+0x2D0D => 0x10AD,
+0x2D0E => 0x10AE,
+0x2D0F => 0x10AF,
+0x2D10 => 0x10B0,
+0x2D11 => 0x10B1,
+0x2D12 => 0x10B2,
+0x2D13 => 0x10B3,
+0x2D14 => 0x10B4,
+0x2D15 => 0x10B5,
+0x2D16 => 0x10B6,
+0x2D17 => 0x10B7,
+0x2D18 => 0x10B8,
+0x2D19 => 0x10B9,
+0x2D1A => 0x10BA,
+0x2D1B => 0x10BB,
+0x2D1C => 0x10BC,
+0x2D1D => 0x10BD,
+0x2D1E => 0x10BE,
+0x2D1F => 0x10BF,
+0x2D20 => 0x10C0,
+0x2D21 => 0x10C1,
+0x2D22 => 0x10C2,
+0x2D23 => 0x10C3,
+0x2D24 => 0x10C4,
+0x2D25 => 0x10C5,
+0x2D27 => 0x10C7,
+0x2D2D => 0x10CD,
+0xA641 => 0xA640,
+0xA643 => 0xA642,
+0xA645 => 0xA644,
+0xA647 => 0xA646,
+0xA649 => 0xA648,
+0xA64B => 0xA64A,
+0xA64D => 0xA64C,
+0xA64F => 0xA64E,
+0xA651 => 0xA650,
+0xA653 => 0xA652,
+0xA655 => 0xA654,
+0xA657 => 0xA656,
+0xA659 => 0xA658,
+0xA65B => 0xA65A,
+0xA65D => 0xA65C,
+0xA65F => 0xA65E,
+0xA661 => 0xA660,
+0xA663 => 0xA662,
+0xA665 => 0xA664,
+0xA667 => 0xA666,
+0xA669 => 0xA668,
+0xA66B => 0xA66A,
+0xA66D => 0xA66C,
+0xA681 => 0xA680,
+0xA683 => 0xA682,
+0xA685 => 0xA684,
+0xA687 => 0xA686,
+0xA689 => 0xA688,
+0xA68B => 0xA68A,
+0xA68D => 0xA68C,
+0xA68F => 0xA68E,
+0xA691 => 0xA690,
+0xA693 => 0xA692,
+0xA695 => 0xA694,
+0xA697 => 0xA696,
+0xA699 => 0xA698,
+0xA69B => 0xA69A,
+0xA723 => 0xA722,
+0xA725 => 0xA724,
+0xA727 => 0xA726,
+0xA729 => 0xA728,
+0xA72B => 0xA72A,
+0xA72D => 0xA72C,
+0xA72F => 0xA72E,
+0xA733 => 0xA732,
+0xA735 => 0xA734,
+0xA737 => 0xA736,
+0xA739 => 0xA738,
+0xA73B => 0xA73A,
+0xA73D => 0xA73C,
+0xA73F => 0xA73E,
+0xA741 => 0xA740,
+0xA743 => 0xA742,
+0xA745 => 0xA744,
+0xA747 => 0xA746,
+0xA749 => 0xA748,
+0xA74B => 0xA74A,
+0xA74D => 0xA74C,
+0xA74F => 0xA74E,
+0xA751 => 0xA750,
+0xA753 => 0xA752,
+0xA755 => 0xA754,
+0xA757 => 0xA756,
+0xA759 => 0xA758,
+0xA75B => 0xA75A,
+0xA75D => 0xA75C,
+0xA75F => 0xA75E,
+0xA761 => 0xA760,
+0xA763 => 0xA762,
+0xA765 => 0xA764,
+0xA767 => 0xA766,
+0xA769 => 0xA768,
+0xA76B => 0xA76A,
+0xA76D => 0xA76C,
+0xA76F => 0xA76E,
+0xA77A => 0xA779,
+0xA77C => 0xA77B,
+0xA77F => 0xA77E,
+0xA781 => 0xA780,
+0xA783 => 0xA782,
+0xA785 => 0xA784,
+0xA787 => 0xA786,
+0xA78C => 0xA78B,
+0xA791 => 0xA790,
+0xA793 => 0xA792,
+0xA794 => 0xA7C4,
+0xA797 => 0xA796,
+0xA799 => 0xA798,
+0xA79B => 0xA79A,
+0xA79D => 0xA79C,
+0xA79F => 0xA79E,
+0xA7A1 => 0xA7A0,
+0xA7A3 => 0xA7A2,
+0xA7A5 => 0xA7A4,
+0xA7A7 => 0xA7A6,
+0xA7A9 => 0xA7A8,
+0xA7B5 => 0xA7B4,
+0xA7B7 => 0xA7B6,
+0xA7B9 => 0xA7B8,
+0xA7BB => 0xA7BA,
+0xA7BD => 0xA7BC,
+0xA7BF => 0xA7BE,
+0xA7C3 => 0xA7C2,
+0xA7C8 => 0xA7C7,
+0xA7CA => 0xA7C9,
+0xA7F6 => 0xA7F5,
+0xAB53 => 0xA7B3,
+0xAB70 => 0x13A0,
+0xAB71 => 0x13A1,
+0xAB72 => 0x13A2,
+0xAB73 => 0x13A3,
+0xAB74 => 0x13A4,
+0xAB75 => 0x13A5,
+0xAB76 => 0x13A6,
+0xAB77 => 0x13A7,
+0xAB78 => 0x13A8,
+0xAB79 => 0x13A9,
+0xAB7A => 0x13AA,
+0xAB7B => 0x13AB,
+0xAB7C => 0x13AC,
+0xAB7D => 0x13AD,
+0xAB7E => 0x13AE,
+0xAB7F => 0x13AF,
+0xAB80 => 0x13B0,
+0xAB81 => 0x13B1,
+0xAB82 => 0x13B2,
+0xAB83 => 0x13B3,
+0xAB84 => 0x13B4,
+0xAB85 => 0x13B5,
+0xAB86 => 0x13B6,
+0xAB87 => 0x13B7,
+0xAB88 => 0x13B8,
+0xAB89 => 0x13B9,
+0xAB8A => 0x13BA,
+0xAB8B => 0x13BB,
+0xAB8C => 0x13BC,
+0xAB8D => 0x13BD,
+0xAB8E => 0x13BE,
+0xAB8F => 0x13BF,
+0xAB90 => 0x13C0,
+0xAB91 => 0x13C1,
+0xAB92 => 0x13C2,
+0xAB93 => 0x13C3,
+0xAB94 => 0x13C4,
+0xAB95 => 0x13C5,
+0xAB96 => 0x13C6,
+0xAB97 => 0x13C7,
+0xAB98 => 0x13C8,
+0xAB99 => 0x13C9,
+0xAB9A => 0x13CA,
+0xAB9B => 0x13CB,
+0xAB9C => 0x13CC,
+0xAB9D => 0x13CD,
+0xAB9E => 0x13CE,
+0xAB9F => 0x13CF,
+0xABA0 => 0x13D0,
+0xABA1 => 0x13D1,
+0xABA2 => 0x13D2,
+0xABA3 => 0x13D3,
+0xABA4 => 0x13D4,
+0xABA5 => 0x13D5,
+0xABA6 => 0x13D6,
+0xABA7 => 0x13D7,
+0xABA8 => 0x13D8,
+0xABA9 => 0x13D9,
+0xABAA => 0x13DA,
+0xABAB => 0x13DB,
+0xABAC => 0x13DC,
+0xABAD => 0x13DD,
+0xABAE => 0x13DE,
+0xABAF => 0x13DF,
+0xABB0 => 0x13E0,
+0xABB1 => 0x13E1,
+0xABB2 => 0x13E2,
+0xABB3 => 0x13E3,
+0xABB4 => 0x13E4,
+0xABB5 => 0x13E5,
+0xABB6 => 0x13E6,
+0xABB7 => 0x13E7,
+0xABB8 => 0x13E8,
+0xABB9 => 0x13E9,
+0xABBA => 0x13EA,
+0xABBB => 0x13EB,
+0xABBC => 0x13EC,
+0xABBD => 0x13ED,
+0xABBE => 0x13EE,
+0xABBF => 0x13EF,
+0xFF41 => 0xFF21,
+0xFF42 => 0xFF22,
+0xFF43 => 0xFF23,
+0xFF44 => 0xFF24,
+0xFF45 => 0xFF25,
+0xFF46 => 0xFF26,
+0xFF47 => 0xFF27,
+0xFF48 => 0xFF28,
+0xFF49 => 0xFF29,
+0xFF4A => 0xFF2A,
+0xFF4B => 0xFF2B,
+0xFF4C => 0xFF2C,
+0xFF4D => 0xFF2D,
+0xFF4E => 0xFF2E,
+0xFF4F => 0xFF2F,
+0xFF50 => 0xFF30,
+0xFF51 => 0xFF31,
+0xFF52 => 0xFF32,
+0xFF53 => 0xFF33,
+0xFF54 => 0xFF34,
+0xFF55 => 0xFF35,
+0xFF56 => 0xFF36,
+0xFF57 => 0xFF37,
+0xFF58 => 0xFF38,
+0xFF59 => 0xFF39,
+0xFF5A => 0xFF3A,
+0x10428 => 0x10400,
+0x10429 => 0x10401,
+0x1042A => 0x10402,
+0x1042B => 0x10403,
+0x1042C => 0x10404,
+0x1042D => 0x10405,
+0x1042E => 0x10406,
+0x1042F => 0x10407,
+0x10430 => 0x10408,
+0x10431 => 0x10409,
+0x10432 => 0x1040A,
+0x10433 => 0x1040B,
+0x10434 => 0x1040C,
+0x10435 => 0x1040D,
+0x10436 => 0x1040E,
+0x10437 => 0x1040F,
+0x10438 => 0x10410,
+0x10439 => 0x10411,
+0x1043A => 0x10412,
+0x1043B => 0x10413,
+0x1043C => 0x10414,
+0x1043D => 0x10415,
+0x1043E => 0x10416,
+0x1043F => 0x10417,
+0x10440 => 0x10418,
+0x10441 => 0x10419,
+0x10442 => 0x1041A,
+0x10443 => 0x1041B,
+0x10444 => 0x1041C,
+0x10445 => 0x1041D,
+0x10446 => 0x1041E,
+0x10447 => 0x1041F,
+0x10448 => 0x10420,
+0x10449 => 0x10421,
+0x1044A => 0x10422,
+0x1044B => 0x10423,
+0x1044C => 0x10424,
+0x1044D => 0x10425,
+0x1044E => 0x10426,
+0x1044F => 0x10427,
+0x104D8 => 0x104B0,
+0x104D9 => 0x104B1,
+0x104DA => 0x104B2,
+0x104DB => 0x104B3,
+0x104DC => 0x104B4,
+0x104DD => 0x104B5,
+0x104DE => 0x104B6,
+0x104DF => 0x104B7,
+0x104E0 => 0x104B8,
+0x104E1 => 0x104B9,
+0x104E2 => 0x104BA,
+0x104E3 => 0x104BB,
+0x104E4 => 0x104BC,
+0x104E5 => 0x104BD,
+0x104E6 => 0x104BE,
+0x104E7 => 0x104BF,
+0x104E8 => 0x104C0,
+0x104E9 => 0x104C1,
+0x104EA => 0x104C2,
+0x104EB => 0x104C3,
+0x104EC => 0x104C4,
+0x104ED => 0x104C5,
+0x104EE => 0x104C6,
+0x104EF => 0x104C7,
+0x104F0 => 0x104C8,
+0x104F1 => 0x104C9,
+0x104F2 => 0x104CA,
+0x104F3 => 0x104CB,
+0x104F4 => 0x104CC,
+0x104F5 => 0x104CD,
+0x104F6 => 0x104CE,
+0x104F7 => 0x104CF,
+0x104F8 => 0x104D0,
+0x104F9 => 0x104D1,
+0x104FA => 0x104D2,
+0x104FB => 0x104D3,
+0x10CC0 => 0x10C80,
+0x10CC1 => 0x10C81,
+0x10CC2 => 0x10C82,
+0x10CC3 => 0x10C83,
+0x10CC4 => 0x10C84,
+0x10CC5 => 0x10C85,
+0x10CC6 => 0x10C86,
+0x10CC7 => 0x10C87,
+0x10CC8 => 0x10C88,
+0x10CC9 => 0x10C89,
+0x10CCA => 0x10C8A,
+0x10CCB => 0x10C8B,
+0x10CCC => 0x10C8C,
+0x10CCD => 0x10C8D,
+0x10CCE => 0x10C8E,
+0x10CCF => 0x10C8F,
+0x10CD0 => 0x10C90,
+0x10CD1 => 0x10C91,
+0x10CD2 => 0x10C92,
+0x10CD3 => 0x10C93,
+0x10CD4 => 0x10C94,
+0x10CD5 => 0x10C95,
+0x10CD6 => 0x10C96,
+0x10CD7 => 0x10C97,
+0x10CD8 => 0x10C98,
+0x10CD9 => 0x10C99,
+0x10CDA => 0x10C9A,
+0x10CDB => 0x10C9B,
+0x10CDC => 0x10C9C,
+0x10CDD => 0x10C9D,
+0x10CDE => 0x10C9E,
+0x10CDF => 0x10C9F,
+0x10CE0 => 0x10CA0,
+0x10CE1 => 0x10CA1,
+0x10CE2 => 0x10CA2,
+0x10CE3 => 0x10CA3,
+0x10CE4 => 0x10CA4,
+0x10CE5 => 0x10CA5,
+0x10CE6 => 0x10CA6,
+0x10CE7 => 0x10CA7,
+0x10CE8 => 0x10CA8,
+0x10CE9 => 0x10CA9,
+0x10CEA => 0x10CAA,
+0x10CEB => 0x10CAB,
+0x10CEC => 0x10CAC,
+0x10CED => 0x10CAD,
+0x10CEE => 0x10CAE,
+0x10CEF => 0x10CAF,
+0x10CF0 => 0x10CB0,
+0x10CF1 => 0x10CB1,
+0x10CF2 => 0x10CB2,
+0x118C0 => 0x118A0,
+0x118C1 => 0x118A1,
+0x118C2 => 0x118A2,
+0x118C3 => 0x118A3,
+0x118C4 => 0x118A4,
+0x118C5 => 0x118A5,
+0x118C6 => 0x118A6,
+0x118C7 => 0x118A7,
+0x118C8 => 0x118A8,
+0x118C9 => 0x118A9,
+0x118CA => 0x118AA,
+0x118CB => 0x118AB,
+0x118CC => 0x118AC,
+0x118CD => 0x118AD,
+0x118CE => 0x118AE,
+0x118CF => 0x118AF,
+0x118D0 => 0x118B0,
+0x118D1 => 0x118B1,
+0x118D2 => 0x118B2,
+0x118D3 => 0x118B3,
+0x118D4 => 0x118B4,
+0x118D5 => 0x118B5,
+0x118D6 => 0x118B6,
+0x118D7 => 0x118B7,
+0x118D8 => 0x118B8,
+0x118D9 => 0x118B9,
+0x118DA => 0x118BA,
+0x118DB => 0x118BB,
+0x118DC => 0x118BC,
+0x118DD => 0x118BD,
+0x118DE => 0x118BE,
+0x118DF => 0x118BF,
+0x16E60 => 0x16E40,
+0x16E61 => 0x16E41,
+0x16E62 => 0x16E42,
+0x16E63 => 0x16E43,
+0x16E64 => 0x16E44,
+0x16E65 => 0x16E45,
+0x16E66 => 0x16E46,
+0x16E67 => 0x16E47,
+0x16E68 => 0x16E48,
+0x16E69 => 0x16E49,
+0x16E6A => 0x16E4A,
+0x16E6B => 0x16E4B,
+0x16E6C => 0x16E4C,
+0x16E6D => 0x16E4D,
+0x16E6E => 0x16E4E,
+0x16E6F => 0x16E4F,
+0x16E70 => 0x16E50,
+0x16E71 => 0x16E51,
+0x16E72 => 0x16E52,
+0x16E73 => 0x16E53,
+0x16E74 => 0x16E54,
+0x16E75 => 0x16E55,
+0x16E76 => 0x16E56,
+0x16E77 => 0x16E57,
+0x16E78 => 0x16E58,
+0x16E79 => 0x16E59,
+0x16E7A => 0x16E5A,
+0x16E7B => 0x16E5B,
+0x16E7C => 0x16E5C,
+0x16E7D => 0x16E5D,
+0x16E7E => 0x16E5E,
+0x16E7F => 0x16E5F,
+0x1E922 => 0x1E900,
+0x1E923 => 0x1E901,
+0x1E924 => 0x1E902,
+0x1E925 => 0x1E903,
+0x1E926 => 0x1E904,
+0x1E927 => 0x1E905,
+0x1E928 => 0x1E906,
+0x1E929 => 0x1E907,
+0x1E92A => 0x1E908,
+0x1E92B => 0x1E909,
+0x1E92C => 0x1E90A,
+0x1E92D => 0x1E90B,
+0x1E92E => 0x1E90C,
+0x1E92F => 0x1E90D,
+0x1E930 => 0x1E90E,
+0x1E931 => 0x1E90F,
+0x1E932 => 0x1E910,
+0x1E933 => 0x1E911,
+0x1E934 => 0x1E912,
+0x1E935 => 0x1E913,
+0x1E936 => 0x1E914,
+0x1E937 => 0x1E915,
+0x1E938 => 0x1E916,
+0x1E939 => 0x1E917,
+0x1E93A => 0x1E918,
+0x1E93B => 0x1E919,
+0x1E93C => 0x1E91A,
+0x1E93D => 0x1E91B,
+0x1E93E => 0x1E91C,
+0x1E93F => 0x1E91D,
+0x1E940 => 0x1E91E,
+0x1E941 => 0x1E91F,
+0x1E942 => 0x1E920,
+0x1E943 => 0x1E921,
+];
diff --git a/src/Exception/InvalidCodePointException.php b/src/Exception/InvalidCodePointException.php
new file mode 100644
index 0000000..9494adc
--- /dev/null
+++ b/src/Exception/InvalidCodePointException.php
@@ -0,0 +1,46 @@
+codePoint = $codePoint;
+ }
+
+ /**
+ * @return mixed
+ */
+ public function codePoint()
+ {
+ return$this->codePoint;
+ }
+}
diff --git a/src/Exception/InvalidStringException.php b/src/Exception/InvalidStringException.php
new file mode 100644
index 0000000..50b22a1
--- /dev/null
+++ b/src/Exception/InvalidStringException.php
@@ -0,0 +1,61 @@
+string = $string;
+ $this->offset = $offset;
+ }
+
+ /**
+ * @return string
+ */
+ public function string(): string
+ {
+ return $this->string;
+ }
+
+ /**
+ * @return int
+ */
+ public function offset(): int
+ {
+ return $this->offset;
+ }
+}
diff --git a/src/Exception/UnicodeException.php b/src/Exception/UnicodeException.php
new file mode 100644
index 0000000..22e6d2f
--- /dev/null
+++ b/src/Exception/UnicodeException.php
@@ -0,0 +1,25 @@
+codes = $codes;
- $this->chars = $chars;
- $this->length = count($codes);
- }
+ const ASCII_CONV = 4;
/**
- * @param mixed $offset
- * @return bool
+ * @var int[]
*/
- public function offsetExists($offset)
- {
- return isset($this->codes[$offset]);
- }
+ private array $codes;
/**
- * @param mixed $offset
- * @return string
+ * @var string[]|null
*/
- public function offsetGet($offset)
- {
- return $this->chars[$offset];
- }
+ private ?array $chars = null;
+ private int $length;
+ private ?string $str = null;
+ private ?array $cache = null;
/**
- * @param mixed $offset
- * @param mixed $value
- * @throws Exception
+ * @var int[][]
*/
- public function offsetSet($offset, $value)
- {
- throw new Exception("Invalid operation");
- }
+ private static array $maps = [];
/**
- * @param mixed $offset
- * @throws Exception
+ * @param int[] $codes
*/
- public function offsetUnset($offset)
+ private function __construct(array $codes = [])
{
- throw new Exception("Invalid operation");
+ $this->codes = $codes;
+ $this->length = count($codes);
}
/**
- * @return array
+ * @return int[]
*/
- public function chars()
+ public function codePoints(): array
{
- return $this->chars;
+ return $this->codes;
}
/**
- * @return array
+ * @return string[]
*/
- public function codePoints()
+ public function chars(): array
{
- return $this->codes;
+ if ($this->chars === null) {
+ $this->chars = self::getCharsFromCodePoints($this->codes);
+ }
+ return $this->chars;
}
/**
* @return int
*/
- public function length()
+ public function length(): int
{
return $this->length;
}
@@ -120,848 +96,1607 @@ public function length()
/**
* @return bool
*/
- public function isEmpty()
+ public function isEmpty(): bool
{
return $this->length === 0;
}
/**
- * @param string|UnicodeString $text
+ * @param string|self|int[]|string[] $text
* @param bool $ignoreCase
* @return bool
*/
- public function equals($text, $ignoreCase = false)
+ public function equals($text, bool $ignoreCase = false): bool
{
- $text = static::from($text);
-
- if($ignoreCase){
- return $this->toLower()->equals($text->toLower());
- }
-
- return $this->codes === $text->codes;
+ return $this->compareTo($text, $ignoreCase) === 0;
}
/**
- * @param string|UnicodeString $text
+ * @param string|self|int[]|string[] $text
* @param bool $ignoreCase
* @return int
*/
- public function compareTo($text, $ignoreCase = false)
+ public function compareTo($text, bool $ignoreCase = false): int
{
- $text = static::from($text);
+ $mode = $ignoreCase ? self::FOLD_CASE : self::KEEP_CASE;
- if($this->length !== $text->length){
- return $this->length > $text->length ? 1 : -1;
- }
+ $text = self::resolveCodePoints($text, $mode);
- if($ignoreCase){
- return $this->toLower()->compareTo($text->toLower());
- }
+ $length = count($text);
- for($i = 0, $l = $this->length; $i < $l; $i++){
- if($this->codes[$i] !== $text->codes[$i]){
- return $this->codes[$i] > $text->codes[$i] ? 1 : -1;
- }
+ if ($length !== $this->length) {
+ return $this->length <=> $length;
}
- return 0;
+ return $this->getMappedCodes($mode) <=> $text;
}
/**
- * @param string|UnicodeString $text
+ * @param string|self|int[]|string[] $text
* @param bool $ignoreCase
* @return bool
*/
- public function contains($text, $ignoreCase = false)
+ public function contains($text, bool $ignoreCase = false): bool
{
- return $this->indexOf($text, 0, $ignoreCase) !== false;
+ return $this->indexOf($text, 0, $ignoreCase) !== -1;
}
/**
- * @param string|UnicodeString $text
+ * @param string|self|int[]|string[] $text
* @param bool $ignoreCase
* @return bool
*/
- public function startsWith($text, $ignoreCase = false)
+ public function startsWith($text, bool $ignoreCase = false): bool
{
- return $this->indexOf($text, 0, $ignoreCase) === 0;
+ $mode = $ignoreCase ? self::FOLD_CASE : self::KEEP_CASE;
+
+ $text = self::resolveCodePoints($text, $mode);
+
+ $len = count($text);
+
+ if ($len === 0 || $len > $this->length) {
+ return false;
+ }
+
+ return array_slice($this->getMappedCodes($mode), 0, $len) === $text;
}
/**
- * @param string|UnicodeString $text
+ * @param string|self|int[]|string[] $text
* @param bool $ignoreCase
* @return bool
*/
- public function endsWith($text, $ignoreCase = false)
+ public function endsWith($text, bool $ignoreCase = false): bool
{
- $text = static::from($text);
+ $mode = $ignoreCase ? self::FOLD_CASE : self::KEEP_CASE;
+
+ $text = self::resolveCodePoints($text, $mode);
+
+ if (empty($text)) {
+ return false;
+ }
- $offset = $this->length - $text->length;
+ $codes = $this->getMappedCodes($mode);
- if($offset < 0){
+ $offset = $this->length - count($text);
+
+ if ($offset < 0) {
return false;
}
- return $this->indexOf($text, $offset, $ignoreCase) === $offset;
+ return array_slice($codes, $offset) === $text;
}
/**
- * @param string|UnicodeString $text
+ * @param string|self|int[]|string[] $text
* @param int $offset
* @param bool $ignoreCase
- * @return int|false
- * @throws Exception
+ * @return int
*/
- public function indexOf($text, $offset = 0, $ignoreCase = false)
+ public function indexOf($text, int $offset = 0, bool $ignoreCase = false): int
{
- $text = static::from($text);
+ if ($offset < 0) {
+ $offset += $this->length;
+ }
+ if ($offset < 0 || $offset >= $this->length) {
+ return -1;
+ }
- if($this->length < $text->length){
- return false;
+ $mode = $ignoreCase ? self::FOLD_CASE : self::KEEP_CASE;
+
+ $text = self::resolveCodePoints($text, $mode);
+
+ $len = count($text);
+
+ if ($len === 0 || $offset + $len > $this->length) {
+ return -1;
+ }
+
+ return $this->doIndexOf($this->getMappedCodes($mode), $text, $offset);
+ }
+
+ /**
+ * @param string|self|int[]|string[] $text
+ * @param int $offset
+ * @param bool $ignoreCase
+ * @return int
+ */
+ public function lastIndexOf($text, int $offset = 0, bool $ignoreCase = false): int
+ {
+ if ($offset < 0) {
+ $start = $this->length + $offset;
+ if ($start < 0) {
+ return -1;
+ }
+ $last = 0;
+ } else {
+ if ($offset >= $this->length) {
+ return -1;
+ }
+ $start = $this->length - 1;
+ $last = $offset;
}
- if($ignoreCase){
- return $this->toLower()->indexOf($text->toLower(), $offset);
+ $mode = $ignoreCase ? self::FOLD_CASE : self::KEEP_CASE;
+
+ $text = self::resolveCodePoints($text, $mode);
+
+ $len = count($text);
+
+ if ($len === 0) {
+ return -1;
}
- if($offset < 0){
- $offset = 0;
+ if ($offset < 0) {
+ if ($len > $this->length) {
+ return -1;
+ }
+ $start = min($start, $this->length - $len);
+ } elseif ($offset + $len > $this->length) {
+ return -1;
}
- $cp1 = $this->codes;
- $cp2 = $text->codes;
+ $codes = $this->getMappedCodes($mode);
- for($i = $offset, $l = $this->length - $text->length; $i <= $l; $i++){
+ for ($i = $start; $i >= $last; $i--) {
$match = true;
- for($j = 0, $f = $text->length; $j < $f; $j++){
- if($cp1[$i + $j] != $cp2[$j]){
+ for ($j = 0; $j < $len; $j++) {
+ if ($codes[$i + $j] !== $text[$j]) {
$match = false;
break;
}
}
- if($match){
+ if ($match) {
return $i;
}
}
- return false;
+ return -1;
}
/**
- * @param UnicodeString|string $text
+ * @param string|self|int[]|string[] $text
* @param bool $ignoreCase
- * @return false|int
+ * @param bool $allowPrefixOnly If true the result can contain only the prefix
+ * @return $this
*/
- public function lastIndexOf($text, $ignoreCase = false)
+ public function ensurePrefix($text, bool $ignoreCase = false, bool $allowPrefixOnly = true): self
{
- $text = static::from($text);
+ $text = self::resolveCodePoints($text);
- if($this->length < $text->length){
- return false;
+ $len = count($text);
+
+ if ($len === 0) {
+ return clone $this;
+ }
+
+ if ($this->length === 0) {
+ return new static($text);
+ }
+
+ if ($ignoreCase) {
+ $prefix = self::getMappedCodePoints($text, self::FOLD_CASE);
+ } else {
+ $prefix = &$text;
}
- if($ignoreCase){
- return $this->toLower()->lastIndexOf($text->toLower());
+ if ($this->length === $len) {
+ $part = $this->getMappedCodes($ignoreCase ? self::FOLD_CASE : self::KEEP_CASE);
+ if ($allowPrefixOnly && $part === $prefix) {
+ return clone $this;
+ }
+ // Remove last element to avoid double check
+ array_pop($part);
+ } elseif ($this->length < $len) {
+ $part = $this->getMappedCodes($ignoreCase ? self::FOLD_CASE : self::KEEP_CASE);
+ // Checks if this can be a suffix
+ if ($allowPrefixOnly && (array_slice($prefix, 0, $this->length) === $part)) {
+ $text = array_slice($text, $this->length);
+ return new static(array_merge($this->codes, $text));
+ }
+ } else {
+ $part = array_slice($this->codes, 0, $len);
+ if ($ignoreCase) {
+ $part = self::getMappedCodePoints($part, self::FOLD_CASE);
+ }
+ if ($part === $prefix) {
+ return clone $this;
+ }
+ // Remove last element to avoid double check
+ array_pop($part);
}
- $index = false;
- $offset = 0;
+ $copy = $len;
+
+ $part_len = count($part);
- while(true){
- if(false === $offset = $this->indexOf($text, $offset)){
+ while ($part_len) {
+ if ($part === array_slice($prefix, -$part_len)) {
+ $copy = $len - $part_len;
break;
}
- $index = $offset;
- $offset += $text->length;
+ array_pop($part);
+ $part_len--;
}
- return $index;
+ if ($copy === 0) {
+ return clone $this;
+ }
+
+ if ($copy < $len) {
+ $text = array_slice($text, 0, $copy);
+ }
+
+ return new static(array_merge($text, $this->codes));
}
/**
- * @param string|UnicodeString $text
+ * @param string|self|int[]|string[] $text
* @param bool $ignoreCase
- * @return UnicodeString
- * @throws Exception
+ * @param bool $allowSuffixOnly If true the result can contain only the suffix
+ * @return static
*/
- public function ensurePrefix($text, $ignoreCase = false)
+ public function ensureSuffix($text, bool $ignoreCase = false, bool $allowSuffixOnly = true): self
{
- $text = static::from($text);
+ $text = self::resolveCodePoints($text);
- if(!$this->startsWith($text, $ignoreCase)){
- $cp = array_merge($text->codes, $this->codes);
- $ch = array_merge($text->chars, $this->chars);
+ $len = count($text);
- return new static($cp, $ch);
+ if ($len === 0) {
+ return clone $this;
}
- return clone $this;
- }
+ if ($this->length === 0) {
+ return new static($text);
+ }
- /**
- * @param string|UnicodeString $text
- * @param bool $ignoreCase
- * @return UnicodeString
- * @throws Exception
- */
- public function ensureSuffix($text, $ignoreCase = false)
- {
- $text = static::from($text);
+ if ($ignoreCase) {
+ $suffix = self::getMappedCodePoints($text, self::FOLD_CASE);
+ } else {
+ $suffix = &$text;
+ }
+
+ if ($this->length === $len) {
+ $part = $this->getMappedCodes($ignoreCase ? self::FOLD_CASE : self::KEEP_CASE);
+ if ($allowSuffixOnly && $part === $suffix) {
+ return clone $this;
+ }
+ // Remove first element to avoid double check
+ array_shift($part);
+ } elseif ($this->length < $len) {
+ $part = $this->getMappedCodes($ignoreCase ? self::FOLD_CASE : self::KEEP_CASE);
+ // Checks if this can be a prefix
+ if ($allowSuffixOnly && (array_slice($suffix, -$this->length) === $part)) {
+ $text = array_slice($text, 0, $len - $this->length);
+ return new static(array_merge($text, $this->codes));
+ }
+ } else {
+ $part = array_slice($this->codes, -$len);
+ if ($ignoreCase) {
+ $part = self::getMappedCodePoints($part, self::FOLD_CASE);
+ }
+ if ($part === $suffix) {
+ return clone $this;
+ }
+ // Remove first element to avoid double check
+ array_shift($part);
+ }
+
+ $skip = 0;
+
+ $part_len = count($part);
+
+ while ($part_len) {
+ if ($part === array_slice($suffix, 0, $part_len)) {
+ $skip = $part_len;
+ break;
+ }
+ array_shift($part);
+ $part_len--;
+ }
- if(!$this->endsWith($text, $ignoreCase)){
- $cp = array_merge($this->codes, $text->codes);
- $ch = array_merge($this->chars, $text->chars);
+ if ($skip === $len) {
+ return clone $this;
+ }
- return new static($cp, $ch);
+ if ($skip) {
+ array_splice($text, 0, $skip);
}
- return clone $this;
+ return new static(array_merge($this->codes, $text));
}
/**
- * @param UnicodeString|string $text
- * @return UnicodeString
+ * @param string|self|int[]|string[] $text
+ * @param int $mode
+ * @return static
*/
- public function append($text)
+ public function append($text, int $mode = self::KEEP_CASE): self
{
- $text = static::from($text);
- $cp = array_merge($this->codes, $text->codes);
- $ch = array_merge($this->chars, $text->chars);
-
- return new static($cp, $ch);
+ return new static(array_merge($this->codes, self::resolveCodePoints($text, $mode)));
}
/**
- * @param UnicodeString|string $text
- * @return UnicodeString
+ * @param string|self|int[]|string[] $text
+ * @param int $mode
+ * @return static
*/
- public function prepend($text)
+ public function prepend($text, int $mode = self::KEEP_CASE): self
{
- $text = static::from($text);
- $cp = array_merge($text->codes, $this->codes);
- $ch = array_merge($text->chars, $this->chars);
-
- return new static($cp, $ch);
+ return new static(array_merge(self::resolveCodePoints($text, $mode), $this->codes));
}
/**
- * @param string|UnicodeString $text
- * @param int $index
- * @return UnicodeString
+ * @param string|self|int[]|string[] $text
+ * @param int $offset
+ * @param int $mode
+ * @return static
*/
- public function insert($text, $index)
+ public function insert($text, int $offset, int $mode = self::KEEP_CASE): self
{
- if($index <= 0){
- return $this->prepend($text);
- }
-
- if($index >= $this->length){
- return $this->append($text);
- }
+ $codes = $this->codes;
- $text = static::from($text);
+ array_splice($codes, $offset, 0, self::resolveCodePoints($text, $mode));
- $lcp = array_slice($this->codes, 0, $index);
- $lch = array_slice($this->chars, 0, $index);
+ return new static($codes);
+ }
- $rcp = array_slice($this->codes, $index);
- $rch = array_slice($this->chars, $index);
+ /**
+ * @param int $offset
+ * @param int|null $length
+ * @return static
+ */
+ public function remove(int $offset, ?int $length = null): self
+ {
+ $codes = $this->codes;
- $cp = array_merge($lcp, $text->codes, $rcp);
- $ch = array_merge($lch, $text->chars, $rch);
+ if ($length === null) {
+ array_splice($codes, $offset);
+ } else {
+ array_splice($codes, $offset, $length);
+ }
- return new static($cp, $ch);
+ return new static($codes);
}
/**
- * @param string|UnicodeString $character_mask
- * @return UnicodeString
+ * @param string|self|int[]|string[] $mask
+ * @return static
*/
- public function trim($character_mask = " \t\n\r\0\x0B")
+ public function trim($mask = " \t\n\r\0\x0B"): self
{
- return $this->doTrim($character_mask);
+ return $this->doTrim($mask, true, true);
}
/**
- * @param string|UnicodeString $character_mask
- * @return UnicodeString
+ * @param string|self|int[]|string[] $mask
+ * @return static
*/
- public function trimLeft($character_mask = " \t\n\r\0\x0B")
+ public function trimLeft($mask = " \t\n\r\0\x0B"): self
{
- return $this->doTrim($character_mask, true, false);
+ return $this->doTrim($mask, true, false);
}
/**
- * @param string|UnicodeString $character_mask
- * @return UnicodeString
+ * @param string|self|int[]|string[] $mask
+ * @return static
*/
- public function trimRight($character_mask = " \t\n\r\0\x0B")
+ public function trimRight($mask = " \t\n\r\0\x0B"): self
{
- return $this->doTrim($character_mask, false, true);
+ return $this->doTrim($mask, false, true);
}
/**
- * @param string|UnicodeString $subject
- * @param string|UnicodeString $replace
- * @param int $offset
- * @return UnicodeString
- * @throws Exception
+ * @return static
*/
- public function replace($subject, $replace, $offset = 0)
+ public function reverse(): self
{
- $subject = static::from($subject);
- $replace = static::from($replace);
-
- if(false === $pos = $this->indexOf($subject, $offset)){
- return clone $this;
- }
-
- $cp1 = array_slice($this->codes, 0, $pos);
- $cp2 = array_slice($this->codes, $pos + $subject->length);
- $ch1 = array_slice($this->chars, 0, $pos);
- $ch2 = array_slice($this->chars, $pos + $subject->length);
-
- $cp = array_merge($cp1, $replace->codes, $cp2);
- $ch = array_merge($ch1, $replace->chars, $ch2);
-
- return new static($cp, $ch);
+ return new static(array_reverse($this->codes));
}
/**
- * @param string|UnicodeString $subject
- * @param string|UnicodeString $replace
- * @return UnicodeString
+ * @param int $times
+ * @return static
*/
- public function replaceAll($subject, $replace)
+ public function repeat(int $times = 1): self
{
- $subject = static::from($subject);
- $replace = static::from($replace);
-
- if(false === $offset = $this->indexOf($subject) || $subject->isEmpty()){
+ if ($times <= 1) {
return clone $this;
}
- $text = $this;
+ $codes = [];
- do{
- $text = $text->replace($subject, $replace, $offset);
- $offset = $text->indexOf($subject, $offset + $replace->length);
- } while($offset !== false);
+ while ($times--) {
+ $codes = array_merge($codes, $this->codes);
+ }
- return $text;
+ return new static($codes);
}
/**
- * @return UnicodeString
+ * @param string|self|int[]|string[] $subject
+ * @param string|self|int[]|string[] $replace
+ * @param int $offset
+ * @param bool $ignoreCase
+ * @return static
*/
- public function reverse()
+ public function replace($subject, $replace, int $offset = 0, bool $ignoreCase = false): self
{
- $cp = array_reverse($this->codes);
- $ch = array_reverse($this->chars);
+ if ($offset < 0) {
+ $offset += $this->length;
+ }
+ if ($offset < 0 || $offset >= $this->length) {
+ return clone $this;
+ }
- return new static($cp, $ch);
- }
+ $mode = $ignoreCase ? self::FOLD_CASE : self::KEEP_CASE;
+ $subject = self::resolveCodePoints($subject, $mode);
- /**
- * @param int $times
- * @return UnicodeString
- */
- public function repeat($times = 1)
- {
- if($times < 1){
- $times = 1;
+ $len = count($subject);
+
+ if ($len === 0 || $offset + $len > $this->length) {
+ return clone $this;
}
- $cp = $this->codes;
- $ch = $this->chars;
+ $offset = $this->doIndexOf($this->getMappedCodes($mode), $subject, $offset);
- for($i = 0; $i < $times; $i++){
- $cp = array_merge($cp, $this->codes);
- $ch = array_merge($ch, $this->chars);
+ if ($offset === -1) {
+ return clone $this;
}
- return new static($cp, $ch);
+ $codes = $this->codes;
+
+ array_splice($codes, $offset, count($subject), self::resolveCodePoints($replace));
+
+ return new static($codes);
}
/**
- * @param int $index
- * @param int $length
- * @return UnicodeString
+ * @param string|self|int[]|string[] $subject
+ * @param string|self|int[]|string[] $replace
+ * @param bool $ignoreCase
+ * @param int $offset
+ * @return static
*/
- public function remove($index, $length)
+ public function replaceAll($subject, $replace, int $offset = 0, bool $ignoreCase = false): self
{
- if($index < 0){
- $index = 0;
+ if ($offset < 0) {
+ $offset += $this->length;
}
+ if ($offset < 0 || $offset >= $this->length) {
+ return clone $this;
+ }
+
+ $mode = $ignoreCase ? self::FOLD_CASE : self::KEEP_CASE;
+
+ $subject = self::resolveCodePoints($subject, $mode);
- if($length < 0){
- $length = 0;
+ $len = count($subject);
+
+ if ($len === 0 || $offset + $len > $this->length) {
+ return clone $this;
}
- $lcp = array_slice($this->codes, 0, $index);
- $lch = array_slice($this->chars, 0, $index);
- $rcp = array_slice($this->codes, $index + $length);
- $rch = array_slice($this->chars, $index + $length);
+ $replace = self::resolveCodePoints($replace);
+
+ $codes = $this->getMappedCodes($mode);
+
+ $copy = $this->codes;
- $cp = array_merge($lcp, $rcp);
- $ch = array_merge($lch, $rch);
+ $fix = count($replace) - $len;
- return new static($cp, $ch);
+ $t = 0;
+
+ while (($pos = $this->doIndexOf($codes, $subject, $offset)) >= 0) {
+ array_splice($copy, $pos + $t * $fix, $len, $replace);
+ $offset = $pos + $len;
+ $t++;
+ }
+
+ return new static($copy);
}
/**
- * @param string|UnicodeString $char
+ * @param string|self|int[]|string[] $delimiter
+ * @param bool $ignoreCase
* @return array
*/
- public function split($char = '')
+ public function split($delimiter = '', bool $ignoreCase = false): array
{
- $char = static::from($char);
- $results = array();
+ $mode = $ignoreCase ? self::FOLD_CASE : self::KEEP_CASE;
+ $delimiter = self::resolveCodePoints($delimiter, $mode);
+ $len = count($delimiter);
- if($char->isEmpty()){
- for($i = 0, $l = $this->length; $i < $l; $i++){
- $results[] = new static(array($this->codes[$i]), array($this->chars[$i]));
+ $ret = [];
+
+ if ($len === 0) {
+ foreach ($this->codes as $code) {
+ $ret[] = new static([$code]);
}
- return $results;
- }
+ } else {
+ $codes = $this->getMappedCodes($mode);
- if(false === $offset = $this->indexOf($char)){
- return array(clone $this);
- }
+ $offset = 0;
+
+ while (($pos = $this->doIndexOf($codes, $delimiter, $offset)) >= 0) {
+ $ret[] = new static(array_slice($this->codes, $offset, $pos - $offset));
+ $offset = $pos + $len;
+ }
- $start = 0;
- do{
- $cp = array_slice($this->codes, $start, $offset - $start);
- $ch = array_slice($this->chars, $start, $offset - $start);
- $results[] = new static($cp, $ch);
- $start = $offset + $char->length;
- $offset = $this->indexOf($char, $start);
- } while ($offset !== false);
+ $ret[] = new static(array_slice($this->codes, $offset));
+ }
- $cp = array_slice($this->codes, $start);
- $ch = array_slice($this->chars, $start);
- $results[] = new static($cp, $ch);
- return $results;
+ return $ret;
}
/**
* @param int $start
* @param int|null $length
- * @return UnicodeString
+ * @return static
*/
- public function substring($start, $length = null)
+ public function substring(int $start, ?int $length = null): self
{
- $cp = array_slice($this->codes, $start, $length);
- $ch = array_slice($this->chars, $start, $length);
-
- return new static($cp, $ch);
+ return new static(array_slice($this->codes, $start, $length));
}
/**
- * @param int $length
- * @param string $char
- * @return UnicodeString
+ * @param int $size If negative then pad left otherwise pad right
+ * @param self|string|int $char A char or a code point
+ * @return static
*/
- public function padLeft($length, $char = ' ')
+ public function pad(int $size, $char = 0x20): self
{
- return $this->doPad($length, $char, true);
+ return new static(array_pad($this->codes, $size, self::resolveFirstCodePoint($char, 0x20)));
}
/**
- * @param int $length
- * @param string $char
- * @return UnicodeString
+ * @param int $size
+ * @param self|string|int $char
+ * @return static
*/
- public function padRight($length, $char = ' ')
+ public function padLeft(int $size, $char = 0x20): self
{
- return $this->doPad($length, $char, false);
+ if ($size > 0) {
+ $size = -$size;
+ }
+
+ return $this->pad($size, $char);
}
/**
- * @return bool
+ * @param int $size
+ * @param self|string|int $char
+ * @return static
*/
- public function isLowerCase()
+ public function padRight(int $size, $char = 0x20): self
{
- if(!isset($this->cache[static::CACHE_IS_LOWER])){
- $this->cache[static::CACHE_IS_LOWER] = $this->isCase($this->getLowerMap());
+ if ($size < 0) {
+ $size = -$size;
}
- return $this->cache[static::CACHE_IS_LOWER];
+ return $this->pad($size, $char);
}
/**
* @return bool
*/
- public function isUpperCase()
+ public function isLowerCase(): bool
{
- if(!isset($this->cache[static::CACHE_IS_UPPER])){
- $this->cache[static::CACHE_IS_UPPER] = $this->isCase($this->getUpperMap());
- }
-
- return $this->cache[static::CACHE_IS_UPPER];
+ return $this->isCase(self::LOWER_CASE);
}
/**
* @return bool
*/
- public function isAscii()
+ public function isUpperCase(): bool
{
- if(!isset($this->cache[static::CACHE_IS_ASCII])){
- foreach ($this->codes as $code){
- if($code >= 0x80){
- return $this->cache[static::CACHE_IS_ASCII] = false;
- }
- }
- return $this->cache[static::CACHE_IS_ASCII] = true;
- }
-
- return $this->cache[static::CACHE_IS_ASCII];
+ return $this->isCase(self::UPPER_CASE);
}
/**
- * @return UnicodeString
+ * @return bool
*/
- public function toAscii()
+ public function isAscii(): bool
{
+ $key = 'i' . self::ASCII_CONV;
- if(!isset($this->cache[static::CACHE_TO_ASCII])){
- if(isset($this->cache[static::CACHE_IS_ASCII]) && $this->cache[static::CACHE_IS_ASCII]){
- $this->cache[static::CACHE_TO_ASCII] = clone $this;
- } else {
- $ascii = $this->getAsciiMap();
- $char = $this->getCharMap();
- $ch = array();
- $cp = array();
-
- foreach ($this->codes as $code){
- if(isset($ascii[$code])){
- $cp[] = $c = $ascii[$code];
- $ch[] = $char[$c];
- }
- }
-
- $instance = new static($cp, $ch);
- $instance->cache[static::CACHE_IS_ASCII] = true;
-
- $keys = array(static::CACHE_IS_UPPER, static::CACHE_IS_LOWER);
+ if (!isset($this->cache[$key])) {
+ $ok = true;
- foreach ($keys as $key){
- if(isset($this->cache[$key])){
- $instance->cache[$key] = $this->cache[$key];
- }
+ foreach ($this->codes as $code) {
+ if ($code >= 0x80) {
+ $ok = false;
+ break;
}
-
- $this->cache[static::CACHE_TO_ASCII] = $instance;
}
+
+ $this->cache[$key] = $ok;
}
- return $this->cache[static::CACHE_TO_ASCII];
+ return $this->cache[$key];
}
/**
- * @return UnicodeString
+ * Convert all chars to lower case (where possible)
+ * @return static
*/
- public function toLower()
+ public function toLower(): self
{
- if(!isset($this->cache[static::CACHE_TO_LOWER])){
- if(isset($this->cache[static::CACHE_IS_LOWER]) && $this->cache[static::CACHE_IS_LOWER]){
- $this->cache[static::CACHE_TO_LOWER] = clone $this;
- } else {
- $this->cache[static::CACHE_TO_LOWER] = $this->toCase($this->getLowerMap(), static::CACHE_IS_LOWER);
- }
+ if ($this->cache['i' . self::LOWER_CASE] ?? false) {
+ return clone $this;
}
-
- return $this->cache[static::CACHE_TO_LOWER];
+ return new static($this->getMappedCodes(self::LOWER_CASE));
}
/**
- * @return UnicodeString
+ * Convert all chars to upper case (where possible)
+ * @return static
*/
- public function toUpper()
+ public function toUpper(): self
{
- if(!isset($this->cache[static::CACHE_TO_UPPER])){
- if(isset($this->cache[static::CACHE_IS_UPPER]) && $this->cache[static::CACHE_IS_UPPER]){
- $this->cache[static::CACHE_TO_UPPER] = clone $this;
- } else {
- $this->cache[static::CACHE_TO_UPPER] = $this->toCase($this->getUpperMap(), static::CACHE_IS_UPPER);
- }
+ if ($this->cache['i' . self::UPPER_CASE] ?? false) {
+ return clone $this;
}
-
- return $this->cache[static::CACHE_TO_UPPER];
+ return new static($this->getMappedCodes(self::UPPER_CASE));
}
/**
- * @param int $offset
- * @return int
+ * Converts all chars to their ASCII equivalent (if any)
+ * @return static
*/
- public function __invoke($offset)
+ public function toAscii(): self
{
- return $this->codes[$offset];
+ if ($this->cache['i' . self::ASCII_CONV] ?? false) {
+ return clone $this;
+ }
+ return new static($this->getMappedCodes(self::ASCII_CONV));
}
/**
+ * @param int $index
* @return string
*/
- public function __toString()
+ public function charAt(int $index): string
{
- if($this->string === null){
- $this->string = implode('', $this->chars);
+ // Allow negative index
+ if ($index < 0 && $index + $this->length >= 0) {
+ $index += $this->length;
+ }
+
+ if ($index < 0 || $index >= $this->length) {
+ return '';
}
- return $this->string;
+ return $this->chars()[$index];
}
/**
- * @param $string
- * @param string $encoding
- * @return UnicodeString
- * @throws Exception
+ * @param int $index
+ * @return int
*/
- public static function from($string, $encoding = 'UTF-8')
+ public function codePointAt(int $index): int
{
- static $ord;
-
- if($string instanceof self){
- return $string;
- }
-
- if($encoding !== 'UTF-8'){
- if(false === $string = @iconv($encoding, 'UTF-8', $string)){
- throw new Exception("Could not convert string from '$encoding' encoding to UTF-8 encoding");
- }
+ // Allow negative index
+ if ($index < 0 && $index + $this->length >= 0) {
+ $index += $this->length;
}
- if($ord === null ){
- $ord = require __DIR__ .'/../res/ord.php';
+ if ($index < 0 || $index >= $this->length) {
+ return -1;
}
- $codes = $chars = array();
-
- for($i = 0, $l = strlen($string); $i < $l; $i++) {
- $c = $ord[$ch = $string[$i]];
+ return $this->codes[$index];
+ }
- if(($c & 0x80) == 0){
- $codes[] = $c;
- $chars[] = $ch;
- } elseif (($c & 0xE0) == 0xC0){
- $c1 = $ord[$string[++$i]];
- $codes[] = (($c & 0x1F) << 6) | ($c1 & 0x3F);
- $chars[] = substr($string, $i - 1, 2);
- } elseif (($c & 0xF0) == 0xE0){
- $c1 = $ord[$string[++$i]];
- $c2 = $ord[$string[++$i]];
- $codes[] = (($c & 0x0F) << 12) | (($c1 & 0x3F) << 6) | ($c2 & 0x3F);
- $chars[] = substr($string, $i - 2, 3);
- } elseif (($c & 0xF8) == 0xF0){
- $c1 = $ord[$string[++$i]];
- $c2 = $ord[$string[++$i]];
- $c3 = $ord[$string[++$i]];
- $codes[] = (($c & 0x07) << 18) | (($c1 & 0x3F) << 12) | (($c2 & 0x3F) << 6) | ($c3 & 0x3F);
- $chars[] = substr($string, $i - 3, 4);
- } else {
- throw new Exception('Invalid UTF-8 string');
+ /**
+ * @param int $offset
+ * @return int
+ */
+ public function __invoke(int $offset): int
+ {
+ if ($offset < 0) {
+ if ($offset + $this->length < 0) {
+ throw new OutOfBoundsException("Undefined offset: {$offset}");
}
+ $offset += $this->length;
+ } elseif ($offset >= $this->length) {
+ throw new OutOfBoundsException("Undefined offset: {$offset}");
}
- return new static($codes, $chars);
+ return $this->codes[$offset];
}
/**
- * @param $character_mask
- * @param bool $left
- * @param bool $right
- * @return UnicodeString
- * @throws Exception
+ * @inheritDoc
*/
- protected function doTrim($character_mask, $left = true, $right = true)
+ public function offsetExists($offset): bool
{
- $character_mask = static::from($character_mask);
-
- $cm = $character_mask->codes;
- $cp = $this->codes;
- $start = 0;
- $end = $this->length;
-
- if($left){
- for ($i = 0; $i < $this->length; $i++) {
- if (!in_array($cp[$i], $cm)) {
- break;
- }
- }
- $start = $i;
+ // Allow negative index
+ if ($offset < 0) {
+ $offset += $this->length;
}
- if($right){
- for ($i = $this->length - 1; $i > $start; $i--) {
- if (!in_array($cp[$i], $cm)) {
- break;
- }
+ return isset($this->codes[$offset]);
+ }
+
+ /**
+ * @inheritDoc
+ */
+ public function offsetGet($offset): string
+ {
+ if ($offset < 0) {
+ if ($offset + $this->length < 0) {
+ throw new OutOfBoundsException("Undefined offset: {$offset}");
}
- $end = $i + 1;
+ $offset += $this->length;
+ } elseif ($offset >= $this->length) {
+ throw new OutOfBoundsException("Undefined offset: {$offset}");
}
- $cp = array_slice($cp, $start, $end - $start);
- $ch = array_slice($this->chars, $start, $end - $start);
-
- return new static($cp, $ch);
+ return $this->chars()[$offset];
}
/**
- * @param $length
- * @param $pad
- * @param bool $left
- * @return UnicodeString
- * @throws Exception
+ * @inheritDoc
*/
- protected function doPad($length, $pad, $left = true)
+ #[\ReturnTypeWillChange]
+ public function offsetSet($offset, $value)
{
- if($length <= 0){
- return new static(array(), array());
- }
-
- if($length === $this->length){
- return clone $this;
+ // Allow negative index
+ if ($offset < 0) {
+ $offset += $this->length;
}
- if($length < $this->length){
- if($left){
- return $this->substring($this->length - $length);
- } else {
- return $this->substring(0, $length);
- }
+ if (!isset($this->codes[$offset])) {
+ return;
}
- $pad = static::from($pad);
- if($pad->isEmpty()){
- $pad = static::from(' ');
+ $value = self::resolveFirstCodePoint($value);
+ if ($value === -1) {
+ return;
}
- $noch = $length - $this->length;
- $mod = $noch % $pad->length;
- $times = ($noch - $mod) / $pad->length;
+ if ($value === $this->codes[$offset]) {
+ // Same value, nothing to do
+ return;
+ }
- $padchars = array();
- $padcodes = array();
+ $this->codes[$offset] = $value;
- for($i = 0; $i < $times; $i++){
- $padcodes = array_merge($padcodes, $pad->codes);
- $padchars = array_merge($padchars, $pad->chars);
+ // Clear cache
+ $this->str = null;
+ $this->cache = null;
+ if ($this->chars) {
+ $this->chars[$offset] = self::getCharFromCodePoint($value);
}
+ }
- if($mod != 0){
- $padcodes = array_merge($padcodes, array_slice($pad->codes, 0, $mod));
- $padchars = array_merge($padchars, array_slice($pad->chars, 0, $mod));
+ /**
+ * @inheritDoc
+ */
+ #[\ReturnTypeWillChange]
+ public function offsetUnset($offset)
+ {
+ throw new RuntimeException("Invalid operation");
+ }
+
+ /**
+ * @inheritDoc
+ */
+ public function count(): int
+ {
+ return $this->length;
+ }
+
+ /**
+ * @return string
+ */
+ public function __toString(): string
+ {
+ if ($this->str === null) {
+ $this->str = self::getStringFromCodePoints($this->codes);
}
- if($left){
- $cp = array_merge($padcodes, $this->codes);
- $ch = array_merge($padchars, $this->chars);
- } else {
- $cp = array_merge($this->codes, $padcodes);
- $ch = array_merge($this->chars, $padchars);
+ return $this->str;
+ }
+
+ /**
+ * @inheritDoc
+ */
+ public function jsonSerialize(): string
+ {
+ return $this->__toString();
+ }
+
+ public function __serialize(): array
+ {
+ return [
+ 'value' => $this->__toString(),
+ ];
+ }
+
+ public function __unserialize(array $data): void
+ {
+ $this->str = $data['value'];
+ $this->codes = self::getCodePointsFromString($this->str);
+ $this->length = count($this->codes);
+ }
+
+ /**
+ * Creates an unicode string instance from raw string
+ * @param string $string
+ * @param string|null $encoding Defaults to UTF-8
+ * @param int $mode
+ * @return static
+ * @throws InvalidStringException
+ */
+ public static function from(string $string, ?string $encoding = null, int $mode = self::KEEP_CASE): self
+ {
+ if ($encoding !== null && strcasecmp($encoding, 'UTF-8') !== 0) {
+ if (false === $string = @iconv($encoding, 'UTF-8', $string)) {
+ throw new UnicodeException("Could not convert string from '$encoding' encoding to UTF-8 encoding");
+ }
}
- return new static($cp, $ch);
+ $instance = new static(self::getCodePointsFromString($string, $mode));
+ if ($mode === self::KEEP_CASE) {
+ $instance->str = $string;
+ }
+ return $instance;
}
/**
- * @param array $map
- * @param int $cacheKey
- * @return UnicodeString
+ * Creates an unicode string instance from code points
+ * @param int[] $codes
+ * @param int $mode
+ * @return static
+ * @throws InvalidCodePointException
*/
- protected function toCase(array $map, $cacheKey)
+ public static function fromCodePoints(array $codes, int $mode = self::KEEP_CASE): self
{
- $cp = $this->codes;
- $ch = $this->chars;
- $ocp = $och = array();
+ $map = self::getMapByMode($mode);
- for($i = 0, $l = $this->length; $i < $l; $i++){
- $p = $cp[$i];
- if(isset($map[$p])){
- $v = $map[$p];
- $ocp[] = $v[0];
- $och[] = $v[1];
+ foreach ($codes as &$code) {
+ if (!is_int($codes) || !self::isValidCodePoint($code)) {
+ throw new InvalidCodePointException($code);
} else {
- $ocp[] = $p;
- $och[] = $ch[$i];
+ $code = $map[$code] ?? $code;
}
}
- $str = new static($ocp, $och);
- $str->cache[$cacheKey] = true;
+ return new static(array_values($codes));
+ }
- return $str;
+ /**
+ * Converts the code point to corresponding char
+ * @param int $code
+ * @return string The char or an empty string if code point is invalid
+ */
+ public static function getCharFromCodePoint(int $code): string
+ {
+ if ($code < 0) {
+ return '';
+ }
+
+ if ($code < 0x80) {
+ return chr($code);
+ }
+
+ if ($code < 0x800) {
+ return chr(($code >> 6) + 0xC0) . chr(($code & 0x3F) + 0x80);
+ }
+
+ if ($code >= 0xD800 && $code <= 0xDFFF) {
+ /*
+ The definition of UTF-8 prohibits encoding character numbers between
+ U+D800 and U+DFFF, which are reserved for use with the UTF-16
+ encoding form (as surrogate pairs) and do not directly represent characters.
+ */
+ return '';
+ }
+
+ if ($code <= 0xFFFF) {
+ return
+ chr(($code >> 12) + 0xE0) .
+ chr((($code >> 6) & 0x3F) + 0x80) .
+ chr(($code & 0x3F) + 0x80);
+ }
+
+ if ($code <= 0x10FFFF) {
+ return
+ chr(($code >> 18) + 0xF0) .
+ chr((($code >> 12) & 0x3F) + 0x80) .
+ chr((($code >> 6) & 0x3F) + 0x80) .
+ chr(($code & 0x3F) + 0x80);
+ }
+
+ /*
+ Restricted the range of characters to 0000-10FFFF (the UTF-16 accessible range).
+ */
+
+ return '';
}
/**
- * @param array $map
- * @return bool
+ * Convert a string to a code point array
+ * @param string $str
+ * @param int $mode
+ * @return array
+ * @throws InvalidStringException
+ */
+ public static function getCodePointsFromString(string $str, int $mode = self::KEEP_CASE): array
+ {
+ // 0x00-0x7F
+ // 0xC2-0xDF 0x80-0xBF
+ // 0xE0-0xE0 0xA0-0xBF 0x80-0xBF
+ // 0xE1-0xEC 0x80-0xBF 0x80-0xBF
+ // 0xED-0xED 0x80-0x9F 0x80-0xBF
+ // 0xEE-0xEF 0x80-0xBF 0x80-0xBF
+ // 0xF0-0xF0 0x90-0xBF 0x80-0xBF 0x80-0xBF
+ // 0xF1-0xF3 0x80-0xBF 0x80-0xBF 0x80-0xBF
+ // 0xF4-0xF4 0x80-0x8F 0x80-0xBF 0x80-0xBF
+
+ $codes = [];
+ $length = strlen($str);
+ $mode = self::getMapByMode($mode);
+
+ $i = 0;
+ while ($i < $length) {
+ $ord0 = ord($str[$i++]);
+
+ if ($ord0 < 0x80) {
+ $codes[] = $mode[$ord0] ?? $ord0;
+ continue;
+ }
+
+ if ($i === $length || $ord0 < 0xC2 || $ord0 > 0xF4) {
+ throw new InvalidStringException($str, $i - 1);
+ }
+
+ $ord1 = ord($str[$i++]);
+
+ if ($ord0 < 0xE0) {
+ if ($ord1 < 0x80 || $ord1 >= 0xC0) {
+ throw new InvalidStringException($str, $i - 1);
+ }
+
+ $ord1 = ($ord0 - 0xC0) * 64 + $ord1 - 0x80;
+ $codes[] = $mode[$ord1] ?? $ord1;
+
+ continue;
+ }
+
+ if ($i === $length) {
+ throw new InvalidStringException($str, $i - 1);
+ }
+
+ $ord2 = ord($str[$i++]);
+
+ if ($ord0 < 0xF0) {
+ if ($ord0 === 0xE0) {
+ if ($ord1 < 0xA0 || $ord1 >= 0xC0) {
+ throw new InvalidStringException($str, $i - 2);
+ }
+ } elseif ($ord0 === 0xED) {
+ if ($ord1 < 0x80 || $ord1 >= 0xA0) {
+ throw new InvalidStringException($str, $i - 2);
+ }
+ } elseif ($ord1 < 0x80 || $ord1 >= 0xC0) {
+ throw new InvalidStringException($str, $i - 2);
+ }
+
+ if ($ord2 < 0x80 || $ord2 >= 0xC0) {
+ throw new InvalidStringException($str, $i - 1);
+ }
+
+ $ord2 = ($ord0 - 0xE0) * 0x1000 + ($ord1 - 0x80) * 64 + $ord2 - 0x80;
+ $codes[] = $mode[$ord2] ?? $ord2;
+
+ continue;
+ }
+
+ if ($i === $length) {
+ throw new InvalidStringException($str, $i - 1);
+ }
+
+ $ord3 = ord($str[$i++]);
+
+ if ($ord0 < 0xF5) {
+ if ($ord0 === 0xF0) {
+ if ($ord1 < 0x90 || $ord1 >= 0xC0) {
+ throw new InvalidStringException($str, $i - 3);
+ }
+ } elseif ($ord0 === 0xF4) {
+ if ($ord1 < 0x80 || $ord1 >= 0x90) {
+ throw new InvalidStringException($str, $i - 3);
+ }
+ } elseif ($ord1 < 0x80 || $ord1 >= 0xC0) {
+ throw new InvalidStringException($str, $i - 3);
+ }
+
+ if ($ord2 < 0x80 || $ord2 >= 0xC0) {
+ throw new InvalidStringException($str, $i - 2);
+ }
+
+ if ($ord3 < 0x80 || $ord3 >= 0xC0) {
+ throw new InvalidStringException($str, $i - 1);
+ }
+
+ $ord3 = ($ord0 - 0xF0) * 0x40000 + ($ord1 - 0x80) * 0x1000 + ($ord2 - 0x80) * 64 + $ord3 - 0x80;
+ $codes[] = $mode[$ord3] ?? $ord3;
+
+ continue;
+ }
+
+ throw new InvalidStringException($str, $i - 1);
+ }
+
+ return $codes;
+ }
+
+ /**
+ * @param string $str
+ * @return iterable
+ *
+ * The key represents the current char index
+ * Value is a two element array
+ * - first element is an integer representing the code point
+ * - second element is an array of integers (length 1 to 4) representing bytes
*/
- protected function isCase(array $map)
+ public static function walkString(string $str): iterable
{
- foreach ($this->codes as $cp){
- if(isset($map[$cp])){
- return false;
+ $i = 0;
+ $length = strlen($str);
+
+ while ($i < $length) {
+ $index = $i;
+
+ $ord0 = ord($str[$i++]);
+
+ if ($ord0 < 0x80) {
+ yield $index => [
+ $ord0,
+ [$ord0]
+ ];
+ continue;
+ }
+
+ if ($i === $length || $ord0 < 0xC2 || $ord0 > 0xF4) {
+ throw new InvalidStringException($str, $i - 1);
+ }
+
+ $ord1 = ord($str[$i++]);
+
+ if ($ord0 < 0xE0) {
+ if ($ord1 < 0x80 || $ord1 >= 0xC0) {
+ throw new InvalidStringException($str, $i - 1);
+ }
+
+ yield $index => [
+ ($ord0 - 0xC0) * 64 + $ord1 - 0x80,
+ [$ord0, $ord1]
+ ];
+
+ continue;
}
+
+ if ($i === $length) {
+ throw new InvalidStringException($str, $i - 1);
+ }
+
+ $ord2 = ord($str[$i++]);
+
+ if ($ord0 < 0xF0) {
+ if ($ord0 === 0xE0) {
+ if ($ord1 < 0xA0 || $ord1 >= 0xC0) {
+ throw new InvalidStringException($str, $i - 2);
+ }
+ } elseif ($ord0 === 0xED) {
+ if ($ord1 < 0x80 || $ord1 >= 0xA0) {
+ throw new InvalidStringException($str, $i - 2);
+ }
+ } elseif ($ord1 < 0x80 || $ord1 >= 0xC0) {
+ throw new InvalidStringException($str, $i - 2);
+ }
+
+ if ($ord2 < 0x80 || $ord2 >= 0xC0) {
+ throw new InvalidStringException($str, $i - 1);
+ }
+
+ yield $index => [
+ ($ord0 - 0xE0) * 0x1000 + ($ord1 - 0x80) * 64 + $ord2 - 0x80,
+ [$ord0, $ord1, $ord2]
+ ];
+
+ continue;
+ }
+
+ if ($i === $length) {
+ throw new InvalidStringException($str, $i - 1);
+ }
+
+ $ord3 = ord($str[$i++]);
+
+ if ($ord0 < 0xF5) {
+ if ($ord0 === 0xF0) {
+ if ($ord1 < 0x90 || $ord1 >= 0xC0) {
+ throw new InvalidStringException($str, $i - 3);
+ }
+ } elseif ($ord0 === 0xF4) {
+ if ($ord1 < 0x80 || $ord1 >= 0x90) {
+ throw new InvalidStringException($str, $i - 3);
+ }
+ } elseif ($ord1 < 0x80 || $ord1 >= 0xC0) {
+ throw new InvalidStringException($str, $i - 3);
+ }
+
+ if ($ord2 < 0x80 || $ord2 >= 0xC0) {
+ throw new InvalidStringException($str, $i - 2);
+ }
+
+ if ($ord3 < 0x80 || $ord3 >= 0xC0) {
+ throw new InvalidStringException($str, $i - 1);
+ }
+
+ yield $index => [
+ ($ord0 - 0xF0) * 0x40000 + ($ord1 - 0x80) * 0x1000 + ($ord2 - 0x80) * 64 + $ord3 - 0x80,
+ [$ord0, $ord1, $ord2, $ord3]
+ ];
+
+ continue;
+ }
+
+ throw new InvalidStringException($str, $i - 1);
}
- return true;
}
/**
+ * Compute string length
+ * @param string $str
+ * @return int
+ * @throws InvalidStringException
+ */
+ public static function getStringLength(string $str): int
+ {
+ $count = 0;
+ $length = strlen($str);
+
+ $i = 0;
+ while ($i < $length) {
+ $ord0 = ord($str[$i++]);
+
+ if ($ord0 < 0x80) {
+ $count++;
+ continue;
+ }
+
+ if ($i === $length || $ord0 < 0xC2 || $ord0 > 0xF4) {
+ throw new InvalidStringException($str, $i - 1);
+ }
+
+ $ord1 = ord($str[$i++]);
+
+ if ($ord0 < 0xE0) {
+ if ($ord1 < 0x80 || $ord1 >= 0xC0) {
+ throw new InvalidStringException($str, $i - 1);
+ }
+
+ // $ord1 = ($ord0 - 0xC0) * 64 + $ord1 - 0x80;
+ $count++;
+
+ continue;
+ }
+
+ if ($i === $length) {
+ throw new InvalidStringException($str, $i - 1);
+ }
+
+ $ord2 = ord($str[$i++]);
+
+ if ($ord0 < 0xF0) {
+ if ($ord0 === 0xE0) {
+ if ($ord1 < 0xA0 || $ord1 >= 0xC0) {
+ throw new InvalidStringException($str, $i - 2);
+ }
+ } elseif ($ord0 === 0xED) {
+ if ($ord1 < 0x80 || $ord1 >= 0xA0) {
+ throw new InvalidStringException($str, $i - 2);
+ }
+ } elseif ($ord1 < 0x80 || $ord1 >= 0xC0) {
+ throw new InvalidStringException($str, $i - 2);
+ }
+
+ if ($ord2 < 0x80 || $ord2 >= 0xC0) {
+ throw new InvalidStringException($str, $i - 1);
+ }
+
+ // $ord2 = ($ord0 - 0xE0) * 0x1000 + ($ord1 - 0x80) * 64 + $ord2 - 0x80;
+ $count++;
+
+ continue;
+ }
+
+ if ($i === $length) {
+ throw new InvalidStringException($str, $i - 1);
+ }
+
+ $ord3 = ord($str[$i++]);
+
+ if ($ord0 < 0xF5) {
+ if ($ord0 === 0xF0) {
+ if ($ord1 < 0x90 || $ord1 >= 0xC0) {
+ throw new InvalidStringException($str, $i - 3);
+ }
+ } elseif ($ord0 === 0xF4) {
+ if ($ord1 < 0x80 || $ord1 >= 0x90) {
+ throw new InvalidStringException($str, $i - 3);
+ }
+ } elseif ($ord1 < 0x80 || $ord1 >= 0xC0) {
+ throw new InvalidStringException($str, $i - 3);
+ }
+
+ if ($ord2 < 0x80 || $ord2 >= 0xC0) {
+ throw new InvalidStringException($str, $i - 2);
+ }
+
+ if ($ord3 < 0x80 || $ord3 >= 0xC0) {
+ throw new InvalidStringException($str, $i - 1);
+ }
+
+ // $ord3 = ($ord0 - 0xF0) * 0x40000 + ($ord1 - 0x80) * 0x1000 + ($ord2 - 0x80) * 64 + $ord3 - 0x80;
+ $count++;
+
+ continue;
+ }
+
+ throw new InvalidStringException($str, $i - 1);
+ }
+
+ return $count;
+ }
+
+ /**
+ * Converts each code point to a char
+ * @param array $codes
+ * @param int $mode
* @return array
+ * @throws InvalidCodePointException
*/
- protected function getUpperMap()
+ public static function getCharsFromCodePoints(array $codes, int $mode = self::KEEP_CASE): array
{
- static $upper;
+ $mode = self::getMapByMode($mode);
- if($upper === null){
- $upper = require __DIR__ . '/../res/upper.php';
+ foreach ($codes as &$code) {
+ $char = self::getCharFromCodePoint($mode[$code] ?? $code);
+ if ($char === '') {
+ throw new InvalidCodePointException($code);
+ } else {
+ $code = $char;
+ }
}
- return $upper;
+ return $codes;
+ }
+
+ /**
+ * @param string $str
+ * @param int $mode
+ * @return string[]
+ */
+ public static function getCharsFromString(string $str, int $mode = self::KEEP_CASE): array
+ {
+ return self::getCharsFromCodePoints(self::getCodePointsFromString($str), $mode);
}
/**
+ * Converts all code points to chars and returns the string
+ * Invalid code points are ignored
+ * @param array $codes
+ * @param int $mode
+ * @return string
+ */
+ public static function getStringFromCodePoints(array $codes, int $mode = self::KEEP_CASE): string
+ {
+ $str = '';
+
+ $mode = self::getMapByMode($mode);
+
+ foreach ($codes as $code) {
+ if (isset($mode[$code])) {
+ $code = $mode[$code];
+ }
+
+ if ($code < 0x80) {
+ $str .= chr($code);
+ continue;
+ }
+
+ if ($code < 0x800) {
+ $str .= chr(($code >> 6) + 0xC0) . chr(($code & 0x3F) + 0x80);
+ continue;
+ }
+
+ if ($code >= 0xD800 && $code <= 0xDFFF) {
+ continue;
+ }
+
+ if ($code <= 0xFFFF) {
+ $str .=
+ chr(($code >> 12) + 0xE0) .
+ chr((($code >> 6) & 0x3F) + 0x80) .
+ chr(($code & 0x3F) + 0x80);
+ continue;
+ }
+
+ if ($code <= 0x10FFFF) {
+ $str .=
+ chr(($code >> 18) + 0xF0) .
+ chr((($code >> 12) & 0x3F) + 0x80) .
+ chr((($code >> 6) & 0x3F) + 0x80) .
+ chr(($code & 0x3F) + 0x80);
+ }
+ }
+
+ return $str;
+ }
+
+ /**
+ * @param array $codes
+ * @param int $mode
* @return array
*/
- protected function getLowerMap()
+ public static function getMappedCodePoints(array $codes, int $mode): array
{
- static $lower;
+ if ($mode === self::KEEP_CASE) {
+ return $codes;
+ }
+
+ $mode = self::getMapByMode($mode);
- if($lower === null){
- $lower = require __DIR__ . '/../res/lower.php';
+ if (empty($mode)) {
+ return $codes;
}
- return $lower;
+ foreach ($codes as &$code) {
+ $code = $mode[$code] ?? $code;
+ }
+
+ return $codes;
}
/**
- * @return mixed
+ * Checks if a code point is valid
+ * @param int $code
+ * @return bool
*/
- protected function getAsciiMap()
+ public static function isValidCodePoint(int $code): bool
{
- static $ascii;
+ if ($code < 0 || $code > 0x10FFFF) {
+ return false;
+ }
- if($ascii === null){
- $ascii = require __DIR__ . '/../res/ascii.php';
+ return $code < 0xD800 || $code > 0xDFFF;
+ }
+
+ /**
+ * @param int $mode
+ * @return int[]
+ */
+ private function getMappedCodes(int $mode): array
+ {
+ if ($mode === self::KEEP_CASE || ($this->cache['i' . $mode] ?? false)) {
+ return $this->codes;
}
- return $ascii;
+ $key = 'm' . $mode;
+
+ if (!isset($this->cache[$key])) {
+ $this->cache[$key] = self::getMappedCodePoints($this->codes, $mode);
+ }
+
+ return $this->cache[$key];
}
- protected function getCharMap()
+ /**
+ * @param int $mode
+ * @return bool
+ */
+ private function isCase(int $mode): bool
{
- static $char;
+ $key = 'i' . $mode;
- if($char === null){
- $char = require __DIR__ . '/../res/char.php';
+ if (!isset($this->cache[$key])) {
+ $list = self::getMapByMode($mode);
+ foreach ($this->codes as $code) {
+ if (isset($list[$code])) {
+ return $this->cache[$key] = false;
+ }
+ }
+
+ return $this->cache[$key] = true;
}
- return $char;
+ return $this->cache[$key];
}
+ /**
+ * @param int[] $codes
+ * @param int[] $text
+ * @param int $offset
+ * @return int
+ */
+ private function doIndexOf(array $codes, array $text, int $offset = 0): int
+ {
+ $len = count($text);
+
+ for ($i = $offset, $last = count($codes) - $len; $i <= $last; $i++) {
+ $match = true;
+
+ for ($j = 0; $j < $len; $j++) {
+ if ($codes[$i + $j] !== $text[$j]) {
+ $match = false;
+ break;
+ }
+ }
+
+ if ($match) {
+ return $i;
+ }
+ }
+
+ return -1;
+ }
+
+ /**
+ * @param string|self|int[]|string[] $mask
+ * @param bool $left
+ * @param bool $right
+ * @return static
+ */
+ private function doTrim($mask, bool $left, bool $right): self
+ {
+ if ($this->length === 0) {
+ return clone $this;
+ }
+
+ $mask = self::resolveCodePoints($mask);
+
+ if (empty($mask)) {
+ return clone $this;
+ }
+
+ $codes = $this->codes;
+
+ if ($left) {
+ while (in_array($codes[0], $mask, true)) {
+ array_shift($codes);
+ if (empty($codes)) {
+ return new static();
+ }
+ }
+ }
+
+ if ($right) {
+ $last = count($codes) - 1;
+ while (in_array($codes[$last], $mask, true)) {
+ array_pop($codes);
+ if (--$last < 0) {
+ return new static();
+ }
+ }
+ }
+
+ return new static($codes);
+ }
+
+
+ /**
+ * @param string|self|int[]|string[] $text
+ * @param int $mode
+ * @return array
+ */
+ private static function resolveCodePoints($text, int $mode = self::KEEP_CASE): array
+ {
+ if ($text instanceof self) {
+ return $text->getMappedCodes($mode);
+ }
+
+ if (is_string($text)) {
+ return self::getCodePointsFromString($text, $mode);
+ }
+
+ if ($text && is_array($text) && is_int($text[0])) {
+ // assume code point array
+ return self::getMappedCodePoints($text, $mode);
+ }
+
+ return [];
+ }
+
+ /**
+ * @param self|string|int|string[]|int[] $text
+ * @param int $invalid
+ * @return int
+ */
+ private static function resolveFirstCodePoint($text, int $invalid = -1): int
+ {
+ if ($text instanceof self) {
+ return $text->length === 0 ? $invalid : $text->codes[0];
+ }
+
+ if (is_array($text)) {
+ if (empty($text)) {
+ return $invalid;
+ }
+ $text = reset($text);
+ }
+
+ if (is_string($text)) {
+ if (isset($text[4])) {
+ $text = substr($text, 0, 4);
+ }
+ return self::getCodePointsFromString($text)[0] ?? $invalid;
+ }
+
+ if (is_int($text)) {
+ return self::isValidCodePoint($text) ? $text : $invalid;
+ }
+
+ return $invalid;
+ }
+
+ /**
+ * @param int $mode
+ * @return int[]
+ */
+ private static function getMapByMode(int $mode): array
+ {
+ if (isset(self::$maps[$mode])) {
+ return self::$maps[$mode];
+ }
+
+ switch ($mode) {
+ case self::LOWER_CASE:
+ $file = 'lower';
+ break;
+ case self::UPPER_CASE:
+ $file = 'upper';
+ break;
+ case self::ASCII_CONV:
+ $file = 'ascii';
+ break;
+ case self::FOLD_CASE:
+ $file = 'fold';
+ break;
+ default:
+ return [];
+ }
+
+ /** @noinspection PhpIncludeInspection */
+ return self::$maps[$mode] = include(__DIR__ . "/../res/{$file}.php");
+ }
}
diff --git a/tests/UnicodeStringTest.php b/tests/UnicodeStringTest.php
index 9091cfb..9785976 100644
--- a/tests/UnicodeStringTest.php
+++ b/tests/UnicodeStringTest.php
@@ -1,6 +1,6 @@
assertEquals(10, wstring::from('ăĂâÂîÎşŞţŢ')->length());
- }
- public function testToString()
+ public function testFrom()
{
- $this->assertEquals('ăĂâÂîÎşŞţŢ', (string) wstring::from('ăĂâÂîÎşŞţŢ'));
- }
+ $this->assertEquals("aBcDe", wstr::from("aBcDe"));
+ $this->assertEquals("abcde", wstr::from("aBcDe", null, wstr::LOWER_CASE));
+ $this->assertEquals("ABCDE", wstr::from("aBcDe", null, wstr::UPPER_CASE));
- public function testArrayAccess()
- {
- $str = wstring::from('ăĂâÂîÎşŞţŢ');
- $this->assertEquals('ă', $str[0]);
- $this->assertEquals('Ţ', $str[9]);
- $this->assertEquals('Î', $str[5]);
+ $this->assertEquals("ăĂâÂîÎșȘțȚ", wstr::from("ăĂâÂîÎșȘțȚ"));
+ $this->assertEquals("ăăââîîșșțț", wstr::from("ăĂâÂîÎșȘțȚ", null, wstr::LOWER_CASE));
+ $this->assertEquals("ĂĂÂÂÎÎȘȘȚȚ", wstr::from("ăĂâÂîÎșȘțȚ", null, wstr::UPPER_CASE));
}
- public function testEquals()
+ public function testFromInvalidEncoding()
{
- $this->assertTrue(wstring::from('abc')->equals('abc'));
- $this->assertFalse(wstring::from('Abc')->equals('abc'));
- }
+ $this->expectException(UnicodeException::class);
+ $this->expectExceptionMessage("Could not convert string from 'error_encoding' encoding to UTF-8 encoding");
- public function testEqualsCaseInsensitive()
- {
- $this->assertTrue(wstring::from('Abc')->equals('aBc', true));
- $this->assertFalse(wstring::from('Abd')->equals('aBc', true));
+ wstr::from('abcd', 'error_encoding');
}
- public function testCompareTo()
+ /**
+ * @dataProvider invalidStringOffsetDataProvider
+ */
+ public function testFromInvalidString(string $str, int $offset)
{
- $this->assertEquals(0, wstring::from('abc')->compareTo('abc'));
- $this->assertEquals(1, wstring::from('abcd')->compareTo('abc'));
- $this->assertEquals(1, wstring::from('abc')->compareTo('Abc'));
- $this->assertEquals(-1, wstring::from('Abc')->compareTo('abc'));
- $this->assertEquals(-1, wstring::from('abc')->compareTo('abcd'));
- }
+ $this->expectException(InvalidStringException::class);
+ $this->expectExceptionMessage("Invalid UTF-8 string at offset {$offset}");
- public function testCompareToCaseInsensitive()
- {
- $this->assertEquals(0, wstring::from('abc')->compareTo('abc', true));
- $this->assertEquals(1, wstring::from('abcd')->compareTo('abc', true));
- $this->assertEquals(0, wstring::from('abc')->compareTo('Abc', true));
- $this->assertEquals(0, wstring::from('Abc')->compareTo('abc', true));
- $this->assertEquals(-1, wstring::from('abc')->compareTo('abcd', true));
+ wstr::from($str);
}
- public function testContains()
+ public function invalidStringOffsetDataProvider()
{
- $this->assertTrue(wstring::from('abcdefg')->contains('cde'));
- $this->assertTrue(wstring::from('abcdefg')->contains('abc'));
- $this->assertTrue(wstring::from('abcdefg')->contains('efg'));
- $this->assertFalse(wstring::from('abcdefg')->contains('cda'));
- }
+ return [
+ ["\x80", 0],
+ ["\xC1", 0],
+ ["\xF5", 0],
+ ["\xC2\x7F", 1],
+ ["\xC2\xC0", 1],
- public function testContainsCaseInsensitive()
- {
- $this->assertTrue(wstring::from('abcdefg')->contains('CDE', true));
- $this->assertTrue(wstring::from('abcdefg')->contains('ABC', true));
- $this->assertTrue(wstring::from('abcdefg')->contains('EFG', true));
- $this->assertFalse(wstring::from('abcdefg')->contains('CDA'));
+ ["\xE0\x9F\x80", 1],
+ ["\xE0\xC0\x80", 1],
+ ["\xE0\xA0\x7F", 2],
+ ["\xE0\xA0\xC0", 2],
+ ["\xE1\x80\xC0", 2],
+
+ ["\xF4\x90\x80\x80", 1],
+ ["\xF4\x80\x7F\x80", 2],
+ ["\xF4\x80\x80\xC0", 3],
+ ];
}
- public function testStartsWith()
+ /**
+ * @dataProvider codePointsDataProvider
+ */
+ public function testCodePoints(string $str, array $codes)
{
- $this->assertTrue(wstring::from('abcde')->startsWith('ab'));
- $this->assertFalse(wstring::from('abcde')->startsWith('ac'));
+ $this->assertEquals($codes, wstr::from($str)->codePoints());
}
- public function testStartsWithCaseInsensitive()
+ public function codePointsDataProvider()
{
- $this->assertTrue(wstring::from('abcde')->startsWith('AB', true));
- $this->assertFalse(wstring::from('abcde')->startsWith('AC', true));
+ return [
+ ["\u{61}\u{41}\u{103}\u{102}", [0x61, 0x41, 0x103, 0x102]],
+ ["ăĂâÂîÎșȘțȚ", [0x103, 0x102, 0xE2, 0xC2, 0xEE, 0xCE, 0x219, 0x218, 0x21B, 0x21A]],
+ ];
}
- public function testEndsWith()
+ public function testChars()
{
- $this->assertTrue(wstring::from('abcde')->endsWith('de'));
- $this->assertFalse(wstring::from('abcde')->endsWith('ce'));
+ $this->assertEquals(['ă', 'Ă', 'â', 'Â', 'î', 'Î', 'ș', 'Ș', 'ț', 'Ț'], wstr::from("ăĂâÂîÎșȘțȚ")->chars());
}
- public function testEndsWithOffsetShouldBeLessThanZero()
+ public function testLength()
{
- $this->assertFalse(wstring::from('abcde')->endsWith('ceffff'));
+ $this->assertEquals(0, wstr::from('')->length());
+ $this->assertEquals(1, wstr::from(' ')->length());
+ $this->assertEquals(1, wstr::from("\x00")->length());
+ $this->assertEquals(5, wstr::from('abcde')->length());
+ $this->assertEquals(10, wstr::from('ăĂâÂîÎșȘțȚ')->length());
+ $this->assertEquals(15, wstr::from('abcdeăĂâÂîÎșȘțȚ')->length());
}
- public function testEndsWithCaseInsensitive()
+ public function testStaticLength()
{
- $this->assertTrue(wstring::from('abcde')->endsWith('DE', true));
- $this->assertFalse(wstring::from('abcde')->endsWith('CE', true));
+ $this->assertEquals(0, wstr::getStringLength(''));
+ $this->assertEquals(1, wstr::getStringLength(' '));
+ $this->assertEquals(1, wstr::getStringLength("\x00"));
+ $this->assertEquals(5, wstr::getStringLength('abcde'));
+ $this->assertEquals(10, wstr::getStringLength('ăĂâÂîÎșȘțȚ'));
+ $this->assertEquals(15, wstr::getStringLength('abcdeăĂâÂîÎșȘțȚ'));
}
- public function testIndexOf()
+ public function testIsEmpty()
{
- $this->assertEquals(0, wstring::from('abcabc')->indexOf('ab'));
- $this->assertEquals(3, wstring::from('abcabc')->indexOf('ab', 1));
+ $this->assertTrue(wstr::from('')->isEmpty());
+
+ $this->assertFalse(wstr::from(' ')->isEmpty());
+ $this->assertFalse(wstr::from('0')->isEmpty());
+ $this->assertFalse(wstr::from("\x00")->isEmpty());
}
- public function testIndexOfShouldBeFalse()
+ public function testEquals()
{
- $this->assertFalse(wstring::from('abcabc')->indexOf('abcdefg'));
+ $this->assertTrue(wstr::from("abc")->equals("abc"));
+ $this->assertTrue(wstr::from("abc")->equals("ABC", true));
+ $this->assertTrue(wstr::from("ăĂâÂîÎșȘțȚ")->equals("ăĂâÂîÎșȘțȚ"));
+ $this->assertTrue(wstr::from("ăâîșț")->equals("ĂÂÎȘȚ", true));
+
+ $this->assertFalse(wstr::from("abc")->equals("ABC"));
+ $this->assertFalse(wstr::from("ăâîșț")->equals("ĂÂÎȘȚ"));
}
- public function testIndexOfOffsetShouldBeChangedIntoZero()
+ /**
+ * @dataProvider compareToDataProvider
+ */
+ public function testCompareTo(string $str, string $to, int $result, bool $ignoreCase = false)
{
- $this->assertEquals(0, wstring::from('abcabc')->indexOf('ab', -1));
+ $this->assertEquals($result, wstr::from($str)->compareTo($to, $ignoreCase));
}
- public function testIndexOfCaseInsensitive()
+ public function compareToDataProvider()
{
- $this->assertEquals(0, wstring::from('abcabc')->indexOf('AB', 0, true));
- $this->assertEquals(3, wstring::from('abcabc')->indexOf('AB', 1, true));
+ return [
+ ['abc', 'abc', 0],
+ ['abc', 'ABC', 0, true],
+ ['abc', 'ABC', 1],
+ ['ABC', 'abc', -1],
+ ["abc", "ab", 1],
+ ["ab", "abc", -1],
+
+ ["ĂÂÎȘȚ", "ĂÂÎȘȚ", 0],
+ ["ăâîșț", "ĂÂÎȘȚ", 1],
+ ["ĂÂÎȘȚ", "ăâîșț", -1],
+ ["ĂÂÎȘȚ", "ăâîșț", 0, true],
+ ];
}
- public function testLastIndexOf()
+ public function testContains()
{
- $this->assertEquals(3, wstring::from('abcabcAbc')->lastIndexOf('ab'));
+ $this->assertTrue(wstr::from("abcde")->contains("bc"));
+ $this->assertFalse(wstr::from("abcde")->contains("bf"));
+
+ $this->assertFalse(wstr::from("abcde")->contains("Bc"));
+ $this->assertTrue(wstr::from("abcde")->contains("Bc", true));
+
+ $this->assertFalse(wstr::from("ĂÂÎȘȚ")->contains("ăâîșț"));
+ $this->assertTrue(wstr::from("ĂÂÎȘȚ")->contains("ăâîșț", true));
+
+ $this->assertFalse(wstr::from("abc")->contains(''));
}
- public function testLastIndexOfShouldBeFalse()
+ /**
+ * @dataProvider startsWithDataProvider
+ */
+ public function testStartsWith(string $str, string $start, bool $result, bool $ignoreCase = false)
{
- $this->assertFalse(wstring::from('abcabcAbc')->lastIndexOf('abcdefghijk'));
+ $this->assertEquals($result, wstr::from($str)->startsWith($start, $ignoreCase));
}
- public function testLastIndexOfCaseInsensitive()
+ public function startsWithDataProvider()
{
- $this->assertEquals(6, wstring::from('abcabcAbc')->lastIndexOf('AB', true));
+ return [
+ ["abc", "a", true],
+ ["abc", "ab", true],
+ ["abc", "abc", true],
+
+ ["abc", "abcd", false],
+ ["abc", "b", false],
+
+ ["abc", "A", false],
+ ["abc", "A", true, true],
+ ["aBc", "Ab", true, true],
+
+ ["abc", "", false],
+
+ ["dabc", "abc", false],
+ ["Abc", "ab", false],
+
+ ["ĂÂÎȘȚ", "A", false],
+ ["ĂÂÎȘȚ", "A", false, true],
+ ["ĂÂÎȘȚ", "Ă", true],
+ ["ĂÂÎȘȚ", "ă", false],
+ ["ĂÂÎȘȚ", "ăâ", true, true],
+ ];
}
- public function testEnsurePrefix()
+ /**
+ * @dataProvider endsWithDataProvider
+ */
+ public function testEndsWith(string $str, string $end, bool $result, bool $ignoreCase = false)
{
- $this->assertEquals("abc", (string) wstring::from('abc')->ensurePrefix('a'));
- $this->assertEquals("Aabc", (string) wstring::from('abc')->ensurePrefix('A'));
- $this->assertEquals("aAbc", (string) wstring::from('Abc')->ensurePrefix('a'));
- $this->assertEquals("abc", (string) wstring::from('abc')->ensurePrefix('A', true));
- $this->assertEquals("Abc", (string) wstring::from('Abc')->ensurePrefix('a', true));
+ $this->assertEquals($result, wstr::from($str)->endsWith($end, $ignoreCase));
}
- public function testEnsureSuffix()
+ public function endsWithDataProvider()
{
- $this->assertEquals("abc", (string) wstring::from('abc')->ensureSuffix('c'));
- $this->assertEquals("abcC", (string) wstring::from('abc')->ensureSuffix('C'));
- $this->assertEquals("abCc", (string) wstring::from('abC')->ensureSuffix('c'));
- $this->assertEquals("abc", (string) wstring::from('abc')->ensureSuffix('C', true));
- $this->assertEquals("abC", (string) wstring::from('abC')->ensureSuffix('c', true));
+ return [
+ ["abc", "c", true],
+ ["abc", "bc", true],
+ ["abc", "abc", true],
+ ["abc", "C", false],
+ ["abc", "Bc", false],
+ ["abC", "bc", false],
+ ["abc", "", false],
+
+ ["ĂÂÎȘȚ", "T", false],
+ ["ĂÂÎȘȚ", "T", false, true],
+ ["ĂÂÎȘȚ", "Ț", true],
+ ["ĂÂÎȘȚ", "ț", false],
+ ["ĂÂÎȘȚ", "șț", true, true],
+ ];
}
- public function testAppend()
+ /**
+ * @dataProvider indexOfProvider
+ */
+ public function testIndexOf(string $str, string $needle, int $result, int $offset = 0, bool $ignoreCase = false)
{
- $this->assertEquals("abcdef", (string) wstring::from('abc')->append('def'));
+ $this->assertEquals($result, wstr::from($str)->indexOf($needle, $offset, $ignoreCase));
}
- public function testPrepend()
+ public function indexOfProvider()
{
- $this->assertEquals("abcdef", (string) wstring::from('def')->prepend('abc'));
+ return [
+ ["abc-abc", "a", 0],
+ ["abc-abc", "a", 4, 1],
+ ["abc-abc", "a", -1, 5],
+ ["abc-abc", "A", -1],
+ ["abc-abc", "A", 0, 0, true],
+ ["abc-abc", "A", 4, 1, true],
+ ["abc-abc", "A", -1, 5, true],
+
+ ["Abc-Cba", "b", 5, -2],
+ ["Abc-Cba", "b", 5, -5],
+ ["Abc-Cba", "b", 1, -6],
+ ["Abc-Cba", "b", -1, -100],
+
+ ["abcAbcabCABC", "Ab", 3],
+ ["abcAbcabCABC", "Ab", 0, 0, true],
+ ["abcAbcabCABC", "Ab", 3, 1, true],
+
+ ["ĂÂÎȘȚ", "ÎȘ", 2],
+ ["ĂÂÎȘȚ", "îș", 2, 0, true],
+ ];
}
- public function testInsert()
+ /**
+ * @dataProvider lastIndexOfDataProvider
+ */
+ public function testLastIndexOf(string $str, string $needle, int $result, int $offset = 0, bool $ignoreCase = false)
{
- $this->assertEquals("x012345", (string) wstring::from('012345')->insert('x', 0));
- $this->assertEquals("x012345", (string) wstring::from('012345')->insert('x', -10));
- $this->assertEquals("012x345", (string) wstring::from('012345')->insert('x', 3));
- $this->assertEquals("0123x45", (string) wstring::from('012345')->insert('x', 4));
- $this->assertEquals("01234x5", (string) wstring::from('012345')->insert('x', 5));
- $this->assertEquals("012345x", (string) wstring::from('012345')->insert('x', 6));
- $this->assertEquals("012345x", (string) wstring::from('012345')->insert('x', 100));
+ $this->assertEquals($result, wstr::from($str)->lastIndexOf($needle, $offset, $ignoreCase));
}
- public function testTrim()
+ public function lastIndexOfDataProvider()
{
- $this->assertEquals("abc", (string) wstring::from(" \nabc\n\r\t \n")->trim());
+ return [
+ ["abacad", "a", 4],
+ ["abacad", "A", -1],
+ ["abc", "a", -1, 1],
+ ["abAbabABaB", "Ab", 8, 0, true],
+
+ // strrpos() like tests
+ ["0123456789a123456789b123456789c", "0", 0],
+ ["0123456789a123456789b123456789c", "0", -1, 1],
+ ["0123456789a123456789b123456789c", "7", 27, 20],
+ ["0123456789a123456789b123456789c", "7", -1, 28],
+ ["0123456789a123456789b123456789c", "7", 17, -5],
+ ["0123456789a123456789b123456789c", "c", -1, -2],
+ ["0123456789a123456789b123456789c", "9c", 29, -2],
+ ];
}
- public function testRightTrim()
+ /**
+ * @dataProvider ensurePrefixDataProvider
+ */
+ public function testEnsurePrefix(string $str, string $prefix, string $result, bool $ignoreCase = false, bool $allow = true)
{
- $this->assertEquals(" \nabc", (string) wstring::from(" \nabc\n\r\t \n")->trimRight());
+ $this->assertEquals($result, (string)wstr::from($str)->ensurePrefix($prefix, $ignoreCase, $allow));
}
- public function testLeftTrim()
+ public function ensurePrefixDataProvider()
{
- $this->assertEquals("abc\n\r\t \n", (string) wstring::from(" \nabc\n\r\t \n")->trimLeft());
+ return [
+ ["abc", "id_", "id_abc"], // needs "id_" prefix
+ ["_abc", "id_", "id_abc"], // needs only "id" prefix
+ ["d_abc", "id_", "id_abc"], // needs only "i" prefix
+ ["id_abc", "id_", "id_abc"], // already prefixed
+
+ ["ID_abc", "id_", "id_ID_abc"], // needs "id_" prefix ("ID_" != "id_")
+ ["D_abc", "id_", "iD_abc", true], // needs only "i" prefix (case insensitive)
+
+ ["i", "id_", "id_"], // needs only "d_" suffix so the resulting string will still be prefixed with "id_"
+ ["id_", "id_", "id_", false, true], // the result can be just the prefix
+ ["id_", "id_", "id_id_", false, false], // result cannot be only the prefix
+ ["id_abc", "id_", "id_abc", false, false], // the resulted string is not just the prefix
+
+ // others
+ ["xxx", "xxxabc", "xxxabc"],
+ ["abcdef", "xyz_", "xyz_abcdef"],
+ ];
}
- public function testReplace()
+ /**
+ * @dataProvider ensureSuffixDataProvider
+ */
+ public function testEnsureSuffix(string $str, string $suffix, string $result, bool $ignoreCase = false, bool $allow = true)
{
- $this->assertEquals("0x0a0", (string) wstring::from("0a0a0")->replace("a", "x"));
- $this->assertEquals("0a0x0", (string) wstring::from("0a0a0")->replace("a", "x", 2));
+ $this->assertEquals($result, (string)wstr::from($str)->ensureSuffix($suffix, $ignoreCase, $allow));
}
- public function testReplaceWithSubjectIsNotInTheSting()
+ public function ensureSuffixDataProvider()
{
- $this->assertInstanceOf("Opis\String\UnicodeString", wstring::from("0a0a0")->replace("x", "a"));
+ return [
+ ["abc", "_id", "abc_id"], // needs "_id" suffix
+ ["abc_", "_id", "abc_id"], // needs only "id" suffix
+ ["abc_i", "_id", "abc_id"], // needs only "d" suffix
+ ["abc_id", "_id", "abc_id"], // already suffixed
+
+ ["abc_ID", "_id", "abc_ID_id"], // needs "_id" suffix ("_ID" != "_id")
+ ["abc_I", "_id", "abc_Id", true], // needs only "d" suffix (case insensitive)
+
+ ["d", "_id", "_id"], // needs only "_i" prefix so the resulting string will still be suffixed with "_id"
+ ["_id", "_id", "_id", false, true], // the result can be just the suffix
+ ["_id", "_id", "_id_id", false, false], // result cannot be only the suffix
+ ["abc_id", "_id", "abc_id", false, false], // the resulted string is not just the suffix
+
+ // others
+
+ ["abc", "xxxabc", "xxxabc"],
+ ["abcdef", "_xyz", "abcdef_xyz"],
+ ];
}
- public function testReplaceAll()
+ public function testAppend()
{
- $this->assertEquals("0x0x0", (string) wstring::from("0a0a0")->replaceAll("a", "x"));
+ $this->assertEquals("abcDEF", (string)wstr::from("abc")->append("DEF"));
+ $this->assertEquals("AbCdef", (string)wstr::from("AbC")->append("DeF", wstr::LOWER_CASE));
+ $this->assertEquals("AbCDEF", (string)wstr::from("AbC")->append("dEf", wstr::UPPER_CASE));
}
- public function testReplaceAllWithSubjectIsNotInTheSting()
+ public function testPrepend()
{
- $this->assertInstanceOf("Opis\String\UnicodeString", wstring::from("0a0a0")->replaceAll("x", "a"));
+ $this->assertEquals("DEFabc", (string)wstr::from("abc")->prepend("DEF"));
+ $this->assertEquals("defabc", (string)wstr::from("abc")->prepend("DeF", wstr::LOWER_CASE));
+ $this->assertEquals("DEFabc", (string)wstr::from("abc")->prepend("dEf", wstr::UPPER_CASE));
}
- public function testReverse()
+ /**
+ * @dataProvider insertDataProvider
+ */
+ public function testInsert(string $str, string $add, int $offset, string $result, int $case = wstr::KEEP_CASE)
{
- $this->assertEquals("fedcba", (string) wstring::from("abcdef")->reverse());
+ $this->assertEquals($result, (string)wstr::from($str)->insert($add, $offset, $case));
}
- public function testRepeat()
+ public function insertDataProvider()
{
- $this->assertEquals("abcabc", (string) wstring::from("abc")->repeat());
- $this->assertEquals("abcabcabcabc", (string) wstring::from("abc")->repeat(3));
- $this->assertEquals("ăĂâÂîÎşŞţŢăĂâÂîÎşŞţŢăĂâÂîÎşŞţŢ", (string) wstring::from("ăĂâÂîÎşŞţŢ")->repeat(2));
+ return [
+ ["012345", "abc", 0, "abc012345"],
+ ["012345", "abc", 1, "0abc12345"],
+ ["012345", "abc", -2, "0123abc45"],
+ ["012345", "ABC", 0, "abc012345", wstr::LOWER_CASE],
+ ["012345", "abc", 0, "ABC012345", wstr::UPPER_CASE],
+ ];
}
- public function testRepeatTimesShouldBeChangedIntoOne()
+ /**
+ * @dataProvider removeDataProvider
+ */
+ public function testRemove(string $str, int $offset, $length, string $result)
{
- $this->assertEquals("abcabc", (string) wstring::from("abc")->repeat(-1));
+ $this->assertEquals($result, (string)wstr::from($str)->remove($offset, $length));
}
- public function testRemove()
+ public function removeDataProvider()
{
- $this->assertEquals("ÂîÎşŞţŢ", (string) wstring::from('ăĂâÂîÎşŞţŢ')->remove(0, 3));
- $this->assertEquals("ăĂâÂîÎşŞţ", (string) wstring::from('ăĂâÂîÎşŞţŢ')->remove(9, 3));
- $this->assertEquals("ăĂâÂŞţŢ", (string) wstring::from('ăĂâÂîÎşŞţŢ')->remove(4, 3));
+ return [
+ ["0123456789", 0, 3, "3456789"],
+ ["0123456789", 2, 1, "013456789"],
+ ["0123456789", 5, null, "01234"],
+ ["0123456789", -3, null, "0123456"],
+ ["0123456789", -3, 2, "01234569"],
+ ];
}
- public function testRemoveIndexLengthShouldBeChangedIntoZero()
+ /**
+ * @dataProvider trimDataProvider
+ */
+ public function testTrim(string $str, $chars, string $result)
{
- $this->assertEquals("ăĂâÂîÎşŞţŢ", (string) wstring::from('ăĂâÂîÎşŞţŢ')->remove(-1, -1));
+ $this->assertEquals($result, (string)wstr::from($str)->trim($chars ?? " \t\n\r\0\x0B"));
}
- public function testPadLeft()
+ public function trimDataProvider()
{
- $this->assertEquals("xxabc", (string) wstring::from("abc")->padLeft(5, 'x'));
- $this->assertEquals("xyabc", (string) wstring::from("abc")->padLeft(5, 'xyz'));
- $this->assertEquals("xyzxabc", (string) wstring::from("abc")->padLeft(7, 'xyz'));
- $this->assertEquals("", (string) wstring::from("abc")->padLeft(0, 'x'));
- $this->assertEquals("", (string) wstring::from("abc")->padLeft(-1, 'x'));
- $this->assertEquals("c", (string) wstring::from("abc")->padLeft(1, 'x'));
+ return array_map(function (array $v) {
+ return [$v[0], $v[1], $v[2]];
+ }, $this->trimData());
}
- public function testPadLeftEqualWithStringLength()
+ /**
+ * @dataProvider trimLeftDataProvider
+ */
+ public function testTrimLeft(string $str, $chars, string $result)
{
- $this->assertInstanceOf("Opis\String\UnicodeString", wstring::from("xxabc")->padLeft(5, 'x'));
+ $this->assertEquals($result, (string)wstr::from($str)->trimLeft($chars ?? " \t\n\r\0\x0B"));
}
- public function testPadLeftWithEmptyPad()
+ public function trimLeftDataProvider()
{
- $this->assertEquals(" xxabc", (string) wstring::from("xxabc")->padLeft(6, ''));
+ return array_map(function (array $v) {
+ return [$v[0], $v[1], $v[3]];
+ }, $this->trimData());
}
- public function testRight()
+ /**
+ * @dataProvider trimRightDataProvider
+ */
+ public function testTrimRight(string $str, $chars, string $result)
{
- $this->assertEquals("abcxx", (string) wstring::from("abc")->padRight(5, 'x'));
- $this->assertEquals("abcxy", (string) wstring::from("abc")->padRight(5, 'xyz'));
- $this->assertEquals("abcxyzx", (string) wstring::from("abc")->padRight(7, 'xyz'));
- $this->assertEquals("", (string) wstring::from("abc")->padRight(0, 'x'));
- $this->assertEquals("", (string) wstring::from("abc")->padRight(-1, 'x'));
- $this->assertEquals("a", (string) wstring::from("abc")->padRight(1, 'x'));
+ $this->assertEquals($result, (string)wstr::from($str)->trimRight($chars ?? " \t\n\r\0\x0B"));
}
- public function testSplit()
+ public function trimRightDataProvider()
{
- $map = function($value){
- return (string) $value;
- };
- $split = function($text, $char = '') use($map){
- return array_map($map, wstring::from($text)->split($char));
- };
-
- $this->assertEquals(array('a', 'b', 'c'), $split('a|b|c', '|'));
- $this->assertEquals(array('', 'a', 'b', 'c'), $split('|a|b|c', '|'));
- $this->assertEquals(array('', 'a', 'b', 'c', '', ''), $split('|a|b|c||', '|'));
- $this->assertEquals(array('|a|b|c', ''), $split('|a|b|c||', '||'));
- $this->assertEquals(array('a|b|c'), $split('a|b|c', '#'));
- $this->assertEquals(array('a', 'b', 'c'), $split('abc'));
+ return array_map(function (array $v) {
+ return [$v[0], $v[1], $v[4]];
+ }, $this->trimData());
}
- public function testSubstring()
+ public function trimData()
{
- $this->assertEquals('abc', wstring::from('abcdef')->substring(0, 3));
- $this->assertEquals('def', wstring::from('abcdef')->substring(3, 3));
- $this->assertEquals('def', wstring::from('abcdef')->substring(3));
- $this->assertEquals('abcdef', wstring::from('abcdef')->substring(0));
+ return [
+ //["str", "chars", "trim", "ltrim", "rtrim"]
+ [" abc ", null, "abc", "abc ", " abc"],
+ ["abcxd", "xy", "abcxd", "abcxd", "abcxd"],
+ ["yyabcxdxyxyxy", "xy", "abcxd", "abcxdxyxyxy", "yyabcxd"],
+ ["ĂAAAĂAAAĂ", "ĂA", "", "", ""],
+ ["ĂAAAxĂyAAAĂ", "ĂA", "xĂy", "xĂyAAAĂ", "ĂAAAxĂy"],
+ ];
}
- public function testIsCase()
+ public function testReverse()
{
- $this->assertTrue(wstring::from('abcd')->isLowerCase());
- $this->assertFalse(wstring::from('abCd')->isLowerCase());
- $this->assertTrue(wstring::from('ABCD')->isUpperCase());
- $this->assertFalse(wstring::from('ABcD')->isUpperCase());
+ $this->assertEquals("ZzȚțȘșÎîÂâĂă", (string)wstr::from("ăĂâÂîÎșȘțȚzZ")->reverse());
}
- public function testToCase()
+ public function testRepeat()
{
- $this->assertEquals('ABC', wstring::from('abc')->toUpper());
- $this->assertEquals('ABC', wstring::from('aBc')->toUpper());
- $this->assertEquals('abc', wstring::from('ABC')->toLower());
- $this->assertEquals('abc', wstring::from('AbC')->toLower());
+ $this->assertEquals("abcabcabc", (string)wstr::from("abc")->repeat(3));
}
- public function testToLowerWithIsLowerCache()
+ /**
+ * @dataProvider replaceDataProvider
+ */
+ public function testReplace(string $str, string $subject, string $replace, string $result, int $offset = 0, bool $ignoreCase = false)
{
- $wstr = new wstring(array('UTF-8'), array('abc'));
- $wstr->isLowerCase();
- $this->assertInstanceOf("Opis\String\UnicodeString", $wstr->toLower());
+ $this->assertEquals($result, (string)wstr::from($str)->replace($subject, $replace, $offset, $ignoreCase));
}
- public function testToUpperWithIsUpperCache()
+ public function replaceDataProvider()
{
- $wstr = new wstring(array('UTF-8'), array('abc'));
- $wstr->isUpperCase();
- $this->assertInstanceOf("Opis\String\UnicodeString", $wstr->toUpper());
+ return [
+ ["abcdabcd", "bc", "", "adabcd"],
+ ["abcdabcd", "bc", "x", "axdabcd"],
+ ["abcdabcd", "bc", "xy", "axydabcd"],
+ ["abcdabcd", "bc", "xyz", "axyzdabcd"],
+ ["abcdabcd", "bc", "XYZ", "abcdaXYZd", 3],
+ ["abcdabcd", "bc", "XYZ", "abcdaXYZd", -4],
+ ["abcdabcd", "bc", "XYZ", "abcdabcd", 6],
+
+ ["aBcAbC", "bC", "XX", "aBcAXX"],
+ ["aBcAbC", "bC", "XX", "aXXAbC", 0, true],
+ ["aBcAbC", "bC", "XX", "aBcAXX", 2, true],
+ ["aBcAbC", "bC", "XX", "aBcAXX", -2, true],
+ ["aBcAbC", "bC", "XX", "aBcAbC", -1, true],
+
+ ["ăĂâÂîÎșȘțȚzZ", "Î", "X", "ăĂâÂîXșȘțȚzZ"],
+ ["ăĂâÂîÎșȘțȚzZ", "Î", "X", "ăĂâÂXÎșȘțȚzZ", 0, true],
+ ];
}
- public function testToAscii()
+ /**
+ * @dataProvider replaceAllDataProvider
+ */
+ public function testReplaceAll(string $str, string $subject, string $replace, string $result, bool $ignoreCase = false, int $offset = 0)
{
- $this->assertEquals("aAaAiIsStT", wstring::from("ăĂâÂîÎşŞţŢ")->toAscii());
+ $this->assertEquals($result, (string)wstr::from($str)->replaceAll($subject, $replace, $offset, $ignoreCase));
}
- public function testToAsciiWithIsAsciiCache()
+ public function replaceAllDataProvider()
{
- $wstr = new wstring(array('UTF-8'), array('abc'));
- $wstr->isAscii();
- $this->assertInstanceOf("Opis\String\UnicodeString", $wstr->toAscii());
+ return [
+ ["AabcaAa", "a", "X", "AXbcXAX"],
+ ["AabcaAa", "a", "X", "XXbcXXX", true],
+ ["aaa", "a", "X", "aXX", false, 1],
+ ["aaa", "a", "X", "aaX", false, -1],
+ ["Aaa", "a", "", "A"],
+
+ ["ăĂâÂîÎșȘțȚzZ", "Î", "X", "ăĂâÂîXșȘțȚzZ"],
+ ["ăĂâÂîÎșȘțȚzZ", "Î", "X", "ăĂâÂXXșȘțȚzZ", true],
+
+ ["aîÎb", "Îî", "X", "aîÎb"],
+ ["aîÎb", "Îî", "X", "aXb", true],
+ ["aîÎb", "Îî", "X", "aîÎb", true, 2],
+ ];
}
- public function testIsAscii()
+ /**
+ * @dataProvider splitDataProvider
+ */
+ public function testSplit(string $str, string $delimiter, array $result, bool $ignoreCase = false)
{
- $this->assertTrue(wstring::from('abcde')->isAscii());
- $this->assertFalse(wstring::from('abcîÎşa')->isAscii());
+ $this->assertEquals($result, array_map('strval', wstr::from($str)->split($delimiter, $ignoreCase)));
}
- public function testIsAsciiWithCache()
+ public function splitDataProvider()
{
- $wstr = new wstring(array('UTF-8'), array('abc'));
- $wstr->isAscii();
- $this->assertTrue($wstr->isAscii());
+ return [
+ ["ȚabcȘ", "", ["Ț", "a", "b", "c", "Ș"]],
+ ["a-b-c", "-", ["a", "b", "c"]],
+ ["aXbxcXd", "x", ["aXb", "cXd"]],
+ ["aXbxcXd", "x", ["a", "b", "c", "d"], true],
+
+ ["a", "a", ["", ""]],
+ ["ab", "a", ["", "b"]],
+ ["ba", "a", ["b", ""]],
+ ["aba", "a", ["", "b", ""]],
+ ["aaa", "a", ["", "", "", ""]],
+
+ ["xîÎx", "Îî", ["xîÎx"]],
+ ["xîÎx", "Îî", ["x", "x"], true],
+ ];
}
- public function testStringWithExistedCharacter()
+ /**
+ * @dataProvider substringDataProvider
+ */
+ public function testSubstring(string $str, int $offset, $length, string $result)
{
- $wstr = new wstring(array('abcd'), array('bcd'));
- $this->assertTrue(isset($wstr[0]));
+ $this->assertEquals($result, (string)wstr::from($str)->substring($offset, $length));
}
- public function testStringWithChars()
+ public function substringDataProvider()
{
- $wstr = new wstring(array('abcd'), array('bcd'));
- $this->assertEquals(array('bcd'), $wstr->chars());
+ return [
+ ["0123456789", 0, null, "0123456789"],
+ ["0123456789", 4, null, "456789"],
+ ["0123456789", 4, 3, "456"],
+ ["abcdef", -1, null, "f"],
+ ["abcdef", -2, null, "ef"],
+ ["abcdef", -3, 1, "d"],
+ ["abcdef", 0, -1, "abcde"],
+ ["abcdef", 2, -1, "cde"],
+ ["abcdef", 4, -4, ""],
+ ["abcdef", -3, -1, "de"],
+
+ ["ăĂâÂîÎșȘțȚ", 2, 4, "âÂîÎ"],
+ ];
}
- public function testStringWithCodePoints()
+ /**
+ * @dataProvider padDataProvider
+ */
+ public function testPad(string $str, int $size, $char, string $left, string $right)
{
- $wstr = new wstring(array('abcd'), array('bcd'));
- $this->assertEquals(array('abcd'), $wstr->codePoints());
+ $str = wstr::from($str);
+
+ $this->assertEquals($left, (string)$str->pad(-$size, $char));
+ $this->assertEquals($right, (string)$str->pad($size, $char));
+
+ $this->assertEquals($left, (string)$str->padLeft($size, $char));
+
+ $this->assertEquals($right, (string)$str->padRight($size, $char));
}
- public function testStringOffsetChar()
+ public function padDataProvider()
{
- $wstr = new wstring(array('abcd'), array('bcd'));
- $this->assertEquals('abcd', $wstr(0));
+ return [
+ ["abc", 6, "x", "xxxabc", "abcxxx"],
+ ["abc", 3, "x", "abc", "abc"],
+ ["abc", 5, "xy", "xxabc", "abcxx"], // only first char is taken
+
+ ["123", 5, "0", "00123", "12300"],
+ ["", 3, "Ț", "ȚȚȚ", "ȚȚȚ"],
+ ];
}
/**
- * @expectedException \Exception
- * @expectedExceptionMessage Invalid operation
+ * @dataProvider indexAccessDataProvider
*/
- public function testSetStringShouldReturnInvalidOperation()
+ public function testIndexAccess(string $str, int $index, int $codePoint, string $char)
{
- $wstr = new wstring(array('abcd'), array('bcd'));
- $wstr[] = 'a';
+ $str = wstr::from($str);
+
+ $this->assertEquals($codePoint, $str->codePointAt($index));
+ $this->assertEquals($char, $str->charAt($index));
+
+ if ($codePoint === -1) {
+ try {
+ $str($index);
+ $this->assertTrue(false, "Invalid code point index");
+ } catch (OutOfBoundsException $e) {
+ $this->assertTrue(true);
+ }
+ } else {
+ $this->assertEquals($codePoint, $str($index));
+ }
+
+ if ($char === '') {
+ $this->assertFalse(isset($str[$index]));
+ try {
+ $str[$index];
+ $this->assertTrue(false, "Invalid char index");
+ } catch (OutOfBoundsException $e) {
+ $this->assertTrue(true);
+ }
+ } else {
+ $this->assertTrue(isset($str[$index]));
+ $this->assertEquals($char, $str[$index]);
+ }
}
- /**
- * @expectedException \Exception
- * @expectedExceptionMessage Invalid operation
- */
- public function testUnsetStringShouldReturnInvalidOperation()
+ public function indexAccessDataProvider()
{
- $wstr = new wstring(array('abcd'), array('bcd'));
- unset($wstr[0]);
+ return [
+ ["abcd", 1, 0x62, "b"],
+ ["abcd", -2, 0x63, "c"],
+ ["abcd", 5, -1, ""],
+ ["abcd", -6, -1, ""],
+
+ ["ăĂâÂîÎșȘțȚ", 0, 0x103, "ă"],
+ ["ăĂâÂîÎșȘțȚ", 4, 0xEE, "î"],
+ ["ăĂâÂîÎșȘțȚ", -4, 0x219, "ș"],
+ ["ăĂâÂîÎșȘțȚ", -1, 0x21A, "Ț"],
+ ];
}
- /**
- * @expectedException \Exception
- * @expectedExceptionMessage Could not convert string from 'error_encoding' encoding to UTF-8 encoding
- */
- public function testFromStringWithInvalidEncoding()
+ public function testArrayLike()
+ {
+ $str = wstr::from("abc");
+ $this->assertEquals(3, count($str));
+
+
+ $str->isLowerCase(); // just build cache
+ $str[1] = "Ș";
+
+ $this->assertEquals("aȘc", (string)$str);
+ $this->assertFalse($str->isLowerCase()); // check if cache is rebuild
+
+ $str[-1] = "Ț";
+ $this->assertEquals("aȘȚ", (string)$str);
+
+ // only first char
+ $str[0] = "Îabc";
+ $this->assertEquals("ÎȘȚ", (string)$str);
+
+ // no change
+ $str[1] = "";
+ $this->assertEquals("ÎȘȚ", (string)$str);
+
+ // cannot unset
+ $this->expectException(RuntimeException::class);
+ unset($str[1]);
+ }
+
+
+ public function testIsCase()
{
- $wstr = wstring::from('abcd', 'error_encoding');
+ $this->assertTrue(wstr::from('abcd')->isLowerCase());
+ $this->assertFalse(wstr::from('abCd')->isLowerCase());
+ $this->assertTrue(wstr::from('ABCD')->isUpperCase());
+ $this->assertFalse(wstr::from('ABcD')->isUpperCase());
+
+ $this->assertTrue(wstr::from('țș@îâ#ă')->isLowerCase());
+ $this->assertTrue(wstr::from('ȚȘ@ÎÂ#Ă')->isUpperCase());
+
+ $this->assertFalse(wstr::from('Țș@îâ#ă')->isLowerCase());
+ $this->assertFalse(wstr::from('țȘ@ÎÂ#Ă')->isUpperCase());
+
}
- public function testFromStringWithE0Character()
+ public function testToCase()
{
- $this->assertEquals("\xE0\xE0\xE0", (string) wstring::from("\xE0\xE0\xE0")->replace("E", "x"));
+ $this->assertEquals('ABC', (string)wstr::from('abc')->toUpper());
+ $this->assertEquals('ABC', (string)wstr::from('aBc')->toUpper());
+ $this->assertEquals('ȚȘ@ÎÂ#Ă', (string)wstr::from('țș@îâ#ă')->toUpper());
+
+ $this->assertEquals('abc', (string)wstr::from('ABC')->toLower());
+ $this->assertEquals('abc', (string)wstr::from('AbC')->toLower());
+ $this->assertEquals('țș@îâ#ă', (string)wstr::from('ȚȘ@ÎÂ#Ă')->toLower());
}
- public function testFromStringWithF0Character()
+ public function testIsAscii()
{
- $this->assertEquals("\xF0\xF0\xF0\xF0", (string) wstring::from("\xF0\xF0\xF0\xF0")->replace("F", "x"));
+ $this->assertTrue(wstr::from("abc")->isAscii());
+ $this->assertFalse(wstr::from("abcț")->isAscii());
}
/**
- * @expectedException \Exception
- * @expectedExceptionMessage Invalid UTF-8 string
+ * @dataProvider toAsciiDataProvider
*/
- public function testFromStringWithInvalidUtf8String()
+ public function testToAscii(string $str, string $result)
{
- wstring::from("\xA0\xA0\xA0\xA0");
+ $this->assertEquals($result, (string)wstr::from($str)->toAscii());
}
+ public function toAsciiDataProvider()
+ {
+ return [
+ ["ăĂâÂîÎșȘțȚ", "aAaAiIsStT"],
+ ];
+ }
}